Special Functions
Results named in Tau Ceti's TauCeti.Analysis.SpecialFunctions modules and in no roadmap's section, as Tau Ceti has them at commit ace60277.
TheoremThe addition theorem for cn (DLMF 22.8.2)#
cn(u + v) = (cn u · cn v - sn u · dn u · sn v · dn v) / (1 - k² sn²(u) sn²(v)).
TauCeti.Real.jacobiCn_add {k : ℝ} (hk : k ^ 2 < 1) (u v : ℝ) :
TauCeti.Real.jacobiCn k (u + v) =
(TauCeti.Real.jacobiCn k u * TauCeti.Real.jacobiCn k v -
TauCeti.Real.jacobiSn k u * TauCeti.Real.jacobiDn k u * TauCeti.Real.jacobiSn k v *
TauCeti.Real.jacobiDn k v) /
(1 - k ^ 2 * TauCeti.Real.jacobiSn k u ^ 2 * TauCeti.Real.jacobiSn k v ^ 2)
TheoremThe addition theorem for dn (DLMF 22.8.3)#
dn(u + v) = (dn u · dn v - k² · sn u · cn u · sn v · cn v) / (1 - k² sn²(u) sn²(v)).
TauCeti.Real.jacobiDn_add {k : ℝ} (hk : k ^ 2 < 1) (u v : ℝ) :
TauCeti.Real.jacobiDn k (u + v) =
(TauCeti.Real.jacobiDn k u * TauCeti.Real.jacobiDn k v -
k ^ 2 * TauCeti.Real.jacobiSn k u * TauCeti.Real.jacobiCn k u * TauCeti.Real.jacobiSn k v *
TauCeti.Real.jacobiCn k v) /
(1 - k ^ 2 * TauCeti.Real.jacobiSn k u ^ 2 * TauCeti.Real.jacobiSn k v ^ 2)
TheoremThe addition theorem for sn (DLMF 22.8.1)#
sn(u + v) = (sn u · cn v · dn v + sn v · cn u · dn u) / (1 - k² sn²(u) sn²(v)).
TauCeti.Real.jacobiSn_add {k : ℝ} (hk : k ^ 2 < 1) (u v : ℝ) :
TauCeti.Real.jacobiSn k (u + v) =
(TauCeti.Real.jacobiSn k u * TauCeti.Real.jacobiCn k v * TauCeti.Real.jacobiDn k v +
TauCeti.Real.jacobiSn k v * TauCeti.Real.jacobiCn k u * TauCeti.Real.jacobiDn k u) /
(1 - k ^ 2 * TauCeti.Real.jacobiSn k u ^ 2 * TauCeti.Real.jacobiSn k v ^ 2)
TheoremThe addition theorem for ℘'#
If z, w ∉ Λ and ℘(z) ≠ ℘(w), then
℘'(z + w) = -m (℘(z + w) - ℘(z)) - ℘'(z) with m = (℘'(z) - ℘'(w)) / (℘(z) - ℘(w)): the points
(℘(z), ℘'(z)), (℘(w), ℘'(w)) and (℘(z + w), -℘'(z + w)) lie on a line of slope m.
PeriodPair.derivWeierstrassP_add (L : PeriodPair) {z w : ℂ} (hz : z ∉ L.lattice)
(hw : w ∉ L.lattice) (h : L.weierstrassP z ≠ L.weierstrassP w) :
L.derivWeierstrassP (z + w) =
-((L.derivWeierstrassP z - L.derivWeierstrassP w) / (L.weierstrassP z - L.weierstrassP w)) *
(L.weierstrassP (z + w) - L.weierstrassP z) -
L.derivWeierstrassP z
Uses 1
℘
TheoremThe addition theorem for ℘#
If z, w ∉ Λ and ℘(z) ≠ ℘(w), then
℘(z + w) = ((℘'(z) - ℘'(w)) / (℘(z) - ℘(w)))² / 4 - ℘(z) - ℘(w).
PeriodPair.weierstrassP_add (L : PeriodPair) {z w : ℂ} (hz : z ∉ L.lattice) (hw : w ∉ L.lattice)
(h : L.weierstrassP z ≠ L.weierstrassP w) :
L.weierstrassP (z + w) =
((L.derivWeierstrassP z - L.derivWeierstrassP w) / (L.weierstrassP z - L.weierstrassP w)) ^ 2 /
4 -
L.weierstrassP z -
L.weierstrassP w
Used by 1
℘'TheoremBernstein's exponential bound#
If x ≤ c with 0 ≤ c < 3, then
exp x ≤ 1 + x + x ^ 2 / (2 * (1 - c / 3)). Only an upper bound on x is needed: negative x
are covered by Real.exp_le_one_add_add_sq_div_two_of_nonpos.
Real.exp_le_one_add_add_sq_div_of_le {x c : ℝ} (hxc : x ≤ c) (hc0 : 0 ≤ c) (hc3 : c < 3) :
Real.exp x ≤ 1 + x + x ^ 2 / (2 * (1 - c / 3))
Used by 1
TheoremThe duplication theorem for R_F (DLMF 19.26.18) at nonnegative real arguments#
for real
x, y, z ≥ 0, with λ = √x √y + √y √z + √z √x,
R_F(x, y, z) = R_F((x + λ)/4, (y + λ)/4, (z + λ)/4).
No hypothesis beyond nonnegativity is needed. When two of x, y, z vanish, the defining integrals
on both sides diverge and the identity is between the totalized values 0.
Complex.carlsonRF_ofReal_duplication {x y z : ℝ} (hx : 0 ≤ x) (hy : 0 ≤ y) (hz : 0 ≤ z) :
have l := √x * √y + √y * √z + √z * √x;
(↑x).carlsonRF ↑y ↑z = (↑((x + l) / 4)).carlsonRF ↑((y + l) / 4) ↑((z + l) / 4)
TheoremEuler's limit formula in ratio form#
For every real s, Γ(n + 1 + s) is asymptotic to
n ^ s * n! as the natural number n tends to infinity.
Real.isEquivalent_Gamma_natCast_add_one_add (s : ℝ) :
Asymptotics.IsEquivalent Filter.atTop (fun n => Real.Gamma (↑n + 1 + s)) fun n =>
↑n ^ s * ↑n.factorial
TheoremFatou's lemma on circles#
If log⁺ ‖f‖⁻¹ is integrable on the circles about c of
radii ρ n, and its circle averages there are at most B, then the angles in one period along
which f (circleMap c (ρ n) θ) tends to 0 through nonzero values form a null set.
TauCeti.volume_setOf_tendsto_circleMap_nhdsNE_zero {f : ℂ → ℂ} {c : ℂ} {ρ : ℕ → ℝ} {B : ℝ}
(hf : ∀ (n : ℕ), CircleIntegrable (fun z => ‖f z‖⁻¹.posLog) c (ρ n))
(hB : ∀ (n : ℕ), Real.circleAverage (fun z => ‖f z‖⁻¹.posLog) c (ρ n) ≤ B) :
MeasureTheory.volume
{θ |
θ ∈ Set.Ioc 0 (2 * Real.pi) ∧
Filter.Tendsto (fun n => f (circleMap c (ρ n) θ)) Filter.atTop (nhdsWithin 0 {0}ᶜ)} =
0
Lean
Formalized in Tau Ceti as TauCeti.volume_setOf_tendsto_circleMap_nhdsNE_zero.
Sources
Used by 1
TheoremGauss's identity#
the lemniscate constant is ϖ = π / M(1, √2), where M is the
arithmetic-geometric mean NNReal.agm.
TauCeti.Real.lemniscateConstant_eq_pi_div_agm :
TauCeti.Real.lemniscateConstant = Real.pi / ↑(NNReal.agm 1 (NNReal.sqrt 2))
Uses 1
TheoremGauss's theorem#
for k ^ 2 < 1, the complete elliptic integral of the first kind is
K(k) = π / (2 M(1, k')), where M is the arithmetic-geometric mean and k' = √(1 - k²) is
the complementary modulus.
TauCeti.Real.legendreK_eq_pi_div_two_mul_agm {k : ℝ} (hk : k ^ 2 < 1) :
TauCeti.Real.legendreK k = Real.pi / (2 * ↑(NNReal.agm 1 (√(1 - k ^ 2)).toNNReal))
Used by 2
TheoremThe Gauss–Brent–Salamin formula#
with the AGM iteration a₀ = 1, g₀ = 1 / √2 and
cⱼ² = aⱼ² - gⱼ², π = 4 M(1, 1/√2)² / (1 - ∑_{j ≥ 1} 2^(j+1) cⱼ²). Mathlib's
agmSequences 1 (√2)⁻¹ n is the pair (gₙ₊₁, aₙ₊₁), so the series index is n = j - 1.
TauCeti.Real.pi_eq_four_mul_agm_sq_div_one_sub_tsum :
Real.pi =
4 * ↑(NNReal.agm 1 (NNReal.sqrt 2)⁻¹) ^ 2 /
(1 -
∑' (n : ℕ),
2 ^ (n + 2) *
(↑(NNReal.agmSequences 1 (NNReal.sqrt 2)⁻¹ n).2 ^ 2 -
↑(NNReal.agmSequences 1 (NNReal.sqrt 2)⁻¹ n).1 ^ 2))
Lean
Formalized in Tau Ceti as TauCeti.Real.pi_eq_four_mul_agm_sq_div_one_sub_tsum.
Sources
Uses 1
TheoremJordan's integral bound#
For c > 0, ∫₀^π e^{-c sin θ} dθ < π / c.
TauCeti.integral_exp_neg_mul_sin_lt (c : ℝ) (hc : 0 < c) :
∫ (θ : ℝ) in 0..Real.pi, Real.exp (-c * Real.sin θ) < Real.pi / c
Used by 1
TheoremPeetre's inequality (TauCeti.one_add_norm_add_sq_rpow_le_mul)#
For every real s, the Japanese bracket ⟨x⟩ = (1 + ‖x‖ ^ 2) ^ (1/2)
satisfies ⟨x + y⟩ ^ s ≤ 2 ^ (|s| / 2) ⟨x⟩ ^ s ⟨y⟩ ^ |s|.
TauCeti.one_add_norm_add_sq_rpow_le_mul.{u_1} {E : Type u_1} [SeminormedAddGroup E] (s : ℝ)
(x y : E) :
(1 + ‖x + y‖ ^ 2) ^ (s / 2) ≤ 2 ^ (|s| / 2) * (1 + ‖x‖ ^ 2) ^ (s / 2) * (1 + ‖y‖ ^ 2) ^ (|s| / 2)
Lean
Formalized in Tau Ceti as TauCeti.one_add_norm_add_sq_rpow_le_mul.
Other forms
Peetre's inequality. Formalized in Tau Ceti as TauCeti.one_add_norm_sq_rpow_le_mul_sub.
TauCeti.one_add_norm_sq_rpow_le_mul_sub.{u_1} {E : Type u_1} [SeminormedAddCommGroup E] (s : ℝ)
(x y : E) :
(1 + ‖x‖ ^ 2) ^ (s / 2) ≤ 2 ^ (|s| / 2) * (1 + ‖x - y‖ ^ 2) ^ (|s| / 2) * (1 + ‖y‖ ^ 2) ^ (s / 2)
Peetre's inequality, subadditive form. Formalized in Tau Ceti as TauCeti.one_add_norm_add_sq_rpow_le.
TauCeti.one_add_norm_add_sq_rpow_le.{u_1} {E : Type u_1} [SeminormedAddGroup E] {s : ℝ} (hs : 0 ≤ s)
(x y : E) :
(1 + ‖x + y‖ ^ 2) ^ (s / 2) ≤ 2 ^ s * ((1 + ‖x‖ ^ 2) ^ (s / 2) + (1 + ‖y‖ ^ 2) ^ (s / 2))
Sources
TheoremSalamin's formula for complementary moduli#
if x, y > 0 and x² + y² = 1, then
π = 4 M(1, x) M(1, y) / (1 - ∑ₙ 2ⁿ⁺¹ (cₙ₊₁(x)² + cₙ₊₁(y)²)), where M is the AGM and
cₙ₊₁(x)² = aₙ₊₁² - gₙ₊₁² is the squared correction of the AGM iteration started at (1, x).
Mathlib's agmSequences 1 x n is the pair (gₙ₊₁, aₙ₊₁).
TauCeti.Real.pi_eq_four_mul_agm_mul_agm_div_one_sub_tsum {x y : NNReal} (hx : 0 < x) (hy : 0 < y)
(hxy : x ^ 2 + y ^ 2 = 1) :
Real.pi =
4 * ↑(NNReal.agm 1 x) * ↑(NNReal.agm 1 y) /
(1 -
∑' (n : ℕ),
2 ^ (n + 1) *
(↑(NNReal.agmSequences 1 x n).2 ^ 2 - ↑(NNReal.agmSequences 1 x n).1 ^ 2 +
(↑(NNReal.agmSequences 1 y n).2 ^ 2 - ↑(NNReal.agmSequences 1 y n).1 ^ 2)))
Lean
Formalized in Tau Ceti as TauCeti.Real.pi_eq_four_mul_agm_mul_agm_div_one_sub_tsum.
Sources
Uses 1 · Used by 1
TheoremThe scalar Bellman majorization estimate#
For 2 ≤ p and x, y ≥ 0,
((p - 1) ^ (p - 1) / p ^ (p - 2)) Φ_p(x, y) ≤ (p - 1) ^ p x ^ p - y ^ p.
TauCeti.mul_burkholderPhi_le {p : ℝ} (hp : 2 ≤ p) {x y : ℝ} (hx : 0 ≤ x) (hy : 0 ≤ y) :
(p - 1) ^ (p - 1) / p ^ (p - 2) * TauCeti.burkholderPhi p x y ≤ (p - 1) ^ p * x ^ p - y ^ p
TheoremThe scalar Bellman midpoint estimate#
For 2 ≤ p, real x, y, a and ε with
|ε| = 1, 2 Φ_p(|x|, |y|) ≤ Φ_p(|x + a|, |y + ε a|) + Φ_p(|x - a|, |y - ε a|).
TauCeti.two_mul_burkholderPhi_abs_le {p : ℝ} (hp : 2 ≤ p) (x y a : ℝ) {ε : ℝ} (hε : |ε| = 1) :
2 * TauCeti.burkholderPhi p |x| |y| ≤
TauCeti.burkholderPhi p |x + a| |y + ε * a| + TauCeti.burkholderPhi p |x - a| |y - ε * a|
TheoremThe uniformization theorem#
for all a, b ∈ ℂ with a³ - 27 b² ≠ 0 there is a lattice Λ
with g₂(Λ) = a and g₃(Λ) = b.
PeriodPair.exists_g₂_g₃_eq {a b : ℂ} (hab : a ^ 3 - 27 * b ^ 2 ≠ 0) : ∃ L, L.g₂ = a ∧ L.g₃ = b
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.