atlas
choice of coordinates¶
How do we interpret the way the software writes the simple roots for \(SL(n,\mathbb R)\)? Let us look at an example:
atlas> set G= SL(5,R)
Identifier G: RealForm (hiding previous one of type RealForm)
atlas> simple_roots(G)
Value:
| 1, 0, 0, 1 |
| -1, 1, 0, 1 |
| 0, -1, 1, 1 |
| 0, 0, -1, 2 |
atlas> simple_coroots(G)
Value:
| 1, 0, 0, 0 |
| -1, 1, 0, 0 |
| 0, -1, 1, 0 |
| 0, 0, -1, 1 |
atlas> rho(G)
Value: [ 4, 3, 2, 1 ]/1
atlas>sum(simple_roots(G))
Value: [ 2, 1, 1, 1 ]
atlas>
So, atlas
chooses a set of coordinates to work with. They were chosen
in the roots.at
file so that the matrix of the simple coroots for
the simply connected group is the identity matrix:
atlas> set g=LieType: A4
Identifier g: LieType (hiding previous one of type LieType)
atlas> set rd=simply_connected(A4)
Identifier rd: RootDatum (hiding previous one of type RootDatum)
atlas> rd
Value: simply connected root datum of Lie type 'A4'
atlas> simple_coroots (rd)
Value:
| 1, 0, 0, 0 |
| 0, 1, 0, 0 |
| 0, 0, 1, 0 |
| 0, 0, 0, 1 |
atlas>
But look what happens when we type:
atlas> G:=SU(5)
Value: compact connected real group with Lie algebra 'su(5)'
atlas> simple_coroots (G)
Value:
| 1, 0, 0, 0 |
| -1, 1, 0, 0 |
| 0, -1, 1, 0 |
| 0, 0, -1, 1 |
atlas>
If you want to ask atlas
about a vector in the Cartan subgroupor say an
infinitesimal character, you need to write it in terms of the simple
roots. Then the software will give you the vector in terms of the
atlas
coordinates. You then have to understand which coordinates
the software is using in order to both, ask the question and interpret the
answer. For example, it is useful to know what rho is in the
coordinates the software is using:
atlas> rho(rd)
Value: [ 1, 1, 1, 1 ]/1
atlas> rho(G)
Value: [ 4, 3, 2, 1 ]/1
atlas> sum(simple_roots (G))
Value: [ 2, 1, 1, 1 ]
atlas>sum(simple_roots (rd))
Value: [ 1, 0, 0, 1 ]
atlas>
Note the expression in the case when \(G=SL(5,\mathbb
R)\). atlas
is using only four coordinates when it is costumary to
use five coordinates to describe the weights in \(G\).
Alternatively, you can try to phrase the question in a way that atlas will use coordinates you are familiar with:
atlas> set G= GL(5,R)
Identifier G: RealForm (hiding previous one of type RealForm)
atlas> simple_coroots(G)
Value:
| 1, 0, 0, 0 |
| -1, 1, 0, 0 |
| 0, -1, 1, 0 |
| 0, 0, -1, 1 |
| 0, 0, 0, -1 |
atlas> rho(G)
Value: [ 2, 1, 0, -1, -2 ]/1
Remark: Once you defined a root datum or group, atlas
fixes some
coordinates. However, as we have seen, it is often possible to
redefine the group in a different way so that the coordinates are
easier to work with:
atlas> set rd=root_datum ([[6,2]],[[1,-2]])
Identifier rd: RootDatum (hiding previous one of type RootDatum)
atlas> simple_roots(rd)
Value:
| 6 |
| 2 |
atlas> simple_coroots(rd)
Value:
| 1 |
| -2 |
atlas> rho (rd)
Value: [ 3, 1 ]/1
atlas> ^simple_roots(rd)*simple_coroots(rd)
Value:
| 2 |
atlas> rd
Value: simply connected root datum of Lie type 'A1.T1'
atlas>
So this is a root datum of the above Lie type and with some ridiculous coordinates. It is not clear which group it is. There are three isomorphism classes of root data of this type. But once we recognize the Lie Type we can redefine it so that it looks nicer:
atlas> set rd_new=root_datum ([[1,-1]],[[1,-1]])
Identifier rd_new: RootDatum
atlas> rd_new
Value: simply connected adjoint root datum of Lie type 'A1.T1'
atlas>
Notice this is a version of the root_datum command that we had not
seen. It asks for the root datum for the given set of
simple roots and coroots. That is what a root datum is in atlas
. So
you can define the root datum by giving the matrices you want for the
simple roots and coroots and atlas will accept them as a root
datum.
Now lets look at a another example:
atlas> set rd=simply_connected (C4)
Identifier rd: RootDatum (hiding previous one of type RootDatum)
atlas> simple_roots (rd)
Value:
| 2, -1, 0, 0 |
| -1, 2, -1, 0 |
| 0, -1, 2, -2 |
| 0, 0, -1, 2 |
atlas> simple_coroots (rd)
Value:
| 1, 0, 0, 0 |
| 0, 1, 0, 0 |
| 0, 0, 1, 0 |
| 0, 0, 0, 1 |
atlas> ^simple_roots (rd)*simple_coroots (rd)
Value:
| 2, -1, 0, 0 |
| -1, 2, -1, 0 |
| 0, -1, 2, -1 |
| 0, 0, -2, 2 |
atlas>
Again these are not the usual simple roots and corroots. But as you
can see we get the Cartan matrix with the above product. These are the
fundamental weight coordinates. Observe also that the simple coroots
(resp. simple roots) give the identity matrix (resp. the Cartan
matrix), which you would expect for the simply connected group of type
C4
.
In these corrdinates rho
is:
atlas> rho(rd)
Value: [ 1, 1, 1, 1 ]/1
atlas>
So, in fundamental weight coordinates, the coordinates of rho
are all 1
.
You can also check that if you use the adjoint root datum for C4
, the simple
roots matrix will be the identity etc.
But now, if we use the defined real form \(Sp(8,\mathbb R)\), we get root data in the usual coordinates:
atlas> G:=Sp(8,R)
Value: connected split real group with Lie algebra 'sp(8,R)'
atlas> simple_roots (G)
Value:
| 1, 0, 0, 0 |
| -1, 1, 0, 0 |
| 0, -1, 1, 0 |
| 0, 0, -1, 2 |
atlas> rho(G)
Value: [ 4, 3, 2, 1 ]/1
atlas>
These are isomorphic root data. They are equal up to a change of
coordinates. We just need to be aware of which coordinates atlas
is using.