A unital in the classical projective plane PG2(q2) is a set of q3 + 1 points such that every line meeting two of these points meets exactly q + 1 of them.
Given a set of points U belonging to a projective plane P defined over a field of cardinality q2, return true if U is a unital.
Given a unital set of points U in the projective plane P, return the set of tangents to the points of U.
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.
> 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 ) }Since this set has more than one element, V.1 must not be in hu:
> V.1 in hu; falseFor a point in hu:
> UnitalFeet(P, hu, Rep(hu)); { ( 1 : 0 : w^7 ) }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