Tree decompositions from recursive balanced separators
Lax263307.SeparatorDecompositions · concepts/Lax263307/SeparatorDecompositions.lean · lax-263307
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
Attach the decompositions of the parts below a new root bag containing the separator, and add the separator to every child bag. The resulting bags have size at most the separator size plus the largest child bag. Recursing on balanced parts costs at most one separator bound per recursion level.
Concept map
Evidence
Lean source view on GitHub
| 1 | import Lax263307.SeparatorComponents |
| 2 | import Lax263307.EdgeSublinearSeparators |
| 3 | import Lax263307.RecursionDepth |
| 4 | import Lax228581.Treewidth |
| 5 | |
| 6 | /-! |
| 7 | --- |
| 8 | title: Tree decompositions from recursive balanced separators |
| 9 | type: theorem |
| 10 | --- |
| 11 | Attach the decompositions of the parts below a new root bag containing the |
| 12 | separator, and add the separator to every child bag. The resulting bags have |
| 13 | size at most the separator size plus the largest child bag. Recursing on |
| 14 | balanced parts costs at most one separator bound per recursion level. |
| 15 | |
| 16 | # Formalization notes |
| 17 | |
| 18 | The component trees may have different finite node types. The joining tree |
| 19 | uses a disjoint dependent sum of these types and one additional root. The |
| 20 | recursive bound keeps its logarithmic depth explicit; conversion to an |
| 21 | edge-only sublinear bound is a separate step. |
| 22 | -/ |
| 23 | |
| 24 | namespace Lax263307.SeparatorDecompositions |
| 25 | |
| 26 | open GraphClasses EdgeSublinearSeparators SeparatorComponents Lax228581.Treewidth |
| 27 | |
| 28 | /-- Join the component decompositions below a separator root. -/ |
| 29 | axiom glue_bound {n : ℕ} (G : SimpleGraph (Fin n)) (S : Finset (Fin n)) |
| 30 | {ι : Type} [Fintype ι] (P : Partition G S ι) |
| 31 | (D : ∀ i, TreeDecomposition (G.induce (↑(P.vertices i) : Set (Fin n)))) |
| 32 | (B : ℕ) (bound : ∀ i j, ((D i).bag j).card ≤ B) : |
| 33 | ∃ E : TreeDecomposition G, ∀ j, (E.bag j).card ≤ S.card + B |
| 34 | |
| 35 | /-- Balanced recursive separators give a logarithmic depth bag bound. -/ |
| 36 | axiom recursive_bag_bound (C : GraphClass) (hereditary : IsHereditary C) |
| 37 | (B : ℕ → ℕ) (monotone : Monotone B) (positive : ∀ m, 1 ≤ B m) |
| 38 | (separators : ∀ n (G : SimpleGraph (Fin n)), G ∈ C n → |
| 39 | ∃ S : Finset (Fin n), IsBalancedSeparator G S ∧ S.card ≤ B G.edgeSet.ncard) |
| 40 | {n : ℕ} (G : SimpleGraph (Fin n)) (member : G ∈ C n) : |
| 41 | ∃ D : TreeDecomposition G, ∀ j, |
| 42 | (D.bag j).card ≤ B G.edgeSet.ncard * (RecursionDepth.depth n + 1) |
| 43 | |
| 44 | end Lax263307.SeparatorDecompositions |
| 45 |
Formalization notes
The component trees may have different finite node types. The joining tree uses a disjoint dependent sum of these types and one additional root. The recursive bound keeps its logarithmic depth explicit; conversion to an edge-only sublinear bound is a separate step.
Builds on
Used by
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments