Arcs#
A \(k\)–arc in a projective or affine plane \(P\) is a set of \(k\) points of \(P\), no three of which are collinear. A \(k\)–arc is complete if it cannot be extended to a \((k + 1)\)–arc by the addition of another point. A tangent to an arc \(A\) is a line which meets \(A\) exactly once; a secant is a line which meets \(A\) exactly twice; and a passant, or external line, is a line which does not meet \(A\) at all.
- kArc(P, k): Plane, RngIntElt -> SetEnum#
Return a \(k\)–arc for the plane \(P\).
- CompleteKArc(P, k): Plane, RngIntElt -> SetEnum#
Return a complete \(k\)–arc for the plane \(P\) (if one exists).
- IsArc(P, A): Plane, { PlanePt } -> BoolElt#
Returns
trueif the set of points \(A\) is an arc in the plane \(P\), i.e. no three points of \(A\) are collinear.
- IsComplete(P, A): Plane, { PlanePt } -> BoolElt#
Returns
trueif the \(k\)–arc \(A\) is complete in the plane \(P\).
- Conic(P, S): Plane, { PlanePt } -> SetEnum#
Given a set \(S\) of five points belonging to a classical projective plane \(P\) of order \(n > 3\) and being in general position, construct the unique conic that passes through them.
- QuadraticForm(S): { PlanePt } -> RngMPolElt#
Given a set \(S\) of five points belonging to a classical projective plane of order \(n > 3\) that are in general position, return the quadratic form defining the conic containing the five points.
- Tangent(P, A, p): Plane, { PlanePt }, PlanePt -> PlaneLn#
Given an arc \(A\) in the plane \(P\), and a point \(p\) on \(A\), return a tangent to \(A\) at \(p\).
- AllTangents(P, A): Plane, { PlanePt} -> { PlaneLn}#
Given an arc \(A\) in the plane \(P\), return the set of tangent lines to \(A\).
- AllSecants(P, A): Plane, { PlanePt} -> { PlaneLn}#
Given an arc \(A\) in the plane \(P\), return the set of secant lines to \(A\).
- ExternalLines(P, A): Plane, { PlanePt} -> { PlaneLn}#
- AllPassants(P, A): Plane, { PlanePt} -> { PlaneLn}#
Given an arc \(A\) in the plane \(P\), return the set of external lines to \(A\).
- Knot(P, C): Plane, { PlanePt} -> PlanePt#
Given a conic \(C\) in the projective plane \(P\) of even order, return the knot of the conic \(C\), i.e the intersection point of the tangents to \(C\).
- Exterior(P, C): Plane, { PlanePt} -> { PlanePt}#
Given a conic \(C\) in the projective plane \(P\) of odd order, return the exterior points of \(C\), i.e. the points of \(P\) that lie on two tangents of \(C\).
- Interior(P, C): Plane, { PlanePt} -> { PlanePt}#
Given a conic \(C\) in the projective plane \(P\) of odd order, return the interior points of \(C\), i.e. the points of \(P\) that do not lie on any tangent of \(C\).
- Example: arcs (ex-ca0adf)#
The following sequence of instructions constructs an oval design from \(PG_2(16)\).
> P, V, L := FiniteProjectivePlane(16); > oval := kArc(P, 18); > pts := Points(P) diff oval; > lns := ExternalLines(P, oval); > I := IncidenceStructure< SetToIndexedSet(pts) | [l meet pts : l in lns] >; > D := Design(Dual(I), 2); > D; 2-(120, 8, 1) Design with 255 blocks
The next example uses various functions discussed so far, and shows the relationship between a plane and its subplanes.
> K<w> := GF(9); > P, V, L := FiniteProjectivePlane(K); > c := kArc(P, 5); > c; { ( 1 : 0 : 0 ), ( 0 : 1 : 0 ), ( 0 : 0 : 1 ), ( 1 : 2 : w^3 ), ( 1 : w : w) } > C := Conic(P, c); > C; { ( 1 : 0 : 0 ), ( 0 : 1 : 0 ), ( 0 : 0 : 1 ), ( 1 : 2 : w^3 ), ( 1 : w : w), ( 1 : w^5 : w^6 ), ( 1 : w^7 : 2 ), ( 1 : w^2 : 1 ), ( 1 : w^3 : w^5 ), ( 1 : w^6 : w^2 ) } > #C; 10 > #Interior(P, C); 36 > > S, SV, SL := SubfieldSubplane(P, GF(3)); > S subset P; true > a := kArc(S, 4); > IsArc(S, a); true > IsArc(P, a); true > IsComplete(S, a); true > IsComplete(P, a); false > a; { ( 1 : 0 : 0 ), ( 0 : 1 : 0 ), ( 0 : 0 : 1 ), ( 1 : 2 : 1 ) } > S2 := sub< P | a >; > S2; Projective Plane of order 3 > S2 eq S; true > p := Random(a); > p; ( 1 : 2 : 1 ) > Tangent(S, a, p); < 1 : 2 : 1 > > AllTangents(S, a); { < 1 : 2 : 0 >, < 0 : 1 : 2 >, < 1 : 2 : 1 >, < 1 : 0 : 1 > } > AllTangents(P, a); { < 1 : w^5 : w^6 >, < 1 : 0 : w >, < 1 : w^2 : w >, < 1 : 0 : w^6 >, < 1 : 0 : 1 >, < 1 : w^6 : w^3 >, < 1 : w^6 : 0 >, < 0 : 1 : w^6 >, < 1 : 2 : 0 >, < 0 : 1 : 2 >, < 1 : 2 : 1 >, < 1 : w^3 : w^5 >, < 1 : 0 : w^7 >, < 1 : 0 : w^2 >, < 1 : w : 0 >, < 0 : 1 : w >, < 1 : 0 : w^5 >, < 1 : 0 : w^3 >, < 1 : w : w^7 >, < 1 : w^3 : 0 >, < 0 : 1 : w^3 >, < 1 : w^7 : w^2 >, < 1 : w^5 : 0 >, < 0 : 1 : w^5 >, < 1 : w^7 : 0 >, < 0 : 1 : w^7 >, < 1 : w^2 : 0 >, < 0 : 1 : w^2 > }