OAI/Combinatorics/BinaryEdit/ScalarCutsBool.lean
12 declarations, 0 contain sorry, 0 declared as axioms
Scalar finite cut decomposition used by the finite-group obstruction.
This is the one-real-coordinate part of lem:cuts in preliminaries.tex.
- def
OAI.TreeEdit.BinaryLower.BoolCuts.bitline 12 - def
OAI.TreeEdit.BinaryLower.BoolCuts.cutDistanceline 14 - lemma
OAI.TreeEdit.BinaryLower.BoolCuts.cutDistance_nonnegline 17 - lemma
OAI.TreeEdit.BinaryLower.BoolCuts.cutDistance_constline 20 - def
OAI.TreeEdit.BinaryLower.BoolCuts.stepline 24Source documentation
A threshold viewed as a real-valued zero-one step.
noncomputable def step (k i : ℕ) : ℝ := if k < i then 1 else 0
- lemma
OAI.TreeEdit.BinaryLower.BoolCuts.step_monoline 26 - lemma
OAI.TreeEdit.BinaryLower.BoolCuts.step_abs_subline 35 - lemma
OAI.TreeEdit.BinaryLower.BoolCuts.sum_gap_stepline 40 - lemma
OAI.TreeEdit.BinaryLower.BoolCuts.gap_cut_identity_of_leline 55 - lemma
OAI.TreeEdit.BinaryLower.BoolCuts.gap_cut_identityline 64 - lemma
OAI.TreeEdit.BinaryLower.BoolCuts.group_cutsline 74Source documentation
Group an arbitrary finite collection of cuts by the Boolean function it defines. The two trivial cuts are discarded, since their distances vanish.
lemma group_cuts {S I : Type*} [Fintype S] [DecidableEq S] [Fintype I] (C : I → S → Bool) (w : I → ℝ) (hw : ∀ i, 0 ≤ w i) : ∃ a : (S → Bool) → ℝ, (∀ D, 0 ≤ a D) ∧ (∀ x y, ∑ i, w i * cutDistance (C i) x y = ∑ D, a D * cutDistance D x y) ∧ a (fun _ => false) = 0 ∧ a (fun _ => true) = 0 := by … - theorem
OAI.TreeEdit.BinaryLower.BoolCuts.scalar_cut_representationline 116Source documentation
Every real-valued function on a finite set is a nonnegative combination of cut metrics. The two constant cuts receive zero weight.
theorem scalar_cut_representation {S : Type*} [Fintype S] [DecidableEq S] (f : S → ℝ) : ∃ a : (S → Bool) → ℝ, (∀ C, 0 ≤ a C) ∧ (∀ x y, |f x - f y| = ∑ C, a C * cutDistance C x y) ∧ a (fun _ => false) = 0 ∧ a (fun _ => true) = 0 := by …