Skip to content

Instantly share code, notes, and snippets.

@lispandfound
Created December 8, 2021 07:13
Show Gist options
  • Save lispandfound/2c7565141aa87717d4f5c12300aed1d7 to your computer and use it in GitHub Desktop.
Save lispandfound/2c7565141aa87717d4f5c12300aed1d7 to your computer and use it in GitHub Desktop.
Experiments
LoadPackage("fining");
e := 3;
q := 2 ^ e;
aut := 2^((e + 1) / 2);
pg := PG(2, q^2);
F := GF(q);
Ex := GF(q^2);
w := Z(q^2);
params := Cartesian(Elements(F), Elements(F), Elements(F));
UnitalPoint := function(p)
local r, s, t;
r := p[1];
s := p[2];
t := p[3];
return VectorSpaceToElement(pg, [s^(aut + 2) + t^aut + s*t + r*w, t + s*w, One(Ex)]);
end;
U := Concatenation([VectorSpaceToElement(pg, [One(Ex), Zero(Ex), Zero(Ex)])], List(params, p -> UnitalPoint(p)));
L := Lines(pg);
Display(Collected(List(L, l -> Number(U, p -> p in l))));
# Regular tits unital.
eps := First(Elements(Ex), e -> (e^q = 1 + e and Trace(e^2 - e) <> 1));
EbertUnital := function(p)
local r, s, t;
r := p[1];
s := p[2];
t := p[3];
return VectorSpaceToElement(pg, [One(Ex), s + t*eps, r + (s^(aut + 2) + t^aut + s*t)*eps]);
end;
U1 := Concatenation([VectorSpaceToElement(pg, [Zero(Ex), Zero(Ex), One(Ex)])], List(params, p -> EbertUnital(p)));
Display(Collected(List(L, l -> Number(U1, p -> p in l))));
LoadPackage("fining");
e := 3;
q := 2 ^ e;
aut := 2^((e + 1) / 2);
pg := PG(2, q^2);
F := GF(q);
Ex := GF(q^2);
params := Cartesian(Elements(F), Elements(F), Elements(F));
eps := First(Elements(Ex), e -> (e^q = 1 + e and Trace(e^2 - e) <> 1));
U := Concatenation([VectorSpaceToElement(pg, [0, 0, 1] * Z(q)^0)], List(params, p -> VectorSpaceToElement(pg, [Z(q)^0, p[1] + p[2] * eps, p[3] + (p[1]^(aut + 2) + p[2]^aut + p[1] * p[2]) * eps])));
pgsub := PG(2, q);
em := NaturalEmbeddingBySubfield(pgsub, pg);
baer := Set(Points(pgsub), x -> x^em);
collGroup := CollineationGroup(pg);
OutputLogTo("intersection.log");
for i in [1..500000] do
coll := Random(collGroup);
baerMap := OnSets(baer, coll);
intersectionCount := Number(baerMap, y -> y in U);
Display(intersectionCount);
if intersectionCount = 0 then
Display("Disjoint Baer Sub-Plane Found!");
fi;
od;
# Test Results (n=500,000):
# 9 153479
# 11 105432
# 7 105100
# 13 51343
# 5 50749
# 15 14059
# 3 13686
# 1 3080
# 17 3072
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment