# The T_1-blocking sets that have been found with the aid of GeneralB.sage # are defined on the point set [0..q^3-q-1]. We transform them to # T_1-blocking sets in the model of PG(3,q) and Q^+(3,q) as defined in # GeneralA.sage. Moreover, we store only one copy for each isomorphism # class of T_1-blocking sets. # First, we implement again these computer models of PG(3,q) and Q^+(3,q) # (see GeneralA.g). # Select a prime power: q:=3; if q=2 then N:=4; fi; if q=3 then N:=6; fi; if q=4 then N:=4; fi; if q=5 then N:=7; fi; if q=7 then N:=6; fi; if q=8 then N:=4; fi; if q=9 then N:=19; fi; if q=11 then N:=6; fi; if q=13 then N:=9; fi; v:=q^3+q^2+q+1; g:=AllPrimitiveGroups(DegreeOperation,v)[N]; h:=Stabilizer(g,[1,2],OnSets); Orbs:=Orbits(h,[1..v]); Orbs2:=Filtered(Orbs,x->Size(x) in [2,q-1]); line:=Union(Orbs2); lines:=Orbit(g,line,OnSets); line1:=line; help:=Filtered(lines,x->Intersection(x,line)=[]); line2:=help[1]; help:=Filtered(lines,x->Intersection(x,Union(line1,line2))=[]); line3:=help[1]; help:=Filtered(lines,x->Intersection(x,line1)<>[] and Intersection(x,line2)<>[] and Intersection(x,line3)<>[]); hyp:=Union(help); compl:=Difference([1..v],hyp); # With the following command, we can transform every T_1-blocking set in the model # of PG(3,q)\Q^+(3,q) with point set [0..q^3-q-1] (see GeneralB.sage) to the # T_1-blocking set in the model of PG(3,q) and Q^+(3,q) as defined in # GeneralA.sage. CreateOv:=function(A) local B; B:=Set(A); return List(B,x->compl[x+1]); end; # With the aid of GeneralB.sage, we created a list ovs of T_1-blocking sets in # the model of PG(3,q)\Q^+(3,q) with point set [0..q^3-q-1]. We turn them into # T_1-blocking sets in the model of PG(3,q) and Q^+(3,q) as defined in # GeneralA.sage. One copy for each isomorphism class of T_1-blocking sets is stored # in ovs2. We first implement the group G of all automorphisms of PG(3,q) # stabilizing the hyperbolic quadric Q^+(3,q). G:=Stabilizer(g,hyp,OnSets); ovs2:=[]; for ov in ovs do ov2:=CreateOv(ov); New:=true; for x in ovs2 do if RepresentativeAction(G,ov2,x,OnSets)<>fail then New:=false; break; fi; od; if New then Append(ovs2,[ov2]); fi; od; # With the command IsBlockingSet(A) below we can verify whether a set A of points # of PG(3,q)\Q^+(3,q) is a T_1-blocking set of size q^2-1. This can be used as a # verification of our computer computations. Outer:=Filtered(lines,x->Size(Intersection(x,hyp))=1); IsBlockingSet:=function(A) local B,x; B:=List(Outer,x->Size(Intersection(x,A))); return Set(B)=[1]; end;