OAI/Combinatorics/BinaryEdit/UnequalCounting.lean
2 declarations, 0 contain sorry, 0 declared as axioms
- theorem
OAI.TreeEdit.BinaryLower.Code.sum_counts_le_of_large_chargeline 9Source documentation
Sum the local large-pair charge, allowing a threshold-sized error for every visited block pair. Small pairs need no separation hypothesis.
theorem sum_counts_le_of_large_charge {β : Type*} (s : Finset β) (a g : β → ℕ) (a₀ : ℕ) (hlarge : ∀ b ∈ s, a₀ ≤ a b → a b ≤ 100 * g b) : (∑ b ∈ s, a b) ≤ 100 * (∑ b ∈ s, g b) + s.card * a₀ := by … - theorem
OAI.TreeEdit.BinaryLower.Code.block_pair_bad_count_leline 26Source documentation
The unequal-label count estimate once the actual segment separation has been applied to each large block pair. All gap terms here are the concrete interval-span losses, rather than arbitrary charged weights.
theorem block_pair_bad_count_le {r M P : ℕ} (hP : 0 < P) (f g : Fin r → Fin (M * P)) (hf : StrictMono f) (hg : StrictMono g) (bad : ℕ × ℕ → Prop) [DecidablePred bad] (a₀ : ℕ) (hlarge : ∀ b ∈ (Finset.univ.image (fun i => ((f i).val / P, (g i).val / P))).filter bad, a₀ ≤ (Finset.univ.filter (fun i => ((f i).val / P, (g i).val / P) = b)).card → (Finset.univ.filter (fun i => ((f i).val / P, (g i).val / P) = b)).card ≤ 100 * (((matchingSpan f (fun i => ((f i).val / P, (g i).val / P)) b).card - (Finset.univ.filter (fun i => ((f i).val / P, (g i).val / P) = b)).card) + ((matchingSpan g (fun i => ((f i).val / P, (g i).val / P)) b).card - (Finset.univ.filter (fun i => ((f i).val / P, (g i).val / P) = b)).card))) : (Finset.univ.filter (fun i => bad ((f i).val / P, (g i).val / P))).card ≤ 200 * (M * P - r) + 2 * M * a₀ := by …Mentions: OAI.TreeEdit.BinaryLower.matchingSpan