# Incidence Structures and Designs

- [Introduction](introduction.md)

- [Construction of Incidence Structures and Designs](creation.md)

  - [`IncidenceStructure< v | X >: RngIntElt, List → Inc`](creation.md#constructor-constructor-incidencestructure-rngintelt-list-inc)

  - [`IncidenceStructure< P | X >: SetIndx, List → Inc`](creation.md#constructor-constructor-incidencestructure-setindx-list-inc)

  - [`NearLinearSpace< v | X : parameters >: RngIntElt, List → IncNsp`](creation.md#constructor-constructor-nearlinearspace-rngintelt-list-incnsp)

  - [`NearLinearSpace< P | X : parameters >: SetIndx, List → IncNsp`](creation.md#constructor-constructor-nearlinearspace-setindx-list-incnsp)

  - [`LinearSpace< v | X : parameters >: RngIntElt, List → IncLsp`](creation.md#constructor-constructor-linearspace-rngintelt-list-inclsp)

  - [`LinearSpace< P | X : parameters >: SetIndx, List → IncLsp`](creation.md#constructor-constructor-linearspace-setindx-list-inclsp)

  - [`Design< t, v | X : parameters >: RngIntElt, RngIntElt, List → Dsgn`](creation.md#constructor-constructor-design-rngintelt-rngintelt-list-dsgn)

  - [`Design< t, P | X : parameters >: RngIntElt, SetIndx, List → Dsgn`](creation.md#constructor-constructor-design-rngintelt-setindx-list-dsgn)

  - [`Example: Constructors`](creation.md#example-ex-3bf146)

- [The Point-Set and Block-Set of an Incidence Structure](point-block-set.md)

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

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

    - [`PointSet(D): Inc → IncPtSet`](point-block-set.md#function-pointset-inc)

    - [`BlockSet(D): Inc → IncBlkSet`](point-block-set.md#function-blockset-inc)

  - [Creating Points and Blocks](point-block-set.md#creating-points-and-blocks)

    - [`Point(D, i): Inc, RngIntElt → IncPt`](point-block-set.md#function-point-inc-rngintelt)

    - [`P . i: IncPtSet, RngIntElt → IncPt`](point-block-set.md#operation-operation-incptset-rngintelt-incpt)

    - [`Representative(P): IncPtSet → IncPt`](point-block-set.md#function-representative-incptset)

    - [`Rep(P): IncPtSet → IncPt`](point-block-set.md#function-rep-incptset)

    - [`Random(P): IncPtSet → IncPt`](point-block-set.md#function-random-incptset)

    - [`P ! x: IncPtSet, Elt → Incpt`](point-block-set.md#operation-op-incptset-elt)

    - [`Block(D, i): Inc, RngIntElt → IncBlk`](point-block-set.md#function-block-inc-rngintelt)

    - [`B . i: IncBlkSet, RngIntElt → IncBlk`](point-block-set.md#operation-operation-incblkset-rngintelt-incblk)

    - [`Representative(B): IncBlkSet → IncBlk`](point-block-set.md#function-representative-incblkset)

    - [`Rep(B): IncBlkSet → IncBlk`](point-block-set.md#function-rep-incblkset)

    - [`Random(B): IncBlkSet → IncBlk`](point-block-set.md#function-random-incblkset)

    - [`B ! S: IncBlkSet, SetEnum → IncBlk`](point-block-set.md#operation-op-incblkset-setenum)

    - [`Representative(b): IncBlk → IncPt`](point-block-set.md#function-representative-incblk)

    - [`Rep(b): IncBlk → IncPt`](point-block-set.md#function-rep-incblk)

    - [`Random(b): IncBlk → IncPt`](point-block-set.md#function-random-incblk)

    - [`Example: Points Blocks`](point-block-set.md#example-ex-5190d2)

- [General Design Constructions](operation.md)

  - [The Construction of Related Structures](operation.md#the-construction-of-related-structures)

    - [`Complement(D): Inc → Inc`](operation.md#function-complement-inc)

    - [`Dual(D): Inc → Inc`](operation.md#function-dual-inc)

    - [`Contraction(D, p): Inc, IncPt → Inc`](operation.md#function-contraction-inc-incpt)

    - [`Contraction(D, b): Inc, IncBlk → Inc`](operation.md#function-contraction-inc-incblk)

    - [`Residual(D, b): Inc, IncBlk → Inc`](operation.md#function-residual-inc-incblk)

    - [`Residual(D, p): Inc, IncPt → Inc`](operation.md#function-residual-inc-incpt)

    - [`Simplify(D): Inc → Inc`](operation.md#function-simplify-inc)

    - [`Sum(Q): [ Inc ] → Inc`](operation.md#function-sum-inc)

    - [`Union(D, E): Inc, Inc → Inc`](operation.md#function-union-inc-inc)

    - [`Restriction(D, S): IncNsp, { Incpt } → IncNsp`](operation.md#function-restriction-incnsp-incpt)

    - [`Example: related`](operation.md#example-ex-2db350)

  - [The Witt Designs](operation.md#the-witt-designs)

    - [`WittDesign(n): RngIntElt → Dsgn`](operation.md#function-wittdesign-rngintelt)

    - [`Example: wittex`](operation.md#example-ex-9c4643)

  - [Difference Sets and their Development](operation.md#difference-sets-and-their-development)

    - [`DifferenceSet(p, t): RngIntElt, MonStgElt → { RngIntResElt }`](operation.md#function-differenceset-rngintelt-monstgelt)

    - [`SingerDifferenceSet(n, q): RngIntElt, RngIntElt → { RngIntResElt }`](operation.md#function-singerdifferenceset-rngintelt-rngintelt)

    - [`IsDifferenceSet(B): SetEnum → BoolElt, RngIntElt`](operation.md#function-isdifferenceset-setenum)

    - [`Development(B): {  RngElt } → Inc`](operation.md#function-development-rngelt)

    - [`Development(T): { { Elt } } → Inc`](operation.md#function-development-elt)

    - [`Example: Develop Difference Set`](operation.md#example-ex-b4f959)

- [Elementary Invariants of an Incidence Structure](invariant.md)

  - [`NumberOfPoints(D): Inc → RngInt`](invariant.md#function-numberofpoints-inc)

  - [`# P: IncPtSet → RngIntElt`](invariant.md#operation-operation-incptset-rngintelt)

  - [`Points(D): Inc → { IncPt }`](invariant.md#function-points-inc)

  - [`Support(D): Inc → { Elt }`](invariant.md#function-support-inc)

  - [`PointDegrees(D): Inc → [ RngIntElt ]`](invariant.md#function-pointdegrees-inc)

  - [`NumberOfBlocks(D): Inc → RngIntElt`](invariant.md#function-numberofblocks-inc)

  - [`# B: IncBlkSet → RngIntElt`](invariant.md#operation-operation-incblkset-rngintelt)

  - [`Blocks(D): Inc → { IncBlk}`](invariant.md#function-blocks-inc)

  - [`BlockDegrees(D): Inc → [ RngIntElt ]`](invariant.md#function-blockdegrees-inc)

  - [`BlockSizes(D): Inc → [ RngIntElt ]`](invariant.md#function-blocksizes-inc)

  - [`Covalence(D, S): Inc, { IncPt } → RngIntElt`](invariant.md#function-covalence-inc-incpt)

  - [`IncidenceMatrix(D): Inc → ModMatRngElt`](invariant.md#function-incidencematrix-inc)

  - [`pRank(D, p): Inc, RngIntElt → RngIntElt`](invariant.md#function-prank-inc-rngintelt)

- [Elementary Invariants of a Design](design-invariant.md)

  - [`Parameters(D): Dsgn → Record`](design-invariant.md#function-parameters-dsgn)

  - [`ReplicationNumber(D): Dsgn → RngIntElt`](design-invariant.md#function-replicationnumber-dsgn)

  - [`BlockDegree(D): Dsgn → RngIntElt`](design-invariant.md#function-blockdegree-dsgn)

  - [`BlockSize(D): Dsgn → RngIntElt`](design-invariant.md#function-blocksize-dsgn)

  - [`Covalence(D, s): Dsgn, RngIntElt → RngIntElt`](design-invariant.md#function-covalence-dsgn-rngintelt)

  - [`Order(D): Dsgn → RngIntElt`](design-invariant.md#function-order-dsgn)

  - [`IntersectionNumber(D, i, j): Dsgn, RngIntElt, RngIntElt → RngIntElt`](design-invariant.md#function-intersectionnumber-dsgn-rngintelt-rngintelt)

  - [`PascalTriangle(D): Dsgn → SeqEnum`](design-invariant.md#function-pascaltriangle-dsgn)

  - [`Example: Design Invar`](design-invariant.md#example-ex-3a71cb)

- [Operations on Points and Blocks](operation-point-block.md)

  - [`p in B: IncPt, IncBlk → BoolElt`](operation-point-block.md#operation-op-in-incpt-incblk)

  - [`p notin B: IncPt, IncBlk → BoolElt`](operation-point-block.md#operation-op-notin-incpt-incblk)

  - [`S subset B: { IncPt }, IncBlk → BoolElt`](operation-point-block.md#operation-op-subset-incpt-incblk)

  - [`S notsubset B: { IncPt }, IncBlk → BoolElt`](operation-point-block.md#operation-operation-notsubset-incpt-incblk-boolelt)

  - [`PointDegree(D, p): Inc, IncPt → RngIntElt`](operation-point-block.md#function-pointdegree-inc-incpt)

  - [`BlockDegree(D, B): Inc, IncBlk → RngIntElt`](operation-point-block.md#function-blockdegree-inc-incblk)

  - [`BlockSize(D, B): Inc, IncBlk → RngIntElt`](operation-point-block.md#function-blocksize-inc-incblk)

  - [`# B: IncBlk → RngIntElt`](operation-point-block.md#operation-operation-incblk-rngintelt)

  - [`Set(B): IncBlk → { IncPt }`](operation-point-block.md#function-set-incblk)

  - [`Support(B): IncBlk → { Elt }`](operation-point-block.md#function-support-incblk)

  - [`IsBlock(D, S): Inc, IncBlk → BoolElt, IncBlk`](operation-point-block.md#function-isblock-inc-incblk)

  - [`IsBlock(D, S): Inc, SetEnum → BoolElt, IncBlk`](operation-point-block.md#function-isblock-inc-setenum)

  - [`Line(D, p, q): Inc, IncPt, IncPt → IncBlk`](operation-point-block.md#function-line-inc-incpt-incpt)

  - [`Block(D, p, q): Inc, IncPt, IncPt → IncBlk`](operation-point-block.md#function-block-inc-incpt-incpt)

  - [`ConnectionNumber(D, p, B): Inc, IncPt, IncBlk → RngIntElt`](operation-point-block.md#function-connectionnumber-inc-incpt-incblk)

  - [`Example: Pts Blks Ops`](operation-point-block.md#example-ex-f06ff8)

- [Elementary Properties of Incidence Structures and Designs](boolean.md)

  - [`IsSimple(D): Inc → BoolElt`](boolean.md#function-issimple-inc)

  - [`IsTrivial(D): Inc → BoolElt`](boolean.md#function-istrivial-inc)

  - [`IsSelfDual(D): Inc → BoolElt`](boolean.md#function-isselfdual-inc)

  - [`IsUniform(D): Inc → BoolElt, RngIntElt`](boolean.md#function-isuniform-inc)

  - [`IsNearLinearSpace(D): Inc → BoolElt`](boolean.md#function-isnearlinearspace-inc)

  - [`IsLinearSpace(D): Inc → BoolElt`](boolean.md#function-islinearspace-inc)

  - [`IsDesign(D, t: parameters): Inc, RngIntElt → BoolElt, RngIntElt`](boolean.md#function-isdesign-inc-rngintelt)

  - [`IsBalanced(D, t: parameters): Inc, RngIntElt → BoolElt, RngIntElt`](boolean.md#function-isbalanced-inc-rngintelt)

  - [`IsComplete(D): Inc → BoolElt`](boolean.md#function-iscomplete-inc)

  - [`IsSymmetric(D): Dsgn → BoolElt`](boolean.md#function-issymmetric-dsgn)

  - [`IsSteiner(D, t): Dsgn, RngIntElt → BoolElt`](boolean.md#function-issteiner-dsgn-rngintelt)

  - [`IsPointRegular(D): IncNsp → BoolElt, RngIntElt`](boolean.md#function-ispointregular-incnsp)

  - [`IsLineRegular(D): IncNsp → BoolElt, RngIntElt`](boolean.md#function-islineregular-incnsp)

- [Resolutions, Parallelisms and Parallel Classes](resolutions.md)

  - [`HasResolution(D): Inc → BoolElt, { SetEnum}, RngIntElt`](resolutions.md#function-hasresolution-inc)

  - [`HasResolution(D, λ): Inc, RngIntElt → BoolElt, { SetEnum}`](resolutions.md#function-hasresolution-inc-rngintelt)

  - [`AllResolutions(D): Inc → SeqEnum`](resolutions.md#function-allresolutions-inc)

  - [`AllResolutions(D, λ): Inc, RngIntElt → SeqEnum`](resolutions.md#function-allresolutions-inc-rngintelt)

  - [`IsResolution(D, P): Inc, SetEnum[SetEnum] → BoolElt, RngIntElt`](resolutions.md#function-isresolution-inc-setenum-setenum)

  - [`HasParallelism(D: parameters): Inc, RngIntElt → BoolElt, { SetEnum}`](resolutions.md#function-hasparallelism-inc-rngintelt)

  - [`AllParallelisms(D): Inc → SeqEnum`](resolutions.md#function-allparallelisms-inc)

  - [`IsParallelism(D, P): Inc, SetEnum[SetEnum] → BoolElt, RngIntElt`](resolutions.md#function-isparallelism-inc-setenum-setenum)

  - [`HasParallelClass(D): Inc → BoolElt, { IncBlk}`](resolutions.md#function-hasparallelclass-inc)

  - [`IsParallelClass(D, B, C): Inc, IncBlk, IncBlk → BoolElt, { IncBlk}`](resolutions.md#function-isparallelclass-inc-incblk-incblk)

  - [`AllParallelClasses(D): Inc → SeqEnum`](resolutions.md#function-allparallelclasses-inc)

  - [`Example: Resol Parallel`](resolutions.md#example-ex-102d24)

- [Conversion Functions](conversion.md)

  - [`IncidenceStructure(I): Inc → Inc`](conversion.md#function-incidencestructure-inc)

  - [`NearLinearSpace(I): Inc → IncNsp`](conversion.md#function-nearlinearspace-inc)

  - [`LinearSpace(I): Inc → IncLsp`](conversion.md#function-linearspace-inc)

  - [`Design(I, t): Inc, RngIntElt → Dsgn`](conversion.md#function-design-inc-rngintelt)

  - [`Example: conv`](conversion.md#example-ex-97a8b8)

- [Identity and Isomorphism](equality.md)

  - [`D eq E: Inc, Inc → BoolElt`](equality.md#operation-op-eq-inc-inc)

  - [`D ne E: Inc, Inc → BoolElt`](equality.md#operation-op-ne-inc-inc)

  - [`IsIsomorphic(D, E: parameters): Inc, Inc → BoolElt, Map`](equality.md#function-isisomorphic-inc-inc)

- [The Automorphism Group of an Incidence Structure](automorphism-group.md)

  - [Construction of Automorphism Groups](automorphism-group.md#construction-of-automorphism-groups)

    - [`AutomorphismGroup(D): Inc → GrpPerm, GSet, GSet, PowMap, Map`](automorphism-group.md#function-automorphismgroup-inc)

    - [`AutomorphismSubgroup(D): Inc → GrpPerm, PowMap, Map`](automorphism-group.md#function-automorphismsubgroup-inc)

    - [`AutomorphismGroupStabilizer(D, k): Inc, RngIntElt → GrpPerm, PowMap, Map`](automorphism-group.md#function-automorphismgroupstabilizer-inc-rngintelt)

    - [`PointGroup(D): Inc → GrpPerm, GSet`](automorphism-group.md#function-pointgroup-inc)

    - [`BlockGroup(D): Inc → GrpPerm`](automorphism-group.md#function-blockgroup-inc)

    - [`Aut(D): Inc → PowMapAut, Map`](automorphism-group.md#function-aut-inc)

    - [`Example: auto`](automorphism-group.md#example-ex-d8bb15)

  - [Action of Automorphisms](automorphism-group.md#action-of-automorphisms)

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

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

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

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

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

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

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

    - [`IsPointTransitive(D): Inc → BoolElt`](automorphism-group.md#function-ispointtransitive-inc)

    - [`IsBlockTransitive(D): Inc → BoolElt`](automorphism-group.md#function-isblocktransitive-inc)

    - [`Example: automorphism`](automorphism-group.md#example-ex-f58989)

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

  - [`IncidenceStructure(G): Grph → Inc`](graph-code.md#function-incidencestructure-grph)

  - [`PointGraph(D): Inc → Grph`](graph-code.md#function-pointgraph-inc)

  - [`BlockGraph(D): Inc → Grph`](graph-code.md#function-blockgraph-inc)

  - [`IncidenceGraph(D): Inc → Grph`](graph-code.md#function-incidencegraph-inc)

  - [`LinearCode(D, K): Inc, FldFin → Code`](graph-code.md#function-linearcode-inc-fldfin)

  - [`Example: graphs`](graph-code.md#example-ex-09b77a)

- [Automorphisms of Matrices](matrix-aut.md)

  - [`M ^ x: Mtrx, GrpPermElt → Mtrx`](matrix-aut.md#operation-op-pow-mtrx-grppermelt)

  - [`AutomorphismGroup(M : parameters): Mtrx → GrpPerm`](matrix-aut.md#function-automorphismgroup-mtrx)

  - [`IsIsomorphic(M, N: parameters): Mtrx, Mtrx → BoolElt, GrpPermElt`](matrix-aut.md#function-isisomorphic-mtrx-mtrx)

  - [`Example: Fano Auto`](matrix-aut.md#example-ex-5ad3a5)
