OAI/Combinatorics/ContingencyTables/Transport/FiniteDirectedBFS.lean
26 declarations, 0 contain sorry, 0 declared as axioms
Deterministic directed breadth-first search
Each round retains every discovered path and scans the vertex list for one predecessor of each undiscovered vertex. There is one stored path per vertex; the search does not enumerate candidate paths.
- inductive
OAI.ContingencyTables.FiniteDirectedBFS.Routeline 20Source documentation
A directed walk, including its two endpoints.
inductive Route (E : Fin n → Fin n → Bool) (s : Fin n) : Fin n → List (Fin n) → Prop | start : Route E s s [s] | extend {u v xs} : Route E s u xs → E u v=true → Route E s v (xs++[v]) namespace Route variable {E : Fin n → Fin n → Bool} {s v : Fin n} {xs : List (Fin n)} - theorem
OAI.ContingencyTables.FiniteDirectedBFS.Route.nonemptyline 29 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.Route.length_posline 32 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.Route.headline 35 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.Route.lastline 42 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.Route.chainline 45 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.Route.routePrefixline 53Source documentation
Every visited vertex has a prefix walk no longer than the whole walk.
theorem routePrefix (h : Route E s v xs) {w : Fin n} (hw : w∈xs) : ∃ ys, Route E s w ys ∧ ys.length≤xs.length := by … - abbrev
OAI.ContingencyTables.FiniteDirectedBFS.Pathsline 70 - def
OAI.ContingencyTables.FiniteDirectedBFS.discoveredline 72 - def
OAI.ContingencyTables.FiniteDirectedBFS.predecessorline 74 - def
OAI.ContingencyTables.FiniteDirectedBFS.roundline 78 - def
OAI.ContingencyTables.FiniteDirectedBFS.pathsline 84 - lemma
OAI.ContingencyTables.FiniteDirectedBFS.predecessor_someline 88 - lemma
OAI.ContingencyTables.FiniteDirectedBFS.predecessor_noneline 95 - lemma
OAI.ContingencyTables.FiniteDirectedBFS.round_retainsline 104 - lemma
OAI.ContingencyTables.FiniteDirectedBFS.round_discoveredline 108 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.paths_soundline 132 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.route_discoveredline 163 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.paths_shortestline 182 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.paths_nodupline 204 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.paths_length_leline 241 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.route_foundline 247Source documentation
Every directed walk is found within n rounds. The proof uses the short simple path stored by the search, rather than enumerating walks.
theorem route_found {E : Fin n → Fin n → Bool} {s v : Fin n} {xs : List (Fin n)} (h : Route E s v xs) : discovered (paths E s n) v := by …Mentions: OAI.ContingencyTables.FiniteDirectedBFS.Route, OAI.ContingencyTables.FiniteDirectedBFS.discovered, OAI.ContingencyTables.FiniteDirectedBFS.paths
- theorem
OAI.ContingencyTables.FiniteDirectedBFS.paths_completeline 254 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.source_foundline 264Source documentation
The computed reached set contains the source and is closed under every directed edge. This is the cut certificate used on failure.
theorem source_found (E : Fin n → Fin n → Bool) (s : Fin n) : discovered (paths E s n) s := route_found Route.startMentions: OAI.ContingencyTables.FiniteDirectedBFS.discovered, OAI.ContingencyTables.FiniteDirectedBFS.paths, OAI.ContingencyTables.FiniteDirectedBFS.route_found
- theorem
OAI.ContingencyTables.FiniteDirectedBFS.reached_closedline 267 - theorem
OAI.ContingencyTables.FiniteDirectedBFS.failure_no_routeline 273