Pith. sign in

IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.Continuum.CharacterRigidityForcing

IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Continuum/CharacterRigidityForcing.lean · 181 lines · 14 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1/-
   2  PrimitiveRecognitionCalculus/Continuum/CharacterRigidityForcing.lean
   3
   4  Lane: CONSTRUCTIVE CONTINUUM R_δ — calibrated character-rigidity.
   5
   6  This additive module attacks the rigidity gap that
   7  `PRCNativeCostUniqueness` leaves OPEN: after setting `g = F + 1` the RCL
   8  has the d'Alembert form `g(xy) + g(x/y) = 2 g(x) g(y)`, and one-point
   9  calibration at `2` does not by itself control all prime directions.
  10
  11  We decompose the missing **calibrated character-rigidity** target into
  12  small named helper lemmas (each independently true and choice-free) and
  13  prove the headline single-prime / two-generator rigidity FROM them:
  14  the set of calibration points of a `PRCRatioCharacter` is closed under
  15  product, reciprocal and the unit, hence calibration in one prime
  16  direction rigidifies the whole cyclic subgroup it generates, and the
  17  generated cost is forced to the canonical PRC J-cost there.
  18
  19  The genuinely open all-primes statement (one-point calibration at `2`
  20  forcing global identity) is named honestly as `def target_*`, NOT faked.
  21
  22  This file cites the committed `PRCJCost` / `PRCNativeCostUniqueness`
  23  names verbatim (`PRCRatioCharacter`, `costFromCharacter`,
  24  `doubledTraceValue`, `doubledTraceValue_congr`, `onRatioOrbit`, `two`,
  25  `RatioOrbit.crossEq`, ...).
  26-/
  27
  28import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.PRCNativeCostUniqueness
  29
  30namespace IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.Continuum
  31
  32open IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus
  33open IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.PRCJCost
  34
  35/-! ## Calibration predicate -/
  36
  37/-- A character `χ` is *calibrated at* `q` when its value at `q` is
  38cross-equivalent to `q` itself, i.e. `χ` acts as the identity character on
  39the orbit direction `q`.  Calibration at `two` is the single-point datum the
  40PRC cost hypotheses actually carry. -/
  41def CharacterCalibratedAt (χ : RatioOrbit → RatioOrbit) (q : RatioOrbit) : Prop :=
  42  RatioOrbit.crossEq (χ q) q
  43
  44/-! ## Helper lemmas: rational displays of a ratio character -/
  45
  46/-- Multiplicativity of a `PRCRatioCharacter` on the verifier rational display. -/
  47theorem character_mul_toRat {χ : RatioOrbit → RatioOrbit}
  48    (hχ : PRCRatioCharacter χ) (x y : RatioOrbit) :
  49    (χ (RatioOrbit.mul x y)).toRat = (χ x).toRat * (χ y).toRat := by
  50  have h := hχ.multiplicative x y
  51  rw [RatioOrbit.crossEq_iff_toRat_eq] at h
  52  rw [h, RatioOrbit.mul_toRat]
  53
  54/-- The unit normalization of a `PRCRatioCharacter` on the rational display. -/
  55theorem character_one_toRat {χ : RatioOrbit → RatioOrbit}
  56    (hχ : PRCRatioCharacter χ) :
  57    (χ RatioOrbit.one).toRat = 1 := by
  58  have h := hχ.unit
  59  rw [RatioOrbit.crossEq_iff_toRat_eq] at h
  60  rw [h, RatioOrbit.one_toRat]
  61
  62/-- Reciprocal symmetry of a `PRCRatioCharacter` on the rational display. -/
  63theorem character_recip_toRat {χ : RatioOrbit → RatioOrbit}
  64    (hχ : PRCRatioCharacter χ) (x : RatioOrbit) :
  65    (χ (RatioOrbit.recip x)).toRat = (χ x).toRat⁻¹ := by
  66  have h := hχ.reciprocal x
  67  rw [RatioOrbit.crossEq_iff_toRat_eq] at h
  68  rw [h, RatioOrbit.recip_toRat]
  69
  70/-! ## Helper lemmas: the calibration set is a subgroup -/
  71
  72/-- The unit orbit is always a calibration point of a `PRCRatioCharacter`. -/
  73theorem calibrated_one {χ : RatioOrbit → RatioOrbit}
  74    (hχ : PRCRatioCharacter χ) :
  75    CharacterCalibratedAt χ RatioOrbit.one :=
  76  hχ.unit
  77
  78/-- Calibration is closed under products: if `χ` is the identity on `x` and
  79on `y`, multiplicativity forces it to be the identity on `x·y`. -/
  80theorem calibrated_mul {χ : RatioOrbit → RatioOrbit}
  81    (hχ : PRCRatioCharacter χ) {x y : RatioOrbit}
  82    (hx : CharacterCalibratedAt χ x) (hy : CharacterCalibratedAt χ y) :
  83    CharacterCalibratedAt χ (RatioOrbit.mul x y) := by
  84  unfold CharacterCalibratedAt at hx hy ⊢
  85  rw [RatioOrbit.crossEq_iff_toRat_eq] at hx hy ⊢
  86  rw [character_mul_toRat hχ, RatioOrbit.mul_toRat, hx, hy]
  87
  88/-- Calibration is closed under reciprocals. -/
  89theorem calibrated_recip {χ : RatioOrbit → RatioOrbit}
  90    (hχ : PRCRatioCharacter χ) {x : RatioOrbit}
  91    (hx : CharacterCalibratedAt χ x) :
  92    CharacterCalibratedAt χ (RatioOrbit.recip x) := by
  93  unfold CharacterCalibratedAt at hx ⊢
  94  rw [RatioOrbit.crossEq_iff_toRat_eq] at hx ⊢
  95  rw [character_recip_toRat hχ, RatioOrbit.recip_toRat, hx]
  96
  97/-- Two-generator / square case: calibration at `p` propagates to `p·p`. -/
  98theorem calibrated_square {χ : RatioOrbit → RatioOrbit}
  99    (hχ : PRCRatioCharacter χ) {p : RatioOrbit}
 100    (hp : CharacterCalibratedAt χ p) :
 101    CharacterCalibratedAt χ (RatioOrbit.mul p p) :=
 102  calibrated_mul hχ hp hp
 103
 104/-! ## Helper lemmas: cost / trace rigidity from calibration -/
 105
 106/-- The canonical PRC cost respects cross-equivalence of inputs. -/
 107theorem onRatioOrbit_crossEq {a b : RatioOrbit}
 108    (h : RatioOrbit.crossEq a b) :
 109    RatioOrbit.crossEq (onRatioOrbit a) (onRatioOrbit b) := by
 110  rw [RatioOrbit.crossEq_iff_toRat_eq] at h ⊢
 111  rw [onRatioOrbit_toRat, onRatioOrbit_toRat, h]
 112
 113/-- The d'Alembert trace `χ(p) + χ(p)⁻¹` of a calibrated character collapses
 114to the identity trace `p + p⁻¹` on a calibration point. -/
 115theorem character_trace_rigid {χ : RatioOrbit → RatioOrbit}
 116    (hχ : PRCRatioCharacter χ) {p : RatioOrbit}
 117    (hp : CharacterCalibratedAt χ p) :
 118    RatioOrbit.crossEq
 119      (RatioOrbit.add (χ p) (RatioOrbit.recip (χ p)))
 120      (RatioOrbit.add p (RatioOrbit.recip p)) := by
 121  unfold CharacterCalibratedAt at hp
 122  rw [RatioOrbit.crossEq_iff_toRat_eq] at hp ⊢
 123  rw [RatioOrbit.add_toRat, RatioOrbit.add_toRat, RatioOrbit.recip_toRat,
 124    RatioOrbit.recip_toRat, hp]
 125
 126/-- The cost generated by a calibrated character equals the canonical PRC
 127J-cost on a calibration point: `costFromCharacter χ p ≈ onRatioOrbit p`. -/
 128theorem costFromCharacter_rigid {χ : RatioOrbit → RatioOrbit}
 129    (hχ : PRCRatioCharacter χ) {p : RatioOrbit}
 130    (hp : CharacterCalibratedAt χ p) :
 131    RatioOrbit.crossEq (costFromCharacter χ p) (onRatioOrbit p) :=
 132  onRatioOrbit_crossEq hp
 133
 134/-- The doubled d'Alembert trace `2(F+1)` of the generated cost is rigidified
 135to the canonical doubled trace on a calibration point. -/
 136theorem doubledTrace_character_rigid {χ : RatioOrbit → RatioOrbit}
 137    (hχ : PRCRatioCharacter χ) {p : RatioOrbit}
 138    (hp : CharacterCalibratedAt χ p) :
 139    RatioOrbit.crossEq
 140      (doubledTraceValue (costFromCharacter χ p))
 141      (doubledTraceValue (onRatioOrbit p)) :=
 142  doubledTraceValue_congr (costFromCharacter_rigid hχ hp)
 143
 144/-! ## Headline: single-prime / two-generator calibrated rigidity -/
 145
 146/-- **Calibrated character-rigidity (single prime direction).**
 147
 148A `PRCRatioCharacter χ` that is calibrated at a prime direction `p`
 149(`χ p ≈ p`) is rigidified there: it is forced to remain the identity
 150character on `p·p` and on `p⁻¹` (so on the whole cyclic subgroup `p`
 151generates), and the cost it generates is forced to the canonical PRC
 152J-cost `onRatioOrbit p`.  This is exactly the rigidity that calibrated
 153multiplicativity supplies; the global all-primes step requires the
 154separate `target_*` below. -/
 155theorem prime_calibration_forces_identity_on_direction
 156    {χ : RatioOrbit → RatioOrbit} (hχ : PRCRatioCharacter χ)
 157    {p : RatioOrbit} (hcalib : CharacterCalibratedAt χ p) :
 158    CharacterCalibratedAt χ (RatioOrbit.mul p p)
 159      ∧ CharacterCalibratedAt χ (RatioOrbit.recip p)
 160      ∧ RatioOrbit.crossEq (costFromCharacter χ p) (onRatioOrbit p) :=
 161  ⟨calibrated_mul hχ hcalib hcalib,
 162   calibrated_recip hχ hcalib,
 163   costFromCharacter_rigid hχ hcalib⟩
 164
 165/-! ## The genuinely open all-primes target (named, not faked) -/
 166
 167/-- **Open target.**  One-point calibration at `two` forces global identity:
 168every `PRCRatioCharacter` that is calibrated only at the distinguished axis
 169`two` is in fact calibrated (cross-equivalent to the identity character) at
 170every nonzero ratio orbit.  This is the all-prime-directions statement that
 171`PRCNativeCostUniqueness` leaves OPEN; the single-prime lemma above provides
 172the per-direction rigidity, but propagating one-point calibration across
 173independent prime directions is the remaining content.  Stated honestly as a
 174`Prop`, not proved here. -/
 175def target_OnePointCalibrationForcesGlobalIdentity : Prop :=
 176  ∀ χ : RatioOrbit → RatioOrbit, PRCRatioCharacter χ →
 177    CharacterCalibratedAt χ two →
 178      ∀ q : RatioOrbit, q.toRat ≠ 0 → CharacterCalibratedAt χ q
 179
 180end IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.Continuum
 181

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