Skip to content

Commit

Permalink
update taft.mag
Browse files Browse the repository at this point in the history
  • Loading branch information
galois60 committed Jul 27, 2023
1 parent 72cd7e5 commit a3b59a6
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions src/char2/taft.mag
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ GetDerivation := function (D, J, Q, S)
return w, LINEAR;
end function;

GetAnnihilator := function (S, w)

return A;
end function;


/*
Here is the input data to be modified:
Expand Down Expand Up @@ -150,36 +155,35 @@ procedure LinearLift (~D, ~J, ~Q, ~S, ~U : RANDOM := true)

// D stays the same
// J stays the same

// update Q
Q := QJ;

c := LinearCombination (
[Vector (gen_images[i]) : i in [1..#gen_images]],
Vector ((w @ f) @ pi)
);
// update S
gen_vecs := [Vector (gen_images[i]) : i in [1..#gen_images]];
c := LinearCombination (gen_vecs, Vector ((w @ f) @ pi));
u := &* [ U.i^Integers ()!(c[i]) : i in [1..Ngens (U)] ];
//assert exists (u){ x : x in U | x @ D`Star * x - one - w in QJ }; --- brute force alternative
assert (u @ D`Star) * u - one - w in QJ;
vprint Isometry, 1 : "[LinearLift] twisting element is u =", u;
vprint Isometry, 2 : "[LinearLift] twisting element is u =", u;
T := sub < Generic (S) | [ u^-1 * S.i * u : i in [1..Ngens (S)] ] >;
T`Star := hom < T -> T | t :-> u^-1 * ( (u * t * u^-1) @ S`Star ) * u >;
S := T;

assert forall { s : s in Generators (S) | s + (s @ S`Star) @ D`Star in QJ };
assert forall { s : s in Generators (S) | s + (s @ S`Star) @ D`Star in QJ };

// update U
null := Nullspace (M);
ker := sub < GL (d, K) | [
&* [ U.i^Integers ()!(n[i]) : i in [1..Ngens (U)] ] : n in Basis (null)
]
>;
// compute the derived subgroup of G: randomized or deterministic
if RANDOM then
if RANDOM then // use randomized algorithm to compute the derived subgroup
DU := DerivedGroupMonteCarlo (U);
else
else // use the defaul from the Large Matrix Group library
DU := LMGDerivedGroup (U);
end if;
U := sub < GL (d, K) | ker , DU , [ U.i^2 : i in [1..Ngens (U)] ] >;
vprint Isometry, 1 : "[LinearLift] order of U =", #U;
vprint Isometry, 1 : "[LinearLift] order of U =", LMGOrder (U);

else // swap D for an algebra fixing w in linear action

Expand Down

0 comments on commit a3b59a6

Please sign in to comment.