Lorentzian Lattices

Closely related to totally positive definite lattices are Lorentzian lattices. These are defined over totally real fields, and have exactly one embedding for which the lattice is not positive definite, at which it has a Lorentzian signature (d - 1, 1) in dimension d.

A vector that has negative norm at this distinguished embedding is said to be timelike, while a vector with totally positive norm is spacelike.

Contents

Special Intrinsics

IsLorentzian(L) : LatNF -> BoolElt, ModTupFldElt, RngIntElt
Given a number field lattice L over a totally real field, return true f L is Lorentzian and if so, also a return a lattice vector that has negative norm at the given embedding.
IsTimelike(v): LatNFElt -> BoolElt
IsSpacelike(v): LatNFElt -> BoolElt
Given a lattice field vector v in a Lorentzian lattice L return true if v is timelike (respectively spacelike). If the lattice is not Lorentzian, an error is signaled.
AutomorphismGroup(L, v) : LatNF, LatNFElt -> GrpMat, GrpMat
    NaturalAction: BoolElt              Default: false
Given a number field lattice L and a timelike vector v in it, determine the joint stabilizer. This is computed by determining the stabilizer (automorphism group) of the orthogonal complement of the vector and extending it to the lattice by requiring the vector also to be fixed. In other words, the group A=(Aut)(v direct-sum vperp) is computed. The subgroup of A that stabilizes the lattice is then returned, while A is returned as a second value. If the NaturalAction vararg is set, the transformations are rewritten on the ambient space.
IsIsometric(L, v, w) : LatNF, LatNFElt, LatNFElt -> BoolElt, Mtrx
    NaturalAction: BoolElt              Default: false
Given a number field lattice L and two timelike vectors v and w in it, determine whether there is an automorphism of L that sends w to v, and if so return such an isometry as the second argument. If the NaturalAction vararg is set, transformations are rewritten on the ambient space.

Example LatNF_simple-lorentz-lat-ex (H32E9)

We construct an easy Lorentzian lattice and compute isometries and automorphism group with various timelike vectors.

> K<u> := QuadraticField(5);
> G := DiagonalMatrix([-(u+1)/2,1,1,1]);
> L := NumberFieldLattice(K,4 : Gram:=G);
> IsLorentzian(L);
true (1 0 0 0) 1
> v := L![(u+1)/2,(u+1)/2,0,1];
> w := L![(u+1),(u+3)/2,(u+1)/2,(u+3)/2];
> assert IsTimelike(v) and IsTimelike(w);
> Norm(v), Norm(w);
1/2*(-u + 1)  1/2*(-u + 1)
> b, T := IsIsometric(L,v,w); assert b; T;
[       2*u + 5 1/2*(5*u + 11)          u + 2    1/2*(u + 1)]
[1/2*(-3*u - 5) 1/2*(-3*u - 7)   1/2*(-u - 3)   1/2*(-u - 1)]
[  1/2*(-u - 1)   1/2*(-u - 1)   1/2*(-u - 1)              0]
[        -u - 2         -u - 3   1/2*(-u - 1)              0]
> assert T*w eq v;
> #AutomorphismGroup(L,L![1,0,1,(3-u)/2]);
16
> #AutomorphismGroup(L,L![1,0,0,0]);
48
> #AutomorphismGroup(L,L![1,1,0,0]);
48
> #AutomorphismGroup(L,L![1,(u-1)/2,(u-1)/2,(u-1)/2]);
120
> s := L![1,0,(u-1)/2,(u-1)/2];
> A, B := AutomorphismGroup(L,s);
> #A,#B; // the automorphism group of s+O is larger than L
20 40
> O := OrthogonalComplement(L,s); // s+O has index 5 in L
> assert #AutomorphismGroup(O) eq #B;
> Norm(Determinant(sub<L|[s]>+O)/Determinant(L));
25
V2.28, 13 July 2023