CubicPathwidth.CutSweep.Assembly

Source file CubicPathwidth/CutSweep/Assembly.lean of the Lean project (how it is built).

import CubicPathwidth.CutSweep.Defs

/-!
# P0: the children imply `CutSweepClaim`

Fix `ε > 0`. Choose the radius `R` with `β_R < c_* + ε/2`
(`exists_radiusCoefficient_lt`), then good labels at radius `R` with error
`ε/2`; ordering by them bounds the cutwidth by `(c_* + ε) n`.
-/

noncomputable section

namespace CubicPathwidth
namespace CutSweep

theorem cutSweepClaim_of_children (hc : ConstantClaim) (hlay : LayoutClaim)
    (hord : OrderingClaim) (hsw : SweepClaim) : CutSweepClaim := by
  refine ⟨hc.1, hc.2, hlay, ?_⟩
  intro ε hε
  obtain ⟨R, hR, hβ⟩ := exists_radiusCoefficient_lt (ε / 2) (by linarith)
  obtain ⟨N, hN⟩ := hsw R hR (ε / 2) (by linarith)
  refine ⟨N, fun n hn G hG => ?_⟩
  obtain ⟨y, hy, hcount⟩ := hN n hn G hG
  refine hord n G y hy _ fun t => (hcount t).trans ?_
  have hn0 : (0 : ℝ) ≤ n := Nat.cast_nonneg n
  nlinarith

end CutSweep
end CubicPathwidth
Back to top