Documentation

CompPoly.Bivariate.GuruswamiSudan.Interpolation.LeeOSullivan.Correctness.Rows

Lee-O'Sullivan Row-Span Transport Helpers #

Transport between executable polynomial rows and semantic bivariate span combinations.

Within the Lee row width, a row-linear combination of executable Lee rows has the same coefficients as the corresponding bivariate basis combination.

Lee basis polynomials are bounded by the Lee row width in Y.

Bivariate combinations of Lee basis polynomials are bounded by the Lee row width in Y.

A polynomial-row linear combination of the executable Lee rows represents the same bivariate polynomial as the corresponding Lee basis combination.

A row in the executable Lee row span represents a bivariate polynomial in the corresponding Lee basis span.

theorem CompPoly.GuruswamiSudan.LeeOSullivan.koetterBasisCombination_add_weights {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] [DecidableEq F] (weights₁ weights₂ : CPolynomial F) (basis : Array (CBivariate F)) :
koetterBasisCombination (fun (idx : ) => weights₁ idx + weights₂ idx) basis = koetterBasisCombination weights₁ basis + koetterBasisCombination weights₂ basis
theorem CompPoly.GuruswamiSudan.LeeOSullivan.koetterBasisCombination_neg_weights {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] [DecidableEq F] (weights : CPolynomial F) (basis : Array (CBivariate F)) :
koetterBasisCombination (fun (idx : ) => -weights idx) basis = -koetterBasisCombination weights basis
theorem CompPoly.GuruswamiSudan.LeeOSullivan.koetterBasisCombination_single_weight {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] [DecidableEq F] (basis : Array (CBivariate F)) {idx : } (hidx : idx < basis.size) (weight : CPolynomial F) :
koetterBasisCombination (fun (j : ) => if (j == idx) = true then weight else 0) basis = CBivariate.ofYConstant weight * basis.getD idx 0
theorem CompPoly.GuruswamiSudan.LeeOSullivan.koetterBasisSpanContains_single {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] [DecidableEq F] (basis : Array (CBivariate F)) {idx : } (hidx : idx < basis.size) (weight : CPolynomial F) :
theorem CompPoly.GuruswamiSudan.LeeOSullivan.koetterBasisCombination_congr_weights {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] [DecidableEq F] {basis : Array (CBivariate F)} {weights₁ weights₂ : CPolynomial F} (hweights : idx < basis.size, weights₁ idx = weights₂ idx) :
koetterBasisCombination weights₁ basis = koetterBasisCombination weights₂ basis
theorem CompPoly.GuruswamiSudan.LeeOSullivan.ofCoeffRow_toCoeffRow_eq_of_width_le {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] {width : } {Q : CBivariate F} (hY : ∀ (i j : ), width jQ.coeff i j = 0) :
theorem CompPoly.GuruswamiSudan.LeeOSullivan.hasMultiplicityAtLeast_koetterBasisCombination {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] [DecidableEq F] (weights : CPolynomial F) (basis : Array (CBivariate F)) {x y : F} {m : } (hbasis : idx < basis.size, (basis.getD idx 0).HasMultiplicityAtLeast x y m) :

A Y-constant linear combination of basis entries satisfying a pointwise multiplicity constraint satisfies that constraint.

theorem CompPoly.GuruswamiSudan.LeeOSullivan.koetterBasisCombination_satisfiesMultiplicityConstraints {F : Type u_1} [Field F] [BEq F] [LawfulBEq F] [DecidableEq F] (weights : CPolynomial F) (basis : Array (CBivariate F)) {points : Array (F × F)} {m : } (hbasis : idx < basis.size, (basis.getD idx 0).SatisfiesMultiplicityConstraints points m) :

A Y-constant linear combination of basis entries satisfying all packed multiplicity constraints satisfies the same packed constraints.

Any executable row in the Lee row span represents a bivariate polynomial satisfying the packed multiplicity constraints, provided every Lee basis entry does.