Exact Fourier circuits: polynomial clearing #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/FourierCircuit/PolynomialClearing.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
theorem
Complexity.ExactFourier.Boundary.time_power_clearing
{α : Type}
[Fintype α]
[DecidableEq α]
(G : Matrix α α (Polynomial ℂ))
(H : Matrix α α (PowerSeries ℂ))
(q : Polynomial ℂ)
(h : seriesMatrix G = ↑q • H)
(k t : ℕ)
:
timeMatrix t (TensorAxis.power G k) = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (CoefficientTime.truncMatrix t (↑q ^ k)) 1 * (CoefficientTime.blockTruncHom t) (TensorAxis.power H k)
theorem
Complexity.ExactFourier.Boundary.time_power_clearing_price
{α : Type}
[Fintype α]
[DecidableEq α]
(p : MatrixPrice)
(G : Matrix α α (Polynomial ℂ))
(H : Matrix α α (PowerSeries ℂ))
(q : Polynomial ℂ)
(h : seriesMatrix G = ↑q • H)
(hq : q.coeff 0 ≠ 0)
(hH : IsUnit (H.map ⇑PowerSeries.constantCoeff))
(k t : ℕ)
(ht : 0 < t)
:
p.value (timeMatrix t (TensorAxis.power G k)) ≤ p.value ((CoefficientTime.blockTruncHom t) (TensorAxis.power H k)) + ↑(Fintype.card α) ^ k * (627 / Real.log 2) * ↑t * Real.log (2 * ↑t)
The coefficient matrix of polynomial translation by the scalar s.
Equations
- Complexity.ExactFourier.Taylor.matrix t s a b = ((Polynomial.taylor s) (Polynomial.X ^ ↑b)).coeff ↑a
Instances For
theorem
Complexity.ExactFourier.Taylor.remainder_coeff
(t : ℕ)
(s : ℂ)
(f : Polynomial ℂ)
(i : Fin t)
:
((Polynomial.taylor s) (f %ₘ (Polynomial.X - Polynomial.C s) ^ t)).coeff ↑i = ((Polynomial.taylor s) f).coeff ↑i
noncomputable def
Complexity.ExactFourier.Taylor.translate
{α : Type}
(s : ℂ)
(G : Matrix α α (Polynomial ℂ))
:
Matrix α α (Polynomial ℂ)
Translate every polynomial entry of a matrix by the same scalar.
Equations
Instances For
theorem
Complexity.ExactFourier.Taylor.intertwine
{α : Type}
[Fintype α]
[DecidableEq α]
(t : ℕ)
(ht : 0 < t)
(s : ℂ)
(G : Matrix α α (Polynomial ℂ))
:
Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (matrix t s) 1 * Boundary.modulusMatrix t ((Polynomial.X - Polynomial.C s) ^ t) G = Boundary.timeMatrix t (translate s G) * Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (matrix t s) 1
The formal power series with coefficients s^j / j! used for translation.
Equations
- Complexity.ExactFourier.Taylor.kernel s = PowerSeries.mk fun (j : ℕ) => s ^ j / ↑j.factorial
Instances For
@[simp]
theorem
Complexity.ExactFourier.Taylor.diagonal_factorization
(t : ℕ)
(s : ℂ)
:
matrix t s = (Matrix.diagonal fun (i : Fin t) => (↑(↑i).factorial)⁻¹) * (CoefficientTime.truncMatrix t (kernel s)).transpose * Matrix.diagonal fun (j : Fin t) => ↑(↑j).factorial
theorem
Complexity.ExactFourier.Taylor.conjugacy
{α : Type}
[Fintype α]
[DecidableEq α]
(t : ℕ)
(ht : 0 < t)
(s : ℂ)
(G : Matrix α α (Polynomial ℂ))
:
have P := Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (matrix t s) 1;
P * Boundary.modulusMatrix t ((Polynomial.X - Polynomial.C s) ^ t) G * P⁻¹ = Boundary.timeMatrix t (translate s G)
theorem
Complexity.ExactFourier.Taylor.modulus_unit
{α : Type}
[Fintype α]
[DecidableEq α]
(t : ℕ)
(ht : 0 < t)
(s : ℂ)
(G : Matrix α α (Polynomial ℂ))
(hG : IsUnit (G.map (Polynomial.eval s)))
:
IsUnit (Boundary.modulusMatrix t ((Polynomial.X - Polynomial.C s) ^ t) G)
theorem
Complexity.ExactFourier.Taylor.modulus_lower
{α : Type}
[Fintype α]
[DecidableEq α]
(p : MatrixPrice)
(t : ℕ)
(ht : 0 < t)
(s : ℂ)
(G : Matrix α α (Polynomial ℂ))
(hG : IsUnit (G.map (Polynomial.eval s)))
:
↑t * p.value (G.map (Polynomial.eval s)) ≤ p.value (Boundary.modulusMatrix t ((Polynomial.X - Polynomial.C s) ^ t) G) + 2 * ↑(Fintype.card α) * (627 / Real.log 2) * ↑t * Real.log (2 * ↑t)
theorem
Complexity.ExactFourier.CellPoly.eval_Z
{β : Type}
[DecidableEq β]
(D : Matrix β β ℂ)
(s : ℂ)
:
@[simp]
theorem
Complexity.ExactFourier.CellPoly.eval_a
{β : Type}
[Fintype β]
[DecidableEq β]
(D : Matrix β β ℂ)
(s : ℂ)
:
theorem
Complexity.ExactFourier.CellPoly.eval_R
{β : Type}
[Fintype β]
[DecidableEq β]
(D : Matrix β β ℂ)
(s : ℂ)
:
theorem
Complexity.ExactFourier.MatrixPrice.feedback
{α β : Type}
[Fintype α]
[Fintype β]
[DecidableEq α]
[DecidableEq β]
(p : MatrixPrice)
(M : Matrix α α ℂ)
(C : Matrix α β ℂ)
(B : Matrix β α ℂ)
(D : Matrix β β ℂ)
(s : ℂ)
(hM : IsUnit M)
(hK : IsUnit (Matrix.fromBlocks M C B D))
(hD : IsUnit (1 - s • D))
(hH : IsUnit (CellPoly.feedback M C B D s))
: