pith. machine review for the scientific record. sign in

IndisputableMonolith.Foundation.LogicComplexCompat

IndisputableMonolith/Foundation/LogicComplexCompat.lean · 96 lines · 9 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: ready · generated 2026-05-14 05:13:28.299189+00:00

   1import IndisputableMonolith.Foundation.ComplexFromLogic
   2import IndisputableMonolith.NumberTheory.EulerProductEqualsZeta
   3import IndisputableMonolith.NumberTheory.CompletedZetaLedger
   4
   5/-!
   6  LogicComplexCompat.lean
   7
   8  Compatibility layer between recovered complex numbers and Mathlib's analytic
   9  complex substrate.
  10
  11  Phase 2 decision: we do not redefine holomorphy, contour integration, or the
  12  Riemann zeta function on a separate complex analysis stack.  We use Mathlib
  13  `ℂ` as the analytic substrate, and this module makes that use explicit:
  14  every recovered-complex statement is transported through
  15  `LogicComplex.toComplex`.
  16-/
  17
  18namespace IndisputableMonolith
  19namespace Foundation
  20namespace LogicComplexCompat
  21
  22open ComplexFromLogic
  23open ComplexFromLogic.LogicComplex
  24open Filter Topology
  25
  26noncomputable section
  27
  28/-- The Riemann zeta function read on recovered complex inputs. -/
  29def logicRiemannZeta (s : LogicComplex) : ℂ :=
  30  riemannZeta (toComplex s)
  31
  32/-- The completed zeta function read on recovered complex inputs. -/
  33def logicCompletedRiemannZeta (s : LogicComplex) : ℂ :=
  34  completedRiemannZeta (toComplex s)
  35
  36@[simp] theorem logicRiemannZeta_fromComplex (s : ℂ) :
  37    logicRiemannZeta (fromComplex s) = riemannZeta s := by
  38  simp [logicRiemannZeta]
  39
  40@[simp] theorem logicCompletedRiemannZeta_fromComplex (s : ℂ) :
  41    logicCompletedRiemannZeta (fromComplex s) = completedRiemannZeta s := by
  42  simp [logicCompletedRiemannZeta]
  43
  44/-- Recovered-complex real part agrees with the real part after transport. -/
  45theorem toComplex_re_eq (s : LogicComplex) :
  46    (toComplex s).re = RealsFromLogic.LogicReal.toReal s.re := rfl
  47
  48/-- The Euler product theorem, read on recovered complex inputs. -/
  49theorem logicRiemannZeta_eulerProduct_tendsto
  50    (s : LogicComplex) (hs : 1 < (toComplex s).re) :
  51    Tendsto (fun n : ℕ ↦
  52        NumberTheory.finitePrimeLedgerPartition (toComplex s) (Nat.primesBelow n))
  53      atTop (𝓝 (logicRiemannZeta s)) := by
  54  simpa [logicRiemannZeta] using
  55    NumberTheory.EulerProductEqualsZeta.ledger_partition_equals_zeta
  56      (toComplex s) hs
  57
  58/-- Completed zeta satisfies the functional equation on recovered complex
  59inputs, by transport to Mathlib's `completedRiemannZeta`. -/
  60theorem logicCompletedRiemannZeta_one_sub (s : LogicComplex) :
  61    logicCompletedRiemannZeta (fromComplex (1 - toComplex s)) =
  62      logicCompletedRiemannZeta s := by
  63  simp [logicCompletedRiemannZeta, completedRiemannZeta_one_sub]
  64
  65/-- Certificate that all analytic zeta operations are performed in Mathlib `ℂ`
  66through the recovered-complex equivalence. -/
  67structure LogicComplexAnalyticSubstrateCert where
  68  carrier_equiv : LogicComplex ≃ ℂ
  69  zeta_transport : ∀ s : LogicComplex,
  70    logicRiemannZeta s = riemannZeta (toComplex s)
  71  completed_zeta_transport : ∀ s : LogicComplex,
  72    logicCompletedRiemannZeta s = completedRiemannZeta (toComplex s)
  73  euler_product :
  74    ∀ s : LogicComplex, 1 < (toComplex s).re →
  75      Tendsto (fun n : ℕ ↦
  76        NumberTheory.finitePrimeLedgerPartition (toComplex s) (Nat.primesBelow n))
  77        atTop (𝓝 (logicRiemannZeta s))
  78  completed_functional_equation :
  79    ∀ s : LogicComplex,
  80      logicCompletedRiemannZeta (fromComplex (1 - toComplex s)) =
  81        logicCompletedRiemannZeta s
  82
  83/-- The analytic substrate compatibility certificate for Phase 2. -/
  84def logicComplexAnalyticSubstrateCert : LogicComplexAnalyticSubstrateCert where
  85  carrier_equiv := equivComplex
  86  zeta_transport := fun _ => rfl
  87  completed_zeta_transport := fun _ => rfl
  88  euler_product := logicRiemannZeta_eulerProduct_tendsto
  89  completed_functional_equation := logicCompletedRiemannZeta_one_sub
  90
  91end
  92
  93end LogicComplexCompat
  94end Foundation
  95end IndisputableMonolith
  96

source mirrored from github.com/jonwashburn/shape-of-logic