DnLattice( tbl, grammat, reducibles )
tries to find sublattices isomorphic to root lattices of type D_n (for n geq 5 or n = 4) in a lattice that is generated by the norm 2 characters reducibles, which must be characters of the table tbl. grammat must be the matrix of scalar products of reducibles, i.e., the Gram matrix of the lattice.
DnLattice
is able to find irreducible characters if there is a lattice
with n>4. In the case n = 4 DnLattice
only in some cases finds
irreducibles.
DnLattice
returns a record with components
irreducibles
:
remainders
:
gram
:remainders
.
The remaining reducible characters are transformed into a normalized
form, so that the lattice-structure is cleared up for further treatment.
So DnLattice
might be useful even if it fails to find irreducible
characters.
gap> tbl:= CharTable( "Symmetric", 4 );; gap> y1:=[ [ 2, 0, 2, 2, 0 ], [ 4, 0, 0, 1, 2 ], [ 5, -1, 1, -1, 1 ], > [ -1, 1, 3, -1, -1 ] ];; gap> g1:= MatScalarProducts( tbl, y1, y1 ); [ [ 2, 1, 0, 0 ], [ 1, 2, 1, -1 ], [ 0, 1, 2, 0 ], [ 0, -1, 0, 2 ] ] gap> e:= DnLattice( tbl, g1, y1 ); rec( gram := [ ], remainders := [ ], irreducibles := [ [ 2, 0, 2, -1, 0 ], [ 1, -1, 1, 1, -1 ], [ 1, 1, 1, 1, 1 ], [ 3, -1, -1, 0, 1 ] ] )
DnLatticeIterative( tbl, arec )
was made for iterative use of DnLattice
. arec must be either a list
of characters of the table tbl, or a record with components
remainders
:
norms
:remainders
,
e.g., a record returned by LLL LLL
. DnLatticeIterative
will select
the characters of norm 2, call DnLattice
, reduce the characters with
found irreducibles, call DnLattice
for the remaining characters, and so
on, until no new irreducibles are found.
DnLatticeIterative
returns (like LLL LLL
) a record with components
irreducibles
:
remainders
:
norms
:remainders
.
gap> tbl:= CharTable( "Symmetric", 4 );; gap> y1:= [ [ 2, 0, 2, 2, 0 ], [ 4, 0, 0, 1, 2 ], > [ 5, -1, 1, -1, 1 ], [ -1, 1, 3, -1, -1 ], [ 6, -2, 2, 0, 0 ] ];; gap> DnLatticeIterative( tbl, y1); rec( irreducibles := [ [ 2, 0, 2, -1, 0 ], [ 1, -1, 1, 1, -1 ], [ 1, 1, 1, 1, 1 ], [ 3, -1, -1, 0, 1 ] ], remainders := [ ], norms := [ ] )
GAP 3.4.4