Concrete graph data for the NBC layer.
Mathlib has the graph-side notion of a simple cycle, but it does not provide
the graphic matroid. This file therefore stops at the interface that can be
proved without importing an unproved graphic-matroid construction: cycles
are represented by finite edge sets of actual Walk.IsCycle witnesses, and
the final bridge is conditional on a matroid's ground, spanning, and circuit
presentations.
Finite edge and cycle sets #
The graph's edge set as a finite set of unordered vertex pairs.
Equations
- HsVirial.graphEdgeFinset G = {e : Sym2 V | e ∈ G.edgeSet}
Instances For
The finite edge set traversed by a closed walk.
Equations
Instances For
IsGraphCycle is deliberately an edge-set predicate rather than a predicate
on a chosen walk. Different orientations or starting points of one cycle
consequently describe the same circuit candidate.
An edge set realized by a simple graph cycle.
Equations
- HsVirial.IsGraphCycle G C = ∃ (v : V) (c : G.Walk v v), c.IsCycle ∧ C = HsVirial.cycleEdgeFinset c
Instances For
Broken circuits and graph-side candidates #
The chosen non-strict comparison of graph edges.
Equations
- HsVirial.graphEdgeLE a b = (a ≤ b)
Instances For
The chosen strict comparison of graph edges.
Equations
- HsVirial.graphEdgeLT a b = (a < b)
Instances For
An edge set obtained by deleting the greatest edge from a cycle.
Equations
- HsVirial.IsGraphBrokenCircuit G B = ∃ (C : Finset (Sym2 V)) (e : Sym2 V), HsVirial.IsGraphCycle G C ∧ e ∈ C ∧ (∀ f ∈ C, HsVirial.graphEdgeLE f e) ∧ B = C.erase e
Instances For
An edge whose insertion completes a cycle with the remaining edges already present.
Equations
- HsVirial.IsGraphNBCandidate G A e = ∃ (C : Finset (Sym2 V)), HsVirial.IsGraphCycle G C ∧ e ∈ C ∧ (∀ f ∈ C, HsVirial.graphEdgeLE f e) ∧ ↑(C.erase e) ⊆ ↑A
Instances For
These are explicit interface theorems, not a proposed graphic-matroid definition: the graph predicates above remain concrete while the matroid construction is developed separately.
Graph-side signed cancellation #
The edge set induces the same reachability relation as the ambient graph.
Equations
- HsVirial.IsGraphSpanning G A = ((SimpleGraph.fromEdgeSet ↑A).Reachable = G.Reachable)
Instances For
There exists an edge witnessing a broken circuit in the given edge set.
Equations
- HsVirial.IsGraphNBCBad G A = ∃ (e : Sym2 V), HsVirial.IsGraphNBCandidate G A e
Instances For
Enumerate edge subsets preserving the graph's connected components.
Equations
Instances For
The spanning edge subsets that contain no broken circuit.