1 | initial version |
Yes. In Sage, Weyl groups are constructed as matrix groups acting on the weight (or coweight) lattices. The Weyl groups in question are canonically isomorphic and what you want is an explicit isomorphism between them.
It's not terribly well documented, but there is a hom
method for matrix groups that allows you to define a homomorphism by specifying the images of the generators of the domain.
The following code creates the canonical isomorphism phi
between W1
the Weyl group acting on weights and W2
the Weyl group acting on coweights:
sage: W1 = RootSystem(['A', Integer(3)]).weight_lattice().weyl_group()
sage: W2 = RootSystem(['A', Integer(3)]).coweight_lattice().weyl_group()
sage: phi = W1.hom(W1.gens())
sage: phi
Homomorphism : Weyl Group of type ['A', 3] (as a matrix group acting on the weight
lattice) --> Weyl Group of type ['A', 3] (as a matrix group acting on the weight
lattice)
sage: (s1, s2, s3) = W1.gens()
sage: phi(s1*s2*s1)
[ 0 -1 0]
[-1 0 0]
[ 1 1 1]
The element phi(s1*s2*s1)
will act on the coweight lattice the way you want.
2 | No.2 Revision |
Yes. In Sage, Weyl groups are constructed as matrix groups acting on the weight (or coweight) lattices. The Weyl groups in question are canonically isomorphic and what you want is an explicit isomorphism between them.
It's not terribly well documented, but there is a hom
method for matrix groups that allows you to define a homomorphism by specifying the images of the generators of the domain.
The following code creates the canonical isomorphism phi
between W1
the Weyl group acting on weights and W2
the Weyl group acting on coweights:
sage: W1 = RootSystem(['A', Integer(3)]).weight_lattice().weyl_group()
sage: W2 = RootSystem(['A', Integer(3)]).coweight_lattice().weyl_group()
sage: phi = W1.hom(W1.gens())
W1.hom(W2.gens())
sage: phi
Homomorphism : Weyl Group of type ['A', 3] (as a matrix group acting on the weight
lattice) --> Weyl Group of type ['A', 3] (as a matrix group acting on the weight
lattice)
sage: (s1, s2, s3) = W1.gens()
sage: phi(s1*s2*s1)
[ 0 -1 0]
[-1 0 0]
[ 1 1 1]
The element phi(s1*s2*s1)
will act on the coweight lattice the way you want.
phi = W1.hom(W2.gens())
defines a homomorphism (actually an isomorphism) by sending W1.gen(i)
to W2.gen(i)
for i = 0 ... 2
.