LeanFun RevOLVER

6.4 First-kind Volterra equations

The integration diagonal provides a preconditioner for the Jacobi operator. We use it to prove uniqueness and finite-section convergence in the weighted solution spaces below, under the stated nonvanishing-diagonal conditions.

Definition 6.4.1 First-order weighted coefficient space
✓ 🤖

Let \(\ell ^2_1\) be the real sequences \(q\) for which \(((n+1)q_n)_{n\ge 0}\) belongs to \(\ell ^2\), equipped with norm

\[ \| q\| _{\ell ^2_1}=\| ((n+1)q_n)_{n\ge 0}\| _{\ell ^2}. \]

Reference: [GO20, Definition 5.3]; [Gut22, Section 2.7].

Lean Formalisation
def lp.firstOrderL2Submodule : Submodule ℝ (ℕ → ℝ)
Lean definition
/-- Real sequences whose degree-weighted coefficients are square summable. -/
def firstOrderL2Submodule : Submodule ℝ (ℕ → ℝ) where
  carrier := {u | Memℓp (fun n : ℕ ↦ ((n : ℝ)+1)*u n) 2}
  zero_mem' := by
    change Memℓp (fun n : ℕ ↦ ((n : ℝ)+1)*0) 2
    simpa only [Pi.zero_apply, mul_zero] using (zero_mem_ℓp' : Memℓp (fun _ : ℕ ↦ (0 : ℝ)) 2)
  add_mem' {u v} hu hv := by
    change Memℓp (fun n : ℕ ↦ ((n : ℝ)+1)*(u n+v n)) 2
    simpa only [Pi.add_def, mul_add] using hu.add hv
  smul_mem' c u hu := by
    change Memℓp (fun n : ℕ ↦ ((n : ℝ)+1)*(c*u n)) 2
    simpa only [Pi.smul_def, smul_eq_mul, mul_left_comm] using hu.const_smul c
source
Theorem 6.4.2 Degree weighting on the first-order coefficient space
✓ 🤖

Degree weighting is a linear isometric equivalence \(\ell ^2_1\to \ell ^2\); in particular this is a Banach space.

Lean Formalisation
theorem lp.norm_firstOrderL2 (u : lp.FirstOrderL2) : ‖u‖ = ‖⟨fun n => (↑n + 1) * ↑u n, ⋯⟩‖
Lean proof
/-- Weighted coefficient norm, expressed using Mathlib's existing ℓ² norm. -/
theorem norm_firstOrderL2 (u : FirstOrderL2) :
    ‖u‖ = ‖(⟨fun n : ℕ ↦ ((n : ℝ)+1)*u.1 n, u.2⟩ : lp (fun _ : ℕ ↦ ℝ) 2)‖ := rfl
source

The norm is on raw coefficients; it is not the norm induced by normalized physical \(L^2\) coordinates.

The endpoint-factor-free constant-kernel diagonal extends to a linear isometric equivalence \(D:\ell ^2\to \ell ^2_1\), with

\[ (Du)_n=\frac{(-1)^n}{n+1}u_n,\qquad (D^{-1}q)_n=(-1)^n(n+1)q_n. \]

It agrees with the existing finite coefficient map on every coordinate vector. Every \(q\in \ell ^2_1\) therefore has exactly one solution \(u\in \ell ^2\) to \(Du=q\). The endpoint factor and reflection remain outside this map. Reference: [GO20, Lemma 5.6]; [Gut22, Lemma 2.3].

Lean Formalisation
theorem lp.norm_alternating_mul (n : ℕ) (a : ℝ) : ‖(-1) ^ n * a‖ = ‖a‖
Lean proof
/-- Alternating signs preserve each real coefficient norm. -/
theorem norm_alternating_mul (n : ℕ) (a : ℝ) : ‖(-1 : ℝ)^n*a‖ = ‖a‖ := by
  simp [norm_mul, norm_pow]
source

For \(q\in \ell ^2_1\), the truncated solution \(u_N=P_ND^{-1}q\) has coefficients

\[ (u_N)_n=\begin{cases} (-1)^n(n+1)q_n& n{\lt}N,\\ 0& n\ge N.\end{cases} \]

It satisfies \((Du_N)_n=q_n\) for every \(n{\lt}N\) and converges in raw \(\ell ^2\) to the exact solution. Every candidate \(v\in \ell ^2\) has the exact error identity

\[ \| v-D^{-1}q\| _{\ell ^2}=\| Dv-q\| _{\ell ^2_1}. \]
Lean Formalisation
theorem MvPolynomial.volterraJacobiFiniteSolution_apply (N : ℕ) (q : lp.FirstOrderL2) (i : ℕ) :
  ↑(MvPolynomial.volterraJacobiFiniteSolution N q) i = if i < N then (-1) ^ i * (↑i + 1) * ↑q i else 0
Lean proof
/-- Each resolved coefficient is obtained by the exact first-kind diagonal inverse. -/
theorem volterraJacobiFiniteSolution_apply (N : ℕ) (q : lp.FirstOrderL2) (i : ℕ) :
    volterraJacobiFiniteSolution N q i =
      if i < N then ((-1 : ℝ)^i*((i : ℝ)+1))*q.1 i else 0 := by
  simp only [volterraJacobiFiniteSolution, lp.initialL2Projection_apply, lp.coeFn_sum,
    lp.coeFn_single, Finset.sum_apply, Finset.sum_pi_single, Finset.mem_range,
    volterraJacobiL2Equiv_symm_apply]
source

This is the constant-kernel diagonal problem, not yet the general polynomial-kernel solver.

Reference details: Raw shifted Jacobi multiplication entries and related results

Writing \(Q_n(x)=P_n^{(1,0)}(2x-1)\), multiplication by \(x\) has upper, diagonal and lower column coefficients

\[ a_n=\frac{n+2}{2(2n+3)},\qquad b_n=\frac12-\frac1{2(2n+1)(2n+3)},\qquad c_n=\frac n{2(2n+1)}. \]

For \(n\ge 1\), \(xQ_n=a_nQ_{n+1}+b_nQ_n+c_nQ_{n-1}\); the constant column is \(xQ_0=a_0Q_1+b_0Q_0\).

Lean Formalisation
theorem Polynomial.X_mul_shiftedJacobi_one_zero_succ (n : ℕ) :
  Polynomial.X * Polynomial.shiftedJacobi 1 0 (n + 1) =
    Polynomial.C (Polynomial.shiftedJacobiOneZeroUpper (n + 1)) * Polynomial.shiftedJacobi 1 0 (n + 2) +
        Polynomial.C (Polynomial.shiftedJacobiOneZeroDiag (n + 1)) * Polynomial.shiftedJacobi 1 0 (n + 1) +
      Polynomial.C (Polynomial.shiftedJacobiOneZeroLower (n + 1)) * Polynomial.shiftedJacobi 1 0 n
Lean proof
/-- Multiplication by x in every positive-degree raw shifted Jacobi column. -/
theorem X_mul_shiftedJacobi_one_zero_succ (n : ℕ) :
    X*shiftedJacobi 1 0 (n+1) =
      C (shiftedJacobiOneZeroUpper (n+1))*shiftedJacobi 1 0 (n+2) +
      C (shiftedJacobiOneZeroDiag (n+1))*shiftedJacobi 1 0 (n+1) +
      C (shiftedJacobiOneZeroLower (n+1))*shiftedJacobi 1 0 n := by
  apply Polynomial.funext
  intro x
  have h := congrArg (fun p : ℝ[X] ↦ p.eval (2*x-1)) (jacobi_recurrence (1 : ℝ) 0 n)
  simp only [eval_mul, eval_C, eval_sub, eval_add, eval_X] at h
  simp only [eval_mul, eval_add, eval_C, eval_X, eval_shiftedJacobi,
    shiftedJacobiOneZeroUpper, shiftedJacobiOneZeroDiag, shiftedJacobiOneZeroLower,
    Nat.cast_add, Nat.cast_one]
  have h3 : (2*(n : ℝ)+3) ≠ 0 := by positivity
  have h5 : (2*(n : ℝ)+5) ≠ 0 := by positivity
  field_simp
  simp only [mul_comm 2 x] at h
  apply mul_left_cancel₀ (show (2*(n : ℝ)+4) ≠ 0 by positivity)
  linear_combination -h
source

Over real or complex scalars, \(T_1=I\). If \(A-T_p\) and \(B-T_q\) are compact, then \(A+B-T_{p+q}\), \(AB-T_{pq}\), and \(A^n-T_{p^n}\) are compact. This keeps the real coefficient convention available without complexifying the underlying integral equation.

Lean Formalisation
theorem lp.laurentToeplitz_one.{u_1} {𝕜 : Type u_1} [RCLike 𝕜] : lp.laurentToeplitz 1 = 1
Lean proof
/-- The constant-one symbol gives the identity operator. -/
theorem laurentToeplitz_one : laurentToeplitz (1 : LaurentPolynomial 𝕜) = 1 := by
  change laurentToeplitz (AddMonoidAlgebra.single (0 : ℤ) (1 : 𝕜)) = 1
  rw [laurentToeplitz_single, one_smul]
  rfl
source
Theorem 6.4.7 Finite coefficients in square-summable space
✓ 🤖

The canonical linear embedding of finitely supported real or complex sequences into \(\ell ^2\) preserves every coordinate and every coordinate vector, and is injective.

Lean Formalisation
theorem lp.finsuppL2_apply.{u_1} {𝕜 : Type u_1} [RCLike 𝕜] (c : ℕ →₀ 𝕜) (n : ℕ) : ↑(lp.finsuppL2 c) n = c n
Lean proof
/-- Embedding leaves every coordinate unchanged. -/
@[simp] theorem finsuppL2_apply (c : ℕ →₀ 𝕜) (n : ℕ) : finsuppL2 c n = c n := rfl
source

Let \(J_0=\tfrac 12 I+\tfrac 14(S+S^*)\). The raw shifted Jacobi \((1,0)\) multiplication matrix extends to a bounded real \(\ell ^2\) operator \(J=J_0+C_J\) with \(C_J\) compact. Its columns are exactly the coefficients \(a_n,b_n,c_n\) of the shifted Jacobi recurrence, and the embedding of every polynomial satisfies \(J\, \operatorname {coeff}(p)=\operatorname {coeff}(xp)\). There is a bounded tridiagonal operator \(H=J_0+C_H\) with \(C_H\) compact.

Lean Formalisation
theorem Polynomial.isCompactOperator_shiftedJacobiOneZeroCorrection :
  IsCompactOperator ⇑Polynomial.shiftedJacobiOneZeroCorrection
Lean proof
/-- The correction is compact because its reciprocal diagonals tend to zero. -/
theorem isCompactOperator_shiftedJacobiOneZeroCorrection :
    IsCompactOperator shiftedJacobiOneZeroCorrection := by
  have h1 := lp.isCompactOperator_reciprocalAffineDiagonal 2 1 (by norm_num) (by norm_num)
  have h3 := lp.isCompactOperator_reciprocalAffineDiagonal 2 3 (by norm_num) (by norm_num)
  unfold shiftedJacobiOneZeroCorrection
  apply IsCompactOperator.sub
  · apply IsCompactOperator.sub
    · exact (h3.clm_comp lp.forwardShiftL2.toContinuousLinearMap).smul (1/4 : ℝ)
    · exact (h1.comp_clm (lp.reciprocalAffineDiagonal 2 3 (by norm_num))).smul (1/2 : ℝ)
  · exact (h1.clm_comp lp.backwardShiftL2).smul (1/4 : ℝ)
source

The reflected preconditioner identity for \(H\) is Theorem 6.4.9.

The bounded raw diagonal \(D_n=(-1)^n/(n+1)\) agrees coefficientwise with the existing equivalence into weighted \(\ell ^2_1\). The second Jacobi operator satisfies \(DH=(I-J)D\). Its upper, diagonal and lower column entries are

\[ \frac{(n+2)^2}{2(n+1)(2n+3)},\qquad \frac12+\frac1{2(2n+1)(2n+3)},\qquad \frac{n^2}{2(n+1)(2n+1)}. \]

Thus the reflected expression is \(D^{-1}(I-J)D\); the statement does not treat \(D^{-1}\) as a bounded endomorphism of raw \(\ell ^2\).

Lean Formalisation
theorem Polynomial.reflectedJacobiOneZeroL2_apply_zero (u : ↥(lp (fun x => ℝ) 2)) :
  ↑(Polynomial.reflectedJacobiOneZeroL2 u) 0 = 2 / 3 * ↑u 0 + 1 / 12 * ↑u 1
Lean proof
/-- The first row of the reflected conjugate. -/
theorem reflectedJacobiOneZeroL2_apply_zero (u : H) :
    reflectedJacobiOneZeroL2 u 0 = (2/3 : ℝ)*u 0+(1/12 : ℝ)*u 1 := by
  simp only [reflectedJacobiOneZeroL2, shiftedJacobiToeplitzPart,
    reflectedJacobiOneZeroCorrection, ContinuousLinearMap.comp_apply,
    add_apply, sub_apply, smul_apply, one_apply_eq_self, lp.coeFn_add, lp.coeFn_sub,
    lp.coeFn_smul, Pi.add_apply, Pi.sub_apply, Pi.smul_apply, smul_eq_mul,
    LinearIsometry.coe_toContinuousLinearMap, lp.forwardShiftL2_zero,
    lp.backwardShiftL2_apply, lp.reciprocalAffineDiagonal_apply]
  norm_num
  ring
source

Both \(J\) and \(H\) differ compactly from \(T_t\), where \(t(z)=(2+z+z^{-1})/4\). Consequently \(H^rJ^s-T_{t^{r+s}}\) is compact. On a circle with nonzero signed period the symbol is real, \(t(z)=(1+\operatorname {Re}z)/2\in [0,1]\).

Lean Formalisation
theorem Polynomial.laurentToeplitz_shiftedJacobiLaurentSymbol :
  lp.laurentToeplitz Polynomial.shiftedJacobiLaurentSymbol = Polynomial.shiftedJacobiToeplitzPart
Lean proof
/-- Laurent quantization gives exactly the constant Jacobi tridiagonal part. -/
theorem laurentToeplitz_shiftedJacobiLaurentSymbol :
    lp.laurentToeplitz shiftedJacobiLaurentSymbol = shiftedJacobiToeplitzPart := by
  simp only [shiftedJacobiLaurentSymbol, map_add, lp.laurentToeplitz_single,
    lp.laurentShiftL2, pow_zero, pow_one, shiftedJacobiToeplitzPart, smul_add]
  abel
source

For a polynomial kernel \(K(x,y)=\sum _{r,s}k_{rs}x^ry^s\), define the bounded ordered coefficient operator \(A_K=\sum _{r,s}k_{rs}H^rJ^s\) and the Laurent symbol \(p_K=K(t,t)\). Then \(A_K-T_{p_K}\) is compact. On a circle with nonzero signed period, \(p_K(z)=K(\tau ,\tau )\) where \(\tau =(1+\operatorname {Re}z)/2\in [0,1]\).

Lean Formalisation
theorem MvPolynomial.isCompactOperator_volterraPreconditionedL2_sub_symbol (K : MvPolynomial (Fin 2) ℝ) :
  IsCompactOperator ⇑(K.volterraPreconditionedL2 - lp.laurentToeplitz K.volterraDiagonalLaurentSymbol)
Lean proof
/-- Every polynomial expression differs compactly from its diagonal-symbol Toeplitz operator. -/
theorem isCompactOperator_volterraPreconditionedL2_sub_symbol
    (K : MvPolynomial (Fin 2) ℝ) :
    IsCompactOperator (volterraPreconditionedL2 K-
      lp.laurentToeplitz (volterraDiagonalLaurentSymbol K)) := by
  classical
  simp only [volterraPreconditionedL2, volterraDiagonalLaurentSymbol, map_sum, map_smul,
    ← Finset.sum_sub_distrib]
  change (∑ d ∈ K.support, (K.coeff d •
    (reflectedJacobiOneZeroL2^(d 0)*shiftedJacobiOneZeroL2^(d 1))-
      K.coeff d • lp.laurentToeplitz (shiftedJacobiLaurentSymbol^(d 0+d 1)))) ∈
    compactOperator (RingHom.id ℝ) H H
  apply Submodule.sum_mem
  intro d hd
  have he : K.coeff d • (reflectedJacobiOneZeroL2^(d 0)*shiftedJacobiOneZeroL2^(d 1))-
      K.coeff d • lp.laurentToeplitz (shiftedJacobiLaurentSymbol^(d 0+d 1)) =
      K.coeff d • (reflectedJacobiOneZeroL2^(d 0)*shiftedJacobiOneZeroL2^(d 1)-
        lp.laurentToeplitz (shiftedJacobiLaurentSymbol^(d 0+d 1))) := by module
  rw [he]
  exact Submodule.smul_mem _ _ (isCompactOperator_reflectedJacobi_pow_mul_sub_symbol _ _)
source

The integral realization is given in Theorem 6.4.24.

Assume \(K(x,x)\ge a{\gt}0\) on \([0,1]\) and that the ordered coefficient operator \(A_K\) is injective. The Toeplitz part has quadratic form bounded below by \(a\| u\| ^2\), and \(A_K\) is invertible. Its leading sections \(I-P_N+P_NA_KP_N\) are eventually invertible, and their solutions for right-hand sides \(P_Ng\) converge in raw \(\ell ^2\) to \(A_K^{-1}g\).

Lean Formalisation
theorem MvPolynomial.inner_volterraDiagonalToeplitz_le (K : MvPolynomial (Fin 2) ℝ) {a : ℝ}
  (hK : ∀ x ∈ Set.Icc 0 1, a ≤ (MvPolynomial.eval fun x_1 => x) K) (u : ↥(lp (fun x => ℝ) 2)) :
  a * ‖u‖ ^ 2 ≤ inner ℝ u ((lp.laurentToeplitz K.volterraDiagonalLaurentSymbol) u)
Lean proof
/-- A lower bound on the kernel diagonal controls the real Toeplitz quadratic form. -/
theorem inner_volterraDiagonalToeplitz_le (K : MvPolynomial (Fin 2) ℝ) {a : ℝ}
    (hK : ∀ x ∈ Set.Icc (0 : ℝ) 1, a ≤ eval (fun _ ↦ x) K) (u : H) :
    a*‖u‖^2 ≤ ⟪u, lp.laurentToeplitz (volterraDiagonalLaurentSymbol K) u⟫_ℝ := by
  let : Fact (0 < (1 : ℝ)) := ⟨zero_lt_one⟩
  apply lp.inner_laurentToeplitz_le (T := 1)
  intro x
  rw [volterraDiagonalLaurentSymbol_circle, Complex.ofReal_re]
  exact hK _ (Polynomial.shiftedJacobiLaurentSymbol_circle_mem_Icc (T := ⟨1, one_ne_zero⟩) x)
source

Theorem 6.4.32 removes the injectivity hypothesis for polynomial kernels with nonvanishing diagonal.

For a real polynomial kernel \(K(x,y)\), write the classical oriented integral \(V_K f(x)=\int _0^xK(x,y)f(y)\, dy\). If \(f\) is locally integrable on \(\mathbb R\), then \(V_K f\) is continuous and, almost everywhere,

\[ (V_K f)'(x)=K(x,x)f(x)+V_{\partial _x K}f(x). \]

Polynomial kernel slices times \(f\) are interval-integrable. Kernel addition commutes with integration; multiplying the kernel by \(x\) multiplies the output by \(x\), and multiplying it by \(y\) multiplies the input by its coordinate. The algebraic identities also hold at any fixed endpoint whenever their row products are integrable; the factors need not be separately integrable. Reference: [Lin85], first-kind equations with differentiable kernels.

Lean Formalisation
theorem MvPolynomial.polynomialVolterraIntegral_add (K L : MvPolynomial (Fin 2) ℝ) (f : ℝ → ℝ) (x : ℝ)
  (hK : IntervalIntegrable (fun y => (MvPolynomial.eval ![x, y]) K * f y) MeasureTheory.volume 0 x)
  (hL : IntervalIntegrable (fun y => (MvPolynomial.eval ![x, y]) L * f y) MeasureTheory.volume 0 x) :
  Real.volterraIntegral (Real.VolterraIntegralInput.ofKernel (fun z => (MvPolynomial.eval z) (K + L)) f ⋯) =
    Real.volterraIntegral (Real.VolterraIntegralInput.ofKernel (fun z => (MvPolynomial.eval z) K) f hK) +
      Real.volterraIntegral (Real.VolterraIntegralInput.ofKernel (fun z => (MvPolynomial.eval z) L) f hL)
Lean proof
/-- Polynomial-kernel integration is additive whenever the two row products exist. -/
theorem polynomialVolterraIntegral_add (K L : MvPolynomial (Fin 2) ℝ)
    (f : ℝ → ℝ) (x : ℝ)
    (hK : IntervalIntegrable (fun y ↦ eval ![x,y] K * f y) volume 0 x)
    (hL : IntervalIntegrable (fun y ↦ eval ![x,y] L * f y) volume 0 x) :
    Real.volterraIntegral (.ofKernel (x := x) (fun z ↦ eval z (K+L)) f
      (by simpa only [eval_add, add_mul] using hK.add hL)) =
    Real.volterraIntegral (.ofKernel (x := x) (fun z ↦ eval z K) f hK) +
      Real.volterraIntegral (.ofKernel (x := x) (fun z ↦ eval z L) f hL) := by
  simp only [Real.volterraIntegral_ofKernel, eval_add, add_mul]
  exact intervalIntegral.integral_add hK hL
source

Let \(b{\gt}0\), let \(K\) be a real polynomial kernel, and suppose \(K(x,x)\ne 0\) on \([0,b]\). For every \(f\in L^1([0,b])\),

\[ (\forall x\in [0,b],\ V_K f(x)=0)\quad \Longrightarrow \quad f=0 \text{ almost everywhere on }[0,b]. \]

The diagonal may have either sign. The same conclusion is proved for locally integrable inputs; globally continuous inputs vanish pointwise on the interval. A zero output satisfies \(K(x,x)f(x)=-V_{\partial _xK}f(x)\) almost everywhere. Volterra integration on any \([0,x]\subseteq [0,b]\) respects almost-everywhere equality of inputs whenever the kernel–input products are integrable on that row. The supporting integral inequality states that a globally continuous real \(g\) with \(\| g(x)\| \le M\int _0^x\| g(y)\| \, dy\) on \([0,b]\) vanishes there.

Lean Formalisation
theorem Real.eq_zero_of_norm_le_volterra_integral {f : ℝ → ℝ} {b M : ℝ} (hf : Continuous f)
  (hbound : ∀ x ∈ Set.Icc 0 b, ‖f x‖ ≤ M * ∫ (y : ℝ) in 0..x, ‖f y‖) (x : ℝ) : x ∈ Set.Icc 0 b → f x = 0
Lean proof
/-- The homogeneous Volterra integral inequality forces a continuous function to vanish. -/
theorem Real.eq_zero_of_norm_le_volterra_integral {f : ℝ → ℝ} {b M : ℝ}
    (hf : Continuous f)
    (hbound : ∀ x ∈ Icc 0 b, ‖f x‖ ≤ M * ∫ y in (0 : ℝ)..x, ‖f y‖) :
    ∀ x ∈ Icc 0 b, f x = 0 := by
  have hi (a c : ℝ) : IntervalIntegrable (fun y ↦ ‖f y‖) volume a c :=
    hf.norm.intervalIntegrable a c
  have hF := intervalIntegral.continuous_primitive hi 0
  have hd (x : ℝ) : HasDerivAt (fun x ↦ ∫ y in (0 : ℝ)..x, ‖f y‖) ‖f x‖ x :=
    intervalIntegral.integral_hasDerivAt_right (hi 0 x)
      hf.norm.stronglyMeasurable.stronglyMeasurableAtFilter hf.norm.continuousAt
  have hz := eq_zero_of_abs_deriv_le_mul_abs_self_of_eq_zero_right (a := 0) (b := b)
    hF.continuousOn (fun x _ ↦ (hd x).hasDerivWithinAt)
    (by simp) (fun x hx ↦ (by
      rw [norm_norm]
      exact (hbound x ⟨hx.1, hx.2.le⟩).trans_eq (by
        rw [Real.norm_of_nonneg (intervalIntegral.integral_nonneg hx.1
          (fun y _ ↦ norm_nonneg (f y)))])))
  intro x hx
  have hh := hbound x hx
  rw [hz x hx, mul_zero] at hh
  exact norm_le_zero_iff.mp hh
source
Reference details: Injectivity of exact finite Proriol assembly and related results
Theorem 6.4.15 Injectivity of exact finite Proriol assembly
✓ 🤖

If \(K(x,x)\ne 0\) on some interval \([0,b]\) with \(b{\gt}0\), then the exact Proriol Volterra coefficient map is injective on finitely supported shifted Jacobi \((1,0)\) inputs. In particular, a finite input with zero assembled output is zero. This concerns the full finite-support map, not injectivity of every square truncation or of its extension to infinite raw coefficient sequences.

Lean Formalisation
theorem MvPolynomial.eq_zero_of_volterraProriolCoefficients_eq_zero {K : MvPolynomial (Fin 2) ℝ} {b : ℝ} (hb : 0 < b)
  (hdiag : ∀ x ∈ Set.Icc 0 b, (MvPolynomial.eval fun x_1 => x) K ≠ 0) {c : ℕ →₀ ℝ}
  (hc : K.volterraProriolCoefficients c = 0) : c = 0
Lean proof
/-- A finite coefficient input with zero assembled output must vanish. -/
theorem eq_zero_of_volterraProriolCoefficients_eq_zero
    {K : MvPolynomial (Fin 2) ℝ} {b : ℝ} (hb : 0 < b)
    (hdiag : ∀ x ∈ Icc 0 b, eval (fun _ ↦ x) K ≠ 0)
    {c : ℕ →₀ ℝ} (hc : volterraProriolCoefficients K c = 0) : c = 0 := by
  let p := Finsupp.linearCombination ℝ (shiftedJacobi 1 0) c
  have hv : ∀ x ∈ Icc 0 b, Real.volterraIntegral (.ofPolynomial K p.continuous.locallyIntegrable x) = 0 := by
    intro x hx
    rw [Real.VolterraIntegralInput.ofPolynomial, Real.volterraIntegral_ofKernel]
    change (∫ y in (0 : ℝ)..x, eval (![x,y] : Fin 2 → ℝ) K * p.eval y) = 0
    rw [← volterraProriolCoefficients_exact K c x, hc]
    simp
  have he := eq_zero_of_polynomialVolterraIntegral_eq_zero hb p.continuous hdiag hv
  have hp : p = 0 := p.eq_zero_of_infinite_isRoot
    ((Icc_infinite hb).mono (fun x hx ↦ he x hx))
  let B := shiftedJacobiBasis (by norm_num : (-1 : ℝ) < 1)
    (by norm_num : (-1 : ℝ) < 0)
  have hB : shiftedJacobi 1 0 = B := by
    funext n
    exact (shiftedJacobiBasis_apply _ _ n).symm
  have hl : LinearIndependent ℝ (shiftedJacobi 1 0) := by
    rw [hB]
    exact B.linearIndependent
  apply hl.finsuppLinearCombination_injective
  simpa only [map_zero] using hp
source

For \(\mu =\mathrm{unitJacobiMeasure}(1,0)\) the raw shifted Jacobi polynomial \(\widetilde P_n^{(1,0)}\) has squared norm \(2/(n+1)\). Scaling normalized Hilbert coordinates by \(\sqrt{2/(n+1)}\le \sqrt2\) defines a bounded injective synthesis map \(S:\ell ^2\to L^2(\mu )\). It sends each coordinate vector to its raw polynomial, agrees with finite polynomial synthesis, and sends coefficient truncations to a sequence converging to \(Sc\) in \(L^2(\mu )\).

Lean Formalisation
theorem Polynomial.integral_sq_shiftedJacobi_one_zero (n : ℕ) :
  ∫ (x : ℝ), Polynomial.eval x (Polynomial.shiftedJacobi 1 0 n) ^ 2 ∂Polynomial.unitJacobiMeasure 1 0 = 2 / (↑n + 1)
Lean proof
/-- The raw shifted (1,0) Jacobi squared norm after affine transport. -/
theorem integral_sq_shiftedJacobi_one_zero (n : ℕ) :
    (∫ x, (shiftedJacobi 1 0 n).eval x ^ 2 ∂unitJacobiMeasure 1 0) =
      2 / ((n : ℝ) + 1) := by
  have he := integralInner_shiftedJacobi 1 0 n n
    (hi := (hasFiniteMoments_jacobiMeasure (by norm_num) (by norm_num)).integrable_mul _ _)
  simp only [integralInner, ← sq] at he
  rw [he]
  cases n with
  | zero =>
    rw [integral_sq_jacobi_zero (by norm_num) (by norm_num)]
    norm_num [GammaOn, GammaPoint.ofPos, Gamma_add_one, Gamma_one]
  | succ n =>
    rw [integral_sq_jacobi_succ (by norm_num) (by norm_num)]
    simp only [GammaOn, GammaPoint.ofPos]
    have hG : Gamma ((n : ℝ) + 1 + 2) ≠ 0 :=
      (Gamma_pos_of_pos (by positivity)).ne'
    have hF : ((n + 1).factorial : ℝ) ≠ 0 := by positivity
    have hG2 : Gamma ((n : ℝ) + 0 + 2) = (n + 1).factorial := by
      rw [show (n : ℝ) + 0 + 2 = ((n+1 : ℕ) : ℝ) + 1 by push_cast; ring]
      exact Gamma_nat_eq_factorial (n+1)
    rw [hG2]
    norm_num only [add_zero, zero_add, Nat.cast_add, Nat.cast_one, Real.rpow_natCast]
    field_simp
    ring
source

No bounded inverse on its range or surjectivity is asserted.

Ordered polynomial quantization \(A_K=\sum _{i,j}K_{ij}H^iJ^j\) is linear in \(K\), has \(A_a=aI\), and obeys \(A_{xK}=HA_K\) and \(A_{yK}=A_KJ\). A monomial \(ax^iy^j\) gives exactly \(aH^iJ^j\); the order of these factors is retained.

Lean Formalisation
theorem MvPolynomial.volterraPreconditionedLinear_apply (K : MvPolynomial (Fin 2) ℝ) :
  MvPolynomial.volterraPreconditionedLinear K = K.volterraPreconditionedL2
Lean proof
/-- The linear quantization is the existing bounded ordered operator. -/
theorem volterraPreconditionedLinear_apply (K : MvPolynomial (Fin 2) ℝ) :
    volterraPreconditionedLinear K = volterraPreconditionedL2 K := rfl
source

Let \(V_K\) denote the exact finite Proriol coefficient assembly and \(\iota \) the embedding of finite coefficients into raw \(\ell ^2\). Then

\[ D A_K\iota c=\iota (V_Kc). \]

The raw coefficient map recovers \(c\) from its polynomial synthesis, and \(D\iota c\) agrees with the finite integration diagonal. Assembly is linear in the kernel and sends a constant kernel \(a\) to \(aD\). Multiplication of the kernel by \(x\) multiplies the reflected output polynomial by \(1-X\) (and its raw coefficient vector by \(I-J\)); multiplication by \(y\) replaces the input polynomial by \(X\) times that polynomial.

Lean Formalisation
theorem Polynomial.shiftedJacobiOneZeroCoefficients_linearCombination (c : ℕ →₀ ℝ) :
  Polynomial.shiftedJacobiOneZeroCoefficients ((Finsupp.linearCombination ℝ (Polynomial.shiftedJacobi 1 0)) c) =
    lp.finsuppL2 c
Lean proof
/-- The raw polynomial coefficient map recovers every finite coefficient vector. -/
theorem shiftedJacobiOneZeroCoefficients_linearCombination (c : ℕ →₀ ℝ) :
    shiftedJacobiOneZeroCoefficients (Finsupp.linearCombination ℝ (shiftedJacobi 1 0) c) =
      lp.finsuppL2 c := by
  let B := shiftedJacobiBasis (by norm_num : (-1 : ℝ) < 1)
    (by norm_num : (-1 : ℝ) < 0)
  have hB : shiftedJacobi 1 0 = B := by
    funext n
    exact (shiftedJacobiBasis_apply _ _ n).symm
  change lp.finsuppL2 (B.repr (Finsupp.linearCombination ℝ (shiftedJacobi 1 0) c)) = _
  rw [hB, Module.Basis.repr_linearCombination]
source

Let a joint measure \(\kappa \) have coordinate marginals \(\mu \) and \(\nu \). If a real kernel \(k\) is almost-everywhere strongly measurable and \(|k|\le M\) almost everywhere, with \(M\ge 0\), then it defines a bounded operator \(B:L^2(\nu )\to L^2(\mu )\) with \(\| B\| \le M\) and

\[ \langle g,Bf\rangle =\int k(x,y)g(x)f(y)\, d\kappa (x,y). \]

The displayed integrand is absolutely integrable for every pair of inputs.

Lean Formalisation
theorem MeasureTheory.inner_marginalKernelL2Operator.{u_1, u_2} {X : Type u_1} {Y : Type u_2} [MeasurableSpace X]
  [MeasurableSpace Y] (μ : MeasureTheory.Measure X) (ν : MeasureTheory.Measure Y) (κ : MeasureTheory.Measure (X × Y))
  (hfst : MeasureTheory.Measure.map Prod.fst κ = μ) (hsnd : MeasureTheory.Measure.map Prod.snd κ = ν) (k : X × Y → ℝ)
  (hk : MeasureTheory.AEStronglyMeasurable k κ) {M : ℝ} (hM : 0 ≤ M) (hb : ∀ᵐ (z : X × Y) ∂κ, ‖k z‖ ≤ M)
  (f : ↥(MeasureTheory.Lp ℝ 2 ν)) (g : ↥(MeasureTheory.Lp ℝ 2 μ)) :
  inner ℝ g ((MeasureTheory.marginalKernelL2Operator μ ν κ hfst hsnd k hk hM hb) f) =
    ∫ (z : X × Y), k z * (↑↑g z.1 * ↑↑f z.2) ∂κ
Lean proof
/-- The weak integral formula defining the marginal kernel operator. -/
theorem inner_marginalKernelL2Operator (f : Lp ℝ 2 ν) (g : Lp ℝ 2 μ) :
    ⟪g, marginalKernelL2Operator μ ν κ hfst hsnd k hk hM hb f⟫_ℝ =
      ∫ z, k z * (g z.1*f z.2) ∂κ := by
  rw [marginalKernelL2Operator, ContinuousLinearMap.comp_apply,
    ContinuousLinearMap.adjoint_inner_right, ContinuousLinearMap.comp_apply, L2.inner_def]
  apply integral_congr_ae
  filter_upwards [boundedMulL2_ae κ k hk hM hb
      (dominatedL2Pullback ν κ Prod.snd measurable_snd ENNReal.one_ne_top
        (by rw [one_smul, hsnd]) f),
    dominatedL2Pullback_ae μ κ Prod.fst measurable_fst ENNReal.one_ne_top
      (by rw [one_smul, hfst]) g,
    dominatedL2Pullback_ae ν κ Prod.snd measurable_snd ENNReal.one_ne_top
      (by rw [one_smul, hsnd]) f] with z hz hg hf
  simp only [hz, hg, hf, Function.comp_apply, Real.inner_apply]
  ring
source

Area measure on \(\{ (s,y)\in [0,1]^2:s+y\le 1\} \) has both coordinate marginals \((1-t)\, dt\). Thus the joint measure \(\kappa \) obtained by multiplying this area measure by four has both marginals \(\mu =\mathrm{unitJacobiMeasure}(1,0)=4(1-t)\, dt\). It is supported on that simplex and, for every \(\kappa \)-integrable real function \(F\),

\[ \int F\, d\kappa =4\int _0^1\int _0^{1-s}F(s,y)\, dy\, ds. \]

For a real integrable input \(f\) against \(\mu \), the function \(t\mapsto (1-t)f(t)\) is integrable on \([0,1]\), and \(\int f\, d\mu =4\int _0^1(1-t)f(t)\, dt\).

Lean Formalisation
theorem Real.map_fst_reflectedVolterraTriangleMeasure :
  MeasureTheory.Measure.map Prod.fst Real.reflectedVolterraTriangleMeasure =
    (MeasureTheory.volume.restrict (Set.Icc 0 1)).withDensity fun x => ENNReal.ofReal (1 - x)
Lean proof
/-- The first marginal of simplex area has density 1-x. -/
theorem map_fst_reflectedVolterraTriangleMeasure :
    reflectedVolterraTriangleMeasure.map Prod.fst = (ν).withDensity (fun x ↦ ENNReal.ofReal (1-x)) := by
  ext s hs
  rw [reflectedVolterraTriangleMeasure, Measure.map_apply measurable_fst hs,
    Measure.restrict_apply (measurable_fst hs),
    Measure.prod_apply ((measurable_fst hs).inter (measurableSet_le (show Measurable (fun z : ℝ × ℝ ↦ z.1 + z.2) from measurable_fst.add measurable_snd) measurable_const)),
    withDensity_apply _ hs, ← lintegral_indicator (μ := ν) hs (fun x : ℝ ↦ ENNReal.ofReal (1-x))]
  apply lintegral_congr_ae
  filter_upwards [ae_restrict_mem measurableSet_Icc] with x hx
  by_cases hxs : x ∈ s
  · have he : Prod.mk x ⁻¹' (Prod.fst ⁻¹' s ∩ {z : ℝ × ℝ | z.1 + z.2 ≤ 1}) = Iic (1-x) := by
      ext y; simp [hxs, le_sub_iff_add_le, add_comm]
    rw [he, Measure.restrict_apply measurableSet_Iic]
    have hi : Iic (1-x) ∩ Icc (0 : ℝ) 1 = Icc 0 (1-x) := by
      ext y; simp only [mem_inter_iff, mem_Iic, mem_Icc]; constructor <;> intro h
      · exact ⟨h.2.1,h.1⟩
      · exact ⟨h.2,h.1,h.2.trans (by linarith [hx.1])⟩
    rw [hi, Real.volume_Icc]
    simp [hxs]
  · have he : Prod.mk x ⁻¹' (Prod.fst ⁻¹' s ∩ {z : ℝ × ℝ | z.1 + z.2 ≤ 1}) = ∅ := by
      ext y; simp [hxs]
    simp [he,hxs]
source
Theorem 6.4.21 Local integrability in raw Jacobi function space
✓ 🤖

The measure \(\mu =\mathrm{unitJacobiMeasure}(1,0)\) and Lebesgue measure restricted to \([0,1]\) have the same null sets. Every \(f\in L^2(\mu )\) is Lebesgue integrable on \([0,b]\) for every \(b{\lt}1\).

Lean Formalisation
theorem Polynomial.ae_unitJacobiMeasure_one_zero_iff {p : ℝ → Prop} :
  (∀ᵐ (x : ℝ) ∂Polynomial.unitJacobiMeasure 1 0, p x) ↔ ∀ᵐ (x : ℝ) ∂MeasureTheory.volume.restrict (Set.Icc 0 1), p x
Lean proof
/-- The Jacobi weight changes no null sets on the unit interval. -/
theorem ae_unitJacobiMeasure_one_zero_iff {p : ℝ → Prop} :
    (∀ᵐ x ∂μ, p x) ↔ ∀ᵐ x ∂ν, p x := by
  rw [unitJacobiMeasure_one_zero_triangle, Real.map_fst_reflectedVolterraTriangleMeasure,
    Measure.ae_ennreal_smul_measure_iff (by norm_num : (4 : ℝ≥0∞) ≠ 0),
    ae_withDensity_iff (by fun_prop)]
  have hp : ∀ᵐ x ∂ν, ENNReal.ofReal (1-x) ≠ 0 := by
    filter_upwards [ae_restrict_mem measurableSet_Icc, ((ν).ae_ne 1)] with x hx hx1
    exact (ENNReal.ofReal_pos.mpr (by rcases hx with ⟨_,hx⟩; have : x < 1 := lt_of_le_of_ne hx hx1; linarith)).ne'
  constructor
  · intro h
    filter_upwards [h,hp] with x hx hp
    exact hx hp
  · intro h
    filter_upwards [h] with x hx
    exact fun _ ↦ hx
source
Theorem 6.4.22 Classical rows for weighted Jacobi inputs
✓ 🤖

For a continuous kernel on \(\Delta \) and \(f\in L^2(\mathrm{unitJacobiMeasure}(1,0))\), the product \(K(x,\cdot )f\) is integrable on every row with \(0\le x{\lt}1\). Thus \(V_Kf(x)\) is the integral of this product over \((0,x)\), with the zero row equal to zero.

Lean Formalisation
def Real.VolterraIntegralInput.ofJacobiOneZeroLp {K : (Fin 2 → ℝ) → ℝ} (hK : ContinuousOn K Real.volterraTriangle)
  (f : ↥(MeasureTheory.Lp ℝ 2 (Polynomial.unitJacobiMeasure 1 0))) (x : ↑(Set.Ico 0 1)) : (↑x).VolterraIntegralInput
Lean definition
/-- Weighted Jacobi L² data supply each row strictly before the vanishing endpoint. -/
def VolterraIntegralInput.ofJacobiOneZeroLp
    {K : (Fin 2 → ℝ) → ℝ} (hK : ContinuousOn K volterraTriangle)
    (f : Lp ℝ 2 (unitJacobiMeasure 1 0)) (x : Ico (0 : ℝ) 1) :
    VolterraIntegralInput (x : ℝ) :=
  .ofContinuousKernel hK (f := fun y ↦ f y) ⟨x, x.property.1, x.property.2.le⟩ (by
    apply intervalIntegrable_iff.mpr
    rw [uIoc_of_le x.property.1]
    exact (integrableOn_coe_jacobiOneZeroLp f x.property.2).mono_set Ioc_subset_Icc_self)
source

For a real polynomial kernel \(K\) with \(|K|\le M\) on the physical unit triangle, \(M\ge 0\), the reflected joint kernel \(K(1-s,y)\) defines a bounded operator \(B_K:L^2(\mu )\to L^2(\mu )\), \(\mu =\mathrm{unitJacobiMeasure}(1,0)\), with \(\| B_K\| \le M\). For all inputs \(f,g\),

\[ \langle g,B_Kf\rangle =4\int _{(0,1)} g(s)V_Kf(1-s)\, ds. \]

If polynomials \(p,q\) satisfy \(V_Kp(x)=xq(1-x)\) on \([0,1]\), then \(B_K[p]=[q]\) in weighted \(L^2\). Thus the polynomial output retains both the reflection and the division by the endpoint factor.

Lean Formalisation
theorem MvPolynomial.ae_norm_reflectedVolterraKernel_le (K : MvPolynomial (Fin 2) ℝ) {M : ℝ}
  (hb : ∀ z ∈ Real.volterraTriangle, |(MvPolynomial.eval z) K| ≤ M) :
  ∀ᵐ (z : ℝ × ℝ) ∂Real.jacobiVolterraJoint, ‖(MvPolynomial.eval ![1 - z.1, z.2]) K‖ ≤ M
Lean proof
/-- A bound on the physical triangle bounds the reflected joint kernel. -/
theorem ae_norm_reflectedVolterraKernel_le :
    ∀ᵐ z ∂κ, ‖eval (![1-z.1,z.2] : Fin 2 → ℝ) K‖ ≤ M := by
  filter_upwards [Real.ae_mem_jacobiVolterraJoint] with z hz
  apply hb
  change (1-z.1) ∈ Icc (0 : ℝ) 1 ∧ z.2 ∈ Icc 0 (1-z.1)
  exact ⟨⟨by linarith [hz.1.2], by linarith [hz.1.1]⟩,
    ⟨hz.2.1.1, by linarith [hz.2.2]⟩⟩
source
Theorem 6.4.24 Infinite raw coefficient agreement
✓ 🤖

For every polynomial kernel \(K\) and triangle bound \(M\ge 0\), raw Jacobi synthesis \(S\) intertwines the full ordered coefficient operator and the weighted integral realization:

\[ S D A_K=B_K S. \]

This is an equality of bounded operators on all of raw \(\ell ^2\), not only on finite coefficient sequences.

Lean Formalisation
theorem MvPolynomial.jacobiVolterraL2Operator_raw_synthesis (K : MvPolynomial (Fin 2) ℝ) {M : ℝ} (hM : 0 ≤ M)
  (hb : ∀ z ∈ Real.volterraTriangle, |(MvPolynomial.eval z) K| ≤ M) :
  Polynomial.shiftedJacobiOneZeroSynthesis ∘SL Polynomial.volterraRawDiagonal ∘SL K.volterraPreconditionedL2 =
    K.jacobiVolterraL2Operator hM hb ∘SL Polynomial.shiftedJacobiOneZeroSynthesis
Lean proof
/-- Raw synthesis intertwines the full ordered operator, with its integration
diagonal, and the bounded weighted Volterra realization. -/
theorem jacobiVolterraL2Operator_raw_synthesis (K : MvPolynomial (Fin 2) ℝ)
    {M : ℝ} (hM : 0 ≤ M) (hb : ∀ z ∈ Real.volterraTriangle, |eval z K| ≤ M) :
    shiftedJacobiOneZeroSynthesis.comp
      (volterraRawDiagonal.comp (volterraPreconditionedL2 K)) =
    (jacobiVolterraL2Operator K hM hb).comp shiftedJacobiOneZeroSynthesis := by
  apply lp.ext_continuousLinearMap (by norm_num : (2 : ℝ≥0∞) ≠ ⊤)
  intro i
  apply ContinuousLinearMap.ext
  intro a
  change shiftedJacobiOneZeroSynthesis
      (volterraRawDiagonal (volterraPreconditionedL2 K (lp.single 2 i a))) =
    jacobiVolterraL2Operator K hM hb (shiftedJacobiOneZeroSynthesis (lp.single 2 i a))
  rw [← lp.finsuppL2_single, volterraRawDiagonal_preconditioned_finsupp,
    shiftedJacobiOneZeroSynthesis_finsupp, shiftedJacobiOneZeroSynthesis_finsupp]
  apply (jacobiVolterraL2Operator_polynomial K hM hb _ _ _).symm
  intro x hx
  simpa only [Real.VolterraIntegralInput.ofPolynomial, Real.volterraIntegral_ofKernel] using
    (volterraProriolCoefficients_exact K (Finsupp.single i a) x).symm
source

Let \(\Delta =\{ (x,y):0\le y\le x\le 1\} \) and \(\mu (ds)=4(1-s)\, ds\) on \([0,1]\). For a real kernel \(K\) continuous on \(\Delta \) and \(|K|\le M\), \(M\ge 0\), the averaged reflected operator \(B_K\) is bounded on \(L^2(\mu )\), with \(\| B_K\| \le M\). Its weak formula is

\[ \langle g,B_Kf\rangle =4\int _{(0,1)}g(s)V_Kf(1-s)\, ds. \]

Each inner Volterra integral exists for \(0{\lt}s{\lt}1\); no endpoint value is needed. The joint-measure pairing is integrable, and reflection lands in \(\Delta \) almost everywhere for that measure. This construction agrees with the polynomial one. Subtraction of kernels subtracts operators; if \(|K-L|\le \delta \) on \(\Delta \), \(\delta \ge 0\), then \(\| B_K-B_L\| \le \delta \).

Lean Formalisation
theorem Real.ae_reflected_mem_volterraTriangle :
  ∀ᵐ (z : ℝ × ℝ) ∂Real.jacobiVolterraJoint, ![1 - z.1, z.2] ∈ Real.volterraTriangle
Lean proof
/-- Reflection carries almost every joint-measure point to the physical triangle. -/
theorem ae_reflected_mem_volterraTriangle :
    ∀ᵐ z ∂κ, (![1-z.1,z.2] : Fin 2 → ℝ) ∈ volterraTriangle := by
  filter_upwards [ae_mem_jacobiVolterraJoint] with z hz
  change (1-z.1) ∈ Icc (0 : ℝ) 1 ∧ z.2 ∈ Icc 0 (1-z.1)
  exact ⟨⟨by linarith [hz.1.2],by linarith [hz.1.1]⟩,
    ⟨hz.2.1.1,by linarith [hz.2.2]⟩⟩
source

For \(K\) continuous on \(\Delta \) and \(f\in L^1(\mathbb R)\), every slice \(K(x,\cdot )f\) is integrable on \([0,x]\), \(0\le x\le 1\), and \(V_Kf\) is continuous on \([0,1]\). If \(K,L\) are continuous and \(|K-L|\le e\), \(e\ge 0\), on \(\Delta \), then

\[ |V_Kf(x)-V_Lf(x)|\le e\int _0^1|f(y)|\, dy. \]

Consequently, uniformly convergent polynomial kernel approximants give uniformly convergent primitives for each such input.

Lean Formalisation
theorem Real.intervalIntegrable_continuousVolterra_mul {K : (Fin 2 → ℝ) → ℝ} (hK : ContinuousOn K Real.volterraTriangle)
  {f : ℝ → ℝ} (hf : MeasureTheory.Integrable f MeasureTheory.volume) {x : ℝ} (hx : x ∈ Set.Icc 0 1) :
  IntervalIntegrable (fun y => K ![x, y] * f y) MeasureTheory.volume 0 x
Lean proof
/-- Continuous triangle kernels may be integrated against an integrable input on each slice. -/
theorem intervalIntegrable_continuousVolterra_mul
    {K : (Fin 2 → ℝ) → ℝ} (hK : ContinuousOn K volterraTriangle)
    {f : ℝ → ℝ} (hf : Integrable f volume) {x : ℝ} (hx : x ∈ Icc 0 1) :
    IntervalIntegrable (fun y ↦ K ![x,y]*f y) volume 0 x := by
  apply hf.intervalIntegrable.continuousOn_mul
  rw [uIcc_of_le hx.1]
  exact hK.comp (by fun_prop) (fun y hy ↦ ⟨hx,hy⟩)
source

Let \(f\) be integrable on \([0,b]\). Suppose each slice \(y\mapsto K(x,y)\) is absolutely continuous on \([0,x]\) and \(K(x,x)\ne 0\). Suppose that for one real constant \(C\), each row has an integrable derivative representative \(h_x\) with

\[ |h_x(y)|\le C|K(x,x)|\quad \text{for almost every }y\in [0,x],\qquad 0\le x\le b. \]

The condition is independent of the derivative representative. If \(V_Kf\) vanishes throughout \([0,b]\), then \(f=0\) almost everywhere there. For locally integrable \(f\), its primitive \(\int _0^x f\) also vanishes throughout that interval. Changing the input on a null subset of \([0,b]\) does not change its Volterra integrals on the interval.

Lean Formalisation
theorem Real.volterraIntegral_congr_ae_on (K : (Fin 2 → ℝ) → ℝ) {f g : ℝ → ℝ} {b x : ℝ} (hx : x ∈ Set.Icc 0 b)
  (hfg : f =ᵐ[MeasureTheory.volume.restrict (Set.Icc 0 b)] g)
  (hf : IntervalIntegrable (fun y => K ![x, y] * f y) MeasureTheory.volume 0 x)
  (hg : IntervalIntegrable (fun y => K ![x, y] * g y) MeasureTheory.volume 0 x) :
  Real.volterraIntegral (Real.VolterraIntegralInput.ofKernel K f hf) =
    Real.volterraIntegral (Real.VolterraIntegralInput.ofKernel K g hg)
Lean proof
/-- Volterra integrals on a subinterval depend only on the input's local almost-everywhere class. -/
theorem volterraIntegral_congr_ae_on (K : (Fin 2 → ℝ) → ℝ)
    {f g : ℝ → ℝ} {b x : ℝ} (hx : x ∈ Icc 0 b)
    (hfg : f =ᵐ[volume.restrict (Icc 0 b)] g)
    (hf : IntervalIntegrable (fun y ↦ K ![x,y]*f y) volume 0 x)
    (hg : IntervalIntegrable (fun y ↦ K ![x,y]*g y) volume 0 x) :
    volterraIntegral (.ofKernel K f hf) = volterraIntegral (.ofKernel K g hg) := by
  simp only [volterraIntegral_ofKernel]
  apply intervalIntegral.integral_congr_ae_restrict
  have hs : Set.uIoc 0 x ⊆ Icc 0 b := by
    rw [uIoc_of_le hx.1]
    exact fun y hy ↦ ⟨hy.1.le,hy.2.trans hx.2⟩
  filter_upwards [ae_restrict_of_ae_restrict_of_subset hs hfg] with y hy
  rw [hy]
source
Reference details: Injectivity of the continuous weighted Volterra realization and related results

Let \(K\) be continuous and bounded on \(\Delta \). If \(B_Kf=0\), then \(V_Kf=0\) on every \([0,b]\) with \(0{\lt}b{\lt}1\). If additionally the absolutely continuous slice, derivative-bound and nonvanishing-diagonal hypotheses of Theorem 6.4.27 hold on \([0,1]\), then \(B_K\) is injective on \(L^2(\mu )\).

Lean Formalisation
theorem Real.volterraIntegral_eq_zero_of_jacobiVolterraL2Operator_eq_zero (K : (Fin 2 → ℝ) → ℝ)
  (hK : ContinuousOn K Real.volterraTriangle) {M : ℝ} (hM : 0 ≤ M) (hbnd : ∀ z ∈ Real.volterraTriangle, |K z| ≤ M)
  (f : ↥(MeasureTheory.Lp ℝ 2 (Polynomial.unitJacobiMeasure 1 0)))
  (hz : (Real.jacobiVolterraL2Operator hK hM hbnd) f = 0) {b : ℝ} (hb0 : 0 < b) (hb1 : b < 1) (x : ↑(Set.Icc 0 b)) :
  Real.volterraIntegral (Real.VolterraIntegralInput.ofJacobiOneZeroLp hK f ⟨↑x, ⋯⟩) = 0
Lean proof
/-- A zero weighted output gives zero classical rows on each compact interior interval. -/
theorem volterraIntegral_eq_zero_of_jacobiVolterraL2Operator_eq_zero
    (K : (Fin 2 → ℝ) → ℝ) (hK : ContinuousOn K volterraTriangle) {M : ℝ} (hM : 0 ≤ M)
    (hbnd : ∀ z ∈ volterraTriangle, |K z| ≤ M)
    (f : Lp ℝ 2 μ) (hz : jacobiVolterraL2Operator hK hM hbnd f = 0)
    {b : ℝ} (hb0 : 0 < b) (hb1 : b < 1) :
    ∀ x : Icc (0 : ℝ) b, volterraIntegral
      (.ofJacobiOneZeroLp hK f ⟨x, x.property.1, x.property.2.trans_lt hb1⟩) = 0 := by
  intro x
  simpa only [VolterraIntegralInput.ofJacobiOneZeroLp,
    VolterraIntegralInput.ofContinuousKernel, volterraIntegral_ofKernel] using
    volterraIntegral_eq_zero_of_jacobiVolterraL2Operator_eq_zero_integral
      K hK hM hbnd f hz hb0 hb1 x x.property
source

For a polynomial kernel with \(K(x,x)\ne 0\) on \([0,1]\), the weighted operator \(B_K\) is injective on \(L^2(\mathrm{unitJacobiMeasure}(1,0))\). In particular a zero weighted output forces a zero input. Independently of the diagonal condition, \(B_Kf=0\) forces \(V_Kf(x)=0\) throughout every \([0,b]\), \(0{\lt}b{\lt}1\).

Lean Formalisation
theorem MvPolynomial.polynomialVolterraIntegral_eq_zero_of_jacobiVolterraL2Operator_eq_zero (K : MvPolynomial (Fin 2) ℝ) {M : ℝ}
  (hM : 0 ≤ M) (hbnd : ∀ z ∈ Real.volterraTriangle, |(MvPolynomial.eval z) K| ≤ M)
  (f : ↥(MeasureTheory.Lp ℝ 2 (Polynomial.unitJacobiMeasure 1 0))) (hz : (K.jacobiVolterraL2Operator hM hbnd) f = 0)
  {b : ℝ} (hb0 : 0 < b) (hb1 : b < 1) (x : ↑(Set.Icc 0 b)) :
  Real.volterraIntegral (Real.VolterraIntegralInput.ofIntegrableOnPolynomial K ⋯ x) = 0
Lean proof
/-- A zero weighted output gives a zero physical primitive on every interior interval. -/
theorem polynomialVolterraIntegral_eq_zero_of_jacobiVolterraL2Operator_eq_zero
    (K : MvPolynomial (Fin 2) ℝ) {M : ℝ} (hM : 0 ≤ M)
    (hbnd : ∀ z ∈ Real.volterraTriangle, |eval z K| ≤ M)
    (f : Lp ℝ 2 μ) (hz : jacobiVolterraL2Operator K hM hbnd f = 0)
    {b : ℝ} (hb0 : 0 < b) (hb1 : b < 1) :
    ∀ x : Icc (0 : ℝ) b, Real.volterraIntegral
      (.ofIntegrableOnPolynomial K (integrableOn_coe_jacobiOneZeroLp f hb1) x) = 0 := by
  have hz' : Real.jacobiVolterraL2Operator K.continuous_eval.continuousOn hM hbnd f = 0 := by
    rwa [Real.jacobiVolterraL2Operator_polynomial]
  intro x
  simpa only [Real.VolterraIntegralInput.ofIntegrableOnPolynomial,
    Real.VolterraIntegralInput.ofJacobiOneZeroLp,
    Real.VolterraIntegralInput.ofContinuousKernel, Real.volterraIntegral_ofKernel] using
    Real.volterraIntegral_eq_zero_of_jacobiVolterraL2Operator_eq_zero
      (fun z ↦ eval z K) K.continuous_eval.continuousOn hM hbnd f hz' hb0 hb1 x
source

If \(K(x,x)\ne 0\) on \([0,1]\), the ordered operator \(A_K\) is injective on raw \(\ell ^2\). If moreover \(K(x,x)\ge a{\gt}0\) there, then \(A_K\) is invertible and its leading finite sections \(A_{K,N}=I-P_N+P_NA_KP_N\) are eventually invertible, with

\[ A_{K,N}^{-1}P_Ng\longrightarrow A_K^{-1}g \quad \hbox{in raw }\ell ^2. \]

No separate injectivity assumption is required.

Lean Formalisation
theorem MvPolynomial.injective_volterraPreconditionedL2 (K : MvPolynomial (Fin 2) ℝ)
  (hdiag : ∀ x ∈ Set.Icc 0 1, (MvPolynomial.eval fun x_1 => x) K ≠ 0) : Function.Injective ⇑K.volterraPreconditionedL2
Lean proof
/-- A nonvanishing kernel diagonal gives injectivity on the full raw coefficient space. -/
theorem injective_volterraPreconditionedL2 (K : MvPolynomial (Fin 2) ℝ)
    (hdiag : ∀ x ∈ Icc (0 : ℝ) 1, eval (fun _ ↦ x) K ≠ 0) :
    Function.Injective (volterraPreconditionedL2 K) := by
  obtain ⟨M,hb⟩ := isCompact_volterraTriangle.exists_bound_of_continuousOn K.continuous_eval.continuousOn
  have hb' : ∀ z ∈ Real.volterraTriangle, |eval z K| ≤ |M| :=
    fun z hz ↦ (hb z hz).trans (le_abs_self M)
  have he := jacobiVolterraL2Operator_raw_synthesis K (abs_nonneg M) hb'
  intro u v huv
  apply shiftedJacobiOneZeroSynthesis_injective
  apply injective_jacobiVolterraL2Operator K (abs_nonneg M) hb' hdiag
  have hu := congrArg (fun A ↦ A u) he
  have hv := congrArg (fun A ↦ A v) he
  simp only [ContinuousLinearMap.comp_apply] at hu hv
  rw [← hu, ← hv, huv]
source

Theorem 6.4.32 also covers a negative diagonal.

For a bounded projection \(P\) on a real inner-product space and a bounded operator \(A\), put \(A_P=I-P+PAP\). Then

\[ (-A)_P=(I-2P)A_P. \]

Consequently the two sections are invertible simultaneously. On this invertible domain, \((-A)_P^{-1}(-Pg)=A_P^{-1}Pg\). For invertible \(A\), likewise \((-A)^{-1}(-g)=A^{-1}g\). For every \(A\), including singular operators and sections,

\[ (-A)_P u=-Pg\iff A_Pu=Pg,\qquad (-A)u=-g\iff Au=g. \]
Lean Formalisation
theorem ContinuousLinearMap.coerciveFiniteSection_neg.{u_1} {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
  (P A : E →L[ℝ] E) (hP : P * P = P) : P.coerciveFiniteSection (-A) = (1 - 2 * P) * P.coerciveFiniteSection A
Lean proof
/-- Negating the resolved operator multiplies its section by the coordinate reflection. -/
theorem coerciveFiniteSection_neg (P A : E →L[ℝ] E) (hP : P*P=P) :
    coerciveFiniteSection P (-A) = (1-2*P)*coerciveFiniteSection P A := by
  change 1-P+P*(-A*P) = (1-2*P)*(1-P+P*(A*P))
  have hPA : P*(P*(A*P)) = P*(A*P) := by rw [← mul_assoc, hP]
  noncomm_ring [hP,hPA]
source

Let \(K\) be a real polynomial kernel with \(K(x,x)\ne 0\) for all \(x\in [0,1]\). Then its raw ordered operator \(A_K\) is invertible, its leading finite sections \(A_{K,N}=I-P_N+P_NA_KP_N\) are eventually invertible, and for every raw \(\ell ^2\) right-hand side \(g\),

\[ A_{K,N}^{-1}P_Ng\longrightarrow A_K^{-1}g\quad \hbox{in }\ell ^2. \]

The real diagonal has a uniform positive bound after possibly negating \(K\), and \(A_{-K}=-A_K\). Either sign is covered, without an additional injectivity assumption.

Lean Formalisation
theorem MvPolynomial.exists_pos_volterra_diagonal_bound_or_neg (K : MvPolynomial (Fin 2) ℝ)
  (hdiag : ∀ x ∈ Set.Icc 0 1, (MvPolynomial.eval fun x_1 => x) K ≠ 0) :
  ∃ a,
    0 < a ∧
      ((∀ x ∈ Set.Icc 0 1, a ≤ (MvPolynomial.eval fun x_1 => x) K) ∨
        ∀ x ∈ Set.Icc 0 1, a ≤ -(MvPolynomial.eval fun x_1 => x) K)
Lean proof
/-- A nonvanishing real diagonal has one sign and a uniform positive absolute lower bound. -/
theorem exists_pos_volterra_diagonal_bound_or_neg (K : MvPolynomial (Fin 2) ℝ)
    (hdiag : ∀ x ∈ Icc (0 : ℝ) 1, eval (fun _ ↦ x) K ≠ 0) :
    ∃ a : ℝ, 0 < a ∧ ((∀ x ∈ Icc (0 : ℝ) 1, a ≤ eval (fun _ ↦ x) K) ∨
      (∀ x ∈ Icc (0 : ℝ) 1, a ≤ -eval (fun _ ↦ x) K)) := by
  let f : ℝ → ℝ := fun x ↦ eval (fun _ ↦ x) K
  have hf : Continuous f := K.continuous_eval.comp (by fun_prop)
  have hsign : (∀ x ∈ Icc (0 : ℝ) 1, 0 < f x) ∨ (∀ x ∈ Icc (0 : ℝ) 1, f x < 0) := by
    rcases lt_or_gt_of_ne (hdiag 0 (by simp)) with hn | hp
    · right
      intro x hx
      by_contra h
      obtain ⟨y,hy,he⟩ := intermediate_value_Icc hx.1 hf.continuousOn
        (show (0 : ℝ) ∈ Icc (f 0) (f x) from ⟨hn.le,le_of_not_gt h⟩)
      exact hdiag y ⟨hy.1,hy.2.trans hx.2⟩ he
    · left
      intro x hx
      by_contra h
      obtain ⟨y,hy,he⟩ := intermediate_value_Icc' hx.1 hf.continuousOn
        (show (0 : ℝ) ∈ Icc (f x) (f 0) from ⟨le_of_not_gt h,hp.le⟩)
      exact hdiag y ⟨hy.1,hy.2.trans hx.2⟩ he
  obtain ⟨t,ht,hm⟩ := isCompact_Icc.exists_isMinOn
    (show (Icc (0 : ℝ) 1).Nonempty from ⟨0,by simp⟩) hf.abs.continuousOn
  refine ⟨|f t|,abs_pos.mpr (hdiag t ht),?_⟩
  rcases hsign with hp | hn
  · left; intro x hx
    have hm' : |f t| ≤ |f x| := hm hx
    rwa [abs_of_pos (hp x hx)] at hm'
  · right; intro x hx
    have hm' : |f t| ≤ |f x| := hm hx
    rwa [abs_of_neg (hn x hx)] at hm'
source
Reference details: Weighted coefficient operator and classical solution and related results
Definition 6.4.33 Weighted coefficient operator and classical solution
✓ 🤖

For a real polynomial kernel \(K\), let \(A_K\) be its preconditioned coefficient operator and \(D:\ell ^2\to \ell ^2_1\) the isometric integration diagonal. Define \(W_K=DA_K\). For a kernel in the domain where \(A_K\) is invertible and weighted data \(q\in \ell ^2_1\), define \(u_K(q)=A_K^{-1}D^{-1}q\).

Lean Formalisation
def MvPolynomial.volterraWeightedL2 (K : MvPolynomial (Fin 2) ℝ) : ↥(lp (fun x => ℝ) 2) →L[ℝ] lp.FirstOrderL2
Lean definition
/-- The polynomial first-kind map into its weighted coefficient range. -/
def volterraWeightedL2 (K : MvPolynomial (Fin 2) ℝ) : H →L[ℝ] lp.FirstOrderL2 :=
  volterraJacobiL2Equiv.toContinuousLinearEquiv.toContinuousLinearMap.comp
    (volterraPreconditionedL2 K)
source
Theorem 6.4.34 Equation for the classical weighted solution
✓ 🤖

For every kernel in the invertible domain and every \(q\in \ell ^2_1\), \(W_Ku_K(q)=q\).

Lean Formalisation
theorem MvPolynomial.volterraWeightedSolution_property (K : Ring.InvertibleIndex MvPolynomial.volterraPreconditionedL2)
  (q : lp.FirstOrderL2) : (↑K).volterraWeightedL2 (MvPolynomial.volterraWeightedSolution K q) = q
Lean proof
/-- The canonical weighted solution solves the equation for every invertible kernel. -/
theorem volterraWeightedSolution_property
    (K : Ring.InvertibleIndex volterraPreconditionedL2) (q : lp.FirstOrderL2) :
    volterraWeightedL2 K (volterraWeightedSolution K q) = q := by
  have h := congrArg (fun B : H →L[ℝ] H ↦ B (volterraJacobiL2Equiv.symm q))
    (Ring.inverseAt_mul volterraPreconditionedL2 K).2
  change volterraPreconditionedL2 K
    (Ring.inverseAt volterraPreconditionedL2 K (volterraJacobiL2Equiv.symm q)) =
      volterraJacobiL2Equiv.symm q at h
  change volterraJacobiL2Equiv (volterraPreconditionedL2 K
    (Ring.inverseAt volterraPreconditionedL2 K (volterraJacobiL2Equiv.symm q))) = q
  rw [h]
  exact volterraJacobiL2Equiv.apply_symm_apply q
source
Definition 6.4.35 Classical weighted finite solution
✓ 🤖

For a real polynomial kernel \(K\), set \(S_N(A_K)=I-P_N+P_NA_KP_N\). At a cutoff in the domain where \(S_N(A_K)\) is invertible, define \(u_{K,N}(q)=S_N(A_K)^{-1}P_ND^{-1}q\) for \(q\in \ell ^2_1\).

Lean Formalisation
def MvPolynomial.volterraWeightedSection (K : MvPolynomial (Fin 2) ℝ) (N : ℕ) :
  ↥(lp (fun x => ℝ) 2) →L[ℝ] ↥(lp (fun x => ℝ) 2)
Lean definition
/-- The identity-padded finite weighted section. -/
def volterraWeightedSection (K : MvPolynomial (Fin 2) ℝ) (N : ℕ) : H →L[ℝ] H :=
  coerciveFiniteSection (lp.initialL2Projection N) (volterraPreconditionedL2 K)
source
Theorem 6.4.36 Equations for the classical weighted finite solution
✓ 🤖

At every invertible cutoff, \(u_{K,N}(q)\) has zero coefficients at indices \(i\ge N\), and \((W_Ku_{K,N}(q))_i=q_i\) for \(i{\lt}N\).

Lean Formalisation
theorem MvPolynomial.volterraWeightedFiniteSolution_equations (K : MvPolynomial (Fin 2) ℝ)
  (N : Ring.InvertibleIndex K.volterraWeightedSection) (q : lp.FirstOrderL2) :
  (∀ (i : ℕ), ↑N ≤ i → ↑(K.volterraWeightedFiniteSolution N q) i = 0) ∧
    ∀ i < ↑N, ↑(K.volterraWeightedL2 (K.volterraWeightedFiniteSolution N q)) i = ↑q i
Lean proof
/-- An invertible finite section solves the resolved weighted equations and has zero tail. -/
theorem volterraWeightedFiniteSolution_equations (K : MvPolynomial (Fin 2) ℝ)
    (N : Ring.InvertibleIndex (volterraWeightedSection K))
    (q : lp.FirstOrderL2) :
    (∀ i, (N : ℕ) ≤ i → volterraWeightedFiniteSolution K N q i = 0) ∧
    (∀ i, i < (N : ℕ) → (volterraWeightedL2 K (volterraWeightedFiniteSolution K N q)).1 i =
      q.1 i) := by
  let u := volterraWeightedFiniteSolution K N q
  let P := lp.initialL2Projection (𝕜 := ℝ) N
  let A := volterraPreconditionedL2 K
  have he : u - P u + P (A (P u)) = P (volterraJacobiL2Equiv.symm q) := by
    simpa only [u, volterraWeightedFiniteSolution_eq_ringInverse, volterraWeightedSection,
      coerciveFiniteSection, mul_apply_eq_comp, add_apply, sub_apply, one_apply_eq_self, comp_apply, P, A] using
      congrArg (fun B : H →L[ℝ] H ↦ B (P (volterraJacobiL2Equiv.symm q)))
      (Ring.mul_inverse_cancel _ N.property)
  have ht : ∀ i, (N : ℕ) ≤ i → u i = 0 := by
    intro i hi
    have h := congrArg (fun v : H ↦ v i) he
    simpa only [lp.coeFn_add, lp.coeFn_sub, Pi.add_apply, Pi.sub_apply,
      P, projection_coord, ite_eq_right (not_lt.mpr hi), sub_zero, add_zero] using h
  have hp : P u = u := by
    apply lp.ext
    funext i
    change lp.initialL2Projection N u i = u i
    rw [projection_coord]
    split_ifs with hi
    · rfl
    · exact (ht i (le_of_not_gt hi)).symm
  refine ⟨ht, ?_⟩
  intro i hi
  rw [hp, sub_self, zero_add] at he
  have h := congrArg (fun v : H ↦ v i) he
  have hc : A u i = volterraJacobiL2Equiv.symm q i := by
    simpa only [P, projection_coord, ite_eq_left hi] using h
  change (volterraJacobiL2Equiv (A u)).1 i = q.1 i
  rw [volterraJacobiL2Equiv_apply, hc]
  simpa only [volterraJacobiL2Equiv_apply] using
    congrArg (fun v : lp.FirstOrderL2 ↦ v.1 i)
      (volterraJacobiL2Equiv.apply_symm_apply q)
source

Write \(D:\ell ^2\to \ell ^2_1\) for the isometric integration diagonal and \(W_K=DA_K\) for the endpoint-factor-free weighted coefficient operator. For a real polynomial kernel with \(K(x,x)\ne 0\) on \([0,1]\) and any \(q\in \ell ^2_1\), the equation \(W_Ku=q\) has the unique solution \(u=A_K^{-1}D^{-1}q\). Its finite solves

\[ u_N=(I-P_N+P_NA_KP_N)^{-1}P_ND^{-1}q \]

are defined for every cutoff \(N\) at which \(I-P_N+P_NA_KP_N\) is invertible. These cutoffs include every sufficiently large \(N\). As \(N\to \infty \) through them, the finite solves converge to \(u\) in raw \(\ell ^2\), and their synthesized input functions converge in \(L^2(4(1-x)\, dx)\) on \([0,1]\). Whenever the section is invertible, \(u_N\) has zero tail beyond \(N\) and \((W_Ku_N)_i=q_i\) for \(i{\lt}N\); this holds eventually. For every finite coefficient vector \(c\), \(W_Kc\) agrees coefficientwise with the exact reflected Proriol assembly, so the retained finite assembly equations are precisely these weighted equations. For arbitrary raw coefficients \(v\) the full weighted residual gives

\[ \| v-u\| _{\ell ^2}\le \| A_K^{-1}\| \, \| W_Kv-q\| _{\ell ^2_1}. \]

Multiplying this bound by the norm of raw Jacobi synthesis bounds the weighted physical input error. The residual includes unresolved coordinates. The output convention retains reflection and removes the endpoint factor, as in the exact assembly theorem.

Lean Formalisation
theorem MvPolynomial.volterraWeightedSolution_spec (K : MvPolynomial (Fin 2) ℝ)
  (hd : ∀ x ∈ Set.Icc 0 1, (MvPolynomial.eval fun x_1 => x) K ≠ 0) (q : lp.FirstOrderL2) :
  K.volterraWeightedL2 (MvPolynomial.volterraWeightedSolution ⟨K, ⋯⟩ q) = q
Lean proof
/-- Nonvanishing diagonal gives a solution for every weighted right-hand side. -/
theorem volterraWeightedSolution_spec (K : MvPolynomial (Fin 2) ℝ)
    (hd : ∀ x ∈ Icc (0 : ℝ) 1, eval (fun _ ↦ x) K ≠ 0) (q : lp.FirstOrderL2) :
    volterraWeightedL2 K (volterraWeightedSolution ⟨K, isUnit_volterraPreconditionedL2 K hd⟩ q) = q := by
  have h := congrArg (fun B : H →L[ℝ] H ↦ B (volterraJacobiL2Equiv.symm q))
    (Ring.mul_inverse_cancel _ (isUnit_volterraPreconditionedL2 K hd))
  rw [volterraWeightedSolution_eq_ringInverse]
  change volterraJacobiL2Equiv
    (volterraPreconditionedL2 K (Ring.inverse (volterraPreconditionedL2 K)
      (volterraJacobiL2Equiv.symm q))) = q
  rw [show volterraPreconditionedL2 K (Ring.inverse (volterraPreconditionedL2 K)
    (volterraJacobiL2Equiv.symm q)) = volterraJacobiL2Equiv.symm q from h]
  exact volterraJacobiL2Equiv.apply_symm_apply q
source

The residual includes unresolved coordinates; no computable bound on the inverse norm is asserted here.

Reference details: Quantitative perturbation and stable operator families and related results

Let \(A,B\) be bounded endomorphisms of a real or complex Banach space. If \(A\) is invertible and \(\| A^{-1}\| \| A-B\| \le r{\lt}1\), then \(B\) is invertible and \(\| B^{-1}\| \le \| A^{-1}\| /(1-r)\). For invertible \(B\),

\[ \| B^{-1}g-u\| \le \| B^{-1}\| (\| g-Au\| +\| A-B\| \| u\| ). \]

If \(A_n\) are eventually invertible with inverse norms bounded by \(C\) and \(\| A_n-B_n\| \to 0\), then \(B_n\) are eventually invertible with inverse norms bounded by \(2C\). For any eventually stable family \(B_n\), consistency \(g_n-B_nu\to 0\) implies \(B_n^{-1}g_n\to u\).

Lean Formalisation
theorem ContinuousLinearMap.isUnit_of_inverse_norm_mul_sub_lt_one.{u_1, u_2} {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜]
  [NormedAddCommGroup E] [NormedSpace 𝕜 E] [CompleteSpace E] (A B : E →L[𝕜] E) (hA : IsUnit A)
  (h : ‖Ring.inverse A‖ * ‖A - B‖ < 1) : IsUnit B
Lean proof
/-- Small preconditioned operator errors preserve invertibility. -/
theorem isUnit_of_inverse_norm_mul_sub_lt_one (A B : E →L[𝕜] E)
    (hA : IsUnit A) (h : ‖Ring.inverse A‖ * ‖A-B‖ < 1) : IsUnit B := by
  have ht : ‖Ring.inverse A * (A-B)‖ < 1 := (norm_mul_le _ _).trans_lt h
  have he : B = A * (1 - Ring.inverse A * (A-B)) := by
    rw [mul_sub, mul_one, ← mul_assoc, Ring.mul_inverse_cancel A hA, one_mul]
    abel
  rw [he]
  exact hA.mul (isUnit_one_sub_of_norm_lt_one ht)
source

For the initial coordinate projections on real or complex \(\ell ^2\), write \(S_N(A)=I-P_N+P_NAP_N\). Then \(\| S_N(A)-S_N(B)\| \le \| A-B\| \). If \(B_N\to A\) in operator norm, then \(S_N(B_N)u\to Au\) for every \(u\). An eventual inverse bound \(C\) for \(S_N(A)\) transfers to an eventual bound \(2C\) for \(S_N(B_N)\). Under that stability hypothesis and \(g_N\to Au\), \(S_N(B_N)^{-1}P_Ng_N\to u\). At each invertible approximate section,

\[ \| S_N(B)^{-1}P_Ng-u\| \le \| S_N(B)^{-1}\| \big((1+\| A\| )\| P_Nu-u\| +\| g-Au\| +\| A-B\| \| u\| \big). \]
Lean Formalisation
theorem lp.norm_coerciveFiniteSection_sub_le.{u_1} {𝕜 : Type u_1} [RCLike 𝕜] (N : ℕ)
  (A B : ↥(lp (fun x => 𝕜) 2) →L[𝕜] ↥(lp (fun x => 𝕜) 2)) :
  ‖(lp.initialL2Projection N).coerciveFiniteSection A - (lp.initialL2Projection N).coerciveFiniteSection B‖ ≤ ‖A - B‖
Lean proof
/-- Double compression does not amplify operator approximation error. -/
theorem norm_coerciveFiniteSection_sub_le (N : ℕ) (A B : H →L[𝕜] H) :
    ‖coerciveFiniteSection (initialL2Projection N) A -
      coerciveFiniteSection (initialL2Projection N) B‖ ≤ ‖A-B‖ := by
  have he : coerciveFiniteSection (initialL2Projection N) A -
      coerciveFiniteSection (initialL2Projection N) B =
      (initialL2Projection N).comp ((A-B).comp (initialL2Projection N)) := by
    simp only [coerciveFiniteSection, sub_comp, comp_sub]
    abel
  rw [he]
  apply (opNorm_comp_le _ _).trans
  calc
    _ ≤ 1 * (‖A-B‖ * 1) := mul_le_mul (norm_initialL2Projection_le N)
      ((opNorm_comp_le _ _).trans (mul_le_mul_of_nonneg_left
        (norm_initialL2Projection_le N) (norm_nonneg _))) (norm_nonneg _) zero_le_one
    _ = _ := by ring
source

Write \(H,J\) for the reflected and raw Jacobi factors and \(K(x,y)=\sum k_{ij}x^iy^j\). Define

\[ m(K)=\sum _{i,j}|k_{ij}|\| H\| ^i\| J\| ^j. \]

Then \(\| A_K\| \le m(K)\). In particular, \(m(L_N-K)\to 0\) implies \(A_{L_N}\to A_K\) in operator norm. For polynomial increments \(p_n\), if \(\sum _n m(p_n){\lt}\infty \), the operator series \(\sum _n A_{p_n}\) converges, and \(A_{\sum _{n{\lt}N}p_n}\) converges in norm to its sum.

Lean Formalisation
theorem MvPolynomial.norm_volterraPreconditionedL2_le_majorant (K : MvPolynomial (Fin 2) ℝ) :
  ‖K.volterraPreconditionedL2‖ ≤ K.volterraKernelMajorant
Lean proof
/-- The coefficient majorant bounds the preconditioned operator norm. -/
theorem norm_volterraPreconditionedL2_le_majorant (K : MvPolynomial (Fin 2) ℝ) :
    ‖volterraPreconditionedL2 K‖ ≤ volterraKernelMajorant K := by
  apply (norm_sum_le _ _).trans
  apply Finset.sum_le_sum
  intro d _hd
  rw [norm_smul]
  apply mul_le_mul_of_nonneg_left _ (norm_nonneg _)
  exact (norm_mul_le _ _).trans
    (mul_le_mul (operator_pow_bound _ _) (operator_pow_bound _ _) (norm_nonneg _) (by positivity))
source

Theorem 6.4.42 identifies the coefficient limit with the integral operator under its physical and operator-norm convergence hypotheses.

Let \(K\) be a real polynomial with \(K(x,x)\ne 0\) on \([0,1]\). The sections \(S_N(A_K)\) have a uniform eventual inverse bound, for either diagonal sign. If polynomial kernels \(L_N\) satisfy \(A_{L_N}\to A_K\) in operator norm and \(q_N\to r\) in \(\ell ^2_1\), their finite weighted solves are eventually stable and

\[ u_N=S_N(A_{L_N})^{-1}P_ND^{-1}q_N \longrightarrow u=A_K^{-1}D^{-1}r . \]

Here the finite solves are indexed by the invertible sections, a domain containing every sufficiently large cutoff, and convergence uses its induced nontrivial filter of tails. The synthesized inputs also converge along this filter in the weighted physical Jacobi \(L^2\) space. For any polynomial \(L\), weighted data \(q,r\), and invertible section \(S_N(A_L)\),

\[ \| u_N-u\| \le \| S_N(A_L)^{-1}\| \big((1+\| A_K\| )\| P_Nu-u\| +\| q-r\| _{\ell ^2_1} +\| A_K-A_L\| \| u\| \big), \qquad u_N=S_N(A_L)^{-1}P_ND^{-1}q . \]

The analogous full-solve bound omits the truncation term and uses \(\| A_L^{-1}\| \), assuming \(A_L\) invertible. Small relative kernel error \(\| A_K^{-1}\| \| A_K-A_L\| {\lt}1\) suffices for this invertibility. More generally, if \(A_{L_N}\to A\) in norm for an arbitrary invertible bounded operator \(A\), full weighted solves converge to \(A^{-1}D^{-1}r\) through the indices where \(A_{L_N}\) is invertible. This domain also contains a tail and has a nontrivial induced filter. This last assertion neither identifies a nonpolynomial integral kernel nor asserts finite-section stability for an arbitrary invertible \(A\). Reference: [Gut22, Section 2.7, Theorem 2.5 and Lemma 2.5].

Lean Formalisation
theorem MvPolynomial.exists_eventually_stable_volterraPreconditionedL2 (K : MvPolynomial (Fin 2) ℝ)
  (hd : ∀ x ∈ Set.Icc 0 1, (MvPolynomial.eval fun x_1 => x) K ≠ 0) :
  ∃ C,
    0 ≤ C ∧
      ∀ᶠ (N : ℕ) in Filter.atTop,
        ∃ (hN : IsUnit (K.volterraWeightedSection N)), ‖Ring.inverseAt K.volterraWeightedSection ⟨N, hN⟩‖ ≤ C
Lean proof
/-- Polynomial first-kind stability supplies genuine inverse values eventually. -/
theorem exists_eventually_stable_volterraPreconditionedL2
    (K : MvPolynomial (Fin 2) ℝ)
    (hd : ∀ x ∈ Icc (0 : ℝ) 1, eval (fun _ ↦ x) K ≠ 0) :
    ∃ C : ℝ, 0 ≤ C ∧ ∀ᶠ N in atTop,
      ∃ hN : IsUnit (volterraWeightedSection K N),
      ‖Ring.inverseAt (volterraWeightedSection K) ⟨N, hN⟩‖ ≤ C := by
  obtain ⟨C, hC, hs⟩ := exists_eventually_stable_volterraPreconditionedL2_ringInverse K hd
  refine ⟨C, hC, ?_⟩
  filter_upwards [hs] with N hN
  have hu : IsUnit (volterraWeightedSection K N) := hN.1
  refine ⟨hu, ?_⟩
  rw [Ring.inverseAt_eq_ringInverse]
  exact hN.2
source
Reference details: Continuous-kernel identification of raw operator limits and related results
Theorem 6.4.42 Continuous-kernel identification of raw operator limits
✓ 🤖

Let \(K\) be continuous on \(\Delta \), let polynomial kernels \(p_n\) converge uniformly to \(K\), and suppose their raw preconditioned operators \(A_{p_n}\) converge in operator norm to \(A\). Then \(B_{p_n}\to B_K\) in operator norm and

\[ S D A=B_K S, \]

where \(S\) is raw shifted-Jacobi synthesis and \(D\) the integration diagonal. In particular, for polynomial increments \(q_n\) with \(\sum _n m(q_n){\lt}\infty \) and partial sums converging uniformly to \(K\), this identity holds with \(A=\sum _n A_{q_n}\).

Lean Formalisation
theorem Real.tendsto_polynomial_jacobiVolterraL2Operator {K : (Fin 2 → ℝ) → ℝ} (hK : ContinuousOn K Real.volterraTriangle)
  {M : ℝ} (hM : 0 ≤ M) (bK : ∀ z ∈ Real.volterraTriangle, |K z| ≤ M) (p : ℕ → MvPolynomial (Fin 2) ℝ) {B e : ℕ → ℝ}
  (hB : ∀ (n : ℕ), 0 ≤ B n) (bp : ∀ (n : ℕ), ∀ z ∈ Real.volterraTriangle, |(MvPolynomial.eval z) (p n)| ≤ B n)
  (he : ∀ (n : ℕ), 0 ≤ e n) (err : ∀ (n : ℕ), ∀ z ∈ Real.volterraTriangle, |(MvPolynomial.eval z) (p n) - K z| ≤ e n)
  (hte : Filter.Tendsto e Filter.atTop (nhds 0)) :
  Filter.Tendsto (fun n => (p n).jacobiVolterraL2Operator ⋯ ⋯) Filter.atTop
    (nhds (Real.jacobiVolterraL2Operator hK hM bK))
Lean proof
/-- Uniform triangle approximation controls the weighted reflected operator in norm. -/
theorem tendsto_polynomial_jacobiVolterraL2Operator :
    Tendsto (fun n ↦ MvPolynomial.jacobiVolterraL2Operator (p n) (hB n) (bp n))
      atTop (𝓝 (jacobiVolterraL2Operator hK hM bK)) := by
  rw [tendsto_iff_norm_sub_tendsto_zero]
  apply squeeze_zero (fun _ ↦ norm_nonneg _) (fun n ↦ ?_) hte
  rw [← jacobiVolterraL2Operator_polynomial]
  exact norm_jacobiVolterraL2Operator_sub_le (p n).continuous_eval.continuousOn
    (hB n) (bp n) hK hM bK (he n) (err n)
source

Uniform physical convergence and preconditioned norm convergence are separate hypotheses; neither is silently substituted for the other.

Theorem 6.4.43 Real Laurent Toeplitz norm bound
✓ 🤖
#

For a real Laurent polynomial \(p\) and \(M\ge 0\), a bound \(|p(e^{it})|\le M\) on the circle gives \(\| T_p\| \le M\) on real \(\ell ^2\).

Lean Formalisation
theorem lp.norm_laurentToeplitz_le_circle {T : ℝ} [Fact (0 < T)] (p : LaurentPolynomial ℝ) {M : ℝ} (hM : 0 ≤ M)
  (hb : ∀ (x : AddCircle T), ‖(AddCircle.laurentSymbol ((AddMonoidAlgebra.mapRingHom ℤ Complex.ofRealHom) p)) x‖ ≤ M) :
  ‖lp.laurentToeplitz p‖ ≤ M
Lean proof
/-- A uniform complex circle-symbol bound controls real Laurent quantization. -/
theorem norm_laurentToeplitz_le_circle {T : ℝ} [Fact (0 < T)]
    (p : LaurentPolynomial ℝ) {M : ℝ} (hM : 0 ≤ M)
    (hb : ∀ x : AddCircle T, ‖AddCircle.laurentSymbol (T := ⟨T, (Fact.out : 0 < T).ne'⟩)
      (AddMonoidAlgebra.mapRingHom ℤ Complex.ofRealHom p) x‖ ≤ M) :
    ‖laurentToeplitz p‖ ≤ M := by
  let q := AddMonoidAlgebra.mapRingHom ℤ Complex.ofRealHom p
  have hs : ‖AddCircle.laurentSymbol (T := ⟨T, (Fact.out : 0 < T).ne'⟩) q‖ ≤ M :=
    (ContinuousMap.norm_le _ hM).mpr hb
  have ht := (AddCircle.norm_continuousToeplitz_le
    (AddCircle.laurentSymbol (T := ⟨T, (Fact.out : 0 < T).ne'⟩) q)).trans hs
  rw [AddCircle.continuousToeplitz_laurentSymbol] at ht
  apply ContinuousLinearMap.opNorm_le_bound _ hM
  intro u
  rw [← complexifyL2.norm_map (laurentToeplitz p u), complexifyL2_laurentToeplitz]
  exact ((laurentToeplitz q).le_opNorm _).trans (by
    rw [complexifyL2.norm_map]
    exact mul_le_mul_of_nonneg_right ht (norm_nonneg _))
source

The norm of the Toeplitz part of a polynomial Volterra operator is bounded by a uniform bound for its diagonal \(p(x,x)\) on \([0,1]\); the same holds for differences. Hence uniform convergence \(p_n(x,x)\to K(x,x)\) gives a norm limit \(T\) of the Toeplitz parts. If also \(A_{p_n}\to A\) in norm and \(K(x,x)\ge a{\gt}0\), then \(A-T\) is compact and

\[ (a/2)\| u\| ^2\le \langle u,Tu\rangle . \]
Lean Formalisation
theorem MvPolynomial.norm_volterraDiagonalToeplitz_le (p : MvPolynomial (Fin 2) ℝ) {M : ℝ} (hM : 0 ≤ M)
  (hb : ∀ x ∈ Set.Icc 0 1, |(MvPolynomial.eval fun x_1 => x) p| ≤ M) :
  ‖lp.laurentToeplitz p.volterraDiagonalLaurentSymbol‖ ≤ M
Lean proof
/-- The supremum bound on a polynomial diagonal controls its Toeplitz part. -/
theorem norm_volterraDiagonalToeplitz_le (p : MvPolynomial (Fin 2) ℝ)
    {M : ℝ} (hM : 0 ≤ M)
    (hb : ∀ x ∈ Icc (0 : ℝ) 1, |eval (fun _ ↦ x) p| ≤ M) :
    ‖lp.laurentToeplitz (volterraDiagonalLaurentSymbol p)‖ ≤ M := by
  let : Fact (0 < (1 : ℝ)) := ⟨zero_lt_one⟩
  apply lp.norm_laurentToeplitz_le_circle (T := 1) _ hM
  intro x
  rw [volterraDiagonalLaurentSymbol_circle, Complex.norm_real, Real.norm_eq_abs]
  exact hb _ (shiftedJacobiLaurentSymbol_circle_mem_Icc (T := ⟨1, one_ne_zero⟩) x)
source
Theorem 6.4.45 Stable Volterra limits with either diagonal sign
✓ 🤖

Suppose \(K(x,x)\) is continuous and nonzero on \([0,1]\), polynomial diagonals converge uniformly to it, \(A_{p_n}\to A\) in operator norm, and \(A\) is injective. Then \(A\) is invertible and there is \(B\ge 0\) such that, eventually, \(S_N(A)=I-P_N+P_NAP_N\) is invertible and \(\| S_N(A)^{-1}\| \le B\).

Lean Formalisation
theorem MvPolynomial.isUnit_and_stable_volterra_limit (K : (Fin 2 → ℝ) → ℝ) (p : ℕ → MvPolynomial (Fin 2) ℝ)
  (hK : ContinuousOn (fun x => K fun x_1 => x) (Set.Icc 0 1)) (hd : ∀ x ∈ Set.Icc 0 1, (K fun x_1 => x) ≠ 0) {e : ℕ → ℝ}
  (he : ∀ (n : ℕ), 0 ≤ e n)
  (herr : ∀ (n : ℕ), ∀ x ∈ Set.Icc 0 1, |(MvPolynomial.eval fun x_1 => x) (p n) - K fun x_1 => x| ≤ e n)
  (hte : Filter.Tendsto e Filter.atTop (nhds 0)) (A : ↥(lp (fun x => ℝ) 2) →L[ℝ] ↥(lp (fun x => ℝ) 2))
  (hA : Filter.Tendsto (fun n => (p n).volterraPreconditionedL2) Filter.atTop (nhds A)) (hinj : Function.Injective ⇑A) :
  IsUnit A ∧
    ∃ C,
      0 ≤ C ∧
        ∀ᶠ (N : ℕ) in Filter.atTop,
          IsUnit ((lp.initialL2Projection N).coerciveFiniteSection A) ∧
            ‖Ring.inverse ((lp.initialL2Projection N).coerciveFiniteSection A)‖ ≤ C
Lean proof
/-- A continuous nonvanishing diagonal, norm consistency and injectivity give stable sections. -/
theorem isUnit_and_stable_volterra_limit
    (K : (Fin 2 → ℝ) → ℝ) (p : ℕ → MvPolynomial (Fin 2) ℝ)
    (hK : ContinuousOn (fun x : ℝ ↦ K (fun _ ↦ x)) (Icc 0 1))
    (hd : ∀ x ∈ Icc (0 : ℝ) 1, K (fun _ ↦ x) ≠ 0)
    {e : ℕ → ℝ} (he : ∀ n, 0 ≤ e n)
    (herr : ∀ n x, x ∈ Icc (0 : ℝ) 1 →
      |eval (fun _ ↦ x) (p n)-K (fun _ ↦ x)| ≤ e n)
    (hte : Tendsto e atTop (𝓝 0))
    (A : H →L[ℝ] H) (hA : Tendsto (fun n ↦ volterraPreconditionedL2 (p n)) atTop (𝓝 A))
    (hinj : Function.Injective A) :
    IsUnit A ∧ ∃ C : ℝ, 0 ≤ C ∧ ∀ᶠ N in atTop,
      IsUnit (coerciveFiniteSection (lp.initialL2Projection N) A) ∧
      ‖Ring.inverse (coerciveFiniteSection (lp.initialL2Projection N) A)‖ ≤ C := by
  have hb : ∃ a : ℝ, 0 < a ∧ ((∀ x ∈ Icc (0 : ℝ) 1, a ≤ K (fun _ ↦ x)) ∨
      (∀ x ∈ Icc (0 : ℝ) 1, a ≤ -K (fun _ ↦ x))) := by
    let f : ℝ → ℝ := fun x ↦ K (fun _ ↦ x)
    have hf : ContinuousOn f (Icc 0 1) := hK
    have hsign : (∀ x ∈ Icc (0 : ℝ) 1, 0 < f x) ∨ (∀ x ∈ Icc (0 : ℝ) 1, f x < 0) := by
      rcases lt_or_gt_of_ne (hd 0 (by simp)) with hn | hp
      · right
        intro x hx
        by_contra h
        obtain ⟨y,hy,he⟩ := intermediate_value_Icc hx.1 (hf.mono (fun y hy ↦ ⟨hy.1,hy.2.trans hx.2⟩))
          (show (0 : ℝ) ∈ Icc (f 0) (f x) from ⟨hn.le,le_of_not_gt h⟩)
        exact hd y ⟨hy.1,hy.2.trans hx.2⟩ he
      · left
        intro x hx
        by_contra h
        obtain ⟨y,hy,he⟩ := intermediate_value_Icc' hx.1 (hf.mono (fun y hy ↦ ⟨hy.1,hy.2.trans hx.2⟩))
          (show (0 : ℝ) ∈ Icc (f x) (f 0) from ⟨le_of_not_gt h,hp.le⟩)
        exact hd y ⟨hy.1,hy.2.trans hx.2⟩ he
    obtain ⟨t,ht,hm⟩ := isCompact_Icc.exists_isMinOn
      (show (Icc (0 : ℝ) 1).Nonempty from ⟨0,by simp⟩) hf.abs
    refine ⟨|f t|,abs_pos.mpr (hd t ht),?_⟩
    rcases hsign with hp | hn
    · left; intro x hx
      have hm' : |f t| ≤ |f x| := hm hx
      rwa [abs_of_pos (hp x hx)] at hm'
    · right; intro x hx
      have hm' : |f t| ≤ |f x| := hm hx
      rwa [abs_of_neg (hn x hx)] at hm'
  obtain ⟨a,ha,hp|hn⟩ := hb
  · exact positive_limit_stable K p he herr hte A hA hinj ha hp
  · have hneg : Tendsto (fun n ↦ volterraPreconditionedL2 (-p n)) atTop (𝓝 (-A)) := by
      simpa only [volterraPreconditionedL2_neg] using hA.neg
    obtain ⟨hu,C,hC,hs⟩ := positive_limit_stable (fun z ↦ -K z) (fun n ↦ -p n)
      he (fun n x hx ↦ by simpa only [map_neg, neg_sub_neg, abs_sub_comm] using herr n x hx)
      hte (-A) hneg (fun u v huv ↦ hinj (neg_injective huv)) ha hn
    refine ⟨by simpa only [neg_neg] using hu.neg,C*3,by positivity,?_⟩
    filter_upwards [hs] with N hN
    have hiN := (isUnit_coerciveFiniteSection_neg_iff _ _
      (lp.initialL2Projection_idempotent N)).mp hN.1
    refine ⟨hiN,?_⟩
    let P := lp.initialL2Projection (𝕜 := ℝ) N
    let Q : H →L[ℝ] H := 1-2*P
    have hP : P*P=P := lp.initialL2Projection_idempotent N
    have hQQ : Q*Q=1 := reflection_square P hP
    have hQ : IsUnit Q := isUnit_iff_exists.mpr ⟨Q,hQQ,hQQ⟩
    have hQi : Ring.inverse Q = Q := by
      calc
        _ = Ring.inverse Q * (Q*Q) := by rw [hQQ,mul_one]
        _ = Q := Ring.inverse_mul_cancel_left _ _ hQ
    have hnQ : ‖Q‖ ≤ 3 := by
      have heQ : Q = 1-P-P := by dsimp [Q]; noncomm_ring
      rw [heQ]
      have h1 := norm_sub_le (1 : H →L[ℝ] H) P
      have h2 := norm_sub_le (1-P) P
      have hpn := lp.norm_initialL2Projection_le (𝕜 := ℝ) N
      have hon := norm_id_le (𝕜 := ℝ) (E := H)
      change ‖P‖ ≤ 1 at hpn
      change ‖(1 : H →L[ℝ] H)‖ ≤ 1 at hon
      linarith
    have hs := coerciveFiniteSection_neg P (-A) hP
    rw [neg_neg] at hs
    rw [hs, Ring.inverse_mul (Or.inl hQ), hQi]
    exact (norm_mul_le _ _).trans (mul_le_mul hN.2 hnQ (norm_nonneg _) hC)
source

Let \(K\) be continuous on \(\Delta \), have absolutely continuous \(y\)-slices, nonzero diagonal, and satisfy \(|\partial _yK(x,y)|\le C|K(x,x)|\) on \(\Delta \). Suppose polynomial kernels \(p_n\) converge uniformly to \(K\) and \(A_{p_n}\to A\) in operator norm. Then \(A\) is invertible and its leading sections have a uniform eventual inverse bound. For \(g_N\to g\) in raw \(\ell ^2\),

\[ S_N(A_{p_N})^{-1}P_Ng_N\longrightarrow A^{-1}g. \]

For polynomial increments \(q_n\) whose partial sums converge uniformly to \(K\), summability of \(m(q_n)\) suffices for invertibility and uniform eventual section stability of \(A=\sum _n A_{q_n}\).

Lean Formalisation
theorem Real.isUnit_and_stable_continuousVolterra {K : (Fin 2 → ℝ) → ℝ} (hK : ContinuousOn K Real.volterraTriangle) {C : ℝ}
  (hAC : ∀ x ∈ Set.Icc 0 1, AbsolutelyContinuousOnInterval (fun y => K ![x, y]) 0 x)
  (hder :
    ∀ x ∈ Set.Icc 0 1, ∃ g, ∀ᵐ (y : ℝ) ∂MeasureTheory.volume.restrict (Set.uIcc 0 x), ‖↑g.input y‖ ≤ C * |K ![x, x]|)
  (hd : ∀ x ∈ Set.Icc 0 1, K ![x, x] ≠ 0) (p : ℕ → MvPolynomial (Fin 2) ℝ) {e : ℕ → ℝ} (he : ∀ (n : ℕ), 0 ≤ e n)
  (herr : ∀ (n : ℕ), ∀ z ∈ Real.volterraTriangle, |(MvPolynomial.eval z) (p n) - K z| ≤ e n)
  (hte : Filter.Tendsto e Filter.atTop (nhds 0)) (A : ↥(lp (fun x => ℝ) 2) →L[ℝ] ↥(lp (fun x => ℝ) 2))
  (hA : Filter.Tendsto (fun n => (p n).volterraPreconditionedL2) Filter.atTop (nhds A)) :
  IsUnit A ∧
    ∃ B,
      0 ≤ B ∧
        ∀ᶠ (N : ℕ) in Filter.atTop,
          IsUnit ((lp.initialL2Projection N).coerciveFiniteSection A) ∧
            ‖Ring.inverse ((lp.initialL2Projection N).coerciveFiniteSection A)‖ ≤ B
Lean proof
/-- A regular continuous kernel with nonvanishing diagonal gives an invertible raw limit
and uniformly stable leading sections, for either diagonal sign. -/
theorem isUnit_and_stable_continuousVolterra :
    IsUnit A ∧ ∃ B : ℝ, 0 ≤ B ∧ ∀ᶠ N in atTop,
      IsUnit (coerciveFiniteSection (lp.initialL2Projection N) A) ∧
      ‖Ring.inverse (coerciveFiniteSection (lp.initialL2Projection N) A)‖ ≤ B := by
  obtain ⟨M,hb⟩ := MvPolynomial.isCompact_volterraTriangle.exists_bound_of_continuousOn hK
  have bK : ∀ z ∈ volterraTriangle, |K z| ≤ |M| :=
    fun z hz ↦ (hb z hz).trans (le_abs_self M)
  have bp (n : ℕ) (z : Fin 2 → ℝ) (hz : z ∈ volterraTriangle) :
      |MvPolynomial.eval z (p n)| ≤ |M|+e n := by
    have h := abs_add_le (MvPolynomial.eval z (p n)-K z) (K z)
    rw [sub_add_cancel] at h
    linarith [herr n z hz,bK z hz]
  have bridge := jacobiVolterraL2Operator_raw_limit hK (abs_nonneg M) bK p
    (fun n ↦ add_nonneg (abs_nonneg M) (he n)) bp he herr hte A hA
  have hinj : Function.Injective A := by
    intro u v huv
    apply shiftedJacobiOneZeroSynthesis_injective
    apply injective_jacobiVolterraL2Operator K hK (abs_nonneg M) bK hAC hder hd
    have hu := congrArg (fun T ↦ T u) bridge
    have hv := congrArg (fun T ↦ T v) bridge
    simp only [comp_apply] at hu hv
    rw [← hu,← hv,huv]
  have hmem (x : ℝ) (hx : x ∈ Icc (0 : ℝ) 1) :
      (fun _ : Fin 2 ↦ x) ∈ volterraTriangle := ⟨hx,hx.1,le_rfl⟩
  have hpair (x : ℝ) : (![x,x] : Fin 2 → ℝ) = (fun _ ↦ x) := by
    funext i; fin_cases i <;> rfl
  exact MvPolynomial.isUnit_and_stable_volterra_limit K p
    (hK.comp (by fun_prop) hmem)
    (fun x hx ↦ by simpa only [hpair] using hd x hx)
    he (fun n x hx ↦ herr n _ (hmem x hx)) hte A hA hinj
source

These hypotheses give a sufficient nonpolynomial class; they do not assert preconditioned norm convergence for arbitrary continuous kernels.