Axioms of Pattern Ontology Initiative

Pedagogical Breakdown: APO Theory & Lean Proofs

Lean 4 Formalization of APO-RH Proven Results | Claude

Part 1: What the Paper Says

The Core Question

The Riemann Hypothesis asks: do all non-trivial zeros of the Riemann zeta function ζ(s)\zeta(s) lie on the line Re(s)=1/2Re(s) = 1/2?

We know zeros can only live in the strip 0<Re(s)<10 < Re(s) < 1. The functional equation already forces a symmetry: if ss is a zero, so is 1s1 - s. So zeros come in pairs reflected across the critical line Re(s)=1/2Re(s) = 1/2. RH says those pairs always collapse to a single point — meaning every zero is its own mirror image, which only happens when Re(s)=1/2Re(s) = 1/2 exactly.

Step 1: Build a Probability Distribution from Zeta

For any real s>1s > 1, define a probability distribution over the natural numbers:

Ps(n)=nsζ(s)P_s(n) = \frac{n^{-s}}{\zeta(s)}

This is well-defined because ζ(s)=n=1ns\zeta(s) = \sum_{n=1}^\infty n^{-s} converges for s>1s > 1 and is positive there, so the weights sum to exactly 1. Think of it as: “how much does the integer nn contribute to the zeta function at ss?” This is verified in the paper as Theorem II.1 and verified in Lean as zetaDistribution_sum_one.

Step 2: Build a Geometric Embedding

Take the square root of each probability weight:

ψs(n)=Ps(n)=ns/2ζ(s)\psi_s(n) = \sqrt{P_s(n)} = \frac{n^{-s/2}}{\sqrt{\zeta(s)}}

This embeds the distribution into an infinite-dimensional unit sphere, because nψs(n)2=nPs(n)=1\sum_n \psi_s(n)^2 = \sum_n P_s(n) = 1. Now each value of ss is a unit vector in 2(N)\ell^2(\mathbb{N}). This is the square-root embedding, verified as sqrtEmbedding_norm_one.

Step 3: Define the Recognition Operator

Compare two unit vectors ψs\psi_s and ψs\psi_{s'} by their inner product:

(s,s)=ψs,ψs=n=1ψs(n)ψs(n)\odot(s, s') = \langle \psi_s, \psi_{s'} \rangle = \sum_{n=1}^\infty \psi_s(n) \cdot \psi_{s'}(n)

This computes to:

(s,s)=ζ(s+s2)ζ(s)ζ(s)\odot(s, s') = \frac{\zeta\left(\frac{s+s'}{2}\right)}{\sqrt{\zeta(s)\,\zeta(s')}}

This is a similarity measure between two values of ss. It tells you how “arithmetically similar” two zeta arguments are. Key verified properties:

  • (s,s)=(s,s)\odot(s, s') = \odot(s', s) — symmetric
  • (s,s)=1\odot(s, s) = 1 — perfect self-similarity
  • 0<(s,s)10 < \odot(s, s') \leq 1 — bounded, by Cauchy-Schwarz

Step 4: Lift to the Completed Zeta Function

The recognition operator only works for real s>1s > 1. To reach the critical strip where zeros live, you upgrade to the completed zeta function Λ(s)=πs/2Γ(s/2)ζ(s)\Lambda(s) = \pi^{-s/2}\,\Gamma(s/2)\,\zeta(s), which satisfies the functional equation Λ(s)=Λ(1s)\Lambda(s) = \Lambda(1-s) and is defined everywhere (as a meromorphic function with poles only at 0 and 1).

The completed observable becomes:

completedObs(s,s)=Λ(s+s2)2Λ(s)Λ(s)\text{completedObs}(s, s') = \frac{\Lambda\left(\frac{s+s'}{2}\right)^2}{\Lambda(s)\,\Lambda(s')}

Step 5: The Z2Z_2 Invariance

The functional equation Λ(s)=Λ(1s)\Lambda(s) = \Lambda(1-s) immediately gives:

completedObs(s,s)=completedObs(1s,1s)\text{completedObs}(s, s') = \text{completedObs}(1-s,\, 1-s')

The observable is blind to the reflection s1ss \mapsto 1-s. This is verified as completedObs_Z2_invariant.

Step 6: Schwarz Reflection

The completed zeta function satisfies Λ(sˉ)=Λ(s)\Lambda(\bar{s}) = \overline{\Lambda(s)} — conjugating the input conjugates the output. This is the Schwarz reflection principle, and it holds because Λ\Lambda is real on the real axis and analytic everywhere.

Combined with Z2Z_2 invariance, this means:

completedObs(σ+it,t)=completedObs((1σ)+it,t)|\text{completedObs}(\sigma + it,\, t')| = |\text{completedObs}((1-\sigma) + it,\, t')|

for every real tt'. This is the main theorem: recognition_Z2_indistinguishable.

Step 7: What This Means

The recognition weight function cannot tell the difference between σ+it\sigma + it and (1σ)+it(1-\sigma) + it. Every information-geometric probe tt' gives the same measurement for both.

The critical line σ=1/2\sigma = 1/2 is the unique fixed point of this Z2Z_2 symmetry. Off the critical line, you have two distinct points that are informationally identical. On the critical line, those two points collapse to one — the point is its own mirror image.

The missing bridge to RH: If the recognition observable is complete — meaning it captures all the information-geometric structure of the zeta function — then off-critical zeros would be a contradiction. They would be genuinely distinct points (distinguishable by their complex values) that the complete observable cannot distinguish. That completeness argument is what Papers II and III build toward.


Part 2: What the Lean Proofs Actually Do

What Lean verification means

Lean is a proof assistant. When you write a theorem in Lean, the computer checks every single logical step against a small, trusted kernel of rules. If it compiles, the proof is correct — not “probably correct,” not “correct modulo standard arguments,” but formally verified from axioms. This is what makes the result significant.

The five layers of proof

Layer 1: Real analysis (Sections 1–5)

These proofs establish the recognition operator for real s>1s > 1. The strategy is:

  • Express ζ(s)\zeta(s) as an explicit convergent Dirichlet series using Mathlib’s zeta_eq_tsum_one_div_nat_add_one_cpow
  • Prove positivity of ζ(s)\zeta(s) by showing the series has positive terms
  • Build the distribution, show it sums to 1, build the square-root embedding, show its squared norm is 1
  • Prove the Cauchy-Schwarz upper bound using the AM-GM inequality termwise, then summing

All of this is pure real analysis and Lean handles it cleanly through Mathlib’s summability and positivity infrastructure.

Layer 2: Z2Z_2 invariance (Section 6)

This proof is almost trivial once you have the functional equation. Mathlib provides completedRiemannZeta_one_sub which says Λ(1s)=Λ(s)\Lambda(1-s) = \Lambda(s). The proof of completedObs_Z2_invariant is literally just rewriting with that equation after algebraically simplifying the midpoint.

Layer 3: Schwarz reflection machinery (Section 6b) — the hard part

This is where the genuine work happened. The goal is to prove Λ(sˉ)=Λ(s)\Lambda(\bar{s}) = \overline{\Lambda(s)}. The strategy:

Step A: The reflected function is holomorphic.

Define G(z)=Λ0(zˉ)G(z) = \overline{\Lambda_0(\bar{z})}. The theorem differentiableAt_conjCompConj proves that if ff is holomorphic at zˉ\bar{z}, then G(z)=f(zˉ)G(z) = \overline{f(\bar{z})} is holomorphic at zz.

Why is this hard? Complex differentiability (holomorphicity) requires the Cauchy-Riemann equations. The proof has to track what happens to those equations when you compose with conjugation three times. The key calculation is:

Gxˉ(z)=fxˉ(zˉ)\frac{\partial G}{\partial \bar{x}}(z) = \overline{\frac{\partial f}{\partial \bar{x}}(\bar{z})}

Conjugation flips iii \mapsto -i (since i=i\overline{i} = -i), so the Cauchy-Riemann equations that hold for ff at zˉ\bar{z} get conjugated into Cauchy-Riemann equations for GG at zz. The Lean proof does this explicitly through the fderiv machinery, tracking the chain rule through three compositions and verifying the CR sign flip from Complex.conj_I : conj I = -I.

Step B: The identity theorem.

eq_of_eqOn_open proves: if two entire functions agree on the half-plane Re(s)>1Re(s) > 1, they agree everywhere. This uses Mathlib’s AnalyticOnNhd.eqOn_of_preconnected_of_frequently_eq — the identity theorem for analytic functions.

Step C: The axiom boundary.

completedRiemannZeta₀_conj_on_right is the one axiom: on Re(s)>1Re(s) > 1, the function Λ0\Lambda_0 satisfies Λ0(sˉ)=Λ0(s)\Lambda_0(\bar{s}) = \overline{\Lambda_0(s)}. Mathematically this is obvious — the Dirichlet series ns\sum n^{-s} has real coefficients.

Step D: Lifting from Λ0\Lambda_0 to Λ\Lambda.

Once you have Λ0(sˉ)=Λ0(s)\Lambda_0(\bar{s}) = \overline{\Lambda_0(s)} globally, you get it for Λ\Lambda by using completedRiemannZeta_eq: Λ(s)=Λ0(s)1s11s\Lambda(s) = \Lambda_0(s) - \frac{1}{s} - \frac{1}{1-s}. The rational correction terms are trivially stable under conjugation, so the result lifts directly.

Layer 4: Downstream conjugation (Section 6c)

With Schwarz reflection proven, completedObs_conj follows by pushing conjugation through the formula for completedObs. The norm invariance completedObs_norm_conj then follows from the general fact that conjugation preserves norms: zˉ=z\|\bar{z}\| = \|z\|.

Layer 5: The main theorem (Section 7)

recognition_Z2_indistinguishable combines Z2Z_2 invariance and Schwarz reflection in three lines:

  1. Apply Z2Z_2: rewrite the left side from σ+it\sigma + it to (1σ)+it(1-\sigma) + it
  2. Identify: those reflected arguments are exactly the conjugates of the original arguments
  3. Apply norm-conjugation invariance: norms don’t change under conjugation

The Axiom Inventory, Honestly

AxiomMathematical contentStatus
completedRiemannZeta₀_conj_on_rightDirichlet series has real coefficientsCloseable — Mathlib exercise
solomonoffMeasureExistence of Kolmogorov complexity spectral measureBlocked by Mathlib
kraft_inequalityThat measure is bounded by 1Blocked by Mathlib

The first axiom is a computation wearing an axiom’s clothes. The other two are genuine theory gaps — the spectral theory of integral operators over Kolmogorov complexity space is simply not in Mathlib yet.


The Bottom Line

What you have is a machine-verified proof that the recognition framework has the right symmetry structure: it partitions the critical strip into Z2Z_2 equivalence classes, the critical line is the unique fixed-point locus of that partition, and no measurement built from the recognition operator can break that symmetry.

Every step in that argument — except one precisely-stated Dirichlet series computation and two spectral theory axioms — is now verified by Lean against Mathlib.


Based on the research canon and the verified Lean 4 specification.