Real max-flow min-cut from residual reachability
Lax342547.FlowCuts · concepts/Lax342547/FlowCuts.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Internal skew flow cancels, conservation identifies cut divergence with source value, and the reachable residual cut is saturated. Its real capacity equals the maximum flow value, and every cut bounds every feasible flow.
Concept map
Evidence
This concept declares 7 statements. Each proof establishes one of them relative to its assumptions.
1 conserving_cut_value proven
2 cut_indicator proven
3 cut_upper_bound proven
4 divergence_cut_sum proven
5 internal_skew_sum proven
6 real_max_flow_min_cut proven
7 saturated_cut_value proven
Lean source view on GitHub
| 1 | import Lax342547.ResidualFlows |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Real max-flow min-cut from residual reachability |
| 6 | type: lemma |
| 7 | --- |
| 8 | Internal skew flow cancels, conservation identifies cut divergence with source value, and the reachable residual cut is saturated. Its real capacity equals the maximum flow value, and every cut bounds every feasible flow. |
| 9 | -/ |
| 10 | |
| 11 | namespace Lax342547.FlowCuts |
| 12 | |
| 13 | open Lax342547.RealFlows |
| 14 | open scoped BigOperators |
| 15 | |
| 16 | noncomputable def cutCapacity {V : Type} [Fintype V] (c : V → V → ℝ) (Z : Finset V) : ℝ := by |
| 17 | classical |
| 18 | exact ∑ a ∈ Z, ∑ b ∈ Zᶜ, c a b |
| 19 | |
| 20 | axiom cut_indicator {V : Type} [Fintype V] (c : V → V → ℝ) (Z : Finset V) : by |
| 21 | classical |
| 22 | exact cutCapacity c Z = ∑ a, ∑ b, if a ∈ Z ∧ b ∉ Z then c a b else 0 |
| 23 | |
| 24 | axiom internal_skew_sum {V : Type} (f : V → V → ℝ) (Z : Finset V) |
| 25 | (hskew : ∀ a b, f a b = -f b a) : (∑ a ∈ Z, ∑ b ∈ Z, f a b) = 0 |
| 26 | |
| 27 | axiom divergence_cut_sum {V : Type} [Fintype V] (f : V → V → ℝ) (Z : Finset V) |
| 28 | (hskew : ∀ a b, f a b = -f b a) : by |
| 29 | classical |
| 30 | exact (∑ a ∈ Z, divergence f a) = ∑ a ∈ Z, ∑ b ∈ Zᶜ, f a b |
| 31 | |
| 32 | axiom conserving_cut_value {V : Type} [Fintype V] (c f : V → V → ℝ) (s t : V) |
| 33 | (hf : Feasible c f s t) (Z : Finset V) (hs : s ∈ Z) (ht : t ∉ Z) : |
| 34 | (∑ a ∈ Z, divergence f a) = divergence f s |
| 35 | |
| 36 | axiom saturated_cut_value {V : Type} [Fintype V] (c f : V → V → ℝ) (s t : V) |
| 37 | (hf : Feasible c f s t) (Z : Finset V) (hs : s ∈ Z) (ht : t ∉ Z) |
| 38 | (hsat : ∀ a ∈ Z, ∀ b ∉ Z, f a b = c a b) : |
| 39 | divergence f s = cutCapacity c Z |
| 40 | |
| 41 | axiom cut_upper_bound {V : Type} [Fintype V] (c f : V → V → ℝ) (s t : V) |
| 42 | (hf : Feasible c f s t) (Z : Finset V) (hs : s ∈ Z) (ht : t ∉ Z) : |
| 43 | divergence f s ≤ cutCapacity c Z |
| 44 | |
| 45 | axiom real_max_flow_min_cut {V : Type} [Fintype V] (c : V → V → ℝ) (s t : V) |
| 46 | (hst : s ≠ t) (hc : ∀ a b, 0 ≤ c a b) : |
| 47 | ∃ f Z, Feasible c f s t ∧ s ∈ Z ∧ t ∉ Z ∧ divergence f s = cutCapacity c Z ∧ |
| 48 | ∀ g, Feasible c g s t → divergence g s ≤ divergence f s |
| 49 | |
| 50 | end Lax342547.FlowCuts |
| 51 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments