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 true if 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 true if 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

Run in calculator

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 >
}

Run in calculator