InformationTheory.Shannon.LZ78.ConverseAsymptotic
LZ78 converse — asymptotic body extension #
This file publishes the asymptotic-body layer on top of the
combinatorial ZivCountingBound predicate already published in
InformationTheory/Shannon/LZ78/ZivInequality.lean. It is a predicate-level
extension: the per-n real-valued bound (p.count : ℝ) ≤ B is lifted
to families (p : ℕ → LZ78Parsing α) indexed by the block length, and
the asymptotic shape c(n) · log c(n) ≤ n · log b + O(1) (Cover–Thomas,
the Ziv-counting asymptotic) is exposed as a hypothesis
pass-through IsLZ78PhraseCountAsymptotic that future discharges can
plug in. The genuine a.s. achievability residual is scoped out as
lz78Greedy_achievability_ae in AsymptoticOptimality.lean.
Scope #
- (engaged) —
IsLZ78PhraseCountAsymptoticpredicate shaped onAsymptotics.IsBigO atTop, plus a.trivialconstructor. - (engaged) —
IsZivCountingAsymptoticBoundper-nbound aggregator with.refl,.mono,.add_nonneg, and.of_pointwise_countconstructors. - (engaged) — bridge theorems showing how a uniform
per-
nZiv counting bound implies the asymptotic predicate. - (deferred) — the concrete derivation of
c(n) ≤ n / log_b n · (1 + o(1))from Cover–Thomas is supplied as hypothesis; the numerical asymptoticc(n) · log c(n) − n · log b = o(n)is the Cover–Thomas body and remains out of scope here.
Pattern source #
Follows the same "predicate + .trivial + bridge" pattern as
ZivInequality.lean. The asymptotic
layer is wrapped in Asymptotics.IsBigO notation so downstream callers can
plug Mathlib.Analysis.Asymptotics lemmas directly without re-shaping.
§1. IsZivCountingAsymptoticBound per-n predicate #
InformationTheory.Shannon.IsZivCountingAsymptoticBound
sourceThe per-n Ziv counting asymptotic-bound predicate.
For a family of parsings p : ℕ → LZ78Parsing α indexed by block
length, this predicate asserts a uniform per-n real-valued upper
bound on ((p n).count : ℝ) by B n. The bound function B : ℕ → ℝ
plays the role of the Cover–Thomas asymptotic envelope
n / log_b n · (1 + o(1)); concrete witnesses come from
card_phraseSet_le_pow-style combinatorial counts.
Equations
- InformationTheory.Shannon.IsZivCountingAsymptoticBound p B = ∀ (n : ℕ), ↑(p n).count ≤ B n
Instances For
Used by
InformationTheory.Shannon.IsZivCountingAsymptoticBound.refl
sourceUsed by
InformationTheory.Shannon.IsZivCountingAsymptoticBound.mono
sourceMonotonicity in the bound function.
Used by
InformationTheory.Shannon.IsZivCountingAsymptoticBound.add_nonneg
sourceIf B bounds count, so does B + ε for any
non-negative slack ε.
Used by
InformationTheory.Shannon.IsZivCountingAsymptoticBound.of_pointwise_count
sourceLift a pointwise ZivCountingBound to the asymptotic family:
if for every n the per-n parsing p n satisfies
ZivCountingBound (p n) (B n), then the asymptotic predicate holds.
Used by
§2. IsLZ78PhraseCountAsymptotic predicate #
InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic
sourceThe asymptotic phrase-count predicate.
For a family of LZ78 parsings p : ℕ → LZ78Parsing α and a reference
envelope function B : ℕ → ℝ (in the textbook this is
n ↦ n / Real.log n or similar), this predicate asserts that the
phrase-count sequence n ↦ ((p n).count : ℝ) is O[atTop] of B.
Cover–Thomas reads
c(n) ≤ n / log_b(c(n)) ≤ n / log_b n · (1 + o(1)),
and this predicate captures exactly the IsBigO half: the
(1 + o(1)) slack is absorbed into the constant of IsBigO.
Equations
- InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic p B = (fun (n : ℕ) => ↑(p n).count) =O[Filter.atTop] B
Instances For
Used by
InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic.refl
sourceA sequence is trivially O[atTop] of
itself.
Used by
InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic.of_eventual_le
sourceTrivial constructor from a global numeric upper bound (in
particular: a uniform (p n).count ≤ B n with B n ≥ 0).
Used by
§3. Pure asymptotic algebra layer #
§5. Trivial-n-envelope bridges #
InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic.linear_of_count_le_n
sourceThe linear envelope from a uniform count ≤ n bound. Under the
trivial parsing-invariant constraint (p n).count ≤ n (which holds for
any LZ78 parsing of a length-n input), the phrase-count sequence is
O[atTop] (fun n => (n : ℝ)).
Used by
InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic.of_ZivCountingBound
sourceIf for every n the per-n Ziv counting bound holds with a real envelope
B n, and B is eventually non-negative, then the asymptotic predicate holds.
This is the ergonomic entry point when the upstream caller already has the
per-n ZivCountingBound lemma.
Used by
InformationTheory.Shannon.natCast_div_real_log_eventually_nonneg
sourceThe n / Real.log n envelope is eventually non-negative.
Cover–Thomas envelope sanity.
Used by
InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic.of_n_div_log
sourceThe asymptotic phrase-count predicate from a n / Real.log n bound.
The textbook-form constructor: given a per-n bound
(p n).count ≤ n / Real.log n + slack, with the slack itself bounded
above by n / Real.log n asymptotically, conclude
IsLZ78PhraseCountAsymptotic p (fun n => (n : ℝ) / Real.log n).
Used by
§7. Main result — phrase-count asymptotic upper bound #
InformationTheory.Shannon.lz78_phrase_count_asymptotic
sourceLZ78 phrase-count asymptotic upper bound, in hypothesis pass-through form.
For any family of LZ78 parsings p : ℕ → LZ78Parsing α and any
real-valued envelope B : ℕ → ℝ, if the per-n Ziv counting bound
(p n).count ≤ B n holds and B is eventually non-negative, then the
asymptotic predicate IsLZ78PhraseCountAsymptotic p B holds.
This is the predicate-level statement of Cover–Thomas,
shaped so that downstream callers can supply any concrete envelope
function (e.g. n / log_b n, n / log n, n) without changing the
external signature. The substantive arithmetic
c(n) · log c(n) ≤ n · log b + O(1) (Cover–Thomas
asymptotic body) remains out of scope here, but is encapsulated inside
B n and so does not surface in this signature.
Pattern: the same hypothesis pass-through style as
relay_cutset_outer_bound.
Used by
InformationTheory.Shannon.lz78_phrase_count_asymptotic_n_div_log
sourceSpecialized to the n / Real.log n envelope (Cover–Thomas).
Used by
InformationTheory.Shannon.lz78_phrase_count_asymptotic_linear
sourceSpecialized to the linear n envelope (the trivial bound).
Used by
§8. Two-sided / sandwich-form combine #
InformationTheory.Shannon.IsLZ78PhraseCountSandwich
sourceCombine an upper-bound predicate
IsLZ78PhraseCountAsymptotic p B_upper and a lower-bound predicate
B_lower =O[atTop] (p.count) (i.e. the phrase count dominates
B_lower) into a sandwich. This is the predicate-level analogue of the
Cover–Thomas ⟺ sandwich.
Equations
- InformationTheory.Shannon.IsLZ78PhraseCountSandwich p B_lower B_upper = (InformationTheory.Shannon.IsLZ78PhraseCountAsymptotic p B_upper ∧ B_lower =O[Filter.atTop] fun (n : ℕ) => ↑(p n).count)
Instances For
Used by
InformationTheory.Shannon.isLZ78PhraseCountSandwich_def
sourceUsed by
InformationTheory.Shannon.IsLZ78PhraseCountSandwich.refl
sourceAny parsing family sandwiches its own count.
Used by
InformationTheory.Shannon.IsLZ78PhraseCountSandwich.upper
sourceSandwich destructor: upper bound.
Used by
InformationTheory.Shannon.IsLZ78PhraseCountSandwich.lower
sourceSandwich destructor: lower bound.
Used by
InformationTheory.Shannon.IsLZ78PhraseCountSandwich.mk
sourceSandwich constructor from two asymptotic ingredients.