# Graphs

- [Introduction](introduction.md)

- [Construction of Graphs and Digraphs](graph-digraph.md)

  - [Bounds on the Graph Order](graph-digraph.md#bounds-on-the-graph-order)

    - [`GraphSizeInBytes(n, m : parameters): RngIntElt, RngIntElt → RngIntElt`](graph-digraph.md#function-graphsizeinbytes-rngintelt-rngintelt)

    - [`Example: Grph Size`](graph-digraph.md#example-ex-1d9be6)

  - [Construction of a General Graph](graph-digraph.md#construction-of-a-general-graph)

    - [`Graph< n | edges : parameters>: RngIntElt, List → GrphUnd, GrphVertSet, GrphEdgeSet`](graph-digraph.md#constructor-constructor-graph-rngintelt-list-grphund-grphvertset-grphedgeset)

    - [`Graph< S | edges : parameters >: SetEnum, List → GrphUnd, GrphVertSet, GrphEdgeSet`](graph-digraph.md#constructor-constructor-graph-setenum-list-grphund-grphvertset-grphedgeset)

    - [`Graph< S | edges : parameters>: SetIndx, List → GrphUnd, GrphVertSet, GrphEdgeSet`](graph-digraph.md#constructor-constructor-graph-setindx-list-grphund-grphvertset-grphedgeset)

    - [`IncidenceGraph(A): ModMatRngElt → GrphUnd`](graph-digraph.md#function-incidencegraph-modmatrngelt)

    - [`Example: Constructors`](graph-digraph.md#example-ex-f07f4d)

    - [`Example: Tutte Cage`](graph-digraph.md#example-ex-d2036c)

  - [Construction of a General Digraph](graph-digraph.md#construction-of-a-general-digraph)

    - [`Digraph< n | edges : parameters>: RngIntElt, List → GrphDir`](graph-digraph.md#constructor-constructor-digraph-rngintelt-list-grphdir)

    - [`Digraph< S | edges : parameters>: SetEnum, List → GrphDir`](graph-digraph.md#constructor-constructor-digraph-setenum-list-grphdir)

    - [`Digraph< S | edges : parameters>: SetIndx, List → GrphDir`](graph-digraph.md#constructor-constructor-digraph-setindx-list-grphdir)

    - [`IncidenceDigraph(A): ModMatRngElt → GrphDir`](graph-digraph.md#function-incidencedigraph-modmatrngelt)

    - [`Example: Constructors`](graph-digraph.md#example-ex-fe5c22)

  - [Operations on the Support](graph-digraph.md#operations-on-the-support)

    - [`Support(G): Grph → SetIndx`](graph-digraph.md#function-support-grph)

    - [`Support(V): GrphVertSet → SetIndx`](graph-digraph.md#function-support-grphvertset)

    - [`ChangeSupport(G, S): Grph, SetIndx → Grph, GrphVertSet, GrphEdgeSet`](graph-digraph.md#function-changesupport-grph-setindx)

    - [`ChangeSupport(~G, S): Grph, SetIndx`](graph-digraph.md#function-changesupport-grph-setindx-ref)

    - [`StandardGraph(G): Grph → Grph`](graph-digraph.md#function-standardgraph-grph)

    - [`Example: Constructors`](graph-digraph.md#example-ex-ec4c86)

  - [Construction of a Standard Graph](graph-digraph.md#construction-of-a-standard-graph)

    - [`BipartiteGraph(m, n): RngIntElt, RngIntElt → GrphUnd`](graph-digraph.md#function-bipartitegraph-rngintelt-rngintelt)

    - [`CompleteGraph(n): RngIntElt → GrphUnd`](graph-digraph.md#function-completegraph-rngintelt)

    - [`KCubeGraph(n : parameters): RngIntElt → GrphUnd`](graph-digraph.md#function-kcubegraph-rngintelt)

    - [`MultipartiteGraph(Q): [RngIntElt] → GrphUnd`](graph-digraph.md#function-multipartitegraph-rngintelt)

    - [`EmptyGraph(n : parameters): RngIntElt → GrphUnd`](graph-digraph.md#function-emptygraph-rngintelt)

    - [`NullGraph( : parameters) → GrphUnd`](graph-digraph.md#function-nullgraph)

    - [`PathGraph(n : parameters): RngIntElt → GrphUnd`](graph-digraph.md#function-pathgraph-rngintelt)

    - [`PolygonGraph(n : parameters): RngIntElt → GrphUnd`](graph-digraph.md#function-polygongraph-rngintelt)

    - [`RandomGraph(n, r : parameters): RngIntElt, FldReElt → GrphUnd`](graph-digraph.md#function-randomgraph-rngintelt-fldreelt)

    - [`RandomTree(n : parameters): RngIntElt → GrphUnd`](graph-digraph.md#function-randomtree-rngintelt)

  - [Construction of a Standard Digraph](graph-digraph.md#construction-of-a-standard-digraph)

    - [`CompleteDigraph(n): RngIntElt → GrphDir`](graph-digraph.md#function-completedigraph-rngintelt)

    - [`EmptyDigraph(n : parameters): RngIntElt → GrphDir`](graph-digraph.md#function-emptydigraph-rngintelt)

    - [`RandomDigraph(n, r : parameters): RngIntElt, FldReElt → GrphDir`](graph-digraph.md#function-randomdigraph-rngintelt-fldreelt)

    - [`Example: Constructors`](graph-digraph.md#example-ex-d57426)

- [Graphs with a Sparse Representation](sparse-graphs.md)

  - [`HasSparseRep(G): Grph → BoolElt`](sparse-graphs.md#function-hassparserep-grph)

  - [`HasDenseRep(G): Grph → BoolElt`](sparse-graphs.md#function-hasdenserep-grph)

  - [`HasSparseRepOnly(G): Grph → BoolElt`](sparse-graphs.md#function-hassparsereponly-grph)

  - [`HasDenseRepOnly(G): Grph → BoolElt`](sparse-graphs.md#function-hasdensereponly-grph)

  - [`HasDenseAndSparseRep(G): Grph → BoolElt`](sparse-graphs.md#function-hasdenseandsparserep-grph)

  - [`Example: Sparse Reps`](sparse-graphs.md#example-ex-b3b8b8)

- [The Vertex–Set and Edge–Set of a Graph](vertex-edge-set.md)

  - [Introduction](vertex-edge-set.md#introduction)

  - [Creating Edges and Vertices](vertex-edge-set.md#creating-edges-and-vertices)

    - [`EdgeSet(G): Grph → GrphEdgeSet`](vertex-edge-set.md#function-edgeset-grph)

    - [`Edges(G): Grph → { @ GrphEdge @ }`](vertex-edge-set.md#function-edges-grph)

    - [`VertexSet(G): Grph → GrphVertSet`](vertex-edge-set.md#function-vertexset-grph)

    - [`Vertices(G): Grph → { GrphVert}`](vertex-edge-set.md#function-vertices-grph)

    - [`V ! v: GrphVertSet, . → GrphVert`](vertex-edge-set.md#operation-op-grphvertset)

    - [`V . i: GrphVertSet, RngIntElt → GrphVert`](vertex-edge-set.md#operation-operation-grphvertset-rngintelt-grphvert)

    - [`Index(v): GrphVert → RngIntElt`](vertex-edge-set.md#function-index-grphvert)

    - [`E ! { u, v}: GrphEdgeSet, { . } → GrphEdge`](vertex-edge-set.md#operation-op-grphedgeset)

    - [`E ! [u, v]: GrphEdgeSet, [ . ] → GrphEdge`](vertex-edge-set.md#operation-op-grphedgeset-2)

    - [`E . i: GrphEdgeSet, RngIntElt → GrphEdge`](vertex-edge-set.md#operation-operation-grphedgeset-rngintelt-grphedge)

    - [`Example: Edge Sets`](vertex-edge-set.md#example-ex-e2c41e)

  - [Operations on Vertex-Sets and Edge-Sets](vertex-edge-set.md#operations-on-vertex-sets-and-edge-sets)

    - [`# S: GrphVertSet → RngIntElt`](vertex-edge-set.md#operation-operation-grphvertset-rngintelt)

    - [`# S: GrphEdgeSet → RngIntElt`](vertex-edge-set.md#operation-operation-grphedgeset-rngintelt)

    - [`s in S: GrphVert, GrphVertSet → BoolElt`](vertex-edge-set.md#operation-op-in-grphvert-grphvertset)

    - [`s in S: GrphEdge, GrphEdgeSet → BoolElt`](vertex-edge-set.md#operation-op-in-grphedge-grphedgeset)

    - [`s notin S: GrphVert, GrphVertSet → BoolElt`](vertex-edge-set.md#operation-op-notin-grphvert-grphvertset)

    - [`s notin S: GrphEdge, GrphEdgeSet → BoolElt`](vertex-edge-set.md#operation-op-notin-grphedge-grphedgeset)

    - [`S subset T: GrphVertSet, GrphVertSet → BoolElt`](vertex-edge-set.md#operation-op-subset-grphvertset-grphvertset)

    - [`S subset T: GrphEdgeSet, GrphEdgeSet → BoolElt`](vertex-edge-set.md#operation-op-subset-grphedgeset-grphedgeset)

    - [`S notsubset T: GrphVertSet, GrphVertSet → BoolElt`](vertex-edge-set.md#operation-operation-notsubset-grphvertset-grphvertset-boolelt)

    - [`S notsubset T: GrphEdgeSet, GrphEdgeSet → BoolElt`](vertex-edge-set.md#operation-operation-notsubset-grphedgeset-grphedgeset-boolelt)

    - [`S eq T: GrphVertSet, GrphVertSet → BoolElt`](vertex-edge-set.md#operation-op-eq-grphvertset-grphvertset)

    - [`S eq T: GrphEdgeSet, GrphEdgeSet → BoolElt`](vertex-edge-set.md#operation-op-eq-grphedgeset-grphedgeset)

    - [`s eq t: GrphVert, GrphVert → BoolElt`](vertex-edge-set.md#operation-op-eq-grphvert-grphvert)

    - [`s eq t: GrphEdge, GrphEdge → BoolElt`](vertex-edge-set.md#operation-op-eq-grphedge-grphedge)

    - [`S ne T: GrphVertSet, GrphVertSet → BoolElt`](vertex-edge-set.md#operation-op-ne-grphvertset-grphvertset)

    - [`S ne T: GrphEdgeSet, GrphEdgeSet → BoolElt`](vertex-edge-set.md#operation-op-ne-grphedgeset-grphedgeset)

    - [`s ne t: GrphVert, GrphVert → BoolElt`](vertex-edge-set.md#operation-op-ne-grphvert-grphvert)

    - [`s ne t: GrphEdge, GrphEdge → BoolElt`](vertex-edge-set.md#operation-op-ne-grphedge-grphedge)

    - [`ParentGraph(S): GrphVertSet → Grph`](vertex-edge-set.md#function-parentgraph-grphvertset)

    - [`ParentGraph(S): GrphEdgeSet → Grph`](vertex-edge-set.md#function-parentgraph-grphedgeset)

    - [`ParentGraph(s): GrphVert → Grph`](vertex-edge-set.md#function-parentgraph-grphvert)

    - [`ParentGraph(s): GrphEdge → Grph`](vertex-edge-set.md#function-parentgraph-grphedge)

    - [`Random(S): GrphVertSet → GrphVert`](vertex-edge-set.md#function-random-grphvertset)

    - [`Random(S): GrphEdgeSet → GrphEdge`](vertex-edge-set.md#function-random-grphedgeset)

    - [`Representative(S): GrphVertSet → GrphVert`](vertex-edge-set.md#function-representative-grphvertset)

    - [`Rep(S): GrphVertSet → GrphVert`](vertex-edge-set.md#function-rep-grphvertset)

    - [`Representative(S): GrphEdgeSet → GrphEdge`](vertex-edge-set.md#function-representative-grphedgeset)

    - [`Rep(S): GrphEdgeSet → GrphEdge`](vertex-edge-set.md#function-rep-grphedgeset)

    - [`for x in S do ... end for;`](vertex-edge-set.md#literal-literal-for-for-x-in-s-do-end-for)

    - [`for random x in S do ... end for;`](vertex-edge-set.md#literal-literal-for-random-for-random-x-in-s-do-end-for)

  - [Operations on Edges and Vertices](vertex-edge-set.md#operations-on-edges-and-vertices)

    - [`EndVertices(e): GrphEdge → { GrphVert}`](vertex-edge-set.md#function-endvertices-grphedge)

    - [`EndVertices(e): GrphEdge → [ GrphVert ]`](vertex-edge-set.md#function-endvertices-grphedge-2)

    - [`InitialVertex(e): GrphEdge → GrphVert`](vertex-edge-set.md#function-initialvertex-grphedge)

    - [`TerminalVertex(e): GrphEdge → GrphVert`](vertex-edge-set.md#function-terminalvertex-grphedge)

    - [`IncidentEdges(u): GrphVert → { GrphEdge}`](vertex-edge-set.md#function-incidentedges-grphvert)

- [Labelled, Capacitated and Weighted Graphs](labels.md)

- [Standard Constructions for Graphs](operation.md)

  - [Subgraphs and Quotient Graphs](operation.md#subgraphs-and-quotient-graphs)

    - [`sub< G | list >: Grph, List → Grph, GrphVertSet, GrphEdgeSet`](operation.md#constructor-constructor-sub-grph-list-grph-grphvertset-grphedgeset)

    - [`quo< G | P >: Grph, {{ GrphVert}} → Grph, GrphVertSet, GrphEdgeSet`](operation.md#constructor-constructor-quo-grph-grphvert-grph-grphvertset-grphedgeset)

    - [`Example: Subgraph`](operation.md#example-ex-8045cf)

    - [`Example: Quotient`](operation.md#example-ex-c8df39)

  - [Incremental Construction of Graphs](operation.md#incremental-construction-of-graphs)

    - [Adding Vertices](operation.md#adding-vertices)

      - [`G + n: Grph, RngIntElt → Grph`](operation.md#operation-op-plus-grph-rngintelt)

      - [`G +:= n: Grph, RngIntElt`](operation.md#operation-operation-grph-rngintelt)

      - [`AddVertex(~G): Grph`](operation.md#function-addvertex-grph-ref)

      - [`AddVertices(~G, n): Grph, RngIntElt`](operation.md#function-addvertices-grph-rngintelt-ref)

      - [`AddVertex(~G, l): Grph, .`](operation.md#function-addvertex-grph-ref-2)

      - [`AddVertices(~G, n, L): Grph, RngIntElt, SeqEnum`](operation.md#function-addvertices-grph-rngintelt-seqenum-ref)

    - [Removing Vertices](operation.md#removing-vertices)

      - [`G - v: Grph, GrphVert → Grph`](operation.md#operation-op-minus-grph-grphvert)

      - [`G - U: Grph, {  GrphVert } → Grph`](operation.md#operation-op-minus-grph-grphvert-2)

      - [`G -:= v: Grph, GrphVert`](operation.md#operation-operation-grph-grphvert)

      - [`G -:= U: Grph, {  GrphVert }`](operation.md#operation-operation-grph-grphvert-2)

      - [`RemoveVertex(~G, v): Grph, GrphVert`](operation.md#function-removevertex-grph-grphvert-ref)

      - [`RemoveVertices(~G, U): Grph, {  GrphVert }`](operation.md#function-removevertices-grph-grphvert-ref)

    - [Adding Edges](operation.md#adding-edges)

      - [`G + { u, v }: GrphUnd, { GrphVert, GrphVert } → GrphUnd, GrphEdge`](operation.md#operation-op-plus-grphund-grphvert-grphvert)

      - [`G + [ u, v ]: GrphDir, [ GrphVert, GrphVert ] → GrphDir, GrphEdge`](operation.md#operation-op-plus-grphdir-grphvert-grphvert)

      - [`G + { { u, v } }: GrphUnd, { { GrphVert, GrphVert } } → GrphUnd`](operation.md#operation-op-plus-grphund-grphvert-grphvert-2)

      - [`G + { [ u, v ] }: GrphDir, {  [ GrphVert, GrphVert ] } → GrphDir`](operation.md#operation-op-plus-grphdir-grphvert-grphvert-2)

      - [`G +:= { u, v }: GrphUnd, { GrphVert, GrphVert }`](operation.md#operation-operation-grphund-grphvert-grphvert)

      - [`G +:= [ u, v ]: GrphDir, [ GrphVert, GrphVert ]`](operation.md#operation-operation-grphdir-grphvert-grphvert)

      - [`G +:= { { u, v } }: GrphUnd, { {  GrphVert, GrphVert  } }`](operation.md#operation-operation-grphund-grphvert-grphvert-2)

      - [`G +:= { [ u, v ] }: GrphDir, {  [ GrphVert, GrphVert ] }`](operation.md#operation-operation-grphdir-grphvert-grphvert-2)

      - [`AddEdge(G, u, v): Grph, GrphVert, GrphVert → Grph, GrphEdge`](operation.md#function-addedge-grph-grphvert-grphvert)

      - [`AddEdge(G, u, v, l): Grph, GrphVert, GrphVert, . → Grph, GrphEdge`](operation.md#function-addedge-grph-grphvert-grphvert-2)

      - [`AddEdge(~G, u, v): Grph, GrphVert, GrphVert`](operation.md#function-addedge-grph-grphvert-grphvert-ref)

      - [`AddEdge(~G, u, v, l): Grph, GrphVert, GrphVert, .`](operation.md#function-addedge-grph-grphvert-grphvert-ref-2)

      - [`AddEdges(G, S): GrphUnd, { { GrphVert, GrphVert } } → GrphUnd`](operation.md#function-addedges-grphund-grphvert-grphvert)

      - [`AddEdges(G, S): GrphDir, {  [  GrphVert, GrphVert ] } → GrphDir`](operation.md#function-addedges-grphdir-grphvert-grphvert)

      - [`AddEdges(G, S, L): Grph, SeqEnum, SeqEnum → Grph`](operation.md#function-addedges-grph-seqenum-seqenum)

      - [`AddEdges(~G, S): GrphUnd, { { GrphVert, GrphVert } }`](operation.md#function-addedges-grphund-grphvert-grphvert-ref)

      - [`AddEdges(~G, S): GrphDir, {  [  GrphVert, GrphVert ] }`](operation.md#function-addedges-grphdir-grphvert-grphvert-ref)

      - [`AddEdges(~G, S, L): Grph, SeqEnum, SeqEnum`](operation.md#function-addedges-grph-seqenum-seqenum-ref)

    - [Removing Edges](operation.md#removing-edges)

      - [`G - e: Grph, GrphEdge → Grph`](operation.md#operation-op-minus-grph-grphedge)

      - [`G - { e }: Grph, {  GrphEdge } → Grph`](operation.md#operation-op-minus-grph-grphedge-2)

      - [`G - { { u, v } }: GrphUnd, { { GrphVert, GrphVert rbrace } → GrphUnd`](operation.md#operation-op-minus-grphund-grphvert-grphvert-rbrace)

      - [`G - { [u, v] }: GrphDir, {  [ GrphVert, GrphVert ] } → GrphDir`](operation.md#operation-op-minus-grphdir-grphvert-grphvert)

      - [`G -:= e: Grph, GrphEdge`](operation.md#operation-operation-grph-grphedge)

      - [`G -:= { e }: Grph, {  GrphEdge }`](operation.md#operation-operation-grph-grphedge-2)

      - [`G -:= { { u, v } }: GrphUnd, {  { GrphVert, GrphVert rbrace }`](operation.md#operation-operation-grphund-grphvert-grphvert-rbrace)

      - [`G -:= { [u, v] }: GrphDir, {  [ GrphVert, GrphVert ] }`](operation.md#operation-operation-grphdir-grphvert-grphvert-3)

      - [`RemoveEdge(~G, e): Grph, GrphEdge`](operation.md#function-removeedge-grph-grphedge-ref)

      - [`RemoveEdges(~G, S): Grph, {  GrphEdge }`](operation.md#function-removeedges-grph-grphedge-ref)

      - [`RemoveEdge(~G, u, v): Grph, GrphVert, GrphVert`](operation.md#function-removeedge-grph-grphvert-grphvert-ref)

      - [`RemoveEdges(~G, S): GrphDir, { {  GrphVert, GrphVert } }`](operation.md#function-removeedges-grphdir-grphvert-grphvert-ref)

      - [`RemoveEdges(~G, S): GrphDir, {  [  GrphVert, GrphVert ] }`](operation.md#function-removeedges-grphdir-grphvert-grphvert-ref-2)

  - [Constructing Complements, Line Graphs; Contraction, Switching](operation.md#constructing-complements-line-graphs-contraction-switching)

    - [`Complement(G): Grph → Grph`](operation.md#function-complement-grph)

    - [`Contract(e): GrphEdge → Grph`](operation.md#function-contract-grphedge)

    - [`Contract(u, v): GrphVert, GrphVert → Grph`](operation.md#function-contract-grphvert-grphvert)

    - [`Contract(S): { GrphVert} → Grph`](operation.md#function-contract-grphvert)

    - [`InsertVertex(e): GrphEdge → Grph`](operation.md#function-insertvertex-grphedge)

    - [`InsertVertex(T): { GrphEdge} → Grph`](operation.md#function-insertvertex-grphedge-2)

    - [`LineGraph(G): Grph → Grph`](operation.md#function-linegraph-grph)

    - [`Switch(u): GrphVert → GrphUnd`](operation.md#function-switch-grphvert)

    - [`Switch(S): { GrphVert} → Grph`](operation.md#function-switch-grphvert-2)

    - [`Example: Grotzch`](operation.md#example-ex-be173e)

- [Unions and Products of Graphs](union-product.md)

  - [`Union(G, H): GrphUnd, GrphUnd → GrphUnd`](union-product.md#function-union-grphund-grphund)

  - [`Union(G, H): GrphDir, GrphDir → GrphDir`](union-product.md#function-union-grphdir-grphdir)

  - [`G join H: GrphDir, GrphDir → GrphDir`](union-product.md#operation-op-join-grphdir-grphdir)

  - [`G join H: GrphUnd, GrphUnd → GrphUnd`](union-product.md#operation-op-join-grphund-grphund)

  - [`EdgeUnion(G, H): GrphDir, GrphDir → GrphDir`](union-product.md#function-edgeunion-grphdir-grphdir)

  - [`EdgeUnion(G, H): GrphUnd, GrphUnd → GrphUnd`](union-product.md#function-edgeunion-grphund-grphund)

  - [`CompleteUnion(G, H): GrphDir, GrphDir → GrphDir`](union-product.md#function-completeunion-grphdir-grphdir)

  - [`CompleteUnion(G, H): GrphUnd, GrphUnd → GrphUnd`](union-product.md#function-completeunion-grphund-grphund)

  - [`CartesianProduct(G, H): GrphDir, GrphDir → GrphDir`](union-product.md#function-cartesianproduct-grphdir-grphdir)

  - [`CartesianProduct(G, H): GrphUnd, GrphUnd → GrphUnd`](union-product.md#function-cartesianproduct-grphund-grphund)

  - [`LexProduct(G, H): GrphDir, GrphDir → GrphDir`](union-product.md#function-lexproduct-grphdir-grphdir)

  - [`LexProduct(G, H): GrphUnd, GrphUnd → GrphUnd`](union-product.md#function-lexproduct-grphund-grphund)

  - [`TensorProduct(G, H): GrphDir, GrphDir → GrphDir`](union-product.md#function-tensorproduct-grphdir-grphdir)

  - [`TensorProduct(G, H): GrphUnd, GrphUnd → GrphUnd`](union-product.md#function-tensorproduct-grphund-grphund)

  - [`G ^ n: GrphUnd, RngIntElt → GrphUnd`](union-product.md#operation-op-pow-grphund-rngintelt)

- [Converting between Graphs and Digraphs](conversion-graph-digraph.md)

  - [`OrientatedGraph(G): GrphUnd → GrphDir`](conversion-graph-digraph.md#function-orientatedgraph-grphund)

  - [`UnderlyingGraph(D): Grph → GrphUnd`](conversion-graph-digraph.md#function-underlyinggraph-grph)

  - [`UnderlyingDigraph(G): Grph → GrphDir`](conversion-graph-digraph.md#function-underlyingdigraph-grph)

- [Construction from Groups, Codes and Designs](group-code-design.md)

  - [Graphs Constructed from Groups](group-code-design.md#graphs-constructed-from-groups)

    - [`CayleyGraph(A : parameter): Grp → Grph, GrphVertSet, GrphEdgeSet`](group-code-design.md#function-cayleygraph-grp)

    - [`SchreierGraph(A, B): Grp, Grp → Grph, GrphVertSet, GrphEdgeSet`](group-code-design.md#function-schreiergraph-grp-grp)

    - [`OrbitalGraph(P, u, T): GrpPerm, RngIntElt, { RngIntElt} → GrphUnd`](group-code-design.md#function-orbitalgraph-grpperm-rngintelt-rngintelt)

    - [`ClosureGraph(P, G): GrpPerm, GrphUnd → GrphUnd`](group-code-design.md#function-closuregraph-grpperm-grphund)

    - [`PaleyGraph(q): RngIntElt → GrphUnd`](group-code-design.md#function-paleygraph-rngintelt)

    - [`PaleyTournament(q): RngIntElt → GrphDir`](group-code-design.md#function-paleytournament-rngintelt)

  - [Graphs Constructed from Designs](group-code-design.md#graphs-constructed-from-designs)

    - [`IncidenceGraph(D): Inc → GrphUnd`](group-code-design.md#function-incidencegraph-inc)

    - [`PointGraph(D): Inc → GrphUnd`](group-code-design.md#function-pointgraph-inc)

    - [`BlockGraph(D): Inc → GrphUnd`](group-code-design.md#function-blockgraph-inc)

    - [`IncidenceGraph(P): Plane → GrphUnd`](group-code-design.md#function-incidencegraph-plane)

    - [`PointGraph(P): Plane → GrphUnd;`](group-code-design.md#function-pointgraph-plane)

    - [`LineGraph(P): Plane → GrphUnd`](group-code-design.md#function-linegraph-plane)

    - [`HadamardGraph(H : parameters): Mtrx → GrphUnd`](group-code-design.md#function-hadamardgraph-mtrx)

  - [Miscellaneous Graph Constructions](group-code-design.md#miscellaneous-graph-constructions)

    - [`Converse(G): GrphDir → GrphDir`](group-code-design.md#function-converse-grphdir)

    - [`OddGraph(n): RngIntElt → GrphUnd`](group-code-design.md#function-oddgraph-rngintelt)

    - [`TriangularGraph(n): RngIntElt → GrphUnd`](group-code-design.md#function-triangulargraph-rngintelt)

    - [`SquareLatticeGraph(n): RngIntElt → GrphUnd`](group-code-design.md#function-squarelatticegraph-rngintelt)

    - [`ClebschGraph() → GrphUnd`](group-code-design.md#function-clebschgraph)

    - [`ShrikhandeGraph() → GrphUnd`](group-code-design.md#function-shrikhandegraph)

    - [`GewirtzGraph() → GrphUnd`](group-code-design.md#function-gewirtzgraph)

    - [`ChangGraphs() → [GrpUnd, GrpUnd, GrpUnd]`](group-code-design.md#function-changgraphs)

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

  - [`Order(G): Grph → RngIntElt`](invariant.md#function-order-grph)

  - [`NumberOfVertices(G): Grph → RngIntElt`](invariant.md#function-numberofvertices-grph)

  - [`Size(G): Grph → RngIntElt`](invariant.md#function-size-grph)

  - [`NumberOfEdges(G): Grph → RngIntElt`](invariant.md#function-numberofedges-grph)

  - [`CharacteristicPolynomial(G): GrphUnd → RngUPolElt`](invariant.md#function-characteristicpolynomial-grphund)

  - [`Spectrum(G): GrphUnd → SetEnum`](invariant.md#function-spectrum-grphund)

- [Elementary Graph Predicates](Boolean.md)

  - [`u adj v: GrphVert, GrphVert → BoolElt`](Boolean.md#operation-operation-adj-grphvert-grphvert-boolelt)

  - [`e adj f: GrphEdge, GrphEdge → BoolElt`](Boolean.md#operation-operation-adj-grphedge-grphedge-boolelt)

  - [`u notadj v: GrphVert, GrphVert → BoolElt`](Boolean.md#operation-operation-notadj-grphvert-grphvert-boolelt)

  - [`e notadj f: GrphEdge, GrphEdge → BoolElt`](Boolean.md#operation-operation-notadj-grphedge-grphedge-boolelt)

  - [`u in e: GrphVert, GrphEdge → BoolElt`](Boolean.md#operation-op-in-grphvert-grphedge)

  - [`u notin e: GrphVert, GrphEdge → BoolElt`](Boolean.md#operation-op-notin-grphvert-grphedge)

  - [`G eq H: GrphDir, GrphDir → BoolElt`](Boolean.md#operation-op-eq-grphdir-grphdir)

  - [`G eq H: GrphUnd, GrphUnd → BoolElt`](Boolean.md#operation-op-eq-grphund-grphund)

  - [`IsSubgraph(G, H): Grph, Grph → BoolElt`](Boolean.md#function-issubgraph-grph-grph)

  - [`IsBipartite(G): GrphUnd → BoolElt`](Boolean.md#function-isbipartite-grphund)

  - [`IsComplete(G): Grph → BoolElt`](Boolean.md#function-iscomplete-grph)

  - [`IsEulerian(G): Grph → BoolElt`](Boolean.md#function-iseulerian-grph)

  - [`IsForest(G): GrphUnd → BoolElt`](Boolean.md#function-isforest-grphund)

  - [`IsEmpty(G): Grph → BoolElt`](Boolean.md#function-isempty-grph)

  - [`IsNull(G): Grph → BoolElt`](Boolean.md#function-isnull-grph)

  - [`IsPath(G): Grph → BoolElt`](Boolean.md#function-ispath-grph)

  - [`IsPolygon(G): Grph → BoolElt`](Boolean.md#function-ispolygon-grph)

  - [`IsRegular(G): Grph → BoolElt`](Boolean.md#function-isregular-grph)

  - [`IsTree(G): Grph → BoolElt`](Boolean.md#function-istree-grph)

- [Adjacency and Degree](adjacency-degree.md)

  - [Adjacency and Degree Functions for a Graph](adjacency-degree.md#adjacency-and-degree-functions-for-a-graph)

    - [`Degree(u): GrphVert → RngIntElt`](adjacency-degree.md#function-degree-grphvert)

    - [`Alldeg(G, n): GrphUnd, RngIntElt → { GrphVert}`](adjacency-degree.md#function-alldeg-grphund-rngintelt)

    - [`MaximumDegree(G): GrphUnd → RngIntElt, GrphVert`](adjacency-degree.md#function-maximumdegree-grphund)

    - [`Maxdeg(G): GrphUnd → RngIntElt, GrphVert`](adjacency-degree.md#function-maxdeg-grphund)

    - [`MinimumDegree(G): GrphUnd → RngIntElt, GrphVert`](adjacency-degree.md#function-minimumdegree-grphund)

    - [`Mindeg(G): GrphUnd → RngIntElt, GrphVert`](adjacency-degree.md#function-mindeg-grphund)

    - [`DegreeSequence(G): Grph → [ { GrphVert} ]`](adjacency-degree.md#function-degreesequence-grph)

    - [`Valence(G): GrphUnd → RngIntElt`](adjacency-degree.md#function-valence-grphund)

    - [`Neighbours(u): GrphVert → { GrphVert}`](adjacency-degree.md#function-neighbours-grphvert)

    - [`Neighbors(u): GrphVert → { GrphVert}`](adjacency-degree.md#function-neighbors-grphvert)

    - [`IncidentEdges(u): GrphVert → { GrphEdge}`](adjacency-degree.md#function-incidentedges-grphvert-2)

    - [`Bipartition(G): GrphUnd → [ { GrphVert} ]`](adjacency-degree.md#function-bipartition-grphund)

    - [`MinimumDominatingSet(G): GrphUnd → SetEnum`](adjacency-degree.md#function-minimumdominatingset-grphund)

  - [Adjacency and Degree Functions for a Digraph](adjacency-degree.md#adjacency-and-degree-functions-for-a-digraph)

    - [`InDegree(u): GrphVert → RngIntElt`](adjacency-degree.md#function-indegree-grphvert)

    - [`OutDegree(u): GrphVert → RngIntElt`](adjacency-degree.md#function-outdegree-grphvert)

    - [`Degree(u): GrphVert → RngIntElt`](adjacency-degree.md#function-degree-grphvert-2)

    - [`Alldeg(G, n): GrphDir, RngIntElt → { GrphVert}`](adjacency-degree.md#function-alldeg-grphdir-rngintelt)

    - [`MaximumInDegree(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-maximumindegree-grphdir)

    - [`Maxindeg(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-maxindeg-grphdir)

    - [`MaximumOutDegree(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-maximumoutdegree-grphdir)

    - [`Maxoutdeg(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-maxoutdeg-grphdir)

    - [`MinimumInDegree(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-minimumindegree-grphdir)

    - [`Minindeg(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-minindeg-grphdir)

    - [`MinimumOutDegree(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-minimumoutdegree-grphdir)

    - [`Minoutdeg(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-minoutdeg-grphdir)

    - [`MaximumDegree(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-maximumdegree-grphdir)

    - [`Maxdeg(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-maxdeg-grphdir)

    - [`MinimumDegree(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-minimumdegree-grphdir)

    - [`Mindeg(G): GrphDir → RngIntElt, GrphVert`](adjacency-degree.md#function-mindeg-grphdir)

    - [`DegreeSequence(G): Grph → [ { GrphVert} ]`](adjacency-degree.md#function-degreesequence-grph-2)

    - [`InNeighbours(u): GrphVert → { GrphVert}`](adjacency-degree.md#function-inneighbours-grphvert)

    - [`InNeighbors(u): GrphVert → { GrphVert}`](adjacency-degree.md#function-inneighbors-grphvert)

    - [`OutNeighbours(u): GrphVert → { GrphVert}`](adjacency-degree.md#function-outneighbours-grphvert)

    - [`OutNeighbors(u): GrphVert → { GrphVert}`](adjacency-degree.md#function-outneighbors-grphvert)

    - [`IncidentEdges(u): GrphVert → { GrphEdge}`](adjacency-degree.md#function-incidentedges-grphvert-3)

- [Connectedness](connectedness-path-circuit.md)

  - [Connectedness in a Graph](connectedness-path-circuit.md#connectedness-in-a-graph)

    - [`IsConnected(G): GrphUnd → BoolElt`](connectedness-path-circuit.md#function-isconnected-grphund)

    - [`Components(G): GrphUnd → [ { GrphVert} ]`](connectedness-path-circuit.md#function-components-grphund)

    - [`Component(u): GrphVert → Grph`](connectedness-path-circuit.md#function-component-grphvert)

    - [`IsSeparable(G): GrphUnd → BoolElt`](connectedness-path-circuit.md#function-isseparable-grphund)

    - [`IsBiconnected(G): GrphUnd → BoolElt`](connectedness-path-circuit.md#function-isbiconnected-grphund)

    - [`CutVertices(G): Grph → { GrphVert}`](connectedness-path-circuit.md#function-cutvertices-grph)

    - [`Bicomponents(G): GrphUnd → [GrphUnd]`](connectedness-path-circuit.md#function-bicomponents-grphund)

  - [Connectedness in a Digraph](connectedness-path-circuit.md#connectedness-in-a-digraph)

    - [`IsStronglyConnected(G): GrphDir → BoolElt`](connectedness-path-circuit.md#function-isstronglyconnected-grphdir)

    - [`IsWeaklyConnected(G): GrphDir → BoolElt`](connectedness-path-circuit.md#function-isweaklyconnected-grphdir)

    - [`StronglyConnectedComponents(G): GrphDir → [ { GrphVert} ]`](connectedness-path-circuit.md#function-stronglyconnectedcomponents-grphdir)

    - [`Component(u): GrphVert → Grph`](connectedness-path-circuit.md#function-component-grphvert-2)

  - [Graph Triconnectivity](connectedness-path-circuit.md#graph-triconnectivity)

    - [`IsTriconnected(G): GrphUnd → BoolElt`](connectedness-path-circuit.md#function-istriconnected-grphund)

    - [`Splitcomponents(G): GrphUnd → [ { GrphVert } ], [ [ GrphVert ]]`](connectedness-path-circuit.md#function-splitcomponents-grphund)

    - [`SeparationVertices(G): GrphUnd → [ [ GrphVert ]], [ { GrphVert} ]`](connectedness-path-circuit.md#function-separationvertices-grphund)

    - [`Example: Triconnectivity`](connectedness-path-circuit.md#example-ex-1455c3)

  - [Maximum Matching in Bipartite Graphs](connectedness-path-circuit.md#maximum-matching-in-bipartite-graphs)

    - [`MaximumMatching(G): GrphUnd → [ { GrphEdge} ]`](connectedness-path-circuit.md#function-graph-maximummatching)

    - [`Example: Max Matching`](connectedness-path-circuit.md#example-ex-251f2b)

  - [General Vertex and Edge Connectivity in Graphs and Digraphs](connectedness-path-circuit.md#general-vertex-and-edge-connectivity-in-graphs-and-digraphs)

    - [`VertexSeparator(G): Grph → [ GrphVert ]`](connectedness-path-circuit.md#function-vertexseparator-grph)

    - [`VertexConnectivity(G): Grph → RngIntElt, [ GrphVert ]`](connectedness-path-circuit.md#function-vertexconnectivity-grph)

    - [`IsKVertexConnected(G, k): Grph, RngIntElt → BoolElt`](connectedness-path-circuit.md#function-iskvertexconnected-grph-rngintelt)

    - [`EdgeSeparator(G): Grph → [ GrphEdge ]`](connectedness-path-circuit.md#function-edgeseparator-grph)

    - [`EdgeConnectivity(G): Grph → RngIntElt, [ GrphEdge ]`](connectedness-path-circuit.md#function-edgeconnectivity-grph)

    - [`IsKEdgeConnected(G, k): Grph, RngIntElt → BoolElt`](connectedness-path-circuit.md#function-iskedgeconnected-grph-rngintelt)

    - [`Example: Connectivity`](connectedness-path-circuit.md#example-ex-c02f9d)

- [Distances, Paths and Circuits in a Graph](path-circuit-graph.md)

  - [Distances, Paths and Circuits in a Possibly Weighted Graph](path-circuit-graph.md#distances-paths-and-circuits-in-a-possibly-weighted-graph)

    - [`Reachable(u, v): GrphVert, GrphVert → BoolElt`](path-circuit-graph.md#function-reachable-grphvert-grphvert)

    - [`Distance(u, v): GrphVert, GrphVert → RngIntElt`](path-circuit-graph.md#function-distance-grphvert-grphvert)

    - [`Geodesic(u, v): GrphVert, GrphVert → [GrphVert]`](path-circuit-graph.md#function-geodesic-grphvert-grphvert)

  - [Distances, Paths and Circuits in a Non-Weighted Graph](path-circuit-graph.md#distances-paths-and-circuits-in-a-non-weighted-graph)

    - [`Diameter(G): Grph → RngIntElt`](path-circuit-graph.md#function-diameter-grph)

    - [`DiameterPath(G): Grph → [GrphVert]`](path-circuit-graph.md#function-diameterpath-grph)

    - [`Ball(u, n): GrphVert, RngIntElt → { GrphVert}`](path-circuit-graph.md#function-ball-grphvert-rngintelt)

    - [`Sphere(u, n): GrphVert, RngIntElt → { GrphVert}`](path-circuit-graph.md#function-sphere-grphvert-rngintelt)

    - [`DistancePartition(u): GrphVert → [ { GrphVert} ]`](path-circuit-graph.md#function-distancepartition-grphvert)

    - [`IsEquitable(G, P): GrphUnd, { { GrphVert}} → BoolElt`](path-circuit-graph.md#function-isequitable-grphund-grphvert)

    - [`IsEquitable(G, P): GrphUnd, { { RngIntElt}} → BoolElt`](path-circuit-graph.md#function-isequitable-grphund-rngintelt)

    - [`EquitablePartition(P, G): { { GrphVert}}, GrphUnd → { { GrphVert}}`](path-circuit-graph.md#function-equitablepartition-grphvert-grphund)

    - [`EquitablePartition(P, G): { { RngIntElt}}, GrphUnd → { { GrphVert}}`](path-circuit-graph.md#function-equitablepartition-rngintelt-grphund)

    - [`Girth(G): GrphUnd → RngIntElt`](path-circuit-graph.md#function-girth-grphund)

    - [`GirthCycle(G): GrphUnd → [GrphVert]`](path-circuit-graph.md#function-girthcycle-grphund)

- [Maximum Flow, Minimum Cut, and Shortest Paths](flow.md)

- [Matrices and Vector Spaces Associated with a Graph or Digraph](matrix-vector-space.md)

  - [`AdjacencyMatrix(G): Grph → AlgMatElt`](matrix-vector-space.md#function-adjacencymatrix-grph)

  - [`DistanceMatrix(G): Grph → AlgMatElt`](matrix-vector-space.md#function-distancematrix-grph)

  - [`IncidenceMatrix(G): Grph → ModHomElt`](matrix-vector-space.md#function-incidencematrix-grph)

  - [`IntersectionMatrix(G, P): GrphUnd, { { GrphVert}} → AlgMatElt`](matrix-vector-space.md#function-intersectionmatrix-grphund-grphvert)

  - [`IntersectionMatrix(G, P): GrphUnd, { { RngIntElt}} → AlgMatElt`](matrix-vector-space.md#function-intersectionmatrix-grphund-rngintelt)

- [Spanning Trees of a Graph or Digraph](spanning-tree.md)

  - [`SpanningTree(G): GrphUnd → Grph, GrphVertSet, GrphEdgeSet`](spanning-tree.md#function-spanningtree-grphund)

  - [`SpanningForest(G): Grph → Grph, GrphVertSet, GrphEdgeSet`](spanning-tree.md#function-spanningforest-grph)

  - [`BreadthFirstSearchTree(u): GrphVert → Grph, GrphVertSet, GrphEdgeSet`](spanning-tree.md#function-breadthfirstsearchtree-grphvert)

  - [`BFSTree(u): GrphVert → Grph`](spanning-tree.md#function-bfstree-grphvert)

  - [`DepthFirstSearchTree(u): GrphVert → Grph, GrphVertSet, GrphEdgeSet, SeqEnum`](spanning-tree.md#function-depthfirstsearchtree-grphvert)

  - [`DFSTree(u): GrphVert → Grph, GrphVertSet, GrphEdgeSet, SeqEnum`](spanning-tree.md#function-dfstree-grphvert)

- [Directed Trees](directed-tree.md)

  - [`IsRootedTree(G): GrphDir → BoolElt, GrphVert`](directed-tree.md#function-isrootedtree-grphdir)

  - [`Root(G): GrphDir → GrphVert`](directed-tree.md#function-root-grphdir)

  - [`IsRoot(v): GrphVert → BoolElt`](directed-tree.md#function-isroot-grphvert)

  - [`RootSide(v): GrphVert → GrphVert`](directed-tree.md#function-rootside-grphvert)

  - [`VertexPath(u,v): GrphVert, GrphVert → SeqEnum`](directed-tree.md#function-vertexpath-grphvert-grphvert)

  - [`BranchVertexPath(u,v): GrphVert, GrphVert → SeqEnum`](directed-tree.md#function-branchvertexpath-grphvert-grphvert)

- [Colourings](colouring.md)

  - [`ChromaticNumber(G): GrphUnd → RngIntElt`](colouring.md#function-chromaticnumber-grphund)

  - [`OptimalVertexColouring(G): GrphUnd → SeqEnum`](colouring.md#function-optimalvertexcolouring-grphund)

  - [`ChromaticIndex(G): GrphUnd → RngIntElt`](colouring.md#function-chromaticindex-grphund)

  - [`OptimalEdgeColouring(G): GrphUnd → SeqEnum`](colouring.md#function-optimaledgecolouring-grphund)

  - [`ChromaticPolynomial(G): GrphUnd → RngUPolElt`](colouring.md#function-chromaticpolynomial-grphund)

  - [`Example: Chromatic Number`](colouring.md#example-ex-8c2867)

- [Cliques, Independent Sets](clique-independent-set.md)

  - [`HasClique(G, k): GrphUnd, RngIntElt → BoolElt, { GrphVert }`](clique-independent-set.md#function-hasclique-grphund-rngintelt)

  - [`HasClique(G, k, m : parameters): GrphUnd, RngIntElt, BoolElt → BoolElt, { GrphVert }`](clique-independent-set.md#function-hasclique-grphund-rngintelt-boolelt)

  - [`HasClique(G, k, m, f : parameters): GrphUnd, RngIntElt, BoolElt, RngIntElt → BoolElt, { GrphVert }`](clique-independent-set.md#function-hasclique-grphund-rngintelt-boolelt-rngintelt)

  - [`MaximumClique(G : parameters): GrphUnd → { GrphVert }`](clique-independent-set.md#function-maximumclique-grphund)

  - [`CliqueNumber(G : parameters): GrphUnd → RngIntElt`](clique-independent-set.md#function-cliquenumber-grphund)

  - [`AllCliques(G : parameters): GrphUnd → SeqEnum`](clique-independent-set.md#function-allcliques-grphund)

  - [`AllCliques(G, k : parameters): GrphUnd, RngIntElt → SeqEnum`](clique-independent-set.md#function-allcliques-grphund-rngintelt)

  - [`AllCliques(G, k, m : parameters): GrphUnd, RngIntElt, BoolElt → SeqEnum`](clique-independent-set.md#function-allcliques-grphund-rngintelt-boolelt)

  - [`MaximumIndependentSet(G: parameters): GrphUnd → { GrphVert }`](clique-independent-set.md#function-maximumindependentset-grphund)

  - [`IndependenceNumber(G: parameters): GrphUnd → RngIntElt`](clique-independent-set.md#function-independencenumber-grphund)

  - [`Example: Cliques`](clique-independent-set.md#example-ex-8cd121)

- [Planar Graphs](planarity.md)

  - [`IsPlanar(G): GrphUnd → BoolElt, GrphUnd`](planarity.md#function-isplanar-grphund)

  - [`Obstruction(G): GrphUnd → GrphUnd`](planarity.md#function-obstruction-grphund)

  - [`IsHomeomorphic(G : parameters): GrphUnd → BoolElt`](planarity.md#function-ishomeomorphic-grphund)

  - [`Faces(G): GrphUnd → SeqEnum[GrphVert]`](planarity.md#function-faces-grphund)

  - [`Face(u, v): GrphVert, GrphVert → SeqEnum`](planarity.md#function-face-grphvert-grphvert)

  - [`Face(e): GrphEdge → SeqEnum`](planarity.md#function-face-grphedge)

  - [`NFaces(G): GrphUnd → RngIntElt`](planarity.md#function-nfaces-grphund)

  - [`NumberOfFaces(G): GrphUnd → RngIntElt`](planarity.md#function-numberoffaces-grphund)

  - [`Embedding(G): GrphUnd → SeqEnum`](planarity.md#function-embedding-grphund)

  - [`Embedding(v): GrphVert → SeqEnum`](planarity.md#function-embedding-grphvert)

  - [`PlanarDual(G): GrphUnd → GrphUnd`](planarity.md#function-planardual-grphund)

  - [`Example: Planarity`](planarity.md#example-ex-df235a)

- [Automorphism Group of a Graph or Digraph](automorphism-group-graph.md)

  - [The Automorphism Group Function](automorphism-group-graph.md#the-automorphism-group-function)

    - [`AutomorphismGroup(G : parameters): Grph → GrpPerm, GSet, GSet, PowMap, Map, Grph`](automorphism-group-graph.md#function-graph-automorphismgroup)

  - [nauty Invariants](automorphism-group-graph.md#nauty-invariants)

    - [`IsPartitionRefined(G: parameters): Grph → BoolElt`](automorphism-group-graph.md#function-ispartitionrefined-grph)

  - [Graph Colouring and Automorphism Group](automorphism-group-graph.md#graph-colouring-and-automorphism-group)

  - [Variants of Automorphism Group](automorphism-group-graph.md#variants-of-automorphism-group)

    - [`CanonicalGraph(G): Grph → Grph`](automorphism-group-graph.md#function-canonicalgraph-grph)

    - [`EdgeGroup(G): Grph → GrpPerm, GSet`](automorphism-group-graph.md#function-edgegroup-grph)

    - [`IsIsomorphic(G, H : parameters ): GrphDir, GrphDir → BoolElt, Map`](automorphism-group-graph.md#function-isisomorphic-grphdir-grphdir)

    - [`IsIsomorphic(G, H : parameters ): GrphUnd, GrphUnd → BoolElt, Map`](automorphism-group-graph.md#function-isisomorphic-grphund-grphund)

    - [`Example: Automorphism Group`](automorphism-group-graph.md#example-ex-bda3f8)

    - [`Example: Graph Isomorphim`](automorphism-group-graph.md#example-ex-4bd4fd)

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

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

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

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

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

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

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

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

    - [`Example: Automorphism Action`](automorphism-group-graph.md#example-ex-ec7c11)

- [Symmetry and Regularity Properties of Graphs](symmetry-regularity.md)

  - [`IsTransitive(G): GrphUnd → BoolElt`](symmetry-regularity.md#function-graph-istransitive)

  - [`IsVertexTransitive(G): GrphUnd → BoolElt`](symmetry-regularity.md#function-isvertextransitive-grphund)

  - [`IsEdgeTransitive(G): GrphUnd → BoolElt`](symmetry-regularity.md#function-isedgetransitive-grphund)

  - [`OrbitsPartition(G): GrphUnd → [ { GrphVert} ]`](symmetry-regularity.md#function-orbitspartition-grphund)

  - [`IsPrimitive(G): GrphUnd → BoolElt`](symmetry-regularity.md#function-isprimitive-grphund)

  - [`IsSymmetric(G): GrphUnd → BoolElt`](symmetry-regularity.md#function-issymmetric-grphund)

  - [`IsDistanceTransitive(G): GrphUnd → BoolElt`](symmetry-regularity.md#function-isdistancetransitive-grphund)

  - [`IsDistanceRegular(G): GrphUnd → BoolElt`](symmetry-regularity.md#function-isdistanceregular-grphund)

  - [`IntersectionArray(G): GrphUnd → [RngIntElt]`](symmetry-regularity.md#function-intersectionarray-grphund)

  - [`Example: Regularity`](symmetry-regularity.md#example-ex-2c631b)

- [Graph Databases and Graph Generation](graph-databases.md)

  - [Strongly Regular Graphs](graph-databases.md#strongly-regular-graphs)

    - [`StronglyRegularGraphsDatabase() → DB`](graph-databases.md#function-stronglyregulargraphsdatabase)

    - [`Classes(D): DB → SeqEnum`](graph-databases.md#function-classes-db)

    - [`NumberOfClasses(D): DB → RngIntElt`](graph-databases.md#function-numberofclasses-db)

    - [`NumberOfGraphs(D): DB → RngIntElt`](graph-databases.md#function-numberofgraphs-db)

    - [`NumberOfGraphs(D, S): DB, SeqEnum → RngIntElt`](graph-databases.md#function-numberofgraphs-db-seqenum)

    - [`Graphs(D, S): DB, SeqEnum → SeqEnum`](graph-databases.md#function-graphs-db-seqenum)

    - [`Graph(D, S, i): DB, SeqEnum, RngIntElt → GrphUnd`](graph-databases.md#function-graph-db-seqenum-rngintelt)

    - [`RandomGraph(D): DB → GrphUnd`](graph-databases.md#function-randomgraph-db)

    - [`RandomGraph(D, S): DB, SeqEnum → GrphUnd`](graph-databases.md#function-randomgraph-db-seqenum)

    - [`for G in D do ... end for;`](graph-databases.md#literal-literal-for-for-g-in-d-do-end-for)

    - [`Example: Strongly Regular Graphs`](graph-databases.md#example-ex-a88364)

  - [Small Graphs](graph-databases.md#small-graphs)

    - [Creation of Small Graph Databases](graph-databases.md#creation-of-small-graph-databases)

      - [`SmallGraphDatabase(n : parameters): RngIntElt → DB`](graph-databases.md#function-smallgraphdatabase-rngintelt)

      - [`EulerianGraphDatabase(n : parameters): RngIntElt → DB`](graph-databases.md#function-euleriangraphdatabase-rngintelt)

      - [`PlanarGraphDatabase(n): RngIntElt → DB`](graph-databases.md#function-planargraphdatabase-rngintelt)

      - [`SelfComplementaryGraphDatabase(n): RngIntElt → DB`](graph-databases.md#function-selfcomplementarygraphdatabase-rngintelt)

    - [Access functions](graph-databases.md#access-functions)

      - [`# D: DB → RngIntElt`](graph-databases.md#operation-operation-db-rngintelt)

      - [`Graph(D, i): DB, RngIntElt → GrphUnd`](graph-databases.md#function-graph-db-rngintelt)

      - [`Random(D): DB → GrphUnd`](graph-databases.md#function-random-db)

      - [`for G in D do ... end for;`](graph-databases.md#literal-literal-for-for-g-in-d-do-end-for-2)

  - [Generating Graphs](graph-databases.md#generating-graphs)

    - [`GenerateGraphs(n : parameters): RngIntElt → IO`](graph-databases.md#function-generategraphs-rngintelt)

    - [`NextGraph(I: parameters): IO → BoolElt, GrphUnd`](graph-databases.md#function-graph-nextgraph)

    - [`Example: Graph Generation`](graph-databases.md#example-ex-56c803)

  - [A General Facility](graph-databases.md#a-general-facility)

    - [`OpenGraphFile(s, f, p): MonStgElt, RngIntElt, RngIntElt → IO`](graph-databases.md#function-opengraphfile-monstgelt-rngintelt-rngintelt)

    - [`Example: Graph General Access`](graph-databases.md#example-ex-49cbde)
