# Finite Planes

- [Introduction](introduction.md)

  - [Planes in Magma](introduction.md#planes-in-magma)

- [Construction of a Plane](creation.md)

  - [`FiniteProjectivePlane< v | X : parameters >: RngIntElt, List → PlaneProj`](creation.md#constructor-constructor-finiteprojectiveplane-rngintelt-list-planeproj)

  - [`FiniteProjectivePlane< V | X : parameters >: SetIndx, List → PlaneProj`](creation.md#constructor-constructor-finiteprojectiveplane-setindx-list-planeproj)

  - [`FiniteProjectivePlane(W): ModTupFld → PlaneProj`](creation.md#function-finiteprojectiveplane-modtupfld)

  - [`FiniteProjectivePlane(F): FldFin → PlaneProj`](creation.md#function-finiteprojectiveplane-fldfin)

  - [`FiniteProjectivePlane(q): RngIntElt → PlaneProj`](creation.md#function-finiteprojectiveplane-rngintelt)

  - [`FiniteAffinePlane< v | X : parameters >: RngIntElt, List → PlaneAff`](creation.md#constructor-constructor-finiteaffineplane-rngintelt-list-planeaff)

  - [`FiniteAffinePlane< V | X : parameters >: SetIndx, List → PlaneAff`](creation.md#constructor-constructor-finiteaffineplane-setindx-list-planeaff)

  - [`FiniteAffinePlane(W): ModFld → PlaneAff`](creation.md#function-finiteaffineplane-modfld)

  - [`FiniteAffinePlane(F): FldFin → PlaneProj`](creation.md#function-finiteaffineplane-fldfin)

  - [`FiniteAffinePlane(q): RngIntElt → PlaneProj`](creation.md#function-finiteaffineplane-rngintelt)

  - [`Example: Constructors`](creation.md#example-ex-9ba67e)

- [The Point-Set and Line-Set of a Plane](point-line-set.md)

  - [Introduction](point-line-set.md#introduction)

  - [Creating Point-Sets and Line-Sets](point-line-set.md#creating-point-sets-and-line-sets)

    - [`PointSet(P): Plane → PlanePtSet`](point-line-set.md#function-pointset-plane)

    - [`LineSet(P): Plane → PlaneLnSet`](point-line-set.md#function-lineset-plane)

  - [Using the Point-Set and Line-Set to Create Points and Lines](point-line-set.md#using-the-point-set-and-line-set-to-create-points-and-lines)

    - [`V . i: PlanePtSet, RngIntElt → PlanePt`](point-line-set.md#operation-operation-planeptset-rngintelt-planept)

    - [`V ! [a, b, c]: PlanePtSet, SeqEnum → PlanePt`](point-line-set.md#operation-op-planeptset-seqenum)

    - [`V ! [a, b]: PlanePtSet, SeqEnum → PlanePt`](point-line-set.md#operation-op-planeptset-seqenum-2)

    - [`V ! x: PlanePtSet, Elt → PlanePt`](point-line-set.md#operation-op-planeptset-elt)

    - [`Representative(V): PlanePtSet → PlanePt`](point-line-set.md#function-representative-planeptset)

    - [`Rep(V): PlanePtSet → PlanePt`](point-line-set.md#function-rep-planeptset)

    - [`Random(V): PlanePtSet → PlanePt`](point-line-set.md#function-random-planeptset)

    - [`L . i: PlanePtSet, RngIntElt → PlanePt`](point-line-set.md#operation-operation-planeptset-rngintelt-planept-2)

    - [`L ! [a, b, c]: PlaneLnSet, SeqEnum → PlaneLn`](point-line-set.md#operation-op-planelnset-seqenum)

    - [`L ! [m, b]: PlaneLnSet, SeqEnum → PlaneLn`](point-line-set.md#operation-op-planelnset-seqenum-2)

    - [`L ! S: PlaneLnSet, SetEnum → PlaneLn`](point-line-set.md#operation-op-planelnset-setenum)

    - [`L ! S: PlaneLnSet, SeqEnum → PlaneLn`](point-line-set.md#operation-op-planelnset-seqenum-3)

    - [`L ! l: PlaneLnSet, PlaneLn → PlaneLn`](point-line-set.md#operation-op-planelnset-planeln)

    - [`Representative(L): PlaneLnSet → PlaneLn`](point-line-set.md#function-representative-planelnset)

    - [`Rep(L): PlaneLnSet → PlaneLn`](point-line-set.md#function-rep-planelnset)

    - [`Random(L): PlaneLnSet → PlaneLn`](point-line-set.md#function-random-planelnset)

    - [`Example: Points Lines`](point-line-set.md#example-ex-afb4c8)

  - [Retrieving the Plane from Points, Lines, Point-Sets and Line-Sets](point-line-set.md#retrieving-the-plane-from-points-lines-point-sets-and-line-sets)

    - [`ParentPlane(V): PlanePtSet → Plane, PlanePtSet, PlaneLnSet`](point-line-set.md#function-parentplane-planeptset)

    - [`ParentPlane(L): PlaneLnSet → Plane, PlanePtSet, PlaneLnSet`](point-line-set.md#function-parentplane-planelnset)

    - [`ParentPlane(p): PlanePt → Plane, PlanePtSet, PlaneLnSet`](point-line-set.md#function-parentplane-planept)

    - [`ParentPlane(l): PlaneLn → Plane, PlanePtSet, PlaneLnSet`](point-line-set.md#function-parentplane-planeln)

- [The Set of Points and Set of Lines](point-line.md)

  - [`Points(P): Plane → { PlanePt }`](point-line.md#function-points-plane)

  - [`Lines(P): PlaneLnSet → { PlaneLn}`](point-line.md#function-lines-planelnset)

- [The Defining Points of a Plane](support.md)

  - [`Support(P): Plane → { Elt }`](support.md#function-support-plane)

  - [`Support(l): PlaneLn → SetEnum`](support.md#function-support-planeln)

  - [`Support(P, p): Plane, PlanePt → .`](support.md#function-support-plane-planept)

  - [`Support(p): PlanePt → .`](support.md#function-support-planept)

  - [`Example: supp`](support.md#example-ex-d7a158)

- [Subplanes](subplane.md)

  - [`sub<P | L>: Plane, List → Plane`](subplane.md#constructor-constructor-sub-plane-list-plane)

  - [`SubfieldSubplane(P, F): Plane, FldFin → Plane, PlanePtSet, PlaneLnSet`](subplane.md#function-subfieldsubplane-plane-fldfin)

  - [`Example: sub`](subplane.md#example-ex-6d2e99)

- [Structures Associated with a Plane](access.md)

  - [`VectorSpace(P): Plane → ModTupFld`](access.md#function-vectorspace-plane)

  - [`Field(P): Plane → FldFin`](access.md#function-field-plane)

  - [`IncidenceMatrix(P): Plane → AlgMatElt`](access.md#function-incidencematrix-plane)

  - [`Dual(P): Plane → Plane, PlanePtSet, PlaneLnSet`](access.md#function-dual-plane)

  - [`Example: sub`](access.md#example-ex-6a749f)

- [Numerical Invariants of a Plane](invariant.md)

  - [`Order(P): Plane → RngIntElt`](invariant.md#function-order-plane)

  - [`NumberOfPoints(P): Plane → RngIntElt`](invariant.md#function-numberofpoints-plane)

  - [`# V: PlanePtSet → RngIntElt`](invariant.md#operation-operation-planeptset-rngintelt)

  - [`NumberOfLines(P): Plane → RngIntElt`](invariant.md#function-numberoflines-plane)

  - [`# L: PlaneLnSet → RngIntElt`](invariant.md#operation-operation-planelnset-rngintelt)

  - [`pRank(P): Plane → RngIntElt`](invariant.md#function-prank-plane)

  - [`pRank(P, p): Plane, RngIntElt → RngIntElt`](invariant.md#function-prank-plane-rngintelt)

  - [`Example: invar`](invariant.md#example-ex-1297f0)

- [Properties of Planes](boolean.md)

  - [`IsDesarguesian(P): Plane → BoolElt`](boolean.md#function-isdesarguesian-plane)

  - [`IsSelfDual(P): PlaneProj → BoolElt`](boolean.md#function-isselfdual-planeproj)

- [Identity and Isomorphism](equality.md)

  - [`P eq Q: Plane, Plane → BoolElt`](equality.md#operation-op-eq-plane-plane)

  - [`P ne Q: Plane, Plane → BoolElt`](equality.md#operation-op-ne-plane-plane)

  - [`IsIsomorphic(P, Q: parameters): Plane, Plane → BoolElt, Map`](equality.md#function-isisomorphic-plane-plane)

  - [`P subset Q: Plane, Plane → BoolElt`](equality.md#operation-op-subset-plane-plane)

- [The Connection between Projective and Affine Planes](projective-affine.md)

  - [`FiniteAffinePlane(P, l): PlaneProj, PlaneLn → PlaneAff, PlanePtSet, PlaneLnSet, Map`](projective-affine.md#function-finiteaffineplane-planeproj-planeln)

  - [`ProjectiveEmbedding(P): PlaneAff → PlaneProj, PlanePtSet, PlaneLnSet, Map`](projective-affine.md#function-projectiveembedding-planeaff)

  - [`Example: embedding`](projective-affine.md#example-ex-a0e5e5)

- [Operations on Points and Lines](operation.md)

  - [Elementary Operations](operation.md#elementary-operations)

    - [`p eq q: PlanePt, PlanePt → BoolElt`](operation.md#operation-op-eq-planept-planept)

    - [`p ne q: PlanePt, PlanePt → BoolElt`](operation.md#operation-op-ne-planept-planept)

    - [`l eq m: PlaneLn, PlaneLn → BoolElt`](operation.md#operation-op-eq-planeln-planeln)

    - [`l ne m: PlaneLn, PlaneLn → BoolElt`](operation.md#operation-op-ne-planeln-planeln)

    - [`p in l: PlanePt, PlaneLn → BoolElt`](operation.md#operation-op-in-planept-planeln)

    - [`p notin l: PlanePt, PlaneLn → BoolElt`](operation.md#operation-op-notin-planept-planeln)

    - [`S subset l: { PlanePt}, PlaneLn → BoolElt`](operation.md#operation-op-subset-planept-planeln)

    - [`S notsubset l: { PlanePt}, PlaneLn → BoolElt`](operation.md#operation-operation-notsubset-planept-planeln-boolelt)

    - [`l meet m: PlaneLn, PlaneLn → PlanePt`](operation.md#operation-op-meet-planeln-planeln)

    - [`Representative(l): PlaneLn → PlanePt`](operation.md#function-representative-planeln)

    - [`Rep(l): PlaneLn → PlanePt`](operation.md#function-rep-planeln)

    - [`Random(l): PlaneLn → PlanePt`](operation.md#function-random-planeln)

  - [Deconstruction Functions](operation.md#deconstruction-functions)

    - [`Index(P, p): Plane, PlanePt → RngIntElt`](operation.md#function-index-plane-planept)

    - [`Index(P, l): Plane, PlaneLn → RngIntElt`](operation.md#function-index-plane-planeln)

    - [`p[i]: PlanePt, RngIntElt → FldFinElt`](operation.md#literal-literal-p-i-planept-rngintelt-fldfinelt)

    - [`l[i]: PlaneLn, RngIntElt → FldFinElt`](operation.md#literal-literal-l-i-planeln-rngintelt-fldfinelt)

    - [`Coordinates(P, p): Plane, PlanePt → [ FldFinElt ]`](operation.md#function-coordinates-plane-planept)

    - [`Coordinates(P, l): Plane, PlaneLn → [ FldFinElt ]`](operation.md#function-coordinates-plane-planeln)

    - [`ElementToSequence(p): PlanePt → [ FldFinElt ]`](operation.md#function-elementtosequence-planept)

    - [`Eltseq(p): PlanePt → [ FldFinElt ]`](operation.md#function-eltseq-planept)

    - [`ElementToSequence(l): PlaneLn → [ FldFinElt ]`](operation.md#function-elementtosequence-planeln)

    - [`Eltseq(l): PlaneLn → [ FldFinElt ]`](operation.md#function-eltseq-planeln)

    - [`Set(l): PlaneLn → { PlanePt }`](operation.md#function-set-planeln)

    - [`Example: decon`](operation.md#example-ex-b3b9f2)

  - [Other Point and Line Functions](operation.md#other-point-and-line-functions)

    - [`IsCollinear(P, S): Plane, { PlanePt} → BoolElt, PlaneLn`](operation.md#function-iscollinear-plane-planept)

    - [`IsConcurrent(P, R): Plane, { PlaneLn} → BoolElt, PlanePt`](operation.md#function-isconcurrent-plane-planeln)

    - [`ContainsQuadrangle(P, S): Plane, { PlanePt } → BoolElt`](operation.md#function-containsquadrangle-plane-planept)

    - [`Pencil(P, p): Plane, PlanePt → { PlaneLn }`](operation.md#function-pencil-plane-planept)

    - [`Slope(l): PlaneLn → FldFinElt`](operation.md#function-slope-planeln)

    - [`IsParallel(P, l, m): Plane, PlaneLn, PlaneLn → BoolElt`](operation.md#function-isparallel-plane-planeln-planeln)

    - [`ParallelClass(P, l): Plane, PlaneLn → { PlaneLn }`](operation.md#function-parallelclass-plane-planeln)

    - [`ParallelClasses(P): PlaneAff → { { PlaneLn } }`](operation.md#function-parallelclasses-planeaff)

    - [`Example: Elt Other`](operation.md#example-ex-c0212f)

- [Arcs](arc.md)

  - [`kArc(P, k): Plane, RngIntElt → SetEnum`](arc.md#function-karc-plane-rngintelt)

  - [`CompleteKArc(P, k): Plane, RngIntElt → SetEnum`](arc.md#function-completekarc-plane-rngintelt)

  - [`IsArc(P, A): Plane, { PlanePt } → BoolElt`](arc.md#function-isarc-plane-planept)

  - [`IsComplete(P, A): Plane, { PlanePt } → BoolElt`](arc.md#function-iscomplete-plane-planept)

  - [`Conic(P, S): Plane, { PlanePt } → SetEnum`](arc.md#function-conic-plane-planept)

  - [`QuadraticForm(S): { PlanePt } → RngMPolElt`](arc.md#function-quadraticform-planept)

  - [`Tangent(P, A, p): Plane, { PlanePt }, PlanePt → PlaneLn`](arc.md#function-tangent-plane-planept-planept)

  - [`AllTangents(P, A): Plane, { PlanePt} → { PlaneLn}`](arc.md#function-alltangents-plane-planept)

  - [`AllSecants(P, A): Plane, { PlanePt} → { PlaneLn}`](arc.md#function-allsecants-plane-planept)

  - [`ExternalLines(P, A): Plane, { PlanePt} → { PlaneLn}`](arc.md#function-externallines-plane-planept)

  - [`AllPassants(P, A): Plane, { PlanePt} → { PlaneLn}`](arc.md#function-allpassants-plane-planept)

  - [`Knot(P, C): Plane, { PlanePt} → PlanePt`](arc.md#function-knot-plane-planept)

  - [`Exterior(P, C): Plane, { PlanePt} → { PlanePt}`](arc.md#function-exterior-plane-planept)

  - [`Interior(P, C): Plane, { PlanePt} → { PlanePt}`](arc.md#function-interior-plane-planept)

  - [`Example: arcs`](arc.md#example-ex-ca0adf)

- [Unitals](unital.md)

  - [`IsUnital(P, U): Plane, { PlanePt} → BoolElt`](unital.md#function-isunital-plane-planept)

  - [`AllTangents(P, U): Plane, { PlanePt} → { PlaneLn}`](unital.md#function-alltangents-plane-planept-2)

  - [`UnitalFeet(P, U, p): Plane, { PlanePt}, PlanePt → { PlanePt}`](unital.md#function-unitalfeet-plane-planept-planept)

  - [`Example: unital`](unital.md#example-ex-fe7f50)

- [The Collineation Group of a Plane](collineation-group.md)

  - [The Collineation Group Function](collineation-group.md#the-collineation-group-function)

    - [`CollineationGroup(P): Plane → GrpPerm, GSet, GSet, PowMap, Map`](collineation-group.md#function-collineationgroup-plane)

    - [`AutomorphismGroup(P): Plane → GrpPerm, GSet, GSet, PowMap, Map`](collineation-group.md#function-automorphismgroup-plane)

    - [`PointGroup(P): Plane → GrpPerm, GSet, GSet, PowMap, Map`](collineation-group.md#function-pointgroup-plane)

    - [`LineGroup(P): Plane → GrpPerm, PowMap, Map`](collineation-group.md#function-linegroup-plane)

    - [`CollineationGroupStabilizer(P, k): Plane, RngIntElt → GrpPerm, GSet, GSet, PowMap, Map`](collineation-group.md#function-collineationgroupstabilizer-plane-rngintelt)

    - [`CollineationSubgroup(P): Plane → GrpPerm, GSet, GSet, PowMap, Map`](collineation-group.md#function-collineationsubgroup-plane)

  - [General Action of Collineations](collineation-group.md#general-action-of-collineations)

    - [`y ^ g: Elt, GrpPermElt → Elt`](collineation-group.md#operation-op-pow-elt-grppermelt)

    - [`y ^ G: Elt, GrpPerm → GSet`](collineation-group.md#operation-op-pow-elt-grpperm)

    - [`Image(g, Y, y): GrpPermElt, GSet, Elt → Elt`](collineation-group.md#function-image-grppermelt-gset-elt)

    - [`Orbit(G, Y, y): GrpPerm, GSet, Elt → GSet`](collineation-group.md#function-orbit-grpperm-gset-elt)

    - [`Orbits(G, Y): GrpPerm, GSet → [ GSet ]`](collineation-group.md#function-orbits-grpperm-gset)

    - [`Stabilizer(G, Y, y): GrpPerm, GSet, Elt → GrpPerm`](collineation-group.md#function-stabilizer-grpperm-gset-elt)

    - [`Action(G, Y): GrpPerm, GSet → Hom(Grp), GrpPerm, GrpPerm`](collineation-group.md#function-action-grpperm-gset)

    - [`ActionImage(G, Y): GrpPerm, GSet → GrpPerm`](collineation-group.md#function-actionimage-grpperm-gset)

    - [`ActionKernel(G, Y): GrpPerm, GSet → GrpPerm`](collineation-group.md#function-actionkernel-grpperm-gset)

    - [`Example: Collineation G Set`](collineation-group.md#example-ex-8ca8e9)

    - [`Example: Collineation`](collineation-group.md#example-ex-d21993)

    - [`Example: baer`](collineation-group.md#example-ex-d549e1)

  - [Central Collineations](collineation-group.md#central-collineations)

    - [`CentralCollineationGroup(P, p, l): Plane, PlanePt, PlaneLn → GrpPerm, PowMap, Map`](collineation-group.md#function-centralcollineationgroup-plane-planept-planeln)

    - [`CentralCollineationGroup(P, p): Plane, PlanePt → GrpPerm, PowMap, Map`](collineation-group.md#function-centralcollineationgroup-plane-planept)

    - [`CentralCollineationGroup(P, l): Plane, PlaneLn → GrpPerm, PowMap, Map`](collineation-group.md#function-centralcollineationgroup-plane-planeln)

    - [`IsCentralCollineation(P, g): Plane, GrpPermElt → BoolElt, PlanePt, PlaneLn`](collineation-group.md#function-iscentralcollineation-plane-grppermelt)

    - [`Example: Cent Coll`](collineation-group.md#example-ex-3873ae)

  - [Transitivity Properties](collineation-group.md#transitivity-properties)

    - [`IsPointTransitive(P): Plane → BoolElt`](collineation-group.md#function-ispointtransitive-plane)

    - [`IsTransitive(P): Plane → BoolElt`](collineation-group.md#function-istransitive-plane)

    - [`IsLineTransitive(P): Plane → BoolElt`](collineation-group.md#function-islinetransitive-plane)

    - [`Example: trans`](collineation-group.md#example-ex-7fe88b)

- [Translation Planes](translation-planes.md)

  - [`BaerDerivation(q2): RngIntElt → PlaneAff, PlanePtSet, PlaneLnSet`](translation-planes.md#function-baerderivation-rngintelt)

  - [`BaerSubplane(P): PlaneProj → PlaneProj, PlanePtSet, PlaneLnSet`](translation-planes.md#function-baersubplane-planeproj)

  - [`OvalDerivation(q: parameters): RngIntElt → PlaneAff, PlanePtSet, PlaneLnSet`](translation-planes.md#function-ovalderivation-rngintelt)

- [Planes and Designs](designs.md)

  - [`Design(P): Plane → Dsgn, SetIncPt, SetIncBlk`](designs.md#function-design-plane)

  - [`FiniteAffinePlane(D): Inc → Plane, PlanePtSet, PlaneLnSet`](designs.md#function-finiteaffineplane-inc)

  - [`FiniteProjectivePlane(D): Inc → Plane, PlanePtSet, PlaneLnSet`](designs.md#function-finiteprojectiveplane-inc)

  - [`Example: designs`](designs.md#example-ex-55665c)

- [Planes, Graphs and Codes](graph-code.md)

  - [`LineGraph(P): Plane → Grph`](graph-code.md#function-linegraph-plane)

  - [`IncidenceGraph(P): Plane → Grph`](graph-code.md#function-incidencegraph-plane)

  - [`LinearCode(P, K): Plane, FldFin → Code`](graph-code.md#function-linearcode-plane-fldfin)

  - [`Example: codes`](graph-code.md#example-ex-43be98)
