"Source: Text/Lat/LatNF.text";
"Line: 1709";
"Date: Fri Sep 26 12:10:10 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Lat/LatNF.text, line: 1709
// Example: H32E3 ()
print "Example: H32E3";
ei := GetEchoInput();
SetEchoInput(true);
K<s13> := NumberField(Polynomial([-13,0,1])); // Q(sqrt(13))
L := NumberFieldLattice(K,3);
v := Zero(L);
assert IsZero(v);
w1 := L.1;
w2 := L.2-L.3;
CoordinatesToLattice(L,Vector(5*w1-s13*w2));
assert w2 in L;
assert not Vector(w2)/2 in L; // cannot divide w2 by 2 directly
assert Parent(v) eq L;
Norm(w2);
assert $1 eq 2;
InnerProduct(w1,w2);
assert $1 eq 0;
T := Matrix(3,3,[K|s13,1,0, 3,-1,1+s13, s13,-s13,2+s13]);
T*w2;
w2*T; // same, as basis is standard
S := sub<L|[w1,w2]>;
Submatrix(T,1,1,2,2)*(S.1); // random input data, 2x2 mat in T*v
G := AutomorphismGroup(L);
assert #G eq 48;
w2^G; // Orbit
assert #$1 eq 12;
#Stabilizer(G,w2); // 4*12 is 48
assert $1 eq 4;
#Stabilizer(G,w1);
assert $1 eq 8;
#Orbit(G,{w1,w2});
assert $1 eq 24;
SetEchoInput(ei);
