Documentation

CompPoly.LinearAlgebra.PolynomialMatrix.MuldersStorjohannCorrectness.Conflict

Mulders-Storjohann Correctness Shifted Leading Conflict Helpers #

Bounds and validity lemmas for shifted-leading-position conflict detection.

theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictInRowFold_bounds {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) (i : ) (xs : List ) (found : Option ( × )) (hxs : jxs, i < j j < Array.size M) (hfound : M.ConflictBounds found) :
M.ConflictBounds (List.foldl (fun (found : Option ( × )) (j : ) => match found with | some val => found | none => match rowShiftedLeadingPosition? (Array.getD M i #[]) shift, rowShiftedLeadingPosition? (Array.getD M j #[]) shift with | some pi, some pj => if (pi == pj) = true then some (i, j) else none | x, x_1 => none) found xs)
theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictInRow?_bounds {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) {i : } {found : Option ( × )} (hi : i < Array.size M) (hfound : M.ConflictBounds found) :
theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictFromFold_bounds {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) (xs : List ) (found : Option ( × )) (hxs : ixs, i < Array.size M) (hfound : M.ConflictBounds found) :
M.ConflictBounds (List.foldl (fun (found : Option ( × )) (i : ) => M.shiftedLeadingConflictInRow? shift i found) found xs)
Instances For
    theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictInRowStep?_valid {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) (i : ) {found : Option ( × )} (j : ) (hfound : M.ConflictValid shift found) :
    theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictInRowFold_valid {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) (i : ) (xs : List ) {found : Option ( × )} (hfound : M.ConflictValid shift found) :
    theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictInRow?_valid {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) (i : ) {found : Option ( × )} (hfound : M.ConflictValid shift found) :
    theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictFromFold_valid {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) (xs : List ) {found : Option ( × )} (hfound : M.ConflictValid shift found) :
    theorem CompPoly.PolynomialMatrix.shiftedLeadingConflictFrom?_valid {F : Type u_1} [Field F] [BEq F] (M : PolynomialMatrix F) (shift : Array ) {found : Option ( × )} (hfound : M.ConflictValid shift found) :
    theorem CompPoly.PolynomialMatrix.shiftedLeadingConflict?_none_no_conflict {F : Type u_1} [Field F] [BEq F] {M : PolynomialMatrix F} {shift : Array } {i j p : } (hconf : M.shiftedLeadingConflict? shift = none) (hi : i < Array.size M) (hj : j < Array.size M) (hij : i < j) (hposI : rowShiftedLeadingPosition? (Array.getD M i #[]) shift = some p) (hposJ : rowShiftedLeadingPosition? (Array.getD M j #[]) shift = some p) :