OAI/Combinatorics/TreewidthL1/Annulus.lean
87 declarations, 0 contain sorry, 0 declared as axioms
Finite adaptive random iteration. No independence assumptions on an intermediate state: every fresh coordinate is independently enumerated.
- lemma
OAI.BoundedTreewidthL1.path_length_set_nonempty_of_reachableline 12 - lemma
OAI.BoundedTreewidthL1.shortestPathDistance_attained_of_reachableline 18 - lemma
OAI.BoundedTreewidthL1.shortestPathDistance_nonneg_of_reachableline 23 - lemma
OAI.BoundedTreewidthL1.shortestPathDistance_self_of_nonnegline 29 - lemma
OAI.BoundedTreewidthL1.shortestPathDistance_comm_of_reachableline 34 - lemma
OAI.BoundedTreewidthL1.shortestPathDistance_triangle_of_reachableline 44 - lemma
OAI.BoundedTreewidthL1.walkLength_takeUntil_leline 52 - lemma
OAI.BoundedTreewidthL1.geodesic_split_of_reachableline 60 - lemma
OAI.BoundedTreewidthL1.reachable_openBall_connectedline 75Source documentation
Intrinsic balls are connected even when the ambient graph is disconnected; reachability is explicit, so the empty-infimum convention never adds vertices.
lemma reachable_openBall_connected [Fintype V] [DecidableEq V] (hℓ : ∀ e, 0 ≤ ℓ e) (u : V) {r : ℝ} (hr : 0 < r) : (G.induce {v | G.Reachable u v ∧ shortestPathDistance G ℓ u v < r}).Connected := by … - lemma
OAI.BoundedTreewidthL1.reachable_closedBall_connectedline 94 - lemma
OAI.BoundedTreewidthL1.shortest_closedBall_connectedline 113 - def
OAI.BoundedTreewidthL1.weightedMetricSpaceline 126 - abbrev
OAI.BoundedTreewidthL1.Annulus.weightsline 141 - def
OAI.BoundedTreewidthL1.Annulus.distanceline 143 - def
OAI.BoundedTreewidthL1.Annulus.rootline 146 - lemma
OAI.BoundedTreewidthL1.Annulus.root_reachableline 149 - lemma
OAI.BoundedTreewidthL1.Annulus.root_eqline 152 - lemma
OAI.BoundedTreewidthL1.Annulus.root_idemline 155 - def
OAI.BoundedTreewidthL1.Annulus.heightline 158 - lemma
OAI.BoundedTreewidthL1.Annulus.walkLength_weightsline 161 - lemma
OAI.BoundedTreewidthL1.Annulus.walkLength_transferline 169 - lemma
OAI.BoundedTreewidthL1.Annulus.walkLength_mono_mapline 174 - lemma
OAI.BoundedTreewidthL1.Annulus.distance_monoline 182 - lemma
OAI.BoundedTreewidthL1.Annulus.distance_edgeline 190 - lemma
OAI.BoundedTreewidthL1.Annulus.height_nonnegline 195 - lemma
OAI.BoundedTreewidthL1.Annulus.height_rootline 200 - lemma
OAI.BoundedTreewidthL1.Annulus.height_eq_of_reachableline 205 - lemma
OAI.BoundedTreewidthL1.Annulus.height_le_add_distanceline 209 - lemma
OAI.BoundedTreewidthL1.Annulus.height_edgeline 216 - lemma
OAI.BoundedTreewidthL1.Annulus.walk_crossing_belowline 224Source documentation
The predecessor of a first height crossing is strictly inside the ball.
lemma walk_crossing_below (H : SimpleGraph V) (f : V → ℝ) {ε t : ℝ} (hstep : ∀ a b, H.Adj a b → f b ≤ f a + ε) {u v : V} (p : H.Walk u v) (hu : f u < t) (hv : t ≤ f v) : ∃ z ∈ p.support, t - ε ≤ f z ∧ f z < t := by … - def
OAI.BoundedTreewidthL1.Annulus.innerline 238Source documentation
The strict intrinsic inner ball, with reachability explicitly imposed.
def inner (H : SimpleGraph V) (w : Sym2 V → ℝ) (x : V) (t : ℝ) : Set V := …
- lemma
OAI.BoundedTreewidthL1.Annulus.inner_connectedline 241 - lemma
OAI.BoundedTreewidthL1.Annulus.inner_reachableline 246 - lemma
OAI.BoundedTreewidthL1.Annulus.inner_heightline 250 - lemma
OAI.BoundedTreewidthL1.Annulus.inner_dominatesline 255 - def
OAI.BoundedTreewidthL1.Annulus.bandline 283 - def
OAI.BoundedTreewidthL1.Annulus.cutline 286 - lemma
OAI.BoundedTreewidthL1.Annulus.cut_leline 291 - lemma
OAI.BoundedTreewidthL1.Annulus.band_eq_of_cut_reachableline 294 - lemma
OAI.BoundedTreewidthL1.Annulus.band_boundsline 301 - lemma
OAI.BoundedTreewidthL1.Annulus.band_nonnegline 313 - theorem
OAI.BoundedTreewidthL1.Annulus.cut_component_alternativeline 319Source documentation
A single annulus either is close to its root, or has a connected inner ball deleted from its component and uniformly close to all of that component.
theorem cut_component_alternative [Fintype V] [DecidableEq V] (G H : SimpleGraph V) (hHG : H ≤ G) (w : Sym2 V → ℝ) (hw : ∀ e, 0 ≤ w e) {R a ε : ℝ} (hR : 0 < R) (ha0 : 0 ≤ a) (haR : a < R) (hmesh : ∀ u v, H.Adj u v → w s(u,v) ≤ ε) (x : V) : (∀ y z, (cut H w R a).Reachable x y → (cut H w R a).Reachable x z → distance G w y z ≤ 2 * R) ∨ ∃ B : Set V, (G.induce B).Connected ∧ (∀ z ∈ B, H.Reachable x z) ∧ (∀ z ∈ B, ¬(cut H w R a).Reachable x z) ∧ ∀ c, (cut H w R a).Reachable x c → ∃ z ∈ B, distance G w c z ≤ R + ε := by …Mentions: OAI.BoundedTreewidthL1.Annulus.cut, OAI.BoundedTreewidthL1.Annulus.distance
- def
OAI.BoundedTreewidthL1.Annulus.runline 379Source documentation
Successive annulus cuts, with one finite random choice at each round.
noncomputable def run (w : Sym2 V → ℝ) (R : ℝ) (offset : A → ℝ) : (n : ℕ) → SimpleGraph V → (Fin n → A) → SimpleGraph V | 0, H, _ => H | n + 1, H, σ => run w R offset n (cut H w R (offset (σ 0))) (fun i => σ i.succ)Mentions: OAI.BoundedTreewidthL1.Annulus.cut
- lemma
OAI.BoundedTreewidthL1.Annulus.run_leline 384 - structure
OAI.BoundedTreewidthL1.Annulus.BarrierFamilyline 392Source documentation
Connected barriers around a final component. The inside/outside fields are what permit nested cuts to add one more disjoint barrier at each round.
structure BarrierFamily (G H F : SimpleGraph V) (w : Sym2 V → ℝ) (ρ : ℝ) (x : V) (n : ℕ) where … - theorem
OAI.BoundedTreewidthL1.Annulus.run_component_alternativeline 403Source documentation
Deterministic invariant of the annulus recursion. A large component has one genuinely connected, disjoint nearby barrier for every cut round.
theorem run_component_alternative [Fintype V] [DecidableEq V] (G : SimpleGraph V) (w : Sym2 V → ℝ) (hw : ∀ e, 0 ≤ w e) {R ε : ℝ} (hR : 0 < R) (offset : A → ℝ) (hoff0 : ∀ a, 0 ≤ offset a) (hoffR : ∀ a, offset a < R) (n : ℕ) (H : SimpleGraph V) (hHG : H ≤ G) (hmesh : ∀ u v, H.Adj u v → w s(u,v) ≤ ε) (σ : Fin n → A) (x : V) : (∀ y z, (run w R offset n H σ).Reachable x y → (run w R offset n H σ).Reachable x z → distance G w y z ≤ 2 * R) ∨ Nonempty (BarrierFamily G H (run w R offset n H σ) w (R + ε) x n) := by …Mentions: OAI.BoundedTreewidthL1.Annulus.run, OAI.BoundedTreewidthL1.Annulus.distance, OAI.BoundedTreewidthL1.Annulus.BarrierFamily
- lemma
OAI.BoundedTreewidthL1.Annulus.reachable_set_connectedline 477 - def
OAI.BoundedTreewidthL1.TreePathClosedline 491Source documentation
Convexity with respect to the unique simple paths in a tree.
def TreePathClosed {I : Type*} (T : SimpleGraph I) (S : Set I) : Prop := … - theorem
OAI.BoundedTreewidthL1.tree_helly_auxline 495 - theorem
OAI.BoundedTreewidthL1.tree_subtree_hellyline 571Source documentation
Finite trees have the Helly property for connected vertex sets. The index family need not be finite. This is the exact combinatorial input for the bounded-treewidth padded-partition construction, not a main theorem claim.
theorem tree_subtree_helly {I J : Type*} [Fintype I] (T : SimpleGraph I) (hT : T.IsTree) (S : J → Set I) (hS : ∀ j, (T.induce (S j)).Connected) (hpair : ∀ i j, (S i ∩ S j).Nonempty) : ∃ v, ∀ j, v ∈ S j := by … - lemma
OAI.BoundedTreewidthL1.touched_bags_connected_setline 583Source documentation
An arbitrary nonempty connected vertex set touches a connected set of bags.
lemma touched_bags_connected_set {V I : Type*} [DecidableEq V] (G : SimpleGraph V) (T : SimpleGraph I) (bag : I → Finset V) (hedge : ∀ u v, G.Adj u v → ∃ t, u ∈ bag t ∧ v ∈ bag t) (hocc : ∀ v, (T.induce {t | v ∈ bag t}).Connected) (S : Set V) (hS : (G.induce S).Connected) : (T.induce {t | ∃ z ∈ S, z ∈ bag t}).Connected := by … - lemma
OAI.BoundedTreewidthL1.card_le_of_pairwise_disjoint_hitsline 607 - theorem
OAI.BoundedTreewidthL1.tree_decomposition_crossbarline 625Source documentation
A crossbar of two internally disjoint families of connected sets forces a bag meeting every member of one family. Consequently its size is at least the smaller family cardinality. This is the deterministic width obstruction used by iterated annulus partitions.
theorem tree_decomposition_crossbar {V I A B : Type*} [DecidableEq V] [Fintype I] [Fintype A] [Fintype B] (G : SimpleGraph V) (T : SimpleGraph I) (bag : I → Finset V) (hT : T.IsTree) (hedge : ∀ u v, G.Adj u v → ∃ t, u ∈ bag t ∧ v ∈ bag t) (hocc : ∀ v, (T.induce {t | v ∈ bag t}).Connected) (X : A → Set V) (Y : B → Set V) (hX : ∀ i, (G.induce (X i)).Connected) (hY : ∀ j, (G.induce (Y j)).Connected) (hdisX : Pairwise (fun i j => Disjoint (X i) (X j))) (hdisY : Pairwise (fun i j => Disjoint (Y i) (Y j))) (hcross : ∀ i j, (X i ∩ Y j).Nonempty) : … - lemma
OAI.BoundedTreewidthL1.walk_crossing_windowline 664Source documentation
A discrete intermediate-value bound with an explicit mesh error.
lemma walk_crossing_window {V : Type*} (H : SimpleGraph V) (f : V → ℝ) {ε t : ℝ} (hε : 0 ≤ ε) (hstep : ∀ a b, H.Adj a b → f b ≤ f a + ε) {u v : V} (p : H.Walk u v) (hu : f u ≤ t) (hv : t ≤ f v) : ∃ z ∈ p.support, t ≤ f z ∧ f z ≤ t + ε := by … - theorem
OAI.BoundedTreewidthL1.connected_multidomination_diameterline 683Source documentation
The deterministic diameter obstruction behind the annulus algorithm. The radius balls are in the original metric; only the connectivity walk in C uses the small-edge subgraph H. No intrinsic diameter replaces weak diameter.
theorem connected_multidomination_diameter {V I : Type*} [MetricSpace V] [DecidableEq V] [Fintype I] (G H : SimpleGraph V) (hHG : H ≤ G) (T : SimpleGraph I) (bag : I → Finset V) (k : ℕ) (hT : T.IsTree) (hedge : ∀ u v, G.Adj u v → ∃ t, u ∈ bag t ∧ v ∈ bag t) (hocc : ∀ v, (T.induce {t | v ∈ bag t}).Connected) (hwidth : ∀ t, (bag t).card ≤ k) {R ε : ℝ} (hR : 0 ≤ R) (hε : 0 < ε) (hmesh : ∀ u v, H.Adj u v → dist u v ≤ ε) (hballs : ∀ c, (G.induce {z | dist c z ≤ R}).Connected) (C : Set V) (hC : (H.induce C).Connected) … - theorem
OAI.BoundedTreewidthL1.Annulus.run_diameterline 783Source documentation
The finite-round annulus decomposition has weak diameter bounded solely by the width and scale. The metric here remains the original graph metric.
theorem run_diameter {V I A : Type*} [Fintype V] [DecidableEq V] [MetricSpace V] [Fintype I] (G H : SimpleGraph V) (hHG : H ≤ G) (w : Sym2 V → ℝ) (hw : ∀ e, 0 ≤ w e) (hdist : ∀ u v, dist u v = distance G w u v) (T : SimpleGraph I) (bag : I → Finset V) (k : ℕ) (hk : 1 ≤ k) (hT : T.IsTree) (hedge : ∀ u v, G.Adj u v → ∃ t, u ∈ bag t ∧ v ∈ bag t) (hocc : ∀ v, (T.induce {t | v ∈ bag t}).Connected) (hwidth : ∀ t, (bag t).card ≤ k) {R ε : ℝ} (hR : 0 < R) (hε : 0 < ε) (hmesh : ∀ u v, H.Adj u v → w s(u,v) ≤ ε) (hballs : ∀ c, (G.induce {z | dist c z ≤ R + ε}).Connected) …Mentions: OAI.BoundedTreewidthL1.Annulus.distance
- lemma
OAI.BoundedTreewidthL1.Annulus.floor_ne_boundaryline 833 - theorem
OAI.BoundedTreewidthL1.Annulus.grid_bad_subsingletonline 843Source documentation
A random finite grid incurs at most one bad offset at any prescribed height. No minimum positive edge length enters this count.
theorem grid_bad_subsingleton (M : ℕ) (hM : 0 < M) (t β : ℝ) (hβ : 0 ≤ β) (hsep : 2 * (M : ℝ) * β < 1) : {j : Fin M | ⌊t + (j.val : ℝ) / M - β⌋ ≠ ⌊t + (j.val : ℝ) / M + β⌋}.Subsingleton := by … - lemma
OAI.BoundedTreewidthL1.Annulus.floor_eq_of_windowline 893 - lemma
OAI.BoundedTreewidthL1.Annulus.walkLength_edge_leline 902 - def
OAI.BoundedTreewidthL1.Annulus.smallEdgesline 918 - lemma
OAI.BoundedTreewidthL1.Annulus.smallEdges_leline 923 - lemma
OAI.BoundedTreewidthL1.Annulus.smallEdges_meshline 926 - lemma
OAI.BoundedTreewidthL1.Annulus.smallEdges_mem_iffline 929 - def
OAI.BoundedTreewidthL1.Annulus.PreservesBallline 936Source documentation
The ball is preserved with its actual original shortest paths, not only with unquantified reachability. This is the induction invariant for padding.
def PreservesBall (G H : SimpleGraph V) (w : Sym2 V → ℝ) (ε : ℝ) (x : V) : Prop := …
- lemma
OAI.BoundedTreewidthL1.Annulus.smallEdges_preservesline 940 - lemma
OAI.BoundedTreewidthL1.Annulus.walk_height_windowline 952 - lemma
OAI.BoundedTreewidthL1.Annulus.band_eq_of_height_windowline 970 - lemma
OAI.BoundedTreewidthL1.Annulus.preservesBall_cutline 987 - def
OAI.BoundedTreewidthL1.Annulus.gridOffsetline 1010 - lemma
OAI.BoundedTreewidthL1.Annulus.gridOffset_nonnegline 1012 - lemma
OAI.BoundedTreewidthL1.Annulus.gridOffset_ltline 1015 - lemma
OAI.BoundedTreewidthL1.Annulus.grid_window_eqline 1022 - def
OAI.FiniteRandomIteration.runline 1038 - def
OAI.FiniteRandomIteration.countline 1042 - lemma
OAI.FiniteRandomIteration.count_nonnegline 1047 - lemma
OAI.FiniteRandomIteration.count_succline 1052 - lemma
OAI.FiniteRandomIteration.count_lowerline 1061 - lemma
OAI.FiniteRandomIteration.fraction_lowerline 1104 - lemma
OAI.BoundedTreewidthL1.Annulus.run_eq_iterationline 1131 - lemma
OAI.BoundedTreewidthL1.Annulus.preserves_bad_subsingletonline 1139 - lemma
OAI.BoundedTreewidthL1.Annulus.preserves_fractionline 1156 - def
OAI.FiniteLawPush.lawline 1179 - lemma
OAI.FiniteLawPush.nonnegline 1183 - lemma
OAI.FiniteLawPush.totalline 1189 - lemma
OAI.FiniteLawPush.supportedline 1197 - lemma
OAI.FiniteLawPush.eventline 1205