Unitals#

A unital in the classical projective plane \(PG_2(q^2)\) is a set of \(q^3 + 1\) points such that every line meeting two of these points meets exactly \(q + 1\) of them.

IsUnital(P, U): Plane, { PlanePt} -> BoolElt#

Given a set of points \(U\) belonging to a projective plane \(P\) defined over a field of cardinality \(q^2\), return true if \(U\) is a unital.

AllTangents(P, U): Plane, { PlanePt} -> { PlaneLn}#

Given a unital set of points \(U\) in the projective plane \(P\), return the set of tangents to the points of \(U\).

UnitalFeet(P, U, p): Plane, { PlanePt}, PlanePt -> { PlanePt}#

The set of intersections of the unital set of points \(U\) with the tangents to \(U\) in the plane \(P\) which pass through the point \(p\).

Example: unital (ex-fe7f50)#

The following code computes the Hermitian unital given by the equation \(x^{q + 1} + y^{q + 1} + z^{q + 1} = 0\) in \(PG_2(q^2)\) for \(q = 3\).

> q := 3;
> F<w> := GaloisField(q ^ 2);
> P, V, L := FiniteProjectivePlane(F);
>
> hu := { V | [x,y,z] : x, y, z in F |
>                x^(q+1) + y^(q+1) + z^(q+1) eq 0 and {x, y, z} ne {0} };
>
> IsUnital(P, hu);
true
> UnitalFeet(P, hu, V.1);
{  ( 0 : 1 : w ), ( 0 : 1 : w^3 ), ( 0 : 1 : w^5 ), ( 0 : 1 : w^7 ) }

Run in calculator

Since this set has more than one element, V.1 must not be in \(hu\):

> V.1 in hu;
false

Run in calculator

For a point in \(hu\):

> UnitalFeet(P, hu, Rep(hu));
{  ( 1 : 0 : w^7 ) }

Run in calculator

Now we construct the design given by \(hu\).

> blks := [blk : lin in L | #blk eq (q+1) where blk is lin meet hu ];
> D := Design< 2, SetToIndexedSet(hu) | blks >;
> D;
2-(28, 4, 1) Design with 63 blocks

Run in calculator