#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.

Reply via email to