CubicPathwidth.T3.Targets
Source file CubicPathwidth/T3/Targets.lean of the Lean project (how it is built).
Statements of the paper formalised here: Theorem 7.2.
import CubicPathwidth.T3.Assembly
import CubicPathwidth.T3.Constants
import CubicPathwidth.T3.Charging5
import CubicPathwidth.T3.PhiTail5
import CubicPathwidth.T3.Reduction5
import CubicPathwidth.T3.DegreeLabels5
import CubicPathwidth.T3.GoodLabelsCount5
import CubicPathwidth.T2.LayoutS
import CubicPathwidth.T2.HetStar
import CubicPathwidth.T2.StarBoundCont
/-!
# Theorem 3 (maximum degree 5): the three approved targets
`target3P : Target3P`, `target3R : Target3R`, `target3S : Target3S`.
-/
namespace CubicPathwidth
namespace T3
open T2
theorem countBound5 {a₃ a₄ a₅ : ℝ} (hadm : AdmissibleTriple a₃ a₄ a₅)
(htail : 5 * Phi (-3) ≤ a₃) (h34 : a₃ ≤ a₄) (h45 : a₄ ≤ a₅) :
UniformDegreeCountBound5 a₃ a₄ a₅ :=
countBound5_of_children plainLayout_s reduction5 goodLabelsCount5_step degreeLabels5
hetStar starBoundCont charging5 hadm htail h34 h45
(le_trans (mul_nonneg (by norm_num) (by unfold Phi; exact MeasureTheory.measureReal_nonneg)) htail)
/-- **Theorem 3 with the triple `P`**, the approved target `Target3P`. -/
theorem target3P : Target3P := fun hadm =>
countBound5 hadm tail_P triple_P_mono.1 triple_P_mono.2
/-- **Theorem 3 with the triple `R`**, the approved target `Target3R`. -/
theorem target3R : Target3R := fun hadm =>
countBound5 hadm tail_R (by norm_num) (by norm_num)
/-- **Theorem 3 with the triple `S`**, the approved target `Target3S`. -/
theorem target3S : Target3S := fun hadm =>
countBound5 hadm tail_S (by norm_num) (by norm_num)
end T3
end CubicPathwidth
#check (CubicPathwidth.T3.target3P : CubicPathwidth.T3.Target3P)
#check (CubicPathwidth.T3.target3R : CubicPathwidth.T3.Target3R)
#check (CubicPathwidth.T3.target3S : CubicPathwidth.T3.Target3S)
#print axioms CubicPathwidth.T3.target3P
#print axioms CubicPathwidth.T3.target3R
#print axioms CubicPathwidth.T3.target3S
Back to top