OAI/InformationTheory/QuantumCircuit/Polynomial.lean
30 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.QAC.weightline 12Source documentation
The coefficient norm required to pay for expanding powers of a count.
def weight (R : ℝ) (p : ℝ[X]) : ℝ := p.sum fun k c => |c| * R ^ k
- lemma
OAI.QAC.weight_nonnegline 14 - lemma
OAI.QAC.weight_zeroline 17 - lemma
OAI.QAC.weight_monomialline 18 - lemma
OAI.QAC.weight_Cline 20 - lemma
OAI.QAC.weight_oneline 21 - lemma
OAI.QAC.weight_Xline 23 - lemma
OAI.QAC.weight_add_leline 25 - lemma
OAI.QAC.weight_negline 38 - lemma
OAI.QAC.weight_sub_leline 41 - lemma
OAI.QAC.weight_sum_leline 45 - lemma
OAI.QAC.weight_mul_leline 54 - lemma
OAI.QAC.weight_prod_leline 73 - lemma
OAI.QAC.weight_chebyshevline 83 - lemma
OAI.QAC.chebyshev_abs_le_oneline 115 - lemma
OAI.QAC.chebyshev_denominatorline 121Source documentation
An elementary hyperbolic lower bound for the Chebyshev denominator.
lemma chebyshev_denominator (k : ℕ) {m r : ℝ} (hr : 0 < r) (hm : r < m) : 1 ≤ (Polynomial.Chebyshev.T ℝ k).eval ((m + r) / (m - r)) ∧ Real.exp ((k : ℝ) * Real.sqrt (r / m)) / 2 ≤ (Polynomial.Chebyshev.T ℝ k).eval ((m + r) / (m - r)) := by … - def
OAI.QAC.rootPolyline 162Source documentation
Exact roots at the first r positive integers.
def rootPoly (r : ℕ) : ℝ[X] := …
- lemma
OAI.QAC.rootPoly_eval_zeroline 165 - lemma
OAI.QAC.rootPoly_eval_natline 168 - lemma
OAI.QAC.rootPoly_weightline 178 - lemma
OAI.QAC.rootPoly_abs_evalline 196 - lemma
OAI.QAC.rootPoly_degreeline 213 - def
OAI.QAC.scalePolyline 225Source documentation
The affine map taking [r,m] onto [1,-1].
def scalePoly (r m : ℝ) : ℝ[X] := C ((m + r) / (m - r)) - C (2 / (m - r)) * X
- lemma
OAI.QAC.scalePoly_evalline 227 - lemma
OAI.QAC.scalePoly_zeroline 232 - lemma
OAI.QAC.scalePoly_intervalline 235 - lemma
OAI.QAC.scalePoly_degreeline 244 - lemma
OAI.QAC.scalePoly_weightline 249 - def
OAI.QAC.approxPolyline 266 - lemma
OAI.QAC.approxPoly_boundsline 271Source documentation
Finite degree, coefficient, normalization, and decay bounds for the approximating polynomial.
lemma approxPoly_bounds {r m k : ℕ} {R : ℝ} (hR : 0 ≤ R) (hr : 1 ≤ r) (hm : 2 * r ≤ m) (hk : 4 * (r : ℝ) * Real.log m ≤ (k : ℝ) * Real.sqrt ((r : ℝ) / m)) : (approxPoly r m k).natDegree ≤ r + k ∧ weight R (approxPoly r m k) ≤ (1 + R) ^ r * (7 + 4 * R) ^ k ∧ (approxPoly r m k).eval 0 = 1 ∧ ∀ x : ℕ, 1 ≤ x → x ≤ m → |(approxPoly r m k).eval (x : ℝ)| ≤ 2 * Real.exp (-(3 * (r : ℝ) * Real.log m)) := by …Mentions: OAI.QAC.approxPoly, OAI.QAC.weight