Trusted statement layer for Sabidussi compatibility #
This module contains only the public data and predicates occurring in the headline theorem. It is
the trusted import boundary for leanprover/comparator; proof modules build on it, but it does not
import them.
A labelled edge together with one of its two numbered ends.
Equations
- Sabidussi.LoopMultigraph.HalfEdge E = (E × Fin 2)
Instances For
Half-edges incident with a vertex. A loop contributes both of its numbered ends.
Equations
- G.halfEdgesAt v = { h : Sabidussi.LoopMultigraph.HalfEdge E // G.vertex h = v }
Instances For
Equations
- G.instFintypeHalfEdgesAt v = Subtype.fintype fun (h : Sabidussi.LoopMultigraph.HalfEdge E) => G.vertex h = v
Degree counted in half-edge incidences.
Equations
- G.degree v = Fintype.card (G.halfEdgesAt v)
Instances For
A nonempty closed Euler tour using every labelled edge exactly once.
- n : ℕ
The edge positions are
Fin (n + 1). Every edge object occurs at exactly one position.
The end from which the edge at a position is traversed.
- continuous (i : Fin (self.n + 1)) : G.endAt (self.edge i) (self.depart i).rev = G.endAt (self.edge ((finRotate (self.n + 1)) i)) (self.depart ((finRotate (self.n + 1)) i))
The arrival end at a position is the departure vertex at the next position.
Instances For
The ordinary natural-number degree of v in an edge set. Edge ends are counted, so this
definition also has the standard behavior for multigraphs.
Instances For
Two labelled edges meet if some numbered end of one has the same endpoint as some numbered end of the other. An edge meets itself, and parallel edges meet at both endpoints.
Instances For
Edge-chain connectivity of a nonempty edge-supported subgraph.
Equations
- G.EdgeConnected F = ∃ root ∈ F, ∀ e ∈ F, Relation.ReflTransGen (fun (x y : E) => x ∈ F ∧ y ∈ F ∧ G.EdgeAdjacent x y) root e
Instances For
The vertices incident with at least one edge of F.
Equations
- G.edgeSupport F = {v : V | ∃ e ∈ F, ∃ (i : Fin 2), G.endAt e i = v}
Instances For
An ordinary circuit: a nonempty connected edge-supported subgraph in which every supported vertex has degree two.
- edges : Finset E
The edges of the circuit.
An ordinary circuit is nonempty.
- connected : G.EdgeConnected self.edges
The circuit is edge-connected.
Every supported vertex has ordinary degree two.
Instances For
A partition of all labelled edges into ordinary connected 2-regular circuits.
- circuits : List G.OrdinaryCircuit
The list of ordinary circuits partitioning the edges.
- coveredOnce (e : E) : (List.filter (fun (C : G.OrdinaryCircuit) => decide (e ∈ C.edges)) self.circuits).length = 1
Every labelled edge lies in exactly one circuit.
Instances For
Compatibility stated for ordinary circuits.