#14261: Iwahori-Hecke algebra with several bases
-------------------------------------+-------------------------------------
Reporter: brant | Owner: sage-combinat
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.12
Component: combinatorics | Resolution:
Keywords: Iwahori Hecke | Merged in:
algebra | Reviewers: Andrew Mathas, Brant
Authors: Brant Jones, | Jones, Travis Scrimshaw
Travis Scrimshaw | Work issues:
Report Upstream: N/A | Commit:
Branch: | Stopgaps:
Dependencies: #13735 #14014 |
#14678 #14516 |
-------------------------------------+-------------------------------------
Comment (by andrew.mathas):
I'm part way through writing a review patch. Mostly I have just been
expanding on the documentation (and hopefully improving it). In
particular, I have added Iwahori-Hecke algebras to the algebra chapter of
the reference manual, as it didn't seem to exist anywhere else.
There is one significant issue that needs to be addressed: currently the
code accepts two parameters `q1` and `q2` and defines the algebra with
generators `{T_s|s\in S}` and relations `(T_s-q1)(T_s-q2)=0` together with
the braid relations. I am unsure how to define the bar involution for such
parameters.
What the code currently does is invert all of the generators of the base
ring. This is probably the right thing to do if `q1` and `q2` are powers
of generators of the base ring -- although even this is not clear because
we could have `q1=v^2` and but be working with the Hecke algebra over
`Z[v,w]`, so that we would probably want `\bar[w}=w`. Of course, I can't
image why one would ever want to do this...
A less extreme (and more natural), example is when `q1=a^2`, `q2=b^2` and
`a` and `b` are not algebraically independent. In this case, this bar
involuton on the base ring will almost never extend to a ring involution
on te Hecke algebra.
What is cool about the current implementation is that it works correctly
with parameters `(q1,q2)` being either `(v^2,-1)` or `(v,-v^-1)`. What is
less cool is that it will be wrong in the senarious above and, more
seriously, it gives incorrect answers when given parameters `(1,-1)` which
corresponds to the group ring `ZW`:
{{{
sage: H = IwahoriHeckeAlgebra(['A',3], 1,1)
sage: H.inject_shorthands()
Injecting C as shorthand for Iwahori-Hecke algebra of type A3 in 1,-1 over
Integer Ring in the C basis
Injecting Cp as shorthand for Iwahori-Hecke algebra of type A3 in 1,-1
over Integer Ring in the Kazhdan-Lusztig basis
Injecting T as shorthand for Iwahori-Hecke algebra of type A3 in 1,-1 over
Integer Ring in the standard basis
sage: T(Cp(1))
1
}}}
The underlying problem is that the bar involution really only makes sense
in the generic case and currently there is no checking for this. On the
other hand, the Kazhdan-Lusztig bases do make sense whenever the squre
root of the prameters lives in the base ring as we can compute the KL
bases over `Z[v,v^-1]` and then specialise `v^2` to `q`. In particular,
the KL bases make sense for the integral groups rings `ZW`.
I can think of a couple of solutions:
* Leave everything as it is.
* Only allow the KL bases to be implemenetd in the generic case.
* Implement a generic Hecke algebra behind the scene and compute the KL
basis here, together with transition matrices, and then specialise these
results into the non-generic Hecke algebras whenever the square roots of
the parameters are (testably) well-defined.
I don't like the first option because the current behaviour is
mathematically incorrect in important examples. Nor do I like the second
option because working with the KL bases of the group algebra is a natural
thing to want to do. Therefore, I think that the last option is the way to
go.
** Please let me know what you think. **
Here are a few other less important issues that I have come across:
* I am confused by the `one_basis` method of all of the bases: why does
this return the identity element of the corresponding Coxeter group?
Initially I thought that this would return the identity element of the
Hecke algebra with respet to the current basis (which is implemented
as`T.one()`). If we really need a shorthand for the identity element of
the group shouldn't the method be called something like group_identity?
* Similarly, the method `is_field` strikes me as being strange: the Hecke
algebra is a field if only if the Coxeter group has rank zero and the base
ring is a field. Rather than being a method of the Hecke algebra this
should be (and is) a method of the base ring of the Hecke algebra.
* I think that the names for the bases are all too long to be useful and
that something shorter like "X-basis of Iwahori-Hecke algebra" or
"X-basis of Iwahori-Hecke algebra of type Y" feasible? Compare these with:
{{{
Iwahori-Hecke algebra of type A3 in v^2,-1 over Univariate Laurent
Polynomial Ring in v over Rational Field in the C basis
Iwahori-Hecke algebra of type A3 in v^2,-1 over Univariate Laurent
Polynomial Ring in v over Rational Field in the Kazhdan-Lusztig basis
Iwahori-Hecke algebra of type A3 in v^2,-1 over Univariate Laurent
Polynomial Ring in v over Rational Field in the standard basis
}}}
Unless anyone objects, in my review patch I will remove the `is_field`
method, rename (or delete?) the `one_basis` method and shorten the basis
names.
In the bsence of better suggesstions I will also have a go at implementing
a generic algebra in the background.
--
Ticket URL: <http://trac.sagemath.org/ticket/14261#comment:34>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.