Pith. sign in

IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.Factorization.PeriodSpectrum

IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Factorization/PeriodSpectrum.lean · 100 lines · 10 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1/-
   2  PrimitiveRecognitionCalculus/Factorization/PeriodSpectrum.lean
   3
   4  Multiplicative powers and certified period witnesses for unit residues.
   5  This file does not assert a fast period-finder. It only defines the witness
   6  object that any classical, quantum, or physical readout must return.
   7-/
   8
   9import Mathlib
  10import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.Factorization.UnitGroup
  11
  12namespace IndisputableMonolith
  13namespace Foundation
  14namespace PrimitiveRecognitionCalculus
  15namespace Factorization
  16
  17open DistinctionNat
  18
  19/-- δ-native exponentiation by an orbit exponent. -/
  20def orbitPow (a : DistinctionNat) : DistinctionNat → DistinctionNat
  21  | zero => one
  22  | succ k => orbitPow a k * a
  23
  24theorem orbitPow_zero (a : DistinctionNat) :
  25    orbitPow a zero = one := rfl
  26
  27theorem orbitPow_succ (a k : DistinctionNat) :
  28    orbitPow a (succ k) = orbitPow a k * a := rfl
  29
  30theorem orbitPow_toNat (a k : DistinctionNat) :
  31    (orbitPow a k).toNat = a.toNat ^ k.toNat := by
  32  induction k with
  33  | zero =>
  34      simp [orbitPow, one_toNat]
  35  | succ k ih =>
  36      rw [orbitPow_succ, toNat_mul, ih, toNat_succ]
  37      exact Nat.pow_succ a.toNat k.toNat
  38
  39theorem orbitPow_unitResidue {N a : DistinctionNat}
  40    (ha : unitResidue N a) (k : DistinctionNat) :
  41    unitResidue N (orbitPow a k) := by
  42  rw [unitResidue_iff_nat_coprime]
  43  rw [orbitPow_toNat]
  44  exact unitResidue_pow_closed ha k.toNat
  45
  46/-- A certified period witness. Minimality is optional at the interface; the
  47essential output is a nonzero exponent that returns the unit residue to `1`. -/
  48structure PeriodWitness (N : DistinctionNat) (hN : N ≠ zero)
  49    (a r : DistinctionNat) : Prop where
  50  exponent_nonzero : r ≠ zero
  51  base_unit : unitResidue N a
  52  returns_one : sameResidue N hN (orbitPow a r) one
  53
  54/-- A period witness plus a proper divisor it exposes. The divisor may come
  55from the usual `gcd(a^(r/2)-1,N)` route, but this structure deliberately stores
  56the certificate rather than pretending the readout itself is already derived. -/
  57structure ProperDivisorFromPeriod (N : DistinctionNat) (hN : N ≠ zero)
  58    (a r : DistinctionNat) : Type where
  59  period : PeriodWitness N hN a r
  60  divisor : DistinctionNat
  61  divisor_nonzero : divisor ≠ zero
  62  divisor_nonunit : ¬ unit divisor
  63  divisor_not_modulus : divisor ≠ N
  64  divisor_divides : divides divisor N
  65
  66/-- Once a period readout has supplied a proper divisor certificate, the
  67δ-native divisibility layer gives a nontrivial factorization. -/
  68theorem period_divisor_to_nontrivialFactorization {N a r : DistinctionNat}
  69    {hN : N ≠ zero}
  70    (w : ProperDivisorFromPeriod N hN a r) :
  71    nontrivialFactorization N := by
  72  exact nontrivialFactorization_of_proper_divisor hN
  73    w.divisor_nonzero w.divisor_nonunit w.divisor_not_modulus
  74    w.divisor_divides
  75
  76/-- Certificate for the period-spectrum interface. -/
  77structure PeriodSpectrumCertificate : Prop where
  78  pow_display :
  79    ∀ a k : DistinctionNat, (orbitPow a k).toNat = a.toNat ^ k.toNat
  80  pow_preserves_unit :
  81    ∀ {N a : DistinctionNat},
  82      unitResidue N a → ∀ k : DistinctionNat, unitResidue N (orbitPow a k)
  83  period_divisor_extracts_factorization :
  84    ∀ {N a r : DistinctionNat} {hN : N ≠ zero},
  85      ProperDivisorFromPeriod N hN a r → nontrivialFactorization N
  86
  87theorem period_spectrum_certificate : PeriodSpectrumCertificate where
  88  pow_display := orbitPow_toNat
  89  pow_preserves_unit := by
  90    intro N a ha k
  91    exact orbitPow_unitResidue ha k
  92  period_divisor_extracts_factorization := by
  93    intro N a r hN w
  94    exact period_divisor_to_nontrivialFactorization w
  95
  96end Factorization
  97end PrimitiveRecognitionCalculus
  98end Foundation
  99end IndisputableMonolith
 100

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