`segInvS 0 = 0` (round six, `segInvS_zero`)
ProvedJ6Seg.segInvS_zerosegInvS 0 = 0 under the hypotheses of segInvS_eq.
The following holds (Lean statement, in the scope of module Solutions.J6SegLn10):
theorem J6Seg.segInvS_zero {E Dm Bu : ℝ} (hs : 0 < s) (hst : s ≤ t) (hα : 2 ≤ α) (hx : 3 ≤ xθ s t α)
(hB : BlocksOK s t B) (hlam : ∀ i < s, B.len i ≤ lam)
(hT : TabOK P s t α B T E Dm) (hE : 0 ≤ E) (hBu : 0 ≤ Bu)
(hP : 1000 * segG B lam E Dm Bu ≤ 2 ^ P) :
segInvS P lam T B (fun _ => 0) = fun _ => 0
Context. Segmented inverse (S2), machine side 10: the solver maps zero to zero
B₀ must send an all-zero line to an all-zero line (the padded entries of the tensor stay
exactly zero). The only non-obvious step is the rounded division fdiv P 0 d = 0, true for
d ≥ 0: every pivot of the elimination is positive in the near-identity regime.
PivPos,geSolveS_zero: nonnegative pivots givegeSolveS … 0 = 0;pivPos_of: the hypotheses ofgeSolveS_eqgive nonnegative pivots (same induction);segInvS_zero(hypotheses ofsegInvS_eq),segInvFullS_zero(parameter hypotheses ofsegInvFullS_err).
Formalization Note. Part of the Lean formalization of the round-six κ-improvement (integer-multiplication-kappa campaign, target IntMul.Kappa.jain_round6_framework). The statement is copied verbatim from the Lean development; the platform node carries the same declaration name. Definitions it mentions live in the IntMul_Kappa_R6_Defs* bundles (on top of the published κ bundles IntMul_Kappa_K_Defs*).
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction.
import Definitions.Def_IntMul_Kappa_R6_Defs61
set_option autoImplicit false
set_option relaxedAutoImplicit false
set_option maxHeartbeats 1000000
open J6Seg
open Finset Real
open IntMul.HvdH IntMul.HvdH.JPf J6QLU
variable {P s t α lam : ℕ} {B : Blocks} {T : Tables}
theorem J6Seg.segInvS_zero {E Dm Bu : ℝ} (hs : 0 < s) (hst : s ≤ t) (hα : 2 ≤ α) (hx : 3 ≤ xθ s t α)
(hB : BlocksOK s t B) (hlam : ∀ i < s, B.len i ≤ lam)
(hT : TabOK P s t α B T E Dm) (hE : 0 ≤ E) (hBu : 0 ≤ Bu)
(hP : 1000 * segG B lam E Dm Bu ≤ 2 ^ P) :
segInvS P lam T B (fun _ => 0) = fun _ => 0 := by sorry