record Path : Nat -> Type A shortest path of length `length` from a starting node to node `last`.
`combos` is the number of shortest paths of the same length leading
from `first` to `last`.
Node `first` is the first node after the root node, and is used to
check if two paths are disjoint.
Totality: total
Visibility: public export
Constructor: P : Nat -> SnocList (Fin k) -> Bool -> Fin k -> Fin k -> Nat -> Path k
Projections:
.combos : Path k -> Nat Number of paths of the same length from `root` to
`last`. This is later used to compute the size of
a family of relevant cycles
.first : Path k -> Fin k The first non-root node in the path
.keep : Path k -> Bool True, if all nodes in the path are smaller than the root
This flag is used for efficiency, as it allows us to avoid
computing the same cycle more than once.
.last : Path k -> Fin k The last node in the path
.length : Path k -> Nat Number of nodes in the path (including the root node).
.path : Path k -> SnocList (Fin k) The accumulated path viewed from the right
Hints:
Eq (Path k) Show (Path k)
.length : Path k -> Nat Number of nodes in the path (including the root node).
Totality: total
Visibility: public exportlength : Path k -> Nat Number of nodes in the path (including the root node).
Totality: total
Visibility: public export.path : Path k -> SnocList (Fin k) The accumulated path viewed from the right
Totality: total
Visibility: public exportpath : Path k -> SnocList (Fin k) The accumulated path viewed from the right
Totality: total
Visibility: public export.keep : Path k -> Bool True, if all nodes in the path are smaller than the root
This flag is used for efficiency, as it allows us to avoid
computing the same cycle more than once.
Totality: total
Visibility: public exportkeep : Path k -> Bool True, if all nodes in the path are smaller than the root
This flag is used for efficiency, as it allows us to avoid
computing the same cycle more than once.
Totality: total
Visibility: public export.first : Path k -> Fin k The first non-root node in the path
Totality: total
Visibility: public exportfirst : Path k -> Fin k The first non-root node in the path
Totality: total
Visibility: public export.last : Path k -> Fin k The last node in the path
Totality: total
Visibility: public exportlast : Path k -> Fin k The last node in the path
Totality: total
Visibility: public export.combos : Path k -> Nat Number of paths of the same length from `root` to
`last`. This is later used to compute the size of
a family of relevant cycles
Totality: total
Visibility: public exportcombos : Path k -> Nat Number of paths of the same length from `root` to
`last`. This is later used to compute the size of
a family of relevant cycles
Totality: total
Visibility: public exportrecord NCycle : Nat -> Type A family of cycles in a graph of order `k`.
Totality: total
Visibility: public export
Constructor: NC : List (Fin k) -> (size : Nat) -> Nat -> {auto 0 _ : LTE 3 size} -> NCycle k
Projections:
.combos : NCycle k -> Nat Number of members in the family.
.path : NCycle k -> List (Fin k) A single representative of the cycle family.
0 .prf : ({rec:0} : NCycle k) -> LTE 3 (size {rec:0}) A cycle consists of at least three nodes
.size : NCycle k -> Nat Length of the cycle.
Hints:
Cast (NCycle k) (Cycle k) Eq (NCycle k) Show (NCycle k)
.path : NCycle k -> List (Fin k) A single representative of the cycle family.
Totality: total
Visibility: public exportpath : NCycle k -> List (Fin k) A single representative of the cycle family.
Totality: total
Visibility: public export.size : NCycle k -> Nat Length of the cycle.
Totality: total
Visibility: public exportsize : NCycle k -> Nat Length of the cycle.
Totality: total
Visibility: public export.combos : NCycle k -> Nat Number of members in the family.
Totality: total
Visibility: public exportcombos : NCycle k -> Nat Number of members in the family.
Totality: total
Visibility: public export0 .prf : ({rec:0} : NCycle k) -> LTE 3 (size {rec:0}) A cycle consists of at least three nodes
Totality: total
Visibility: public export0 prf : ({rec:0} : NCycle k) -> LTE 3 (size {rec:0}) A cycle consists of at least three nodes
Totality: total
Visibility: public export0 Edg : Nat -> Type- Totality: total
Visibility: public export 0 ECycle : Nat -> Type- Totality: total
Visibility: public export record Cycle : Nat -> Type- Totality: total
Visibility: public export
Constructor: C : NCycle k -> ECycle k -> SortedSet (Fin k) -> SortedSet (Edg k) -> Cycle k
Projections:
.ecycle : Cycle k -> ECycle k .edgeset : Cycle k -> SortedSet (Edg k) .ncycle : Cycle k -> NCycle k .nodeset : Cycle k -> SortedSet (Fin k)
Hints:
Cast (NCycle k) (Cycle k) Eq (Cycle k) Show (Cycle k)
.ncycle : Cycle k -> NCycle k- Totality: total
Visibility: public export ncycle : Cycle k -> NCycle k- Totality: total
Visibility: public export .ecycle : Cycle k -> ECycle k- Totality: total
Visibility: public export ecycle : Cycle k -> ECycle k- Totality: total
Visibility: public export .nodeset : Cycle k -> SortedSet (Fin k)- Totality: total
Visibility: public export nodeset : Cycle k -> SortedSet (Fin k)- Totality: total
Visibility: public export .edgeset : Cycle k -> SortedSet (Edg k)- Totality: total
Visibility: public export edgeset : Cycle k -> SortedSet (Edg k)- Totality: total
Visibility: public export .nodes : Cycle k -> List (Fin k)- Totality: total
Visibility: export ecycle : List (Fin k) -> ECycle k- Totality: total
Visibility: export sharedNodes : Cycle k -> Cycle k -> List (Fin k) Returns the list of nodes two cycles have in common.
Totality: total
Visibility: exportnumSharedNodes : Cycle k -> Cycle k -> Nat Returns the number of nodes shared by two cycles.
Totality: total
Visibility: exportsharedEdges : Cycle k -> Cycle k -> List (Edg k) Returns the list of edges two cycles have in common.
Totality: total
Visibility: exportnumSharedEdges : Cycle k -> Cycle k -> Nat Returns the number of nodes shared by two cycles.
Totality: total
Visibility: exportisFusedTo : Cycle k -> Cycle k -> Bool True, if the two cycles share a single edge and no additional node.
Totality: total
Visibility: exportisSpiro : Cycle k -> Cycle k -> Bool True, if the two cycles share a single node.
Totality: total
Visibility: exportrecord CycleSets : Nat -> Type- Totality: total
Visibility: public export
Constructor: CS : List (Cycle k) -> List (Cycle k) -> CycleSets k
Projections:
.cr : CycleSets k -> List (Cycle k) .mcb : CycleSets k -> List (Cycle k)
Hints:
Eq (CycleSets k) Show (CycleSets k)
.cr : CycleSets k -> List (Cycle k)- Totality: total
Visibility: public export cr : CycleSets k -> List (Cycle k)- Totality: total
Visibility: public export .mcb : CycleSets k -> List (Cycle k)- Totality: total
Visibility: public export mcb : CycleSets k -> List (Cycle k)- Totality: total
Visibility: public export data Candidates : Nat -> Type -> Type- Totality: total
Visibility: public export
Constructors:
Empty : Candidates k e Isolate : Subgraph k e Nat -> NCycle k -> Candidates k e System : (o : Nat) -> ISubgraph o k e Nat -> List (NCycle o) -> Candidates k e