Hey Vincent,
   Well, I can solve the question by using reduced expressions from the 
Coxeter presentation:

sage: S3 = SymmetricGroup(3)
sage: SGA = GroupAlgebra(S3, QQ)
sage: MS = MatrixSpace(QQ,2)
sage: mtx = [MS([[0,-1],[1,-1]]), MS([[1,-1],[0,-1]])]
sage: phi = SGA.module_morphism(lambda x: MS.prod(mtx[i-1] for i in 
x.reduced_word()), codomain=MS) # -1 for indexing
sage: H = Hom(S3, MG)         
sage: psi = H(lambda x: MG.prod(MG.gen(i-1) for i in x.reduced_word()))


sage: kappa = SGA.module_morphism(lambda x: MS(psi(x)), codomain=MS) # An 
alternative implementation which induces from the group morphism
sage: elt = SGA.gen(0) + SGA.gen(1); elt
(1,2) + (1,2,3)
sage: kappa(elt)
[-1 -1]
[ 0  0] 


There is a more subtle issue of defining a group morphism by generators, 
the group elements have to know how to express themselves in terms of the 
generators. If there was a function for doing that, then the above approach 
would work. For the symmetric group (perhaps even finite groups) at least, 
one might be able to brute force it, i.e. construct the corresponding 
Cayley graph and take a minimal length path from the identity:

sage: G = S3.cayley_graph(generators=S3.gens())

sage: path = G.shortest_path(S3.one(), prod(S3.gens())); path
[(), (1,2,3), (2,3)]

sage: labels = [G.edge_label(path[i], path[i+1]) for i in 
range(len(path)-1)]; labels
[(1,2,3), (1,2)]

sage: map(lambda x: list(S3.gens()).index(x), labels)
[0, 1]


Although it might be worthwhile to wrap all of the above in some method on 
finite (semi)group elements reduced_word_on_generators(S3.gens()) (or some 
other name that doesn't necessarily conflict with reduced_word()).

Best,
Travis


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to