InformationTheory.Asymptotic
Asymptotic / exponent framework #
The exponent-equality relation \doteq of Cover–Thomas and a closed-form rate-extraction
wrapper, forming the asymptotic / rate API layer.
Notation #
a ≐ b(DotEq a b):(Real.log ∘ a − Real.log ∘ b) =o[atTop] (·:ℝ).- The textbook
f(n) = o(n)isf =o[atTop] (fun n : ℕ => (n : ℝ)). - The textbook
f(n) = o(1)isf =o[atTop] (fun _ => (1 : ℝ)).
Main definitions #
DotEq— exponent equality, defined directly as anIsLittleO.
Main statements #
dotEq_iff_tendsto_log_div— the bridge to(1/n) · log (a/b) → 0under positivity.exp_decay_N_of_pos— a closed-form block length forexp(-n·g) < ε'.
Implementation notes #
DotEqisℝ-valued; noℝ≥0∞alias is published here.- The notation
≐isscoped[InformationTheory.Asymptotic], so only call sites thatopen InformationTheory.Asymptoticsee it. - Positivity is not built into the predicate (Mathlib's
Real.logreturns0forx ≤ 0, soDotEqis well-defined for anyℕ → ℝ); it is required at the bridge /mul/invuse sites instead.
InformationTheory.Asymptotic.DotEq
sourceExponent equality (the textbook \doteq): a ≐ b when
Real.log (a n) − Real.log (b n) = o(n) along atTop.
Under positivity 0 < a n ∧ 0 < b n this is equivalent to
(1/n) · log (a n / b n) → 0 (dotEq_iff_tendsto_log_div). Positivity is required at
the use site rather than in the predicate.
Equations
- InformationTheory.Asymptotic.DotEq a b = (fun (n : ℕ) => Real.log (a n) - Real.log (b n)) =o[Filter.atTop] fun (n : ℕ) => ↑n
Instances For
Used by
InformationTheory.Asymptotic.«term_≐_»
sourceExponent equality (the textbook \doteq): a ≐ b when
Real.log (a n) − Real.log (b n) = o(n) along atTop.
Under positivity 0 < a n ∧ 0 < b n this is equivalent to
(1/n) · log (a n / b n) → 0 (dotEq_iff_tendsto_log_div). Positivity is required at
the use site rather than in the predicate.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Used by
InformationTheory.Asymptotic.DotEq.refl
sourceUsed by
InformationTheory.Asymptotic.DotEq.symm
sourceDotEq is symmetric: swap a / b and negate the inside.
Used by
InformationTheory.Asymptotic.DotEq.trans
sourceDotEq is transitive: (log a - log b) + (log b - log c) = (log a - log c).
Used by
InformationTheory.Asymptotic.DotEq.mul
sourceMultiplicative compatibility: a₁ * a₂ ≐ b₁ * b₂ if a_i ≐ b_i (under positivity).
Proof: log(a₁·a₂) - log(b₁·b₂) = (log a₁ - log b₁) + (log a₂ - log b₂) via Real.log_mul.
Used by
InformationTheory.Asymptotic.DotEq.inv
sourceInverse compatibility: (a n)⁻¹ ≐ (b n)⁻¹ if a ≐ b.
Proof: log a⁻¹ - log b⁻¹ = -(log a - log b) via Real.log_inv (unconditional in Mathlib).
Used by
InformationTheory.Asymptotic.dotEq_iff_tendsto_log_div
sourceBridge: under positivity, a ≐ b is equivalent to
Tendsto (fun n => (1/n) * log (a n / b n)) atTop (𝓝 0).
Used by
InformationTheory.Asymptotic.exp_decay_N_of_pos
sourceClosed-form block length for exp(-n·g) < ε' (rate-extraction wrapper).
For g, ε' > 0, the witness N := ⌈max 0 (-Real.log ε' / g)⌉ + 1 works.