Conjugation preserves the multiplicity of a zero #
BOTH of the symmetries whose composition ρ ↦ 1 - conj ρ makes the rescaled zeros
conjugation-invariant. The conjugation half is the cheap one: it follows from riemannZeta_conj
together with the fact that pre- and post-composing with conjugation does not change an analytic
order. The reflection half needs the functional equation, and needs the order to be transported
across ρ ↦ 1 - ρ, for which Mathlib has nothing ready-made.
The three private lemmas below are adapted, with thanks, from
AxiomMath/PrimeNumberTheoremAnd, PrimeNumberTheoremAnd/IEANTN/KadiriZeroCounting.lean, where
they support the same statement for that project's own order function.
Conjugation preserves the multiplicity of a zero.
The functional equation preserves multiplicity #
Mathlib has no form of this statement; what it supplies is riemannZeta_one_sub, the functional
equation in the form
zeta (1 - s) = functionalEqFactor s * zeta s.
Two things then have to be shown, and the second is the real work:
functionalEqFactoris analytic and NON-VANISHING on the strip.Gammais non-zero where the real part is positive, thecpowfactor is anexp, andcos (pi s / 2)vanishes only at odd integers -- none of which have real part strictly between0and1.- The order has to move ACROSS the reflection, from
rhoto1 - rho. Mathlib has no lemma for that, soanalyticOrderAt_comp_const_subis proved here: the order ofw -> f (a - w)atzis the order offata - z. It is stated for a generalfandabecause nothing in it is about zeta, and it is the piece worth reusing.
One direction of the transport of the vanishing order along w ↦ a - w.
Transport of the vanishing order along an affine reflection.
The factor in the functional equation #
The factor in ζ (1 - s) = functionalEqFactor s * ζ s, written with exp rather than cpow
so that its analyticity is visible.
Equations
- ZetaZeros.functionalEqFactor s = 2 * Complex.exp (Complex.log (2 * ↑Real.pi) * -s) * Complex.Gamma s * Complex.cos (↑Real.pi * s / 2)