Isomorphisms of projective planes are mappings which take points to points and blocks to blocks and respect incidence. A collineation of a projective plane P is a collineation from P to P (an automorphism).
As projective planes are assumed to live on the integers, isomorphisms of projective planes are represented by permutations. To test if a permutation on points is actually an isomorphism of projective planes, the following methods can be used.
IsIsomorphismOfProjectivePlanes(
perm,
blocks1,
blocks2 ) O
Let blocks1, blocks2 be two sets of blocks of projective planes
on the same points.
IsIsomorphismOfProjectivePlanes(
perm,
blocks1,
blocks2 )
test if the permutation
perm on points defines an isomorphism of the projective planes defined
by blocks1 and blocks2.
IsCollineationOfProjectivePlane(
perm,
blocks ) O
IsCollineationOfProjectivePlane(
perm,
data ) O
Let blocks be the blocks of a projective plane and perm a permutation
on the points of this plane. IsCollineationOfProjectivePlane(
perm,
blocks)
returns
true
, if perm induces a collineation of the projective plane.
If data as returned by ElationPrecalc
is given instead of blocks,
the calculation should be faster.
IsomorphismProjPlanesByGenerators(
gens1,
data1,
gens2,
data2 ) O
IsomorphismProjPlanesByGeneratorsNC(
gens1,
data1,
gens2,
data2 ) O
Let gens1 be a list of points generating the projective plane defined
by data1 and gens2 a list of generating points for data2. Then a
permutation is returned representing a mapping from the data1.points
to data2.points and mapping the list gens1 to the list gens2.
If there is no such mapping which defines an isomorphism of projective
planes, fail
is returned.
Note that this is a ``small'' function, in the sense that data1 and
data2 are as returned by ElationPrecalcSmall
rather than by
ElationPrecalc
.
IsomorphismProjPlanesByGeneratorsNC
does not checked whether gens1
and gens2 really generate the planes given by data1 and data2.
# Assume that <blocks> contains a list of lines of a projective plane # of order 16 gap> data:=ElationPrecalc(blocks);; gap> Size(ProjectiveClosureOfPointSet([1,2,3,5],16,data)); 4 gap> Size(ProjectiveClosureOfPointSet([1,2,60,268],16,data));time; 273 0 gap> Size(ProjectiveClosureOfPointSet([1,2,60,268],0,data));time; 273 184 gap> IsomorphismProjPlanesByGenerators([1,2,3,5],data,[1,2,60,268],data); fail gap> IsomorphismProjPlanesByGenerators([1,2,60,268],data,[1,2,60,268],data); () gap> IsomorphismProjPlanesByGenerators([1,2,60,268],data,[1,3,146,268],data); (2,3)(5,10)(6,12)(7,9)(8,11)(13,16)(17,249)(18,251)(19,250)( [...] ) gap> Order(last); 2
RDS manual