[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"bdQtPpkWsG":3},"# zeta-rigidity\n\nA Lean 4 / Mathlib formalization. Starting from an abstract set of primes carrying no numerical\ninformation, requiring that a valuation's Dirichlet series agree with the Riemann zeta function\nforces that valuation to be the ordinary primes `2, 3, 5, 7, …`.\n\nComplete, with no `sorry`. Every theorem depends only on Lean's three standard axioms\n(`propext`, `Classical.choice`, `Quot.sound`).\n\n## The construction\n\nThere are three layers.\n\n1. **Abstract primes.** A list of symbols `p₀, p₁, p₂, …` with an order and nothing else: no\n   size, no arithmetic, no claim that they are numbers. The axioms are a least element, a\n   successor and an induction principle, which fix the order type to ω.\n2. **Formal products.** Finite products of those symbols, such as `p₀³ · p₂`, forming the free\n   commutative monoid. An element *is* its exponent vector, so multiplication is the primitive\n   operation and unique factorisation holds by definition rather than as a theorem.\n3. **A valuation.** A function `v` assigning each symbol `pᵢ` a real number `v i > 1`, increasing\n   in `i`, extended multiplicatively to every formal product. At this point `v` is unconstrained\n   apart from being increasing: the values need not be integers and are not tied to the primes.\n\n## The main theorem\n\n`ZetaRigidity/Rigidity.lean`:\n\n```lean\ntheorem eq_nth_prime_of_isZetaNormalized (h : IsZetaNormalized v) (i : ℕ) :\n    v i = (Nat.nth Nat.Prime i : ℝ)\n```\n\nThe hypothesis `IsZetaNormalized v` says the series `∑ₘ v(m)^(-s)` over all formal products\nconverges and equals `ζ(s)` for every integer `s = 2, 3, 4, …`. The conclusion is that `v i` is\nthe `i`-th ordinary prime, so `v 0 = 2`, `v 1 = 3`, `v 2 = 5`, and the formal products are\ncarried bijectively and multiplicatively onto the positive integers. No form of addition is\nassumed; the numerical scale comes entirely from the analytic identity.\n\nAgreement is required only at integer arguments, so `ζ(2), ζ(3), ζ(4), …` already determine the\nprimes. `eq_nth_prime_of_riemannZeta` in `ZetaRigidity/Zeta.lean` is the same statement phrased\nagainst Mathlib's `riemannZeta`.\n\nThe proof runs as follows. A Dirichlet series determines its exponents: as `s` grows the\nsmallest value dominates the sum, so letting `s → ∞` recovers that value and its multiplicity;\npeeling off dominant terms shows the two multisets of values agree, and a set of naturals has\nonly one increasing enumeration. Since the ζ side is built from `1, 2, 3, …`, the valuation side\nmust be too, and the irreducible elements on each side then correspond.\n\n## Why the hypothesis cannot be weakened\n\nEvery integer `≥ 2` is needed. `exists_not_isZetaNormalized_agreeing_at_two`\n(`ZetaRigidity/Sharpness.lean`) exhibits a valuation that reproduces `ζ(2)` exactly and is not\nthe primes: it sends the first prime to `√(45/13) ≈ 1.861` and the second to `4`, leaving\n`5, 7, 11, …` unchanged, so the two Euler factors both multiply to `3/2`.\n\nThe word \"rigidity\" is a contrast with the situation before the hypothesis is imposed.\n`autEquivPerm` (`ZetaRigidity/Automorphisms.lean`) proves\n\n```lean\nMulAut FormalProd ≃* Equiv.Perm ℕ\n```\n\nso every permutation of the abstract primes extends to an automorphism of the monoid, and every\nautomorphism arises this way. Multiplication alone therefore does not distinguish one prime from\nanother. The ζ-condition reduces this symmetry group to the trivial one.\n\nRestoring the indexing of the primes fixes part of the ordering but not all of it.\n`universallyLE_iff` (`ZetaRigidity/UniversalOrder.lean`) identifies exactly which comparisons\nhold in every valuation: `v.extend m ≤ v.extend n` for all `v` precisely when, for every `j`,\n`m` has at most as many prime factors of index `≥ j` as `n` does. This order lies strictly\nbetween divisibility and a total order. In particular `not_universallyLE_mul` shows `p₀ · p₁`\nand `p₂` are incomparable: the ordinary primes give `6 > 5`, while `stepVal 2 1`, which jumps at\nthe third prime, gives `e³ \u003C e⁴`. Both witnesses are in `ZetaRigidity/Examples.lean`. A total\norder has to come from outside, and the ζ-condition is what supplies it.\n\nTwo further limits are recorded. Nothing definable from the multiplicative structure alone can\nhelp: by `iff_atom_of_aut_invariant` and `rel_atom_iff_of_aut_invariant`\n(`ZetaRigidity/Automorphisms.lean`), any automorphism-invariant property or relation — a graph\non formal products, for instance — is unchanged by relabelling the primes. And strengthening\nthe order axioms is not enough either: `exists_locallyFinite_order_ne_primes` gives a locally\nfinite system, with monotone multiplication and increasing atoms, whose order still differs from\nthe primes'. Its atoms are `3, 5, 7, 11, …`, putting `p₀² = 9` above `p₂ = 7` where the ordinary\nprimes put `4` below `5`. What `ℤ_{>0}` has and these lack is that its values have no gaps,\nwhich is `isZetaNormalized_of_equiv` and so equivalent to the ζ-condition again.\n\n## Limitations\n\n**The hypothesis is equivalent to the conclusion.** `∑ₘ V(m)^(-s) = ζ(s)` holds if and only if\n`V` is a multiplicative bijection onto `ℤ_{>0}`; the converse is `isZetaNormalized_of_equiv` in\n`ZetaRigidity/Model.lean`. What the theorem establishes is that a Dirichlet series determines\nits exponents. What ζ contributes is the multiset `{1, 2, 3, …}`.\n\n**This is not a route to arithmetic without addition.** Once the magnitude order is available\nalongside multiplication, addition is definable. `add_definable`\n(`ZetaRigidity/Extensions/Addition.lean`) gives the formula: writing `S` for the order-defined\nsuccessor,\n\n```\nval R = val P + val Q   ↔   S (P·R) · S (Q·R) = S (S (P·Q) · R · R)\n```\n\nand the right-hand side uses only `*` and `S`. `twin_iff`\n(`ZetaRigidity/Extensions/Order.lean`) makes the same point concretely: the definition of twin\nprimes that avoids writing `+ 2` is provably equivalent to `val Q = val P + 2`.\n\n## Layout\n\nThe main line, in dependency order:\n\n| File | Contents |\n| --- | --- |\n| `ZetaRigidity/Primes.lean` | Prime axioms; `equivNat`. Formal products as the free commutative monoid; atoms, degree, irreducibility; the universal property `lift`/`hom_ext`. |\n| `ZetaRigidity/Valuation.lean` | `Valuation` and its multiplicative extension. |\n| `ZetaRigidity/DirichletUniqueness.lean` | Uniqueness for power sums: local finiteness, fibrewise assembly, the dominant-term limit `tendsto_tsum_pow`. |\n| `ZetaRigidity/Rigidity.lean` | `IsZetaNormalized` and the main theorem. |\n| `ZetaRigidity/Model.lean` | The intended model; the hypothesis is satisfiable. |\n| `ZetaRigidity/Zeta.lean` | The statement against Mathlib's `riemannZeta`. |\n| `ZetaRigidity/Sharpness.lean` | One zeta value does not suffice. |\n| `ZetaRigidity/Automorphisms.lean` | `autEquivPerm`. |\n| `ZetaRigidity/UniversalOrder.lean` | The order the construction fixes on its own: `universallyLE_iff`. |\n| `ZetaRigidity/Examples.lean` | Worked examples and regression tests. |\n\n`ZetaRigidity/Extensions/` holds separate developments that build on the same construction but\nare not used by the main theorem: the recovered order and twin primes (`Order.lean`),\ndefinability of addition (`Addition.lean`), the Euler product `ζ_P(s) = ∏ₚ (1 - p^(-s))⁻¹` for a\ngeneral valuation (`EulerProduct.lean`), the character group as an infinite torus\n(`Characters.lean`), and linear independence of `{log p}` over `ℚ` (`LogIndependence.lean`).\n\n### On the analytic core\n\nUniqueness for generalized Dirichlet series is not in Mathlib.\n`Mathlib/NumberTheory/LSeries/Injectivity.lean` runs the same argument, but only for series\nindexed by `ℕ` whose exponents are the index; here the exponents are unknown, which is what the\ntheorem determines. It is therefore imitated rather than applied.\n\nBecause ζ is needed only at integer arguments, the core is stated with natural powers rather\nthan `Real.rpow`. Tannery's theorem then applies directly and `tendsto_tsum_pow` is about 30\nlines.\n\n### Relation to generalized prime systems\n\nA `Valuation` together with `FormalProd` is a generalized prime system in the sense of Beurling,\nwith `extend` as the norm map and `∑ₘ v.extend m ^ (-s)` as the associated zeta function. Two\nconventions differ. Divergence of the prime values is not assumed here but derived from\nconvergence of the series (`Valuation.tendsto_atTop_of_summable`). Repeated prime values are\nexcluded by `StrictMono`, so this development covers systems with distinct primes; some ordering\nassumption is unavoidable, since by `autEquivPerm` a bare monoid admits every permutation of its\nprimes as a symmetry.\n\nDefinitions follow Beurling, *Analyse de la loi asymptotique de la distribution des nombres\npremiers généralisés*, Acta Math. **68** (1937), 255–291; H. G. Diamond, *J. Number Theory* **1**\n(1969); and Knopfmacher's arithmetical semigroups.\n\n## Building\n\n```sh\nlake build\n```\n\nPinned to Lean `v4.34.1` and Mathlib `v4.34.1`. Several lemma names used here are\nversion-sensitive (`Set.mem_ofPred_eq`, `Nat.infinite_setOfPred_prime`, `Nat.dvd_sub`,\n`Finset.one_le_prod₀`), so expect minor breakage when bumping Mathlib.\n\n## License\n\nApache License 2.0 — see [`LICENSE`](LICENSE). This matches Mathlib, which this project depends\non and whose file-header convention it follows.\n",1793400795413]