OAI/Computability/MaxCut/Games/RowErasure.lean
87 declarations, 0 contain sorry, 0 declared as axioms
InversePrinciple concerns an arbitrary table function, full uniform factor
sampling, and an affine intercept.
- def
OAI.MaxCutGames.Inverse.RowErasure.indicatorline 14 - theorem
OAI.MaxCutGames.Inverse.RowErasure.indicator_trueline 18 - theorem
OAI.MaxCutGames.Inverse.RowErasure.indicator_falseline 19 - theorem
OAI.MaxCutGames.Inverse.RowErasure.indicator_nonnegline 21 - theorem
OAI.MaxCutGames.Inverse.RowErasure.indicator_le_oneline 26 - def
OAI.MaxCutGames.Inverse.RowErasure.uniformMassline 31 - theorem
OAI.MaxCutGames.Inverse.RowErasure.uniformMass_nonnegline 34 - theorem
OAI.MaxCutGames.Inverse.RowErasure.uniformMass_le_oneline 38 - def
OAI.MaxCutGames.Inverse.RowErasure.replaceOnline 43Source documentation
One independent replacement value per matrix entry, not per row fiber.
def replaceOn {X Y : Type*} (B : X → Prop) (f replacement : X → Y) : X → Y := by … - theorem
OAI.MaxCutGames.Inverse.RowErasure.replaceOn_of_not_memline 47 - theorem
OAI.MaxCutGames.Inverse.RowErasure.replaceOn_of_memline 52 - def
OAI.MaxCutGames.Inverse.RowErasure.equalityAcceptanceline 57 - theorem
OAI.MaxCutGames.Inverse.RowErasure.acceptance_le_modified_add_two_massline 64Source documentation
Deterministic acceptance loss under editing a set of entries. Both endpoint marginals must equal the matrix-uniform law; no independence of endpoints is required. This applies to every choice of replacement values.
theorem acceptance_le_modified_add_two_mass {X Y E : Type*} [Fintype X] [Fintype E] (left right : E → X) (B : X → Prop) (f g : X → Y) (unchanged : ∀ x, ¬ B x → f x = g x) (left_uniform : uniformMass (fun e => B (left e)) = uniformMass B) (right_uniform : uniformMass (fun e => B (right e)) = uniformMass B) : equalityAcceptance left right f ≤ equalityAcceptance left right g + 2 * uniformMass B := by …Mentions: OAI.MaxCutGames.Inverse.RowErasure.uniformMass, OAI.MaxCutGames.Inverse.RowErasure.equalityAcceptance
- theorem
OAI.MaxCutGames.Inverse.RowErasure.acceptance_ge_original_sub_two_massline 99 - def
OAI.MaxCutGames.Inverse.RowErasure.goodUnionline 114Source documentation
A matrix belongs to the erased union exactly when at least one row map provides good advice there.
def goodUnion {A X : Type*} (good : A → X → Prop) (x : X) : Prop := … - def
OAI.MaxCutGames.Inverse.RowErasure.adviceMassline 118Source documentation
Sample a uniform matrix, then an independent uniform row map.
def adviceMass {A X : Type*} [Fintype A] [Fintype X] (good : A → X → Prop) : ℝ := … - theorem
OAI.MaxCutGames.Inverse.RowErasure.adviceMass_nonnegline 122 - theorem
OAI.MaxCutGames.Inverse.RowErasure.union_mass_le_card_mul_adviceMassline 128Source documentation
Each matrix in the union has at least one successful row-map atom. No disjointness between good fibers is needed.
theorem union_mass_le_card_mul_adviceMass {A X : Type*} [Fintype A] [Fintype X] (good : A → X → Prop) : uniformMass (goodUnion good) ≤ (Fintype.card A : ℝ) * adviceMass good := by …Mentions: OAI.MaxCutGames.Inverse.RowErasure.uniformMass, OAI.MaxCutGames.Inverse.RowErasure.goodUnion, OAI.MaxCutGames.Inverse.RowErasure.adviceMass
- theorem
OAI.MaxCutGames.Inverse.RowErasure.adviceMass_ge_union_div_cardline 147 - theorem
OAI.MaxCutGames.Inverse.RowErasure.adviceMass_ge_of_union_massline 155 - structure
OAI.MaxCutGames.Inverse.RowErasure.SliceFamilyline 168Source documentation
Each description includes its row map, row value, column equations and affine target.
points_rowis the necessary relationship to actual row advice.structure SliceFamily (X Y A S D : Type*) where …
- def
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.agreementline 176 - def
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.GoodAdviceline 179 - def
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.goodAtline 184 - def
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.erasedUnionline 188 - def
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.randomizedAgreementline 194Source documentation
Only randomized entries count; an unchanged entry contributes zero, even when its old label already matches the target.
def SliceFamily.randomizedAgreement (F : SliceFamily X Y A S D) (B : X → Prop) (replacement : X → Y) (d : D) : ℝ := … - theorem
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.mem_erasedUnion_of_good_rowline 198 - theorem
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.original_agreement_lt_of_not_goodline 207 - theorem
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.modified_agreement_le_original_add_randomizedline 215 - theorem
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.modified_agreement_eq_randomized_of_goodline 237 - theorem
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.modified_agreement_ltline 253Source documentation
If the random replacement bound holds, every permitted nonempty slice has modified agreement strictly below α. The proof splits on goodness of the whole row fiber, not on goodness of the individual column slice.
theorem SliceFamily.modified_agreement_lt (F : SliceFamily X Y A S D) (f replacement : X → Y) (α : ℝ) (hα : 0 < α) (randomized_small : ∀ d, (F.points d).Nonempty → F.randomizedAgreement (F.erasedUnion f α) replacement d < α / 4) (d : D) (hne : (F.points d).Nonempty) : F.agreement (replaceOn (F.erasedUnion f α) f replacement) d < α := by …Mentions: OAI.MaxCutGames.Inverse.RowErasure.SliceFamily, OAI.MaxCutGames.Inverse.RowErasure.replaceOn
- theorem
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.union_mass_ge_of_inverse_and_erasureline 274Source documentation
Conditional erasure contradiction. The two deep inputs remain explicit: the inverse theorem for arbitrary (possibly unfolded) functions, and existence of a replacement table uniformly small on every slice/target description.
theorem SliceFamily.union_mass_ge_of_inverse_and_erasure {E : Type*} [Fintype X] [Fintype E] (F : SliceFamily X Y A S D) (left right : E → X) (f : X → Y) (η α : ℝ) (hη : 0 < η) (hα : 0 < α) (acceptance_large : 4 * η ≤ equalityAcceptance left right f) (left_uniform : ∀ B : X → Prop, uniformMass (fun e => B (left e)) = uniformMass B) (right_uniform : ∀ B : X → Prop, uniformMass (fun e => B (right e)) = uniformMass B) (inverse : ∀ g : X → Y, η ≤ equalityAcceptance left right g → ∃ d, (F.points d).Nonempty ∧ α ≤ F.agreement g d) (erasure : ∃ replacement : X → Y, ∀ d, (F.points d).Nonempty → …Mentions: OAI.MaxCutGames.Inverse.RowErasure.SliceFamily, OAI.MaxCutGames.Inverse.RowErasure.equalityAcceptance, OAI.MaxCutGames.Inverse.RowErasure.uniformMass
- theorem
OAI.MaxCutGames.Inverse.RowErasure.uniformMass_exists_le_sumline 304 - theorem
OAI.MaxCutGames.Inverse.RowErasure.exists_avoiding_of_sum_bad_lt_oneline 321 - theorem
OAI.MaxCutGames.Inverse.RowErasure.exists_avoiding_of_card_mul_bound_lt_oneline 337 - theorem
OAI.MaxCutGames.Inverse.RowErasure.SliceFamily.exists_erasure_of_probability_boundline 351Source documentation
The union-bound step for actual replacement tables. Nonempty slice descriptions with randomized agreement at least α/4 are the bad events.
theorem SliceFamily.exists_erasure_of_probability_bound {X Y A S D : Type*} [Fintype X] [Fintype Y] [Nonempty Y] [Fintype D] (F : SliceFamily X Y A S D) (B : X → Prop) (α ρ : ℝ) (hprob : ∀ d, uniformMass (fun replacement : X → Y => (F.points d).Nonempty ∧ α / 4 ≤ F.randomizedAgreement B replacement d) ≤ ρ) (hsmall : (Fintype.card D : ℝ) * ρ < 1) : ∃ replacement : X → Y, ∀ d, (F.points d).Nonempty → F.randomizedAgreement B replacement d < α / 4 := by …Mentions: OAI.MaxCutGames.Inverse.RowErasure.SliceFamily, OAI.MaxCutGames.Inverse.RowErasure.uniformMass
- theorem
OAI.MaxCutGames.Inverse.RowErasure.advice_average_geline 368Source documentation
Average the fixed-context advice bound over the spectral good contexts. Both samples remain explicit: the context, then the row map and matrix.
theorem advice_average_ge {Q A X : Type*} [Fintype Q] [Fintype A] [Nonempty A] [Fintype X] (goodContext : Q → Prop) (good : Q → A → X → Prop) (β η : ℝ) (hη : 0 ≤ η) (hcontext : β ≤ uniformMass goodContext) (hlocal : ∀ q, goodContext q → η ≤ uniformMass (goodUnion (good q))) : β * (η / (Fintype.card A : ℝ)) ≤ Finset.univ.expect (fun q => adviceMass (good q)) := by …Mentions: OAI.MaxCutGames.Inverse.RowErasure.uniformMass, OAI.MaxCutGames.Inverse.RowErasure.goodUnion, OAI.MaxCutGames.Inverse.RowErasure.adviceMass
- theorem
OAI.MaxCutGames.Inverse.RowErasure.advice_average_ge_ten_eta_sq_div_cardline 389 - abbrev
OAI.MaxCutGames.Inverse.Shortcode.F2line 411 - abbrev
OAI.MaxCutGames.Inverse.Shortcode.Vectorline 412 - abbrev
OAI.MaxCutGames.Inverse.Shortcode.Matline 413 - def
OAI.MaxCutGames.Inverse.Shortcode.rankOneline 415 - def
OAI.MaxCutGames.Inverse.Shortcode.evaluateline 418 - theorem
OAI.MaxCutGames.Inverse.Shortcode.evaluate_zeroline 421 - theorem
OAI.MaxCutGames.Inverse.Shortcode.rankOne_zero_leftline 425 - theorem
OAI.MaxCutGames.Inverse.Shortcode.rankOne_zero_rightline 430 - def
OAI.MaxCutGames.Inverse.Shortcode.equalityAcceptanceline 437Source documentation
Both perturbation factors are independent uniform vectors, including zero. The matrix is sampled independently as well.
def equalityAcceptance {ell m : ℕ} (f : Mat ell m → Vector ell) : ℝ := …Mentions: OAI.MaxCutGames.Inverse.Shortcode.Mat, OAI.MaxCutGames.Inverse.Shortcode.Vector
- structure
OAI.MaxCutGames.Inverse.Shortcode.Sliceline 442Source documentation
A description includes possibly dependent equations; the row and column counts need not equal their ranks.
structure Slice (ell m : ℕ) where …
- def
OAI.MaxCutGames.Inverse.Shortcode.Slice.Containsline 450 - def
OAI.MaxCutGames.Inverse.Shortcode.Slice.pointsline 454 - def
OAI.MaxCutGames.Inverse.Shortcode.Slice.affineAgreementline 457 - def
OAI.MaxCutGames.Inverse.Shortcode.Slice.constantAgreementline 461 - theorem
OAI.MaxCutGames.Inverse.Shortcode.Slice.constantAgreement_eq_affineline 467Source documentation
The fiber/Grassmann route produces the constant affine target
0,u. Keepinguis essential: this result does not claim a homogeneous target.theorem Slice.constantAgreement_eq_affine {ell m : ℕ} (S : Slice ell m) (f : Mat ell m → Vector ell) (u : Vector ell) : S.constantAgreement f u = S.affineAgreement f 0 u := by …Mentions: OAI.MaxCutGames.Inverse.Shortcode.Slice, OAI.MaxCutGames.Inverse.Shortcode.Mat, OAI.MaxCutGames.Inverse.Shortcode.Vector
- def
OAI.MaxCutGames.Inverse.Shortcode.HasAffineSliceline 472 - theorem
OAI.MaxCutGames.Inverse.Shortcode.hasAffineSlice_of_constantline 476 - def
OAI.MaxCutGames.Inverse.Shortcode.InversePrincipleline 486Source documentation
Dimension-uniform inverse statement. The constants
α,rdepend only onη; only the final input dimension threshold may depend onell. There is no folding assumption, and no inverse-theorem certificate is hidden inf.def InversePrinciple : Prop := …
- abbrev
OAI.MaxCutGames.Inverse.RowErasureDescriptions.RowMapline 509Source documentation
A row map is represented by all its binary matrix coefficients.
abbrev RowMap (ell r : ℕ) := Fin r → Vector ell
- abbrev
OAI.MaxCutGames.Inverse.RowErasureDescriptions.Descriptionline 514Source documentation
Ordered padded row coefficients, row values, column coefficients, column values, affine coefficient, and affine intercept. Redundant descriptions are intentional: counting descriptions provides an upper bound on distinct slices.
abbrev Description (ell m r : ℕ) := …
- theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.card_vectorline 518 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.card_rowMapline 521 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.card_descriptionline 524 - def
OAI.MaxCutGames.Inverse.RowErasureDescriptions.Description.toSliceline 531 - def
OAI.MaxCutGames.Inverse.RowErasureDescriptions.Description.coefficientline 539 - def
OAI.MaxCutGames.Inverse.RowErasureDescriptions.Description.interceptline 542 - def
OAI.MaxCutGames.Inverse.RowErasureDescriptions.padZeroline 546Source documentation
Add vacuous equations after the original finite list.
def padZero {n r : ℕ} {V : Type*} [Zero V] (f : Fin n → V) : Fin r → V := … - def
OAI.MaxCutGames.Inverse.RowErasureDescriptions.padSliceline 549 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.padSlice_contains_iffline 557 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.padSlice_pointsline 581 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.padSlice_affineAgreementline 588 - def
OAI.MaxCutGames.Inverse.RowErasureDescriptions.describeline 594 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.describe_toSliceline 599 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.describe_coefficientline 603 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.describe_interceptline 606 - theorem
OAI.MaxCutGames.Inverse.RowErasureDescriptions.exists_descriptionline 611Source documentation
Every slice/target returned by the bounded inverse theorem has a fixed-size description with the same solution set and exactly the same agreement.
theorem exists_description {ell m r : ℕ} (S : Slice ell m) (hrows : S.rows ≤ r) (hcols : S.columns ≤ r) (z : Vector m) (u : Vector ell) : ∃ d : Description ell m r, d.toSlice.points = S.points ∧ d.coefficient = z ∧ d.intercept = u := by …Mentions: OAI.MaxCutGames.Inverse.RowErasureDescriptions.Description
- def
OAI.MaxCutGames.Inverse.RowErasureMatrix.rowAdviceline 628 - def
OAI.MaxCutGames.Inverse.RowErasureMatrix.familyline 631 - theorem
OAI.MaxCutGames.Inverse.RowErasureMatrix.family_agreementline 645 - abbrev
OAI.MaxCutGames.Inverse.RowErasureMatrix.Samplesline 657 - def
OAI.MaxCutGames.Inverse.RowErasureMatrix.leftline 659 - def
OAI.MaxCutGames.Inverse.RowErasureMatrix.rightline 661 - theorem
OAI.MaxCutGames.Inverse.RowErasureMatrix.expect_prodline 664 - theorem
OAI.MaxCutGames.Inverse.RowErasureMatrix.left_uniformline 673 - def
OAI.MaxCutGames.Inverse.RowErasureMatrix.stepEquivline 681Source documentation
Translation of the sampled matrix is a permutation while the two sampled factors remain fixed; this also covers either factor being zero.
def stepEquiv (ell m : ℕ) : Samples ell m ≃ Samples ell m where …
- theorem
OAI.MaxCutGames.Inverse.RowErasureMatrix.right_uniformline 693 - theorem
OAI.MaxCutGames.Inverse.RowErasureMatrix.acceptance_eqline 700 - theorem
OAI.MaxCutGames.Inverse.RowErasureMatrix.described_inverseline 719Source documentation
Zero-padding turns the actual bounded-slice inverse conclusion into the description-based inverse conclusion used by the erasure proof.
theorem described_inverse {ell m r : ℕ} (α η : ℝ) (inverse : ∀ f : Mat ell m → Vector ell, η ≤ Shortcode.equalityAcceptance f → HasAffineSlice f α r) : ∀ f : Mat ell m → Vector ell, η ≤ RowErasure.equalityAcceptance (left (ell := ell) (m := m)) right f → …Mentions: OAI.MaxCutGames.Inverse.Shortcode.equalityAcceptance, OAI.MaxCutGames.Inverse.RowErasure.equalityAcceptance, OAI.MaxCutGames.Inverse.RowErasureMatrix.left, OAI.MaxCutGames.Inverse.RowErasureMatrix.right
- theorem
OAI.MaxCutGames.Inverse.RowErasureMatrix.advice_mass_ge_of_inverse_and_erasureline 739Source documentation
Concrete fixed-context advice lower bound. All full matrix and row-map samples are uniform. The still-required mathematical premises are visible: the actual shortcode inverse and a simultaneous small-replacement witness.
theorem advice_mass_ge_of_inverse_and_erasure {ell m r : ℕ} (f : Mat ell m → Vector ell) (η α : ℝ) (hη : 0 < η) (hα : 0 < α) (haccept : 4 * η ≤ Shortcode.equalityAcceptance f) (inverse : ∀ g : Mat ell m → Vector ell, η ≤ Shortcode.equalityAcceptance g → HasAffineSlice g α r) (erasure : ∃ replacement : Mat ell m → Vector ell, ∀ d : Description ell m r, ((family ell m r).points d).Nonempty → (family ell m r).randomizedAgreement ((family ell m r).erasedUnion f α) replacement d < α / 4) : η / (2 ^ (ell * r) : ℝ) ≤ adviceMass ((family ell m r).goodAt f α) := by …Mentions: OAI.MaxCutGames.Inverse.Shortcode.equalityAcceptance, OAI.MaxCutGames.Inverse.RowErasureMatrix.family