Documentation

Atlas.CombinatorialOptimization.code.Matching.EdmondsProgress

structure SimpleGraph.AlternatingForest {V : Type u_1} (G : SimpleGraph V) (M : G.Subgraph) :
Type u_1
Instances For
    Instances For
      theorem SimpleGraph.walk_level_induction {V : Type u_1} {G : SimpleGraph V} (M : G.Subgraph) (F : G.AlternatingForest M) (hsat : ∀ (u v : V), G.Adj u v → F.isEvenLevel u → v ∈ F.forestVerts ∧ Odd (F.level v)) {s t : V} (p : G.Walk s t) (halt : p.IsAlternatingFrom M) (hs_forest : s ∈ F.forestVerts) (hs_even : Even (F.level s)) (i : ℕ) :
      i ≤ p.length → p.getVert i ∈ F.forestVerts ∧ (Even i → Even (F.level (p.getVert i))) ∧ (Odd i → Odd (F.level (p.getVert i)))
      theorem SimpleGraph.no_augmenting_path_of_saturated {V : Type u_1} {G : SimpleGraph V} (M : G.Subgraph) (F : G.AlternatingForest M) (hsat : ∀ (u v : V), G.Adj u v → F.isEvenLevel u → v ∈ F.forestVerts ∧ Odd (F.level v)) :
      theorem SimpleGraph.edmonds_progress {V : Type u_1} [DecidableEq V] [Fintype V] {G : SimpleGraph V} [DecidableRel G.Adj] (M : G.Subgraph) (hM : M.IsMatching) (F : G.AlternatingForest M) :
      (∃ (u : V) (v : V), G.Adj u v ∧ F.isEvenLevel u ∧ v ∉ F.forestVerts) ∨ (∃ (u : V) (v : V), G.Adj u v ∧ F.isEvenLevel u ∧ F.isEvenLevel v ∧ F.root u = F.root v) ∨ (∃ (u : V) (v : V), G.Adj u v ∧ F.isEvenLevel u ∧ F.isEvenLevel v ∧ F.root u ≠ F.root v) ∨ M.IsMaxMatching