Documentation

Complexity.Logics.FirstOrder.Ordered.Multiplication.Blocks

Native verification of multiplication carry blocks #

Sixteen local words encode all carries in a short block. Its first and last carries must agree with the same global eight-word tuple used by every block. Native PLUS and exact shifts derive the local column equations; no multiplication relation occurs in the formula.

Main definitions #

Main results #

References #

noncomputable def Cslib.Logic.FO.Ordered.Multiplication.blockChecks (L : FirstOrder.Language) {α : Type u_1} (h e s x y z j : (language L).Term α) (g : Fin 8 → (language L).Term α) :

Check every local carry equation and match both ends with the global boundary words.

Instances For
    theorem Cslib.Logic.FO.Ordered.Multiplication.realize_blockChecks {L : FirstOrder.Language} {n : ℕ} [Fact (2 ≤ n)] [L.Structure (Fin n)] {α : Type u_1} (h e s x y z j : (language L).Term α) (g : Fin 8 → (language L).Term α) (v : α → Fin n) (hs : ↑(FirstOrder.Language.Term.realize v s) = 2 ^ ↑(FirstOrder.Language.Term.realize v e)) (hcap : (↑(FirstOrder.Language.Term.realize v s) + 1) * ↑(FirstOrder.Language.Term.realize v s) < n) (hj : ↑(FirstOrder.Language.Term.realize v j) + ↑(FirstOrder.Language.Term.realize v s) < n) (hwidth : 2 ^ ↑(FirstOrder.Language.Term.realize v s) < n) (hspace : 16 * ↑(FirstOrder.Language.Term.realize v h) < n) :

    The two decoded endpoints agree with the global words, and every interior step is exact.