OAI/Computability/FourierCircuit/Boundary.lean
39 declarations, 0 contain sorry, 0 declared as axioms
Literal relation between modulus multiplication and the supported correction. This is the missing interface at 06-feedback:86--196, not an assumed theorem. Noncommutative coefficient matrices remain ordered J_i G_j.
- def
OAI.ExactFourier.Boundary.quotientLinearline 10 - theorem
OAI.ExactFourier.Boundary.quotientLinear_applyline 26 - theorem
OAI.ExactFourier.Boundary.prefix_quotient_zeroline 30Source documentation
Inputs strictly before the final d times do not cross the coefficient boundary.
theorem prefix_quotient_zero (ℓ f : ℂ[X]) (hℓ : ℓ.Monic) {d t b : ℕ} (ht : ℓ.natDegree = t) (hf : f.natDegree ≤ d) (hb : b + d < t) : (f * X ^ b) /ₘ ℓ = 0 := by … - theorem
OAI.ExactFourier.Boundary.quotient_degree_ltline 42Source documentation
The quotient, with sign reversed, has strictly fewer than d coefficients.
theorem quotient_degree_lt (ℓ f : ℂ[X]) (hℓ : ℓ.Monic) {d t b : ℕ} (ht : ℓ.natDegree = t) (hd : 0 < d) (hf : f.natDegree ≤ d) (hb : b < t) : ((f * X ^ b) /ₘ ℓ).natDegree < d := by … - theorem
OAI.ExactFourier.Boundary.quotient_shift_expansionline 53Source documentation
Exact division of a shifted matrix entry. This keeps the generator coefficients on the left, ready for the ordered J_i*G_j matrix formula.
theorem quotient_shift_expansion (ℓ f : ℂ[X]) (hℓ : ℓ.Monic) {d : ℕ} (hf : f.natDegree ≤ d) (b : ℕ) : (f * X ^ b) /ₘ ℓ = ∑ j ∈ Finset.range (d + 1), f.coeff j • ((X ^ (b + j) : ℂ[X]) /ₘ ℓ) := by … - theorem
OAI.ExactFourier.Boundary.boundary_differenceline 72Source documentation
Entrywise modulus reduction differs from time truncation by minus the modulus times precisely the quotient above. No bounds on coefficients are imposed.
theorem boundary_difference (ℓ f : ℂ[X]) (b : ℕ) : (f * X ^ b) %ₘ ℓ - f * X ^ b = -ℓ * ((f * X ^ b) /ₘ ℓ) := by … - def
OAI.ExactFourier.Boundary.timeMatrixline 77 - def
OAI.ExactFourier.Boundary.modulusMatrixline 81 - theorem
OAI.ExactFourier.Boundary.correction_prefix_zeroline 86Source documentation
The modulus correction has no columns at times b<t-d.
theorem correction_prefix_zero {ι : Type} {t d : ℕ} (G : Matrix ι ι ℂ[X]) (ℓ : ℂ[X]) (hℓ : ℓ.Monic) (ht : ℓ.natDegree = t) (hG : ∀ i j, (G i j).natDegree ≤ d) (a b : Fin t × ι) (hb : b.1.val < t - d) : (modulusMatrix t ℓ G - timeMatrix t G) a b = 0 := by …Mentions: OAI.ExactFourier.Boundary.modulusMatrix, OAI.ExactFourier.Boundary.timeMatrix
- def
OAI.ExactFourier.Boundary.orderedWeightline 98Source documentation
Scalar weights for the exact ordered generator formula. Prefix correction uses η=1. The suffix uses the first t coefficients of ℓ/u^k.
noncomputable def orderedWeight (η ℓ : ℂ[X]) (a b i j : ℕ) : ℂ := …
- theorem
OAI.ExactFourier.Boundary.polynomial_ordered_expansionline 101 - def
OAI.ExactFourier.Boundary.coefficientMatrixline 119 - def
OAI.ExactFourier.Boundary.weightedCorrectionline 124Source documentation
Polynomial correction for a single input time b, before taking its output coefficient. Matrix multiplication is in the original order J then G.
noncomputable def weightedCorrection {ι : Type} [Fintype ι] (η ℓ : ℂ[X]) (J G : Matrix ι ι ℂ[X]) (b : ℕ) : Matrix ι ι ℂ[X] := … - theorem
OAI.ExactFourier.Boundary.ordered_spanline 130Source documentation
Exact ordered-span part of the coefficient-boundary comparison. There is no commutation hypothesis on any pair of spatial coefficient matrices.
theorem ordered_span {ι : Type} [Fintype ι] (η ℓ : ℂ[X]) (hℓ : ℓ.Monic) (J G : Matrix ι ι ℂ[X]) {d e : ℕ} (hG : ∀ u v, (G u v).natDegree ≤ d) (hJ : ∀ u v, (J u v).natDegree ≤ e) (a b : ℕ) : coefficientMatrix (weightedCorrection η ℓ J G b) a = ∑ i ∈ Finset.range (e+1), ∑ j ∈ Finset.range (d+1), orderedWeight η ℓ a b i j • (coefficientMatrix J i * coefficientMatrix G j) := by …Mentions: OAI.ExactFourier.Boundary.coefficientMatrix, OAI.ExactFourier.Boundary.weightedCorrection, OAI.ExactFourier.Boundary.orderedWeight
- theorem
OAI.ExactFourier.Boundary.orderedWeight_prefixline 155Source documentation
Explicit prefix coefficient convention, including negative (a-i) indices.
theorem orderedWeight_prefix (ℓ : ℂ[X]) (a b i j : ℕ) : orderedWeight 1 ℓ a b i j = if i ≤ a then -((X ^ (b+j) : ℂ[X]) /ₘ ℓ).coeff (a-i) else 0 := by …Mentions: OAI.ExactFourier.Boundary.orderedWeight
- theorem
OAI.ExactFourier.Boundary.prefix_row_vanishesline 162Source documentation
The prefix correction J*v has no coefficients at times a>=e+d.
theorem prefix_row_vanishes {ι : Type} [Fintype ι] (ℓ : ℂ[X]) (hℓ : ℓ.Monic) (J G : Matrix ι ι ℂ[X]) {d e t a b : ℕ} (ht : ℓ.natDegree = t) (hd : 0 < d) (hG : ∀ u v, (G u v).natDegree ≤ d) (hJ : ∀ u v, (J u v).natDegree ≤ e) (hb : b < t) (ha : e+d ≤ a) : coefficientMatrix (weightedCorrection 1 ℓ J G b) a = 0 := by …Mentions: OAI.ExactFourier.Boundary.coefficientMatrix, OAI.ExactFourier.Boundary.weightedCorrection
- theorem
OAI.ExactFourier.Boundary.weightedCorrection_prefix_zeroline 183Source documentation
No weighted correction has an input column before the suffix.
theorem weightedCorrection_prefix_zero {ι : Type} [Fintype ι] (η ℓ : ℂ[X]) (hℓ : ℓ.Monic) (J G : Matrix ι ι ℂ[X]) {d t b : ℕ} (ht : ℓ.natDegree = t) (hG : ∀ u v, (G u v).natDegree ≤ d) (hb : b+d < t) : weightedCorrection η ℓ J G b = 0 := by … - def
OAI.ExactFourier.Boundary.activeCorrectionline 196Source documentation
The actual early--suffix formula after the scalar prefix conjugation.
noncomputable def activeCorrection {ι : Type} [Fintype ι] (t d : ℕ) (η ℓ : ℂ[X]) (J G : Matrix ι ι ℂ[X]) : Matrix (Fin t × ι) (Fin t × ι) ℂ := fun a b => … - def
OAI.ExactFourier.Boundary.ActiveTimeline 203 - instance
OAI.ExactFourier.Boundary.(instance at line 205)line 205 - theorem
OAI.ExactFourier.Boundary.activeCorrection_column_supportline 209 - theorem
OAI.ExactFourier.Boundary.activeCorrection_row_supportline 220 - theorem
OAI.ExactFourier.Boundary.supported_identity_decompositionline 236Source documentation
Simultaneous row/column permutation isolates every matrix correction supported on a single active index set, with an exact identity on its complement.
theorem supported_identity_decomposition {κ : Type} [DecidableEq κ] (S : κ → Prop) [DecidablePred S] (L : Matrix κ κ ℂ) (hrow : ∀ i j, ¬S i → L i j = 0) (hcol : ∀ i j, ¬S j → L i j = 0) : (1 + L).submatrix (Equiv.sumCompl S) (Equiv.sumCompl S) = Matrix.fromBlocks (1 + L.submatrix Subtype.val Subtype.val) (0 : Matrix {i // S i} {i // ¬S i} ℂ) 0 1 := by …Mentions: OAI.ExactFourier.L
- theorem
OAI.ExactFourier.Boundary.active_identity_decompositionline 252 - def
OAI.ExactFourier.Boundary.seriesMatrixline 284 - theorem
OAI.ExactFourier.Boundary.seriesMatrix_applyline 288 - theorem
OAI.ExactFourier.Boundary.timeMatrix_eq_truncline 291 - def
OAI.ExactFourier.Boundary.quotientColumnsline 298 - theorem
OAI.ExactFourier.Boundary.difference_eq_columnsline 303Source documentation
The exact remainder-minus-truncation map: minus the quotient times ℓ.
theorem difference_eq_columns {ι : Type} [Fintype ι] [DecidableEq ι] (t : ℕ) (ℓ : ℂ[X]) (G : Matrix ι ι ℂ[X]) : modulusMatrix t ℓ G - timeMatrix t G = coefficientColumns t ((ℓ : PowerSeries ℂ) • quotientColumns t ℓ G) := by …Mentions: OAI.ExactFourier.Boundary.modulusMatrix, OAI.ExactFourier.Boundary.timeMatrix, OAI.ExactFourier.Boundary.quotientColumns
- theorem
OAI.ExactFourier.Boundary.timeMatrix_inverseline 319Source documentation
The polynomial adjugate/denominator identity gives the TRUE inverse, before any support reduction. This is not an inverse evaluation assumption.
theorem timeMatrix_inverse {ι : Type} [Fintype ι] [DecidableEq ι] (t : ℕ) (u : ℂ[X]) (G J : Matrix ι ι ℂ[X]) (hu : u.coeff 0 ≠ 0) (hGJ : G * J = Matrix.scalar ι u) : (timeMatrix t G)⁻¹ = blockTruncHom t ((u : PowerSeries ℂ)⁻¹ • seriesMatrix J) := by …Mentions: OAI.ExactFourier.Boundary.timeMatrix, OAI.ExactFourier.Boundary.seriesMatrix
- theorem
OAI.ExactFourier.Boundary.inverse_mul_differenceline 339Source documentation
The relative correction is the coefficient map of (ℓ/u) J v, with the quotient sign included in v.
theorem inverse_mul_difference {ι : Type} [Fintype ι] [DecidableEq ι] (t : ℕ) (u ℓ : ℂ[X]) (G J : Matrix ι ι ℂ[X]) (hu : u.coeff 0 ≠ 0) (hGJ : G * J = Matrix.scalar ι u) : (timeMatrix t G)⁻¹ * (modulusMatrix t ℓ G - timeMatrix t G) = coefficientColumns t (((ℓ : PowerSeries ℂ) * (u : PowerSeries ℂ)⁻¹) • (seriesMatrix J * quotientColumns t ℓ G)) := by …Mentions: OAI.ExactFourier.Boundary.timeMatrix, OAI.ExactFourier.Boundary.modulusMatrix, OAI.ExactFourier.Boundary.seriesMatrix, OAI.ExactFourier.Boundary.quotientColumns
- theorem
OAI.ExactFourier.Boundary.prefix_scalar_cancelsline 351Source documentation
A prefix-only scalar convolution cancels the denominator on early rows, and literally leaves the late rows unchanged.
theorem prefix_scalar_cancels {ι κ : Type} [Fintype ι] [DecidableEq ι] (t T : ℕ) (f η : PowerSeries ℂ) (hfη : f*η=1) (V : Matrix ι κ (PowerSeries ℂ)) (a : Fin t × ι) (b : κ) : ((prefixScalar t T f ⊗ₖ (1 : Matrix ι ι ℂ)) * coefficientColumns t (η • V)) a b = if a.1.val < T then PowerSeries.coeff a.1.val (V a.2 b) else PowerSeries.coeff a.1.val (η * V a.2 b) := by … - theorem
OAI.ExactFourier.Boundary.coeff_trunc_mul_seriesline 368Source documentation
Coefficients below t cannot see the discarded tail of a scalar series.
theorem coeff_trunc_mul_series (t : ℕ) (η V : PowerSeries ℂ) (a : Fin t) : PowerSeries.coeff a.val (((PowerSeries.trunc t η : ℂ[X]) : PowerSeries ℂ) * V) = PowerSeries.coeff a.val (η*V) := by … - theorem
OAI.ExactFourier.Boundary.weightedCorrection_seriesline 381Source documentation
Converting the finite polynomial ordered generator formula to series changes neither matrix order nor the sign of the quotient.
theorem weightedCorrection_series {ι : Type} [Fintype ι] [DecidableEq ι] (t : ℕ) (η ℓ : ℂ[X]) (J G : Matrix ι ι ℂ[X]) (i : ι) (b : Fin t × ι) : (((weightedCorrection η ℓ J G b.1.val) i b.2 : ℂ[X]) : PowerSeries ℂ) = (η : PowerSeries ℂ) * (seriesMatrix J * quotientColumns t ℓ G) i b := by …Mentions: OAI.ExactFourier.Boundary.weightedCorrection, OAI.ExactFourier.Boundary.seriesMatrix, OAI.ExactFourier.Boundary.quotientColumns
- theorem
OAI.ExactFourier.Boundary.weightedCorrection_trunc_coeffline 391Source documentation
The finite polynomial η used in the ordered-span certificate is exactly the first t coefficients of ℓ/u; no truncation error survives in any output row.
theorem weightedCorrection_trunc_coeff {ι : Type} [Fintype ι] [DecidableEq ι] (t : ℕ) (η : PowerSeries ℂ) (ℓ : ℂ[X]) (J G : Matrix ι ι ℂ[X]) (a b : Fin t × ι) : (weightedCorrection (PowerSeries.trunc t η) ℓ J G b.1.val a.2 b.2).coeff a.1.val = PowerSeries.coeff a.1.val (η * (seriesMatrix J * quotientColumns t ℓ G) a.2 b) := by …Mentions: OAI.ExactFourier.Boundary.weightedCorrection, OAI.ExactFourier.Boundary.seriesMatrix, OAI.ExactFourier.Boundary.quotientColumns
- theorem
OAI.ExactFourier.Boundary.quotientColumns_prefix_zeroline 401Source documentation
Quotient columns vanish on the whole coefficient prefix, not merely on an assumed active direct summand.
theorem quotientColumns_prefix_zero {ι : Type} (t d : ℕ) (ℓ : ℂ[X]) (hℓ : ℓ.Monic) (ht : ℓ.natDegree=t) (G : Matrix ι ι ℂ[X]) (hG : ∀ i j, (G i j).natDegree ≤ d) (i : ι) (b : Fin t × ι) (hb : b.1.val < t-d) : quotientColumns t ℓ G i b = 0 := by … - theorem
OAI.ExactFourier.Boundary.inverse_difference_prefix_zeroline 410Source documentation
The actual relative map I+S is fixed on its right by every prefix map.
theorem inverse_difference_prefix_zero {ι : Type} [Fintype ι] [DecidableEq ι] (t d : ℕ) (u ℓ : ℂ[X]) (G J : Matrix ι ι ℂ[X]) (hu : u.coeff 0 ≠ 0) (hGJ : G*J=Matrix.scalar ι u) (hℓ : ℓ.Monic) (ht : ℓ.natDegree=t) (hG : ∀ i j, (G i j).natDegree ≤ d) (a b : Fin t × ι) (hb : b.1.val < t-d) : ((timeMatrix t G)⁻¹ * (modulusMatrix t ℓ G - timeMatrix t G)) a b = 0 := by …Mentions: OAI.ExactFourier.Boundary.timeMatrix, OAI.ExactFourier.Boundary.modulusMatrix
- theorem
OAI.ExactFourier.Boundary.prefix_mul_inverse_differenceline 423Source documentation
Premultiplication of the literal relative correction gives exactly the previously certified finite activeCorrection matrix.
theorem prefix_mul_inverse_difference {ι : Type} [Fintype ι] [DecidableEq ι] (t d : ℕ) (u ℓ : ℂ[X]) (G J : Matrix ι ι ℂ[X]) (hu : u.coeff 0 ≠ 0) (hℓ0 : ℓ.coeff 0 ≠ 0) (hGJ : G*J=Matrix.scalar ι u) : (prefixScalar t (t-d) ((u : PowerSeries ℂ) * (ℓ : PowerSeries ℂ)⁻¹) ⊗ₖ (1 : Matrix ι ι ℂ)) * ((timeMatrix t G)⁻¹ * (modulusMatrix t ℓ G - timeMatrix t G)) = activeCorrection t d (PowerSeries.trunc t ((ℓ : PowerSeries ℂ) * (u : PowerSeries ℂ)⁻¹)) ℓ J G := by …Mentions: OAI.ExactFourier.Boundary.timeMatrix, OAI.ExactFourier.Boundary.modulusMatrix, OAI.ExactFourier.Boundary.activeCorrection
- theorem
OAI.ExactFourier.Boundary.prefix_conjugated_relative_mapline 455