The Boolean calculus of Dirichlet density #
For a number field K, Mathlib's NumberField.Set.HasDirichletDensity S δ says that
S.primeIdealZetaSum s / Set.univ.primeIdealZetaSum s → δ as s → 1⁺.
This file proves the elementary calculus of this predicate: uniqueness, the value 1 on all
primes, monotonicity, additivity on finite disjoint unions, complements, and two squeezes. The first
squeezes a set between two sets of the same density. The second is the finite-partition squeeze:
given a finite pairwise disjoint family whose union has δ as an upper density bound, lower
bounds on every member that already sum to δ leave no room, so each member's density is exactly
its bound. It also shows that one-sided density bounds move along inclusions of sets, which is
what makes the first squeeze work; the second rests instead on splitting the union's ratio exactly
and spending the summed lower bounds against it.
All of these are statements about the ratio for s close to 1 from the right, and on that
side both inputs they need are available: for 1 < s each partial sum is a genuine sum rather
than the tsum junk value (TauCeti.summable_absNorm_rpow_subtype_of_one_lt), and the all-prime
denominator is positive (NumberField.Set.primeIdealZetaSum_univ_pos_of_one_lt). In particular
nothing here uses the divergence of the all-prime sum at s = 1. That divergence is what makes a
finite set of primes have density zero; the finite-error statements that use it are in
TauCeti.NumberTheory.ArithmeticDirichletSeries.DirichletDensity.Negligible.
Main results #
NumberField.Set.hasDirichletDensity_univ: all primes have Dirichlet density1.NumberField.Set.HasDirichletDensity.mono: inclusion of prime sets orders their densities.NumberField.Set.HasDirichletDensity.unionandNumberField.Set.hasDirichletDensity_biUnion_finset: Dirichlet density is additive on finite disjoint unions.NumberField.Set.HasDirichletDensity.compl: the complement of a set of densityδhas density1 - δ.NumberField.Set.IsLowerDirichletDensityBound.mono_setandNumberField.Set.IsUpperDirichletDensityBound.mono_set: lower bounds pass to supersets and upper bounds to subsets.NumberField.Set.hasDirichletDensity_of_subset_of_subset: a set squeezed between two sets of densityδhas densityδ.NumberField.Set.isUpperDirichletDensityBound_of_forall_isLowerDirichletDensityBound: in a finite disjoint family whose union hasδas an upper density bound, lower bounds summing toδbound each member from above as well.NumberField.Set.hasDirichletDensity_of_squeeze: hence each such member has density exactly its lower bound.
References #
- The declarations and proof structure are adapted from the
HasNaturalDensitycalculus inTauCeti.NumberTheory.ArithmeticDirichletSeries.NaturalDensity. - J.-P. Serre, A Course in Arithmetic, Chapter VI, §4.1.
- J. Neukirch, Algebraic Number Theory, Chapter VII, §13.
- The finite-partition squeeze is adapted from C. Birkbeck,
AINTLIB at commit
db14b34cc5e3d79603e67c205dfa86b7b989000c(Apache-2.0),projects/Chebotarev/CebotarevDensity/Abelian.lean, whosetendsto_inv_card_of_liminf_ge_of_sum_tendsto_oneandratioSum_frobeniusFibres_tendsto_oneare the corresponding steps: the member-sum identity divided by the all-prime sum, and the#s * εbudget that turns the other members' lower bounds into this one's upper bound.
A set of prime ideals has at most one Dirichlet density.
The set of all prime ideals has Dirichlet density one.
The Dirichlet density of the set of all prime ideals is one.
Inclusion of prime sets orders their Dirichlet densities, when both densities exist.
Dirichlet density is additive on a finite family of pairwise disjoint prime sets.
Dirichlet density is additive on disjoint unions of prime sets.
The complement of a set of Dirichlet density δ has Dirichlet density 1 - δ.
Lower Dirichlet-density bounds pass to supersets.
Upper Dirichlet-density bounds pass to subsets.
Squeeze. A set of primes lying between two sets of Dirichlet density δ has Dirichlet
density δ.
Lower bounds on the other members bound this one from above. A finite pairwise disjoint
family splits the union's ratio exactly, so one member's ratio is what the others leave behind; if
the lower bounds d already sum to δ, and δ bounds the union from above, what they leave
behind is d i₀.
Only an upper bound on the union is needed, which is what the proof consumes; a caller holding the
full density passes .isUpperDirichletDensityBound.
A lower bound on every member of a finite disjoint family is exact once the bounds saturate the union's upper bound.
Distinct from hasDirichletDensity_of_subset_of_subset, which squeezes a single set between two
sets of the same density. Here nothing is sandwiched: the upper bound on one member is
manufactured from the other members' lower bounds, because the total is pinned. This is how a
one-sided estimate becomes a density — an argument that exhibits enough primes in each class, and
cannot see that there are no more, still determines every class exactly.