Pith. sign in

IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.PRCNativeCostUniqueness

IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/PRCNativeCostUniqueness.lean · 17090 lines · 1168 declarations

show as:
view math explainer →

open module explainer GitHub source

Explainer status: pending

   1/-
   2  PrimitiveRecognitionCalculus/PRCNativeCostUniqueness.lean
   3
   4  Round-trip source:
   5    δ/PRC_Universal_Foundation_Execution_Plan_20260526.html
   6
   7  Spec anchor:
   8    Immediate target after pass 24: attack `PRCNativeCostUniquenessTarget`
   9    or isolate the smallest exact blocker.
  10
  11  The current PRC cost hypotheses are too weak to prove uniqueness directly:
  12  after setting `g = F + 1`, the RCL has the d'Alembert form
  13  `g(xy) + g(x/y) = 2 g(x) g(y)`. On a rational multiplicative group,
  14  one-point calibration at `2` does not by itself control all prime directions.
  15  This file names the exact missing character-factorization and calibrated
  16  character-rigidity targets and proves that together they imply native
  17  cost uniqueness.
  18-/
  19
  20import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.PRCJCost
  21import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.Kernel
  22import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.TraceClosure
  23import Mathlib.Analysis.Real.Cardinality
  24import Mathlib.Data.Rat.Cast.Order
  25import Mathlib.Algebra.AlgebraicCard
  26import Mathlib.Logic.Equiv.List
  27import Mathlib.MeasureTheory.Measure.Lebesgue.Basic
  28import IndisputableMonolith.Foundation.PrimitiveRecognitionCalculus.PRCMonotoneDAlembert
  29
  30namespace IndisputableMonolith
  31namespace Foundation
  32namespace PrimitiveRecognitionCalculus
  33namespace PRCJCost
  34
  35/-- A ratio-character candidate for the d'Alembert factorization of a PRC cost.
  36It is stated at the ratio-orbit level and uses cross-equivalence rather than
  37definitional equality, so it remains quotient-native. -/
  38structure PRCRatioCharacter (χ : RatioOrbit → RatioOrbit) : Prop where
  39  unit :
  40    RatioOrbit.crossEq (χ RatioOrbit.one) RatioOrbit.one
  41  multiplicative :
  42    ∀ x y : RatioOrbit,
  43      RatioOrbit.crossEq (χ (RatioOrbit.mul x y))
  44        (RatioOrbit.mul (χ x) (χ y))
  45  reciprocal :
  46    ∀ x : RatioOrbit,
  47      RatioOrbit.crossEq (χ (RatioOrbit.recip x))
  48        (RatioOrbit.recip (χ x))
  49  normalized_invariant :
  50    ∀ q : RatioOrbit,
  51      RatioOrbit.crossEq (χ q) (χ (DistinctionNat.normalizeRatio q))
  52  nonzero_preserving :
  53    ∀ {q : RatioOrbit}, q.toRat ≠ 0 → (χ q).toRat ≠ 0
  54
  55/-- Cost generated from a rational character. The canonical PRC cost is the
  56identity-character case. -/
  57def costFromCharacter (χ : RatioOrbit → RatioOrbit) (q : RatioOrbit) :
  58    RatioOrbit :=
  59  onRatioOrbit (χ q)
  60
  61theorem costFromCharacter_toRat
  62    (χ : RatioOrbit → RatioOrbit) (q : RatioOrbit) :
  63    (costFromCharacter χ q).toRat =
  64      ((χ q).toRat + (χ q).toRat⁻¹) / 2 - 1 := by
  65  exact onRatioOrbit_toRat (χ q)
  66
  67/-- The doubled trace value `2(a+1)` attached to a cost value `a`. -/
  68def doubledTraceValue (a : RatioOrbit) : RatioOrbit :=
  69  RatioOrbit.mul two (RatioOrbit.add a RatioOrbit.one)
  70
  71/-- The doubled d'Alembert trace carried by a native cost: `T_F(q)=2(F(q)+1)`.
  72For a generated cost this is exactly `χ(q)+χ(q)⁻¹`. -/
  73def nativeCostDoubledTrace
  74    (F : RatioOrbit → RatioOrbit) (q : RatioOrbit) : RatioOrbit :=
  75  doubledTraceValue (F q)
  76
  77theorem doubledTraceValue_congr {a b : RatioOrbit}
  78    (h : RatioOrbit.crossEq a b) :
  79    RatioOrbit.crossEq (doubledTraceValue a) (doubledTraceValue b) := by
  80  rw [RatioOrbit.crossEq_iff_toRat_eq] at h ⊢
  81  simp [doubledTraceValue, RatioOrbit.mul_toRat, RatioOrbit.add_toRat,
  82    two_toRat, RatioOrbit.one_toRat]
  83  linarith
  84
  85/-- Native d'Alembert trace equation. This is the RCL equation after setting
  86`T_F = 2(F+1)`. -/
  87def PRCDoubledTraceDAlembert (T : RatioOrbit → RatioOrbit) : Prop :=
  88  ∀ {x y : RatioOrbit}, x.toRat ≠ 0 → y.toRat ≠ 0 →
  89    RatioOrbit.crossEq
  90      (RatioOrbit.add (T (RatioOrbit.mul x y)) (T (div x y)))
  91      (RatioOrbit.mul (T x) (T y))
  92
  93theorem nativeCostDoubledTrace_dAlembert_of_native_hypotheses
  94    {F : RatioOrbit → RatioOrbit}
  95    (hF : PRCNativeCostHypotheses F) :
  96    PRCDoubledTraceDAlembert (nativeCostDoubledTrace F) := by
  97  intro x y hx hy
  98  have hrcl := hF.canonical_rcl hx hy
  99  rw [RatioOrbit.crossEq_iff_toRat_eq] at hrcl ⊢
 100  simp [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.add_toRat,
 101    RatioOrbit.mul_toRat, two_toRat, RatioOrbit.one_toRat] at hrcl ⊢
 102  ring_nf at hrcl ⊢
 103  linarith
 104
 105/-- Hypotheses carried by the doubled trace of a native PRC cost. -/
 106structure PRCDoubledTraceHypotheses (T : RatioOrbit → RatioOrbit) : Prop where
 107  reciprocal :
 108    ∀ q, RatioOrbit.crossEq (T q) (T (RatioOrbit.recip q))
 109  normalized_invariant :
 110    ∀ q, RatioOrbit.crossEq (T q) (T (DistinctionNat.normalizeRatio q))
 111  dAlembert :
 112    PRCDoubledTraceDAlembert T
 113  unit_trace :
 114    RatioOrbit.crossEq (T RatioOrbit.one) two
 115  two_trace :
 116    RatioOrbit.crossEq (T two) (nativeCostDoubledTrace onRatioOrbit two)
 117
 118theorem nativeCostDoubledTrace_hypotheses_of_native_cost_hypotheses
 119    {F : RatioOrbit → RatioOrbit}
 120    (hF : PRCNativeCostHypotheses F) :
 121    PRCDoubledTraceHypotheses (nativeCostDoubledTrace F) := by
 122  refine
 123    { reciprocal := ?_,
 124      normalized_invariant := ?_,
 125      dAlembert := nativeCostDoubledTrace_dAlembert_of_native_hypotheses hF,
 126      unit_trace := ?_,
 127      two_trace := ?_ }
 128  · intro q
 129    exact doubledTraceValue_congr (hF.reciprocal q)
 130  · intro q
 131    exact doubledTraceValue_congr (hF.normalized_invariant q)
 132  · rw [RatioOrbit.crossEq_iff_toRat_eq]
 133    rw [nativeCostDoubledTrace, doubledTraceValue, hF.unit_zero,
 134      RatioOrbit.mul_toRat, RatioOrbit.add_toRat, RatioOrbit.zero_toRat,
 135      RatioOrbit.one_toRat, two_toRat]
 136    norm_num
 137  · exact doubledTraceValue_congr hF.two_calibrated
 138
 139/-- Trace form of character factorization. This is the d'Alembert lift hidden
 140inside `F = J ∘ χ`: the generated trace of `χ q` must be `2(F q + 1)`. -/
 141def PRCCharacterTraceMatchesCost
 142    (F : RatioOrbit → RatioOrbit) (χ : RatioOrbit → RatioOrbit) : Prop :=
 143  ∀ q : RatioOrbit,
 144    RatioOrbit.crossEq
 145      (RatioOrbit.add (χ q) (RatioOrbit.recip (χ q)))
 146      (nativeCostDoubledTrace F q)
 147
 148theorem PRCCharacterTraceMatchesCost_of_cost_crossEq
 149    {F χ : RatioOrbit → RatioOrbit}
 150    (hcost : ∀ q : RatioOrbit,
 151      RatioOrbit.crossEq (F q) (costFromCharacter χ q)) :
 152    PRCCharacterTraceMatchesCost F χ := by
 153  intro q
 154  have h := hcost q
 155  rw [RatioOrbit.crossEq_iff_toRat_eq] at h ⊢
 156  rw [costFromCharacter_toRat] at h
 157  rw [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.add_toRat,
 158    RatioOrbit.recip_toRat, RatioOrbit.mul_toRat, two_toRat,
 159    RatioOrbit.add_toRat, RatioOrbit.one_toRat]
 160  linarith
 161
 162theorem cost_crossEq_of_PRCCharacterTraceMatchesCost
 163    {F χ : RatioOrbit → RatioOrbit}
 164    (htrace : PRCCharacterTraceMatchesCost F χ) :
 165    ∀ q : RatioOrbit,
 166      RatioOrbit.crossEq (F q) (costFromCharacter χ q) := by
 167  intro q
 168  have h := htrace q
 169  rw [RatioOrbit.crossEq_iff_toRat_eq] at h ⊢
 170  rw [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.add_toRat,
 171    RatioOrbit.recip_toRat, RatioOrbit.mul_toRat, two_toRat, RatioOrbit.add_toRat,
 172    RatioOrbit.one_toRat] at h
 173  rw [costFromCharacter_toRat]
 174  linarith
 175
 176/-- Exact d'Alembert trace-lift version of character factorization. -/
 177def PRCNativeCostCharacterTraceLiftTarget : Prop :=
 178  ∀ F : RatioOrbit → RatioOrbit,
 179    PRCNativeCostHypotheses F →
 180      ∃ χ : RatioOrbit → RatioOrbit,
 181        PRCRatioCharacter χ ∧
 182          PRCCharacterTraceMatchesCost F χ
 183
 184/-- Coherent-root version of the remaining d'Alembert blocker. It asks for a
 185multiplicative ratio character whose trace realizes any native doubled trace. -/
 186def PRCDoubledTraceCoherentRootTarget : Prop :=
 187  ∀ T : RatioOrbit → RatioOrbit,
 188    PRCDoubledTraceHypotheses T →
 189      ∃ χ : RatioOrbit → RatioOrbit,
 190        PRCRatioCharacter χ ∧
 191          ∀ q : RatioOrbit,
 192            RatioOrbit.crossEq
 193              (RatioOrbit.add (χ q) (RatioOrbit.recip (χ q)))
 194              (T q)
 195
 196theorem RatioOrbit.recip_zero_eq :
 197    RatioOrbit.recip RatioOrbit.zero = RatioOrbit.zero := by
 198  unfold RatioOrbit.recip
 199  simp [RatioOrbit.zero, SignedOrbit.balanced_iff_toInt_eq,
 200    SignedOrbit.zero_toInt]
 201
 202/-- A doubled trace that is canonical away from zero but deliberately spikes the
 203zero orbit to trace `1`. The current doubled-trace hypotheses do not see this
 204because their d'Alembert law is restricted to nonzero inputs. -/
 205def zeroSpikeDoubledTrace (q : RatioOrbit) : RatioOrbit :=
 206  if q.toRat = 0 then RatioOrbit.one else nativeCostDoubledTrace onRatioOrbit q
 207
 208theorem zeroSpikeDoubledTrace_zero :
 209    zeroSpikeDoubledTrace RatioOrbit.zero = RatioOrbit.one := by
 210  rw [zeroSpikeDoubledTrace, if_pos RatioOrbit.zero_toRat]
 211
 212theorem zeroSpikeDoubledTrace_nonzero {q : RatioOrbit}
 213    (hq : q.toRat ≠ 0) :
 214    zeroSpikeDoubledTrace q = nativeCostDoubledTrace onRatioOrbit q := by
 215  rw [zeroSpikeDoubledTrace, if_neg hq]
 216
 217theorem zeroSpikeDoubledTrace_hypotheses :
 218    PRCDoubledTraceHypotheses zeroSpikeDoubledTrace := by
 219  refine
 220    { reciprocal := ?_,
 221      normalized_invariant := ?_,
 222      dAlembert := ?_,
 223      unit_trace := ?_,
 224      two_trace := ?_ }
 225  · intro q
 226    by_cases hq : q.toRat = 0
 227    · have hrec : (RatioOrbit.recip q).toRat = 0 := by
 228        rw [RatioOrbit.recip_toRat, hq]
 229        norm_num
 230      rw [RatioOrbit.crossEq_iff_toRat_eq]
 231      rw [zeroSpikeDoubledTrace, if_pos hq]
 232      rw [zeroSpikeDoubledTrace, if_pos hrec]
 233    · have hrec : (RatioOrbit.recip q).toRat ≠ 0 := by
 234        rw [RatioOrbit.recip_toRat]
 235        exact inv_ne_zero hq
 236      rw [zeroSpikeDoubledTrace_nonzero hq,
 237        zeroSpikeDoubledTrace_nonzero hrec]
 238      exact doubledTraceValue_congr (reciprocal_symmetric q)
 239  · intro q
 240    by_cases hq : q.toRat = 0
 241    · have hnorm : (DistinctionNat.normalizeRatio q).toRat = 0 := by
 242        rw [DistinctionNat.normalizeRatio_toRat, hq]
 243      rw [RatioOrbit.crossEq_iff_toRat_eq]
 244      rw [zeroSpikeDoubledTrace, if_pos hq]
 245      rw [zeroSpikeDoubledTrace, if_pos hnorm]
 246    · have hnorm : (DistinctionNat.normalizeRatio q).toRat ≠ 0 := by
 247        rw [DistinctionNat.normalizeRatio_toRat]
 248        exact hq
 249      rw [zeroSpikeDoubledTrace_nonzero hq,
 250        zeroSpikeDoubledTrace_nonzero hnorm]
 251      exact doubledTraceValue_congr (normalized_invariant q)
 252  · intro x y hx hy
 253    have hxy : (RatioOrbit.mul x y).toRat ≠ 0 := by
 254      rw [RatioOrbit.mul_toRat]
 255      exact mul_ne_zero hx hy
 256    have hdiv : (div x y).toRat ≠ 0 := by
 257      rw [div_toRat]
 258      exact div_ne_zero hx hy
 259    rw [zeroSpikeDoubledTrace_nonzero hxy,
 260      zeroSpikeDoubledTrace_nonzero hdiv,
 261      zeroSpikeDoubledTrace_nonzero hx,
 262      zeroSpikeDoubledTrace_nonzero hy]
 263    rw [RatioOrbit.crossEq_iff_toRat_eq]
 264    rw [RatioOrbit.add_toRat, RatioOrbit.mul_toRat,
 265      nativeCostDoubledTrace, nativeCostDoubledTrace, nativeCostDoubledTrace,
 266      nativeCostDoubledTrace, doubledTraceValue, doubledTraceValue,
 267      doubledTraceValue, doubledTraceValue,
 268      RatioOrbit.mul_toRat, RatioOrbit.mul_toRat, RatioOrbit.mul_toRat,
 269      RatioOrbit.mul_toRat, RatioOrbit.add_toRat, RatioOrbit.add_toRat,
 270      RatioOrbit.add_toRat, RatioOrbit.add_toRat, two_toRat,
 271      RatioOrbit.one_toRat, onRatioOrbit_toRat, onRatioOrbit_toRat,
 272      onRatioOrbit_toRat, onRatioOrbit_toRat, RatioOrbit.mul_toRat, div_toRat]
 273    field_simp [hx, hy, mul_ne_zero hx hy]
 274    ring
 275  · rw [RatioOrbit.crossEq_iff_toRat_eq]
 276    rw [zeroSpikeDoubledTrace_nonzero (by
 277      rw [RatioOrbit.one_toRat]
 278      norm_num : RatioOrbit.one.toRat ≠ 0)]
 279    rw [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.mul_toRat,
 280      RatioOrbit.add_toRat, two_toRat, RatioOrbit.one_toRat,
 281      onRatioOrbit_toRat, RatioOrbit.one_toRat]
 282    norm_num
 283  · rw [zeroSpikeDoubledTrace_nonzero (by
 284      rw [two_toRat]
 285      norm_num : two.toRat ≠ 0)]
 286    exact RatioOrbit.crossEq_refl _
 287
 288theorem zeroSpikeDoubledTrace_no_ratio_character_trace :
 289    ¬ ∃ χ : RatioOrbit → RatioOrbit,
 290        PRCRatioCharacter χ ∧
 291          ∀ q : RatioOrbit,
 292            RatioOrbit.crossEq
 293              (RatioOrbit.add (χ q) (RatioOrbit.recip (χ q)))
 294              (zeroSpikeDoubledTrace q) := by
 295  intro h
 296  rcases h with ⟨χ, hχ, htrace⟩
 297  let a : ℚ := (χ RatioOrbit.zero).toRat
 298  have hrec := hχ.reciprocal RatioOrbit.zero
 299  have hrecRat : a = a⁻¹ := by
 300    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_zero_eq,
 301      RatioOrbit.recip_toRat] at hrec
 302    exact hrec
 303  have htraceZero := htrace RatioOrbit.zero
 304  have htraceRat : a + a⁻¹ = 1 := by
 305    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
 306      RatioOrbit.recip_toRat, zeroSpikeDoubledTrace_zero,
 307      RatioOrbit.one_toRat] at htraceZero
 308    exact htraceZero
 309  have haHalf : a = (1 / 2 : ℚ) := by
 310    linarith
 311  rw [haHalf] at hrecRat
 312  norm_num at hrecRat
 313
 314theorem PRCDoubledTraceCoherentRootTarget_refuted :
 315    ¬ PRCDoubledTraceCoherentRootTarget := by
 316  intro hroot
 317  exact zeroSpikeDoubledTrace_no_ratio_character_trace
 318    (hroot zeroSpikeDoubledTrace zeroSpikeDoubledTrace_hypotheses)
 319
 320/-- Missing zero-orbit compatibility for doubled traces. The nonzero
 321d'Alembert law cannot constrain `T(0)`, but character traces with the intended
 322zero image have doubled trace `0` at the zero orbit. -/
 323def PRCDoubledTraceZeroCalibrated (T : RatioOrbit → RatioOrbit) : Prop :=
 324  RatioOrbit.crossEq (T RatioOrbit.zero) RatioOrbit.zero
 325
 326theorem zeroSpikeDoubledTrace_not_zero_calibrated :
 327    ¬ PRCDoubledTraceZeroCalibrated zeroSpikeDoubledTrace := by
 328  intro h
 329  rw [PRCDoubledTraceZeroCalibrated, RatioOrbit.crossEq_iff_toRat_eq,
 330    zeroSpikeDoubledTrace_zero, RatioOrbit.one_toRat,
 331    RatioOrbit.zero_toRat] at h
 332  norm_num at h
 333
 334/-- Repaired coherent-root target after the zero-spike no-go. -/
 335def PRCDoubledTraceZeroCalibratedCoherentRootTarget : Prop :=
 336  ∀ T : RatioOrbit → RatioOrbit,
 337    PRCDoubledTraceHypotheses T →
 338      PRCDoubledTraceZeroCalibrated T →
 339        ∃ χ : RatioOrbit → RatioOrbit,
 340          PRCRatioCharacter χ ∧
 341            ∀ q : RatioOrbit,
 342              RatioOrbit.crossEq
 343                (RatioOrbit.add (χ q) (RatioOrbit.recip (χ q)))
 344                (T q)
 345
 346/-- The denominator `3` appearing in the linear root extraction
 347`χ(q) = (2*T(2q)-T(q))/3`. -/
 348def traceRootDenominator : RatioOrbit :=
 349  RatioOrbit.add two RatioOrbit.one
 350
 351@[simp] theorem traceRootDenominator_toRat :
 352    traceRootDenominator.toRat = 3 := by
 353  rw [traceRootDenominator, RatioOrbit.add_toRat, two_toRat,
 354    RatioOrbit.one_toRat]
 355  norm_num
 356
 357/-- Linear root candidate forced by the split trace at the distinguished
 358axis `2`: if `T(q)=χ(q)+χ(q)⁻¹` and `χ(2)=2`, then
 359`χ(q) = (2*T(2q)-T(q))/3`. The zero case is supplied by the repaired
 360zero-calibration field. -/
 361def traceRootCandidate (T : RatioOrbit → RatioOrbit) (q : RatioOrbit) :
 362    RatioOrbit :=
 363  if q.toRat = 0 then
 364    RatioOrbit.zero
 365  else
 366    RatioOrbit.mul
 367      (RatioOrbit.sub
 368        (RatioOrbit.mul two (T (RatioOrbit.mul two q)))
 369        (T q))
 370      (RatioOrbit.recip traceRootDenominator)
 371
 372theorem traceRootCandidate_zero (T : RatioOrbit → RatioOrbit) :
 373    traceRootCandidate T RatioOrbit.zero = RatioOrbit.zero := by
 374  rw [traceRootCandidate, if_pos RatioOrbit.zero_toRat]
 375
 376theorem traceRootCandidate_toRat_of_nonzero
 377    (T : RatioOrbit → RatioOrbit) {q : RatioOrbit} (hq : q.toRat ≠ 0) :
 378    (traceRootCandidate T q).toRat =
 379      (2 * (T (RatioOrbit.mul two q)).toRat - (T q).toRat) / 3 := by
 380  rw [traceRootCandidate, if_neg hq]
 381  rw [RatioOrbit.mul_toRat, RatioOrbit.sub_toRat, RatioOrbit.mul_toRat,
 382    two_toRat, RatioOrbit.recip_toRat, traceRootDenominator_toRat]
 383  norm_num
 384  ring
 385
 386/-- Exact linear-root version of the repaired doubled-trace root problem. -/
 387def PRCDoubledTraceLinearRootCandidateWorks
 388    (T : RatioOrbit → RatioOrbit) : Prop :=
 389  PRCRatioCharacter (traceRootCandidate T) ∧
 390    ∀ q : RatioOrbit,
 391      RatioOrbit.crossEq
 392        (RatioOrbit.add
 393          (traceRootCandidate T q)
 394          (RatioOrbit.recip (traceRootCandidate T q)))
 395        (T q)
 396
 397def PRCDoubledTraceZeroCalibratedLinearRootTarget : Prop :=
 398  ∀ T : RatioOrbit → RatioOrbit,
 399    PRCDoubledTraceHypotheses T →
 400      PRCDoubledTraceZeroCalibrated T →
 401        PRCDoubledTraceLinearRootCandidateWorks T
 402
 403theorem PRCDoubledTraceZeroCalibratedCoherentRootTarget_of_linear_root
 404    (hlinear : PRCDoubledTraceZeroCalibratedLinearRootTarget) :
 405    PRCDoubledTraceZeroCalibratedCoherentRootTarget := by
 406  intro T hT hzero
 407  rcases hlinear T hT hzero with ⟨hχ, htrace⟩
 408  exact ⟨traceRootCandidate T, hχ, htrace⟩
 409
 410theorem PRCNativeCostCharacterTraceLiftTarget_of_doubled_trace_coherent_root
 411    (hroot : PRCDoubledTraceCoherentRootTarget) :
 412    PRCNativeCostCharacterTraceLiftTarget := by
 413  intro F hF
 414  rcases hroot (nativeCostDoubledTrace F)
 415      (nativeCostDoubledTrace_hypotheses_of_native_cost_hypotheses hF) with
 416    ⟨χ, hχ, hχtrace⟩
 417  exact ⟨χ, hχ, hχtrace⟩
 418
 419/-- First exact blocker: every admissible PRC-native RCL cost should factor
 420through a ratio character. This is the discrete d'Alembert factorization step. -/
 421def PRCNativeCostCharacterFactorizationTarget : Prop :=
 422  ∀ F : RatioOrbit → RatioOrbit,
 423    PRCNativeCostHypotheses F →
 424      ∃ χ : RatioOrbit → RatioOrbit,
 425        PRCRatioCharacter χ ∧
 426          ∀ q : RatioOrbit,
 427            RatioOrbit.crossEq (F q) (costFromCharacter χ q)
 428
 429theorem PRCNativeCostCharacterTraceLiftTarget_of_factorization
 430    (hfactor : PRCNativeCostCharacterFactorizationTarget) :
 431    PRCNativeCostCharacterTraceLiftTarget := by
 432  intro F hF
 433  rcases hfactor F hF with ⟨χ, hχ, hcost⟩
 434  exact ⟨χ, hχ, PRCCharacterTraceMatchesCost_of_cost_crossEq hcost⟩
 435
 436theorem PRCNativeCostCharacterFactorizationTarget_of_trace_lift
 437    (htrace : PRCNativeCostCharacterTraceLiftTarget) :
 438    PRCNativeCostCharacterFactorizationTarget := by
 439  intro F hF
 440  rcases htrace F hF with ⟨χ, hχ, hχtrace⟩
 441  exact ⟨χ, hχ, cost_crossEq_of_PRCCharacterTraceMatchesCost hχtrace⟩
 442
 443theorem PRCNativeCostCharacterFactorizationTarget_of_doubled_trace_coherent_root
 444    (hroot : PRCDoubledTraceCoherentRootTarget) :
 445    PRCNativeCostCharacterFactorizationTarget :=
 446  PRCNativeCostCharacterFactorizationTarget_of_trace_lift
 447    (PRCNativeCostCharacterTraceLiftTarget_of_doubled_trace_coherent_root hroot)
 448
 449theorem PRCNativeCostCharacterFactorizationTarget_iff_trace_lift :
 450    PRCNativeCostCharacterFactorizationTarget ↔
 451      PRCNativeCostCharacterTraceLiftTarget := by
 452  constructor
 453  · exact PRCNativeCostCharacterTraceLiftTarget_of_factorization
 454  · exact PRCNativeCostCharacterFactorizationTarget_of_trace_lift
 455
 456/-- Second exact blocker: a calibrated rational character cost must be the
 457canonical identity-character cost. This is where prime-direction freedom has
 458to be eliminated. -/
 459def PRCNativeCostCharacterRigidityTarget : Prop :=
 460  ∀ χ : RatioOrbit → RatioOrbit,
 461    PRCRatioCharacter χ →
 462      RatioOrbit.crossEq (costFromCharacter χ two) (onRatioOrbit two) →
 463        ∀ q : RatioOrbit,
 464          RatioOrbit.crossEq (costFromCharacter χ q) (onRatioOrbit q)
 465
 466/-- The ratio direction associated to a nonzero orbit position. -/
 467def orbitDirection (p : DistinctionNat) (_hp : p ≠ DistinctionNat.zero) :
 468    RatioOrbit where
 469  num := SignedOrbit.ofOrbit p
 470  den := DistinctionNat.one
 471  den_ne_zero := DistinctionNat.one_ne_zero
 472
 473/-- The ratio direction associated to a native prime orbit. -/
 474def primeDirection (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
 475    RatioOrbit :=
 476  orbitDirection p hp.1
 477
 478/-- A ratio character is calibrated on every native prime direction when its
 479generated cost agrees with canonical J-cost on each prime orbit. -/
 480def PRCCharacterPrimeDirectionCalibrated
 481    (χ : RatioOrbit → RatioOrbit) : Prop :=
 482  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 483    RatioOrbit.crossEq
 484      (costFromCharacter χ (primeDirection p hp))
 485      (onRatioOrbit (primeDirection p hp))
 486
 487/-- Sharper target A: the two-point calibration at orbit `2` must force
 488calibration on every prime direction. This is the exact place where the present
 489surface lacks control of independent prime axes. -/
 490def PRCTwoCalibrationForcesPrimeCalibrationTarget : Prop :=
 491  ∀ χ : RatioOrbit → RatioOrbit,
 492    PRCRatioCharacter χ →
 493      RatioOrbit.crossEq (costFromCharacter χ two) (onRatioOrbit two) →
 494        PRCCharacterPrimeDirectionCalibrated χ
 495
 496/-- Sharper target B: once every prime direction is calibrated, the character
 497cost propagates to every rational direction. This is the unique-factorization
 498side of the rigidity problem. -/
 499def PRCPrimeCalibrationPropagationTarget : Prop :=
 500  ∀ χ : RatioOrbit → RatioOrbit,
 501    PRCRatioCharacter χ →
 502      PRCCharacterPrimeDirectionCalibrated χ →
 503        ∀ q : RatioOrbit,
 504          RatioOrbit.crossEq (costFromCharacter χ q) (onRatioOrbit q)
 505
 506theorem onRatioOrbit_congr {a b : RatioOrbit}
 507    (h : RatioOrbit.crossEq a b) :
 508    RatioOrbit.crossEq (onRatioOrbit a) (onRatioOrbit b) := by
 509  rw [RatioOrbit.crossEq_iff_toRat_eq] at h ⊢
 510  rw [onRatioOrbit_toRat, onRatioOrbit_toRat, h]
 511
 512theorem jcost_eq_forces_same_or_reciprocal {a b : RatioOrbit}
 513    (ha : a.toRat ≠ 0) (hb : b.toRat ≠ 0)
 514    (h : RatioOrbit.crossEq (onRatioOrbit a) (onRatioOrbit b)) :
 515    RatioOrbit.crossEq a b ∨
 516      RatioOrbit.crossEq a (RatioOrbit.recip b) := by
 517  rw [RatioOrbit.crossEq_iff_toRat_eq] at h
 518  rw [onRatioOrbit_toRat, onRatioOrbit_toRat] at h
 519  rw [RatioOrbit.crossEq_iff_toRat_eq,
 520    RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat]
 521  have hsum : a.toRat + a.toRat⁻¹ = b.toRat + b.toRat⁻¹ := by
 522    linarith
 523  have hprod :
 524      (a.toRat - b.toRat) * (a.toRat * b.toRat - 1) = 0 := by
 525    have hmul :=
 526      congrArg (fun t : ℚ => t * (a.toRat * b.toRat)) hsum
 527    field_simp [ha, hb] at hmul
 528    ring_nf at hmul ⊢
 529    linarith
 530  rcases mul_eq_zero.mp hprod with hsame | hrec
 531  · left
 532    linarith
 533  · right
 534    have hmul : a.toRat * b.toRat = 1 := by
 535      linarith
 536    have hb_inv : b.toRat * b.toRat⁻¹ = 1 := by
 537      field_simp [hb]
 538    calc
 539      a.toRat = a.toRat * (b.toRat * b.toRat⁻¹) := by
 540        rw [hb_inv, mul_one]
 541      _ = (a.toRat * b.toRat) * b.toRat⁻¹ := by
 542        ring
 543      _ = b.toRat⁻¹ := by
 544        rw [hmul, one_mul]
 545
 546theorem primeDirection_toRat_ne_zero
 547    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
 548    (primeDirection p hp).toRat ≠ 0 := by
 549  have hpNat : p.toNat ≠ 0 := by
 550    intro hzero
 551    apply hp.1
 552    apply DistinctionNat.toNat_inj
 553    rw [hzero, DistinctionNat.toNat_zero]
 554  unfold primeDirection orbitDirection RatioOrbit.toRat
 555  simp [SignedOrbit.ofOrbit_toInt, DistinctionNat.one_toNat, hpNat]
 556
 557theorem primeDirection_toRat
 558    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
 559    (primeDirection p hp).toRat = (p.toNat : ℚ) := by
 560  unfold primeDirection orbitDirection RatioOrbit.toRat
 561  simp [SignedOrbit.ofOrbit_toInt, DistinctionNat.one_toNat]
 562
 563theorem twoOrbit_primeOrbit :
 564    DistinctionNat.primeOrbit twoOrbit := by
 565  rw [DistinctionNat.primeOrbit_iff_toNat_no_nontrivial_factor]
 566  constructor
 567  · rw [twoOrbit_toNat]
 568    norm_num
 569  · constructor
 570    · rw [twoOrbit_toNat]
 571      norm_num
 572    · intro hfac
 573      rcases hfac with ⟨a, b, _ha0, _hb0, ha1, hb1, hmul⟩
 574      have hprime : Nat.Prime 2 := by decide
 575      have hmul2 : a * b = 2 := by
 576        simpa [twoOrbit_toNat] using hmul
 577      have hadvd : a ∣ 2 := ⟨b, hmul2.symm⟩
 578      rcases hprime.eq_one_or_self_of_dvd a hadvd with ha | ha
 579      · exact ha1 ha
 580      · have hb : b = 1 := by
 581          rw [ha] at hmul2
 582          omega
 583        exact hb1 hb
 584
 585/-- The three-step orbit position, used as the canonical non-`2` prime witness. -/
 586def threeOrbit : DistinctionNat :=
 587  DistinctionNat.succ twoOrbit
 588
 589@[simp] theorem threeOrbit_toNat :
 590    threeOrbit.toNat = 3 := by
 591  unfold threeOrbit
 592  rw [DistinctionNat.toNat_succ, twoOrbit_toNat]
 593
 594theorem threeOrbit_primeOrbit :
 595    DistinctionNat.primeOrbit threeOrbit := by
 596  rw [DistinctionNat.primeOrbit_iff_toNat_no_nontrivial_factor]
 597  constructor
 598  · rw [threeOrbit_toNat]
 599    norm_num
 600  · constructor
 601    · rw [threeOrbit_toNat]
 602      norm_num
 603    · intro hfac
 604      rcases hfac with ⟨a, b, _ha0, _hb0, ha1, hb1, hmul⟩
 605      have hprime : Nat.Prime 3 := by decide
 606      have hmul3 : a * b = 3 := by
 607        simpa [threeOrbit_toNat] using hmul
 608      have hadvd : a ∣ 3 := ⟨b, hmul3.symm⟩
 609      rcases hprime.eq_one_or_self_of_dvd a hadvd with ha | ha
 610      · exact ha1 ha
 611      · have hb : b = 1 := by
 612          rw [ha] at hmul3
 613          omega
 614        exact hb1 hb
 615
 616theorem threeOrbit_ne_twoOrbit :
 617    threeOrbit ≠ twoOrbit := by
 618  intro h
 619  have hnat := congrArg DistinctionNat.toNat h
 620  rw [threeOrbit_toNat, twoOrbit_toNat] at hnat
 621  norm_num at hnat
 622
 623theorem orbitDirection_toRat
 624    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero) :
 625    (orbitDirection p hp).toRat = (p.toNat : ℚ) := by
 626  unfold orbitDirection RatioOrbit.toRat
 627  simp [SignedOrbit.ofOrbit_toInt, DistinctionNat.one_toNat]
 628
 629theorem primeDirection_not_crossEq_recip
 630    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
 631    ¬ RatioOrbit.crossEq
 632      (primeDirection p hp)
 633      (RatioOrbit.recip (primeDirection p hp)) := by
 634  intro h
 635  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
 636    primeDirection_toRat] at h
 637  have hpNat0 : p.toNat ≠ 0 := by
 638    intro hzero
 639    apply hp.1
 640    apply DistinctionNat.toNat_inj
 641    rw [hzero, DistinctionNat.toNat_zero]
 642  have hpNatQ0 : (p.toNat : ℚ) ≠ 0 := by
 643    exact_mod_cast hpNat0
 644  have hsqQ : (p.toNat : ℚ) * (p.toNat : ℚ) = 1 := by
 645    have hmul := congrArg (fun t : ℚ => t * (p.toNat : ℚ)) h
 646    field_simp [hpNatQ0] at hmul
 647    ring_nf at hmul ⊢
 648    exact hmul
 649  have hsqNat : p.toNat * p.toNat = 1 := by
 650    exact_mod_cast hsqQ
 651  have hle : p.toNat ≤ 1 := by
 652    by_contra hnot
 653    have hge : 2 ≤ p.toNat := by omega
 654    have hprodge : 2 ≤ p.toNat * p.toNat := by
 655      calc
 656        2 ≤ 2 * 2 := by norm_num
 657        _ ≤ p.toNat * p.toNat := Nat.mul_le_mul hge hge
 658    omega
 659  have hpOne : p.toNat = 1 := by omega
 660  exact hp.2.1 ((DistinctionNat.unit_iff_toNat_eq_one p).mpr hpOne)
 661
 662theorem orbitDirection_nonunit_not_crossEq_recip
 663    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero)
 664    (hunit : ¬ DistinctionNat.unit p) :
 665    ¬ RatioOrbit.crossEq
 666      (orbitDirection p hp)
 667      (RatioOrbit.recip (orbitDirection p hp)) := by
 668  intro h
 669  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
 670    orbitDirection_toRat] at h
 671  have hpNat0 : p.toNat ≠ 0 := by
 672    intro hzero
 673    apply hp
 674    apply DistinctionNat.toNat_inj
 675    rw [hzero, DistinctionNat.toNat_zero]
 676  have hpNatQ0 : (p.toNat : ℚ) ≠ 0 := by
 677    exact_mod_cast hpNat0
 678  have hsqQ : (p.toNat : ℚ) * (p.toNat : ℚ) = 1 := by
 679    have hmul := congrArg (fun t : ℚ => t * (p.toNat : ℚ)) h
 680    field_simp [hpNatQ0] at hmul
 681    ring_nf at hmul ⊢
 682    exact hmul
 683  have hsqNat : p.toNat * p.toNat = 1 := by
 684    exact_mod_cast hsqQ
 685  have hle : p.toNat ≤ 1 := by
 686    by_contra hnot
 687    have hge : 2 ≤ p.toNat := by omega
 688    have hprodge : 2 ≤ p.toNat * p.toNat := by
 689      calc
 690        2 ≤ 2 * 2 := by norm_num
 691        _ ≤ p.toNat * p.toNat := Nat.mul_le_mul hge hge
 692    omega
 693  have hpOne : p.toNat = 1 := by omega
 694  exact hunit ((DistinctionNat.unit_iff_toNat_eq_one p).mpr hpOne)
 695
 696theorem orbit_succ_ne_zero (p : DistinctionNat) :
 697    DistinctionNat.succ p ≠ DistinctionNat.zero := by
 698  intro h
 699  exact DistinctionNat.zero_ne_succ p h.symm
 700
 701theorem orbitDirection_succ_crossEq_add_one
 702    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero) :
 703    RatioOrbit.crossEq
 704      (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))
 705      (RatioOrbit.add (orbitDirection p hp) RatioOrbit.one) := by
 706  rw [RatioOrbit.crossEq_iff_toRat_eq]
 707  rw [RatioOrbit.add_toRat, RatioOrbit.one_toRat,
 708    orbitDirection_toRat, orbitDirection_toRat, DistinctionNat.toNat_succ]
 709  norm_num
 710
 711theorem RatioOrbit.add_right_one_cancel {a b : RatioOrbit}
 712    (h : RatioOrbit.crossEq
 713      (RatioOrbit.add a RatioOrbit.one)
 714      (RatioOrbit.add b RatioOrbit.one)) :
 715    RatioOrbit.crossEq a b := by
 716  rw [RatioOrbit.crossEq_iff_toRat_eq] at h ⊢
 717  rw [RatioOrbit.add_toRat, RatioOrbit.add_toRat, RatioOrbit.one_toRat] at h
 718  linarith
 719
 720/-- Native trace carried by an orbit position, defined by recursion on the
 721δ-orbit rather than by importing verifier `Nat` as object theory. -/
 722def orbitPositionTrace : DistinctionNat → Trace
 723  | DistinctionNat.zero => Trace.empty
 724  | DistinctionNat.succ n => Trace.step (orbitPositionTrace n)
 725
 726theorem orbitPositionTrace_add_extends_left
 727    (p r : DistinctionNat) :
 728    Trace.Extends (orbitPositionTrace p) (orbitPositionTrace (p + r)) := by
 729  induction r with
 730  | zero =>
 731      rw [DistinctionNat.add_zero_eq]
 732      exact Trace.extends_refl (orbitPositionTrace p)
 733  | succ r ih =>
 734      rw [DistinctionNat.add_succ_eq]
 735      rcases ih with ⟨suffix, hsuffix⟩
 736      refine ⟨Trace.step suffix, ?_⟩
 737      simp [Trace.step, orbitPositionTrace, hsuffix]
 738
 739theorem orbitPositionTrace_add_extends_right
 740    (p r : DistinctionNat) :
 741    Trace.Extends (orbitPositionTrace r) (orbitPositionTrace (p + r)) := by
 742  rw [DistinctionNat.add_comm p r]
 743  exact orbitPositionTrace_add_extends_left r p
 744
 745theorem orbitPositionTrace_extends_of_toNat_le
 746    {p r : DistinctionNat} (hpr : p.toNat ≤ r.toNat) :
 747    Trace.Extends (orbitPositionTrace p) (orbitPositionTrace r) := by
 748  let k : DistinctionNat := DistinctionNat.ofNat (r.toNat - p.toNat)
 749  have hsum : p + k = r := by
 750    apply DistinctionNat.toNat_inj
 751    rw [DistinctionNat.toNat_add, DistinctionNat.toNat_ofNat]
 752    omega
 753  rw [← hsum]
 754  exact orbitPositionTrace_add_extends_left p k
 755
 756theorem orbitPositionTrace_comparable
 757    (p r : DistinctionNat) :
 758    Trace.Extends (orbitPositionTrace p) (orbitPositionTrace r) ∨
 759      Trace.Extends (orbitPositionTrace r) (orbitPositionTrace p) := by
 760  by_cases hpr : p.toNat ≤ r.toNat
 761  · exact Or.inl (orbitPositionTrace_extends_of_toNat_le hpr)
 762  · have hrp : r.toNat ≤ p.toNat := by omega
 763    exact Or.inr (orbitPositionTrace_extends_of_toNat_le hrp)
 764
 765/-- Two prime axes are trace-connected when their native orbit traces admit a
 766common finite δ-extension. -/
 767def PRCPrimeAxisTraceConnected
 768    (p : DistinctionNat) (_hp : DistinctionNat.primeOrbit p)
 769    (r : DistinctionNat) (_hr : DistinctionNat.primeOrbit r) : Prop :=
 770  ∃ T : Trace,
 771    Trace.Extends (orbitPositionTrace p) T ∧
 772      Trace.Extends (orbitPositionTrace r) T
 773
 774theorem PRCPrimeAxisTraceConnected_proved
 775    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p)
 776    (r : DistinctionNat) (hr : DistinctionNat.primeOrbit r) :
 777    PRCPrimeAxisTraceConnected p hp r hr := by
 778  exact ⟨orbitPositionTrace (p + r),
 779    orbitPositionTrace_add_extends_left p r,
 780    orbitPositionTrace_add_extends_right p r⟩
 781
 782/-- A character has global cost orientation when every rational direction is
 783sent either to itself or to its reciprocal. Since J-cost is reciprocal-symmetric,
 784this is exactly the orientation information needed for cost propagation. -/
 785def PRCCharacterGlobalCostOrientation
 786    (χ : RatioOrbit → RatioOrbit) : Prop :=
 787  ∀ q : RatioOrbit,
 788    RatioOrbit.crossEq (χ q) q ∨
 789      RatioOrbit.crossEq (χ q) (RatioOrbit.recip q)
 790
 791/-- Sharper propagation blocker: prime calibration must force a coherent global
 792orientation. Without this, independent prime inversions can preserve prime
 793costs while breaking composite costs. -/
 794def PRCPrimeCalibrationForcesGlobalOrientationTarget : Prop :=
 795  ∀ χ : RatioOrbit → RatioOrbit,
 796    PRCRatioCharacter χ →
 797      PRCCharacterPrimeDirectionCalibrated χ →
 798        PRCCharacterGlobalCostOrientation χ
 799
 800/-- Prime-axis orientation is coherent when the character chooses the same
 801orientation on every native prime direction: all identity or all reciprocal. -/
 802def PRCCharacterPrimeOrientationCoherent
 803    (χ : RatioOrbit → RatioOrbit) : Prop :=
 804  (∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 805    RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) ∨
 806  (∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 807    RatioOrbit.crossEq (χ (primeDirection p hp))
 808      (RatioOrbit.recip (primeDirection p hp)))
 809
 810def twoPrimeDirection : RatioOrbit :=
 811  primeDirection twoOrbit twoOrbit_primeOrbit
 812
 813@[simp] theorem twoPrimeDirection_toRat :
 814    twoPrimeDirection.toRat = 2 := by
 815  unfold twoPrimeDirection
 816  rw [primeDirection_toRat, twoOrbit_toNat]
 817  norm_num
 818
 819/-- Distinguished-prime branch control: once the branch at orbit `2` is known,
 820the same branch holds on every native prime axis. This is the one-axis version
 821of coherent prime orientation. -/
 822def PRCCharacterTwoPrimeBranchControlsPrimes
 823    (χ : RatioOrbit → RatioOrbit) : Prop :=
 824  (RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection →
 825    ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 826      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) ∧
 827  (RatioOrbit.crossEq (χ twoPrimeDirection)
 828      (RatioOrbit.recip twoPrimeDirection) →
 829    ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 830      RatioOrbit.crossEq (χ (primeDirection p hp))
 831        (RatioOrbit.recip (primeDirection p hp)))
 832
 833/-- Identity-iff-two normal form: identity orientation on a native prime axis is
 834equivalent to identity orientation on the distinguished orbit-`2` prime axis. -/
 835def PRCCharacterPrimeIdentityIffTwoPrimeIdentity
 836    (χ : RatioOrbit → RatioOrbit) : Prop :=
 837  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 838    RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) ↔
 839      RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection
 840
 841/-- One-sided normal form: identity at any calibrated prime axis forces
 842identity at the distinguished orbit-`2` prime axis. The reverse implication is
 843recovered at target level by applying the same statement to the reciprocal twist
 844of the character. -/
 845def PRCCharacterPrimeIdentityForcesTwoPrimeIdentity
 846    (χ : RatioOrbit → RatioOrbit) : Prop :=
 847  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 848    RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
 849      RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection
 850
 851/-- Contrapositive branch normal form: if the distinguished orbit-`2` prime axis
 852is reciprocal-oriented, no native prime axis may be identity-oriented. -/
 853def PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity
 854    (χ : RatioOrbit → RatioOrbit) : Prop :=
 855  RatioOrbit.crossEq (χ twoPrimeDirection)
 856      (RatioOrbit.recip twoPrimeDirection) →
 857    ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 858      ¬ RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
 859
 860/-- Witness form of the orbit-`2` branch obstruction: reciprocal orientation at
 861the distinguished prime axis cannot coexist with even one identity-oriented
 862native prime witness. This is the atomic two-specific mixed-witness blocker. -/
 863def PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness
 864    (χ : RatioOrbit → RatioOrbit) : Prop :=
 865  RatioOrbit.crossEq (χ twoPrimeDirection)
 866      (RatioOrbit.recip twoPrimeDirection) →
 867    (∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
 868      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) →
 869      False
 870
 871/-- The exact mixed branch configuration that would refute the orbit-`2`
 872witness exclusion: the distinguished prime axis is reciprocal-oriented while
 873some native prime axis remains identity-oriented. -/
 874def PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed
 875    (χ : RatioOrbit → RatioOrbit) : Prop :=
 876  RatioOrbit.crossEq (χ twoPrimeDirection)
 877      (RatioOrbit.recip twoPrimeDirection) ∧
 878    ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
 879      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
 880
 881/-- Sharpened mixed branch configuration: the identity-oriented native prime
 882witness is explicitly not the distinguished orbit-`2` axis. -/
 883def PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed
 884    (χ : RatioOrbit → RatioOrbit) : Prop :=
 885  RatioOrbit.crossEq (χ twoPrimeDirection)
 886      (RatioOrbit.recip twoPrimeDirection) ∧
 887    ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
 888      p ≠ twoOrbit ∧
 889        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
 890
 891/-- Concrete two-adic axis-twist form: orbit `2` is reciprocal-oriented while
 892every native prime axis other than `2` is identity-oriented. This is the obvious
 893countermodel one would construct from a native two-adic valuation. -/
 894def PRCCharacterTwoAdicAxisTwist
 895    (χ : RatioOrbit → RatioOrbit) : Prop :=
 896  RatioOrbit.crossEq (χ twoPrimeDirection)
 897      (RatioOrbit.recip twoPrimeDirection) ∧
 898    ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
 899      p ≠ twoOrbit →
 900        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
 901
 902/-- Uncalibrated construction target for the two-adic axis twist. Pass 115 proves
 903the prime-calibration field is automatic once this branch behavior is carried by
 904a ratio character. -/
 905def PRCTwoAdicAxisTwistRatioCharacter : Prop :=
 906  ∃ χ : RatioOrbit → RatioOrbit,
 907    PRCRatioCharacter χ ∧
 908      PRCCharacterTwoAdicAxisTwist χ
 909
 910/-- Verifier-backed section from rationals to ratio orbits. This is deliberately
 911not a new PRC primitive; it is used to test whether the current character
 912interface already admits a classical rational countermodel. -/
 913def ratioOrbitOfRat (x : ℚ) : RatioOrbit where
 914  num := ⟨DistinctionNat.ofNat x.num.toNat,
 915    DistinctionNat.ofNat (-x.num).toNat⟩
 916  den := DistinctionNat.ofNat x.den
 917  den_ne_zero := by
 918    intro h
 919    have hnat := congrArg DistinctionNat.toNat h
 920    rw [DistinctionNat.toNat_ofNat, DistinctionNat.toNat_zero] at hnat
 921    exact x.den_nz hnat
 922
 923theorem ratioOrbitOfRat_toRat (x : ℚ) :
 924    (ratioOrbitOfRat x).toRat = x := by
 925  unfold ratioOrbitOfRat RatioOrbit.toRat SignedOrbit.toInt
 926  rw [DistinctionNat.toNat_ofNat, DistinctionNat.toNat_ofNat,
 927    DistinctionNat.toNat_ofNat]
 928  have hnum :
 929      ((x.num.toNat : ℕ) : ℤ) - (((-x.num).toNat : ℕ) : ℤ) =
 930        x.num := by
 931    omega
 932  rw [hnum]
 933  exact Rat.num_div_den x
 934
 935/-- The ratio-orbit display of `-1`, used to expose the missing signed-unit
 936calibration in prime-to-global orientation propagation. -/
 937noncomputable def negativeOneRatio : RatioOrbit :=
 938  ratioOrbitOfRat (-1)
 939
 940@[simp] theorem negativeOneRatio_toRat :
 941    negativeOneRatio.toRat = -1 := by
 942  rw [negativeOneRatio, ratioOrbitOfRat_toRat]
 943
 944/-- A character is calibrated on the signed unit when it fixes the ratio orbit
 945`-1`. Prime-direction data alone cannot force this. -/
 946def PRCCharacterSignedUnitCalibrated
 947    (χ : RatioOrbit → RatioOrbit) : Prop :=
 948  RatioOrbit.crossEq (χ negativeOneRatio) negativeOneRatio
 949
 950/-- Exact signed-ratio decomposition needed after pass 279: every nonzero raw
 951ratio is either a positive orbit numerator times the reciprocal denominator, or
 952the signed unit times such a positive ratio. -/
 953def PRCSignedRatioDecompositionTarget : Prop :=
 954  ∀ q : RatioOrbit,
 955    q.toRat ≠ 0 →
 956      (∃ n d : DistinctionNat,
 957        ∃ hn : n ≠ DistinctionNat.zero,
 958        ∃ hd : d ≠ DistinctionNat.zero,
 959          RatioOrbit.crossEq q
 960            (RatioOrbit.mul (orbitDirection n hn)
 961              (RatioOrbit.recip (orbitDirection d hd)))) ∨
 962      (∃ n d : DistinctionNat,
 963        ∃ hn : n ≠ DistinctionNat.zero,
 964        ∃ hd : d ≠ DistinctionNat.zero,
 965          RatioOrbit.crossEq q
 966            (RatioOrbit.mul negativeOneRatio
 967              (RatioOrbit.mul (orbitDirection n hn)
 968                (RatioOrbit.recip (orbitDirection d hd)))))
 969
 970theorem PRCSignedRatioDecompositionTarget_proved :
 971    PRCSignedRatioDecompositionTarget := by
 972  intro q hq
 973  have hnumInt : q.num.toInt ≠ 0 := by
 974    intro hzero
 975    apply hq
 976    unfold RatioOrbit.toRat
 977    rw [hzero]
 978    norm_num
 979  have hn : q.num.abs ≠ DistinctionNat.zero :=
 980    SignedOrbit.abs_ne_zero_of_toInt_ne_zero hnumInt
 981  by_cases hnonneg : q.num.nonnegFlag = true
 982  · left
 983    refine ⟨q.num.abs, q.den, hn, q.den_ne_zero, ?_⟩
 984    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
 985      RatioOrbit.recip_toRat, orbitDirection_toRat, orbitDirection_toRat]
 986    unfold RatioOrbit.toRat
 987    have habs : (q.num.abs.toNat : ℤ) = q.num.toInt := by
 988      rw [SignedOrbit.abs_toNat]
 989      exact Int.ofNat_natAbs_of_nonneg
 990        ((SignedOrbit.nonnegFlag_eq_true_iff q.num).mp hnonneg)
 991    have hden : (q.den.toNat : ℚ) ≠ 0 := q.den_cast_ne_zero
 992    rw [show ((q.num.abs.toNat : ℚ) : ℚ) =
 993        ((q.num.toInt : ℤ) : ℚ) by exact_mod_cast habs]
 994    field_simp [hden]
 995  · right
 996    have hflagFalse : q.num.nonnegFlag = false := by
 997      cases hflag : q.num.nonnegFlag with
 998      | false => rfl
 999      | true =>
1000          exfalso
1001          exact hnonneg hflag
1002    refine ⟨q.num.abs, q.den, hn, q.den_ne_zero, ?_⟩
1003    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
1004      negativeOneRatio_toRat, RatioOrbit.mul_toRat, RatioOrbit.recip_toRat,
1005      orbitDirection_toRat, orbitDirection_toRat]
1006    unfold RatioOrbit.toRat
1007    have hneg : q.num.toInt < 0 :=
1008      (SignedOrbit.nonnegFlag_eq_false_iff q.num).mp hflagFalse
1009    have habs : (q.num.abs.toNat : ℤ) = -q.num.toInt := by
1010      rw [SignedOrbit.abs_toNat]
1011      exact Int.ofNat_natAbs_of_nonpos (le_of_lt hneg)
1012    have hden : (q.den.toNat : ℚ) ≠ 0 := q.den_cast_ne_zero
1013    rw [show ((q.num.abs.toNat : ℚ) : ℚ) =
1014        (-q.num.toInt : ℤ) by exact_mod_cast habs]
1015    field_simp [hden]
1016    norm_num
1017
1018/-- Absolute-value character on verifier rational displays. It is a quotient
1019respecting ratio character, but it erases the sign of `-1`. -/
1020noncomputable def absValueCharacter (q : RatioOrbit) : RatioOrbit :=
1021  ratioOrbitOfRat |q.toRat|
1022
1023@[simp] theorem absValueCharacter_toRat (q : RatioOrbit) :
1024    (absValueCharacter q).toRat = |q.toRat| := by
1025  rw [absValueCharacter, ratioOrbitOfRat_toRat]
1026
1027theorem absValueCharacter_ratio_character :
1028    PRCRatioCharacter absValueCharacter where
1029  unit := by
1030    rw [RatioOrbit.crossEq_iff_toRat_eq, absValueCharacter_toRat,
1031      RatioOrbit.one_toRat]
1032    norm_num
1033  multiplicative := by
1034    intro x y
1035    rw [RatioOrbit.crossEq_iff_toRat_eq]
1036    simp [absValueCharacter_toRat, RatioOrbit.mul_toRat, abs_mul]
1037  reciprocal := by
1038    intro q
1039    rw [RatioOrbit.crossEq_iff_toRat_eq]
1040    simp [absValueCharacter_toRat, RatioOrbit.recip_toRat, abs_inv]
1041  normalized_invariant := by
1042    intro q
1043    rw [RatioOrbit.crossEq_iff_toRat_eq, absValueCharacter_toRat,
1044      absValueCharacter_toRat, DistinctionNat.normalizeRatio_toRat]
1045  nonzero_preserving := by
1046    intro q hq
1047    rw [absValueCharacter_toRat]
1048    exact abs_ne_zero.mpr hq
1049
1050theorem absValueCharacter_prime_identity :
1051    ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
1052      RatioOrbit.crossEq (absValueCharacter (primeDirection p hp))
1053        (primeDirection p hp) := by
1054  intro p hp
1055  rw [RatioOrbit.crossEq_iff_toRat_eq, absValueCharacter_toRat,
1056    primeDirection_toRat]
1057  exact abs_of_nonneg (by exact_mod_cast Nat.zero_le p.toNat)
1058
1059theorem absValueCharacter_prime_orientation_coherent :
1060    PRCCharacterPrimeOrientationCoherent absValueCharacter :=
1061  Or.inl absValueCharacter_prime_identity
1062
1063theorem absValueCharacter_prime_calibrated :
1064    PRCCharacterPrimeDirectionCalibrated absValueCharacter := by
1065  intro p hp
1066  exact onRatioOrbit_congr (absValueCharacter_prime_identity p hp)
1067
1068theorem absValueCharacter_two_cost_calibrated :
1069    RatioOrbit.crossEq (costFromCharacter absValueCharacter two)
1070      (onRatioOrbit two) := by
1071  have hcost := absValueCharacter_prime_calibrated twoOrbit twoOrbit_primeOrbit
1072  simpa [twoPrimeDirection, primeDirection] using hcost
1073
1074theorem absValueCharacter_negative_one_cost_not_canonical :
1075    ¬ RatioOrbit.crossEq (costFromCharacter absValueCharacter negativeOneRatio)
1076      (onRatioOrbit negativeOneRatio) := by
1077  intro h
1078  rw [RatioOrbit.crossEq_iff_toRat_eq, costFromCharacter_toRat,
1079    absValueCharacter_toRat, onRatioOrbit_toRat, negativeOneRatio_toRat] at h
1080  norm_num at h
1081
1082theorem PRCNativeCostCharacterRigidityTarget_refuted :
1083    ¬ PRCNativeCostCharacterRigidityTarget := by
1084  intro hrigid
1085  exact absValueCharacter_negative_one_cost_not_canonical
1086    (hrigid absValueCharacter absValueCharacter_ratio_character
1087      absValueCharacter_two_cost_calibrated negativeOneRatio)
1088
1089theorem absValueCharacter_not_signed_unit_calibrated :
1090    ¬ PRCCharacterSignedUnitCalibrated absValueCharacter := by
1091  intro hsign
1092  rw [PRCCharacterSignedUnitCalibrated, RatioOrbit.crossEq_iff_toRat_eq,
1093    absValueCharacter_toRat, negativeOneRatio_toRat] at hsign
1094  norm_num at hsign
1095
1096/-- Classical verifier two-adic branch twist on rational displays. It fixes the
1097odd-prime axes and inverts the orbit-`2` exponent. -/
1098noncomputable def twoAdicTwistRat (x : ℚ) : ℚ :=
1099  x * (2 : ℚ) ^ (-2 * padicValRat 2 x)
1100
1101theorem twoAdicTwistRat_one :
1102    twoAdicTwistRat 1 = 1 := by
1103  unfold twoAdicTwistRat
1104  have h : padicValRat 2 (1 : ℚ) = 0 := by
1105    norm_num [padicValRat.of_int, padicValInt.eq_zero_of_not_dvd]
1106  rw [h]
1107  norm_num
1108
1109theorem twoAdicTwistRat_mul (x y : ℚ) :
1110    twoAdicTwistRat (x * y) =
1111      twoAdicTwistRat x * twoAdicTwistRat y := by
1112  unfold twoAdicTwistRat
1113  by_cases hx : x = 0
1114  · simp [hx]
1115  · by_cases hy : y = 0
1116    · simp [hy]
1117    · rw [padicValRat.mul hx hy]
1118      have hbase : (2 : ℚ) ≠ 0 := by norm_num
1119      have hexp :
1120          -2 * (padicValRat 2 x + padicValRat 2 y) =
1121            (-2 * padicValRat 2 x) + (-2 * padicValRat 2 y) := by
1122        ring
1123      rw [hexp]
1124      rw [zpow_add₀ hbase]
1125      ring
1126
1127theorem twoAdicTwistRat_inv (x : ℚ) :
1128    twoAdicTwistRat x⁻¹ = (twoAdicTwistRat x)⁻¹ := by
1129  unfold twoAdicTwistRat
1130  by_cases hx : x = 0
1131  · simp [hx]
1132  · rw [padicValRat.inv]
1133    have hbase : (2 : ℚ) ≠ 0 := by norm_num
1134    have hxpow : (2 : ℚ) ^ (-2 * padicValRat 2 x) ≠ 0 :=
1135      zpow_ne_zero _ hbase
1136    have hexp :
1137        -2 * (-padicValRat 2 x) = -(-2 * padicValRat 2 x) := by
1138      ring
1139    rw [hexp, zpow_neg]
1140    field_simp [hx, hxpow]
1141
1142theorem twoAdicTwistRat_ne_zero {x : ℚ}
1143    (hx : x ≠ 0) :
1144    twoAdicTwistRat x ≠ 0 := by
1145  unfold twoAdicTwistRat
1146  have hbase : (2 : ℚ) ≠ 0 := by norm_num
1147  exact mul_ne_zero hx (zpow_ne_zero _ hbase)
1148
1149theorem twoAdicTwistRat_two :
1150    twoAdicTwistRat 2 = (2 : ℚ)⁻¹ := by
1151  unfold twoAdicTwistRat
1152  have h : padicValRat 2 (2 : ℚ) = 1 :=
1153    padicValRat.self (by norm_num : 1 < 2)
1154  rw [h]
1155  norm_num
1156
1157theorem padicValRat_two_primeDirection_eq_zero_of_ne_two
1158    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p)
1159    (hpne : p ≠ twoOrbit) :
1160    padicValRat 2 (primeDirection p hp).toRat = 0 := by
1161  rw [primeDirection_toRat]
1162  rw [show (p.toNat : ℚ) = ((p.toNat : ℤ) : ℚ) by norm_num]
1163  rw [padicValRat.of_int]
1164  have hInt : padicValInt 2 (p.toNat : ℤ) = 0 := by
1165    apply padicValInt.eq_zero_of_not_dvd
1166    intro hdivZ
1167    have hdivNat : 2 ∣ p.toNat := by
1168      exact_mod_cast hdivZ
1169    have hdivNat' : twoOrbit.toNat ∣ p.toNat := by
1170      rw [twoOrbit_toNat]
1171      exact hdivNat
1172    have hdiv : DistinctionNat.divides twoOrbit p :=
1173      (DistinctionNat.divides_iff_toNat_dvd twoOrbit p).mpr hdivNat'
1174    rcases DistinctionNat.unit_or_eq_of_divides_prime hp hdiv with hunit | heq
1175    · rw [DistinctionNat.unit_iff_toNat_eq_one, twoOrbit_toNat] at hunit
1176      norm_num at hunit
1177    · exact hpne heq.symm
1178  exact_mod_cast hInt
1179
1180theorem twoAdicTwistRat_primeDirection_of_ne_two
1181    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p)
1182    (hpne : p ≠ twoOrbit) :
1183    twoAdicTwistRat (primeDirection p hp).toRat =
1184      (primeDirection p hp).toRat := by
1185  unfold twoAdicTwistRat
1186  rw [padicValRat_two_primeDirection_eq_zero_of_ne_two hp hpne]
1187  norm_num
1188
1189/-- Ratio-orbit realization of the verifier two-adic branch twist. -/
1190noncomputable def twoAdicAxisTwistCharacter (q : RatioOrbit) : RatioOrbit :=
1191  ratioOrbitOfRat (twoAdicTwistRat q.toRat)
1192
1193theorem twoAdicAxisTwistCharacter_toRat (q : RatioOrbit) :
1194    (twoAdicAxisTwistCharacter q).toRat =
1195      twoAdicTwistRat q.toRat := by
1196  unfold twoAdicAxisTwistCharacter
1197  exact ratioOrbitOfRat_toRat _
1198
1199theorem twoAdicAxisTwistCharacter_ratio_character :
1200    PRCRatioCharacter twoAdicAxisTwistCharacter where
1201  unit := by
1202    rw [RatioOrbit.crossEq_iff_toRat_eq, twoAdicAxisTwistCharacter_toRat,
1203      RatioOrbit.one_toRat]
1204    exact twoAdicTwistRat_one
1205  multiplicative := by
1206    intro x y
1207    rw [RatioOrbit.crossEq_iff_toRat_eq, twoAdicAxisTwistCharacter_toRat,
1208      RatioOrbit.mul_toRat, RatioOrbit.mul_toRat,
1209      twoAdicAxisTwistCharacter_toRat, twoAdicAxisTwistCharacter_toRat]
1210    exact twoAdicTwistRat_mul x.toRat y.toRat
1211  reciprocal := by
1212    intro x
1213    rw [RatioOrbit.crossEq_iff_toRat_eq, twoAdicAxisTwistCharacter_toRat,
1214      RatioOrbit.recip_toRat, RatioOrbit.recip_toRat,
1215      twoAdicAxisTwistCharacter_toRat]
1216    exact twoAdicTwistRat_inv x.toRat
1217  normalized_invariant := by
1218    intro q
1219    rw [RatioOrbit.crossEq_iff_toRat_eq, twoAdicAxisTwistCharacter_toRat,
1220      twoAdicAxisTwistCharacter_toRat, DistinctionNat.normalizeRatio_toRat]
1221  nonzero_preserving := by
1222    intro q hq
1223    rw [twoAdicAxisTwistCharacter_toRat]
1224    exact twoAdicTwistRat_ne_zero hq
1225
1226theorem twoAdicAxisTwistCharacter_branch :
1227    PRCCharacterTwoAdicAxisTwist twoAdicAxisTwistCharacter := by
1228  constructor
1229  · rw [RatioOrbit.crossEq_iff_toRat_eq, twoAdicAxisTwistCharacter_toRat,
1230      RatioOrbit.recip_toRat, twoPrimeDirection_toRat]
1231    exact twoAdicTwistRat_two
1232  · intro p hp hpne
1233    rw [RatioOrbit.crossEq_iff_toRat_eq, twoAdicAxisTwistCharacter_toRat]
1234    exact twoAdicTwistRat_primeDirection_of_ne_two hp hpne
1235
1236theorem PRCTwoAdicAxisTwistRatioCharacter_constructed :
1237    PRCTwoAdicAxisTwistRatioCharacter :=
1238  ⟨twoAdicAxisTwistCharacter,
1239    twoAdicAxisTwistCharacter_ratio_character,
1240    twoAdicAxisTwistCharacter_branch⟩
1241
1242/-- δ-native cost non-forcing (headline blocker, stated exactly).
1243
1244There is a PRC ratio character `χ` that fixes the orientation of every prime
1245axis except orbit `2`, yet inverts the orbit-`2` axis. Concretely `χ` is the
1246two-adic axis twist `x ↦ x · 2^(-2·v₂(x))`, which is reciprocal-symmetric,
1247multiplicative, normalized, and nonzero-preserving (a full `PRCRatioCharacter`),
1248identity-oriented on every odd prime, and reciprocal-oriented on `2`.
1249
1250Consequence: the δ-native reciprocal-character axioms together with identity
1251orientation on *every other prime* do not force identity orientation at `2`.
1252The multiplicative group of the rational carrier is free abelian on the prime
1253axes, so each axis carries an independent orientation choice. The canonical
1254reciprocal cost `J` is therefore underdetermined on the rational (`RatioOrbit`)
1255carrier: it is the all-identity orientation, but the all-identity choice is not
1256forced by the discrete arithmetic.
1257
1258This is the exact reason J-forcing requires the continuous completion. On
1259`(0,∞)` the calibration condition (a second derivative at the unit) plus
1260continuity propagate one curvature value along the connected line
1261(`IndisputableMonolith.Cost.FunctionalEquation.law_of_logic_forces_jcost`). The
1262discrete carrier has neither a derivative nor connectivity, so the per-prime
1263orientation freedom witnessed here survives. The forward repair is to derive the
1264unit calibration from the cost of a single δ act on the completion, not to pin
1265each prime axis by hypothesis. -/
1266theorem prc_native_cost_orientation_underdetermined :
1267    ∃ χ : RatioOrbit → RatioOrbit,
1268      PRCRatioCharacter χ ∧
1269      (∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
1270        p ≠ twoOrbit →
1271          RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) ∧
1272      ¬ RatioOrbit.crossEq (twoAdicAxisTwistCharacter twoPrimeDirection)
1273          twoPrimeDirection := by
1274  refine ⟨twoAdicAxisTwistCharacter, twoAdicAxisTwistCharacter_ratio_character,
1275    twoAdicAxisTwistCharacter_branch.2, ?_⟩
1276  intro hId
1277  have hself :
1278      RatioOrbit.crossEq twoPrimeDirection
1279        (RatioOrbit.recip twoPrimeDirection) :=
1280    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hId)
1281      twoAdicAxisTwistCharacter_branch.1
1282  exact primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself
1283
1284/-- The canonical non-two prime direction used for the first concrete
1285two-adic mixed-composite test. -/
1286def threePrimeDirection : RatioOrbit :=
1287  primeDirection threeOrbit threeOrbit_primeOrbit
1288
1289@[simp] theorem threePrimeDirection_toRat :
1290    threePrimeDirection.toRat = 3 := by
1291  unfold threePrimeDirection
1292  rw [primeDirection_toRat, threeOrbit_toNat]
1293  norm_num
1294
1295/-- Classical verifier three-adic branch twist on rational displays. It fixes
1296the non-`3` prime axes and inverts the orbit-`3` exponent. This is the base-`3`
1297analogue of `twoAdicTwistRat`; it exists to show that calibrating the native
1298cost at one prime (here, agreement with J at `2`) does not propagate to the
1299other prime axes (here, `3`). -/
1300noncomputable def threeAdicTwistRat (x : ℚ) : ℚ :=
1301  x * (3 : ℚ) ^ (-2 * padicValRat 3 x)
1302
1303theorem threeAdicTwistRat_one :
1304    threeAdicTwistRat 1 = 1 := by
1305  unfold threeAdicTwistRat
1306  have h : padicValRat 3 (1 : ℚ) = 0 := by
1307    norm_num [padicValRat.of_int, padicValInt.eq_zero_of_not_dvd]
1308  rw [h]
1309  norm_num
1310
1311theorem threeAdicTwistRat_mul (x y : ℚ) :
1312    threeAdicTwistRat (x * y) =
1313      threeAdicTwistRat x * threeAdicTwistRat y := by
1314  unfold threeAdicTwistRat
1315  haveI : Fact (Nat.Prime 3) := ⟨by norm_num⟩
1316  by_cases hx : x = 0
1317  · simp [hx]
1318  · by_cases hy : y = 0
1319    · simp [hy]
1320    · rw [padicValRat.mul hx hy]
1321      have hbase : (3 : ℚ) ≠ 0 := by norm_num
1322      have hexp :
1323          -2 * (padicValRat 3 x + padicValRat 3 y) =
1324            (-2 * padicValRat 3 x) + (-2 * padicValRat 3 y) := by
1325        ring
1326      rw [hexp]
1327      rw [zpow_add₀ hbase]
1328      ring
1329
1330theorem threeAdicTwistRat_inv (x : ℚ) :
1331    threeAdicTwistRat x⁻¹ = (threeAdicTwistRat x)⁻¹ := by
1332  unfold threeAdicTwistRat
1333  haveI : Fact (Nat.Prime 3) := ⟨by norm_num⟩
1334  by_cases hx : x = 0
1335  · simp [hx]
1336  · rw [padicValRat.inv]
1337    have hbase : (3 : ℚ) ≠ 0 := by norm_num
1338    have hxpow : (3 : ℚ) ^ (-2 * padicValRat 3 x) ≠ 0 :=
1339      zpow_ne_zero _ hbase
1340    have hexp :
1341        -2 * (-padicValRat 3 x) = -(-2 * padicValRat 3 x) := by
1342      ring
1343    rw [hexp, zpow_neg]
1344    field_simp [hx, hxpow]
1345
1346theorem threeAdicTwistRat_ne_zero {x : ℚ}
1347    (hx : x ≠ 0) :
1348    threeAdicTwistRat x ≠ 0 := by
1349  unfold threeAdicTwistRat
1350  have hbase : (3 : ℚ) ≠ 0 := by norm_num
1351  exact mul_ne_zero hx (zpow_ne_zero _ hbase)
1352
1353theorem threeAdicTwistRat_three :
1354    threeAdicTwistRat 3 = (3 : ℚ)⁻¹ := by
1355  unfold threeAdicTwistRat
1356  have h : padicValRat 3 (3 : ℚ) = 1 :=
1357    padicValRat.self (by norm_num : 1 < 3)
1358  rw [h]
1359  norm_num
1360
1361theorem padicValRat_three_primeDirection_eq_zero_of_ne_three
1362    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p)
1363    (hpne : p ≠ threeOrbit) :
1364    padicValRat 3 (primeDirection p hp).toRat = 0 := by
1365  rw [primeDirection_toRat]
1366  rw [show (p.toNat : ℚ) = ((p.toNat : ℤ) : ℚ) by norm_num]
1367  rw [padicValRat.of_int]
1368  have hInt : padicValInt 3 (p.toNat : ℤ) = 0 := by
1369    apply padicValInt.eq_zero_of_not_dvd
1370    intro hdivZ
1371    have hdivNat : 3 ∣ p.toNat := by
1372      exact_mod_cast hdivZ
1373    have hdivNat' : threeOrbit.toNat ∣ p.toNat := by
1374      rw [threeOrbit_toNat]
1375      exact hdivNat
1376    have hdiv : DistinctionNat.divides threeOrbit p :=
1377      (DistinctionNat.divides_iff_toNat_dvd threeOrbit p).mpr hdivNat'
1378    rcases DistinctionNat.unit_or_eq_of_divides_prime hp hdiv with hunit | heq
1379    · rw [DistinctionNat.unit_iff_toNat_eq_one, threeOrbit_toNat] at hunit
1380      norm_num at hunit
1381    · exact hpne heq.symm
1382  exact_mod_cast hInt
1383
1384theorem threeAdicTwistRat_primeDirection_of_ne_three
1385    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p)
1386    (hpne : p ≠ threeOrbit) :
1387    threeAdicTwistRat (primeDirection p hp).toRat =
1388      (primeDirection p hp).toRat := by
1389  unfold threeAdicTwistRat
1390  rw [padicValRat_three_primeDirection_eq_zero_of_ne_three hp hpne]
1391  norm_num
1392
1393/-- Ratio-orbit realization of the verifier three-adic branch twist. -/
1394noncomputable def threeAdicAxisTwistCharacter (q : RatioOrbit) : RatioOrbit :=
1395  ratioOrbitOfRat (threeAdicTwistRat q.toRat)
1396
1397theorem threeAdicAxisTwistCharacter_toRat (q : RatioOrbit) :
1398    (threeAdicAxisTwistCharacter q).toRat =
1399      threeAdicTwistRat q.toRat := by
1400  unfold threeAdicAxisTwistCharacter
1401  exact ratioOrbitOfRat_toRat _
1402
1403theorem threeAdicAxisTwistCharacter_ratio_character :
1404    PRCRatioCharacter threeAdicAxisTwistCharacter where
1405  unit := by
1406    rw [RatioOrbit.crossEq_iff_toRat_eq, threeAdicAxisTwistCharacter_toRat,
1407      RatioOrbit.one_toRat]
1408    exact threeAdicTwistRat_one
1409  multiplicative := by
1410    intro x y
1411    rw [RatioOrbit.crossEq_iff_toRat_eq, threeAdicAxisTwistCharacter_toRat,
1412      RatioOrbit.mul_toRat, RatioOrbit.mul_toRat,
1413      threeAdicAxisTwistCharacter_toRat, threeAdicAxisTwistCharacter_toRat]
1414    exact threeAdicTwistRat_mul x.toRat y.toRat
1415  reciprocal := by
1416    intro x
1417    rw [RatioOrbit.crossEq_iff_toRat_eq, threeAdicAxisTwistCharacter_toRat,
1418      RatioOrbit.recip_toRat, RatioOrbit.recip_toRat,
1419      threeAdicAxisTwistCharacter_toRat]
1420    exact threeAdicTwistRat_inv x.toRat
1421  normalized_invariant := by
1422    intro q
1423    rw [RatioOrbit.crossEq_iff_toRat_eq, threeAdicAxisTwistCharacter_toRat,
1424      threeAdicAxisTwistCharacter_toRat, DistinctionNat.normalizeRatio_toRat]
1425  nonzero_preserving := by
1426    intro q hq
1427    rw [threeAdicAxisTwistCharacter_toRat]
1428    exact threeAdicTwistRat_ne_zero hq
1429
1430theorem threeAdicAxisTwistCharacter_two_identity :
1431    RatioOrbit.crossEq (threeAdicAxisTwistCharacter twoPrimeDirection)
1432      twoPrimeDirection := by
1433  rw [RatioOrbit.crossEq_iff_toRat_eq, threeAdicAxisTwistCharacter_toRat]
1434  simpa [twoPrimeDirection] using
1435    threeAdicTwistRat_primeDirection_of_ne_three twoOrbit_primeOrbit
1436      (threeOrbit_ne_twoOrbit).symm
1437
1438theorem threeAdicAxisTwistCharacter_three_reciprocal :
1439    RatioOrbit.crossEq (threeAdicAxisTwistCharacter threePrimeDirection)
1440      (RatioOrbit.recip threePrimeDirection) := by
1441  rw [RatioOrbit.crossEq_iff_toRat_eq, threeAdicAxisTwistCharacter_toRat,
1442    RatioOrbit.recip_toRat, threePrimeDirection_toRat]
1443  exact threeAdicTwistRat_three
1444
1445/-- δ-native cost non-forcing, complementary axis (headline blocker, stated
1446exactly).
1447
1448There is a PRC ratio character `χ` (the three-adic axis twist
1449`x ↦ x · 3^(-2·v₃(x))`) that agrees with the canonical cost J at the prime `2`
1450(identity orientation there) yet inverts the orbit-`3` axis. Together with
1451`prc_native_cost_orientation_underdetermined` (which fixes every odd prime and
1452flips `2`), this proves the orientation freedom is genuinely per-prime: pinning
1453the native cost at one prime does not pin it at another.
1454
1455Consequence for the calibration repair: no finite set of prime calibrations can
1456force J on the rational carrier, because each remaining prime axis is still a
1457free orientation choice. The continuous `law_of_logic_forces_jcost` escapes this
1458only because its calibration hypothesis is a second-derivative condition at the
1459unit, which constrains the cost on a full neighborhood (uncountably many points)
1460at once. This is the exact sense in which J-forcing requires the completion and
1461not the discrete carrier, and it pins the forward repair to deriving that
1462single neighborhood-level calibration from the cost of one δ act. -/
1463theorem prc_single_prime_calibration_insufficient :
1464    ∃ χ : RatioOrbit → RatioOrbit,
1465      PRCRatioCharacter χ ∧
1466      RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection ∧
1467      ¬ RatioOrbit.crossEq (χ threePrimeDirection) threePrimeDirection := by
1468  refine ⟨threeAdicAxisTwistCharacter,
1469    threeAdicAxisTwistCharacter_ratio_character,
1470    threeAdicAxisTwistCharacter_two_identity, ?_⟩
1471  intro hId
1472  have hself :
1473      RatioOrbit.crossEq threePrimeDirection
1474        (RatioOrbit.recip threePrimeDirection) :=
1475    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hId)
1476      threeAdicAxisTwistCharacter_three_reciprocal
1477  exact primeDirection_not_crossEq_recip threeOrbit threeOrbit_primeOrbit hself
1478
1479/-! ### Classification: every prime axis is an independent orientation freedom
1480
1481Passes 329 and 330 each exhibit one ratio character that flips a single prime
1482axis (`2`, resp. `3`) while fixing the others. They are two witnesses of one
1483structural fact: the multiplicative group of the rational carrier is free
1484abelian on the prime orbits, so each prime axis carries an independent
1485orientation choice. The following collapses both witnesses into a single theorem
1486parameterized by an arbitrary prime orbit. It supersedes the per-prime
1487`_refuted` treadmill: there is one base-parameterized twist character per prime,
1488not a separate construction per case. -/
1489
1490/-- A prime orbit displays as a `Nat` prime. Bridge from the δ-native primality
1491predicate to `Nat.Prime`, with no import of Nat prime theory into the predicate
1492itself. -/
1493theorem natPrime_toNat_of_primeOrbit {p : DistinctionNat}
1494    (hp : DistinctionNat.primeOrbit p) : Nat.Prime p.toNat := by
1495  rw [DistinctionNat.primeOrbit_iff_toNat_no_nontrivial_factor] at hp
1496  obtain ⟨h0, h1, hfac⟩ := hp
1497  rw [Nat.prime_def]
1498  refine ⟨by omega, ?_⟩
1499  intro m hm
1500  obtain ⟨k, hk⟩ := hm
1501  by_cases hm1 : m = 1
1502  · exact Or.inl hm1
1503  · refine Or.inr ?_
1504    by_cases hk1 : k = 1
1505    · rw [hk, hk1, mul_one]
1506    · exfalso
1507      apply hfac
1508      have hm0 : m ≠ 0 := by
1509        rintro rfl; rw [zero_mul] at hk; exact h0 hk
1510      have hk0 : k ≠ 0 := by
1511        rintro rfl; rw [mul_zero] at hk; exact h0 hk
1512      exact ⟨m, k, hm0, hk0, hm1, hk1, hk.symm⟩
1513
1514/-- Base-parameterized axis twist on rational displays: invert the exponent on
1515the prime axis `b`, fix every other prime axis. For `b = 2` this is
1516`twoAdicTwistRat`; for `b = 3` it is `threeAdicTwistRat`. -/
1517noncomputable def axisTwistRat (b : ℕ) (x : ℚ) : ℚ :=
1518  x * (b : ℚ) ^ (-2 * padicValRat b x)
1519
1520theorem axisTwistRat_base_ne_zero (b : ℕ) [Fact (Nat.Prime b)] :
1521    (b : ℚ) ≠ 0 :=
1522  Nat.cast_ne_zero.mpr (Fact.out : Nat.Prime b).pos.ne'
1523
1524theorem axisTwistRat_one (b : ℕ) [Fact (Nat.Prime b)] :
1525    axisTwistRat b 1 = 1 := by
1526  unfold axisTwistRat
1527  rw [padicValRat.one]
1528  norm_num
1529
1530theorem axisTwistRat_mul (b : ℕ) [Fact (Nat.Prime b)] (x y : ℚ) :
1531    axisTwistRat b (x * y) = axisTwistRat b x * axisTwistRat b y := by
1532  unfold axisTwistRat
1533  by_cases hx : x = 0
1534  · simp [hx]
1535  · by_cases hy : y = 0
1536    · simp [hy]
1537    · rw [padicValRat.mul hx hy]
1538      have hbase : (b : ℚ) ≠ 0 := axisTwistRat_base_ne_zero b
1539      have hexp :
1540          -2 * (padicValRat b x + padicValRat b y) =
1541            (-2 * padicValRat b x) + (-2 * padicValRat b y) := by ring
1542      rw [hexp, zpow_add₀ hbase]
1543      ring
1544
1545theorem axisTwistRat_inv (b : ℕ) [Fact (Nat.Prime b)] (x : ℚ) :
1546    axisTwistRat b x⁻¹ = (axisTwistRat b x)⁻¹ := by
1547  unfold axisTwistRat
1548  by_cases hx : x = 0
1549  · simp [hx]
1550  · rw [padicValRat.inv]
1551    have hbase : (b : ℚ) ≠ 0 := axisTwistRat_base_ne_zero b
1552    have hxpow : (b : ℚ) ^ (-2 * padicValRat b x) ≠ 0 := zpow_ne_zero _ hbase
1553    have hexp : -2 * (-padicValRat b x) = -(-2 * padicValRat b x) := by ring
1554    rw [hexp, zpow_neg]
1555    field_simp [hx, hxpow]
1556
1557theorem axisTwistRat_ne_zero (b : ℕ) [Fact (Nat.Prime b)] {x : ℚ}
1558    (hx : x ≠ 0) : axisTwistRat b x ≠ 0 := by
1559  unfold axisTwistRat
1560  exact mul_ne_zero hx (zpow_ne_zero _ (axisTwistRat_base_ne_zero b))
1561
1562theorem axisTwistRat_self (b : ℕ) [Fact (Nat.Prime b)] :
1563    axisTwistRat b (b : ℚ) = (b : ℚ)⁻¹ := by
1564  unfold axisTwistRat
1565  have hb : 1 < b := (Fact.out : Nat.Prime b).one_lt
1566  have hbase : (b : ℚ) ≠ 0 := axisTwistRat_base_ne_zero b
1567  rw [padicValRat.self hb, show (-2 * (1 : ℤ)) = (-2 : ℤ) by ring]
1568  nth_rewrite 1 [show (b : ℚ) = (b : ℚ) ^ (1 : ℤ) by rw [zpow_one]]
1569  rw [← zpow_add₀ hbase, show (1 : ℤ) + (-2 : ℤ) = -1 by ring, zpow_neg_one]
1570
1571/-- Off-axis primes are fixed by the `b`-axis twist: if the evaluated prime orbit
1572`r` differs from the axis orbit `p`, the `p.toNat`-adic valuation of `r`'s
1573display vanishes. -/
1574theorem padicValRat_axis_primeDirection_eq_zero_of_ne
1575    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p)
1576    {r : DistinctionNat} (hr : DistinctionNat.primeOrbit r)
1577    (hne : r ≠ p) :
1578    padicValRat p.toNat (primeDirection r hr).toRat = 0 := by
1579  haveI : Fact (Nat.Prime p.toNat) := ⟨natPrime_toNat_of_primeOrbit hp⟩
1580  rw [primeDirection_toRat, padicValRat.of_nat]
1581  norm_cast
1582  apply padicValNat.eq_zero_of_not_dvd
1583  intro hdvd
1584  have hdiv : DistinctionNat.divides p r :=
1585    (DistinctionNat.divides_iff_toNat_dvd p r).mpr hdvd
1586  rcases DistinctionNat.unit_or_eq_of_divides_prime hr hdiv with hunit | heq
1587  · rw [DistinctionNat.unit_iff_toNat_eq_one] at hunit
1588    exact (natPrime_toNat_of_primeOrbit hp).ne_one hunit
1589  · exact hne heq.symm
1590
1591/-- The ratio-orbit realization of the `b`-axis twist, `b = p.toNat`. -/
1592noncomputable def axisTwistCharacter (p : DistinctionNat) (q : RatioOrbit) :
1593    RatioOrbit :=
1594  ratioOrbitOfRat (axisTwistRat p.toNat q.toRat)
1595
1596theorem axisTwistCharacter_toRat (p : DistinctionNat) (q : RatioOrbit) :
1597    (axisTwistCharacter p q).toRat = axisTwistRat p.toNat q.toRat := by
1598  unfold axisTwistCharacter
1599  exact ratioOrbitOfRat_toRat _
1600
1601theorem axisTwistCharacter_ratio_character
1602    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p) :
1603    PRCRatioCharacter (axisTwistCharacter p) := by
1604  haveI : Fact (Nat.Prime p.toNat) := ⟨natPrime_toNat_of_primeOrbit hp⟩
1605  exact {
1606    unit := by
1607      rw [RatioOrbit.crossEq_iff_toRat_eq, axisTwistCharacter_toRat,
1608        RatioOrbit.one_toRat]
1609      exact axisTwistRat_one p.toNat
1610    multiplicative := by
1611      intro x y
1612      rw [RatioOrbit.crossEq_iff_toRat_eq, axisTwistCharacter_toRat,
1613        RatioOrbit.mul_toRat, RatioOrbit.mul_toRat,
1614        axisTwistCharacter_toRat, axisTwistCharacter_toRat]
1615      exact axisTwistRat_mul p.toNat x.toRat y.toRat
1616    reciprocal := by
1617      intro x
1618      rw [RatioOrbit.crossEq_iff_toRat_eq, axisTwistCharacter_toRat,
1619        RatioOrbit.recip_toRat, RatioOrbit.recip_toRat,
1620        axisTwistCharacter_toRat]
1621      exact axisTwistRat_inv p.toNat x.toRat
1622    normalized_invariant := by
1623      intro q
1624      rw [RatioOrbit.crossEq_iff_toRat_eq, axisTwistCharacter_toRat,
1625        axisTwistCharacter_toRat, DistinctionNat.normalizeRatio_toRat]
1626    nonzero_preserving := by
1627      intro q hq
1628      rw [axisTwistCharacter_toRat]
1629      exact axisTwistRat_ne_zero p.toNat hq }
1630
1631theorem axisTwistCharacter_off_axis_identity
1632    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p)
1633    {r : DistinctionNat} (hr : DistinctionNat.primeOrbit r)
1634    (hne : r ≠ p) :
1635    RatioOrbit.crossEq (axisTwistCharacter p (primeDirection r hr))
1636      (primeDirection r hr) := by
1637  rw [RatioOrbit.crossEq_iff_toRat_eq, axisTwistCharacter_toRat]
1638  unfold axisTwistRat
1639  rw [padicValRat_axis_primeDirection_eq_zero_of_ne hp hr hne]
1640  norm_num
1641
1642theorem axisTwistCharacter_on_axis_reciprocal
1643    {p : DistinctionNat} (hp : DistinctionNat.primeOrbit p) :
1644    RatioOrbit.crossEq (axisTwistCharacter p (primeDirection p hp))
1645      (RatioOrbit.recip (primeDirection p hp)) := by
1646  haveI : Fact (Nat.Prime p.toNat) := ⟨natPrime_toNat_of_primeOrbit hp⟩
1647  rw [RatioOrbit.crossEq_iff_toRat_eq, axisTwistCharacter_toRat,
1648    RatioOrbit.recip_toRat, primeDirection_toRat]
1649  exact axisTwistRat_self p.toNat
1650
1651/-- **δ-native cost non-forcing, classified (headline).**
1652
1653For *every* prime orbit `p` there is a PRC ratio character that fixes the
1654orientation of every other prime axis yet inverts the orbit-`p` axis. This is one
1655theorem in place of the per-prime witnesses `prc_native_cost_orientation_under-
1656determined` (the `p = 2` case) and `prc_single_prime_calibration_insufficient`
1657(the `p = 3` case): the orientation freedom is genuinely per-prime, on every
1658axis at once.
1659
1660Consequence: no finite (indeed, no proper) set of prime calibrations forces `J`
1661on the rational carrier, because every axis outside the set remains a free
1662orientation. The canonical reciprocal cost `J` is the all-identity orientation,
1663and the all-identity choice is not forced by the discrete arithmetic. J-forcing
1664therefore requires the continuous completion, where the calibration hypothesis of
1665`law_of_logic_forces_jcost` constrains a full neighborhood of the unit at once
1666rather than one axis at a time. -/
1667theorem prc_every_prime_axis_orientation_free
1668    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
1669    ∃ χ : RatioOrbit → RatioOrbit,
1670      PRCRatioCharacter χ ∧
1671      (∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
1672        r ≠ p →
1673          RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)) ∧
1674      ¬ RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) := by
1675  refine ⟨axisTwistCharacter p, axisTwistCharacter_ratio_character hp,
1676    fun r hr hne => axisTwistCharacter_off_axis_identity hp hr hne, ?_⟩
1677  intro hId
1678  have hself :
1679      RatioOrbit.crossEq (primeDirection p hp)
1680        (RatioOrbit.recip (primeDirection p hp)) :=
1681    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hId)
1682      (axisTwistCharacter_on_axis_reciprocal hp)
1683  exact primeDirection_not_crossEq_recip p hp hself
1684
1685/-! ### Completion-side companion: calibration is the binding constraint
1686
1687The two blockers above act on the discrete rational carrier. The following
1688companion isolates the same constraint on the continuous completion, where
1689`law_of_logic_forces_jcost` lives. The point is to identify, as an exact Lean
1690witness, which hypothesis of that theorem actually does the forcing.
1691
1692The composition law (the RCL) is, after the substitution `g = F + 1`, the
1693d'Alembert identity `g(xy) + g(x/y) = 2 g(x) g(y)`. Its continuous solutions
1694are `g(x) = cosh(λ · log x)`, i.e. `F(x) = (x^λ + x^{-λ})/2 - 1` for any real
1695`λ ≥ 0`. Reciprocal symmetry, normalization, and continuity hold for the whole
1696family; only the calibration `G''(0) = λ² = 1` selects `λ = 1`. So on the
1697completion the algebraic laws fix the *form* of the cost but not its *scale*. -/
1698
1699/-- A second member of the cost family: `F₂(x) = (x² + x⁻²)/2 - 1`, the
1700`λ = 2` cost. Its log-coordinate curvature at the unit is `4`, not `1`. -/
1701noncomputable def costLambdaTwo (x : ℝ) : ℝ := (x ^ 2 + (x ^ 2)⁻¹) / 2 - 1
1702
1703/-- **Completion-side non-forcing (headline blocker, stated exactly).**
1704
1705There is a function `F : ℝ → ℝ` (the `λ = 2` cost `(x² + x⁻²)/2 - 1`) that
1706satisfies every hypothesis of `law_of_logic_forces_jcost` *except* calibration
1707(reciprocal symmetry, normalization, the composition law (RCL), and continuity on
1708the positive reals) yet is not the canonical cost `Cost.Jcost`. Therefore the
1709calibration hypothesis `IsCalibrated` is load-bearing and cannot be dropped: the
1710composition law and the other algebraic laws do not, by themselves, force J even
1711on the continuous completion.
1712
1713This is the continuum analogue of `prc_native_cost_orientation_underdetermined`
1714and `prc_single_prime_calibration_insufficient`. Read together: on the rational
1715carrier orientation is free per prime; on the completion the scale (the curvature
1716`λ²` at the unit) is free. In both regimes the binding constraint is a
1717calibration, not the algebra. Consequently "δ forces J" can only mean "δ forces
1718the cost family `(x^λ + x^{-λ})/2 - 1`, and a separately supplied unit
1719calibration selects `λ = 1`." Whether δ supplies that unit calibration is the
1720open joint (live track T1); this theorem proves it is genuinely needed, i.e. it
1721is not already implied by the composition law. -/
1722theorem composition_law_without_calibration_does_not_force_jcost :
1723    ∃ F : ℝ → ℝ,
1724      Cost.FunctionalEquation.IsReciprocalCost F ∧
1725      Cost.FunctionalEquation.IsNormalized F ∧
1726      Cost.FunctionalEquation.SatisfiesCompositionLaw F ∧
1727      ContinuousOn F (Set.Ioi 0) ∧
1728      F ≠ Cost.Jcost := by
1729  refine ⟨costLambdaTwo, ?_, ?_, ?_, ?_, ?_⟩
1730  · -- reciprocal symmetry
1731    intro x hx
1732    have hx0 : x ≠ 0 := ne_of_gt hx
1733    unfold costLambdaTwo
1734    field_simp
1735    ring
1736  · -- normalization F 1 = 0
1737    show ((1 : ℝ) ^ 2 + ((1 : ℝ) ^ 2)⁻¹) / 2 - 1 = 0
1738    norm_num
1739  · -- composition law (RCL)
1740    intro x y hx hy
1741    have hx0 : x ≠ 0 := ne_of_gt hx
1742    have hy0 : y ≠ 0 := ne_of_gt hy
1743    unfold costLambdaTwo
1744    field_simp
1745    ring
1746  · -- continuity on the positive reals
1747    unfold costLambdaTwo
1748    apply ContinuousOn.sub _ continuousOn_const
1749    apply ContinuousOn.div_const
1750    refine ContinuousOn.add ((continuous_pow 2).continuousOn) ?_
1751    refine ContinuousOn.inv₀ ((continuous_pow 2).continuousOn) ?_
1752    intro x hx
1753    exact pow_ne_zero 2 (ne_of_gt (Set.mem_Ioi.mp hx))
1754  · -- F ≠ Jcost, witnessed at x = 2
1755    intro h
1756    have h2 := congrFun h 2
1757    unfold costLambdaTwo Cost.Jcost at h2
1758    norm_num at h2
1759
1760/-- The full one-parameter cost family `F_λ(x) = (x^λ + x^(-λ))/2 - 1`, using
1761real powers. `λ = 1` is `Cost.Jcost`; `λ = 2` is `costLambdaTwo`. -/
1762noncomputable def costLambda (l x : ℝ) : ℝ := (x ^ l + x ^ (-l)) / 2 - 1
1763
1764/-- **Calibration is an irreducible scale choice (headline blocker, stated
1765exactly).**
1766
1767For every exponent `λ > 0`, the cost `F_λ(x) = (x^λ + x^(-λ))/2 - 1` satisfies
1768reciprocal symmetry, normalization, the composition law (RCL), and continuity on
1769the positive reals. These are exactly the hypotheses of
1770`law_of_logic_forces_jcost` other than calibration. So the composition law's
1771continuous solution set is the entire one-parameter family `{F_λ : λ > 0}`, not a
1772single function. The calibration `G''(0) = λ² = 1` is the lone datum that
1773collapses the family to J (the `λ = 1` member). Combined with
1774`composition_law_without_calibration_does_not_force_jcost` (the `λ = 2` instance,
1775which is distinct from J), this shows the scale is a genuine continuum of choices
1776that the algebra cannot prefer between. The forward program (T1) is therefore
1777exactly: supply `λ = 1` from a δ-native curvature, or accept "δ forces J up to a
1778choice of cost scale." -/
1779theorem composition_law_admits_full_scale_family (l : ℝ) (hl : 0 < l) :
1780    Cost.FunctionalEquation.IsReciprocalCost (costLambda l) ∧
1781    Cost.FunctionalEquation.IsNormalized (costLambda l) ∧
1782    Cost.FunctionalEquation.SatisfiesCompositionLaw (costLambda l) ∧
1783    ContinuousOn (costLambda l) (Set.Ioi 0) := by
1784  refine ⟨?_, ?_, ?_, ?_⟩
1785  · -- reciprocal symmetry
1786    intro x hx
1787    have hx0 : (0 : ℝ) ≤ x := le_of_lt hx
1788    unfold costLambda
1789    rw [Real.inv_rpow hx0, Real.inv_rpow hx0, ← Real.rpow_neg hx0,
1790      ← Real.rpow_neg hx0, neg_neg]
1791    ring
1792  · -- normalization F 1 = 0
1793    show ((1 : ℝ) ^ l + (1 : ℝ) ^ (-l)) / 2 - 1 = 0
1794    rw [Real.one_rpow, Real.one_rpow]
1795    norm_num
1796  · -- composition law (RCL)
1797    intro x y hx hy
1798    have hx0 : (0 : ℝ) ≤ x := le_of_lt hx
1799    have hy0 : (0 : ℝ) ≤ y := le_of_lt hy
1800    set a : ℝ := x ^ l with ha_def
1801    set b : ℝ := y ^ l with hb_def
1802    have ha : (0 : ℝ) < a := Real.rpow_pos_of_pos hx l
1803    have hb : (0 : ℝ) < b := Real.rpow_pos_of_pos hy l
1804    unfold costLambda
1805    rw [Real.mul_rpow hx0 hy0, Real.div_rpow hx0 hy0,
1806      Real.rpow_neg (le_of_lt (mul_pos hx hy)),
1807      Real.rpow_neg (le_of_lt (div_pos hx hy)),
1808      Real.rpow_neg hx0, Real.rpow_neg hy0,
1809      Real.mul_rpow hx0 hy0, Real.div_rpow hx0 hy0]
1810    rw [← ha_def, ← hb_def]
1811    field_simp
1812    ring
1813  · -- continuity on the positive reals
1814    unfold costLambda
1815    apply ContinuousOn.sub _ continuousOn_const
1816    apply ContinuousOn.div_const
1817    apply ContinuousOn.add
1818    · intro x hx
1819      exact (Real.continuousAt_rpow_const x l
1820        (Or.inl (ne_of_gt (Set.mem_Ioi.mp hx)))).continuousWithinAt
1821    · intro x hx
1822      exact (Real.continuousAt_rpow_const x (-l)
1823        (Or.inl (ne_of_gt (Set.mem_Ioi.mp hx)))).continuousWithinAt
1824
1825/-- **Calibration is a multiplicative-automorphism gauge (headline blocker,
1826stated exactly).**
1827
1828The whole cost family collapses to a single function pulled back along the
1829automorphism group of the positive reals under multiplication:
1830
1831* `costLambda l x = Cost.Jcost (x ^ l)` for `x > 0`: every family member is J
1832  precomposed with the power map `φ_λ(x) = x^λ`;
1833* `φ_λ` is a multiplicative homomorphism (`(x·y)^λ = x^λ · y^λ`) fixing the unit
1834  (`1^λ = 1`), hence (for `λ ≠ 0`) an automorphism of `(ℝ_{>0}, ×)`.
1835
1836Therefore the family `{F_λ}` is exactly the orbit of `Cost.Jcost` under the
1837automorphism group `Aut(ℝ_{>0}, ×) ≅ ℝˣ` (scalings `t ↦ λt` in log
1838coordinates). The δ-native structure determines the multiplicative group but no
1839preferred automorphism scale, and the composition law is preserved by every such
1840pullback (`composition_law_admits_full_scale_family`). The calibration
1841`λ² = 1` is the choice of unit speed for this gauge group.
1842
1843This is the exact, structural reason branch (a) of T1 cannot succeed on the
1844δ-native data alone: a single δ successor act delivers a secant value
1845`F_λ(2) = (2^λ + 2^{-λ})/2 - 1`, not the curvature limit, and that secant is
1846λ-dependent (distinctness of `λ = 1` from `λ = 2` is witnessed by
1847`composition_law_without_calibration_does_not_force_jcost`, the `λ = 2` member
1848that differs from J). The curvature, being the unit speed of an automorphism
1849gauge, is a normalization rather than a consequence of the group structure. The
1850honest terminal claim is: δ forces J up to a multiplicative-automorphism gauge,
1851and a unit calibration fixes the gauge. -/
1852theorem calibration_is_mul_automorphism_gauge :
1853    (∀ l x : ℝ, 0 < x → costLambda l x = Cost.Jcost (x ^ l)) ∧
1854    (∀ l x y : ℝ, 0 < x → 0 < y → (x * y) ^ l = x ^ l * y ^ l) ∧
1855    (∀ l : ℝ, (1 : ℝ) ^ l = 1) := by
1856  refine ⟨?_, ?_, ?_⟩
1857  · intro l x hx
1858    unfold costLambda Cost.Jcost
1859    rw [Real.rpow_neg (le_of_lt hx)]
1860  · intro l x y hx hy
1861    exact Real.mul_rpow (le_of_lt hx) (le_of_lt hy)
1862  · intro l
1863    exact Real.one_rpow l
1864
1865/-- In log coordinates the family member `costLambda l` is `cosh(l·t) - 1`:
1866`G (costLambda l) t = Real.cosh (l * t) - 1`. -/
1867theorem G_costLambda (l : ℝ) :
1868    Cost.FunctionalEquation.G (costLambda l) = fun t => Real.cosh (l * t) - 1 := by
1869  funext t
1870  have hpos : (0 : ℝ) < Real.exp t := Real.exp_pos t
1871  simp only [Cost.FunctionalEquation.G, costLambda]
1872  rw [Real.rpow_def_of_pos hpos l, Real.rpow_def_of_pos hpos (-l), Real.log_exp,
1873    Real.cosh_eq, mul_comm t l, show t * (-l) = -(l * t) by ring]
1874
1875/-- **The calibration value of `costLambda l` is exactly `l²`.**
1876
1877The log-coordinate curvature at the unit (the quantity `IsCalibrated` fixes to
1878`1`) is `deriv (deriv (G (costLambda l))) 0 = l²`. This is the exact content of
1879"calibration selects `λ = 1`": the calibration condition is `l² = 1`. -/
1880theorem calibration_value_costLambda (l : ℝ) :
1881    deriv (deriv (Cost.FunctionalEquation.G (costLambda l))) 0 = l ^ 2 := by
1882  have hlin : ∀ t : ℝ, HasDerivAt (fun t => l * t) l t := by
1883    intro t; simpa using (hasDerivAt_id t).const_mul l
1884  have hd1 : ∀ t : ℝ,
1885      HasDerivAt (fun t => Real.cosh (l * t) - 1) (Real.sinh (l * t) * l) t := by
1886    intro t; exact ((hlin t).cosh).sub_const 1
1887  have hderiv1 : deriv (fun t => Real.cosh (l * t) - 1)
1888      = fun t => Real.sinh (l * t) * l := by
1889    funext t; exact (hd1 t).deriv
1890  have hd2 : HasDerivAt (fun t => Real.sinh (l * t) * l)
1891      (Real.cosh (l * 0) * l * l) 0 := ((hlin 0).sinh).mul_const l
1892  rw [G_costLambda l, hderiv1, hd2.deriv]
1893  simp [Real.cosh_zero]
1894  ring
1895
1896/-- **J is the unique calibrated member of the cost family (exact).**
1897
1898`costLambda l` satisfies the calibration condition of `law_of_logic_forces_jcost`
1899iff `l² = 1`. So among the gauge family `{F_λ}`, calibration is precisely the
1900equation that selects `λ = ±1`; with `λ > 0` it selects `λ = 1`, the member
1901equal to `Cost.Jcost` (`costLambda 1 x = Cost.Jcost x` for `x > 0`). This is the
1902within-family selection that, combined with
1903`calibration_is_mul_automorphism_gauge`, makes the stratification exact:
1904δ + algebra force the family; calibration `l² = 1` selects J; and the value of
1905the calibration constant (the gauge) is not itself fixed by δ. -/
1906theorem isCalibrated_costLambda_iff (l : ℝ) :
1907    Cost.FunctionalEquation.IsCalibrated (costLambda l) ↔ l ^ 2 = 1 := by
1908  unfold Cost.FunctionalEquation.IsCalibrated
1909  rw [calibration_value_costLambda l]
1910
1911/-- For positive exponents, the calibrated member is exactly `λ = 1`. -/
1912theorem isCalibrated_costLambda_pos_iff {l : ℝ} (hl : 0 < l) :
1913    Cost.FunctionalEquation.IsCalibrated (costLambda l) ↔ l = 1 := by
1914  rw [isCalibrated_costLambda_iff l]
1915  constructor
1916  · intro h
1917    nlinarith [sq_nonneg (l - 1), sq_nonneg (l + 1)]
1918  · intro h; rw [h]; norm_num
1919
1920/-- The `λ = 1` member is `Cost.Jcost` on the positive reals, and it is
1921calibrated. -/
1922theorem costLambda_one_eq_jcost (x : ℝ) (hx : 0 < x) :
1923    costLambda 1 x = Cost.Jcost x := by
1924  unfold costLambda Cost.Jcost
1925  rw [Real.rpow_one, Real.rpow_neg (le_of_lt hx), Real.rpow_one]
1926
1927/-- **The cost family is a single gauge orbit: the automorphism action is
1928transitive (exact).**
1929
1930For any two positive exponents `λ, μ` and any `x > 0`,
1931`costLambda l x = costLambda m (x ^ (l / m))`. That is, the multiplicative
1932automorphism `x ↦ x^(l/m)` of `(ℝ_{>0}, ×)` carries the family member `F_μ` onto
1933`F_λ`. Since the action is transitive (any member reaches any other), the family
1934`{F_λ : λ > 0}` is a single homogeneous orbit under
1935`Aut(ℝ_{>0}, ×)`, with no member distinguished by the algebra. This is the
1936precise mathematical content of "the calibration is a gauge": J is singled out
1937only by the external unit calibration `λ = 1`, never by the composition law,
1938which is invariant along the whole orbit. It strengthens
1939`calibration_is_mul_automorphism_gauge` (each member is `J ∘ (·^λ)`) to the orbit
1940being homogeneous (any member is any other, post-automorphism), so there is no
1941algebraically preferred basepoint to call canonical without importing the unit. -/
1942theorem costLambda_gauge_transitive (l m x : ℝ) (hm : 0 < m) (hx : 0 < x) :
1943    costLambda l x = costLambda m (x ^ (l / m)) := by
1944  have hx0 : (0 : ℝ) ≤ x := le_of_lt hx
1945  have e1 : (l / m) * m = l := div_mul_cancel₀ l (ne_of_gt hm)
1946  have e2 : (l / m) * (-m) = -l := by rw [mul_neg, e1]
1947  unfold costLambda
1948  rw [← Real.rpow_mul hx0, ← Real.rpow_mul hx0, e1, e2]
1949
1950/-- **The gauge parameterization is faithful: the automorphism action is free
1951(exact).**
1952
1953Distinct positive exponents give distinct costs: if `costLambda l = costLambda m`
1954as functions and `l, m > 0`, then `l = m`. (Proof: the log-coordinate curvature
1955at the unit is `λ²` by `calibration_value_costLambda`; equal functions have equal
1956curvature, so `l² = m²`, and positivity gives `l = m`.)
1957
1958Together with `costLambda_gauge_transitive` (transitivity) this says the family
1959`{F_λ : λ > 0}` is a **torsor** (principal homogeneous space) under the gauge
1960group: the action is both free (here) and transitive (there). That is the exact,
1961gold-standard sense in which the calibration is a gauge: the admissible costs,
1962modulo the calibration datum, form a faithful continuum of choices isomorphic to
1963the gauge group itself, with no algebraically preferred member. Calibration
1964`λ = 1` removes exactly this one real degree of freedom to single out `J`. -/
1965theorem costLambda_injective {l m : ℝ} (hl : 0 < l) (hm : 0 < m)
1966    (h : ∀ x : ℝ, costLambda l x = costLambda m x) : l = m := by
1967  have hG : Cost.FunctionalEquation.G (costLambda l)
1968      = Cost.FunctionalEquation.G (costLambda m) := by
1969    funext t; simp only [Cost.FunctionalEquation.G]; rw [h]
1970  have hsq : l ^ 2 = m ^ 2 := by
1971    have e := calibration_value_costLambda l
1972    rw [hG, calibration_value_costLambda m] at e
1973    exact e.symm
1974  have h1 : (l - m) * (l + m) = 0 := by linear_combination hsq
1975  rcases mul_eq_zero.mp h1 with h0 | h0
1976  · linarith
1977  · linarith
1978
1979/-- **A single point-evaluation fixes the gauge: one real datum suffices.**
1980
1981This is strictly sharper than `costLambda_injective`. That theorem needs the
1982two costs to agree *everywhere* (equivalently, equal log-coordinate curvature)
1983to conclude `l = m`. Here we need agreement at a **single** point `x₀ > 1`:
1984if `F_l(x₀) = F_m(x₀)` and `l, m > 0`, then `l = m`.
1985
1986Operationally this is the load-bearing statement of the gauge story. The
1987family `{F_λ : λ > 0}` is a torsor under the multiplicative-automorphism group
1988(`costLambda_gauge_transitive` + `costLambda_injective`), so fixing the gauge
1989costs exactly one real degree of freedom. This theorem says that degree of
1990freedom is pinned by one measurement: the value of the cost at any single
1991distinction ratio `x₀ ≠ 1`. The recognition quantum, viewed through δ, is
1992precisely this one datum; no further structure is needed to single out `J`
1993once it is supplied.
1994
1995Proof: write `a = x₀^l`, `b = x₀^m`; both exceed `1` (base `> 1`, exponent
1996`> 0`). Equality of `F` gives `a + a⁻¹ = b + b⁻¹`, i.e. `(a-b)(ab-1) = 0`.
1997Since `ab > 1`, the second factor is nonzero, so `a = b`, and strict
1998monotonicity of `t ↦ x₀^t` (base `> 1`) gives `l = m`. -/
1999theorem costLambda_single_point_calibration {x₀ l m : ℝ}
2000    (hx₀ : 1 < x₀) (hl : 0 < l) (hm : 0 < m)
2001    (h : costLambda l x₀ = costLambda m x₀) : l = m := by
2002  have hx0pos : (0 : ℝ) < x₀ := lt_trans one_pos hx₀
2003  have hapos : 0 < x₀ ^ l := Real.rpow_pos_of_pos hx0pos l
2004  have hbpos : 0 < x₀ ^ m := Real.rpow_pos_of_pos hx0pos m
2005  have ha1 : 1 < x₀ ^ l := (Real.one_lt_rpow_iff_of_pos hx0pos).mpr (Or.inl ⟨hx₀, hl⟩)
2006  have hb1 : 1 < x₀ ^ m := (Real.one_lt_rpow_iff_of_pos hx0pos).mpr (Or.inl ⟨hx₀, hm⟩)
2007  unfold costLambda at h
2008  rw [Real.rpow_neg (le_of_lt hx0pos) l, Real.rpow_neg (le_of_lt hx0pos) m] at h
2009  have h2 : x₀ ^ l + (x₀ ^ l)⁻¹ = x₀ ^ m + (x₀ ^ m)⁻¹ := by linarith
2010  have hane : x₀ ^ l ≠ 0 := ne_of_gt hapos
2011  have hbne : x₀ ^ m ≠ 0 := ne_of_gt hbpos
2012  -- Clear denominators: a + a⁻¹ = b + b⁻¹ becomes the factored cubic identity.
2013  have hexpand : (x₀ ^ l) ^ 2 * x₀ ^ m + x₀ ^ m
2014      = x₀ ^ l * (x₀ ^ m) ^ 2 + x₀ ^ l := by
2015    have lhs : (x₀ ^ l + (x₀ ^ l)⁻¹) * (x₀ ^ l * x₀ ^ m)
2016        = (x₀ ^ l) ^ 2 * x₀ ^ m + x₀ ^ m := by field_simp
2017    have rhs : (x₀ ^ m + (x₀ ^ m)⁻¹) * (x₀ ^ l * x₀ ^ m)
2018        = x₀ ^ l * (x₀ ^ m) ^ 2 + x₀ ^ l := by field_simp
2019    rw [← lhs, ← rhs, h2]
2020  have key : (x₀ ^ l - x₀ ^ m) * (x₀ ^ l * x₀ ^ m - 1) = 0 := by
2021    linear_combination hexpand
2022  have hab : x₀ ^ l = x₀ ^ m := by
2023    rcases mul_eq_zero.mp key with hd | hd
2024    · linarith
2025    · exfalso; nlinarith [ha1, hb1, hapos, hbpos]
2026  have hle : l ≤ m := (Real.rpow_le_rpow_left_iff hx₀).mp (le_of_eq hab)
2027  have hge : m ≤ l := (Real.rpow_le_rpow_left_iff hx₀).mp (le_of_eq hab.symm)
2028  linarith
2029
2030/-- **Honest stratification of the load-bearing cost joint (single exact
2031object).**
2032
2033This structure states, as one Lean object, exactly what is forced and what is a
2034gauge at the joint where the δ-program forces (or fails to force) the cost
2035function J. Each field is discharged by a named theorem; nothing here is prose.
2036
2037* `form_forced`: the algebraic laws (reciprocal symmetry, normalization, the
2038  composition law/RCL, continuity) hold for the entire one-parameter family
2039  `F_λ = costLambda λ`, `λ > 0`. So the algebra forces the cost *form*, not a
2040  single function. (`composition_law_admits_full_scale_family`.)
2041* `gauge_orbit`: that family is the orbit of `Cost.Jcost` under the automorphism
2042  group of `(ℝ_{>0}, ×)`: `F_λ(x) = J(x^λ)` with `x ↦ x^λ` multiplicative.
2043  (`calibration_is_mul_automorphism_gauge`.)
2044* `calibration_selects_jcost`: within the family, the calibration condition of
2045  `law_of_logic_forces_jcost` holds iff `λ = 1` (for `λ > 0`), and that member is
2046  `Cost.Jcost` on the positives. So calibration is exactly the within-form
2047  selector of J. (`isCalibrated_costLambda_pos_iff`, `costLambda_one_eq_jcost`.)
2048* `gauge_not_forced`: there is a member of the family (`λ = 2`) clearing every
2049  algebraic law yet differing from J, so the algebra alone does not fix the gauge
2050  (the calibration constant). (`composition_law_without_calibration_does_not_force_jcost`.)
2051
2052Read together: δ and the algebraic laws force the cost form; calibration
2053`λ² = 1` selects J within it; and the value of the calibration constant is a
2054multiplicative-automorphism gauge that the δ structure does not pin. This is the
2055honest terminal statement of the joint. -/
2056structure PRCCostJointStratification : Prop where
2057  form_forced :
2058    ∀ l : ℝ, 0 < l →
2059      Cost.FunctionalEquation.IsReciprocalCost (costLambda l) ∧
2060      Cost.FunctionalEquation.IsNormalized (costLambda l) ∧
2061      Cost.FunctionalEquation.SatisfiesCompositionLaw (costLambda l) ∧
2062      ContinuousOn (costLambda l) (Set.Ioi 0)
2063  gauge_orbit :
2064    (∀ l x : ℝ, 0 < x → costLambda l x = Cost.Jcost (x ^ l)) ∧
2065    (∀ l x y : ℝ, 0 < x → 0 < y → (x * y) ^ l = x ^ l * y ^ l)
2066  calibration_selects_jcost :
2067    (∀ l : ℝ, 0 < l →
2068      (Cost.FunctionalEquation.IsCalibrated (costLambda l) ↔ l = 1)) ∧
2069    (∀ x : ℝ, 0 < x → costLambda 1 x = Cost.Jcost x)
2070  gauge_not_forced :
2071    ∃ F : ℝ → ℝ,
2072      Cost.FunctionalEquation.IsReciprocalCost F ∧
2073      Cost.FunctionalEquation.IsNormalized F ∧
2074      Cost.FunctionalEquation.SatisfiesCompositionLaw F ∧
2075      ContinuousOn F (Set.Ioi 0) ∧
2076      F ≠ Cost.Jcost
2077
2078/-- The honest stratification of the cost joint holds, assembled from the
2079pass 331/331b/332/333 theorems. -/
2080theorem prc_cost_joint_stratification : PRCCostJointStratification where
2081  form_forced := composition_law_admits_full_scale_family
2082  gauge_orbit :=
2083    ⟨calibration_is_mul_automorphism_gauge.1,
2084      calibration_is_mul_automorphism_gauge.2.1⟩
2085  calibration_selects_jcost :=
2086    ⟨fun _ hl => isCalibrated_costLambda_pos_iff hl, costLambda_one_eq_jcost⟩
2087  gauge_not_forced := composition_law_without_calibration_does_not_force_jcost
2088
2089/-- **Strength separation for J-forcing (single exact object).**
2090
2091The program's central claim, stated as a checked proposition rather than a
2092docstring: J is *not* forced at δ-only carrier strength, but *is* selected at
2093completion (trace-closure) strength, and trace-closure is a strictly stronger
2094commitment than δ-only in the K1 ledger order. This is the type-level form of
2095"J is forced only on the continuous completion": the same forcing question
2096gets opposite answers at two strengths, with a genuine strengthening between
2097them.
2098
2099* `delta_only_does_not_force`: on the δ-native rational carrier, for every
2100  prime orbit there is a PRC ratio character fixing every other prime axis and
2101  inverting that one, an orientation distinct from J's. So no δ-only datum
2102  forces J. (`prc_every_prime_axis_orientation_free`.)
2103* `completion_selects_jcost`: on the completion, within the forced cost form,
2104  the calibration condition holds iff `λ = 1`, selecting J.
2105  (`isCalibrated_costLambda_pos_iff`.)
2106* `strength_strictly_increases`: `deltaOnly < traceClosure` in the commitment
2107  order, so the strength that forces J strictly exceeds the strength at which it
2108  provably fails. (`StrengthTag.deltaOnly_lt_traceClosure`.)
2109
2110Without the third field this would be two unrelated facts; with it the object
2111asserts that the gap between the failing strength and the forcing strength is
2112real and ordered, which is exactly the non-bookkeeping content. -/
2113structure PRCJCostStrengthSeparation : Prop where
2114  delta_only_does_not_force :
2115    ∀ (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p),
2116      ∃ χ : RatioOrbit → RatioOrbit,
2117        PRCRatioCharacter χ ∧
2118        (∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
2119          r ≠ p →
2120            RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)) ∧
2121        ¬ RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
2122  completion_selects_jcost :
2123    ∀ l : ℝ, 0 < l →
2124      (Cost.FunctionalEquation.IsCalibrated (costLambda l) ↔ l = 1)
2125  strength_strictly_increases :
2126    StrengthTag.deltaOnly < StrengthTag.traceClosure
2127
2128/-- The strength separation holds: δ-only fails to force J, the completion
2129selects it, and the completion strength is strictly stronger. No project-local
2130axioms. -/
2131theorem prc_jcost_strength_separation : PRCJCostStrengthSeparation where
2132  delta_only_does_not_force := prc_every_prime_axis_orientation_free
2133  completion_selects_jcost := fun _ hl => isCalibrated_costLambda_pos_iff hl
2134  strength_strictly_increases := StrengthTag.deltaOnly_lt_traceClosure
2135
2136/-- **The gauge group acts on the entire cost-solution set (exact).**
2137
2138The cost-joint stratification proves the `costLambda` family *is* a set of
2139solutions (`form_forced`: family ⊆ solutions) and exhibits one non-`J` solution
2140(`gauge_not_forced`). What it does not prove is that the gauge action stays
2141inside the solution set at all. This theorem supplies that: for every `a > 0`,
2142the gauge substitution `x ↦ x^a` carries any solution of the four algebraic
2143laws (reciprocal symmetry, normalization, the composition law/RCL, continuity
2144on the positives) to another solution of the same four laws.
2145
2146This is the structural half of completeness. The full completeness claim is
2147`{four-law solutions} = {costLambda λ : λ > 0}` (the gauge orbit is the *entire*
2148residual freedom, not merely *some* of it). The family ⊆ solutions direction is
2149`form_forced`; the reverse needs (i) the gauge acting on all solutions (proved
2150here) and (ii) every solution being gauge-equivalent to a calibrated one, which
2151is the curvature-normalization fact isolated in
2152`PRCFourLawCompletenessTarget` below. With this theorem the solution set is
2153*gauge-stable*: it is a union of `Aut(ℝ_{>0}, ×)`-orbits, so the calibration
2154freedom is the only freedom that can possibly distinguish members. -/
2155theorem cost_laws_gauge_invariant {F : ℝ → ℝ} {a : ℝ} (ha : 0 < a)
2156    (hRecip : Cost.FunctionalEquation.IsReciprocalCost F)
2157    (hNorm : Cost.FunctionalEquation.IsNormalized F)
2158    (hComp : Cost.FunctionalEquation.SatisfiesCompositionLaw F)
2159    (hCont : ContinuousOn F (Set.Ioi 0)) :
2160    Cost.FunctionalEquation.IsReciprocalCost (fun x => F (x ^ a)) ∧
2161    Cost.FunctionalEquation.IsNormalized (fun x => F (x ^ a)) ∧
2162    Cost.FunctionalEquation.SatisfiesCompositionLaw (fun x => F (x ^ a)) ∧
2163    ContinuousOn (fun x => F (x ^ a)) (Set.Ioi 0) := by
2164  refine ⟨?_, ?_, ?_, ?_⟩
2165  · intro x hx
2166    have hxa : (0 : ℝ) < x ^ a := Real.rpow_pos_of_pos hx a
2167    show F (x ^ a) = F (x⁻¹ ^ a)
2168    rw [Real.inv_rpow (le_of_lt hx) a]
2169    exact hRecip _ hxa
2170  · show F ((1 : ℝ) ^ a) = 0
2171    rw [Real.one_rpow]; exact hNorm
2172  · intro x y hx hy
2173    have hxa : (0 : ℝ) < x ^ a := Real.rpow_pos_of_pos hx a
2174    have hya : (0 : ℝ) < y ^ a := Real.rpow_pos_of_pos hy a
2175    show F ((x * y) ^ a) + F ((x / y) ^ a)
2176        = 2 * F (x ^ a) * F (y ^ a) + 2 * F (x ^ a) + 2 * F (y ^ a)
2177    rw [Real.mul_rpow (le_of_lt hx) (le_of_lt hy),
2178        Real.div_rpow (le_of_lt hx) (le_of_lt hy) a]
2179    exact hComp _ _ hxa hya
2180  · have hf : ContinuousOn (fun x : ℝ => x ^ a) (Set.Ioi 0) :=
2181      (Real.continuous_rpow_const (le_of_lt ha)).continuousOn
2182    have hmaps : Set.MapsTo (fun x : ℝ => x ^ a) (Set.Ioi 0) (Set.Ioi 0) :=
2183      fun x hx => Real.rpow_pos_of_pos hx a
2184    exact hCont.comp hf hmaps
2185
2186/-- **The isolated analytic blocker for four-law completeness (exact Prop).**
2187
2188This is the one fact that, together with `cost_laws_gauge_invariant` and
2189`law_of_logic_forces_jcost`, would close completeness
2190(`{four-law solutions} ⊆ {costLambda λ}`). It says: every non-trivial solution
2191of the four algebraic laws is gauge-equivalent to a *calibrated* solution: that
2192is, there is a positive gauge exponent `c` that rescales `F` to unit log-curvature.
2193
2194It is stated, not proved, because the proof requires the uncalibrated
2195d'Alembert classification (continuous solutions are `cosh(c·)` for a *free*
2196frequency `c`), whereas the existing `FunctionalEquation` pipeline bakes in the
2197calibration `c = 1` from the start (`dAlembert_cosh_solution` assumes
2198`deriv (deriv H) 0 = 1`). Generalizing that to a free frequency, and excluding
2199the oscillatory `cos(c·)` branch via the cost positivity, is a genuine piece of
2200analysis. Isolating it here as an exact statement, rather than asserting
2201completeness, is the honest terminal form of this track. -/
2202def PRCFourLawCompletenessTarget : Prop :=
2203  ∀ F : ℝ → ℝ,
2204    Cost.FunctionalEquation.IsReciprocalCost F →
2205    Cost.FunctionalEquation.IsNormalized F →
2206    Cost.FunctionalEquation.SatisfiesCompositionLaw F →
2207    ContinuousOn F (Set.Ioi 0) →
2208    (0 < deriv (deriv (Cost.FunctionalEquation.G F)) 0) →
2209    ∃ c : ℝ, 0 < c ∧
2210      Cost.FunctionalEquation.IsCalibrated (fun x => F (x ^ c⁻¹))
2211
2212/-- **Four-law completeness, conditional on the isolated blocker (exact).**
2213
2214Given the calibratability fact `PRCFourLawCompletenessTarget`, every non-trivial
2215solution of the four algebraic laws *is* a member of the `costLambda` family.
2216Combined with `composition_law_admits_full_scale_family` (family ⊆ solutions),
2217this is the biconditional: the four-law solution set with positive log-curvature
2218is *exactly* the gauge orbit `{costLambda c : c > 0}`. So the calibration unit
2219is provably the *only* residual freedom: nothing outside the gauge orbit
2220satisfies the laws. The hypothesis is the sole analytic input; the rest is the
2221rescaling reduction discharged through `law_of_logic_forces_jcost` and the
2222gauge-orbit identity `costLambda c x = J(x^c)`. -/
2223theorem cost_laws_complete_of_calibratable
2224    [Cost.FunctionalEquation.AczelSmoothnessPackage]
2225    (hTarget : PRCFourLawCompletenessTarget)
2226    {F : ℝ → ℝ}
2227    (hRecip : Cost.FunctionalEquation.IsReciprocalCost F)
2228    (hNorm : Cost.FunctionalEquation.IsNormalized F)
2229    (hComp : Cost.FunctionalEquation.SatisfiesCompositionLaw F)
2230    (hCont : ContinuousOn F (Set.Ioi 0))
2231    (hκ : 0 < deriv (deriv (Cost.FunctionalEquation.G F)) 0) :
2232    ∃ c : ℝ, 0 < c ∧ ∀ x : ℝ, 0 < x → F x = costLambda c x := by
2233  obtain ⟨c, hc, hCalib⟩ := hTarget F hRecip hNorm hComp hCont hκ
2234  -- The rescaled solution `F̃(y) = F(y^(1/c))` satisfies all four laws (gauge
2235  -- invariance with exponent `c⁻¹`) and is calibrated (the hypothesis), so it
2236  -- equals `J` by `law_of_logic_forces_jcost`.
2237  have hcinv : 0 < c⁻¹ := inv_pos.mpr hc
2238  obtain ⟨hR, hN, hC, hCo⟩ := cost_laws_gauge_invariant hcinv hRecip hNorm hComp hCont
2239  have hJ : ∀ x : ℝ, 0 < x → F (x ^ c⁻¹) = Cost.Jcost x :=
2240    Cost.FunctionalEquation.law_of_logic_forces_jcost
2241      (fun x => F (x ^ c⁻¹)) hR hN hC hCalib hCo
2242  refine ⟨c, hc, ?_⟩
2243  intro x hx
2244  -- `F x = F((x^c)^(1/c)) = J(x^c) = costLambda c x`.
2245  have hxc : (0 : ℝ) < x ^ c := Real.rpow_pos_of_pos hx c
2246  have hpow : (x ^ c) ^ c⁻¹ = x := by
2247    rw [← Real.rpow_mul (le_of_lt hx), mul_inv_cancel₀ (ne_of_gt hc), Real.rpow_one]
2248  calc F x = F ((x ^ c) ^ c⁻¹) := by rw [hpow]
2249    _ = Cost.Jcost (x ^ c) := hJ (x ^ c) hxc
2250    _ = costLambda c x := (calibration_is_mul_automorphism_gauge.1 c x hx).symm
2251
2252/-- Second derivative of a left-scaled function at the origin: for `g`
2253with `deriv g` differentiable, `(t ↦ g(m·t))'' (0) = m² · g''(0)`. Pure
2254calculus; the scaling factor squares because it is pulled out once per
2255differentiation. Used to transport the calibration (log-curvature) of a cost
2256under the gauge substitution `x ↦ x^a`. -/
2257theorem deriv2_comp_mul_left_at_zero (g : ℝ → ℝ) (m : ℝ)
2258    (hg2 : Differentiable ℝ (deriv g)) :
2259    deriv (deriv (fun s => g (m * s))) 0 = m ^ 2 * deriv (deriv g) 0 := by
2260  have h1 : deriv (fun s => g (m * s)) = fun s => m * deriv g (m * s) := by
2261    funext s
2262    simpa [smul_eq_mul] using deriv_comp_mul_left m g s
2263  rw [h1]
2264  have hd : DifferentiableAt ℝ (fun s => deriv g (m * s)) 0 :=
2265    (hg2 (m * 0)).comp 0 (by fun_prop)
2266  rw [deriv_const_mul m hd]
2267  have h3 : deriv (fun s => deriv g (m * s)) 0 = m * deriv (deriv g) (m * 0) := by
2268    simpa [smul_eq_mul] using deriv_comp_mul_left m (deriv g) 0
2269  rw [h3]; simp only [mul_zero]; ring
2270
2271/-- **The isolated analytic blocker is a theorem (T1′ discharged).**
2272
2273Every positive-log-curvature solution of the four algebraic laws is
2274gauge-equivalent to a calibrated one. This proves `PRCFourLawCompletenessTarget`
2275outright, so the conditional `cost_laws_complete_of_calibratable` becomes
2276unconditional (`prc_four_law_completeness` below).
2277
2278Proof: a four-law `F` has `G F = F ∘ exp` smooth, because `H F = G F + 1` is a
2279continuous d'Alembert solution and `AczelSmoothnessPackage` makes such solutions
2280`C^∞`. Let `κ = G F''(0) > 0` and `c = √κ`. The gauge substitution
2281`x ↦ x^{1/c}` sends `G F` to `t ↦ G F(t/c)`, whose second derivative at the
2282origin is `c⁻² · κ = 1` (`deriv2_comp_mul_left_at_zero`). So the rescaled cost
2283is calibrated. -/
2284theorem prc_four_law_completeness_target
2285    [Cost.FunctionalEquation.AczelSmoothnessPackage] :
2286    PRCFourLawCompletenessTarget := by
2287  intro F hRecip hNorm hComp hCont hκ
2288  set Gf := Cost.FunctionalEquation.G F with hGf_def
2289  set Hf := Cost.FunctionalEquation.H F with hHf_def
2290  -- H F is a continuous d'Alembert solution with H F 0 = 1.
2291  have h_H0 : Hf 0 = 1 := by
2292    show Cost.FunctionalEquation.H F 0 = 1
2293    simp only [Cost.FunctionalEquation.H, Cost.FunctionalEquation.G, Real.exp_zero]
2294    rw [hNorm]; ring
2295  have h_G_cont : Continuous Gf := by
2296    have h := ContinuousOn.comp_continuous hCont Real.continuous_exp
2297    have h' : Continuous (fun t => F (Real.exp t)) :=
2298      h (by intro t; exact Set.mem_Ioi.mpr (Real.exp_pos t))
2299    simpa [hGf_def, Cost.FunctionalEquation.G] using h'
2300  have h_H_cont : Continuous Hf := by
2301    simpa [hHf_def, Cost.FunctionalEquation.H] using h_G_cont.add continuous_const
2302  have hCoshAdd : Cost.FunctionalEquation.CoshAddIdentity F :=
2303    Cost.FunctionalEquation.composition_law_equiv_coshAdd F |>.mp hComp
2304  have h_direct : Cost.FunctionalEquation.DirectCoshAdd Gf :=
2305    Cost.FunctionalEquation.CoshAddIdentity_implies_DirectCoshAdd F hCoshAdd
2306  have h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u := by
2307    intro t u
2308    have hG := h_direct t u
2309    have h_goal : (Gf (t + u) + 1) + (Gf (t - u) + 1)
2310        = 2 * (Gf t + 1) * (Gf u + 1) := by
2311      calc (Gf (t + u) + 1) + (Gf (t - u) + 1)
2312          = (Gf (t + u) + Gf (t - u)) + 2 := by ring
2313        _ = (2 * (Gf t * Gf u) + 2 * (Gf t + Gf u)) + 2 := by rw [hG]
2314        _ = 2 * (Gf t + 1) * (Gf u + 1) := by ring
2315    simpa [hHf_def, Cost.FunctionalEquation.H, hGf_def] using h_goal
2316  -- Smoothness, hence twice-differentiability of G F.
2317  have hHsmooth : ContDiff ℝ ⊤ Hf :=
2318    Cost.FunctionalEquation.aczel_dAlembert_smooth Hf h_H0 h_H_cont h_dAlembert
2319  have hGf_smooth : ContDiff ℝ ⊤ Gf := by
2320    have he : Gf = fun t => Hf t - 1 := by
2321      funext t; simp [hGf_def, hHf_def, Cost.FunctionalEquation.H]
2322    rw [he]; exact hHsmooth.sub contDiff_const
2323  have hGf_diff2 : Differentiable ℝ (deriv Gf) :=
2324    (contDiff_infty_iff_deriv.mp
2325      (contDiff_infty_iff_deriv.mp (hGf_smooth.of_le le_top)).2).1
2326  -- Curvature and the calibrating exponent.
2327  set c := Real.sqrt (deriv (deriv Gf) 0) with hc_def
2328  have hcpos : 0 < c := Real.sqrt_pos.mpr hκ
2329  have hc2 : c ^ 2 = deriv (deriv Gf) 0 := Real.sq_sqrt (le_of_lt hκ)
2330  refine ⟨c, hcpos, ?_⟩
2331  show deriv (deriv (Cost.FunctionalEquation.G (fun x => F (x ^ c⁻¹)))) 0 = 1
2332  have hGtilde :
2333      Cost.FunctionalEquation.G (fun x => F (x ^ c⁻¹)) = fun t => Gf (c⁻¹ * t) := by
2334    funext t
2335    show F ((Real.exp t) ^ c⁻¹) = Gf (c⁻¹ * t)
2336    rw [Real.rpow_def_of_pos (Real.exp_pos t), Real.log_exp, mul_comm t c⁻¹]
2337    simp [hGf_def, Cost.FunctionalEquation.G]
2338  rw [hGtilde, deriv2_comp_mul_left_at_zero Gf c⁻¹ hGf_diff2,
2339      inv_pow, ← hc2, inv_mul_cancel₀ (pow_ne_zero 2 (ne_of_gt hcpos))]
2340
2341/-- **Four-law completeness, unconditional (T1′ closed).**
2342
2343Every positive-log-curvature solution of the four algebraic laws equals
2344`costLambda c` for some `c > 0`. With `composition_law_admits_full_scale_family`
2345(family ⊆ solutions) this is the biconditional: the positive-curvature four-law
2346solution set is *exactly* the gauge orbit `{costLambda c : c > 0}`. The
2347calibration unit is therefore provably the only residual freedom: nothing
2348outside the gauge orbit satisfies the laws. -/
2349theorem prc_four_law_completeness
2350    [Cost.FunctionalEquation.AczelSmoothnessPackage]
2351    {F : ℝ → ℝ}
2352    (hRecip : Cost.FunctionalEquation.IsReciprocalCost F)
2353    (hNorm : Cost.FunctionalEquation.IsNormalized F)
2354    (hComp : Cost.FunctionalEquation.SatisfiesCompositionLaw F)
2355    (hCont : ContinuousOn F (Set.Ioi 0))
2356    (hκ : 0 < deriv (deriv (Cost.FunctionalEquation.G F)) 0) :
2357    ∃ c : ℝ, 0 < c ∧ ∀ x : ℝ, 0 < x → F x = costLambda c x :=
2358  cost_laws_complete_of_calibratable prc_four_law_completeness_target
2359    hRecip hNorm hComp hCont hκ
2360
2361/-- **The residual cost freedom is exactly one positive real (gauge is a torsor).**
2362
2363`prc_four_law_completeness` gives *existence* of a calibrating exponent
2364(`∃ c > 0`). This upgrades it to *unique* existence (`∃!`): every
2365positive-curvature four-law solution `F` equals `costLambda c` for one and only
2366one `c > 0`. So the gauge orbit is a torsor under the multiplicative-automorphism
2367group with no redundancy: the freedom δ leaves in the cost is precisely one
2368positive real, and that real is pinned by `F` itself. This is the exact
2369quantification of the program's "what is forced versus assumed": the cost *form*
2370is forced (the four laws plus positive curvature), and exactly one positive-real
2371*unit* is assumed, uniquely.
2372
2373The uniqueness half is `costLambda_single_point_calibration`: two calibrating
2374exponents both reproduce `F`, hence agree at the single distinction ratio
2375`x₀ = 2 > 1`, which already forces them equal. No new analysis; this packages
2376free action (`costLambda_injective`), transitive action
2377(`costLambda_gauge_transitive`), and surjectivity (`prc_four_law_completeness`)
2378into the one torsor statement those docstrings only asserted in prose. -/
2379theorem prc_cost_freedom_is_one_real
2380    [Cost.FunctionalEquation.AczelSmoothnessPackage]
2381    {F : ℝ → ℝ}
2382    (hRecip : Cost.FunctionalEquation.IsReciprocalCost F)
2383    (hNorm : Cost.FunctionalEquation.IsNormalized F)
2384    (hComp : Cost.FunctionalEquation.SatisfiesCompositionLaw F)
2385    (hCont : ContinuousOn F (Set.Ioi 0))
2386    (hκ : 0 < deriv (deriv (Cost.FunctionalEquation.G F)) 0) :
2387    ∃! c : ℝ, 0 < c ∧ ∀ x : ℝ, 0 < x → F x = costLambda c x := by
2388  obtain ⟨c, hcpos, hc⟩ := prc_four_law_completeness hRecip hNorm hComp hCont hκ
2389  refine ⟨c, ⟨hcpos, hc⟩, ?_⟩
2390  rintro d ⟨hdpos, hd⟩
2391  have h2 : costLambda d 2 = costLambda c 2 := by
2392    rw [← hd 2 (by norm_num), ← hc 2 (by norm_num)]
2393  exact costLambda_single_point_calibration (by norm_num : (1 : ℝ) < 2) hdpos hcpos h2
2394
2395/-- **The completion strictly extends the δ-native carrier (cost-independent).**
2396
2397The strength separation `prc_jcost_strength_separation` witnesses the
2398carrier/completion gap *through the cost*: J-forcing fails on the δ-native
2399carrier and holds on the completion. This theorem gives the same gap at the most
2400primitive level, with no reference to cost at all: the completion `ℝ` contains a
2401square root of `2`, while no element of the δ-native rational carrier
2402`RatioOrbit` has a value squaring to `2` (its verifier image lies in `ℚ`, and
2403`√2` is irrational). So the move from the carrier to the completion is a genuine
2404extension: the carrier cannot even express the limits the completion supplies,
2405quite apart from whether any cost is forced. This is the algebraic root of the
2406program's "J is forced only on the continuous completion": the completion is a
2407strictly larger object, tagged `traceClosure` and provably above the δ-only
2408floor (`StrengthTag.deltaOnly_lt_traceClosure`). -/
2409theorem prc_completion_strictly_extends_carrier :
2410    (∃ x : ℝ, x ^ 2 = 2) ∧
2411    ¬ ∃ q : RatioOrbit, ((RatioOrbit.toRat q : ℝ)) ^ 2 = 2 := by
2412  refine ⟨⟨Real.sqrt 2, Real.sq_sqrt (by norm_num)⟩, ?_⟩
2413  rintro ⟨q, hq⟩
2414  have hirr : Irrational (Real.sqrt 2) := irrational_sqrt_two
2415  have hsqrt : Real.sqrt 2 = |(RatioOrbit.toRat q : ℝ)| := by
2416    have h := Real.sqrt_sq_eq_abs (RatioOrbit.toRat q : ℝ)
2417    rw [hq] at h; exact h
2418  rw [hsqrt] at hirr
2419  exact hirr ⟨|RatioOrbit.toRat q|, by rw [Rat.cast_abs]⟩
2420
2421/-- The δ-native rational field (standard model `ℚ`) has no square root of `2`:
2422the carrier is not even real-closed, let alone complete. -/
2423theorem rat_no_sqrt_two : ¬ ∃ q : ℚ, q ^ 2 = 2 := by
2424  rintro ⟨q, hq⟩
2425  have hcast : ((q : ℝ)) ^ 2 = 2 := by exact_mod_cast hq
2426  have hirr : Irrational (Real.sqrt 2) := irrational_sqrt_two
2427  have h := Real.sqrt_sq_eq_abs (q : ℝ)
2428  rw [hcast] at h
2429  rw [h] at hirr
2430  exact hirr ⟨|q|, by rw [Rat.cast_abs]⟩
2431
2432/-- The continuum `ℝ` is not countable (type-level). -/
2433theorem real_not_countable : ¬ Countable ℝ := by
2434  intro h
2435  haveI := h
2436  exact Cardinal.not_countable_real Set.countable_univ
2437
2438/-- `√2` is algebraic over `ℚ`: it is a root of `X^2 - 2`, the cleanest
2439δ-posable polynomial comparison that the bare rational field cannot answer
2440(`forced_field_has_gap`). -/
2441theorem sqrt_two_isAlgebraic : IsAlgebraic ℚ (Real.sqrt 2) := by
2442  refine ⟨Polynomial.X ^ 2 - Polynomial.C 2, ?_, ?_⟩
2443  · exact Polynomial.X_pow_sub_C_ne_zero (by norm_num) 2
2444  · have h2 : (Real.sqrt 2) ^ 2 = 2 := Real.sq_sqrt (by norm_num)
2445    simp only [map_sub, map_pow, Polynomial.aeval_X, Polynomial.aeval_C]
2446    rw [show (algebraMap ℚ ℝ) 2 = (2 : ℝ) by norm_num, h2, sub_self]
2447
2448/-- **§5.1 / §9 backing: closing δ's algebraic questions never escapes
2449countability.**
2450
2451The `prc_continuum_not_forced` docstring asserts in prose that even the *real
2452closure* of the δ-forced field — the real algebraic numbers, the carrier in
2453which every δ-posable *polynomial* comparison resolves, including the `√2` gap
2454that the bare rational field `ℚ` misses — stays countable, so closing δ's
2455algebraic questions never escapes countability. That claim is here a checked
2456theorem rather than a label:
2457
2458* the set of reals algebraic over `ℚ` is countable (`Algebraic.countable`);
2459* it does contain `√2`, the specific gap `ℚ` lacks (`sqrt_two_isAlgebraic`);
2460* `ℝ` is uncountable (`real_not_countable`).
2461
2462So the most generous algebraic closure of the δ-forced field is still strictly
2463below the continuum. This pins the precise arena for the §9 target
2464(now CLOSED, positive — see `dAlembert_cosh_of_monotone` and
2465`composition_law_monotone_forces_costLambda` below): a countable field in which
2466all polynomial δ-questions resolve is exactly where one asks whether `J` can be
2467forced *without* completeness, and the answer is yes. The cardinality gap
2468survives the algebraic closure; only the completeness posit crosses it. -/
2469theorem delta_algebraic_closure_stays_countable :
2470    Set.Countable { x : ℝ | IsAlgebraic ℚ x }
2471      ∧ IsAlgebraic ℚ (Real.sqrt 2)
2472      ∧ ¬ Countable ℝ :=
2473  ⟨Algebraic.countable ℚ ℝ, sqrt_two_isAlgebraic, real_not_countable⟩
2474
2475/-- **§9 payoff, family form: monotonicity forces `F` into the `costLambda` family.**
2476
2477Sharpens `composition_law_monotone_forces_cosh_family` to the statement directly
2478comparable to the `ContinuousOn` family theorem `composition_law_admits_full_scale_family`:
2479a reciprocal-symmetric, normalized, composition-law cost that is monotone (via
2480`H_F` on `[0,∞)`) equals `costLambda c` on `(0,∞)` for a single real `c`. The
2481residual `c` is exactly the one unit-of-scale posit; with the calibration
2482`c = 1` this is `Cost.Jcost`. No completeness is used anywhere. -/
2483theorem composition_law_monotone_forces_costLambda (F : ℝ → ℝ)
2484    (hRecip : Cost.FunctionalEquation.IsReciprocalCost F)
2485    (hNorm : Cost.FunctionalEquation.IsNormalized F)
2486    (hComp : Cost.FunctionalEquation.SatisfiesCompositionLaw F)
2487    (hMono : MonotoneOn (Cost.FunctionalEquation.H F) (Set.Ici (0 : ℝ))) :
2488    ∃ c : ℝ, ∀ x : ℝ, 0 < x → F x = costLambda c x := by
2489  obtain ⟨c, hc⟩ :=
2490    composition_law_monotone_forces_cosh_family F hRecip hNorm hComp hMono
2491  refine ⟨c, ?_⟩
2492  intro x hx
2493  have htx : x = Real.exp (Real.log x) := (Real.exp_log hx).symm
2494  have h1 : Cost.FunctionalEquation.H F (Real.log x) = Real.cosh (c * Real.log x) := hc _
2495  have h2 : Cost.FunctionalEquation.H F (Real.log x) = F x + 1 := by
2496    simp only [Cost.FunctionalEquation.H, Cost.FunctionalEquation.G]
2497    rw [← htx]
2498  have h3 : costLambda c x = Real.cosh (c * Real.log x) - 1 := by
2499    have hg := congrFun (G_costLambda c) (Real.log x)
2500    simp only [Cost.FunctionalEquation.G] at hg
2501    rw [← htx] at hg
2502    exact hg
2503  have hsum : F x + 1 = Real.cosh (c * Real.log x) := by rw [← h2, h1]
2504  rw [h3]; linarith
2505
2506/-- **§9 capstone: the residual freedom is EXACTLY one positive real.**
2507
2508The scale family `costLambda` is injective in its positive exponent: if
2509`costLambda l` and `costLambda l'` agree on all of `(0,∞)` with `l, l' > 0`, then
2510`l = l'`. Evaluating at `x = 2` turns the equality into
2511`cosh (log 2 · l) = cosh (log 2 · l')`, and `cosh` is injective on `[0,∞)`
2512(`Real.cosh_strictMonoOn`), so `log 2 · l = log 2 · l'`, hence `l = l'`. No
2513completeness is used. Combined with `composition_law_monotone_forces_costLambda`
2514(every monotone solution IS some `costLambda c`), this is the complete
2515completeness-free classification: the monotone, reciprocal, normalized,
2516composition-law costs are faithfully parameterized by exactly one positive real.
2517The residual unit of scale is therefore genuine and irreducible, not an artifact
2518of a loose argument: no order-only datum can collapse it further. -/
2519theorem costLambda_injOn_pos {l l' : ℝ} (hl : 0 < l) (hl' : 0 < l')
2520    (h : ∀ x : ℝ, 0 < x → costLambda l x = costLambda l' x) : l = l' := by
2521  have e : ∀ a : ℝ, (2 : ℝ) ^ a = Real.exp (Real.log 2 * a) := fun a =>
2522    Real.rpow_def_of_pos (by norm_num) a
2523  have hcosh : ∀ a : ℝ,
2524      ((2 : ℝ) ^ a + (2 : ℝ) ^ (-a)) / 2 = Real.cosh (Real.log 2 * a) := by
2525    intro a
2526    rw [Real.cosh_eq, e a, e (-a), show Real.log 2 * (-a) = -(Real.log 2 * a) by ring]
2527  have h2 := h 2 (by norm_num)
2528  unfold costLambda at h2
2529  have h3 : ((2 : ℝ) ^ l + (2 : ℝ) ^ (-l)) / 2
2530      = ((2 : ℝ) ^ l' + (2 : ℝ) ^ (-l')) / 2 := by linarith [h2]
2531  rw [hcosh l, hcosh l'] at h3
2532  have hlog2 : 0 < Real.log 2 := Real.log_pos (by norm_num)
2533  have ha : Real.log 2 * l ∈ Set.Ici (0 : ℝ) := Set.mem_Ici.mpr (by positivity)
2534  have hb : Real.log 2 * l' ∈ Set.Ici (0 : ℝ) := Set.mem_Ici.mpr (by positivity)
2535  have hmul : Real.log 2 * l = Real.log 2 * l' := Real.cosh_strictMonoOn.injOn ha hb h3
2536  exact mul_left_cancel₀ (ne_of_gt hlog2) hmul
2537
2538/-! ### The countability premise, formalized (paper §"Finitary generative systems")
2539
2540The δ non-forcing result rests on one standing premise: distinction is a
2541*finitary generative system*, so its reach is countable. The paper states this as
2542Theorem "Generative systems reach only countable collections" (`thm:countgen`).
2543Here that theorem is upgraded from prose to a machine-checked statement, together
2544with its contrapositive (escaping countability requires a genuinely infinitary
2545input) and the `ℝ` corollary (no finitary system exhausts the real line). This is
2546the formal backing for the premise the paper names, not a closure of the
2547interpretive question of whether distinction *is* such a system. -/
2548
2549/-- Stage `k` of a finitary generative system: seed `S0`, rule set `R` (each rule
2550a finite-arity map `List α → α`). `G₀ = S0`; `G_{k+1}` adjoins every rule applied
2551to a finite tuple of already-reached objects. -/
2552def genStage {α : Type*} (S0 : Set α) (R : Set (List α → α)) : ℕ → Set α
2553  | 0 => S0
2554  | (k + 1) =>
2555      genStage S0 R k ∪
2556        {x | ∃ ρ ∈ R, ∃ l : List α, (∀ y ∈ l, y ∈ genStage S0 R k) ∧ ρ l = x}
2557
2558/-- The generated collection: everything reached in finitely many stages. -/
2559def generated {α : Type*} (S0 : Set α) (R : Set (List α → α)) : Set α :=
2560  ⋃ k, genStage S0 R k
2561
2562/-- The set of lists all of whose entries lie in a countable set is countable. -/
2563theorem countable_setOf_lists_mem {α : Type*} {s : Set α} (hs : s.Countable) :
2564    {l : List α | ∀ y ∈ l, y ∈ s}.Countable := by
2565  have hc : Countable s := hs.to_subtype
2566  rw [← Set.countable_coe_iff]
2567  have key : ∀ (L : {l : List α // ∀ y ∈ l, y ∈ s}),
2568      (L.1.attach.map (fun x => (⟨x.1, L.2 x.1 x.2⟩ : s))).map Subtype.val = L.1 := by
2569    intro L; simp
2570  have hinj : Function.Injective
2571      (fun (L : {l : List α // ∀ y ∈ l, y ∈ s}) =>
2572        L.1.attach.map (fun x => (⟨x.1, L.2 x.1 x.2⟩ : s))) := by
2573    intro L1 L2 hL
2574    apply Subtype.ext
2575    have hL' := congrArg (List.map Subtype.val) hL
2576    rw [key L1, key L2] at hL'
2577    exact hL'
2578  exact hinj.countable
2579
2580/-- **`thm:countgen`: each stage of a finitary generative system is countable.** -/
2581theorem genStage_countable {α : Type*} {S0 : Set α} {R : Set (List α → α)}
2582    (hS0 : S0.Countable) (hR : R.Countable) : ∀ k, (genStage S0 R k).Countable := by
2583  intro k
2584  induction k with
2585  | zero => simpa only [genStage] using hS0
2586  | succ k ih =>
2587    simp only [genStage]
2588    refine Set.Countable.union ih ?_
2589    have hlists : {l : List α | ∀ y ∈ l, y ∈ genStage S0 R k}.Countable :=
2590      countable_setOf_lists_mem ih
2591    have hsub :
2592        {x | ∃ ρ ∈ R, ∃ l : List α,
2593              (∀ y ∈ l, y ∈ genStage S0 R k) ∧ ρ l = x}
2594          = ⋃ ρ ∈ R, ρ '' {l : List α | ∀ y ∈ l, y ∈ genStage S0 R k} := by
2595      ext x
2596      simp only [Set.mem_setOf_eq, Set.mem_iUnion, Set.mem_image]
2597      constructor
2598      · rintro ⟨ρ, hρ, l, hl, rfl⟩; exact ⟨ρ, hρ, l, hl, rfl⟩
2599      · rintro ⟨ρ, hρ, l, hl, rfl⟩; exact ⟨ρ, hρ, l, hl, rfl⟩
2600    rw [hsub]
2601    exact hR.biUnion (fun ρ _ => hlists.image ρ)
2602
2603/-- **`thm:countgen`: the generated collection of a finitary generative system is
2604countable.** Seed countable + countably many finite-arity rules ⇒ reach countable.
2605Completeness-free; the only inputs are countable unions, countable products of
2606countable sets, and images. -/
2607theorem generated_countable {α : Type*} {S0 : Set α} {R : Set (List α → α)}
2608    (hS0 : S0.Countable) (hR : R.Countable) : (generated S0 R).Countable := by
2609  unfold generated
2610  exact Set.countable_iUnion (genStage_countable hS0 hR)
2611
2612/-- **Contrapositive: escaping countability requires a genuinely infinitary input.**
2613If a generative system's reach is uncountable, then either its seed is uncountable
2614or it has uncountably many rules. So the only way distinction could reach the
2615continuum is by an uncountable seed or uncountably many simultaneous rules, i.e. by
2616positing an infinitary act, which is the completeness principle smuggled in. This
2617is the exact "the escape is circular" point of the paper, made precise. -/
2618theorem uncountable_generated_needs_infinitary {α : Type*}
2619    {S0 : Set α} {R : Set (List α → α)}
2620    (h : ¬ (generated S0 R).Countable) : ¬ S0.Countable ∨ ¬ R.Countable := by
2621  by_contra hc
2622  push_neg at hc
2623  exact h (generated_countable hc.1 hc.2)
2624
2625/-- **`ℝ` corollary: no finitary generative system exhausts the real line.**
2626A countable seed closed under countably many finite-arity rules can never reach
2627all of `ℝ`. This is the formal statement that distinction, read as a finitary
2628generative system, does not force the continuum. -/
2629theorem generated_ne_univ_real {S0 : Set ℝ} {R : Set (List ℝ → ℝ)}
2630    (hS0 : S0.Countable) (hR : R.Countable) : generated S0 R ≠ Set.univ := by
2631  intro huniv
2632  have huniv_c : (Set.univ : Set ℝ).Countable := huniv ▸ generated_countable hS0 hR
2633  exact real_not_countable (Set.countable_univ_iff.mp huniv_c)
2634
2635/-- **`cor:measure`: the reach of a finitary generative system on `ℝ` has Lebesgue
2636measure zero.** Countable sets are null for any atomless measure, and Lebesgue
2637volume on `ℝ` is atomless. This is the measure-theoretic form of non-forcing: the
2638reachable reals occupy none of the line. -/
2639theorem generated_volume_zero {S0 : Set ℝ} {R : Set (List ℝ → ℝ)}
2640    (hS0 : S0.Countable) (hR : R.Countable) :
2641    MeasureTheory.volume (generated S0 R) = 0 :=
2642  Set.Countable.measure_zero (generated_countable hS0 hR) MeasureTheory.volume
2643
2644/-- **Almost every real is unreachable.** A real drawn at random (Lebesgue-a.e.)
2645lies outside the reach of any finitary generative system: the reachable reals are
2646a null set, so their complement is conull. This is the sharpest "size" statement of
2647the four non-forcing arguments. -/
2648theorem generated_ae_unreachable {S0 : Set ℝ} {R : Set (List ℝ → ℝ)}
2649    (hS0 : S0.Countable) (hR : R.Countable) :
2650    ∀ᵐ x : ℝ, x ∉ generated S0 R := by
2651  rw [MeasureTheory.ae_iff]
2652  simpa using generated_volume_zero hS0 hR
2653
2654/-! ### Non-vacuity: the completeness-free forcing applies to the actual cost
2655
2656The monotone forcing theorems above are not abstract possibilities; their
2657hypotheses are satisfied by the canonical recognition cost `Cost.Jcost`. The
2658log-coordinate transform of `J` is exactly `cosh`, which is monotone on `[0,∞)`, so
2659`composition_law_monotone_forces_costLambda` fires on `J` itself and places it in
2660the forced one-parameter family with no completeness assumption anywhere. -/
2661
2662/-- The log-coordinate transform of the recognition cost is `cosh`:
2663`H J t = G J t + 1 = (cosh t - 1) + 1 = cosh t`. -/
2664theorem H_Jcost_eq_cosh (t : ℝ) :
2665    Cost.FunctionalEquation.H Cost.Jcost t = Real.cosh t := by
2666  simp only [Cost.FunctionalEquation.H]
2667  rw [Cost.FunctionalEquation.Jcost_G_eq_cosh_sub_one]; ring
2668
2669/-- `H J` is monotone on `[0,∞)` (it is `cosh`), so `J` satisfies the
2670completeness-free regularity hypothesis of the monotone forcing theorems. -/
2671theorem H_Jcost_monotoneOn :
2672    MonotoneOn (Cost.FunctionalEquation.H Cost.Jcost) (Set.Ici (0 : ℝ)) := by
2673  intro a ha b hb hab
2674  rw [H_Jcost_eq_cosh, H_Jcost_eq_cosh]
2675  exact Real.cosh_strictMonoOn.monotoneOn ha hb hab
2676
2677/-- **Non-vacuity capstone: the recognition cost `J` is forced by monotonicity.**
2678`Cost.Jcost` satisfies reciprocal symmetry, normalization, the composition law, and
2679the monotonicity of its log-transform, so the completeness-free
2680`composition_law_monotone_forces_costLambda` applies and places `J` in the forced
2681scale family `costLambda c` for some `c > 0`. With the scale calibration `c = 1`
2682(`costLambda 1 = J`) this recovers `J` exactly. The order-only forcing route is
2683therefore not merely abstract: it forces the actual recognition cost. -/
2684theorem Jcost_forced_by_monotonicity :
2685    ∃ c : ℝ, ∀ x : ℝ, 0 < x → Cost.Jcost x = costLambda c x :=
2686  composition_law_monotone_forces_costLambda Cost.Jcost
2687    (fun x _ => by simp only [Cost.Jcost, inv_inv]; ring)
2688    (by show Cost.Jcost 1 = 0; norm_num [Cost.Jcost])
2689    ((Cost.FunctionalEquation.composition_law_equiv_coshAdd Cost.Jcost).mpr
2690      Cost.FunctionalEquation.Jcost_cosh_add_identity)
2691    H_Jcost_monotoneOn
2692
2693/-- **Headline capstone: the recognition cost `J` is forced by ORDER alone
2694(completeness-free analogue of `law_of_logic_forces_jcost`).**
2695
2696`Cost.FunctionalEquation.law_of_logic_forces_jcost` pins `F = J` using a
2697`ContinuousOn` hypothesis. This theorem replaces continuity by *monotonicity* of
2698the log-transform `H F` on `[0,∞)`: any reciprocal-symmetric, normalized,
2699composition-law cost whose log-transform is monotone and which satisfies the unit
2700calibration `G''(0) = 1` equals `Cost.Jcost` on the positive reals. No
2701completeness, no continuity, and no derivative-of-a-limit on the real line is
2702used.
2703
2704Proof skeleton: `composition_law_monotone_forces_costLambda` places `F` in the
2705scale family `costLambda c` on `(0,∞)`. Because the log-coordinate transform
2706`G F t = F (exp t)` only ever evaluates `F` at the positive point `exp t`, the
2707positive-domain equality `F = costLambda c` lifts to `G F = G (costLambda c)`
2708*everywhere*, so the calibration `deriv (deriv (G F)) 0 = 1` transfers verbatim to
2709`costLambda c`. The within-family calibration identity `isCalibrated_costLambda_iff`
2710then forces `c² = 1`, i.e. `c = ±1`, and both members collapse to `J` by the
2711reciprocal symmetry of the family (`costLambda (-1) x = costLambda 1 x`). The
2712load-bearing cost joint is therefore pinned to `J` using order in place of the
2713continuum. -/
2714theorem law_of_logic_forces_jcost_monotone (F : ℝ → ℝ)
2715    (hRecip : Cost.FunctionalEquation.IsReciprocalCost F)
2716    (hNorm : Cost.FunctionalEquation.IsNormalized F)
2717    (hComp : Cost.FunctionalEquation.SatisfiesCompositionLaw F)
2718    (hMono : MonotoneOn (Cost.FunctionalEquation.H F) (Set.Ici (0 : ℝ)))
2719    (hCalib : Cost.FunctionalEquation.IsCalibrated F) :
2720    ∀ x : ℝ, 0 < x → F x = Cost.Jcost x := by
2721  obtain ⟨c, hc⟩ :=
2722    composition_law_monotone_forces_costLambda F hRecip hNorm hComp hMono
2723  -- The log-coordinate transform sees only positive arguments (`exp t > 0`),
2724  -- so positive-domain equality lifts to equality of `G F` everywhere.
2725  have hG : Cost.FunctionalEquation.G F = Cost.FunctionalEquation.G (costLambda c) := by
2726    funext t
2727    simp only [Cost.FunctionalEquation.G]
2728    exact hc (Real.exp t) (Real.exp_pos t)
2729  have hCalibC : Cost.FunctionalEquation.IsCalibrated (costLambda c) := by
2730    unfold Cost.FunctionalEquation.IsCalibrated at hCalib ⊢
2731    rw [← hG]; exact hCalib
2732  have hc2 : c ^ 2 = 1 := (isCalibrated_costLambda_iff c).mp hCalibC
2733  have hcpm : c = 1 ∨ c = -1 := by
2734    have hfac : (c - 1) * (c + 1) = 0 := by nlinarith [hc2]
2735    rcases mul_eq_zero.mp hfac with h | h
2736    · exact Or.inl (by linarith)
2737    · exact Or.inr (by linarith)
2738  intro x hx
2739  rw [hc x hx]
2740  rcases hcpm with h1 | hm1
2741  · subst h1; exact costLambda_one_eq_jcost x hx
2742  · subst hm1
2743    have hsymm : costLambda (-1) x = costLambda 1 x := by
2744      unfold costLambda
2745      rw [show -(-1 : ℝ) = 1 by norm_num]
2746      ring
2747    rw [hsymm]; exact costLambda_one_eq_jcost x hx
2748
2749/-- **The δ-act cost is an exact closed form: distinguishing successor orbits
2750`n` and `n+1` costs `1/(2n(n+1))`.**
2751
2752The most primitive δ-act along the integer ladder is the step from orbit `n` to
2753orbit `n+1`, carried by the ratio `(n+1)/n`. Its recognition cost is *exactly*
2754`1/(2n(n+1))` — a closed rational identity, with no limit, no Taylor expansion,
2755and no calibration posit. This is the literal "cost of one δ-act" object named as
2756Move 1 in the δ publication program. Two facts fall out of it:
2757
2758* `1/(2n(n+1)) = ½(1/n − 1/(n+1))`, so the costs along the ladder *telescope*:
2759  the total recognition cost of building the entire integer ladder from the unit
2760  orbit is `∑_{n≥1} 1/(2n(n+1)) = 1/2`, exactly.
2761* The leading per-step coefficient is `n² · J((n+1)/n) → 1/2`
2762  (`jcost_successor_increment_tendsto`).
2763
2764Honest reading (this does *not* force `J`): a scale-family member `costLambda c`
2765is `cosh (c·t) - 1` in log coordinates, so its discrete per-step act cost has
2766leading coefficient `c²/2`. The δ-act ladder therefore sees exactly the
2767calibration invariant `c²` — the same invariant the continuous condition
2768`G''(0) = c²` sees — and not the absolute scale; the closed form here is the
2769canonical `c = 1` instance. What the result establishes is that the calibration
2770is *not analytic in nature*: it is the leading coefficient of an exact rational
2771ladder of δ-act costs, a discrete object. The residual freedom is one positive
2772number (which `c²` counts as the unit), recorded as the faithfulness of the
2773family (`costLambda_injOn_pos`). -/
2774theorem jcost_successor_increment (n : ℝ) (hn : 0 < n) :
2775    Cost.Jcost ((n + 1) / n) = 1 / (2 * n * (n + 1)) := by
2776  have hn' : n ≠ 0 := ne_of_gt hn
2777  have hn1 : n + 1 ≠ 0 := by positivity
2778  unfold Cost.Jcost
2779  field_simp
2780  ring
2781
2782/-- **The δ-act cost carried to the completion recovers the calibration coefficient
2783`1/2`.**
2784
2785The leading coefficient of the per-step δ-act cost along the integer ladder is
2786`n² · J((n+1)/n) → 1/2`. This is the canonical `c = 1` instance of the family
2787pattern `n² · costLambda c ((n+1)/n) → c²/2`: the discrete act-cost ladder
2788exhibits the calibration invariant as a leading coefficient, a discrete datum
2789rather than an analytic one. It does not pin the absolute scale (see
2790`jcost_successor_increment`). The proof is elementary: on `n ≥ 1` the term equals
2791`n/(2(n+1)) = 1/2 − 1/(2(n+1))`, and `1/(2(n+1)) → 0`. -/
2792theorem jcost_successor_increment_tendsto :
2793    Filter.Tendsto
2794      (fun n : ℕ => (n : ℝ) ^ 2 * Cost.Jcost (((n : ℝ) + 1) / (n : ℝ)))
2795      Filter.atTop (nhds (1 / 2)) := by
2796  have h0 : Filter.Tendsto (fun n : ℕ => (1 : ℝ) / ((n : ℝ) + 1))
2797      Filter.atTop (nhds 0) := tendsto_one_div_add_atTop_nhds_zero_nat
2798  have h1 : Filter.Tendsto (fun n : ℕ => (1 : ℝ) / (2 * ((n : ℝ) + 1)))
2799      Filter.atTop (nhds 0) := by
2800    have := h0.const_mul (1 / 2 : ℝ)
2801    simpa [mul_comm, mul_div_assoc, div_div, one_div] using this
2802  have hbase : Filter.Tendsto
2803      (fun n : ℕ => (1 : ℝ) / 2 - (1 : ℝ) / (2 * ((n : ℝ) + 1)))
2804      Filter.atTop (nhds (1 / 2)) := by
2805    have := (tendsto_const_nhds (x := (1 / 2 : ℝ))).sub h1
2806    simpa using this
2807  apply hbase.congr'
2808  filter_upwards [Filter.eventually_ge_atTop 1] with n hn
2809  have hnpos : (0 : ℝ) < (n : ℝ) := by
2810    have : (1 : ℕ) ≤ n := hn
2811    exact_mod_cast Nat.lt_of_lt_of_le Nat.zero_lt_one this
2812  have hnz : (n : ℝ) ≠ 0 := ne_of_gt hnpos
2813  have hn1 : ((n : ℝ) + 1) ≠ 0 := by positivity
2814  rw [jcost_successor_increment (n : ℝ) hnpos]
2815  field_simp
2816  ring
2817
2818/-- **The δ-act ladder sees exactly the calibration invariant `c²`, for the whole
2819scale family.**
2820
2821Generalizing `jcost_successor_increment_tendsto` (the `c = 1` instance) to every
2822member of the forced scale family: the leading per-step coefficient of the
2823δ-act cost is `n² · costLambda c ((n+1)/n) → c²/2`. This is the precise statement
2824of "the discrete δ-act cost determines the calibration invariant `c²` and nothing
2825more" (Move 1, adjudicated to the second falsifier branch): the act-cost ladder
2826sees the same `c²` the continuous calibration `G''(0) = c²` sees, so it does *not*
2827pin the absolute scale; the canonical `c = 1` gives `1/2`.
2828
2829Proof: write `p = ((n+1)/n)^c`; then `costLambda c ((n+1)/n) = (p + p⁻¹)/2 - 1 =
2830(p-1)²/(2p)`, so `n² · costLambda c = (n(p-1))²/(2p)`. The base `(n+1)/n → 1`, so
2831`p → 1`; and `n(p-1) = n((1+1/n)^c - 1) → c` is the slope of `x ↦ x^c` at `1`
2832(its derivative there is `c`). Hence the quotient tends to `c²/2`. -/
2833theorem costLambda_successor_increment_tendsto (c : ℝ) :
2834    Filter.Tendsto
2835      (fun n : ℕ => (n : ℝ) ^ 2 * costLambda c (((n : ℝ) + 1) / (n : ℝ)))
2836      Filter.atTop (nhds (c ^ 2 / 2)) := by
2837  -- `n · ((1+1/n)^c - 1) → c` is the slope of `x ↦ x^c` at `1`.
2838  have hderiv : HasDerivAt (fun y : ℝ => y ^ c) c 1 := by
2839    have h := Real.hasDerivAt_rpow_const (x := (1 : ℝ)) (p := c) (Or.inl one_ne_zero)
2840    simpa using h
2841  have hslope : Filter.Tendsto (slope (fun y : ℝ => y ^ c) 1) (nhdsWithin 1 {1}ᶜ)
2842      (nhds c) := hasDerivAt_iff_tendsto_slope.mp hderiv
2843  -- `1 + 1/n → 1`, staying away from `1`.
2844  have hy : Filter.Tendsto (fun n : ℕ => (1 : ℝ) + 1 / (n : ℝ))
2845      Filter.atTop (nhdsWithin 1 {1}ᶜ) := by
2846    rw [tendsto_nhdsWithin_iff]
2847    refine ⟨?_, ?_⟩
2848    · have h0 : Filter.Tendsto (fun n : ℕ => (1 : ℝ) / (n : ℝ))
2849          Filter.atTop (nhds 0) := tendsto_one_div_atTop_nhds_zero_nat
2850      have := (tendsto_const_nhds (x := (1 : ℝ))).add h0
2851      simpa using this
2852    · filter_upwards [Filter.eventually_ge_atTop 1] with n hn
2853      have hnpos : (0 : ℝ) < (n : ℝ) := by
2854        have : (1 : ℝ) ≤ (n : ℝ) := by exact_mod_cast hn
2855        linarith
2856      have hdpos : (0 : ℝ) < 1 / (n : ℝ) := by positivity
2857      simp only [Set.mem_compl_iff, Set.mem_singleton_iff]
2858      intro hc; nlinarith [hdpos]
2859  have hcomp : Filter.Tendsto
2860      (fun n : ℕ => slope (fun y : ℝ => y ^ c) 1 ((1 : ℝ) + 1 / (n : ℝ)))
2861      Filter.atTop (nhds c) := hslope.comp hy
2862  have hslope_n : Filter.Tendsto
2863      (fun n : ℕ => (n : ℝ) * (((1 : ℝ) + 1 / (n : ℝ)) ^ c - 1))
2864      Filter.atTop (nhds c) := by
2865    apply hcomp.congr'
2866    filter_upwards [Filter.eventually_ge_atTop 1] with n hn
2867    have hnpos : (0 : ℝ) < (n : ℝ) := by
2868      have : (1 : ℝ) ≤ (n : ℝ) := by exact_mod_cast hn
2869      linarith
2870    have hnz : (n : ℝ) ≠ 0 := ne_of_gt hnpos
2871    rw [slope_def_field, Real.one_rpow]
2872    rw [show ((1 : ℝ) + 1 / (n : ℝ)) - 1 = 1 / (n : ℝ) by ring]
2873    rw [div_eq_mul_inv, inv_div, div_one]
2874    ring
2875  -- `p = (1+1/n)^c → 1`.
2876  have hp1 : Filter.Tendsto (fun n : ℕ => ((1 : ℝ) + 1 / (n : ℝ)) ^ c)
2877      Filter.atTop (nhds 1) := by
2878    have hbase : Filter.Tendsto (fun n : ℕ => (1 : ℝ) + 1 / (n : ℝ))
2879        Filter.atTop (nhds 1) := by
2880      have h0 : Filter.Tendsto (fun n : ℕ => (1 : ℝ) / (n : ℝ))
2881          Filter.atTop (nhds 0) := tendsto_one_div_atTop_nhds_zero_nat
2882      have := (tendsto_const_nhds (x := (1 : ℝ))).add h0
2883      simpa using this
2884    have hcont : ContinuousAt (fun y : ℝ => y ^ c) 1 :=
2885      Real.continuousAt_rpow_const 1 c (Or.inl one_ne_zero)
2886    have := hcont.tendsto.comp hbase
2887    simpa [Real.one_rpow] using this
2888  -- Assemble the quotient `(n(p-1))²/(2p) → c²/2`.
2889  have hnum : Filter.Tendsto
2890      (fun n : ℕ => ((n : ℝ) * (((1 : ℝ) + 1 / (n : ℝ)) ^ c - 1)) ^ 2)
2891      Filter.atTop (nhds (c ^ 2)) := hslope_n.pow 2
2892  have hden : Filter.Tendsto (fun n : ℕ => 2 * ((1 : ℝ) + 1 / (n : ℝ)) ^ c)
2893      Filter.atTop (nhds 2) := by
2894    have := hp1.const_mul (2 : ℝ)
2895    simpa using this
2896  have hquot : Filter.Tendsto
2897      (fun n : ℕ => ((n : ℝ) * (((1 : ℝ) + 1 / (n : ℝ)) ^ c - 1)) ^ 2
2898        / (2 * ((1 : ℝ) + 1 / (n : ℝ)) ^ c))
2899      Filter.atTop (nhds (c ^ 2 / 2)) := hnum.div hden (by norm_num)
2900  apply hquot.congr'
2901  filter_upwards [Filter.eventually_ge_atTop 1] with n hn
2902  have hnpos : (0 : ℝ) < (n : ℝ) := by
2903    have : (1 : ℝ) ≤ (n : ℝ) := by exact_mod_cast hn
2904    linarith
2905  have hnz : (n : ℝ) ≠ 0 := ne_of_gt hnpos
2906  have hxe : ((n : ℝ) + 1) / (n : ℝ) = 1 + 1 / (n : ℝ) := by field_simp
2907  have hxpos : (0 : ℝ) < 1 + 1 / (n : ℝ) := by positivity
2908  have hp : (0 : ℝ) < ((1 : ℝ) + 1 / (n : ℝ)) ^ c := Real.rpow_pos_of_pos hxpos c
2909  have hpne : ((1 : ℝ) + 1 / (n : ℝ)) ^ c ≠ 0 := ne_of_gt hp
2910  have hxneg : ((1 : ℝ) + 1 / (n : ℝ)) ^ (-c) = (((1 : ℝ) + 1 / (n : ℝ)) ^ c)⁻¹ :=
2911    Real.rpow_neg (le_of_lt hxpos) c
2912  unfold costLambda
2913  rw [hxe, hxneg]
2914  field_simp
2915  ring
2916
2917/-
2918================================================================================
2919PROGRAM-GOAL PAPER TRAIL (recorded 2026-05-28, pass 349). READ THIS.
2920
2921This block exists so that no future session re-opens a question that is closed,
2922and so the GOAL of the whole δ effort is not forgotten or quietly inflated.
2923
2924WHAT WAS THE GOAL.
2925  The δ / PRC program asks: how much of mathematics and physics is FORCED by the
2926  single primitive act of distinction (δ), and where exactly does forcing stop
2927  and posit begin? The load-bearing joint is the forcing of the cost function J.
2928  J is pinned down only on a CONTINUOUS domain (the argument uses limits and
2929  derivatives). So the real final target was always: is that continuous
2930  completion (the real line) FORCED by δ, or merely ASSUMED?
2931
2932  That boundary question, "where does necessity end," was the correct target all
2933  along. A program claiming "everything is forced, nothing arbitrary" has no
2934  successful outcome: taken literally it is false (see below), softened it is an
2935  unfalsifiable slogan. The result with content is the LOCATION OF THE SEAM.
2936
2937WHAT WAS PROVEN (theorem `prc_continuum_not_forced`, this file).
2938  Distinction does NOT force the continuum. The answer is the NEGATIVE direction
2939  and it is a real theorem, not a missing lemma. Two independent classical
2940  pillars force it:
2941    (1) Cantor. δ proceeds one act at a time; its native index is ℕ
2942        (DistinctionNat ≃ ℕ); so everything δ generates is countable, including
2943        the rational field and even its algebraic closure. ℝ is uncountable.
2944        A countable generator cannot produce an uncountable object.
2945    (2) Löwenheim–Skolem. Any first-order theory with an infinite model has a
2946        countable model; no first-order theory forces uncountability.
2947        Completeness (the axiom singling out ℝ) is irreducibly second-order; the
2948        only way to "force ℝ from logic" is to admit full second-order logic,
2949        which smuggles in the power set = the continuum under another name.
2950
2951WHY THE NEGATIVE IS STRONGER THAN "ℝ IS FORCED" WOULD HAVE BEEN.
2952  (a) True and unassailable; a forcing claim would have been circular (the J
2953      argument imports the very ℝ it would claim to force).
2954  (b) More information: a forced countable core, ℝ not in it, gap measured
2955      exactly as ℵ₀ < 𝔠.
2956  (c) Minimal posits: the entire arbitrary content of the framework is now
2957      exactly TWO nested posits, one continuum and one unit of scale within it
2958      (the unit is `prc_cost_freedom_is_one_real`). Everything else (counting,
2959      ratios, the cost FORM) is proven forced.
2960  (d) The seam lands on the fault line of mathematics itself: the countable /
2961      uncountable jump is exactly where CH, Gödel–Cohen independence, and
2962      constructive-vs-classical analysis live. δ must posit at precisely the
2963      point set theory itself must choose.
2964
2965THE HONEST TERMINAL CLAIM OF THE PROGRAM (do not inflate past this):
2966  δ FORCES the discrete number tower and the rational field (arithmetic, derived).
2967  The continuous completion is the FIRST genuine posit beyond δ (analysis,
2968  assumed; size = ℵ₀ < 𝔠). On the completion the cost FORM is forced, and the
2969  residual freedom is exactly ONE positive real. Every link, including this
2970  boundary where forcing stops, is an exact theorem.
2971
2972ONE PREMISE, STATED PLAINLY: the countability argument reads δ as a generative
2973  act proceeding one step at a time (grounded in DistinctionNat ≃ ℕ). That
2974  reading is high-confidence but is a premise about what a δ-act is, not itself a
2975  theorem. Escaping it requires letting δ pose uncountably many comparisons at
2976  once, which IS completeness, so that route is circular.
2977
2978THE ONE SHARPER TARGET THAT REMAINS (not closed by this theorem): we proved δ
2979  does not force ℝ. We did NOT prove the continuum is NECESSARY to force J. Open
2980  question worth future sessions: can J be forced on a countable real-closed
2981  field with no completeness at all? If yes, the continuum posit dissolves and
2982  the framework's arbitrary content drops from two posits to one. If no, a
2983  theorem explaining WHY completeness is required would promote the continuum
2984  from assumption to proven necessity.
2985
2986  PASS 350 (2026-05-28): the ARENA of that target is now a checked theorem, not
2987  prose. `delta_algebraic_closure_stays_countable` proves the set of reals
2988  algebraic over ℚ is countable (Mathlib `Algebraic.countable`), contains √2
2989  (`sqrt_two_isAlgebraic`, the gap ℚ lacks), while ℝ is uncountable. So the
2990  countable field in which every δ-posable POLYNOMIAL comparison resolves is
2991  pinned: it stays strictly below the continuum, and that is exactly where the
2992  §9 question lives. This UPGRADES the §5.1 prose remark to a theorem; it does
2993  NOT close the §9 target (whether J is forceable on that arena without
2994  completeness is still open). Honest tag: prose→theorem on the sub-claim,
2995  open on the main question.
2996
2997  PASS 351 (2026-05-28): the regularity-substitute brick is now a theorem.
2998  `monotone_additive_isLinear` proves a Monotone solution of Cauchy's additive
2999  equation is linear (`f x = f 1 · x`), using ONLY Archimedean density of ℚ
3000  (`exists_rat_btwn`), never completeness. This is the exact lemma a
3001  completeness-free re-proof of J-uniqueness would consume: the RCL's d'Alembert
3002  reduction lands on an additive exponent, and monotonicity (an order property
3003  present on any ordered field) forces that exponent linear, hence `J`. It does
3004  NOT yet re-prove `law_of_logic_forces_jcost` with `MonotoneOn` in place of
3005  `ContinuousOn`; it supplies the missing analytic-free regularity step. Next:
3006  thread it through the d'Alembert layer (`Cost.FunctionalEquation.G`) to a
3007  `MonotoneOn (Set.Ioi 0)` variant of the uniqueness theorem; if a Hamel-basis
3008  pathology survives monotonicity that obstruction is the "why completeness is
3009  required" theorem, otherwise the continuum dependence of the cost dissolves.
3010
3011  PASS 352 (2026-05-28): two order-only, completeness-free constraints on the
3012  d'Alembert solution landed. `dAlembert_duplication`: H(2t)=2(H t)²−1 (cosh
3013  duplication, pure algebra). `dAlembert_ge_one_of_monotone`: a d'Alembert
3014  solution monotone on [0,∞) with H(0)=1 stays ≥1, so the bounded cosine branch
3015  H=cos(c·) is excluded BY ORDER ALONE — no analytic input. This is exactly the
3016  job continuity used to do (rule out the oscillatory branch). The remaining
3017  CRUX, now precisely located: from d'Alembert one gets
3018  H(s+t)−H(s−t) = ±2√((H(s)²−1)(H(t)²−1)) (the "sinh product"); proving the
3019  associated φ(t)=H(t)+√(H(t)²−1) is multiplicative (φ(s+t)=φ(s)φ(t)) requires
3020  matching that sign consistently. Sign-matching is the suspected exact point
3021  where the present argument uses continuity. The §9 question reduces to: can
3022  monotonicity alone fix the sign? If yes, log∘φ is additive+monotone, hence
3023  linear by `monotone_additive_isLinear`, hence H=cosh(linear), and completeness
3024  is NOT required for J. If the sign genuinely needs a limit, that is the
3025  "why completeness is required" theorem. Next target: the sign-matching lemma.
3026
3027  PASS 353 (2026-05-28): THE SIGN CRUX IS RESOLVED — monotonicity fixes the sign.
3028  Key algebra: `dAlembert_prod` (apply d'Alembert to (s+t),(s−t):
3029  H(2s)+H(2t)=2H(s+t)H(s−t)) and `dAlembert_diff_sq`
3030  ((H(s+t)−H(s−t))²=4(H(s)²−1)(H(t)²−1)). Then `dAlembert_diff_eq_of_monotone`:
3031  for 0≤t≤s both s±t are in [0,∞) where H is monotone, so H(s+t)≥H(s−t), and the
3032  difference is the NONNEGATIVE root: H(s+t)−H(s−t)=2√(H(s)²−1)√(H(t)²−1). The
3033  sign — the single place the analytic proof used continuity — is pinned by ORDER
3034  ALONE. `dAlembert_add_of_monotone` gives the cosh addition formula
3035  H(s+t)=H s·H t+√√. So the §9 answer is now in view and POSITIVE: the cost form
3036  does NOT require completeness, only the order structure. Remaining tail (pure
3037  follow-through, no new obstruction expected): S-addition
3038  √(H(s+t)²−1)=H s·S t+S s·H t ⇒ φ=H+√(H²−1) multiplicative on [0,∞) ⇒ log∘φ
3039  additive+monotone ⇒ linear (`monotone_additive_isLinear`) ⇒ H=cosh(c·) ⇒ swap
3040  MonotoneOn for ContinuousOn in `law_of_logic_forces_jcost`. Next: that assembly.
3041
3042  PASS 354 (2026-05-28): the multiplicative structure is now a theorem.
3043  `dAlembert_S_add_of_monotone`: the sinh-addition identity
3044  √(H(s+t)²−1)=H s·√(H t²−1)+√(H s²−1)·H t (squared, nonnegative root, via the
3045  H-addition formula; linear_combination over the sqrt-square facts). Packaged in
3046  `phi_mul_of_monotone`: φ(s+t)=φ(s)·φ(t) for 0≤t≤s with φ x=H x+√(H x²−1). So φ
3047  is multiplicative on [0,∞) with NO completeness used — only order + field +
3048  sqrt. Remaining tail to close §9 positively: φ>0 ⇒ log∘φ additive on [0,∞);
3049  monotone (H,√(H²−1) both increase) ⇒ extend odd to ℝ ⇒ linear by
3050  `monotone_additive_isLinear` ⇒ H=cosh(c·) ⇒ a MonotoneOn variant of
3051  `law_of_logic_forces_jcost`. The mathematical content is finished; the tail is
3052  the odd-extension bookkeeping and the cosh identification. Next: that assembly.
3053
3054  PASS 355 (2026-05-28): §9 IS CLOSED, POSITIVE. The assembly is a theorem:
3055  `dAlembert_cosh_of_monotone`. An even, normalized (H 0=1), monotone-on-[0,∞)
3056  d'Alembert solution IS H t=cosh(c·t) for a single real c. Built from
3057  `monotone_additive_nonneg_isLinear` (odd-extension of an additive-on-[0,∞)
3058  monotone function to all of ℝ, then `monotone_additive_isLinear`, completeness-
3059  free) + log∘φ additive (from `phi_mul_of_monotone`) + monotone (φ increasing)
3060  ⇒ log φ(t)=c·t ⇒ φ(t)=exp(c·t) ⇒ H t=(φ+φ⁻¹)/2=cosh(c·t); evenness extends to
3061  t<0 via `Real.cosh_neg`. NO continuity, NO smoothness, NO Aczél package, NO
3062  least-upper-bound. Only field ops, sqrt, order, and Archimedean density. So the
3063  proof transfers verbatim to ANY Archimedean real-closed field — including the
3064  countable arena pinned in pass 350. CONCLUSION FOR THE δ PROGRAM: the continuum
3065  is NOT required to force the cost form. Monotonicity (an order property of any
3066  ordered field) does everything continuity did. The framework's arbitrary
3067  content drops from TWO nested posits (continuum + unit) to ONE (unit of scale,
3068  the residual c = `prc_cost_freedom_is_one_real`). The continuum posit for the
3069  cost DISSOLVES. The sharper §9 target — open since pass 350 — is resolved in the
3070  positive direction. Honest tag: THEOREM (0 sorry, 0 new axiom; depends only on
3071  Mathlib + the in-file monotone/d'Alembert chain). What remains is purely a
3072  downstream convenience: re-skinning `Cost.FunctionalEquation.law_of_logic_forces_jcost`
3073  to consume `MonotoneOn` instead of `ContinuousOn`+Aczél — the math is done; that
3074  is an API edit, not an open question. The δ frontier as posed in the paper's §9
3075  is now answered.
3076
3077  PASS 356 (2026-05-28): the API edit is DONE too. `composition_law_monotone_forces_cosh_family`
3078  takes the actual cost hypotheses (`Cost.FunctionalEquation.IsReciprocalCost` +
3079  `IsNormalized` + `SatisfiesCompositionLaw`) plus `MonotoneOn (H F) [0,∞)` and
3080  returns `∃ c, H F t = cosh(c·t)` — composition law ⇒ d'Alembert on H F (via
3081  `composition_law_equiv_coshAdd`), reciprocal symmetry ⇒ evenness, normalization
3082  ⇒ H F 0 = 1, then `dAlembert_cosh_of_monotone`. `composition_law_monotone_forces_costLambda`
3083  sharpens this to `∃ c, ∀ x>0, F x = costLambda c x` — the exact completeness-free
3084  counterpart of `composition_law_admits_full_scale_family` (which used `ContinuousOn`).
3085  So the swap "MonotoneOn for ContinuousOn+Aczél" is now a checked theorem in the
3086  cost layer, not a promise. Nothing about §9 remains open: the continuum is not
3087  needed to force the cost, monotonicity suffices, and the residual is one real c.
3088
3089  PASS 357 (2026-05-28): the classification is now COMPLETE in both directions.
3090  `costLambda_injOn_pos`: the scale family is injective in its positive exponent
3091  (agreement on (0,∞) for l,l'>0 ⇒ l=l'), proved by evaluating at x=2, reducing to
3092  cosh(log2·l)=cosh(log2·l'), and `Real.cosh_strictMonoOn.injOn` on [0,∞). No
3093  completeness. Together with `composition_law_monotone_forces_costLambda` (every
3094  monotone solution IS some costLambda c) this is the full completeness-free
3095  classification: the monotone, reciprocal, normalized, composition-law costs are
3096  faithfully parameterized by exactly one positive real. So "the residual is one
3097  unit of scale" is now a THEOREM on BOTH sides — the family covers all solutions
3098  AND no two distinct positive scales coincide. No order-only datum collapses the
3099  scale further; the one posit is genuine and irreducible, not an artifact of a
3100  loose argument. The δ §9 architecture is closed end to end: forcing reaches the
3101  cost FORM with monotonicity alone, and the freedom that remains is exactly ℝ_{>0}.
3102
3103  PASS 358 (2026-05-28): the OTHER δ load-bearer, the countability premise, is now
3104  Lean-backed too. The paper's central premise-theorem `thm:countgen` ("a finitary
3105  generative system reaches only a countable collection") is formalized:
3106  `genStage`/`generated` define the seed-plus-finite-arity-rule closure;
3107  `generated_countable` proves the reach is countable from `S0.Countable` +
3108  `R.Countable` (via `countable_setOf_lists_mem`: lists over a countable set are
3109  countable, by injection into `List ↥s`); `uncountable_generated_needs_infinitary`
3110  is the contrapositive (escaping countability forces an uncountable seed or
3111  uncountably many rules, i.e. an infinitary act, which is the completeness
3112  principle smuggled in, the paper's "circular" point made exact); and
3113  `generated_ne_univ_real` is the ℝ corollary (no finitary system exhausts the real
3114  line). HONEST SCOPE: this formalizes the MATH under the premise (IF distinction is
3115  a finitary generative system THEN its reach is countable, and cannot be ℝ). It
3116  does NOT close the interpretive question of whether distinction IS such a system;
3117  that remains a reading of the primitive, exactly as the paper says. So both δ
3118  load-bearers now have Lean backing: the cost FORM is forced by order alone
3119  (passes 355-357), and the countability boundary is a theorem given the finitary
3120  reading (pass 358). The sole genuinely-open item is the interpretive premise, and
3121  it is open by nature, not for lack of formalization.
3122
3123  PASS 359 (2026-05-28): the measure-theoretic non-forcing argument is now Lean-
3124  backed too, as a direct corollary of pass 358. `generated_volume_zero`: the reach
3125  of a finitary generative system on ℝ has Lebesgue measure zero (countable ⇒ null
3126  for the atomless volume measure). `generated_ae_unreachable`: almost every real is
3127  outside the reach (the reachable set is null, its complement conull). This is the
3128  paper's `cor:measure`. So THREE of the paper's four non-forcing arguments are now
3129  machine-checked: cardinality (pass 350, `real_not_countable` + algebraic-closure
3130  countability), generative-system countability (pass 358, `thm:countgen`), and
3131  measure zero (pass 359). The fourth, definability in a countable language /
3132  Löwenheim-Skolem model theory, was at this pass still prose-only (superseded by
3133  pass 361, which formalizes it after all). The δ architecture is fully load-bearing in Lean: cost FORM
3134  forced by order alone, residual freedom exactly ℝ_{>0}, countability boundary a
3135  theorem under the finitary reading, and the reachable reals null in ℝ.
3136
3137  PASS 360 (2026-05-28): non-vacuity. The monotone forcing route is shown to apply
3138  to the ACTUAL recognition cost, not just abstractly. `H_Jcost_eq_cosh`: the
3139  log-transform of J is exactly cosh (H J t = G J t + 1 = cosh t).
3140  `H_Jcost_monotoneOn`: hence H J is monotone on [0,∞). `Jcost_forced_by_monotonicity`:
3141  feeding J's reciprocal symmetry, normalization, composition law, and that
3142  monotonicity into `composition_law_monotone_forces_costLambda` yields
3143  ∃ c, ∀ x>0, J x = costLambda c x — so the completeness-free order-only route forces
3144  the real J into the scale family (c=1 recovers J exactly). The forcing theorem is
3145  therefore non-vacuous: its hypotheses are satisfied by the canonical cost, and the
3146  conclusion recovers J with no continuity, no smoothness, no completeness. This
3147  closes the loop between the abstract §9 result and the concrete recognition cost.
3148
3149  PASS 361 (2026-05-28): the FOURTH non-forcing argument is now Lean-backed, so all
3150  four of the paper's independent routes are machine-checked. New sibling module
3151  `PRCModelTheoryNonForcing` (heavy `Mathlib.ModelTheory` import isolated there).
3152  `real_has_countable_ee_model`: for any countable first-order language L carrying a
3153  structure on ℝ (card L ≤ ℵ₀), there is a structure N with ℝ ≅[L] N (elementarily
3154  equivalent: same first-order sentences) and #N = ℵ₀ — a direct instantiation of
3155  Mathlib's downward Löwenheim-Skolem `exists_elementarilyEquivalent_card_eq` at the
3156  cardinal ℵ₀. `real_not_first_order_categorical`: that companion has #ℝ ≠ #N (from
3157  `mk_real` : #ℝ = 𝔠 and `aleph0_lt_continuum`), so it is not equinumerous with ℝ,
3158  hence not isomorphic by any structure map. `real_first_order_underdetermined`
3159  bundles all three. CONTENT: no first-order description in a countable language pins
3160  ℝ up to isomorphism — whatever complete first-order theory distinction writes about
3161  its number line, a countable model of that very theory exists. The continuum is not
3162  forced by any amount of first-order distinction, independently of cardinality,
3163  generative countability, and measure. Reversal of the pass-359 stance: the fourth
3164  argument was called "not worth formalizing"; on reflection it is one Mathlib
3165  theorem away and completes the paper's stated "four independent proofs" in Lean, so
3166  it was worth the small cost. ALL FOUR non-forcing arguments now have machine-checked
3167  Lean witnesses. The δ §9 frontier is closed on every front the paper claims.
3168
3169Long-form prose version (no Lean references), saved as the canonical record:
3170  δ/Delta_Continuum_Is_Not_Forced.tex  (compiled: .pdf).
3171================================================================================
3172-/
3173
3174/-- **T0 resolved, NEGATIVE: distinction does not force the continuum.**
3175
3176This is the answer to the program's last load-bearing question, and it is a
3177*non-forcing* result. The whole J-forcing argument lives on the continuous
3178completion. The question was whether δ *forces* that completion or merely
3179*assumes* it. The answer is: δ does not force it, and the obstruction is exact
3180and quantitative, a cardinality gap.
3181
3182The argument, from first principles:
3183
31841. δ's native counting is exactly `ℕ` (`DistinctionNat ≃ ℕ`,
3185   `delta_index_countable`). Distinction proceeds one act at a time, so every
3186   object it generates by iteration is indexed by `ℕ` and is therefore
3187   *countable*.
31882. The δ-forced rational field is `ℚ` (`forced_field_countable`), countable.
3189   Even its real closure (the real algebraic numbers, where every δ-posable
3190   *polynomial* comparison resolves) is countable; closing δ's algebraic
3191   questions never escapes countability. The carrier is not even real-closed:
3192   it has no `√2` (`forced_field_has_gap`).
31933. The continuum `ℝ` is *uncountable* (`completion_uncountable`). Concretely,
3194   every enumeration `f : ℕ → ℝ`, i.e. everything a countable δ-process can ever
3195   name, misses some real (`completion_unnamable`). Almost every real number is
3196   never named by any sequence of distinction acts.
31974. `ℚ` embeds in `ℝ` as an ordered field (`shared_rational_field`), and `ℝ`
3198   fills the `√2` gap (`completion_fills_gap`), so the two share exactly the
3199   δ-forced rational structure and differ precisely on completeness.
3200
3201Therefore the completeness principle, "every gap a δ-comparison points at is
3202filled," is **not** a consequence of distinction. It posits uncountably many
3203points that no δ-act names. Distinction cannot force the existence of objects it
3204can never name. The completion is a genuine added axiom, strictly stronger than
3205δ (this is exactly the `traceClosure` tag, now justified by a theorem rather
3206than a label), and the cardinality gap `#ℚ = ℵ₀ < 𝔠 = #ℝ` is the exact measure
3207of what it adds.
3208
3209Honest consequence for the unification: δ forces the discrete tower and the
3210rational field; the continuous completion is the first genuine posit beyond
3211distinction, and J-forcing is conditional on it. The maximal "δ forces
3212everything including ℝ" reading is false. The true terminal claim is the
3213stratified one. -/
3214structure PRCContinuumNotForced : Prop where
3215  delta_index_countable : Nonempty (DistinctionNat ≃ ℕ)
3216  forced_field_countable : Countable ℚ
3217  forced_field_has_gap : ¬ ∃ q : ℚ, q ^ 2 = 2
3218  shared_rational_field : ∃ φ : ℚ →+* ℝ, Function.Injective φ ∧ StrictMono φ
3219  completion_fills_gap : ∃ r : ℝ, r ^ 2 = 2
3220  completion_uncountable : ¬ Countable ℝ
3221  completion_unnamable : ∀ f : ℕ → ℝ, ∃ r : ℝ, ∀ n : ℕ, f n ≠ r
3222
3223/-- The continuum is not δ-forced: proven, each field discharged from δ-native
3224facts (`DistinctionNat ≃ ℕ`) and Mathlib cardinality. No project-local axioms. -/
3225theorem prc_continuum_not_forced : PRCContinuumNotForced where
3226  delta_index_countable := ⟨DistinctionNat.equivNat⟩
3227  forced_field_countable := inferInstance
3228  forced_field_has_gap := rat_no_sqrt_two
3229  shared_rational_field := by
3230    refine ⟨Rat.castHom ℝ, (Rat.castHom ℝ).injective, ?_⟩
3231    have hco : (⇑(Rat.castHom ℝ) : ℚ → ℝ) = ((↑) : ℚ → ℝ) := by ext q; simp
3232    rw [hco]; exact Rat.cast_strictMono
3233  completion_fills_gap := ⟨Real.sqrt 2, Real.sq_sqrt (by norm_num)⟩
3234  completion_uncountable := real_not_countable
3235  completion_unnamable := by
3236    intro f
3237    by_contra h
3238    push_neg at h
3239    have hsurj : Function.Surjective f := h
3240    have hrange : (Set.range f).Countable := Set.countable_range f
3241    rw [hsurj.range_eq] at hrange
3242    exact Cardinal.not_countable_real hrange
3243
3244/-- **The full honest stratification, as one checked proposition (reconstructed).**
3245
3246This is the top-level "what is forced versus assumed" object the program
3247objective asks for, assembled entirely from proven theorems with no
3248project-local axioms. It supersedes the per-stratum prose and re-establishes the
3249`prc_full_stratification` object (lost when an earlier `UniversalFoundation.lean`
3250edit was reverted) in a stable location, scoped to the load-bearing joint rather
3251than the bookkeeping certificate.
3252
3253The seven fields are the complete honest accounting, bottom to top:
3254
3255* `delta_only_floor` (`KernelFirstPassCertificate`, tag `deltaOnly`): δ alone
3256  forces the number tower (`DistinctionNat ≃ Nat`), the integer surface, and the
3257  rational field. This is what is genuinely **forced** from distinction.
3258* `completion_boundary` (`TraceClosureCertificate`, tag `traceClosure`): the move
3259  to the continuous completion is a trace-closure commitment, strictly stronger
3260  than `deltaOnly`. This is the first thing **assumed** beyond δ.
3261* `carrier_strictly_below_completion` (pass 346): a cost-independent witness that
3262  the assumption is non-vacuous: the completion contains `√2` while the δ-native
3263  carrier provably does not. The completion genuinely adds elements.
3264* `completion_not_forced` (pass 349, the T0 resolution): the completion is not
3265  merely stronger, it is *not δ-forced at all*. δ's native index is `ℕ`, so every
3266  object it generates is countable; `ℝ` is uncountable; the completeness axiom
3267  posits uncountably many points no δ-act names. The cardinality gap
3268  `ℵ₀ < 𝔠` is the exact measure of the assumption. This is the negative answer
3269  to the program's last load-bearing question.
3270* `jcost_strength_separation` (pass 343): on the carrier J is not forced (every
3271  prime axis is orientation-free); on the completion the calibration selects J;
3272  and `deltaOnly < traceClosure`. The forcing of J lives strictly above the
3273  carrier.
3274* `cost_form_forced` (pass 331/332/333/334): on the completion the four algebraic
3275  laws force the cost *form*, the gauge orbit `{costLambda l : l > 0}`.
3276* `residual_freedom_is_one_real` (pass 347): the only thing left **assumed** on
3277  top of the forced form is exactly one positive real, uniquely pinned by the
3278  solution. Not zero (the unit is a gauge δ does not fix), not more than one.
3279* `jcost_forced_order_only` (pass 362): the continuum is removed even from the
3280  *selection* of the canonical cost. A reciprocal-symmetric, normalized,
3281  composition-law, unit-calibrated cost whose log-transform is monotone on
3282  `[0,∞)` **equals** `Cost.Jcost` on the positives, with `ContinuousOn` nowhere
3283  invoked. So the only continuous-analysis input the cost-forcing story ever used
3284  (continuity) is replaced by an order property present on any ordered field; the
3285  residual assumption collapses to the single calibration unit and nothing of the
3286  continuum survives in the cost joint.
3287
3288Read end to end: δ forces {number tower, rational field}; the completion and a
3289single cost unit are assumed; on the completion the cost form is forced, the
3290residual freedom is exactly one real, and the canonical cost itself is forced by
3291order alone. This is the terminal honest claim of the δ program's load-bearing
3292joint. -/
3293structure PRCFullStratification : Prop where
3294  delta_only_floor : KernelFirstPassCertificate
3295  completion_boundary : TraceClosureCertificate
3296  carrier_strictly_below_completion :
3297    (∃ x : ℝ, x ^ 2 = 2) ∧
3298    ¬ ∃ q : RatioOrbit, ((RatioOrbit.toRat q : ℝ)) ^ 2 = 2
3299  completion_not_forced : PRCContinuumNotForced
3300  jcost_strength_separation : PRCJCostStrengthSeparation
3301  cost_form_forced : PRCCostJointStratification
3302  residual_freedom_is_one_real :
3303    ∀ F : ℝ → ℝ,
3304      Cost.FunctionalEquation.IsReciprocalCost F →
3305      Cost.FunctionalEquation.IsNormalized F →
3306      Cost.FunctionalEquation.SatisfiesCompositionLaw F →
3307      ContinuousOn F (Set.Ioi 0) →
3308      0 < deriv (deriv (Cost.FunctionalEquation.G F)) 0 →
3309      ∃! c : ℝ, 0 < c ∧ ∀ x : ℝ, 0 < x → F x = costLambda c x
3310  jcost_forced_order_only :
3311    ∀ F : ℝ → ℝ,
3312      Cost.FunctionalEquation.IsReciprocalCost F →
3313      Cost.FunctionalEquation.IsNormalized F →
3314      Cost.FunctionalEquation.SatisfiesCompositionLaw F →
3315      MonotoneOn (Cost.FunctionalEquation.H F) (Set.Ici (0 : ℝ)) →
3316      Cost.FunctionalEquation.IsCalibrated F →
3317      ∀ x : ℝ, 0 < x → F x = Cost.Jcost x
3318
3319/-- The full stratification holds, discharged field-by-field from proven
3320theorems. No project-local axioms; the `AczelSmoothnessPackage` instance is a
3321proved instance, not an axiom. -/
3322theorem prc_full_stratification
3323    [Cost.FunctionalEquation.AczelSmoothnessPackage] :
3324    PRCFullStratification where
3325  delta_only_floor := kernel_first_pass_certificate
3326  completion_boundary := trace_closure_certificate
3327  carrier_strictly_below_completion := prc_completion_strictly_extends_carrier
3328  completion_not_forced := prc_continuum_not_forced
3329  jcost_strength_separation := prc_jcost_strength_separation
3330  cost_form_forced := prc_cost_joint_stratification
3331  residual_freedom_is_one_real := fun _ h1 h2 h3 h4 h5 =>
3332    prc_cost_freedom_is_one_real h1 h2 h3 h4 h5
3333  jcost_forced_order_only := fun F h1 h2 h3 h4 h5 =>
3334    law_of_logic_forces_jcost_monotone F h1 h2 h3 h4 h5
3335
3336/-- Verifier rational character that rebases the native `3` prime axis to `5`
3337while fixing the `2` axis. This is the narrow countermodel to two-calibration
3338forcing all prime calibrations. -/
3339noncomputable def threeToFiveRebaseRat (x : ℚ) : ℚ :=
3340  x * ((5 : ℚ) / 3) ^ (padicValRat 3 x)
3341
3342theorem threeToFiveRebaseRat_one :
3343    threeToFiveRebaseRat 1 = 1 := by
3344  unfold threeToFiveRebaseRat
3345  have h : padicValRat 3 (1 : ℚ) = 0 := by
3346    norm_num [padicValRat.of_int, padicValInt.eq_zero_of_not_dvd]
3347  rw [h]
3348  norm_num
3349
3350theorem threeToFiveRebaseRat_mul (x y : ℚ) :
3351    threeToFiveRebaseRat (x * y) =
3352      threeToFiveRebaseRat x * threeToFiveRebaseRat y := by
3353  unfold threeToFiveRebaseRat
3354  by_cases hx : x = 0
3355  · simp [hx]
3356  · by_cases hy : y = 0
3357    · simp [hy]
3358    · rw [padicValRat.mul hx hy]
3359      have hbase : ((5 : ℚ) / 3) ≠ 0 := by norm_num
3360      rw [zpow_add₀ hbase]
3361      ring
3362
3363theorem threeToFiveRebaseRat_inv (x : ℚ) :
3364    threeToFiveRebaseRat x⁻¹ = (threeToFiveRebaseRat x)⁻¹ := by
3365  unfold threeToFiveRebaseRat
3366  by_cases hx : x = 0
3367  · simp [hx]
3368  · rw [padicValRat.inv]
3369    have hbase : ((5 : ℚ) / 3) ≠ 0 := by norm_num
3370    have hxpow : ((5 : ℚ) / 3) ^ (padicValRat 3 x) ≠ 0 :=
3371      zpow_ne_zero _ hbase
3372    rw [zpow_neg]
3373    field_simp [hx, hxpow]
3374
3375theorem threeToFiveRebaseRat_ne_zero {x : ℚ}
3376    (hx : x ≠ 0) :
3377    threeToFiveRebaseRat x ≠ 0 := by
3378  unfold threeToFiveRebaseRat
3379  have hbase : ((5 : ℚ) / 3) ≠ 0 := by norm_num
3380  exact mul_ne_zero hx (zpow_ne_zero _ hbase)
3381
3382theorem padicValRat_three_two_eq_zero :
3383    padicValRat 3 (2 : ℚ) = 0 := by
3384  rw [show (2 : ℚ) = ((2 : ℤ) : ℚ) by norm_num]
3385  rw [padicValRat.of_int]
3386  have hInt : padicValInt 3 (2 : ℤ) = 0 := by
3387    apply padicValInt.eq_zero_of_not_dvd
3388    intro hdiv
3389    norm_num at hdiv
3390  exact_mod_cast hInt
3391
3392theorem threeToFiveRebaseRat_two :
3393    threeToFiveRebaseRat 2 = (2 : ℚ) := by
3394  unfold threeToFiveRebaseRat
3395  rw [padicValRat_three_two_eq_zero]
3396  norm_num
3397
3398theorem threeToFiveRebaseRat_three :
3399    threeToFiveRebaseRat 3 = (5 : ℚ) := by
3400  unfold threeToFiveRebaseRat
3401  have h : padicValRat 3 (3 : ℚ) = 1 :=
3402    padicValRat.self (by norm_num : 1 < 3)
3403  rw [h]
3404  norm_num
3405
3406noncomputable def threeToFiveRebaseCharacter (q : RatioOrbit) : RatioOrbit :=
3407  ratioOrbitOfRat (threeToFiveRebaseRat q.toRat)
3408
3409theorem threeToFiveRebaseCharacter_toRat (q : RatioOrbit) :
3410    (threeToFiveRebaseCharacter q).toRat =
3411      threeToFiveRebaseRat q.toRat := by
3412  unfold threeToFiveRebaseCharacter
3413  exact ratioOrbitOfRat_toRat _
3414
3415theorem threeToFiveRebaseCharacter_ratio_character :
3416    PRCRatioCharacter threeToFiveRebaseCharacter where
3417  unit := by
3418    rw [RatioOrbit.crossEq_iff_toRat_eq, threeToFiveRebaseCharacter_toRat,
3419      RatioOrbit.one_toRat]
3420    exact threeToFiveRebaseRat_one
3421  multiplicative := by
3422    intro x y
3423    rw [RatioOrbit.crossEq_iff_toRat_eq, threeToFiveRebaseCharacter_toRat,
3424      RatioOrbit.mul_toRat, RatioOrbit.mul_toRat,
3425      threeToFiveRebaseCharacter_toRat, threeToFiveRebaseCharacter_toRat]
3426    exact threeToFiveRebaseRat_mul x.toRat y.toRat
3427  reciprocal := by
3428    intro x
3429    rw [RatioOrbit.crossEq_iff_toRat_eq, threeToFiveRebaseCharacter_toRat,
3430      RatioOrbit.recip_toRat, RatioOrbit.recip_toRat,
3431      threeToFiveRebaseCharacter_toRat]
3432    exact threeToFiveRebaseRat_inv x.toRat
3433  normalized_invariant := by
3434    intro q
3435    rw [RatioOrbit.crossEq_iff_toRat_eq, threeToFiveRebaseCharacter_toRat,
3436      threeToFiveRebaseCharacter_toRat, DistinctionNat.normalizeRatio_toRat]
3437  nonzero_preserving := by
3438    intro q hq
3439    rw [threeToFiveRebaseCharacter_toRat]
3440    exact threeToFiveRebaseRat_ne_zero hq
3441
3442theorem threeToFiveRebaseCharacter_two_identity :
3443    RatioOrbit.crossEq (threeToFiveRebaseCharacter two) two := by
3444  rw [RatioOrbit.crossEq_iff_toRat_eq, threeToFiveRebaseCharacter_toRat,
3445    two_toRat]
3446  exact threeToFiveRebaseRat_two
3447
3448theorem threeToFiveRebaseCharacter_three_to_five :
3449    (threeToFiveRebaseCharacter threePrimeDirection).toRat = 5 := by
3450  rw [threeToFiveRebaseCharacter_toRat, threePrimeDirection_toRat]
3451  exact threeToFiveRebaseRat_three
3452
3453theorem threeToFiveRebaseCharacter_two_calibrated :
3454    RatioOrbit.crossEq (costFromCharacter threeToFiveRebaseCharacter two)
3455      (onRatioOrbit two) := by
3456  unfold costFromCharacter
3457  exact onRatioOrbit_congr threeToFiveRebaseCharacter_two_identity
3458
3459theorem threeToFiveRebaseCharacter_not_three_prime_calibrated :
3460    ¬ RatioOrbit.crossEq
3461      (costFromCharacter threeToFiveRebaseCharacter threePrimeDirection)
3462      (onRatioOrbit threePrimeDirection) := by
3463  intro h
3464  rw [RatioOrbit.crossEq_iff_toRat_eq, costFromCharacter_toRat,
3465    onRatioOrbit_toRat, threeToFiveRebaseCharacter_three_to_five,
3466    threePrimeDirection_toRat] at h
3467  norm_num at h
3468
3469theorem PRCTwoCalibrationForcesPrimeCalibrationTarget_refuted :
3470    ¬ PRCTwoCalibrationForcesPrimeCalibrationTarget := by
3471  intro htarget
3472  exact threeToFiveRebaseCharacter_not_three_prime_calibrated
3473    (htarget threeToFiveRebaseCharacter
3474      threeToFiveRebaseCharacter_ratio_character
3475      threeToFiveRebaseCharacter_two_calibrated
3476      threeOrbit threeOrbit_primeOrbit)
3477
3478/-- The first mixed composite direction in the two-adic obstruction: `2 * 3`. -/
3479def twoThreePrimeCompositeDirection : RatioOrbit :=
3480  RatioOrbit.mul twoPrimeDirection threePrimeDirection
3481
3482@[simp] theorem twoThreePrimeCompositeDirection_toRat :
3483    twoThreePrimeCompositeDirection.toRat = 6 := by
3484  unfold twoThreePrimeCompositeDirection
3485  rw [RatioOrbit.mul_toRat, twoPrimeDirection_toRat, threePrimeDirection_toRat]
3486  norm_num
3487
3488/-- The mixed image forced by a two-adic axis twist at the composite `2 * 3`:
3489the `2` branch is reciprocal and the `3` branch is identity, giving `3/2`. -/
3490def twoThreePrimeMixedDirection : RatioOrbit :=
3491  RatioOrbit.mul (RatioOrbit.recip twoPrimeDirection) threePrimeDirection
3492
3493@[simp] theorem twoThreePrimeMixedDirection_toRat :
3494    twoThreePrimeMixedDirection.toRat = (3 / 2 : ℚ) := by
3495  unfold twoThreePrimeMixedDirection
3496  rw [RatioOrbit.mul_toRat, RatioOrbit.recip_toRat, twoPrimeDirection_toRat,
3497    threePrimeDirection_toRat]
3498  norm_num
3499
3500/-- Local orientation at the first mixed composite would require the character
3501image of `2*3` to be either the composite itself or its reciprocal. -/
3502def PRCCharacterTwoThreeCompositeLocalOrientation
3503    (χ : RatioOrbit → RatioOrbit) : Prop :=
3504  RatioOrbit.crossEq (χ twoThreePrimeCompositeDirection)
3505      twoThreePrimeCompositeDirection ∨
3506    RatioOrbit.crossEq (χ twoThreePrimeCompositeDirection)
3507      (RatioOrbit.recip twoThreePrimeCompositeDirection)
3508
3509/-- Positive `2*3` composite-local form of the current two-adic branch blocker:
3510every ratio character carrying the two-adic axis branch must still choose one
3511of the two canonical local orientations at the first mixed composite. -/
3512def PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :
3513    Prop :=
3514  ∀ χ : RatioOrbit → RatioOrbit,
3515    PRCRatioCharacter χ →
3516      PRCCharacterTwoAdicAxisTwist χ →
3517        PRCCharacterTwoThreeCompositeLocalOrientation χ
3518
3519/-- Witness form of the `2*3` composite-local failure. This is the constructive
3520countermodel surface equivalent to the reduced two-adic ratio-character target. -/
3521def PRCTwoThreeCompositeLocalOrientationFailureCharacter :
3522    Prop :=
3523  ∃ χ : RatioOrbit → RatioOrbit,
3524    PRCRatioCharacter χ ∧
3525      PRCCharacterTwoAdicAxisTwist χ ∧
3526        ¬ PRCCharacterTwoThreeCompositeLocalOrientation χ
3527
3528/-- Composite-defect form of the non-two mixed branch obstruction. A character
3529that sends orbit `2` to the reciprocal branch and a distinct native prime `p`
3530to identity must send the composite direction `2*p` to the mixed value `p/2`. -/
3531def PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect
3532    (χ : RatioOrbit → RatioOrbit) : Prop :=
3533  RatioOrbit.crossEq (χ twoPrimeDirection)
3534      (RatioOrbit.recip twoPrimeDirection) ∧
3535    ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3536      p ≠ twoOrbit ∧
3537        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) ∧
3538          RatioOrbit.crossEq
3539            (χ (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
3540            (RatioOrbit.mul
3541              (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp))
3542
3543/-- Cost-visible composite defect: the mixed composite image is not J-cost
3544calibrated at the composite direction `2*p`. -/
3545def PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect
3546    (χ : RatioOrbit → RatioOrbit) : Prop :=
3547  RatioOrbit.crossEq (χ twoPrimeDirection)
3548      (RatioOrbit.recip twoPrimeDirection) ∧
3549    ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3550      p ≠ twoOrbit ∧
3551        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) ∧
3552          RatioOrbit.crossEq
3553            (χ (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
3554            (RatioOrbit.mul
3555              (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp)) ∧
3556            ¬ RatioOrbit.crossEq
3557              (costFromCharacter χ
3558                (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
3559              (onRatioOrbit
3560                (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
3561
3562/-- Universal target form of the cost-visible blocker: prime calibration must
3563calibrate the composite direction `2*p` even under the mixed orientation data
3564that sends orbit `2` reciprocal and a distinct native prime `p` identity. -/
3565def PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget :
3566    Prop :=
3567  ∀ χ : RatioOrbit → RatioOrbit,
3568    PRCRatioCharacter χ →
3569      PRCCharacterPrimeDirectionCalibrated χ →
3570        RatioOrbit.crossEq (χ twoPrimeDirection)
3571            (RatioOrbit.recip twoPrimeDirection) →
3572          ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3573            p ≠ twoOrbit →
3574              RatioOrbit.crossEq (χ (primeDirection p hp))
3575                (primeDirection p hp) →
3576                RatioOrbit.crossEq
3577                  (costFromCharacter χ
3578                    (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
3579                  (onRatioOrbit
3580                    (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
3581
3582/-- Product-calibration target: prime calibration must propagate to the product
3583of any two native prime directions. This is the natural composite surface whose
3584`2*p` mixed-orientation instance is the current branch-rigidity blocker. -/
3585def PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget :
3586    Prop :=
3587  ∀ χ : RatioOrbit → RatioOrbit,
3588    PRCRatioCharacter χ →
3589      PRCCharacterPrimeDirectionCalibrated χ →
3590        ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3591          ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3592            RatioOrbit.crossEq
3593              (costFromCharacter χ
3594                (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
3595              (onRatioOrbit
3596                (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
3597
3598/-- Character-local form of prime-pair product cost consistency. Unlike
3599`PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget`, this is a
3600field that can be required of one character as part of admissibility. -/
3601def PRCCharacterPrimePairProductCostConsistent
3602    (χ : RatioOrbit → RatioOrbit) : Prop :=
3603  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3604    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3605      RatioOrbit.crossEq
3606        (costFromCharacter χ
3607          (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
3608        (onRatioOrbit
3609          (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
3610
3611/-- Repaired admissible-character interface after the two-adic countermodel:
3612a character must satisfy the ratio-character laws, prime calibration, and
3613prime-pair product cost consistency. This field preserves the two global
3614orientations but excludes valuation twists. -/
3615structure PRCAdmissibleRatioCharacter
3616    (χ : RatioOrbit → RatioOrbit) : Prop where
3617  ratio_character : PRCRatioCharacter χ
3618  prime_calibrated : PRCCharacterPrimeDirectionCalibrated χ
3619  prime_pair_product_cost :
3620    PRCCharacterPrimePairProductCostConsistent χ
3621
3622/-- Signed repaired admissible-character interface: prime and prime-pair
3623admissibility plus explicit preservation of the signed unit. Pass 279 proves
3624the unsigned interface cannot imply this field. -/
3625structure PRCSignedAdmissibleRatioCharacter
3626    (χ : RatioOrbit → RatioOrbit) : Prop where
3627  admissible : PRCAdmissibleRatioCharacter χ
3628  signed_unit : PRCCharacterSignedUnitCalibrated χ
3629
3630theorem absValueCharacter_prime_pair_product_cost :
3631    PRCCharacterPrimePairProductCostConsistent absValueCharacter := by
3632  intro p hp r hr
3633  have hprod :
3634      RatioOrbit.crossEq
3635        (absValueCharacter
3636          (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
3637        (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)) :=
3638    by
3639      rw [RatioOrbit.crossEq_iff_toRat_eq, absValueCharacter_toRat,
3640        RatioOrbit.mul_toRat, primeDirection_toRat, primeDirection_toRat]
3641      exact abs_of_nonneg
3642        (mul_nonneg
3643          (by exact_mod_cast Nat.zero_le p.toNat)
3644          (by exact_mod_cast Nat.zero_le r.toNat))
3645  exact onRatioOrbit_congr hprod
3646
3647theorem absValueCharacter_admissible :
3648    PRCAdmissibleRatioCharacter absValueCharacter where
3649  ratio_character := absValueCharacter_ratio_character
3650  prime_calibrated := absValueCharacter_prime_calibrated
3651  prime_pair_product_cost := absValueCharacter_prime_pair_product_cost
3652
3653theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_all_prime_calibrated_admissible :
3654    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
3655      ∀ χ : RatioOrbit → RatioOrbit,
3656        PRCRatioCharacter χ →
3657          PRCCharacterPrimeDirectionCalibrated χ →
3658            PRCAdmissibleRatioCharacter χ := by
3659  constructor
3660  · intro htarget χ hχ hprime
3661    exact
3662      ⟨hχ, hprime, htarget χ hχ hprime⟩
3663  · intro hadm χ hχ hprime
3664    exact (hadm χ hχ hprime).prime_pair_product_cost
3665
3666/-- Admissible replacement for the character-factorization blocker: every
3667native cost must factor through a character satisfying the repaired interface,
3668not merely through an arbitrary ratio character. -/
3669def PRCNativeCostAdmissibleCharacterFactorizationTarget : Prop :=
3670  ∀ F : RatioOrbit → RatioOrbit,
3671    PRCNativeCostHypotheses F →
3672      ∃ χ : RatioOrbit → RatioOrbit,
3673        PRCAdmissibleRatioCharacter χ ∧
3674          ∀ q : RatioOrbit,
3675            RatioOrbit.crossEq (F q) (costFromCharacter χ q)
3676
3677/-- Exact upgrade lemma still missing on the factorization side: an arbitrary
3678ratio-character factor for a native cost must be replaceable by an admissible
3679factor with the same generated cost. This is weaker than demanding that the
3680original factor itself be admissible, and it is the right target because
3681`J(χ q)` cannot distinguish a direction from its reciprocal. -/
3682def PRCNativeCostFactorizationAdmissibilityUpgradeTarget : Prop :=
3683  ∀ F : RatioOrbit → RatioOrbit,
3684    PRCNativeCostHypotheses F →
3685      ∀ χ : RatioOrbit → RatioOrbit,
3686        PRCRatioCharacter χ →
3687          (∀ q : RatioOrbit,
3688            RatioOrbit.crossEq (F q) (costFromCharacter χ q)) →
3689            ∃ ψ : RatioOrbit → RatioOrbit,
3690              PRCAdmissibleRatioCharacter ψ ∧
3691                ∀ q : RatioOrbit,
3692                  RatioOrbit.crossEq (F q) (costFromCharacter ψ q)
3693
3694/-- Admissible replacement for character rigidity. The cost, rather than the
3695character orientation itself, must collapse to canonical J-cost on all ratio
3696orbits. -/
3697def PRCNativeCostAdmissibleCharacterRigidityTarget : Prop :=
3698  ∀ χ : RatioOrbit → RatioOrbit,
3699    PRCAdmissibleRatioCharacter χ →
3700      ∀ q : RatioOrbit,
3701        RatioOrbit.crossEq (costFromCharacter χ q) (onRatioOrbit q)
3702
3703/-- Admissible-character rigidity reduced to orientation: under the repaired
3704interface, every admissible character should be globally identity-oriented or
3705reciprocal-oriented pointwise. -/
3706def PRCAdmissibleCharacterGlobalOrientationTarget : Prop :=
3707  ∀ χ : RatioOrbit → RatioOrbit,
3708    PRCAdmissibleRatioCharacter χ →
3709      PRCCharacterGlobalCostOrientation χ
3710
3711/-- Prime-orientation subtarget under admissibility: the repaired prime-pair
3712field should force all prime axes to choose one branch coherently. -/
3713def PRCAdmissibleCharacterPrimeOrientationCoherentTarget : Prop :=
3714  ∀ χ : RatioOrbit → RatioOrbit,
3715    PRCAdmissibleRatioCharacter χ →
3716      PRCCharacterPrimeOrientationCoherent χ
3717
3718theorem PRCNativeCostAdmissibleCharacterRigidityTarget_of_admissible_global_orientation
3719    (horient : PRCAdmissibleCharacterGlobalOrientationTarget) :
3720    PRCNativeCostAdmissibleCharacterRigidityTarget := by
3721  intro χ hadm q
3722  rcases horient χ hadm q with hsame | hinv
3723  · exact onRatioOrbit_congr hsame
3724  · exact RatioOrbit.crossEq_trans
3725      (onRatioOrbit_congr hinv)
3726      (RatioOrbit.crossEq_symm (reciprocal_symmetric q))
3727
3728theorem PRCNativeCostCharacterFactorizationTarget_of_admissible_character_factorization
3729    (hfactor : PRCNativeCostAdmissibleCharacterFactorizationTarget) :
3730    PRCNativeCostCharacterFactorizationTarget := by
3731  intro F hF
3732  rcases hfactor F hF with ⟨χ, hadm, hFχ⟩
3733  exact ⟨χ, hadm.ratio_character, hFχ⟩
3734
3735theorem PRCNativeCostAdmissibleCharacterFactorizationTarget_of_character_factorization_and_admissibility_upgrade
3736    (hfactor : PRCNativeCostCharacterFactorizationTarget)
3737    (hupgrade : PRCNativeCostFactorizationAdmissibilityUpgradeTarget) :
3738    PRCNativeCostAdmissibleCharacterFactorizationTarget := by
3739  intro F hF
3740  rcases hfactor F hF with ⟨χ, hχ, hFχ⟩
3741  exact hupgrade F hF χ hχ hFχ
3742
3743theorem PRCNativeCostAdmissibleCharacterRigidityTarget_of_prime_calibration_propagation
3744    (hprop : PRCPrimeCalibrationPropagationTarget) :
3745    PRCNativeCostAdmissibleCharacterRigidityTarget := by
3746  intro χ hadm q
3747  exact hprop χ hadm.ratio_character hadm.prime_calibrated q
3748
3749theorem PRCNativeCostUniquenessTarget_of_admissible_character_targets
3750    (hfactor : PRCNativeCostAdmissibleCharacterFactorizationTarget)
3751    (hrigid : PRCNativeCostAdmissibleCharacterRigidityTarget) :
3752    PRCNativeCostUniquenessTarget := by
3753  intro F hF q
3754  rcases hfactor F hF with ⟨χ, hadm, hFχ⟩
3755  exact RatioOrbit.crossEq_trans (hFχ q) (hrigid χ hadm q)
3756
3757theorem PRCNativeCostUniquenessTarget_of_character_factorization_upgrade_and_prime_propagation
3758    (hfactor : PRCNativeCostCharacterFactorizationTarget)
3759    (hupgrade : PRCNativeCostFactorizationAdmissibilityUpgradeTarget)
3760    (hprop : PRCPrimeCalibrationPropagationTarget) :
3761    PRCNativeCostUniquenessTarget :=
3762  PRCNativeCostUniquenessTarget_of_admissible_character_targets
3763    (PRCNativeCostAdmissibleCharacterFactorizationTarget_of_character_factorization_and_admissibility_upgrade
3764      hfactor hupgrade)
3765    (PRCNativeCostAdmissibleCharacterRigidityTarget_of_prime_calibration_propagation
3766      hprop)
3767
3768/-- Positive reciprocal-branch transport normal form: if the distinguished
3769orbit-`2` prime axis is reciprocal-oriented, every native prime axis is
3770reciprocal-oriented. -/
3771def PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal
3772    (χ : RatioOrbit → RatioOrbit) : Prop :=
3773  RatioOrbit.crossEq (χ twoPrimeDirection)
3774      (RatioOrbit.recip twoPrimeDirection) →
3775    ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3776      RatioOrbit.crossEq (χ (primeDirection p hp))
3777        (RatioOrbit.recip (primeDirection p hp))
3778
3779/-- Converse distinguished-axis reciprocal normal form: reciprocal orientation at
3780any calibrated prime axis forces reciprocal orientation at the orbit-`2` prime
3781axis. Together with the two-to-all reciprocal rule, this is exactly
3782reciprocal-witness globalization. -/
3783def PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal
3784    (χ : RatioOrbit → RatioOrbit) : Prop :=
3785  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3786    RatioOrbit.crossEq (χ (primeDirection p hp))
3787        (RatioOrbit.recip (primeDirection p hp)) →
3788      RatioOrbit.crossEq (χ twoPrimeDirection)
3789        (RatioOrbit.recip twoPrimeDirection)
3790
3791/-- Split distinguished-axis form of reciprocal-witness globalization. -/
3792def PRCCharacterPrimeReciprocalWitnessGlobalizesSplit
3793    (χ : RatioOrbit → RatioOrbit) : Prop :=
3794  PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal χ ∧
3795    PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ
3796
3797/-- Trace-connected form of the same positive reciprocal branch transport: the
3798reciprocal branch at orbit `2` transports along a finite δ-trace connection from
3799the orbit-`2` prime axis to the target native prime axis. -/
3800def PRCCharacterTwoPrimeReciprocalRespectsTraceConnected
3801    (χ : RatioOrbit → RatioOrbit) : Prop :=
3802  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3803    PRCPrimeAxisTraceConnected twoOrbit twoOrbit_primeOrbit p hp →
3804      RatioOrbit.crossEq (χ twoPrimeDirection)
3805          (RatioOrbit.recip twoPrimeDirection) →
3806        RatioOrbit.crossEq (χ (primeDirection p hp))
3807          (RatioOrbit.recip (primeDirection p hp))
3808
3809/-- Identity analogue of two-prime trace-connected branch transport: identity at
3810orbit `2` transports along a finite δ-trace connection from the orbit-`2` prime
3811axis to the target native prime axis. -/
3812def PRCCharacterTwoPrimeIdentityRespectsTraceConnected
3813    (χ : RatioOrbit → RatioOrbit) : Prop :=
3814  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3815    PRCPrimeAxisTraceConnected twoOrbit twoOrbit_primeOrbit p hp →
3816      RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection →
3817        RatioOrbit.crossEq (χ (primeDirection p hp))
3818          (primeDirection p hp)
3819
3820/-- Local prime orientation says each prime axis is individually sent to itself
3821or to its reciprocal. This is the algebraic content of equality of J-costs on a
3822single prime direction. -/
3823def PRCCharacterPrimeLocalOrientation
3824    (χ : RatioOrbit → RatioOrbit) : Prop :=
3825  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3826    RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) ∨
3827      RatioOrbit.crossEq (χ (primeDirection p hp))
3828        (RatioOrbit.recip (primeDirection p hp))
3829
3830/-- No mixed prime orientation says a character cannot choose identity on one
3831prime axis and reciprocal on another. This is the trace-coherence condition that
3832rules out independent prime-axis inversions. -/
3833def PRCCharacterNoMixedPrimeOrientation
3834    (χ : RatioOrbit → RatioOrbit) : Prop :=
3835  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3836    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3837      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
3838        RatioOrbit.crossEq (χ (primeDirection r hr))
3839          (RatioOrbit.recip (primeDirection r hr)) →
3840          False
3841
3842/-- Existential form of prime-axis no-mixing: no identity-oriented prime witness
3843can coexist with a reciprocal-oriented prime witness. -/
3844def PRCCharacterNoMixedPrimeWitnesses
3845    (χ : RatioOrbit → RatioOrbit) : Prop :=
3846  ¬ ((∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3847        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) ∧
3848      (∃ r : DistinctionNat, ∃ hr : DistinctionNat.primeOrbit r,
3849        RatioOrbit.crossEq (χ (primeDirection r hr))
3850          (RatioOrbit.recip (primeDirection r hr))))
3851
3852/-- Positive mixed-prime witness form: one native prime axis is identity-oriented
3853while one (possibly different) native prime axis is reciprocal-oriented. -/
3854def PRCCharacterMixedPrimeWitnesses
3855    (χ : RatioOrbit → RatioOrbit) : Prop :=
3856  (∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3857    RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) ∧
3858  (∃ r : DistinctionNat, ∃ hr : DistinctionNat.primeOrbit r,
3859    RatioOrbit.crossEq (χ (primeDirection r hr))
3860      (RatioOrbit.recip (primeDirection r hr)))
3861
3862/-- Pair-packaged mixed-prime witness form: the two branch witnesses are named
3863in one existential package. This removes the last propositional wrapper around
3864the current mixed-prime obstruction. -/
3865def PRCCharacterMixedPrimePairWitnesses
3866    (χ : RatioOrbit → RatioOrbit) : Prop :=
3867  ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3868    ∃ r : DistinctionNat, ∃ hr : DistinctionNat.primeOrbit r,
3869      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) ∧
3870        RatioOrbit.crossEq (χ (primeDirection r hr))
3871          (RatioOrbit.recip (primeDirection r hr))
3872
3873/-- Same-axis mixed-prime pair witness: the identity-oriented and
3874reciprocal-oriented prime witnesses are carried by the same native prime
3875orbit. This is the self-reciprocal branch-conflict case. -/
3876def PRCCharacterSamePrimeMixedPairWitnesses
3877    (χ : RatioOrbit → RatioOrbit) : Prop :=
3878  ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3879    ∃ r : DistinctionNat, ∃ hr : DistinctionNat.primeOrbit r,
3880      p = r ∧
3881        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) ∧
3882          RatioOrbit.crossEq (χ (primeDirection r hr))
3883            (RatioOrbit.recip (primeDirection r hr))
3884
3885/-- Distinct-axis mixed-prime pair witness: the identity-oriented and
3886reciprocal-oriented prime witnesses live on different native prime orbits. -/
3887def PRCCharacterDistinctPrimeMixedPairWitnesses
3888    (χ : RatioOrbit → RatioOrbit) : Prop :=
3889  ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3890    ∃ r : DistinctionNat, ∃ hr : DistinctionNat.primeOrbit r,
3891      p ≠ r ∧
3892        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) ∧
3893          RatioOrbit.crossEq (χ (primeDirection r hr))
3894            (RatioOrbit.recip (primeDirection r hr))
3895
3896/-- One-sided witness exclusion for prime axes: once an identity-oriented native
3897prime witness exists, no reciprocal-oriented native prime witness can coexist
3898with it. This is the atomic witness form of prime no-mixing. -/
3899def PRCCharacterPrimeIdentityWitnessExcludesReciprocal
3900    (χ : RatioOrbit → RatioOrbit) : Prop :=
3901  (∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3902      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) →
3903    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3904      RatioOrbit.crossEq (χ (primeDirection r hr))
3905        (RatioOrbit.recip (primeDirection r hr)) →
3906        False
3907
3908/-- Positive reciprocal-witness globalization for prime axes: if any native
3909prime witness is reciprocal-oriented, every native prime axis is
3910reciprocal-oriented. This is the reciprocal branch form of prime no-mixing. -/
3911def PRCCharacterPrimeReciprocalWitnessGlobalizes
3912    (χ : RatioOrbit → RatioOrbit) : Prop :=
3913  (∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
3914      RatioOrbit.crossEq (χ (primeDirection p hp))
3915        (RatioOrbit.recip (primeDirection p hp))) →
3916    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3917      RatioOrbit.crossEq (χ (primeDirection r hr))
3918        (RatioOrbit.recip (primeDirection r hr))
3919
3920/-- Prime identity orientation is trace-coherent when identity orientation at
3921one calibrated prime forces identity orientation at every calibrated prime. This
3922is the missing cross-prime relation; the current ratio-character laws are local
3923to multiplication and reciprocal and do not by themselves connect the orientation
3924choices of different prime axes. -/
3925def PRCCharacterPrimeIdentityTraceCoherent
3926    (χ : RatioOrbit → RatioOrbit) : Prop :=
3927  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3928    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3929      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
3930        RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)
3931
3932/-- The trace-free content of the prime identity transport blocker: if any native
3933prime axis is identity-oriented, then every native prime axis is
3934identity-oriented. This is definitionally the same proposition as prime
3935identity trace coherence, but the name records that the remaining obstruction is
3936branch uniformity, not trace construction. -/
3937def PRCCharacterPrimeIdentityBranchUniform
3938    (χ : RatioOrbit → RatioOrbit) : Prop :=
3939  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3940    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3941      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
3942        RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)
3943
3944/-- A character respects prime-axis trace connection when identity orientation
3945transports along the finite δ-trace component relating two prime axes. -/
3946def PRCCharacterPrimeIdentityRespectsTraceConnected
3947    (χ : RatioOrbit → RatioOrbit) : Prop :=
3948  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3949    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3950      PRCPrimeAxisTraceConnected p hp r hr →
3951        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
3952          RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)
3953
3954/-- A more explicit form of the trace-transport rule: identity orientation
3955transports when two prime-axis traces are witnessed inside the same finite
3956δ-trace extension. -/
3957def PRCCharacterPrimeIdentityRespectsCommonTraceExtension
3958    (χ : RatioOrbit → RatioOrbit) : Prop :=
3959  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3960    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3961      ∀ T : Trace,
3962        Trace.Extends (orbitPositionTrace p) T →
3963          Trace.Extends (orbitPositionTrace r) T →
3964            RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
3965              RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)
3966
3967/-- Canonical-add-trace form: identity orientation transports through the
3968specific finite common extension `orbitPositionTrace (p + r)`. This removes the
3969arbitrary witness from common-trace transport; the only remaining content is that
3970the character respects the canonical finite δ-trace merger of two prime axes. -/
3971def PRCCharacterPrimeIdentityRespectsCanonicalAddTrace
3972    (χ : RatioOrbit → RatioOrbit) : Prop :=
3973  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3974    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3975      Trace.Extends (orbitPositionTrace p) (orbitPositionTrace (p + r)) →
3976        Trace.Extends (orbitPositionTrace r) (orbitPositionTrace (p + r)) →
3977          RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
3978            RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)
3979
3980/-- The exact trace-order law: identity orientation transports between prime axes
3981whose finite δ-orbit traces are comparable by extension. The structural
3982comparability of any two orbit traces is proved above, so this is the part that
3983must come from the ratio character respecting trace order. -/
3984def PRCCharacterPrimeIdentityRespectsComparableTrace
3985    (χ : RatioOrbit → RatioOrbit) : Prop :=
3986  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
3987    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
3988      (Trace.Extends (orbitPositionTrace p) (orbitPositionTrace r) ∨
3989        Trace.Extends (orbitPositionTrace r) (orbitPositionTrace p)) →
3990        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
3991          RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr)
3992
3993/-- Identity orientation for an arbitrary nonzero orbit direction, not only for
3994prime axes. This lets trace transport pass through composite orbit positions. -/
3995def PRCCharacterOrbitDirectionIdentity
3996    (χ : RatioOrbit → RatioOrbit)
3997    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero) : Prop :=
3998  RatioOrbit.crossEq (χ (orbitDirection p hp)) (orbitDirection p hp)
3999
4000/-- Reciprocal orientation for an arbitrary nonzero orbit direction. -/
4001def PRCCharacterOrbitDirectionReciprocal
4002    (χ : RatioOrbit → RatioOrbit)
4003    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero) : Prop :=
4004  RatioOrbit.crossEq
4005    (χ (orbitDirection p hp)) (RatioOrbit.recip (orbitDirection p hp))
4006
4007/-- Prime identity witness globalization says that once any calibrated prime axis
4008chooses the identity branch, identity propagates to every nonunit orbit
4009direction. The no-prime-identity case is handled separately by the prime-witness
4010reflection lemma. -/
4011def PRCCharacterPrimeIdentityWitnessGlobalizesNonunit
4012    (χ : RatioOrbit → RatioOrbit) : Prop :=
4013  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
4014    RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) →
4015      ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
4016        ¬ DistinctionNat.unit r →
4017          PRCCharacterOrbitDirectionIdentity χ r hr
4018
4019/-- The one-step trace-order law: identity orientation is invariant under one
4020successor step of the nonzero δ-orbit. This is smaller than prime-to-prime
4021transport, because it acts before primality is imposed. -/
4022def PRCCharacterOrbitIdentityRespectsSuccessorStep
4023    (χ : RatioOrbit → RatioOrbit) : Prop :=
4024  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
4025    PRCCharacterOrbitDirectionIdentity χ p hp ↔
4026      PRCCharacterOrbitDirectionIdentity χ
4027        (DistinctionNat.succ p) (orbit_succ_ne_zero p)
4028
4029/-- Forward one-step successor law for identity orientation on nonzero orbit
4030directions. -/
4031def PRCCharacterOrbitIdentityExtendsSuccessorStep
4032    (χ : RatioOrbit → RatioOrbit) : Prop :=
4033  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
4034    PRCCharacterOrbitDirectionIdentity χ p hp →
4035      PRCCharacterOrbitDirectionIdentity χ
4036        (DistinctionNat.succ p) (orbit_succ_ne_zero p)
4037
4038/-- Backward one-step successor law for identity orientation on nonzero orbit
4039directions. -/
4040def PRCCharacterOrbitIdentityContractsSuccessorStep
4041    (χ : RatioOrbit → RatioOrbit) : Prop :=
4042  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
4043    PRCCharacterOrbitDirectionIdentity χ
4044      (DistinctionNat.succ p) (orbit_succ_ne_zero p) →
4045        PRCCharacterOrbitDirectionIdentity χ p hp
4046
4047/-- The successor-step transport needed for trace coherence is exactly the
4048forward and backward one-step laws bundled together. -/
4049def PRCCharacterOrbitIdentitySuccessorTransport
4050    (χ : RatioOrbit → RatioOrbit) : Prop :=
4051  PRCCharacterOrbitIdentityExtendsSuccessorStep χ ∧
4052    PRCCharacterOrbitIdentityContractsSuccessorStep χ
4053
4054/-- Additive compatibility with the δ-successor operation on nonzero orbit
4055directions. This is the missing bridge between multiplicative ratio characters
4056and the trace/additive structure of the orbit. -/
4057def PRCCharacterOrbitSuccessorAdditiveCompatible
4058    (χ : RatioOrbit → RatioOrbit) : Prop :=
4059  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
4060    RatioOrbit.crossEq
4061      (χ (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p)))
4062      (RatioOrbit.add (χ (orbitDirection p hp)) RatioOrbit.one)
4063
4064theorem PRCCharacterOrbitIdentityExtendsSuccessorStep_of_additive_compat
4065    {χ : RatioOrbit → RatioOrbit}
4066    (hadd : PRCCharacterOrbitSuccessorAdditiveCompatible χ) :
4067    PRCCharacterOrbitIdentityExtendsSuccessorStep χ := by
4068  intro p hp hpId
4069  have hχsucc := hadd p hp
4070  rw [PRCCharacterOrbitDirectionIdentity] at hpId ⊢
4071  rw [RatioOrbit.crossEq_iff_toRat_eq] at hχsucc hpId ⊢
4072  rw [RatioOrbit.add_toRat, RatioOrbit.one_toRat] at hχsucc
4073  rw [hχsucc, hpId]
4074  rw [orbitDirection_toRat, orbitDirection_toRat, DistinctionNat.toNat_succ]
4075  norm_num
4076
4077theorem PRCCharacterOrbitIdentityContractsSuccessorStep_of_additive_compat
4078    {χ : RatioOrbit → RatioOrbit}
4079    (hadd : PRCCharacterOrbitSuccessorAdditiveCompatible χ) :
4080    PRCCharacterOrbitIdentityContractsSuccessorStep χ := by
4081  intro p hp hsuccId
4082  have hχsucc := hadd p hp
4083  rw [PRCCharacterOrbitDirectionIdentity] at hsuccId ⊢
4084  rw [RatioOrbit.crossEq_iff_toRat_eq] at hχsucc hsuccId ⊢
4085  rw [RatioOrbit.add_toRat, RatioOrbit.one_toRat] at hχsucc
4086  rw [hχsucc] at hsuccId
4087  rw [orbitDirection_toRat, DistinctionNat.toNat_succ] at hsuccId
4088  rw [orbitDirection_toRat]
4089  have hsuccCast :
4090      ((Nat.succ p.toNat : Nat) : ℚ) = (p.toNat : ℚ) + 1 := by
4091    norm_num
4092  rw [hsuccCast] at hsuccId
4093  linarith
4094
4095theorem PRCCharacterOrbitIdentitySuccessorTransport_of_additive_compat
4096    {χ : RatioOrbit → RatioOrbit}
4097    (hadd : PRCCharacterOrbitSuccessorAdditiveCompatible χ) :
4098    PRCCharacterOrbitIdentitySuccessorTransport χ :=
4099  ⟨PRCCharacterOrbitIdentityExtendsSuccessorStep_of_additive_compat hadd,
4100    PRCCharacterOrbitIdentityContractsSuccessorStep_of_additive_compat hadd⟩
4101
4102theorem orbit_succ_not_unit_of_nonzero_not_unit
4103    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero)
4104    (hunit : ¬ DistinctionNat.unit p) :
4105    ¬ DistinctionNat.unit (DistinctionNat.succ p) := by
4106  intro hsuccUnit
4107  have hpNat0 : p.toNat ≠ 0 := by
4108    intro hz
4109    apply hp
4110    apply DistinctionNat.toNat_inj
4111    rw [hz, DistinctionNat.toNat_zero]
4112  have hpNat1 : p.toNat ≠ 1 := by
4113    intro hone
4114    exact hunit ((DistinctionNat.unit_iff_toNat_eq_one p).mpr hone)
4115  have hsuccNat1 : (DistinctionNat.succ p).toNat = 1 :=
4116    (DistinctionNat.unit_iff_toNat_eq_one (DistinctionNat.succ p)).mp hsuccUnit
4117  rw [DistinctionNat.toNat_succ] at hsuccNat1
4118  omega
4119
4120/-- Every nonunit orbit direction is locally oriented: identity or reciprocal.
4121This is the nonprime analogue of the already proved local-prime orientation
4122alternative. -/
4123def PRCCharacterNonunitOrbitLocalOrientation
4124    (χ : RatioOrbit → RatioOrbit) : Prop :=
4125  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
4126    ¬ DistinctionNat.unit p →
4127      PRCCharacterOrbitDirectionIdentity χ p hp ∨
4128        PRCCharacterOrbitDirectionReciprocal χ p hp
4129
4130/-- Product-factor propagation for local orientation. If two nonunit factors are
4131locally identity-or-reciprocal oriented, their product is locally oriented too.
4132This is the exact multiplicative step needed to move from prime-axis
4133orientation to composite orbit directions. -/
4134def PRCCharacterOrbitProductLocalOrientationPropagates
4135    (χ : RatioOrbit → RatioOrbit) : Prop :=
4136  ∀ a b p : DistinctionNat,
4137    ∀ ha : a ≠ DistinctionNat.zero, ∀ hb : b ≠ DistinctionNat.zero,
4138      ¬ DistinctionNat.unit a →
4139        ¬ DistinctionNat.unit b →
4140          ∀ hp : p ≠ DistinctionNat.zero,
4141            ¬ DistinctionNat.unit p →
4142              a * b = p →
4143                (PRCCharacterOrbitDirectionIdentity χ a ha ∨
4144                  PRCCharacterOrbitDirectionReciprocal χ a ha) →
4145                (PRCCharacterOrbitDirectionIdentity χ b hb ∨
4146                  PRCCharacterOrbitDirectionReciprocal χ b hb) →
4147                  PRCCharacterOrbitDirectionIdentity χ p hp ∨
4148                    PRCCharacterOrbitDirectionReciprocal χ p hp
4149
4150theorem ratioOrbit_mul_congr {a₁ a₂ b₁ b₂ : RatioOrbit}
4151    (ha : RatioOrbit.crossEq a₁ a₂) (hb : RatioOrbit.crossEq b₁ b₂) :
4152    RatioOrbit.crossEq (RatioOrbit.mul a₁ b₁) (RatioOrbit.mul a₂ b₂) := by
4153  rw [RatioOrbit.crossEq_iff_toRat_eq] at ha hb ⊢
4154  rw [RatioOrbit.mul_toRat, RatioOrbit.mul_toRat, ha, hb]
4155
4156theorem ratioOrbit_add_congr {a₁ a₂ b₁ b₂ : RatioOrbit}
4157    (ha : RatioOrbit.crossEq a₁ a₂) (hb : RatioOrbit.crossEq b₁ b₂) :
4158    RatioOrbit.crossEq (RatioOrbit.add a₁ b₁) (RatioOrbit.add a₂ b₂) := by
4159  rw [RatioOrbit.crossEq_iff_toRat_eq] at ha hb ⊢
4160  rw [RatioOrbit.add_toRat, RatioOrbit.add_toRat, ha, hb]
4161
4162theorem ratioOrbit_recip_congr {a b : RatioOrbit}
4163    (h : RatioOrbit.crossEq a b) :
4164    RatioOrbit.crossEq (RatioOrbit.recip a) (RatioOrbit.recip b) := by
4165  rw [RatioOrbit.crossEq_iff_toRat_eq] at h ⊢
4166  rw [RatioOrbit.recip_toRat, RatioOrbit.recip_toRat, h]
4167
4168theorem ratioOrbit_recip_left_crossEq_iff (a b : RatioOrbit) :
4169    RatioOrbit.crossEq (RatioOrbit.recip a) b ↔
4170      RatioOrbit.crossEq a (RatioOrbit.recip b) := by
4171  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.crossEq_iff_toRat_eq,
4172    RatioOrbit.recip_toRat, RatioOrbit.recip_toRat]
4173  constructor
4174  · intro h
4175    rw [← h]
4176    exact (inv_inv a.toRat).symm
4177  · intro h
4178    rw [h]
4179    exact inv_inv b.toRat
4180
4181theorem ratioOrbit_recip_recip_crossEq_self (a : RatioOrbit) :
4182    RatioOrbit.crossEq (RatioOrbit.recip (RatioOrbit.recip a)) a := by
4183  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
4184    RatioOrbit.recip_toRat]
4185  exact inv_inv a.toRat
4186
4187theorem ratioOrbit_mul_recip_recip_crossEq_recip_mul
4188    (a b : RatioOrbit) :
4189    RatioOrbit.crossEq
4190      (RatioOrbit.mul (RatioOrbit.recip a) (RatioOrbit.recip b))
4191      (RatioOrbit.recip (RatioOrbit.mul a b)) := by
4192  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
4193    RatioOrbit.recip_toRat, RatioOrbit.recip_toRat, RatioOrbit.recip_toRat,
4194    RatioOrbit.mul_toRat]
4195  by_cases ha : a.toRat = 0
4196  · simp [ha]
4197  · by_cases hb : b.toRat = 0
4198    · simp [hb]
4199    · field_simp [ha, hb]
4200
4201def PRCCharacterReciprocalTwist (χ : RatioOrbit → RatioOrbit)
4202    (q : RatioOrbit) : RatioOrbit :=
4203  RatioOrbit.recip (χ q)
4204
4205theorem PRCRatioCharacter.reciprocalTwist
4206    {χ : RatioOrbit → RatioOrbit}
4207    (hχ : PRCRatioCharacter χ) :
4208    PRCRatioCharacter (PRCCharacterReciprocalTwist χ) where
4209  unit := by
4210    have hone := ratioOrbit_recip_congr hχ.unit
4211    have hrecOne : RatioOrbit.crossEq (RatioOrbit.recip RatioOrbit.one)
4212        RatioOrbit.one := by
4213      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
4214        RatioOrbit.one_toRat]
4215      norm_num
4216    exact RatioOrbit.crossEq_trans hone hrecOne
4217  multiplicative := by
4218    intro x y
4219    exact RatioOrbit.crossEq_trans
4220      (ratioOrbit_recip_congr (hχ.multiplicative x y))
4221      (RatioOrbit.crossEq_symm
4222        (ratioOrbit_mul_recip_recip_crossEq_recip_mul (χ x) (χ y)))
4223  reciprocal := by
4224    intro x
4225    exact ratioOrbit_recip_congr (hχ.reciprocal x)
4226  normalized_invariant := by
4227    intro q
4228    exact ratioOrbit_recip_congr (hχ.normalized_invariant q)
4229  nonzero_preserving := by
4230    intro q hq
4231    rw [PRCCharacterReciprocalTwist, RatioOrbit.recip_toRat]
4232    exact inv_ne_zero (hχ.nonzero_preserving hq)
4233
4234theorem PRCCharacterPrimeDirectionCalibrated.reciprocalTwist
4235    {χ : RatioOrbit → RatioOrbit}
4236    (hprime : PRCCharacterPrimeDirectionCalibrated χ) :
4237    PRCCharacterPrimeDirectionCalibrated (PRCCharacterReciprocalTwist χ) := by
4238  intro p hp
4239  exact RatioOrbit.crossEq_trans
4240    (RatioOrbit.crossEq_symm (reciprocal_symmetric (χ (primeDirection p hp))))
4241    (hprime p hp)
4242
4243theorem PRCCharacterPrimePairProductCostConsistent.reciprocalTwist
4244    {χ : RatioOrbit → RatioOrbit}
4245    (hpair : PRCCharacterPrimePairProductCostConsistent χ) :
4246    PRCCharacterPrimePairProductCostConsistent
4247      (PRCCharacterReciprocalTwist χ) := by
4248  intro p hp r hr
4249  exact RatioOrbit.crossEq_trans
4250    (RatioOrbit.crossEq_symm
4251      (reciprocal_symmetric
4252        (χ (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))))
4253    (hpair p hp r hr)
4254
4255theorem PRCAdmissibleRatioCharacter.reciprocalTwist
4256    {χ : RatioOrbit → RatioOrbit}
4257    (hadm : PRCAdmissibleRatioCharacter χ) :
4258    PRCAdmissibleRatioCharacter (PRCCharacterReciprocalTwist χ) where
4259  ratio_character := hadm.ratio_character.reciprocalTwist
4260  prime_calibrated := hadm.prime_calibrated.reciprocalTwist
4261  prime_pair_product_cost :=
4262    hadm.prime_pair_product_cost.reciprocalTwist
4263
4264theorem PRCCharacterReciprocalTwist_prime_identity_iff_reciprocal
4265    (χ : RatioOrbit → RatioOrbit)
4266    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
4267    RatioOrbit.crossEq
4268        (PRCCharacterReciprocalTwist χ (primeDirection p hp))
4269        (primeDirection p hp) ↔
4270      RatioOrbit.crossEq (χ (primeDirection p hp))
4271        (RatioOrbit.recip (primeDirection p hp)) := by
4272  exact ratioOrbit_recip_left_crossEq_iff
4273    (χ (primeDirection p hp)) (primeDirection p hp)
4274
4275theorem PRCCharacterReciprocalTwist_two_identity_iff_reciprocal
4276    (χ : RatioOrbit → RatioOrbit) :
4277    RatioOrbit.crossEq
4278        (PRCCharacterReciprocalTwist χ twoPrimeDirection)
4279        twoPrimeDirection ↔
4280      RatioOrbit.crossEq (χ twoPrimeDirection)
4281        (RatioOrbit.recip twoPrimeDirection) := by
4282  exact ratioOrbit_recip_left_crossEq_iff (χ twoPrimeDirection) twoPrimeDirection
4283
4284theorem PRCCharacterReciprocalTwist_prime_reciprocal_iff_identity
4285    (χ : RatioOrbit → RatioOrbit)
4286    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
4287    RatioOrbit.crossEq
4288        (PRCCharacterReciprocalTwist χ (primeDirection p hp))
4289        (RatioOrbit.recip (primeDirection p hp)) ↔
4290      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) := by
4291  constructor
4292  · intro h
4293    have htoDoubleRecip :
4294        RatioOrbit.crossEq (χ (primeDirection p hp))
4295          (RatioOrbit.recip (RatioOrbit.recip (primeDirection p hp))) :=
4296      (ratioOrbit_recip_left_crossEq_iff
4297        (χ (primeDirection p hp))
4298        (RatioOrbit.recip (primeDirection p hp))).mp
4299        (by simpa [PRCCharacterReciprocalTwist] using h)
4300    exact RatioOrbit.crossEq_trans htoDoubleRecip
4301      (ratioOrbit_recip_recip_crossEq_self (primeDirection p hp))
4302  · intro h
4303    simpa [PRCCharacterReciprocalTwist] using ratioOrbit_recip_congr h
4304
4305theorem PRCCharacterReciprocalTwist_two_reciprocal_iff_identity
4306    (χ : RatioOrbit → RatioOrbit) :
4307    RatioOrbit.crossEq
4308        (PRCCharacterReciprocalTwist χ twoPrimeDirection)
4309        (RatioOrbit.recip twoPrimeDirection) ↔
4310      RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection := by
4311  constructor
4312  · intro h
4313    have htoDoubleRecip :
4314        RatioOrbit.crossEq (χ twoPrimeDirection)
4315          (RatioOrbit.recip (RatioOrbit.recip twoPrimeDirection)) :=
4316      (ratioOrbit_recip_left_crossEq_iff
4317        (χ twoPrimeDirection)
4318        (RatioOrbit.recip twoPrimeDirection)).mp
4319        (by simpa [PRCCharacterReciprocalTwist] using h)
4320    exact RatioOrbit.crossEq_trans htoDoubleRecip
4321      (ratioOrbit_recip_recip_crossEq_self twoPrimeDirection)
4322  · intro h
4323    simpa [PRCCharacterReciprocalTwist] using ratioOrbit_recip_congr h
4324
4325theorem orbitDirection_mul_crossEq
4326    (a b p : DistinctionNat)
4327    (ha : a ≠ DistinctionNat.zero) (hb : b ≠ DistinctionNat.zero)
4328    (hp : p ≠ DistinctionNat.zero)
4329    (hmul : a * b = p) :
4330    RatioOrbit.crossEq (orbitDirection p hp)
4331      (RatioOrbit.mul (orbitDirection a ha) (orbitDirection b hb)) := by
4332  rw [RatioOrbit.crossEq_iff_toRat_eq, orbitDirection_toRat,
4333    RatioOrbit.mul_toRat, orbitDirection_toRat, orbitDirection_toRat]
4334  have hnat := congrArg DistinctionNat.toNat hmul
4335  rw [DistinctionNat.toNat_mul] at hnat
4336  exact_mod_cast hnat.symm
4337
4338/-- A character is compatible with the native display of an orbit product when
4339the character value on the product orbit agrees with the character value on the
4340ratio product of the factor orbits. This is not automatic from
4341cross-equivalence; it is the quotient-respect step missing from the bare
4342character interface. -/
4343def PRCCharacterOrbitProductDisplayCompatible
4344    (χ : RatioOrbit → RatioOrbit) : Prop :=
4345  ∀ a b p : DistinctionNat,
4346    ∀ ha : a ≠ DistinctionNat.zero, ∀ hb : b ≠ DistinctionNat.zero,
4347      ∀ hp : p ≠ DistinctionNat.zero,
4348        a * b = p →
4349          RatioOrbit.crossEq (χ (orbitDirection p hp))
4350            (χ (RatioOrbit.mul (orbitDirection a ha) (orbitDirection b hb)))
4351
4352/-- Quotient-respect for a ratio character: equivalent ratio-orbit displays
4353must receive equivalent character values. This is the missing map-respects-setoid
4354condition for using a raw `RatioOrbit → RatioOrbit` function as a quotient-native
4355PRC character. -/
4356def PRCCharacterRespectsCrossEq (χ : RatioOrbit → RatioOrbit) : Prop :=
4357  ∀ q r : RatioOrbit,
4358    RatioOrbit.crossEq q r → RatioOrbit.crossEq (χ q) (χ r)
4359
4360/-- Quotient-respect for doubled traces: equivalent ratio-orbit displays must
4361carry equivalent trace values. -/
4362def PRCDoubledTraceRespectsCrossEq (T : RatioOrbit → RatioOrbit) : Prop :=
4363  ∀ q r : RatioOrbit,
4364    RatioOrbit.crossEq q r → RatioOrbit.crossEq (T q) (T r)
4365
4366/-- Canonical-normalization target for ratio orbits. If two raw ratio displays
4367are cross-equivalent, native GCD normalization should return the same raw
4368representative. This is the exact quotient-normalization uniqueness statement
4369needed to turn `normalized_invariant` into general quotient respect. -/
4370def PRCNormalizeRatioCanonicalTarget : Prop :=
4371  ∀ q r : RatioOrbit,
4372    RatioOrbit.crossEq q r →
4373      DistinctionNat.normalizeRatio q = DistinctionNat.normalizeRatio r
4374
4375/-- A signed-orbit display is sign-canonical when it is literally the
4376nonnegative orbit display of its absolute value, or literally the negated
4377nonnegative display of its absolute value. This records the raw representative
4378condition supplied by `signedQuotient`, not just balanced integer equality. -/
4379def PRCSignedOrbitSignCanonical (z : SignedOrbit) : Prop :=
4380  (0 ≤ z.toInt ∧ z = SignedOrbit.ofOrbit z.abs) ∨
4381    (z.toInt < 0 ∧ z = SignedOrbit.negate (SignedOrbit.ofOrbit z.abs))
4382
4383/-- A raw ratio display is reduced and sign-canonical when its numerator
4384absolute value is coprime to the positive denominator and the signed numerator
4385itself is in the canonical raw signed-orbit form. -/
4386def PRCRatioReducedSignCanonical (q : RatioOrbit) : Prop :=
4387  DistinctionNat.coprime q.num.abs q.den ∧
4388    PRCSignedOrbitSignCanonical q.num
4389
4390theorem signedOrbit_ofOrbit_abs_self (n : DistinctionNat) :
4391    (SignedOrbit.ofOrbit n).abs = n := by
4392  apply DistinctionNat.toNat_inj
4393  rw [SignedOrbit.abs_toNat, SignedOrbit.ofOrbit_toInt]
4394  simp
4395
4396theorem signedOrbit_neg_ofOrbit_abs_self (n : DistinctionNat) :
4397    (SignedOrbit.negate (SignedOrbit.ofOrbit n)).abs = n := by
4398  apply DistinctionNat.toNat_inj
4399  rw [SignedOrbit.abs_toNat, SignedOrbit.negate_toInt,
4400    SignedOrbit.ofOrbit_toInt]
4401  simp
4402
4403theorem signedQuotient_signCanonical_of_divides
4404    (z : SignedOrbit) (d : DistinctionNat) (hd : d ≠ DistinctionNat.zero)
4405    (hdiv : DistinctionNat.divides d z.abs) :
4406    PRCSignedOrbitSignCanonical (DistinctionNat.signedQuotient z d hd) := by
4407  unfold DistinctionNat.signedQuotient
4408  by_cases hflag : z.nonnegFlag = true
4409  · left
4410    constructor
4411    · simp [hflag, SignedOrbit.ofOrbit_toInt]
4412    · rw [if_pos hflag]
4413      rw [signedOrbit_ofOrbit_abs_self]
4414  · have hflagFalse : z.nonnegFlag = false := by
4415      cases h : z.nonnegFlag with
4416      | false => rfl
4417      | true =>
4418          exfalso
4419          exact hflag h
4420    right
4421    have hzneg : z.toInt < 0 :=
4422      (SignedOrbit.nonnegFlag_eq_false_iff z).mp hflagFalse
4423    have hzabs_ne : z.abs ≠ DistinctionNat.zero := by
4424      apply SignedOrbit.abs_ne_zero_of_toInt_ne_zero
4425      omega
4426    have hq_ne :
4427        DistinctionNat.quotient z.abs d hd ≠ DistinctionNat.zero :=
4428      DistinctionNat.quotient_ne_zero_of_divides
4429        (n := z.abs) (d := d) hd hdiv hzabs_ne
4430    have hq_pos : 0 < (DistinctionNat.quotient z.abs d hd).toNat := by
4431      have hq_nat_ne : (DistinctionNat.quotient z.abs d hd).toNat ≠ 0 := by
4432        intro hzero
4433        apply hq_ne
4434        apply DistinctionNat.toNat_inj
4435        rw [hzero, DistinctionNat.toNat_zero]
4436      omega
4437    constructor
4438    · simp [hflagFalse, SignedOrbit.negate_toInt,
4439        SignedOrbit.ofOrbit_toInt]
4440      exact hq_pos
4441    · rw [if_neg hflag]
4442      rw [signedOrbit_neg_ofOrbit_abs_self]
4443
4444theorem normalizeRatio_reduced_signCanonical (q : RatioOrbit) :
4445    PRCRatioReducedSignCanonical (DistinctionNat.normalizeRatio q) := by
4446  constructor
4447  · exact DistinctionNat.normalizeRatio_coprime q
4448  · unfold DistinctionNat.normalizeRatio
4449    exact signedQuotient_signCanonical_of_divides
4450      q.num (DistinctionNat.gcd q.num.abs q.den)
4451      (DistinctionNat.gcd_ne_zero_of_right_ne_zero
4452        q.num.abs q.den q.den_ne_zero)
4453      (DistinctionNat.gcd_divides_left q.num.abs q.den)
4454
4455theorem PRCSignedOrbitSignCanonical.eq_of_toInt_eq
4456    {z w : SignedOrbit}
4457    (hz : PRCSignedOrbitSignCanonical z)
4458    (hw : PRCSignedOrbitSignCanonical w)
4459    (hzw : z.toInt = w.toInt) :
4460    z = w := by
4461  rcases hz with ⟨hzNonneg, hzCanon⟩ | ⟨hzNeg, hzCanon⟩
4462  · rcases hw with ⟨_hwNonneg, hwCanon⟩ | ⟨hwNeg, _hwCanon⟩
4463    · calc
4464        z = SignedOrbit.ofOrbit z.abs := hzCanon
4465        _ = SignedOrbit.ofOrbit w.abs := by
4466          have habs : z.abs = w.abs := by
4467            apply DistinctionNat.toNat_inj
4468            rw [SignedOrbit.abs_toNat, SignedOrbit.abs_toNat, hzw]
4469          exact congrArg SignedOrbit.ofOrbit habs
4470        _ = w := hwCanon.symm
4471    · rw [hzw] at hzNonneg
4472      omega
4473  · rcases hw with ⟨hwNonneg, _hwCanon⟩ | ⟨_hwNeg, hwCanon⟩
4474    · rw [hzw] at hzNeg
4475      omega
4476    · calc
4477        z = SignedOrbit.negate (SignedOrbit.ofOrbit z.abs) := hzCanon
4478        _ = SignedOrbit.negate (SignedOrbit.ofOrbit w.abs) := by
4479          have habs : z.abs = w.abs := by
4480            apply DistinctionNat.toNat_inj
4481            rw [SignedOrbit.abs_toNat, SignedOrbit.abs_toNat, hzw]
4482          exact congrArg (fun n => SignedOrbit.negate (SignedOrbit.ofOrbit n)) habs
4483        _ = w := hwCanon.symm
4484
4485theorem PRCReducedSignCanonical_den_divides_of_crossEq
4486    {q r : RatioOrbit}
4487    (hq : PRCRatioReducedSignCanonical q)
4488    (_hr : PRCRatioReducedSignCanonical r)
4489    (hqr : RatioOrbit.crossEq q r) :
4490    DistinctionNat.divides q.den r.den := by
4491  have hcrossZ : q.num.toInt * (r.den.toNat : ℤ) =
4492      r.num.toInt * (q.den.toNat : ℤ) := by
4493    unfold RatioOrbit.crossEq at hqr
4494    have hdisplay :=
4495      (SignedOrbit.balanced_iff_toInt_eq
4496        (q.num.scaleByNat r.den) (r.num.scaleByNat q.den)).mp hqr
4497    rw [SignedOrbit.scaleByNat_toInt, SignedOrbit.scaleByNat_toInt] at hdisplay
4498    exact hdisplay
4499  have hcrossNat :
4500      q.num.abs.toNat * r.den.toNat =
4501        r.num.abs.toNat * q.den.toNat := by
4502    have h := congrArg Int.natAbs hcrossZ
4503    rw [Int.natAbs_mul, Int.natAbs_mul,
4504      ← SignedOrbit.abs_toNat q.num, ← SignedOrbit.abs_toNat r.num,
4505      Int.natAbs_natCast, Int.natAbs_natCast] at h
4506    exact h
4507  have hdivMul :
4508      DistinctionNat.divides q.den (q.num.abs * r.den) := by
4509    rw [DistinctionNat.divides_iff_toNat_dvd, DistinctionNat.toNat_mul]
4510    rw [hcrossNat]
4511    exact Nat.dvd_mul_left q.den.toNat r.num.abs.toNat
4512  exact DistinctionNat.coprime_divides_of_divides_mul_left hq.1 hdivMul
4513
4514theorem PRCReducedSignCanonical_den_dvd_of_crossEq
4515    {q r : RatioOrbit}
4516    (hq : PRCRatioReducedSignCanonical q)
4517    (hr : PRCRatioReducedSignCanonical r)
4518    (hqr : RatioOrbit.crossEq q r) :
4519    q.den.toNat ∣ r.den.toNat := by
4520  exact (DistinctionNat.divides_iff_toNat_dvd q.den r.den).mp
4521    (PRCReducedSignCanonical_den_divides_of_crossEq hq hr hqr)
4522
4523theorem PRCReducedSignCanonical_den_eq_of_crossEq
4524    {q r : RatioOrbit}
4525    (hq : PRCRatioReducedSignCanonical q)
4526    (hr : PRCRatioReducedSignCanonical r)
4527    (hqr : RatioOrbit.crossEq q r) :
4528    q.den = r.den := by
4529  exact DistinctionNat.divides_antisymm
4530    (PRCReducedSignCanonical_den_divides_of_crossEq hq hr hqr)
4531    (PRCReducedSignCanonical_den_divides_of_crossEq hr hq
4532      (RatioOrbit.crossEq_symm hqr))
4533
4534theorem PRCReducedSignCanonical_num_eq_of_crossEq
4535    {q r : RatioOrbit}
4536    (hq : PRCRatioReducedSignCanonical q)
4537    (hr : PRCRatioReducedSignCanonical r)
4538    (hqr : RatioOrbit.crossEq q r) :
4539    q.num = r.num := by
4540  have hden : q.den = r.den :=
4541    PRCReducedSignCanonical_den_eq_of_crossEq hq hr hqr
4542  have hcrossZ : q.num.toInt * (r.den.toNat : ℤ) =
4543      r.num.toInt * (q.den.toNat : ℤ) := by
4544    unfold RatioOrbit.crossEq at hqr
4545    have hdisplay :=
4546      (SignedOrbit.balanced_iff_toInt_eq
4547        (q.num.scaleByNat r.den) (r.num.scaleByNat q.den)).mp hqr
4548    rw [SignedOrbit.scaleByNat_toInt, SignedOrbit.scaleByNat_toInt] at hdisplay
4549    exact hdisplay
4550  have hdenInt : (q.den.toNat : ℤ) ≠ 0 := by
4551    exact_mod_cast q.den_toNat_ne_zero
4552  have hnum : q.num.toInt = r.num.toInt := by
4553    rw [← hden] at hcrossZ
4554    exact mul_right_cancel₀ hdenInt hcrossZ
4555  exact PRCSignedOrbitSignCanonical.eq_of_toInt_eq hq.2 hr.2 hnum
4556
4557/-- Reduced sign-canonical uniqueness is the exact remaining raw-display
4558number-theory blocker for canonical normalization. It says two reduced,
4559sign-canonical ratio displays with the same cross-multiplication class are
4560definitionally the same raw ratio orbit. -/
4561def PRCReducedSignCanonicalRatioUniqueTarget : Prop :=
4562  ∀ q r : RatioOrbit,
4563    PRCRatioReducedSignCanonical q →
4564      PRCRatioReducedSignCanonical r →
4565        RatioOrbit.crossEq q r →
4566          q = r
4567
4568theorem PRCReducedSignCanonicalRatioUniqueTarget_proved :
4569    PRCReducedSignCanonicalRatioUniqueTarget := by
4570  intro q r hq hr hqr
4571  cases q with
4572  | mk qnum qden qden_ne_zero =>
4573    cases r with
4574    | mk rnum rden rden_ne_zero =>
4575      have hnum :
4576          qnum = rnum :=
4577        PRCReducedSignCanonical_num_eq_of_crossEq
4578          (q := ⟨qnum, qden, qden_ne_zero⟩)
4579          (r := ⟨rnum, rden, rden_ne_zero⟩) hq hr hqr
4580      have hden :
4581          qden = rden :=
4582        PRCReducedSignCanonical_den_eq_of_crossEq
4583          (q := ⟨qnum, qden, qden_ne_zero⟩)
4584          (r := ⟨rnum, rden, rden_ne_zero⟩) hq hr hqr
4585      subst hnum
4586      subst hden
4587      rfl
4588
4589theorem PRCNormalizeRatioCanonicalTarget_of_reduced_signCanonical_unique
4590    (hunique : PRCReducedSignCanonicalRatioUniqueTarget) :
4591    PRCNormalizeRatioCanonicalTarget := by
4592  intro q r hqr
4593  apply hunique
4594  · exact normalizeRatio_reduced_signCanonical q
4595  · exact normalizeRatio_reduced_signCanonical r
4596  · exact RatioOrbit.crossEq_trans
4597      (RatioOrbit.crossEq_symm (DistinctionNat.normalizeRatio_crossEq q))
4598      (RatioOrbit.crossEq_trans hqr (DistinctionNat.normalizeRatio_crossEq r))
4599
4600theorem PRCNormalizeRatioCanonicalTarget_proved :
4601    PRCNormalizeRatioCanonicalTarget :=
4602  PRCNormalizeRatioCanonicalTarget_of_reduced_signCanonical_unique
4603    PRCReducedSignCanonicalRatioUniqueTarget_proved
4604
4605theorem PRCCharacterRespectsCrossEq_of_normalizeRatio_canonical
4606    {χ : RatioOrbit → RatioOrbit}
4607    (hχ : PRCRatioCharacter χ)
4608    (hcanon : PRCNormalizeRatioCanonicalTarget) :
4609    PRCCharacterRespectsCrossEq χ := by
4610  intro q r hqr
4611  exact RatioOrbit.crossEq_trans
4612    (hχ.normalized_invariant q)
4613    (RatioOrbit.crossEq_trans
4614      (by
4615        rw [hcanon q r hqr]
4616        exact RatioOrbit.crossEq_refl (χ (DistinctionNat.normalizeRatio r)))
4617      (RatioOrbit.crossEq_symm (hχ.normalized_invariant r)))
4618
4619theorem PRCDoubledTraceRespectsCrossEq_of_normalizeRatio_canonical
4620    {T : RatioOrbit → RatioOrbit}
4621    (hT : PRCDoubledTraceHypotheses T)
4622    (hcanon : PRCNormalizeRatioCanonicalTarget) :
4623    PRCDoubledTraceRespectsCrossEq T := by
4624  intro q r hqr
4625  exact RatioOrbit.crossEq_trans
4626    (hT.normalized_invariant q)
4627    (RatioOrbit.crossEq_trans
4628      (by
4629        rw [hcanon q r hqr]
4630        exact RatioOrbit.crossEq_refl (T (DistinctionNat.normalizeRatio r)))
4631      (RatioOrbit.crossEq_symm (hT.normalized_invariant r)))
4632
4633theorem PRCDoubledTraceRespectsCrossEq_proved
4634    {T : RatioOrbit → RatioOrbit}
4635    (hT : PRCDoubledTraceHypotheses T) :
4636    PRCDoubledTraceRespectsCrossEq T :=
4637  PRCDoubledTraceRespectsCrossEq_of_normalizeRatio_canonical hT
4638    PRCNormalizeRatioCanonicalTarget_proved
4639
4640theorem traceRootCandidate_one_of_trace_respect
4641    {T : RatioOrbit → RatioOrbit}
4642    (hT : PRCDoubledTraceHypotheses T)
4643    (hrespect : PRCDoubledTraceRespectsCrossEq T) :
4644    RatioOrbit.crossEq (traceRootCandidate T RatioOrbit.one) RatioOrbit.one := by
4645  have htwoOne :
4646      RatioOrbit.crossEq (RatioOrbit.mul two RatioOrbit.one) two := by
4647    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat, two_toRat,
4648      RatioOrbit.one_toRat]
4649    norm_num
4650  have htwoMulVal :
4651      (T (RatioOrbit.mul two RatioOrbit.one)).toRat = (T two).toRat := by
4652    exact (RatioOrbit.crossEq_iff_toRat_eq
4653      (T (RatioOrbit.mul two RatioOrbit.one)) (T two)).mp
4654        (hrespect (RatioOrbit.mul two RatioOrbit.one) two htwoOne)
4655  have htwoVal : (T two).toRat = (5 / 2 : ℚ) := by
4656    have h := hT.two_trace
4657    rw [RatioOrbit.crossEq_iff_toRat_eq] at h
4658    rw [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.mul_toRat,
4659      RatioOrbit.add_toRat, two_toRat, RatioOrbit.one_toRat,
4660      onRatioOrbit_toRat, two_toRat] at h
4661    norm_num at h
4662    exact h
4663  have honeVal : (T RatioOrbit.one).toRat = 2 := by
4664    have h := hT.unit_trace
4665    rw [RatioOrbit.crossEq_iff_toRat_eq, two_toRat] at h
4666    exact h
4667  rw [RatioOrbit.crossEq_iff_toRat_eq]
4668  rw [traceRootCandidate_toRat_of_nonzero T (by
4669    rw [RatioOrbit.one_toRat]
4670    norm_num : RatioOrbit.one.toRat ≠ 0)]
4671  rw [htwoMulVal, htwoVal, honeVal, RatioOrbit.one_toRat]
4672  norm_num
4673
4674theorem traceRootCandidate_recip_toRat_of_nonzero
4675    {T : RatioOrbit → RatioOrbit}
4676    (hT : PRCDoubledTraceHypotheses T)
4677    (hrespect : PRCDoubledTraceRespectsCrossEq T)
4678    {q : RatioOrbit} (hq : q.toRat ≠ 0) :
4679    (traceRootCandidate T (RatioOrbit.recip q)).toRat =
4680      (T q).toRat - (traceRootCandidate T q).toRat := by
4681  have hrecNonzero : (RatioOrbit.recip q).toRat ≠ 0 := by
4682    rw [RatioOrbit.recip_toRat]
4683    exact inv_ne_zero hq
4684  have htwoVal : (T two).toRat = (5 / 2 : ℚ) := by
4685    have h := hT.two_trace
4686    rw [RatioOrbit.crossEq_iff_toRat_eq] at h
4687    rw [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.mul_toRat,
4688      RatioOrbit.add_toRat, two_toRat, RatioOrbit.one_toRat,
4689      onRatioOrbit_toRat, two_toRat] at h
4690    norm_num at h
4691    exact h
4692  have hrecTraceVal : (T (RatioOrbit.recip q)).toRat = (T q).toRat := by
4693    exact (RatioOrbit.crossEq_iff_toRat_eq
4694      (T (RatioOrbit.recip q)) (T q)).mp
4695      (RatioOrbit.crossEq_symm (hT.reciprocal q))
4696  have htwoRecEq :
4697      RatioOrbit.crossEq
4698        (RatioOrbit.mul two (RatioOrbit.recip q))
4699        (div two q) := by
4700    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat, div_toRat,
4701      RatioOrbit.recip_toRat]
4702    rfl
4703  have htwoRecVal :
4704      (T (RatioOrbit.mul two (RatioOrbit.recip q))).toRat =
4705        (T (div two q)).toRat := by
4706    exact (RatioOrbit.crossEq_iff_toRat_eq
4707      (T (RatioOrbit.mul two (RatioOrbit.recip q))) (T (div two q))).mp
4708      (hrespect (RatioOrbit.mul two (RatioOrbit.recip q)) (div two q)
4709        htwoRecEq)
4710  have hdA := hT.dAlembert (x := two) (y := q)
4711    (by
4712      rw [two_toRat]
4713      norm_num : two.toRat ≠ 0)
4714    hq
4715  have hdAVal :
4716      (T (RatioOrbit.mul two q)).toRat + (T (div two q)).toRat =
4717        (T two).toRat * (T q).toRat := by
4718    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
4719      RatioOrbit.mul_toRat] at hdA
4720    exact hdA
4721  have hsum :
4722      (T (RatioOrbit.mul two q)).toRat + (T (div two q)).toRat =
4723        (5 / 2 : ℚ) * (T q).toRat := by
4724    rw [hdAVal, htwoVal]
4725  rw [traceRootCandidate_toRat_of_nonzero T hrecNonzero,
4726    traceRootCandidate_toRat_of_nonzero T hq]
4727  rw [htwoRecVal, hrecTraceVal]
4728  linarith
4729
4730def PRCDoubledTraceLinearRootQuadraticTarget
4731    (T : RatioOrbit → RatioOrbit) : Prop :=
4732  ∀ q : RatioOrbit, q.toRat ≠ 0 →
4733    RatioOrbit.crossEq
4734      (RatioOrbit.mul
4735        (traceRootCandidate T q)
4736        (RatioOrbit.sub (T q) (traceRootCandidate T q)))
4737      RatioOrbit.one
4738
4739theorem traceRootCandidate_quadratic_of_trace_respect
4740    {T : RatioOrbit → RatioOrbit}
4741    (hT : PRCDoubledTraceHypotheses T)
4742    (hrespect : PRCDoubledTraceRespectsCrossEq T) :
4743    PRCDoubledTraceLinearRootQuadraticTarget T := by
4744  intro q hq
4745  have htwoNonzero : two.toRat ≠ 0 := by
4746    rw [two_toRat]
4747    norm_num
4748  have htwoVal : (T two).toRat = (5 / 2 : ℚ) := by
4749    have h := hT.two_trace
4750    rw [RatioOrbit.crossEq_iff_toRat_eq] at h
4751    rw [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.mul_toRat,
4752      RatioOrbit.add_toRat, two_toRat, RatioOrbit.one_toRat,
4753      onRatioOrbit_toRat, two_toRat] at h
4754    norm_num at h
4755    exact h
4756  have honeVal : (T RatioOrbit.one).toRat = 2 := by
4757    have h := hT.unit_trace
4758    rw [RatioOrbit.crossEq_iff_toRat_eq, two_toRat] at h
4759    exact h
4760  have htwoTwoDA := hT.dAlembert (x := two) (y := two)
4761    htwoNonzero htwoNonzero
4762  have hdivTwoTwoEq :
4763      RatioOrbit.crossEq (div two two) RatioOrbit.one := by
4764    rw [RatioOrbit.crossEq_iff_toRat_eq, div_toRat, two_toRat,
4765      RatioOrbit.one_toRat]
4766    norm_num
4767  have hdivTwoTwoVal :
4768      (T (div two two)).toRat = (T RatioOrbit.one).toRat := by
4769    exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4770      (hrespect _ _ hdivTwoTwoEq)
4771  have htwoTwoVal :
4772      (T (RatioOrbit.mul two two)).toRat = (17 / 4 : ℚ) := by
4773    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
4774      RatioOrbit.mul_toRat] at htwoTwoDA
4775    rw [hdivTwoTwoVal, htwoVal, honeVal] at htwoTwoDA
4776    linarith
4777  have hqqDA := hT.dAlembert (x := q) (y := q) hq hq
4778  have hdivqqEq :
4779      RatioOrbit.crossEq (div q q) RatioOrbit.one := by
4780    rw [RatioOrbit.crossEq_iff_toRat_eq, div_toRat, RatioOrbit.one_toRat]
4781    field_simp [hq]
4782  have hdivqqVal :
4783      (T (div q q)).toRat = (T RatioOrbit.one).toRat := by
4784    exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4785      (hrespect _ _ hdivqqEq)
4786  have hqqVal :
4787      (T (RatioOrbit.mul q q)).toRat = (T q).toRat ^ 2 - 2 := by
4788    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
4789      RatioOrbit.mul_toRat] at hqqDA
4790    rw [hdivqqVal, honeVal] at hqqDA
4791    nlinarith
4792  have hdivNonzero : (div two q).toRat ≠ 0 := by
4793    rw [div_toRat]
4794    exact div_ne_zero htwoNonzero hq
4795  have htwoqNonzero : (RatioOrbit.mul two q).toRat ≠ 0 := by
4796    rw [RatioOrbit.mul_toRat]
4797    exact mul_ne_zero htwoNonzero hq
4798  have hprodEq :
4799      RatioOrbit.crossEq
4800        (RatioOrbit.mul (RatioOrbit.mul two q) (div two q))
4801        (RatioOrbit.mul two two) := by
4802    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
4803      RatioOrbit.mul_toRat, RatioOrbit.mul_toRat, div_toRat]
4804    field_simp [hq]
4805  have hquotEq :
4806      RatioOrbit.crossEq
4807        (div (RatioOrbit.mul two q) (div two q))
4808        (RatioOrbit.mul q q) := by
4809    rw [RatioOrbit.crossEq_iff_toRat_eq, div_toRat, RatioOrbit.mul_toRat,
4810      RatioOrbit.mul_toRat, div_toRat]
4811    field_simp [hq]
4812  have hprodVal :
4813      (T (RatioOrbit.mul (RatioOrbit.mul two q) (div two q))).toRat =
4814        (T (RatioOrbit.mul two two)).toRat := by
4815    exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4816      (hrespect _ _ hprodEq)
4817  have hquotVal :
4818      (T (div (RatioOrbit.mul two q) (div two q))).toRat =
4819        (T (RatioOrbit.mul q q)).toRat := by
4820    exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4821      (hrespect _ _ hquotEq)
4822  have hBDDA := hT.dAlembert
4823    (x := RatioOrbit.mul two q) (y := div two q)
4824    htwoqNonzero hdivNonzero
4825  have hBDVal :
4826      (T (RatioOrbit.mul two q)).toRat * (T (div two q)).toRat =
4827        (T q).toRat ^ 2 + (9 / 4 : ℚ) := by
4828    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
4829      RatioOrbit.mul_toRat] at hBDDA
4830    rw [hprodVal, hquotVal, htwoTwoVal, hqqVal] at hBDDA
4831    nlinarith
4832  have hsumDA := hT.dAlembert (x := two) (y := q) htwoNonzero hq
4833  have hsumVal :
4834      (T (RatioOrbit.mul two q)).toRat + (T (div two q)).toRat =
4835        (5 / 2 : ℚ) * (T q).toRat := by
4836    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
4837      RatioOrbit.mul_toRat] at hsumDA
4838    rw [htwoVal] at hsumDA
4839    exact hsumDA
4840  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
4841    RatioOrbit.sub_toRat, RatioOrbit.one_toRat]
4842  rw [traceRootCandidate_toRat_of_nonzero T hq]
4843  have hgoal :
4844      ((2 * (T (RatioOrbit.mul two q)).toRat - (T q).toRat) / 3) *
4845        ((T q).toRat -
4846          ((2 * (T (RatioOrbit.mul two q)).toRat - (T q).toRat) / 3)) =
4847        1 := by
4848    have hDexpr :
4849        (T (div two q)).toRat =
4850          (5 / 2 : ℚ) * (T q).toRat -
4851            (T (RatioOrbit.mul two q)).toRat := by
4852      linarith
4853    have hBrel :
4854        (T (RatioOrbit.mul two q)).toRat *
4855          ((5 / 2 : ℚ) * (T q).toRat -
4856            (T (RatioOrbit.mul two q)).toRat) =
4857          (T q).toRat ^ 2 + (9 / 4 : ℚ) := by
4858      rw [← hDexpr]
4859      exact hBDVal
4860    nlinarith
4861  exact hgoal
4862
4863theorem traceRootCandidate_reciprocal_of_quadratic
4864    {T : RatioOrbit → RatioOrbit}
4865    (hT : PRCDoubledTraceHypotheses T)
4866    (hrespect : PRCDoubledTraceRespectsCrossEq T)
4867    (hquadratic : PRCDoubledTraceLinearRootQuadraticTarget T) :
4868    ∀ q : RatioOrbit,
4869      RatioOrbit.crossEq
4870        (traceRootCandidate T (RatioOrbit.recip q))
4871        (RatioOrbit.recip (traceRootCandidate T q)) := by
4872  intro q
4873  by_cases hq : q.toRat = 0
4874  · rw [RatioOrbit.crossEq_iff_toRat_eq]
4875    have hrecZero : (RatioOrbit.recip q).toRat = 0 := by
4876      rw [RatioOrbit.recip_toRat, hq]
4877      norm_num
4878    rw [traceRootCandidate, if_pos hrecZero]
4879    rw [traceRootCandidate, if_pos hq]
4880    rw [RatioOrbit.recip_toRat, RatioOrbit.zero_toRat]
4881    norm_num
4882  · have hrecSum := traceRootCandidate_recip_toRat_of_nonzero
4883      hT hrespect hq
4884    have hquad := hquadratic q hq
4885    rw [RatioOrbit.crossEq_iff_toRat_eq] at hquad ⊢
4886    rw [RatioOrbit.mul_toRat, RatioOrbit.sub_toRat,
4887      RatioOrbit.one_toRat] at hquad
4888    rw [RatioOrbit.recip_toRat]
4889    rw [hrecSum]
4890    have hx :
4891        (traceRootCandidate T q).toRat ≠ 0 := by
4892      intro hzero
4893      rw [hzero] at hquad
4894      norm_num at hquad
4895    field_simp [hx]
4896    exact hquad
4897
4898theorem traceRootCandidate_nonzero_of_quadratic
4899    {T : RatioOrbit → RatioOrbit}
4900    (hquadratic : PRCDoubledTraceLinearRootQuadraticTarget T) :
4901    ∀ {q : RatioOrbit}, q.toRat ≠ 0 → (traceRootCandidate T q).toRat ≠ 0 := by
4902  intro q hq hzero
4903  have hquad := hquadratic q hq
4904  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
4905    RatioOrbit.sub_toRat, RatioOrbit.one_toRat] at hquad
4906  rw [hzero] at hquad
4907  norm_num at hquad
4908
4909theorem traceRootCandidate_trace_of_quadratic
4910    {T : RatioOrbit → RatioOrbit}
4911    (hT : PRCDoubledTraceHypotheses T)
4912    (hrespect : PRCDoubledTraceRespectsCrossEq T)
4913    (hzero : PRCDoubledTraceZeroCalibrated T)
4914    (hquadratic : PRCDoubledTraceLinearRootQuadraticTarget T) :
4915    ∀ q : RatioOrbit,
4916      RatioOrbit.crossEq
4917        (RatioOrbit.add
4918          (traceRootCandidate T q)
4919          (RatioOrbit.recip (traceRootCandidate T q)))
4920        (T q) := by
4921  intro q
4922  by_cases hq : q.toRat = 0
4923  · rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
4924      traceRootCandidate, if_pos hq, RatioOrbit.recip_toRat,
4925      RatioOrbit.zero_toRat]
4926    have hzeroVal : (T RatioOrbit.zero).toRat = 0 := by
4927      rw [PRCDoubledTraceZeroCalibrated, RatioOrbit.crossEq_iff_toRat_eq,
4928        RatioOrbit.zero_toRat] at hzero
4929      exact hzero
4930    have hqZero :
4931        RatioOrbit.crossEq q RatioOrbit.zero := by
4932      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.zero_toRat]
4933      exact hq
4934    have hTqZero :
4935        (T q).toRat = (T RatioOrbit.zero).toRat := by
4936      exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4937        (hrespect q RatioOrbit.zero hqZero)
4938    rw [hTqZero, hzeroVal]
4939    norm_num
4940  · have hrecSum := traceRootCandidate_recip_toRat_of_nonzero
4941      hT hrespect hq
4942    have hrecCross := traceRootCandidate_reciprocal_of_quadratic
4943      hT hrespect hquadratic q
4944    have hrecVal :
4945        (RatioOrbit.recip (traceRootCandidate T q)).toRat =
4946          (traceRootCandidate T (RatioOrbit.recip q)).toRat := by
4947      exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4948        (RatioOrbit.crossEq_symm hrecCross)
4949    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat]
4950    rw [hrecVal, hrecSum]
4951    ring
4952
4953theorem traceRootCandidate_normalized_of_trace_respect
4954    {T : RatioOrbit → RatioOrbit}
4955    (hrespect : PRCDoubledTraceRespectsCrossEq T) :
4956    ∀ q : RatioOrbit,
4957      RatioOrbit.crossEq (traceRootCandidate T q)
4958        (traceRootCandidate T (DistinctionNat.normalizeRatio q)) := by
4959  intro q
4960  by_cases hq : q.toRat = 0
4961  · have hnormZero : (DistinctionNat.normalizeRatio q).toRat = 0 := by
4962      rw [DistinctionNat.normalizeRatio_toRat, hq]
4963    rw [RatioOrbit.crossEq_iff_toRat_eq]
4964    rw [traceRootCandidate, if_pos hq]
4965    rw [traceRootCandidate, if_pos hnormZero]
4966  · have hnormNonzero : (DistinctionNat.normalizeRatio q).toRat ≠ 0 := by
4967      rw [DistinctionNat.normalizeRatio_toRat]
4968      exact hq
4969    have hTqVal :
4970        (T q).toRat = (T (DistinctionNat.normalizeRatio q)).toRat := by
4971      exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4972        (hrespect q (DistinctionNat.normalizeRatio q)
4973          (DistinctionNat.normalizeRatio_crossEq q))
4974    have htwoEq :
4975        RatioOrbit.crossEq
4976          (RatioOrbit.mul two q)
4977          (RatioOrbit.mul two (DistinctionNat.normalizeRatio q)) := by
4978      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
4979        RatioOrbit.mul_toRat, DistinctionNat.normalizeRatio_toRat]
4980    have htwoVal :
4981        (T (RatioOrbit.mul two q)).toRat =
4982          (T (RatioOrbit.mul two (DistinctionNat.normalizeRatio q))).toRat := by
4983      exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
4984        (hrespect _ _ htwoEq)
4985    rw [RatioOrbit.crossEq_iff_toRat_eq]
4986    rw [traceRootCandidate_toRat_of_nonzero T hq,
4987      traceRootCandidate_toRat_of_nonzero T hnormNonzero]
4988    rw [htwoVal, hTqVal]
4989
4990theorem traceRootCandidate_multiplicative_of_trace_respect
4991    {T : RatioOrbit → RatioOrbit}
4992    (hT : PRCDoubledTraceHypotheses T)
4993    (hrespect : PRCDoubledTraceRespectsCrossEq T) :
4994    ∀ x y : RatioOrbit,
4995      RatioOrbit.crossEq (traceRootCandidate T (RatioOrbit.mul x y))
4996        (RatioOrbit.mul (traceRootCandidate T x) (traceRootCandidate T y)) := by
4997  intro x y
4998  by_cases hx : x.toRat = 0
4999  · have hxyZero : (RatioOrbit.mul x y).toRat = 0 := by
5000      rw [RatioOrbit.mul_toRat, hx]
5001      ring
5002    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat]
5003    simp [traceRootCandidate, hxyZero, hx, RatioOrbit.zero_toRat]
5004  · by_cases hy : y.toRat = 0
5005    · have hxyZero : (RatioOrbit.mul x y).toRat = 0 := by
5006        rw [RatioOrbit.mul_toRat, hy]
5007        ring
5008      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat]
5009      simp [traceRootCandidate, hxyZero, hx, hy, RatioOrbit.zero_toRat]
5010    · have htwoNonzero : two.toRat ≠ 0 := by
5011        rw [two_toRat]
5012        norm_num
5013      have hxyNonzero : (RatioOrbit.mul x y).toRat ≠ 0 := by
5014        rw [RatioOrbit.mul_toRat]
5015        exact mul_ne_zero hx hy
5016      have htwoXNonzero : (RatioOrbit.mul two x).toRat ≠ 0 := by
5017        rw [RatioOrbit.mul_toRat]
5018        exact mul_ne_zero htwoNonzero hx
5019      have htwoYNonzero : (RatioOrbit.mul two y).toRat ≠ 0 := by
5020        rw [RatioOrbit.mul_toRat]
5021        exact mul_ne_zero htwoNonzero hy
5022      have htwoXYNonzero :
5023          (RatioOrbit.mul two (RatioOrbit.mul x y)).toRat ≠ 0 := by
5024        rw [RatioOrbit.mul_toRat]
5025        exact mul_ne_zero htwoNonzero hxyNonzero
5026      have hdivXYNonzero : (div x y).toRat ≠ 0 := by
5027        rw [div_toRat]
5028        exact div_ne_zero hx hy
5029      have htwoVal : (T two).toRat = (5 / 2 : ℚ) := by
5030        have h := hT.two_trace
5031        rw [RatioOrbit.crossEq_iff_toRat_eq] at h
5032        rw [nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.mul_toRat,
5033          RatioOrbit.add_toRat, two_toRat, RatioOrbit.one_toRat,
5034          onRatioOrbit_toRat, two_toRat] at h
5035        norm_num at h
5036        exact h
5037      have hACDA := hT.dAlembert (x := x) (y := y) hx hy
5038      have hACVal :
5039          (T x).toRat * (T y).toRat =
5040            (T (RatioOrbit.mul x y)).toRat + (T (div x y)).toRat := by
5041        rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5042          RatioOrbit.mul_toRat] at hACDA
5043        exact hACDA.symm
5044      have hBDDA := hT.dAlembert
5045        (x := RatioOrbit.mul two x) (y := RatioOrbit.mul two y)
5046        htwoXNonzero htwoYNonzero
5047      have hBDProdEq :
5048          RatioOrbit.crossEq
5049            (RatioOrbit.mul (RatioOrbit.mul two x) (RatioOrbit.mul two y))
5050            (RatioOrbit.mul two (RatioOrbit.mul two (RatioOrbit.mul x y))) := by
5051        rw [RatioOrbit.crossEq_iff_toRat_eq]
5052        simp [RatioOrbit.mul_toRat]
5053        ring
5054      have hBDQuotEq :
5055          RatioOrbit.crossEq
5056            (div (RatioOrbit.mul two x) (RatioOrbit.mul two y))
5057            (div x y) := by
5058        rw [RatioOrbit.crossEq_iff_toRat_eq, div_toRat, div_toRat,
5059          RatioOrbit.mul_toRat, RatioOrbit.mul_toRat]
5060        field_simp [hy]
5061      have hBDProdVal :
5062          (T (RatioOrbit.mul (RatioOrbit.mul two x) (RatioOrbit.mul two y))).toRat =
5063            (T (RatioOrbit.mul two (RatioOrbit.mul two (RatioOrbit.mul x y)))).toRat := by
5064        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5065          (hrespect _ _ hBDProdEq)
5066      have hBDQuotVal :
5067          (T (div (RatioOrbit.mul two x) (RatioOrbit.mul two y))).toRat =
5068            (T (div x y)).toRat := by
5069        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5070          (hrespect _ _ hBDQuotEq)
5071      have hBDVal :
5072          (T (RatioOrbit.mul two x)).toRat *
5073            (T (RatioOrbit.mul two y)).toRat =
5074            (T (RatioOrbit.mul two (RatioOrbit.mul two (RatioOrbit.mul x y)))).toRat +
5075              (T (div x y)).toRat := by
5076        rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5077          RatioOrbit.mul_toRat] at hBDDA
5078        rw [hBDProdVal, hBDQuotVal] at hBDDA
5079        exact hBDDA.symm
5080      have hBCDA := hT.dAlembert
5081        (x := RatioOrbit.mul two x) (y := y) htwoXNonzero hy
5082      have hBCProdEq :
5083          RatioOrbit.crossEq
5084            (RatioOrbit.mul (RatioOrbit.mul two x) y)
5085            (RatioOrbit.mul two (RatioOrbit.mul x y)) := by
5086        rw [RatioOrbit.crossEq_iff_toRat_eq]
5087        simp [RatioOrbit.mul_toRat]
5088        ring
5089      have hBCProdVal :
5090          (T (RatioOrbit.mul (RatioOrbit.mul two x) y)).toRat =
5091            (T (RatioOrbit.mul two (RatioOrbit.mul x y))).toRat := by
5092        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5093          (hrespect _ _ hBCProdEq)
5094      have hBCVal :
5095          (T (RatioOrbit.mul two x)).toRat * (T y).toRat =
5096            (T (RatioOrbit.mul two (RatioOrbit.mul x y))).toRat +
5097              (T (div (RatioOrbit.mul two x) y)).toRat := by
5098        rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5099          RatioOrbit.mul_toRat] at hBCDA
5100        rw [hBCProdVal] at hBCDA
5101        exact hBCDA.symm
5102      have hADDA := hT.dAlembert
5103        (x := x) (y := RatioOrbit.mul two y) hx htwoYNonzero
5104      have hADProdEq :
5105          RatioOrbit.crossEq
5106            (RatioOrbit.mul x (RatioOrbit.mul two y))
5107            (RatioOrbit.mul two (RatioOrbit.mul x y)) := by
5108        rw [RatioOrbit.crossEq_iff_toRat_eq]
5109        simp [RatioOrbit.mul_toRat]
5110        ring
5111      have hADProdVal :
5112          (T (RatioOrbit.mul x (RatioOrbit.mul two y))).toRat =
5113            (T (RatioOrbit.mul two (RatioOrbit.mul x y))).toRat := by
5114        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5115          (hrespect _ _ hADProdEq)
5116      have hADVal :
5117          (T x).toRat * (T (RatioOrbit.mul two y)).toRat =
5118            (T (RatioOrbit.mul two (RatioOrbit.mul x y))).toRat +
5119              (T (div x (RatioOrbit.mul two y))).toRat := by
5120        rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5121          RatioOrbit.mul_toRat] at hADDA
5122        rw [hADProdVal] at hADDA
5123        exact hADDA.symm
5124      have hVWSumDA := hT.dAlembert (x := two) (y := div x y)
5125        htwoNonzero hdivXYNonzero
5126      have hVEq :
5127          RatioOrbit.crossEq
5128            (RatioOrbit.mul two (div x y))
5129            (div (RatioOrbit.mul two x) y) := by
5130        rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
5131          div_toRat, div_toRat, RatioOrbit.mul_toRat]
5132        field_simp [hy]
5133      have hWEqRec :
5134          RatioOrbit.crossEq
5135            (div two (div x y))
5136            (RatioOrbit.recip (div x (RatioOrbit.mul two y))) := by
5137        rw [RatioOrbit.crossEq_iff_toRat_eq, div_toRat, div_toRat,
5138          RatioOrbit.recip_toRat, div_toRat, RatioOrbit.mul_toRat]
5139        field_simp [hx, hy]
5140      have hVVal :
5141          (T (RatioOrbit.mul two (div x y))).toRat =
5142            (T (div (RatioOrbit.mul two x) y)).toRat := by
5143        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5144          (hrespect _ _ hVEq)
5145      have hWRecVal :
5146          (T (div two (div x y))).toRat =
5147            (T (RatioOrbit.recip (div x (RatioOrbit.mul two y)))).toRat := by
5148        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5149          (hrespect _ _ hWEqRec)
5150      have hWVal :
5151          (T (RatioOrbit.recip (div x (RatioOrbit.mul two y)))).toRat =
5152            (T (div x (RatioOrbit.mul two y))).toRat := by
5153        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5154          (RatioOrbit.crossEq_symm
5155            (hT.reciprocal (div x (RatioOrbit.mul two y))))
5156      have hVWSumVal :
5157          (T (div (RatioOrbit.mul two x) y)).toRat +
5158            (T (div x (RatioOrbit.mul two y))).toRat =
5159            (5 / 2 : ℚ) * (T (div x y)).toRat := by
5160        rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5161          RatioOrbit.mul_toRat] at hVWSumDA
5162        rw [hVVal, hWRecVal, hWVal, htwoVal] at hVWSumDA
5163        exact hVWSumDA
5164      have hGDA := hT.dAlembert
5165        (x := two) (y := RatioOrbit.mul two (RatioOrbit.mul x y))
5166        htwoNonzero htwoXYNonzero
5167      have hGQuotEq :
5168          RatioOrbit.crossEq
5169            (div two (RatioOrbit.mul two (RatioOrbit.mul x y)))
5170            (RatioOrbit.recip (RatioOrbit.mul x y)) := by
5171        rw [RatioOrbit.crossEq_iff_toRat_eq, div_toRat,
5172          RatioOrbit.recip_toRat, RatioOrbit.mul_toRat,
5173          RatioOrbit.mul_toRat]
5174        field_simp [hx, hy]
5175      have hGQuotVal :
5176          (T (div two (RatioOrbit.mul two (RatioOrbit.mul x y)))).toRat =
5177            (T (RatioOrbit.recip (RatioOrbit.mul x y))).toRat := by
5178        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5179          (hrespect _ _ hGQuotEq)
5180      have hGRecVal :
5181          (T (RatioOrbit.recip (RatioOrbit.mul x y))).toRat =
5182            (T (RatioOrbit.mul x y)).toRat := by
5183        exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5184          (RatioOrbit.crossEq_symm
5185            (hT.reciprocal (RatioOrbit.mul x y)))
5186      have hGVal :
5187          (T (RatioOrbit.mul two (RatioOrbit.mul two (RatioOrbit.mul x y)))).toRat +
5188            (T (RatioOrbit.mul x y)).toRat =
5189            (5 / 2 : ℚ) *
5190              (T (RatioOrbit.mul two (RatioOrbit.mul x y))).toRat := by
5191        rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5192          RatioOrbit.mul_toRat] at hGDA
5193        rw [hGQuotVal, hGRecVal, htwoVal] at hGDA
5194        exact hGDA
5195      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat]
5196      rw [traceRootCandidate_toRat_of_nonzero T hxyNonzero,
5197        traceRootCandidate_toRat_of_nonzero T hx,
5198        traceRootCandidate_toRat_of_nonzero T hy]
5199      nlinarith
5200
5201theorem PRCDoubledTraceZeroCalibratedLinearRootTarget_proved :
5202    PRCDoubledTraceZeroCalibratedLinearRootTarget := by
5203  intro T hT hzero
5204  have hrespect : PRCDoubledTraceRespectsCrossEq T :=
5205    PRCDoubledTraceRespectsCrossEq_proved hT
5206  have hquadratic : PRCDoubledTraceLinearRootQuadraticTarget T :=
5207    traceRootCandidate_quadratic_of_trace_respect hT hrespect
5208  constructor
5209  · exact
5210      { unit := traceRootCandidate_one_of_trace_respect hT hrespect,
5211        multiplicative :=
5212          traceRootCandidate_multiplicative_of_trace_respect hT hrespect,
5213        reciprocal :=
5214          traceRootCandidate_reciprocal_of_quadratic hT hrespect hquadratic,
5215        normalized_invariant :=
5216          traceRootCandidate_normalized_of_trace_respect hrespect,
5217        nonzero_preserving :=
5218          traceRootCandidate_nonzero_of_quadratic hquadratic }
5219  · exact traceRootCandidate_trace_of_quadratic hT hrespect hzero hquadratic
5220
5221theorem PRCDoubledTraceZeroCalibratedCoherentRootTarget_proved :
5222    PRCDoubledTraceZeroCalibratedCoherentRootTarget :=
5223  PRCDoubledTraceZeroCalibratedCoherentRootTarget_of_linear_root
5224    PRCDoubledTraceZeroCalibratedLinearRootTarget_proved
5225
5226/-- Exact upstream zero-orbit blocker left after the coherent-root theorem:
5227native cost hypotheses must force the generated doubled trace to have zero
5228trace at the zero orbit. -/
5229def PRCNativeCostDoubledTraceZeroCalibratedTarget : Prop :=
5230  ∀ F : RatioOrbit → RatioOrbit,
5231    PRCNativeCostHypotheses F →
5232      PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F)
5233
5234theorem PRCNativeCostCharacterTraceLiftTarget_of_doubled_trace_zero_calibrated
5235    (hzero : PRCNativeCostDoubledTraceZeroCalibratedTarget) :
5236    PRCNativeCostCharacterTraceLiftTarget := by
5237  intro F hF
5238  have hT : PRCDoubledTraceHypotheses (nativeCostDoubledTrace F) :=
5239    nativeCostDoubledTrace_hypotheses_of_native_cost_hypotheses hF
5240  have hz : PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F) :=
5241    hzero F hF
5242  rcases PRCDoubledTraceZeroCalibratedCoherentRootTarget_proved
5243      (nativeCostDoubledTrace F) hT hz with
5244    ⟨χ, hχ, htrace⟩
5245  exact ⟨χ, hχ, htrace⟩
5246
5247theorem PRCNativeCostCharacterFactorizationTarget_of_doubled_trace_zero_calibrated
5248    (hzero : PRCNativeCostDoubledTraceZeroCalibratedTarget) :
5249    PRCNativeCostCharacterFactorizationTarget :=
5250  PRCNativeCostCharacterFactorizationTarget_of_trace_lift
5251    (PRCNativeCostCharacterTraceLiftTarget_of_doubled_trace_zero_calibrated
5252      hzero)
5253
5254/-- Native zero-spike cost: canonical on every nonzero ratio orbit, but flattened
5255to `0` at the zero orbit. This satisfies the native cost interface because the
5256RCL only quantifies over nonzero inputs. -/
5257noncomputable def zeroFlatNativeCost (q : RatioOrbit) : RatioOrbit :=
5258  by
5259    classical
5260    exact if q.toRat = 0 then RatioOrbit.zero
5261      else if q = RatioOrbit.one then RatioOrbit.zero
5262      else onRatioOrbit q
5263
5264theorem zeroFlatNativeCost_zero :
5265    zeroFlatNativeCost RatioOrbit.zero = RatioOrbit.zero := by
5266  classical
5267  rw [zeroFlatNativeCost, if_pos RatioOrbit.zero_toRat]
5268
5269theorem zeroFlatNativeCost_one :
5270    zeroFlatNativeCost RatioOrbit.one = RatioOrbit.zero := by
5271  classical
5272  rw [zeroFlatNativeCost, if_neg (by
5273    rw [RatioOrbit.one_toRat]
5274    norm_num : RatioOrbit.one.toRat ≠ 0)]
5275  rw [if_pos rfl]
5276
5277theorem zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero
5278    {q : RatioOrbit} (hq : q.toRat ≠ 0) :
5279    RatioOrbit.crossEq (zeroFlatNativeCost q) (onRatioOrbit q) := by
5280  classical
5281  by_cases hone : q = RatioOrbit.one
5282  · subst q
5283    rw [zeroFlatNativeCost_one]
5284    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.zero_toRat,
5285      onRatioOrbit_toRat, RatioOrbit.one_toRat]
5286    norm_num
5287  · rw [zeroFlatNativeCost, if_neg hq, if_neg hone]
5288    exact RatioOrbit.crossEq_refl _
5289
5290theorem zeroFlatNativeCost_hypotheses :
5291    PRCNativeCostHypotheses zeroFlatNativeCost where
5292  reciprocal := by
5293    intro q
5294    by_cases hq : q.toRat = 0
5295    · have hrec : (RatioOrbit.recip q).toRat = 0 := by
5296        rw [RatioOrbit.recip_toRat, hq]
5297        norm_num
5298      rw [RatioOrbit.crossEq_iff_toRat_eq]
5299      rw [zeroFlatNativeCost, if_pos hq]
5300      rw [zeroFlatNativeCost, if_pos hrec]
5301    · have hrec : (RatioOrbit.recip q).toRat ≠ 0 := by
5302        rw [RatioOrbit.recip_toRat]
5303        exact inv_ne_zero hq
5304      exact RatioOrbit.crossEq_trans
5305        (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hq)
5306        (RatioOrbit.crossEq_trans
5307          (reciprocal_symmetric q)
5308          (RatioOrbit.crossEq_symm
5309            (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hrec)))
5310  normalized_invariant := by
5311    intro q
5312    by_cases hq : q.toRat = 0
5313    · have hnorm : (DistinctionNat.normalizeRatio q).toRat = 0 := by
5314        rw [DistinctionNat.normalizeRatio_toRat, hq]
5315      rw [RatioOrbit.crossEq_iff_toRat_eq]
5316      rw [zeroFlatNativeCost, if_pos hq]
5317      rw [zeroFlatNativeCost, if_pos hnorm]
5318    · have hnorm : (DistinctionNat.normalizeRatio q).toRat ≠ 0 := by
5319        rw [DistinctionNat.normalizeRatio_toRat]
5320        exact hq
5321      exact RatioOrbit.crossEq_trans
5322        (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hq)
5323        (RatioOrbit.crossEq_trans
5324          (normalized_invariant q)
5325          (RatioOrbit.crossEq_symm
5326            (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hnorm)))
5327  canonical_rcl := by
5328    intro x y hx hy
5329    have hxy : (RatioOrbit.mul x y).toRat ≠ 0 := by
5330      rw [RatioOrbit.mul_toRat]
5331      exact mul_ne_zero hx hy
5332    have hdiv : (div x y).toRat ≠ 0 := by
5333      rw [div_toRat]
5334      exact div_ne_zero hx hy
5335    have hleft :
5336        RatioOrbit.crossEq
5337          (RatioOrbit.add
5338            (zeroFlatNativeCost (RatioOrbit.mul x y))
5339            (zeroFlatNativeCost (div x y)))
5340          (RatioOrbit.add
5341            (onRatioOrbit (RatioOrbit.mul x y))
5342            (onRatioOrbit (div x y))) := by
5343      exact ratioOrbit_add_congr
5344        (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hxy)
5345        (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hdiv)
5346    have hxF := zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hx
5347    have hyF := zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero hy
5348    have hmulInner :
5349        RatioOrbit.crossEq
5350          (RatioOrbit.mul (onRatioOrbit x) (onRatioOrbit y))
5351          (RatioOrbit.mul (zeroFlatNativeCost x) (zeroFlatNativeCost y)) :=
5352      ratioOrbit_mul_congr
5353        (RatioOrbit.crossEq_symm hxF)
5354        (RatioOrbit.crossEq_symm hyF)
5355    have hterm₁ :
5356        RatioOrbit.crossEq
5357          (RatioOrbit.mul two
5358            (RatioOrbit.mul (onRatioOrbit x) (onRatioOrbit y)))
5359          (RatioOrbit.mul two
5360            (RatioOrbit.mul (zeroFlatNativeCost x)
5361              (zeroFlatNativeCost y))) :=
5362      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two) hmulInner
5363    have hterm₂ :
5364        RatioOrbit.crossEq
5365          (RatioOrbit.mul two (onRatioOrbit x))
5366          (RatioOrbit.mul two (zeroFlatNativeCost x)) :=
5367      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two)
5368        (RatioOrbit.crossEq_symm hxF)
5369    have hterm₃ :
5370        RatioOrbit.crossEq
5371          (RatioOrbit.mul two (onRatioOrbit y))
5372          (RatioOrbit.mul two (zeroFlatNativeCost y)) :=
5373      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two)
5374        (RatioOrbit.crossEq_symm hyF)
5375    have hright :
5376        RatioOrbit.crossEq
5377          (RatioOrbit.add
5378            (RatioOrbit.add
5379              (RatioOrbit.mul two
5380                (RatioOrbit.mul (onRatioOrbit x) (onRatioOrbit y)))
5381              (RatioOrbit.mul two (onRatioOrbit x)))
5382            (RatioOrbit.mul two (onRatioOrbit y)))
5383          (RatioOrbit.add
5384            (RatioOrbit.add
5385              (RatioOrbit.mul two
5386                (RatioOrbit.mul (zeroFlatNativeCost x)
5387                  (zeroFlatNativeCost y)))
5388              (RatioOrbit.mul two (zeroFlatNativeCost x)))
5389            (RatioOrbit.mul two (zeroFlatNativeCost y))) :=
5390      ratioOrbit_add_congr (ratioOrbit_add_congr hterm₁ hterm₂) hterm₃
5391    exact RatioOrbit.crossEq_trans hleft
5392      (RatioOrbit.crossEq_trans (canonical_rcl_surface hx hy) hright)
5393  unit_zero := zeroFlatNativeCost_one
5394  two_calibrated := by
5395    exact RatioOrbit.crossEq_trans
5396      (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero (by
5397        rw [two_toRat]
5398        norm_num : two.toRat ≠ 0))
5399      (RatioOrbit.crossEq_refl _)
5400
5401theorem zeroFlatNativeCost_doubled_trace_zero :
5402    nativeCostDoubledTrace zeroFlatNativeCost RatioOrbit.zero =
5403      doubledTraceValue RatioOrbit.zero := by
5404  rw [nativeCostDoubledTrace, zeroFlatNativeCost_zero]
5405
5406theorem zeroFlatNativeCost_not_doubled_trace_zero_calibrated :
5407    ¬ PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace zeroFlatNativeCost) := by
5408  intro h
5409  rw [PRCDoubledTraceZeroCalibrated, RatioOrbit.crossEq_iff_toRat_eq,
5410    zeroFlatNativeCost_doubled_trace_zero, doubledTraceValue,
5411    RatioOrbit.mul_toRat, RatioOrbit.add_toRat, two_toRat,
5412    RatioOrbit.zero_toRat, RatioOrbit.one_toRat] at h
5413  norm_num at h
5414
5415theorem PRCNativeCostDoubledTraceZeroCalibratedTarget_refuted :
5416    ¬ PRCNativeCostDoubledTraceZeroCalibratedTarget := by
5417  intro hzero
5418  exact zeroFlatNativeCost_not_doubled_trace_zero_calibrated
5419    (hzero zeroFlatNativeCost zeroFlatNativeCost_hypotheses)
5420
5421theorem zeroFlatNativeCost_no_character_trace :
5422    ¬ ∃ χ : RatioOrbit → RatioOrbit,
5423        PRCRatioCharacter χ ∧
5424          PRCCharacterTraceMatchesCost zeroFlatNativeCost χ := by
5425  intro h
5426  rcases h with ⟨χ, hχ, htrace⟩
5427  let a : ℚ := (χ RatioOrbit.zero).toRat
5428  let b : ℚ := (χ two).toRat
5429  have hrec := hχ.reciprocal RatioOrbit.zero
5430  have hrecRat : a = a⁻¹ := by
5431    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_zero_eq,
5432      RatioOrbit.recip_toRat] at hrec
5433    exact hrec
5434  have htraceZero := htrace RatioOrbit.zero
5435  have htraceZeroRat : a + a⁻¹ = 2 := by
5436    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5437      RatioOrbit.recip_toRat, nativeCostDoubledTrace,
5438      zeroFlatNativeCost_zero, doubledTraceValue, RatioOrbit.mul_toRat,
5439      RatioOrbit.add_toRat, two_toRat, RatioOrbit.zero_toRat,
5440      RatioOrbit.one_toRat] at htraceZero
5441    norm_num at htraceZero
5442    exact htraceZero
5443  have ha : a = 1 := by
5444    linarith
5445  have hzeroMul :
5446      RatioOrbit.crossEq (RatioOrbit.mul RatioOrbit.zero two) RatioOrbit.zero := by
5447    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
5448      RatioOrbit.zero_toRat]
5449    ring
5450  have hrespect : PRCCharacterRespectsCrossEq χ :=
5451    PRCCharacterRespectsCrossEq_of_normalizeRatio_canonical hχ
5452      PRCNormalizeRatioCanonicalTarget_proved
5453  have hleft :
5454      (χ (RatioOrbit.mul RatioOrbit.zero two)).toRat = a := by
5455    exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5456      (hrespect (RatioOrbit.mul RatioOrbit.zero two) RatioOrbit.zero hzeroMul)
5457  have hmul := hχ.multiplicative RatioOrbit.zero two
5458  have hmulRat :
5459      (χ (RatioOrbit.mul RatioOrbit.zero two)).toRat = a * b := by
5460    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat] at hmul
5461    exact hmul
5462  have hb : b = 1 := by
5463    rw [hleft] at hmulRat
5464    nlinarith
5465  have htraceTwo := htrace two
5466  have hFtwo :
5467      (zeroFlatNativeCost two).toRat = (onRatioOrbit two).toRat := by
5468    exact (RatioOrbit.crossEq_iff_toRat_eq _ _).mp
5469      (zeroFlatNativeCost_crossEq_onRatioOrbit_of_nonzero (by
5470        rw [two_toRat]
5471        norm_num : two.toRat ≠ 0))
5472  have htraceTwoRat : b + b⁻¹ = (5 / 2 : ℚ) := by
5473    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.add_toRat,
5474      RatioOrbit.recip_toRat, nativeCostDoubledTrace, doubledTraceValue,
5475      RatioOrbit.mul_toRat, RatioOrbit.add_toRat, two_toRat,
5476      RatioOrbit.one_toRat] at htraceTwo
5477    rw [hFtwo, onRatioOrbit_toRat, two_toRat] at htraceTwo
5478    norm_num at htraceTwo
5479    exact htraceTwo
5480  rw [hb] at htraceTwoRat
5481  norm_num at htraceTwoRat
5482
5483theorem PRCNativeCostCharacterTraceLiftTarget_refuted :
5484    ¬ PRCNativeCostCharacterTraceLiftTarget := by
5485  intro htrace
5486  exact zeroFlatNativeCost_no_character_trace
5487    (htrace zeroFlatNativeCost zeroFlatNativeCost_hypotheses)
5488
5489theorem PRCNativeCostCharacterFactorizationTarget_refuted :
5490    ¬ PRCNativeCostCharacterFactorizationTarget := by
5491  intro hfactor
5492  exact PRCNativeCostCharacterTraceLiftTarget_refuted
5493    (PRCNativeCostCharacterTraceLiftTarget_of_factorization hfactor)
5494
5495/-- Repaired native cost interface for character lifting: the native hypotheses
5496plus explicit zero calibration of the generated doubled trace. Pass 294 proves
5497the unqualified target is false, so this is the exact replacement surface. -/
5498def PRCZeroCalibratedNativeCostCharacterTraceLiftTarget : Prop :=
5499  ∀ F : RatioOrbit → RatioOrbit,
5500    PRCNativeCostHypotheses F →
5501      PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F) →
5502        ∃ χ : RatioOrbit → RatioOrbit,
5503          PRCRatioCharacter χ ∧
5504            PRCCharacterTraceMatchesCost F χ
5505
5506def PRCZeroCalibratedNativeCostCharacterFactorizationTarget : Prop :=
5507  ∀ F : RatioOrbit → RatioOrbit,
5508    PRCNativeCostHypotheses F →
5509      PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F) →
5510        ∃ χ : RatioOrbit → RatioOrbit,
5511          PRCRatioCharacter χ ∧
5512            ∀ q : RatioOrbit,
5513              RatioOrbit.crossEq (F q) (costFromCharacter χ q)
5514
5515def PRCZeroCalibratedNativeCostSignedAdmissibleCharacterFactorizationTarget :
5516    Prop :=
5517  ∀ F : RatioOrbit → RatioOrbit,
5518    PRCNativeCostHypotheses F →
5519      PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F) →
5520        ∃ χ : RatioOrbit → RatioOrbit,
5521          PRCSignedAdmissibleRatioCharacter χ ∧
5522            ∀ q : RatioOrbit,
5523              RatioOrbit.crossEq (F q) (costFromCharacter χ q)
5524
5525def PRCZeroCalibratedNativeCostUniquenessTarget : Prop :=
5526  ∀ F : RatioOrbit → RatioOrbit,
5527    PRCNativeCostHypotheses F →
5528      PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F) →
5529        ∀ q : RatioOrbit, RatioOrbit.crossEq (F q) (onRatioOrbit q)
5530
5531theorem PRCZeroCalibratedNativeCostCharacterTraceLiftTarget_proved :
5532    PRCZeroCalibratedNativeCostCharacterTraceLiftTarget := by
5533  intro F hF hzero
5534  have hT : PRCDoubledTraceHypotheses (nativeCostDoubledTrace F) :=
5535    nativeCostDoubledTrace_hypotheses_of_native_cost_hypotheses hF
5536  rcases PRCDoubledTraceZeroCalibratedCoherentRootTarget_proved
5537      (nativeCostDoubledTrace F) hT hzero with
5538    ⟨χ, hχ, htrace⟩
5539  exact ⟨χ, hχ, htrace⟩
5540
5541theorem PRCZeroCalibratedNativeCostCharacterFactorizationTarget_proved :
5542    PRCZeroCalibratedNativeCostCharacterFactorizationTarget := by
5543  intro F hF hzero
5544  rcases PRCZeroCalibratedNativeCostCharacterTraceLiftTarget_proved
5545      F hF hzero with
5546    ⟨χ, hχ, htrace⟩
5547  exact ⟨χ, hχ, cost_crossEq_of_PRCCharacterTraceMatchesCost htrace⟩
5548
5549theorem PRCZeroCalibratedNativeCostUniquenessTarget_of_character_targets
5550    (hfactor : PRCZeroCalibratedNativeCostCharacterFactorizationTarget)
5551    (hrigid : PRCNativeCostCharacterRigidityTarget) :
5552    PRCZeroCalibratedNativeCostUniquenessTarget := by
5553  intro F hF hzero q
5554  rcases hfactor F hF hzero with ⟨χ, hχ, hFχ⟩
5555  have hcal :
5556      RatioOrbit.crossEq (costFromCharacter χ two) (onRatioOrbit two) :=
5557    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ two)) hF.two_calibrated
5558  exact RatioOrbit.crossEq_trans (hFχ q) (hrigid χ hχ hcal q)
5559
5560theorem PRCZeroCalibratedNativeCostCharacterFactorizationTarget_not_old :
5561    PRCZeroCalibratedNativeCostCharacterFactorizationTarget ∧
5562      ¬ PRCNativeCostCharacterFactorizationTarget := by
5563  exact ⟨PRCZeroCalibratedNativeCostCharacterFactorizationTarget_proved,
5564    PRCNativeCostCharacterFactorizationTarget_refuted⟩
5565
5566theorem PRCCharacterOrbitProductDisplayCompatible_of_crossEq_respect
5567    {χ : RatioOrbit → RatioOrbit}
5568    (hrespect : PRCCharacterRespectsCrossEq χ) :
5569    PRCCharacterOrbitProductDisplayCompatible χ := by
5570  intro a b p ha hb hp hmul
5571  exact hrespect (orbitDirection p hp)
5572    (RatioOrbit.mul (orbitDirection a ha) (orbitDirection b hb))
5573    (orbitDirection_mul_crossEq a b p ha hb hp hmul)
5574
5575/-- Product factors cannot be mixed identity/reciprocal oriented. This is the
5576exact obstruction left after the pure same-orientation product algebra is
5577discharged. -/
5578def PRCCharacterOrbitProductNoMixedOrientation
5579    (χ : RatioOrbit → RatioOrbit) : Prop :=
5580  ∀ a b p : DistinctionNat,
5581    ∀ ha : a ≠ DistinctionNat.zero, ∀ hb : b ≠ DistinctionNat.zero,
5582      ¬ DistinctionNat.unit a →
5583        ¬ DistinctionNat.unit b →
5584          ∀ _hp : p ≠ DistinctionNat.zero,
5585            ¬ DistinctionNat.unit p →
5586              a * b = p →
5587                (¬ (PRCCharacterOrbitDirectionIdentity χ a ha ∧
5588                  PRCCharacterOrbitDirectionReciprocal χ b hb)) ∧
5589                (¬ (PRCCharacterOrbitDirectionReciprocal χ a ha ∧
5590                  PRCCharacterOrbitDirectionIdentity χ b hb))
5591
5592/-- Nonunit orbit orientation is coherent when every nonunit orbit direction
5593chooses the same branch: all identity or all reciprocal. This is the exact
5594coherence statement strong enough to rule out mixed product factors. -/
5595def PRCCharacterNonunitOrbitOrientationCoherent
5596    (χ : RatioOrbit → RatioOrbit) : Prop :=
5597  (∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
5598    ¬ DistinctionNat.unit p →
5599      PRCCharacterOrbitDirectionIdentity χ p hp) ∨
5600  (∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
5601    ¬ DistinctionNat.unit p →
5602      PRCCharacterOrbitDirectionReciprocal χ p hp)
5603
5604/-- Cross-nonunit no-mixing: identity orientation at one nonunit orbit direction
5605cannot coexist with reciprocal orientation at another. This is the branch-coupling
5606part of global nonunit coherence, separated from local orientation existence. -/
5607def PRCCharacterNoMixedNonunitOrbitOrientation
5608    (χ : RatioOrbit → RatioOrbit) : Prop :=
5609  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
5610    ¬ DistinctionNat.unit p →
5611      ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
5612        ¬ DistinctionNat.unit r →
5613          PRCCharacterOrbitDirectionIdentity χ p hp →
5614            PRCCharacterOrbitDirectionReciprocal χ r hr →
5615              False
5616
5617/-- Positive branch transport form of nonunit coherence: if one nonunit orbit
5618direction is identity-oriented, every nonunit orbit direction is identity-oriented.
5619This is the same branch-coupling law as no-mixing once local orientation is known,
5620but it states the missing transport direction directly. -/
5621def PRCCharacterNonunitIdentityBranchTransport
5622    (χ : RatioOrbit → RatioOrbit) : Prop :=
5623  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
5624    ¬ DistinctionNat.unit p →
5625      PRCCharacterOrbitDirectionIdentity χ p hp →
5626        ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
5627          ¬ DistinctionNat.unit r →
5628            PRCCharacterOrbitDirectionIdentity χ r hr
5629
5630/-- Witness form of identity branch transport: one identity-oriented nonunit
5631direction, if it exists, fixes the identity branch globally. -/
5632def PRCCharacterNonunitIdentityWitnessGlobalizes
5633    (χ : RatioOrbit → RatioOrbit) : Prop :=
5634  (∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
5635    ∃ _hunit : ¬ DistinctionNat.unit p,
5636      PRCCharacterOrbitDirectionIdentity χ p hp) →
5637    ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
5638      ¬ DistinctionNat.unit r →
5639        PRCCharacterOrbitDirectionIdentity χ r hr
5640
5641/-- One-sided exclusion form of branch coupling: once any nonunit identity
5642witness exists, no nonunit reciprocal witness can coexist with it. Local
5643orientation is not bundled into this statement. -/
5644def PRCCharacterNonunitIdentityWitnessExcludesReciprocal
5645    (χ : RatioOrbit → RatioOrbit) : Prop :=
5646  (∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
5647    ∃ _hunit : ¬ DistinctionNat.unit p,
5648      PRCCharacterOrbitDirectionIdentity χ p hp) →
5649    ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
5650      ¬ DistinctionNat.unit r →
5651        PRCCharacterOrbitDirectionReciprocal χ r hr → False
5652
5653/-- Existential no-mixed-witness form of branch coupling: there cannot
5654simultaneously be an identity-oriented nonunit witness and a reciprocal-oriented
5655nonunit witness. -/
5656def PRCCharacterNonunitNoMixedWitnesses
5657    (χ : RatioOrbit → RatioOrbit) : Prop :=
5658  ¬ ((∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
5659        ∃ _hunit : ¬ DistinctionNat.unit p,
5660          PRCCharacterOrbitDirectionIdentity χ p hp) ∧
5661      (∃ r : DistinctionNat, ∃ hr : r ≠ DistinctionNat.zero,
5662        ∃ _hunit : ¬ DistinctionNat.unit r,
5663          PRCCharacterOrbitDirectionReciprocal χ r hr))
5664
5665/-- The exact composite bridge still needed after prime witnesses are isolated:
5666prime no-mixing must control arbitrary nonunit witnesses. -/
5667def PRCCharacterPrimeWitnessesControlNonunitWitnesses
5668    (χ : RatioOrbit → RatioOrbit) : Prop :=
5669  PRCCharacterNoMixedPrimeWitnesses χ →
5670    PRCCharacterNonunitNoMixedWitnesses χ
5671
5672/-- Contrapositive/reflection form of the composite bridge: if mixed nonunit
5673witnesses exist, then mixed prime-axis witnesses must already exist. This is the
5674exact reverse direction not supplied by product propagation. -/
5675def PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses
5676    (χ : RatioOrbit → RatioOrbit) : Prop :=
5677  ((∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
5678      ∃ _hunit : ¬ DistinctionNat.unit p,
5679        PRCCharacterOrbitDirectionIdentity χ p hp) ∧
5680    (∃ r : DistinctionNat, ∃ hr : r ≠ DistinctionNat.zero,
5681      ∃ _hunit : ¬ DistinctionNat.unit r,
5682        PRCCharacterOrbitDirectionReciprocal χ r hr)) →
5683    ((∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
5684        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) ∧
5685      (∃ r : DistinctionNat, ∃ hr : DistinctionNat.primeOrbit r,
5686        RatioOrbit.crossEq (χ (primeDirection r hr))
5687          (RatioOrbit.recip (primeDirection r hr))))
5688
5689/-- Identity half of the mixed-context reflection law: in the presence of mixed
5690nonunit witnesses, the identity-oriented nonunit witness must reflect down to an
5691identity-oriented prime-axis witness. -/
5692def PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness
5693    (χ : RatioOrbit → RatioOrbit) : Prop :=
5694  ((∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
5695      ∃ _hunit : ¬ DistinctionNat.unit p,
5696        PRCCharacterOrbitDirectionIdentity χ p hp) ∧
5697    (∃ r : DistinctionNat, ∃ hr : r ≠ DistinctionNat.zero,
5698      ∃ _hunit : ¬ DistinctionNat.unit r,
5699        PRCCharacterOrbitDirectionReciprocal χ r hr)) →
5700    ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
5701      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
5702
5703/-- Reciprocal half of the mixed-context reflection law: in the presence of mixed
5704nonunit witnesses, the reciprocal-oriented nonunit witness must reflect down to a
5705reciprocal-oriented prime-axis witness. -/
5706def PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness
5707    (χ : RatioOrbit → RatioOrbit) : Prop :=
5708  ((∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
5709      ∃ _hunit : ¬ DistinctionNat.unit p,
5710        PRCCharacterOrbitDirectionIdentity χ p hp) ∧
5711    (∃ r : DistinctionNat, ∃ hr : r ≠ DistinctionNat.zero,
5712      ∃ _hunit : ¬ DistinctionNat.unit r,
5713        PRCCharacterOrbitDirectionReciprocal χ r hr)) →
5714    ∃ r : DistinctionNat, ∃ hr : DistinctionNat.primeOrbit r,
5715      RatioOrbit.crossEq (χ (primeDirection r hr))
5716        (RatioOrbit.recip (primeDirection r hr))
5717
5718/-- Split form of mixed nonunit reflection: the identity and reciprocal witnesses
5719each pull back to the prime axis under the same mixed-context antecedent. -/
5720def PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit
5721    (χ : RatioOrbit → RatioOrbit) : Prop :=
5722  PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness χ ∧
5723    PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness χ
5724
5725/-- Reciprocal branch transport form of nonunit coherence: if one nonunit orbit
5726direction is reciprocal-oriented, every nonunit orbit direction is
5727reciprocal-oriented. Pass 57 isolates this as the dual half of two-branch
5728agreement. -/
5729def PRCCharacterNonunitReciprocalBranchTransport
5730    (χ : RatioOrbit → RatioOrbit) : Prop :=
5731  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
5732    ¬ DistinctionNat.unit p →
5733      PRCCharacterOrbitDirectionReciprocal χ p hp →
5734        ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
5735          ¬ DistinctionNat.unit r →
5736            PRCCharacterOrbitDirectionReciprocal χ r hr
5737
5738/-- Split transport form of two-branch agreement. -/
5739def PRCCharacterNonunitBranchTransportPair
5740    (χ : RatioOrbit → RatioOrbit) : Prop :=
5741  PRCCharacterNonunitIdentityBranchTransport χ ∧
5742    PRCCharacterNonunitReciprocalBranchTransport χ
5743
5744/-- Trace-order form of nonunit identity transport: identity orientation at one
5745nonunit orbit direction transports to another nonunit direction when their
5746finite δ-orbit traces are comparable. Since orbit traces are structurally
5747comparable, this is equivalent to global nonunit identity-branch transport, but
5748it exposes the next proof obligation as a trace-order law. -/
5749def PRCCharacterNonunitIdentityRespectsComparableTrace
5750    (χ : RatioOrbit → RatioOrbit) : Prop :=
5751  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
5752    ¬ DistinctionNat.unit p →
5753      ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
5754        ¬ DistinctionNat.unit r →
5755          (Trace.Extends (orbitPositionTrace p) (orbitPositionTrace r) ∨
5756            Trace.Extends (orbitPositionTrace r) (orbitPositionTrace p)) →
5757            PRCCharacterOrbitDirectionIdentity χ p hp →
5758              PRCCharacterOrbitDirectionIdentity χ r hr
5759
5760theorem orbit_mul_not_unit_of_left_not_unit
5761    {p r : DistinctionNat} (hunit : ¬ DistinctionNat.unit p) :
5762    ¬ DistinctionNat.unit (p * r) := by
5763  intro hprodUnit
5764  have hprodNat : (p * r).toNat = 1 :=
5765    (DistinctionNat.unit_iff_toNat_eq_one (p * r)).mp hprodUnit
5766  have hpNat1 : p.toNat ≠ 1 := by
5767    intro hone
5768    exact hunit ((DistinctionNat.unit_iff_toNat_eq_one p).mpr hone)
5769  rw [DistinctionNat.toNat_mul] at hprodNat
5770  have hpOne : p.toNat = 1 := Nat.eq_one_of_mul_eq_one_right hprodNat
5771  exact hpNat1 hpOne
5772
5773theorem PRCCharacterNonunitOrbitLocalOrientation_of_coherent
5774    {χ : RatioOrbit → RatioOrbit}
5775    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
5776    PRCCharacterNonunitOrbitLocalOrientation χ := by
5777  intro p hp hunit
5778  rcases hcoh with hallId | hallRec
5779  · exact Or.inl (hallId p hp hunit)
5780  · exact Or.inr (hallRec p hp hunit)
5781
5782theorem PRCCharacterNoMixedNonunitOrbitOrientation_of_coherent
5783    {χ : RatioOrbit → RatioOrbit}
5784    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
5785    PRCCharacterNoMixedNonunitOrbitOrientation χ := by
5786  intro p hp hunit r hr hrUnit hpId hrRec
5787  rcases hcoh with hallId | hallRec
5788  · have hrId := hallId r hr hrUnit
5789    have hself :
5790        RatioOrbit.crossEq (orbitDirection r hr)
5791          (RatioOrbit.recip (orbitDirection r hr)) :=
5792      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
5793    exact orbitDirection_nonunit_not_crossEq_recip r hr hrUnit hself
5794  · have hpRec := hallRec p hp hunit
5795    have hself :
5796        RatioOrbit.crossEq (orbitDirection p hp)
5797          (RatioOrbit.recip (orbitDirection p hp)) :=
5798      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
5799    exact orbitDirection_nonunit_not_crossEq_recip p hp hunit hself
5800
5801theorem PRCCharacterNoMixedNonunitOrbitOrientation_of_product_no_mixed
5802    {χ : RatioOrbit → RatioOrbit}
5803    (hnomix : PRCCharacterOrbitProductNoMixedOrientation χ) :
5804    PRCCharacterNoMixedNonunitOrbitOrientation χ := by
5805  intro p hp hpUnit r hr hrUnit hpId hrRec
5806  exact ((hnomix p r (p * r) hp hr hpUnit hrUnit
5807    (DistinctionNat.mul_ne_zero hp hr)
5808    (orbit_mul_not_unit_of_left_not_unit hpUnit) rfl).1
5809      ⟨hpId, hrRec⟩)
5810
5811theorem PRCCharacterOrbitProductNoMixedOrientation_of_no_mixed_nonunit
5812    {χ : RatioOrbit → RatioOrbit}
5813    (hnomix : PRCCharacterNoMixedNonunitOrbitOrientation χ) :
5814    PRCCharacterOrbitProductNoMixedOrientation χ := by
5815  intro a b p ha hb haUnit hbUnit _hp _hpUnit _hmul
5816  constructor
5817  · rintro ⟨haId, hbRec⟩
5818    exact hnomix a ha haUnit b hb hbUnit haId hbRec
5819  · rintro ⟨haRec, hbId⟩
5820    exact hnomix b hb hbUnit a ha haUnit hbId haRec
5821
5822theorem PRCCharacterOrbitProductNoMixedOrientation_iff_no_mixed_nonunit
5823    {χ : RatioOrbit → RatioOrbit} :
5824    PRCCharacterOrbitProductNoMixedOrientation χ ↔
5825      PRCCharacterNoMixedNonunitOrbitOrientation χ :=
5826  ⟨PRCCharacterNoMixedNonunitOrbitOrientation_of_product_no_mixed,
5827    PRCCharacterOrbitProductNoMixedOrientation_of_no_mixed_nonunit⟩
5828
5829theorem PRCCharacterNoMixedNonunitOrbitOrientation_of_identity_branch_transport
5830    {χ : RatioOrbit → RatioOrbit}
5831    (htransport : PRCCharacterNonunitIdentityBranchTransport χ) :
5832    PRCCharacterNoMixedNonunitOrbitOrientation χ := by
5833  intro p hp hpUnit r hr hrUnit hpId hrRec
5834  have hrId := htransport p hp hpUnit hpId r hr hrUnit
5835  have hself :
5836      RatioOrbit.crossEq (orbitDirection r hr)
5837        (RatioOrbit.recip (orbitDirection r hr)) :=
5838    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
5839  exact orbitDirection_nonunit_not_crossEq_recip r hr hrUnit hself
5840
5841theorem PRCCharacterOrbitProductNoMixedOrientation_of_identity_branch_transport
5842    {χ : RatioOrbit → RatioOrbit}
5843    (htransport : PRCCharacterNonunitIdentityBranchTransport χ) :
5844    PRCCharacterOrbitProductNoMixedOrientation χ :=
5845  PRCCharacterOrbitProductNoMixedOrientation_of_no_mixed_nonunit
5846    (PRCCharacterNoMixedNonunitOrbitOrientation_of_identity_branch_transport
5847      htransport)
5848
5849theorem PRCCharacterNonunitIdentityBranchTransport_of_local_no_mixed
5850    {χ : RatioOrbit → RatioOrbit}
5851    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
5852    (hnomix : PRCCharacterNoMixedNonunitOrbitOrientation χ) :
5853    PRCCharacterNonunitIdentityBranchTransport χ := by
5854  intro p hp hpUnit hpId r hr hrUnit
5855  rcases hlocal r hr hrUnit with hrId | hrRec
5856  · exact hrId
5857  · exact False.elim (hnomix p hp hpUnit r hr hrUnit hpId hrRec)
5858
5859theorem PRCCharacterNonunitIdentityBranchTransport_of_coherent
5860    {χ : RatioOrbit → RatioOrbit}
5861    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
5862    PRCCharacterNonunitIdentityBranchTransport χ := by
5863  intro p hp hpUnit hpId r hr hrUnit
5864  rcases hcoh with hallId | hallRec
5865  · exact hallId r hr hrUnit
5866  · have hpRec := hallRec p hp hpUnit
5867    have hself :
5868        RatioOrbit.crossEq (orbitDirection p hp)
5869          (RatioOrbit.recip (orbitDirection p hp)) :=
5870      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
5871    exact False.elim
5872      (orbitDirection_nonunit_not_crossEq_recip p hp hpUnit hself)
5873
5874theorem PRCCharacterNonunitIdentityWitnessGlobalizes_of_branch_transport
5875    {χ : RatioOrbit → RatioOrbit}
5876    (htransport : PRCCharacterNonunitIdentityBranchTransport χ) :
5877    PRCCharacterNonunitIdentityWitnessGlobalizes χ := by
5878  rintro ⟨p, hp, hpUnit, hpId⟩ r hr hrUnit
5879  exact htransport p hp hpUnit hpId r hr hrUnit
5880
5881theorem PRCCharacterNonunitIdentityBranchTransport_of_witness_globalizes
5882    {χ : RatioOrbit → RatioOrbit}
5883    (hwitness : PRCCharacterNonunitIdentityWitnessGlobalizes χ) :
5884    PRCCharacterNonunitIdentityBranchTransport χ := by
5885  intro p hp hpUnit hpId r hr hrUnit
5886  exact hwitness ⟨p, hp, hpUnit, hpId⟩ r hr hrUnit
5887
5888theorem PRCCharacterNonunitIdentityWitnessGlobalizes_iff_branch_transport
5889    {χ : RatioOrbit → RatioOrbit} :
5890    PRCCharacterNonunitIdentityWitnessGlobalizes χ ↔
5891      PRCCharacterNonunitIdentityBranchTransport χ :=
5892  ⟨PRCCharacterNonunitIdentityBranchTransport_of_witness_globalizes,
5893    PRCCharacterNonunitIdentityWitnessGlobalizes_of_branch_transport⟩
5894
5895theorem PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_no_mixed
5896    {χ : RatioOrbit → RatioOrbit}
5897    (hnomix : PRCCharacterNoMixedNonunitOrbitOrientation χ) :
5898    PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ := by
5899  rintro ⟨p, hp, hpUnit, hpId⟩ r hr hrUnit hrRec
5900  exact hnomix p hp hpUnit r hr hrUnit hpId hrRec
5901
5902theorem PRCCharacterNoMixedNonunitOrbitOrientation_of_identity_witness_excludes
5903    {χ : RatioOrbit → RatioOrbit}
5904    (hexcl : PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ) :
5905    PRCCharacterNoMixedNonunitOrbitOrientation χ := by
5906  intro p hp hpUnit r hr hrUnit hpId hrRec
5907  exact hexcl ⟨p, hp, hpUnit, hpId⟩ r hr hrUnit hrRec
5908
5909theorem PRCCharacterNonunitIdentityWitnessExcludesReciprocal_iff_no_mixed
5910    {χ : RatioOrbit → RatioOrbit} :
5911    PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ ↔
5912      PRCCharacterNoMixedNonunitOrbitOrientation χ :=
5913  ⟨PRCCharacterNoMixedNonunitOrbitOrientation_of_identity_witness_excludes,
5914    PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_no_mixed⟩
5915
5916theorem PRCCharacterNonunitNoMixedWitnesses_of_identity_witness_excludes
5917    {χ : RatioOrbit → RatioOrbit}
5918    (hexcl : PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ) :
5919    PRCCharacterNonunitNoMixedWitnesses χ := by
5920  rintro ⟨hid, hrec⟩
5921  rcases hrec with ⟨r, hr, hrUnit, hrRec⟩
5922  exact hexcl hid r hr hrUnit hrRec
5923
5924theorem PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_no_mixed_witnesses
5925    {χ : RatioOrbit → RatioOrbit}
5926    (hnomix : PRCCharacterNonunitNoMixedWitnesses χ) :
5927    PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ := by
5928  intro hid r hr hrUnit hrRec
5929  exact hnomix ⟨hid, ⟨r, hr, hrUnit, hrRec⟩⟩
5930
5931theorem PRCCharacterNonunitNoMixedWitnesses_iff_identity_witness_excludes
5932    {χ : RatioOrbit → RatioOrbit} :
5933    PRCCharacterNonunitNoMixedWitnesses χ ↔
5934      PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ :=
5935  ⟨PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_no_mixed_witnesses,
5936    PRCCharacterNonunitNoMixedWitnesses_of_identity_witness_excludes⟩
5937
5938theorem PRCCharacterNoMixedPrimeWitnesses_of_no_mixed_prime_orientation
5939    {χ : RatioOrbit → RatioOrbit}
5940    (hnomix : PRCCharacterNoMixedPrimeOrientation χ) :
5941    PRCCharacterNoMixedPrimeWitnesses χ := by
5942  rintro ⟨hid, hrec⟩
5943  rcases hid with ⟨p, hp, hpId⟩
5944  rcases hrec with ⟨r, hr, hrRec⟩
5945  exact hnomix p hp r hr hpId hrRec
5946
5947theorem PRCCharacterNoMixedPrimeOrientation_of_no_mixed_prime_witnesses
5948    {χ : RatioOrbit → RatioOrbit}
5949    (hnomix : PRCCharacterNoMixedPrimeWitnesses χ) :
5950    PRCCharacterNoMixedPrimeOrientation χ := by
5951  intro p hp r hr hpId hrRec
5952  exact hnomix ⟨⟨p, hp, hpId⟩, ⟨r, hr, hrRec⟩⟩
5953
5954theorem PRCCharacterNoMixedPrimeWitnesses_iff_no_mixed_prime_orientation
5955    {χ : RatioOrbit → RatioOrbit} :
5956    PRCCharacterNoMixedPrimeWitnesses χ ↔
5957      PRCCharacterNoMixedPrimeOrientation χ :=
5958  ⟨PRCCharacterNoMixedPrimeOrientation_of_no_mixed_prime_witnesses,
5959    PRCCharacterNoMixedPrimeWitnesses_of_no_mixed_prime_orientation⟩
5960
5961theorem PRCCharacterNoMixedPrimeWitnesses_iff_not_mixed_prime_witnesses
5962    {χ : RatioOrbit → RatioOrbit} :
5963    PRCCharacterNoMixedPrimeWitnesses χ ↔
5964      ¬ PRCCharacterMixedPrimeWitnesses χ := by
5965  rfl
5966
5967theorem PRCCharacterMixedPrimePairWitnesses_of_mixed_prime_witnesses
5968    {χ : RatioOrbit → RatioOrbit}
5969    (hmixed : PRCCharacterMixedPrimeWitnesses χ) :
5970    PRCCharacterMixedPrimePairWitnesses χ := by
5971  rcases hmixed with ⟨hid, hrec⟩
5972  rcases hid with ⟨p, hp, hpId⟩
5973  rcases hrec with ⟨r, hr, hrRec⟩
5974  exact ⟨p, hp, r, hr, hpId, hrRec⟩
5975
5976theorem PRCCharacterMixedPrimeWitnesses_of_pair_witnesses
5977    {χ : RatioOrbit → RatioOrbit}
5978    (hpair : PRCCharacterMixedPrimePairWitnesses χ) :
5979    PRCCharacterMixedPrimeWitnesses χ := by
5980  rcases hpair with ⟨p, hp, r, hr, hpId, hrRec⟩
5981  exact ⟨⟨p, hp, hpId⟩, ⟨r, hr, hrRec⟩⟩
5982
5983theorem PRCCharacterMixedPrimeWitnesses_iff_pair_witnesses
5984    {χ : RatioOrbit → RatioOrbit} :
5985    PRCCharacterMixedPrimeWitnesses χ ↔
5986      PRCCharacterMixedPrimePairWitnesses χ :=
5987  ⟨PRCCharacterMixedPrimePairWitnesses_of_mixed_prime_witnesses,
5988    PRCCharacterMixedPrimeWitnesses_of_pair_witnesses⟩
5989
5990theorem PRCCharacterNoMixedPrimeWitnesses_iff_not_mixed_prime_pair_witnesses
5991    {χ : RatioOrbit → RatioOrbit} :
5992    PRCCharacterNoMixedPrimeWitnesses χ ↔
5993      ¬ PRCCharacterMixedPrimePairWitnesses χ := by
5994  constructor
5995  · intro hnomix hpair
5996    exact hnomix (PRCCharacterMixedPrimeWitnesses_of_pair_witnesses hpair)
5997  · intro hnoPair hmixed
5998    exact hnoPair
5999      (PRCCharacterMixedPrimePairWitnesses_of_mixed_prime_witnesses hmixed)
6000
6001theorem PRCCharacterMixedPrimePairWitnesses_same_or_distinct
6002    {χ : RatioOrbit → RatioOrbit}
6003    (hpair : PRCCharacterMixedPrimePairWitnesses χ) :
6004    PRCCharacterSamePrimeMixedPairWitnesses χ ∨
6005      PRCCharacterDistinctPrimeMixedPairWitnesses χ := by
6006  rcases hpair with ⟨p, hp, r, hr, hpId, hrRec⟩
6007  by_cases hEq : p = r
6008  · exact Or.inl ⟨p, hp, r, hr, hEq, hpId, hrRec⟩
6009  · exact Or.inr ⟨p, hp, r, hr, hEq, hpId, hrRec⟩
6010
6011theorem PRCCharacterMixedPrimePairWitnesses_of_same
6012    {χ : RatioOrbit → RatioOrbit}
6013    (hsame : PRCCharacterSamePrimeMixedPairWitnesses χ) :
6014    PRCCharacterMixedPrimePairWitnesses χ := by
6015  rcases hsame with ⟨p, hp, r, hr, _hEq, hpId, hrRec⟩
6016  exact ⟨p, hp, r, hr, hpId, hrRec⟩
6017
6018theorem PRCCharacterMixedPrimePairWitnesses_of_distinct
6019    {χ : RatioOrbit → RatioOrbit}
6020    (hdistinct : PRCCharacterDistinctPrimeMixedPairWitnesses χ) :
6021    PRCCharacterMixedPrimePairWitnesses χ := by
6022  rcases hdistinct with ⟨p, hp, r, hr, _hNe, hpId, hrRec⟩
6023  exact ⟨p, hp, r, hr, hpId, hrRec⟩
6024
6025theorem PRCCharacterMixedPrimePairWitnesses_of_same_or_distinct
6026    {χ : RatioOrbit → RatioOrbit}
6027    (hsplit :
6028      PRCCharacterSamePrimeMixedPairWitnesses χ ∨
6029        PRCCharacterDistinctPrimeMixedPairWitnesses χ) :
6030    PRCCharacterMixedPrimePairWitnesses χ := by
6031  cases hsplit with
6032  | inl hsame => exact PRCCharacterMixedPrimePairWitnesses_of_same hsame
6033  | inr hdistinct => exact PRCCharacterMixedPrimePairWitnesses_of_distinct hdistinct
6034
6035theorem PRCCharacterMixedPrimePairWitnesses_iff_same_or_distinct
6036    {χ : RatioOrbit → RatioOrbit} :
6037    PRCCharacterMixedPrimePairWitnesses χ ↔
6038      PRCCharacterSamePrimeMixedPairWitnesses χ ∨
6039        PRCCharacterDistinctPrimeMixedPairWitnesses χ :=
6040  ⟨PRCCharacterMixedPrimePairWitnesses_same_or_distinct,
6041    PRCCharacterMixedPrimePairWitnesses_of_same_or_distinct⟩
6042
6043theorem PRCCharacterNoMixedPrimeWitnesses_iff_no_same_and_no_distinct_pair
6044    {χ : RatioOrbit → RatioOrbit} :
6045    PRCCharacterNoMixedPrimeWitnesses χ ↔
6046      ¬ PRCCharacterSamePrimeMixedPairWitnesses χ ∧
6047        ¬ PRCCharacterDistinctPrimeMixedPairWitnesses χ := by
6048  constructor
6049  · intro hnomix
6050    constructor
6051    · intro hsame
6052      exact hnomix (PRCCharacterMixedPrimeWitnesses_of_pair_witnesses
6053        (PRCCharacterMixedPrimePairWitnesses_of_same hsame))
6054    · intro hdistinct
6055      exact hnomix (PRCCharacterMixedPrimeWitnesses_of_pair_witnesses
6056        (PRCCharacterMixedPrimePairWitnesses_of_distinct hdistinct))
6057  · intro hnoSplit hmixed
6058    exact (PRCCharacterNoMixedPrimeWitnesses_iff_not_mixed_prime_pair_witnesses.mpr
6059      (fun hpair =>
6060        (PRCCharacterMixedPrimePairWitnesses_iff_same_or_distinct.mp hpair).elim
6061          hnoSplit.1 hnoSplit.2)) hmixed
6062
6063theorem PRCCharacterSamePrimeMixedPairWitnesses_absurd
6064    {χ : RatioOrbit → RatioOrbit} :
6065    ¬ PRCCharacterSamePrimeMixedPairWitnesses χ := by
6066  intro hsame
6067  rcases hsame with ⟨p, hp, r, hr, hEq, hpId, hrRec⟩
6068  subst r
6069  have hdir : primeDirection p hp = primeDirection p hr := by
6070    rfl
6071  have hpRec :
6072      RatioOrbit.crossEq (χ (primeDirection p hp))
6073        (RatioOrbit.recip (primeDirection p hp)) := by
6074    simpa [hdir] using hrRec
6075  have hself :
6076      RatioOrbit.crossEq (primeDirection p hp)
6077        (RatioOrbit.recip (primeDirection p hp)) :=
6078    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6079  exact primeDirection_not_crossEq_recip p hp hself
6080
6081theorem PRCCharacterNoMixedPrimeWitnesses_iff_not_distinct_prime_pair
6082    {χ : RatioOrbit → RatioOrbit} :
6083    PRCCharacterNoMixedPrimeWitnesses χ ↔
6084      ¬ PRCCharacterDistinctPrimeMixedPairWitnesses χ := by
6085  constructor
6086  · intro hnomix hdistinct
6087    exact hnomix (PRCCharacterMixedPrimeWitnesses_of_pair_witnesses
6088      (PRCCharacterMixedPrimePairWitnesses_of_distinct hdistinct))
6089  · intro hnoDistinct
6090    exact PRCCharacterNoMixedPrimeWitnesses_iff_no_same_and_no_distinct_pair.mpr
6091      ⟨PRCCharacterSamePrimeMixedPairWitnesses_absurd, hnoDistinct⟩
6092
6093theorem PRCCharacterDistinctPrimeMixedPairWitnesses_absurd_of_branch_uniform
6094    {χ : RatioOrbit → RatioOrbit}
6095    (huniform : PRCCharacterPrimeIdentityBranchUniform χ) :
6096    ¬ PRCCharacterDistinctPrimeMixedPairWitnesses χ := by
6097  intro hdistinct
6098  rcases hdistinct with ⟨p, hp, r, hr, _hne, hpId, hrRec⟩
6099  have hrId := huniform p hp r hr hpId
6100  have hself :
6101      RatioOrbit.crossEq (primeDirection r hr)
6102        (RatioOrbit.recip (primeDirection r hr)) :=
6103    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
6104  exact primeDirection_not_crossEq_recip r hr hself
6105
6106theorem PRCCharacterPrimeIdentityBranchUniform_of_local_no_distinct_prime_pair
6107    {χ : RatioOrbit → RatioOrbit}
6108    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6109    (hnoDistinct : ¬ PRCCharacterDistinctPrimeMixedPairWitnesses χ) :
6110    PRCCharacterPrimeIdentityBranchUniform χ := by
6111  intro p hp r hr hpId
6112  by_cases hEq : p = r
6113  · subst r
6114    simpa [primeDirection] using hpId
6115  · rcases hlocal r hr with hrId | hrRec
6116    · exact hrId
6117    · exact False.elim (hnoDistinct ⟨p, hp, r, hr, hEq, hpId, hrRec⟩)
6118
6119theorem PRCCharacterPrimeIdentityBranchUniform_iff_no_distinct_prime_pair_of_local
6120    {χ : RatioOrbit → RatioOrbit}
6121    (hlocal : PRCCharacterPrimeLocalOrientation χ) :
6122    PRCCharacterPrimeIdentityBranchUniform χ ↔
6123      ¬ PRCCharacterDistinctPrimeMixedPairWitnesses χ :=
6124  ⟨PRCCharacterDistinctPrimeMixedPairWitnesses_absurd_of_branch_uniform,
6125    PRCCharacterPrimeIdentityBranchUniform_of_local_no_distinct_prime_pair hlocal⟩
6126
6127theorem PRCCharacterPrimeIdentityBranchUniform_of_identity_iff_two
6128    {χ : RatioOrbit → RatioOrbit}
6129    (hiff : PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ) :
6130    PRCCharacterPrimeIdentityBranchUniform χ := by
6131  intro p hp r hr hpId
6132  exact (hiff r hr).mpr ((hiff p hp).mp hpId)
6133
6134theorem PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_branch_uniform
6135    {χ : RatioOrbit → RatioOrbit}
6136    (huniform : PRCCharacterPrimeIdentityBranchUniform χ) :
6137    PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ := by
6138  intro p hp
6139  constructor
6140  · intro hpId
6141    exact huniform p hp twoOrbit twoOrbit_primeOrbit hpId
6142  · intro htwoId
6143    exact huniform twoOrbit twoOrbit_primeOrbit p hp htwoId
6144
6145theorem PRCCharacterPrimeIdentityBranchUniform_iff_identity_iff_two
6146    {χ : RatioOrbit → RatioOrbit} :
6147    PRCCharacterPrimeIdentityBranchUniform χ ↔
6148      PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ :=
6149  ⟨PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_branch_uniform,
6150    PRCCharacterPrimeIdentityBranchUniform_of_identity_iff_two⟩
6151
6152theorem PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_orientation
6153    {χ : RatioOrbit → RatioOrbit}
6154    (hnomix : PRCCharacterNoMixedPrimeOrientation χ) :
6155    PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ := by
6156  rintro ⟨p, hp, hpId⟩ r hr hrRec
6157  exact hnomix p hp r hr hpId hrRec
6158
6159theorem PRCCharacterNoMixedPrimeOrientation_of_identity_witness_excludes_reciprocal
6160    {χ : RatioOrbit → RatioOrbit}
6161    (hexcl : PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ) :
6162    PRCCharacterNoMixedPrimeOrientation χ := by
6163  intro p hp r hr hpId hrRec
6164  exact hexcl ⟨p, hp, hpId⟩ r hr hrRec
6165
6166theorem PRCCharacterPrimeIdentityWitnessExcludesReciprocal_iff_no_mixed_prime_orientation
6167    {χ : RatioOrbit → RatioOrbit} :
6168    PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ ↔
6169      PRCCharacterNoMixedPrimeOrientation χ :=
6170  ⟨PRCCharacterNoMixedPrimeOrientation_of_identity_witness_excludes_reciprocal,
6171    PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_orientation⟩
6172
6173theorem PRCCharacterNoMixedPrimeWitnesses_of_identity_witness_excludes_reciprocal
6174    {χ : RatioOrbit → RatioOrbit}
6175    (hexcl : PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ) :
6176    PRCCharacterNoMixedPrimeWitnesses χ := by
6177  rintro ⟨hid, hrec⟩
6178  rcases hrec with ⟨r, hr, hrRec⟩
6179  exact hexcl hid r hr hrRec
6180
6181theorem PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_witnesses
6182    {χ : RatioOrbit → RatioOrbit}
6183    (hnomix : PRCCharacterNoMixedPrimeWitnesses χ) :
6184    PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ := by
6185  intro hid r hr hrRec
6186  exact hnomix ⟨hid, ⟨r, hr, hrRec⟩⟩
6187
6188theorem PRCCharacterNoMixedPrimeWitnesses_iff_identity_witness_excludes_reciprocal
6189    {χ : RatioOrbit → RatioOrbit} :
6190    PRCCharacterNoMixedPrimeWitnesses χ ↔
6191      PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ :=
6192  ⟨PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_witnesses,
6193    PRCCharacterNoMixedPrimeWitnesses_of_identity_witness_excludes_reciprocal⟩
6194
6195theorem PRCCharacterPrimeReciprocalWitnessGlobalizes_of_local_no_mixed_prime_orientation
6196    {χ : RatioOrbit → RatioOrbit}
6197    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6198    (hnomix : PRCCharacterNoMixedPrimeOrientation χ) :
6199    PRCCharacterPrimeReciprocalWitnessGlobalizes χ := by
6200  rintro ⟨p, hp, hpRec⟩ r hr
6201  rcases hlocal r hr with hrId | hrRec
6202  · exact False.elim (hnomix r hr p hp hrId hpRec)
6203  · exact hrRec
6204
6205theorem PRCCharacterNoMixedPrimeOrientation_of_reciprocal_witness_globalizes
6206    {χ : RatioOrbit → RatioOrbit}
6207    (hglobal : PRCCharacterPrimeReciprocalWitnessGlobalizes χ) :
6208    PRCCharacterNoMixedPrimeOrientation χ := by
6209  intro p hp r hr hpId hrRec
6210  have hpRec := hglobal ⟨r, hr, hrRec⟩ p hp
6211  have hself :
6212      RatioOrbit.crossEq
6213        (primeDirection p hp)
6214        (RatioOrbit.recip (primeDirection p hp)) :=
6215    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6216  exact primeDirection_not_crossEq_recip p hp hself
6217
6218theorem PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal_of_reciprocal_witness_globalizes
6219    {χ : RatioOrbit → RatioOrbit}
6220    (hglobal : PRCCharacterPrimeReciprocalWitnessGlobalizes χ) :
6221    PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal χ := by
6222  intro p hp hpRec
6223  exact hglobal ⟨p, hp, hpRec⟩ twoOrbit twoOrbit_primeOrbit
6224
6225theorem PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_reciprocal_witness_globalizes
6226    {χ : RatioOrbit → RatioOrbit}
6227    (hglobal : PRCCharacterPrimeReciprocalWitnessGlobalizes χ) :
6228    PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ := by
6229  intro htwoRec p hp
6230  exact hglobal ⟨twoOrbit, twoOrbit_primeOrbit, htwoRec⟩ p hp
6231
6232theorem PRCCharacterPrimeReciprocalWitnessGlobalizesSplit_of_reciprocal_witness_globalizes
6233    {χ : RatioOrbit → RatioOrbit}
6234    (hglobal : PRCCharacterPrimeReciprocalWitnessGlobalizes χ) :
6235    PRCCharacterPrimeReciprocalWitnessGlobalizesSplit χ :=
6236  ⟨PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal_of_reciprocal_witness_globalizes
6237      hglobal,
6238    PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_reciprocal_witness_globalizes
6239      hglobal⟩
6240
6241theorem PRCCharacterPrimeReciprocalWitnessGlobalizes_of_split
6242    {χ : RatioOrbit → RatioOrbit}
6243    (hsplit : PRCCharacterPrimeReciprocalWitnessGlobalizesSplit χ) :
6244    PRCCharacterPrimeReciprocalWitnessGlobalizes χ := by
6245  rintro ⟨p, hp, hpRec⟩ r hr
6246  exact hsplit.2 (hsplit.1 p hp hpRec) r hr
6247
6248theorem PRCCharacterPrimeReciprocalWitnessGlobalizes_iff_split
6249    {χ : RatioOrbit → RatioOrbit} :
6250    PRCCharacterPrimeReciprocalWitnessGlobalizes χ ↔
6251      PRCCharacterPrimeReciprocalWitnessGlobalizesSplit χ :=
6252  ⟨PRCCharacterPrimeReciprocalWitnessGlobalizesSplit_of_reciprocal_witness_globalizes,
6253    PRCCharacterPrimeReciprocalWitnessGlobalizes_of_split⟩
6254
6255theorem PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal_of_reciprocal_twist_identity_forces_two
6256    {χ : RatioOrbit → RatioOrbit}
6257    (hforces :
6258      PRCCharacterPrimeIdentityForcesTwoPrimeIdentity
6259        (PRCCharacterReciprocalTwist χ)) :
6260    PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal χ := by
6261  intro p hp hpRec
6262  have hpTwistId :
6263      RatioOrbit.crossEq
6264        (PRCCharacterReciprocalTwist χ (primeDirection p hp))
6265        (primeDirection p hp) :=
6266    (PRCCharacterReciprocalTwist_prime_identity_iff_reciprocal
6267      χ p hp).mpr hpRec
6268  have htwoTwistId := hforces p hp hpTwistId
6269  exact (PRCCharacterReciprocalTwist_two_identity_iff_reciprocal χ).mp
6270    htwoTwistId
6271
6272theorem PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_reciprocal_twist_reciprocal_forces_two
6273    {χ : RatioOrbit → RatioOrbit}
6274    (hforces :
6275      PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal
6276        (PRCCharacterReciprocalTwist χ)) :
6277    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ := by
6278  intro p hp hpId
6279  have hpTwistRec :
6280      RatioOrbit.crossEq
6281        (PRCCharacterReciprocalTwist χ (primeDirection p hp))
6282        (RatioOrbit.recip (primeDirection p hp)) :=
6283    (PRCCharacterReciprocalTwist_prime_reciprocal_iff_identity
6284      χ p hp).mpr hpId
6285  have htwoTwistRec := hforces p hp hpTwistRec
6286  exact (PRCCharacterReciprocalTwist_two_reciprocal_iff_identity χ).mp
6287    htwoTwistRec
6288
6289theorem PRCCharacterTwoPrimeBranchControlsPrimes_of_coherent
6290    {χ : RatioOrbit → RatioOrbit}
6291    (hcoh : PRCCharacterPrimeOrientationCoherent χ) :
6292    PRCCharacterTwoPrimeBranchControlsPrimes χ := by
6293  constructor
6294  · intro htwoId
6295    rcases hcoh with hallId | hallRec
6296    · exact hallId
6297    · have htwoRec := hallRec twoOrbit twoOrbit_primeOrbit
6298      have hself :
6299          RatioOrbit.crossEq twoPrimeDirection
6300            (RatioOrbit.recip twoPrimeDirection) :=
6301        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) htwoRec
6302      exact False.elim
6303        (primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself)
6304  · intro htwoRec
6305    rcases hcoh with hallId | hallRec
6306    · have htwoId := hallId twoOrbit twoOrbit_primeOrbit
6307      have hself :
6308          RatioOrbit.crossEq twoPrimeDirection
6309            (RatioOrbit.recip twoPrimeDirection) :=
6310        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) htwoRec
6311      exact False.elim
6312        (primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself)
6313    · exact hallRec
6314
6315theorem PRCCharacterPrimeOrientationCoherent_of_local_two_prime_branch_controls
6316    {χ : RatioOrbit → RatioOrbit}
6317    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6318    (hctrl : PRCCharacterTwoPrimeBranchControlsPrimes χ) :
6319    PRCCharacterPrimeOrientationCoherent χ := by
6320  rcases hlocal twoOrbit twoOrbit_primeOrbit with htwoId | htwoRec
6321  · exact Or.inl (hctrl.1 htwoId)
6322  · exact Or.inr (hctrl.2 htwoRec)
6323
6324theorem PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_local_two_prime_branch_controls
6325    {χ : RatioOrbit → RatioOrbit}
6326    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6327    (hctrl : PRCCharacterTwoPrimeBranchControlsPrimes χ) :
6328    PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ := by
6329  intro p hp
6330  constructor
6331  · intro hpId
6332    rcases hlocal twoOrbit twoOrbit_primeOrbit with htwoId | htwoRec
6333    · exact htwoId
6334    · have hpRec := hctrl.2 htwoRec p hp
6335      have hself :
6336          RatioOrbit.crossEq (primeDirection p hp)
6337            (RatioOrbit.recip (primeDirection p hp)) :=
6338        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6339      exact False.elim (primeDirection_not_crossEq_recip p hp hself)
6340  · intro htwoId
6341    exact hctrl.1 htwoId p hp
6342
6343theorem PRCCharacterTwoPrimeBranchControlsPrimes_of_local_prime_identity_iff_two
6344    {χ : RatioOrbit → RatioOrbit}
6345    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6346    (hiff : PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ) :
6347    PRCCharacterTwoPrimeBranchControlsPrimes χ := by
6348  constructor
6349  · intro htwoId p hp
6350    exact (hiff p hp).mpr htwoId
6351  · intro htwoRec p hp
6352    rcases hlocal p hp with hpId | hpRec
6353    · have htwoId := (hiff p hp).mp hpId
6354      have hself :
6355          RatioOrbit.crossEq twoPrimeDirection
6356            (RatioOrbit.recip twoPrimeDirection) :=
6357        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) htwoRec
6358      exact False.elim
6359        (primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself)
6360    · exact hpRec
6361
6362theorem PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_identity_iff_two
6363    {χ : RatioOrbit → RatioOrbit}
6364    (hiff : PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ) :
6365    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ := by
6366  intro p hp hpId
6367  exact (hiff p hp).mp hpId
6368
6369theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_identity_forces_two
6370    {χ : RatioOrbit → RatioOrbit}
6371    (hforces : PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ) :
6372    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ := by
6373  intro htwoRec p hp hpId
6374  have htwoId := hforces p hp hpId
6375  have hself :
6376      RatioOrbit.crossEq twoPrimeDirection
6377        (RatioOrbit.recip twoPrimeDirection) :=
6378    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) htwoRec
6379  exact primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself
6380
6381theorem PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_local_two_prime_reciprocal_excludes
6382    {χ : RatioOrbit → RatioOrbit}
6383    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6384    (hexcl : PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ) :
6385    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ := by
6386  intro p hp hpId
6387  rcases hlocal twoOrbit twoOrbit_primeOrbit with htwoId | htwoRec
6388  · exact htwoId
6389  · exact False.elim ((hexcl htwoRec p hp) hpId)
6390
6391theorem PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_iff_two_prime_reciprocal_excludes
6392    {χ : RatioOrbit → RatioOrbit}
6393    (hlocal : PRCCharacterPrimeLocalOrientation χ) :
6394    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ ↔
6395      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ :=
6396  ⟨PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_identity_forces_two,
6397    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_local_two_prime_reciprocal_excludes
6398      hlocal⟩
6399
6400theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_excludes
6401    {χ : RatioOrbit → RatioOrbit}
6402    (hexcl : PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ) :
6403    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ := by
6404  intro htwoRec hwitness
6405  rcases hwitness with ⟨p, hp, hpId⟩
6406  exact (hexcl htwoRec p hp) hpId
6407
6408theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_witness_excludes
6409    {χ : RatioOrbit → RatioOrbit}
6410    (hexcl : PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ) :
6411    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ := by
6412  intro htwoRec p hp hpId
6413  exact hexcl htwoRec ⟨p, hp, hpId⟩
6414
6415theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_iff_witness :
6416    {χ : RatioOrbit → RatioOrbit} →
6417    (PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ ↔
6418      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ) := by
6419  intro χ
6420  exact
6421    ⟨PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_excludes,
6422      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_witness_excludes⟩
6423
6424theorem PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_iff_two_prime_reciprocal_excludes_witness
6425    {χ : RatioOrbit → RatioOrbit}
6426    (hlocal : PRCCharacterPrimeLocalOrientation χ) :
6427    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ ↔
6428      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ :=
6429  (PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_iff_two_prime_reciprocal_excludes
6430    hlocal).trans
6431    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_iff_witness
6432
6433theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_not_mixed
6434    {χ : RatioOrbit → RatioOrbit}
6435    (hmix : ¬ PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed χ) :
6436    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ := by
6437  intro htwoRec hwitness
6438  exact hmix ⟨htwoRec, hwitness⟩
6439
6440theorem PRCCharacter_not_mixed_of_two_prime_reciprocal_excludes_prime_identity_witness
6441    {χ : RatioOrbit → RatioOrbit}
6442    (hexcl : PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ) :
6443    ¬ PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed χ := by
6444  intro hmix
6445  exact hexcl hmix.1 hmix.2
6446
6447theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_iff_not_mixed :
6448    {χ : RatioOrbit → RatioOrbit} →
6449    (PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ ↔
6450      ¬ PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed χ) := by
6451  intro χ
6452  exact
6453    ⟨PRCCharacter_not_mixed_of_two_prime_reciprocal_excludes_prime_identity_witness,
6454      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_not_mixed⟩
6455
6456theorem PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed_of_mixed
6457    {χ : RatioOrbit → RatioOrbit}
6458    (hmix : PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed χ) :
6459    PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed χ := by
6460  rcases hmix with ⟨htwoRec, p, hp, hpId⟩
6461  refine ⟨htwoRec, ?_⟩
6462  by_cases hptwo : p = twoOrbit
6463  · exfalso
6464    have hdir : primeDirection p hp = twoPrimeDirection := by
6465      subst hptwo
6466      rfl
6467    rw [hdir] at hpId
6468    have hself :
6469        RatioOrbit.crossEq twoPrimeDirection
6470          (RatioOrbit.recip twoPrimeDirection) :=
6471      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) htwoRec
6472    exact primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself
6473  · exact ⟨p, hp, hptwo, hpId⟩
6474
6475theorem PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed_of_non_two_mixed
6476    {χ : RatioOrbit → RatioOrbit}
6477    (hmix : PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed χ) :
6478    PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed χ := by
6479  rcases hmix with ⟨htwoRec, p, hp, _hpne, hpId⟩
6480  exact ⟨htwoRec, p, hp, hpId⟩
6481
6482theorem PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed_iff_non_two :
6483    {χ : RatioOrbit → RatioOrbit} →
6484    (PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed χ ↔
6485      PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed χ) := by
6486  intro χ
6487  exact
6488    ⟨PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed_of_mixed,
6489      PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed_of_non_two_mixed⟩
6490
6491theorem PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_of_non_two_mixed
6492    {χ : RatioOrbit → RatioOrbit}
6493    (hχ : PRCRatioCharacter χ)
6494    (hmix : PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed χ) :
6495    PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect χ := by
6496  rcases hmix with ⟨htwoRec, p, hp, hpne, hpId⟩
6497  have hmulχ :
6498      RatioOrbit.crossEq
6499        (χ (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
6500        (RatioOrbit.mul (χ twoPrimeDirection) (χ (primeDirection p hp))) :=
6501    hχ.multiplicative twoPrimeDirection (primeDirection p hp)
6502  have hmulTarget :
6503      RatioOrbit.crossEq
6504        (RatioOrbit.mul (χ twoPrimeDirection) (χ (primeDirection p hp)))
6505        (RatioOrbit.mul
6506          (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp)) :=
6507    ratioOrbit_mul_congr htwoRec hpId
6508  exact ⟨htwoRec, p, hp, hpne, hpId,
6509    RatioOrbit.crossEq_trans hmulχ hmulTarget⟩
6510
6511theorem PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed_of_composite_defect
6512    {χ : RatioOrbit → RatioOrbit}
6513    (hdefect :
6514      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect χ) :
6515    PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed χ := by
6516  rcases hdefect with ⟨htwoRec, p, hp, hpne, hpId, _hprod⟩
6517  exact ⟨htwoRec, p, hp, hpne, hpId⟩
6518
6519theorem PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed_iff_composite_defect_of_character
6520    {χ : RatioOrbit → RatioOrbit} (hχ : PRCRatioCharacter χ) :
6521    PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed χ ↔
6522      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect χ :=
6523  ⟨PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_of_non_two_mixed hχ,
6524    PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed_of_composite_defect⟩
6525
6526theorem two_prime_composite_mixed_image_jcost_mismatch
6527    (p : DistinctionNat) (hp : DistinctionNat.primeOrbit p) :
6528    ¬ RatioOrbit.crossEq
6529      (onRatioOrbit
6530        (RatioOrbit.mul
6531          (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp)))
6532      (onRatioOrbit
6533        (RatioOrbit.mul twoPrimeDirection (primeDirection p hp))) := by
6534  intro hcost
6535  have hpNat0 : p.toNat ≠ 0 := by
6536    intro hzero
6537    apply hp.1
6538    apply DistinctionNat.toNat_inj
6539    rw [hzero, DistinctionNat.toNat_zero]
6540  have hpNatQ0 : (p.toNat : ℚ) ≠ 0 := by
6541    exact_mod_cast hpNat0
6542  rw [RatioOrbit.crossEq_iff_toRat_eq, onRatioOrbit_toRat,
6543    onRatioOrbit_toRat, RatioOrbit.mul_toRat, RatioOrbit.mul_toRat,
6544    RatioOrbit.recip_toRat, twoPrimeDirection_toRat, primeDirection_toRat] at hcost
6545  field_simp [hpNatQ0] at hcost
6546  ring_nf at hcost
6547  have hsqQ : (p.toNat : ℚ) ^ 2 = 1 := by
6548    nlinarith
6549  have hsqNat : p.toNat ^ 2 = 1 := by
6550    exact_mod_cast hsqQ
6551  rw [pow_two] at hsqNat
6552  have hpOne : p.toNat = 1 := by
6553    have hle : p.toNat ≤ 1 := by
6554      by_contra hnot
6555      have hge : 2 ≤ p.toNat := by omega
6556      have hprodge : 2 ≤ p.toNat * p.toNat := by
6557        calc
6558          2 ≤ 2 * 2 := by norm_num
6559          _ ≤ p.toNat * p.toNat := Nat.mul_le_mul hge hge
6560      omega
6561    omega
6562  exact hp.2.1 ((DistinctionNat.unit_iff_toNat_eq_one p).mpr hpOne)
6563
6564theorem PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect_of_composite_defect
6565    {χ : RatioOrbit → RatioOrbit}
6566    (hdefect :
6567      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect χ) :
6568    PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect χ := by
6569  rcases hdefect with ⟨htwoRec, p, hp, hpne, hpId, hprod⟩
6570  have hcostImage :
6571      RatioOrbit.crossEq
6572        (costFromCharacter χ
6573          (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
6574        (onRatioOrbit
6575          (RatioOrbit.mul
6576            (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp))) :=
6577    onRatioOrbit_congr hprod
6578  refine ⟨htwoRec, p, hp, hpne, hpId, hprod, ?_⟩
6579  intro hcost
6580  exact
6581    two_prime_composite_mixed_image_jcost_mismatch p hp
6582      (RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hcostImage) hcost)
6583
6584theorem PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_of_cost_defect
6585    {χ : RatioOrbit → RatioOrbit}
6586    (hdefect :
6587      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect χ) :
6588    PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect χ := by
6589  rcases hdefect with ⟨htwoRec, p, hp, hpne, hpId, hprod, _hcost⟩
6590  exact ⟨htwoRec, p, hp, hpne, hpId, hprod⟩
6591
6592theorem PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_iff_cost_defect :
6593    {χ : RatioOrbit → RatioOrbit} →
6594    (PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect χ ↔
6595      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect χ) := by
6596  intro χ
6597  exact
6598    ⟨PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect_of_composite_defect,
6599      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_of_cost_defect⟩
6600
6601theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_two_prime_reciprocal_forces
6602    {χ : RatioOrbit → RatioOrbit}
6603    (hforces : PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ) :
6604    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ := by
6605  intro htwoRec p hp hpId
6606  have hpRec := hforces htwoRec p hp
6607  have hself :
6608      RatioOrbit.crossEq (primeDirection p hp)
6609        (RatioOrbit.recip (primeDirection p hp)) :=
6610    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6611  exact primeDirection_not_crossEq_recip p hp hself
6612
6613theorem PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_local_excludes_prime_identity
6614    {χ : RatioOrbit → RatioOrbit}
6615    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6616    (hexcl : PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ) :
6617    PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ := by
6618  intro htwoRec p hp
6619  rcases hlocal p hp with hpId | hpRec
6620  · exact False.elim ((hexcl htwoRec p hp) hpId)
6621  · exact hpRec
6622
6623theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_iff_two_prime_reciprocal_forces
6624    {χ : RatioOrbit → RatioOrbit}
6625    (hlocal : PRCCharacterPrimeLocalOrientation χ) :
6626    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ ↔
6627      PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ :=
6628  ⟨PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_local_excludes_prime_identity
6629      hlocal,
6630    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_two_prime_reciprocal_forces⟩
6631
6632theorem PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_trace_connected
6633    {χ : RatioOrbit → RatioOrbit}
6634    (htrace : PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ) :
6635    PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ := by
6636  intro htwoRec p hp
6637  exact htrace p hp
6638    (PRCPrimeAxisTraceConnected_proved twoOrbit twoOrbit_primeOrbit p hp)
6639    htwoRec
6640
6641theorem PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_of_forces
6642    {χ : RatioOrbit → RatioOrbit}
6643    (hforces : PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ) :
6644    PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ := by
6645  intro p hp _hconn htwoRec
6646  exact hforces htwoRec p hp
6647
6648theorem PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_iff_forces
6649    {χ : RatioOrbit → RatioOrbit} :
6650    PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ ↔
6651      PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ :=
6652  ⟨PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_trace_connected,
6653    PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_of_forces⟩
6654
6655theorem PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_of_reciprocal_twist_identity
6656    {χ : RatioOrbit → RatioOrbit}
6657    (htwist :
6658      PRCCharacterTwoPrimeIdentityRespectsTraceConnected
6659        (PRCCharacterReciprocalTwist χ)) :
6660    PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ := by
6661  intro p hp hconn htwoRec
6662  have htwistTwoId :
6663      RatioOrbit.crossEq
6664          (PRCCharacterReciprocalTwist χ twoPrimeDirection)
6665          twoPrimeDirection :=
6666    (PRCCharacterReciprocalTwist_two_identity_iff_reciprocal χ).mpr htwoRec
6667  have htwistPId := htwist p hp hconn htwistTwoId
6668  exact (PRCCharacterReciprocalTwist_prime_identity_iff_reciprocal
6669    χ p hp).mp htwistPId
6670
6671theorem PRCCharacterTwoPrimeIdentityRespectsTraceConnected_of_reciprocal_twist_reciprocal
6672    {χ : RatioOrbit → RatioOrbit}
6673    (htwist :
6674      PRCCharacterTwoPrimeReciprocalRespectsTraceConnected
6675        (PRCCharacterReciprocalTwist χ)) :
6676    PRCCharacterTwoPrimeIdentityRespectsTraceConnected χ := by
6677  intro p hp hconn htwoId
6678  have htwistTwoRec :
6679      RatioOrbit.crossEq
6680          (PRCCharacterReciprocalTwist χ twoPrimeDirection)
6681          (RatioOrbit.recip twoPrimeDirection) := by
6682    simpa [PRCCharacterReciprocalTwist] using
6683      (ratioOrbit_recip_congr htwoId)
6684  have htwistPRec := htwist p hp hconn htwistTwoRec
6685  have hpToRecipRecip :
6686      RatioOrbit.crossEq (χ (primeDirection p hp))
6687        (RatioOrbit.recip (RatioOrbit.recip (primeDirection p hp))) :=
6688    (ratioOrbit_recip_left_crossEq_iff
6689      (χ (primeDirection p hp))
6690      (RatioOrbit.recip (primeDirection p hp))).mp htwistPRec
6691  exact RatioOrbit.crossEq_trans hpToRecipRecip
6692    (ratioOrbit_recip_recip_crossEq_self (primeDirection p hp))
6693
6694theorem PRCCharacterTwoPrimeIdentityRespectsTraceConnected_of_prime_identity_trace_connected
6695    {χ : RatioOrbit → RatioOrbit}
6696    (htrace : PRCCharacterPrimeIdentityRespectsTraceConnected χ) :
6697    PRCCharacterTwoPrimeIdentityRespectsTraceConnected χ := by
6698  intro p hp hconn htwoId
6699  exact htrace twoOrbit twoOrbit_primeOrbit p hp hconn htwoId
6700
6701theorem PRCCharacterPrimeIdentityRespectsTraceConnected_of_two_prime_identity_and_forces_two
6702    {χ : RatioOrbit → RatioOrbit}
6703    (htwo : PRCCharacterTwoPrimeIdentityRespectsTraceConnected χ)
6704    (hforces : PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ) :
6705    PRCCharacterPrimeIdentityRespectsTraceConnected χ := by
6706  intro p hp r hr _hconn hpId
6707  have htwoId := hforces p hp hpId
6708  exact htwo r hr
6709    (PRCPrimeAxisTraceConnected_proved twoOrbit twoOrbit_primeOrbit r hr)
6710    htwoId
6711
6712theorem PRCCharacterNoMixedPrimeWitnesses_of_coherent_prime_orientation
6713    {χ : RatioOrbit → RatioOrbit}
6714    (hcoh : PRCCharacterPrimeOrientationCoherent χ) :
6715    PRCCharacterNoMixedPrimeWitnesses χ := by
6716  rintro ⟨hid, hrec⟩
6717  rcases hid with ⟨p, hp, hpId⟩
6718  rcases hrec with ⟨r, hr, hrRec⟩
6719  rcases hcoh with hallId | hallRec
6720  · have hrId := hallId r hr
6721    have hself :
6722        RatioOrbit.crossEq (primeDirection r hr)
6723          (RatioOrbit.recip (primeDirection r hr)) :=
6724      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
6725    exact primeDirection_not_crossEq_recip r hr hself
6726  · have hpRec := hallRec p hp
6727    have hself :
6728        RatioOrbit.crossEq (primeDirection p hp)
6729          (RatioOrbit.recip (primeDirection p hp)) :=
6730      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6731    exact primeDirection_not_crossEq_recip p hp hself
6732
6733theorem PRCCharacterPrimeIdentityTraceCoherent_of_local_no_mixed_prime_orientation
6734    {χ : RatioOrbit → RatioOrbit}
6735    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6736    (hnomix : PRCCharacterNoMixedPrimeOrientation χ) :
6737    PRCCharacterPrimeIdentityTraceCoherent χ := by
6738  intro p hp r hr hpId
6739  rcases hlocal r hr with hrId | hrRec
6740  · exact hrId
6741  · exact False.elim (hnomix p hp r hr hpId hrRec)
6742
6743theorem PRCCharacterNoMixedPrimeOrientation_of_branch_uniform
6744    {χ : RatioOrbit → RatioOrbit}
6745    (huniform : PRCCharacterPrimeIdentityBranchUniform χ) :
6746    PRCCharacterNoMixedPrimeOrientation χ := by
6747  intro p hp r hr hpId hrRec
6748  have hrId := huniform p hp r hr hpId
6749  have hself :
6750      RatioOrbit.crossEq
6751        (primeDirection r hr)
6752        (RatioOrbit.recip (primeDirection r hr)) :=
6753    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
6754  exact primeDirection_not_crossEq_recip r hr hself
6755
6756theorem PRCCharacterPrimeIdentityBranchUniform_of_local_no_mixed_prime_orientation
6757    {χ : RatioOrbit → RatioOrbit}
6758    (hlocal : PRCCharacterPrimeLocalOrientation χ)
6759    (hnomix : PRCCharacterNoMixedPrimeOrientation χ) :
6760    PRCCharacterPrimeIdentityBranchUniform χ := by
6761  intro p hp r hr hpId
6762  rcases hlocal r hr with hrId | hrRec
6763  · exact hrId
6764  · exact False.elim (hnomix p hp r hr hpId hrRec)
6765
6766theorem PRCCharacterNoMixedPrimeWitnesses_of_nonunit_no_mixed_witnesses
6767    {χ : RatioOrbit → RatioOrbit}
6768    (hnomix : PRCCharacterNonunitNoMixedWitnesses χ) :
6769    PRCCharacterNoMixedPrimeWitnesses χ := by
6770  rintro ⟨hid, hrec⟩
6771  rcases hid with ⟨p, hp, hpId⟩
6772  rcases hrec with ⟨r, hr, hrRec⟩
6773  have hpIdNonunit : PRCCharacterOrbitDirectionIdentity χ p hp.1 := by
6774    simpa [PRCCharacterOrbitDirectionIdentity, primeDirection] using hpId
6775  have hrRecNonunit : PRCCharacterOrbitDirectionReciprocal χ r hr.1 := by
6776    simpa [PRCCharacterOrbitDirectionReciprocal, primeDirection] using hrRec
6777  exact hnomix ⟨⟨p, hp.1, hp.2.1, hpIdNonunit⟩,
6778    ⟨r, hr.1, hr.2.1, hrRecNonunit⟩⟩
6779
6780theorem PRCCharacterPrimeWitnessesControlNonunitWitnesses_of_mixed_reflects
6781    {χ : RatioOrbit → RatioOrbit}
6782    (hreflect : PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses χ) :
6783    PRCCharacterPrimeWitnessesControlNonunitWitnesses χ := by
6784  intro hprimeNoMix hnonunitMixed
6785  exact hprimeNoMix (hreflect hnonunitMixed)
6786
6787theorem PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses_of_prime_control
6788    {χ : RatioOrbit → RatioOrbit}
6789    (hcontrol : PRCCharacterPrimeWitnessesControlNonunitWitnesses χ) :
6790    PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses χ := by
6791  intro hnonunitMixed
6792  by_contra hnoPrimeMixed
6793  exact (hcontrol hnoPrimeMixed) hnonunitMixed
6794
6795theorem PRCCharacterPrimeWitnessesControlNonunitWitnesses_iff_mixed_reflects
6796    {χ : RatioOrbit → RatioOrbit} :
6797    PRCCharacterPrimeWitnessesControlNonunitWitnesses χ ↔
6798      PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses χ :=
6799  ⟨PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses_of_prime_control,
6800    PRCCharacterPrimeWitnessesControlNonunitWitnesses_of_mixed_reflects⟩
6801
6802theorem PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit_of_reflects
6803    {χ : RatioOrbit → RatioOrbit}
6804    (hreflect : PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses χ) :
6805    PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit χ := by
6806  constructor
6807  · intro hmixed
6808    exact (hreflect hmixed).1
6809  · intro hmixed
6810    exact (hreflect hmixed).2
6811
6812theorem PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses_of_split
6813    {χ : RatioOrbit → RatioOrbit}
6814    (hsplit : PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit χ) :
6815    PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses χ := by
6816  intro hmixed
6817  exact ⟨hsplit.1 hmixed, hsplit.2 hmixed⟩
6818
6819theorem PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses_iff_split
6820    {χ : RatioOrbit → RatioOrbit} :
6821    PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses χ ↔
6822      PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit χ :=
6823  ⟨PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit_of_reflects,
6824    PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses_of_split⟩
6825
6826theorem PRCCharacterNonunitIdentityWitnessGlobalizes_of_local_excludes
6827    {χ : RatioOrbit → RatioOrbit}
6828    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
6829    (hexcl : PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ) :
6830    PRCCharacterNonunitIdentityWitnessGlobalizes χ := by
6831  intro hwitness r hr hrUnit
6832  rcases hlocal r hr hrUnit with hrId | hrRec
6833  · exact hrId
6834  · exact False.elim (hexcl hwitness r hr hrUnit hrRec)
6835
6836theorem PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_globalizes
6837    {χ : RatioOrbit → RatioOrbit}
6838    (hwitness : PRCCharacterNonunitIdentityWitnessGlobalizes χ) :
6839    PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ := by
6840  intro hId r hr hrUnit hrRec
6841  have hrId := hwitness hId r hr hrUnit
6842  have hself :
6843      RatioOrbit.crossEq (orbitDirection r hr)
6844        (RatioOrbit.recip (orbitDirection r hr)) :=
6845    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
6846  exact orbitDirection_nonunit_not_crossEq_recip r hr hrUnit hself
6847
6848theorem PRCCharacterNonunitOrbitOrientationCoherent_of_local_identity_witness_globalizes
6849    {χ : RatioOrbit → RatioOrbit}
6850    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
6851    (hwitness : PRCCharacterNonunitIdentityWitnessGlobalizes χ) :
6852    PRCCharacterNonunitOrbitOrientationCoherent χ := by
6853  by_cases hId :
6854      ∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
6855        ∃ hunit : ¬ DistinctionNat.unit p,
6856          PRCCharacterOrbitDirectionIdentity χ p hp
6857  · exact Or.inl (hwitness hId)
6858  · exact Or.inr (by
6859      intro q hq hqUnit
6860      rcases hlocal q hq hqUnit with hqId | hqRec
6861      · exact False.elim (hId ⟨q, hq, hqUnit, hqId⟩)
6862      · exact hqRec)
6863
6864theorem PRCCharacterNonunitIdentityWitnessGlobalizes_of_coherent
6865    {χ : RatioOrbit → RatioOrbit}
6866    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
6867    PRCCharacterNonunitIdentityWitnessGlobalizes χ :=
6868  PRCCharacterNonunitIdentityWitnessGlobalizes_of_branch_transport
6869    (PRCCharacterNonunitIdentityBranchTransport_of_coherent hcoh)
6870
6871theorem PRCCharacterNonunitReciprocalBranchTransport_of_coherent
6872    {χ : RatioOrbit → RatioOrbit}
6873    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
6874    PRCCharacterNonunitReciprocalBranchTransport χ := by
6875  intro p hp hpUnit hpRec r hr hrUnit
6876  rcases hcoh with hallId | hallRec
6877  · have hpId := hallId p hp hpUnit
6878    have hself :
6879        RatioOrbit.crossEq (orbitDirection p hp)
6880          (RatioOrbit.recip (orbitDirection p hp)) :=
6881      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6882    exact False.elim
6883      (orbitDirection_nonunit_not_crossEq_recip p hp hpUnit hself)
6884  · exact hallRec r hr hrUnit
6885
6886theorem PRCCharacterNonunitBranchTransportPair_of_coherent
6887    {χ : RatioOrbit → RatioOrbit}
6888    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
6889    PRCCharacterNonunitBranchTransportPair χ :=
6890  ⟨PRCCharacterNonunitIdentityBranchTransport_of_coherent hcoh,
6891    PRCCharacterNonunitReciprocalBranchTransport_of_coherent hcoh⟩
6892
6893theorem PRCCharacterNonunitIdentityBranchTransport_of_comparable_trace
6894    {χ : RatioOrbit → RatioOrbit}
6895    (hcomp : PRCCharacterNonunitIdentityRespectsComparableTrace χ) :
6896    PRCCharacterNonunitIdentityBranchTransport χ := by
6897  intro p hp hpUnit hpId r hr hrUnit
6898  exact hcomp p hp hpUnit r hr hrUnit
6899    (orbitPositionTrace_comparable p r) hpId
6900
6901theorem PRCCharacterNonunitIdentityRespectsComparableTrace_of_branch_transport
6902    {χ : RatioOrbit → RatioOrbit}
6903    (htransport : PRCCharacterNonunitIdentityBranchTransport χ) :
6904    PRCCharacterNonunitIdentityRespectsComparableTrace χ := by
6905  intro p hp hpUnit r hr hrUnit _hcomp hpId
6906  exact htransport p hp hpUnit hpId r hr hrUnit
6907
6908theorem PRCCharacterNonunitIdentityRespectsComparableTrace_iff_branch_transport
6909    {χ : RatioOrbit → RatioOrbit} :
6910    PRCCharacterNonunitIdentityRespectsComparableTrace χ ↔
6911      PRCCharacterNonunitIdentityBranchTransport χ :=
6912  ⟨PRCCharacterNonunitIdentityBranchTransport_of_comparable_trace,
6913    PRCCharacterNonunitIdentityRespectsComparableTrace_of_branch_transport⟩
6914
6915/-- Two-branch version of the global branch-coupling law: any nonunit
6916identity-oriented direction transports identity to every nonunit direction, and
6917any reciprocal-oriented direction transports reciprocal to every nonunit
6918direction. -/
6919def PRCCharacterNonunitBranchAgreement
6920    (χ : RatioOrbit → RatioOrbit) : Prop :=
6921  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
6922    ¬ DistinctionNat.unit p →
6923      ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
6924        ¬ DistinctionNat.unit r →
6925          (PRCCharacterOrbitDirectionIdentity χ p hp →
6926            PRCCharacterOrbitDirectionIdentity χ r hr) ∧
6927          (PRCCharacterOrbitDirectionReciprocal χ p hp →
6928            PRCCharacterOrbitDirectionReciprocal χ r hr)
6929
6930theorem PRCCharacterNonunitBranchAgreement_of_coherent
6931    {χ : RatioOrbit → RatioOrbit}
6932    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
6933    PRCCharacterNonunitBranchAgreement χ := by
6934  intro p hp hpUnit r hr hrUnit
6935  rcases hcoh with hallId | hallRec
6936  · constructor
6937    · intro _hpId
6938      exact hallId r hr hrUnit
6939    · intro hpRec
6940      have hpId := hallId p hp hpUnit
6941      have hself :
6942          RatioOrbit.crossEq (orbitDirection p hp)
6943            (RatioOrbit.recip (orbitDirection p hp)) :=
6944        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6945      exact False.elim
6946        (orbitDirection_nonunit_not_crossEq_recip p hp hpUnit hself)
6947  · constructor
6948    · intro hpId
6949      have hpRec := hallRec p hp hpUnit
6950      have hself :
6951          RatioOrbit.crossEq (orbitDirection p hp)
6952            (RatioOrbit.recip (orbitDirection p hp)) :=
6953        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
6954      exact False.elim
6955        (orbitDirection_nonunit_not_crossEq_recip p hp hpUnit hself)
6956    · intro _hpRec
6957      exact hallRec r hr hrUnit
6958
6959theorem PRCCharacterNonunitBranchAgreement_of_transport_pair
6960    {χ : RatioOrbit → RatioOrbit}
6961    (hpair : PRCCharacterNonunitBranchTransportPair χ) :
6962    PRCCharacterNonunitBranchAgreement χ := by
6963  intro p hp hpUnit r hr hrUnit
6964  exact ⟨(by
6965      intro hpId
6966      exact hpair.1 p hp hpUnit hpId r hr hrUnit),
6967    (by
6968      intro hpRec
6969      exact hpair.2 p hp hpUnit hpRec r hr hrUnit)⟩
6970
6971theorem PRCCharacterNonunitIdentityBranchTransport_of_branch_agreement
6972    {χ : RatioOrbit → RatioOrbit}
6973    (hagree : PRCCharacterNonunitBranchAgreement χ) :
6974    PRCCharacterNonunitIdentityBranchTransport χ := by
6975  intro p hp hpUnit hpId r hr hrUnit
6976  exact (hagree p hp hpUnit r hr hrUnit).1 hpId
6977
6978theorem PRCCharacterNonunitReciprocalBranchTransport_of_branch_agreement
6979    {χ : RatioOrbit → RatioOrbit}
6980    (hagree : PRCCharacterNonunitBranchAgreement χ) :
6981    PRCCharacterNonunitReciprocalBranchTransport χ := by
6982  intro p hp hpUnit hpRec r hr hrUnit
6983  exact (hagree p hp hpUnit r hr hrUnit).2 hpRec
6984
6985theorem PRCCharacterNonunitBranchTransportPair_of_branch_agreement
6986    {χ : RatioOrbit → RatioOrbit}
6987    (hagree : PRCCharacterNonunitBranchAgreement χ) :
6988    PRCCharacterNonunitBranchTransportPair χ :=
6989  ⟨PRCCharacterNonunitIdentityBranchTransport_of_branch_agreement hagree,
6990    PRCCharacterNonunitReciprocalBranchTransport_of_branch_agreement hagree⟩
6991
6992theorem PRCCharacterNonunitBranchAgreement_iff_transport_pair
6993    {χ : RatioOrbit → RatioOrbit} :
6994    PRCCharacterNonunitBranchAgreement χ ↔
6995      PRCCharacterNonunitBranchTransportPair χ :=
6996  ⟨PRCCharacterNonunitBranchTransportPair_of_branch_agreement,
6997    PRCCharacterNonunitBranchAgreement_of_transport_pair⟩
6998
6999theorem PRCCharacterNonunitBranchAgreement_of_local_identity_branch_transport
7000    {χ : RatioOrbit → RatioOrbit}
7001    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7002    (htransport : PRCCharacterNonunitIdentityBranchTransport χ) :
7003    PRCCharacterNonunitBranchAgreement χ := by
7004  intro p hp hpUnit r hr hrUnit
7005  constructor
7006  · intro hpId
7007    exact htransport p hp hpUnit hpId r hr hrUnit
7008  · intro hpRec
7009    rcases hlocal r hr hrUnit with hrId | hrRec
7010    · have hpId := htransport r hr hrUnit hrId p hp hpUnit
7011      have hself :
7012          RatioOrbit.crossEq (orbitDirection p hp)
7013            (RatioOrbit.recip (orbitDirection p hp)) :=
7014        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
7015      exact False.elim
7016        (orbitDirection_nonunit_not_crossEq_recip p hp hpUnit hself)
7017    · exact hrRec
7018
7019theorem PRCCharacterNonunitOrbitOrientationCoherent_of_local_branch_agreement
7020    {χ : RatioOrbit → RatioOrbit}
7021    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7022    (hagree : PRCCharacterNonunitBranchAgreement χ) :
7023    PRCCharacterNonunitOrbitOrientationCoherent χ := by
7024  by_cases hId :
7025      ∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
7026        ∃ hunit : ¬ DistinctionNat.unit p,
7027          PRCCharacterOrbitDirectionIdentity χ p hp
7028  · rcases hId with ⟨p0, hp0, hunit0, hp0Id⟩
7029    exact Or.inl (by
7030      intro q hq hqUnit
7031      exact (hagree p0 hp0 hunit0 q hq hqUnit).1 hp0Id)
7032  · exact Or.inr (by
7033      intro q hq hqUnit
7034      rcases hlocal q hq hqUnit with hqId | hqRec
7035      · exact False.elim (hId ⟨q, hq, hqUnit, hqId⟩)
7036      · exact hqRec)
7037
7038theorem PRCCharacterNonunitBranchAgreement_iff_coherent_of_local
7039    {χ : RatioOrbit → RatioOrbit}
7040    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ) :
7041    PRCCharacterNonunitBranchAgreement χ ↔
7042      PRCCharacterNonunitOrbitOrientationCoherent χ :=
7043  ⟨PRCCharacterNonunitOrbitOrientationCoherent_of_local_branch_agreement
7044      hlocal,
7045    PRCCharacterNonunitBranchAgreement_of_coherent⟩
7046
7047theorem PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_no_mixed
7048    {χ : RatioOrbit → RatioOrbit}
7049    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7050    (hnomix : PRCCharacterNoMixedNonunitOrbitOrientation χ) :
7051    PRCCharacterNonunitOrbitOrientationCoherent χ := by
7052  by_cases hId :
7053      ∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
7054        ∃ hunit : ¬ DistinctionNat.unit p,
7055          PRCCharacterOrbitDirectionIdentity χ p hp
7056  · rcases hId with ⟨p0, hp0, hunit0, hp0Id⟩
7057    exact Or.inl (by
7058      intro q hq hqUnit
7059      rcases hlocal q hq hqUnit with hqId | hqRec
7060      · exact hqId
7061      · exact False.elim (hnomix p0 hp0 hunit0 q hq hqUnit hp0Id hqRec))
7062  · exact Or.inr (by
7063      intro q hq hqUnit
7064      rcases hlocal q hq hqUnit with hqId | hqRec
7065      · exact False.elim (hId ⟨q, hq, hqUnit, hqId⟩)
7066      · exact hqRec)
7067
7068theorem PRCCharacterNonunitOrbitOrientationCoherent_of_local_identity_branch_transport
7069    {χ : RatioOrbit → RatioOrbit}
7070    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7071    (htransport : PRCCharacterNonunitIdentityBranchTransport χ) :
7072    PRCCharacterNonunitOrbitOrientationCoherent χ :=
7073  PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_no_mixed hlocal
7074    (PRCCharacterNoMixedNonunitOrbitOrientation_of_identity_branch_transport
7075      htransport)
7076
7077theorem PRCCharacterOrbitProductNoMixedOrientation_of_nonunit_coherent
7078    {χ : RatioOrbit → RatioOrbit}
7079    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
7080    PRCCharacterOrbitProductNoMixedOrientation χ := by
7081  intro a b p ha hb haUnit hbUnit _hp _hpUnit _hmul
7082  rcases hcoh with hallId | hallRec
7083  · constructor
7084    · rintro ⟨_haId, hbRec⟩
7085      have hbId := hallId b hb hbUnit
7086      have hself :
7087          RatioOrbit.crossEq (orbitDirection b hb)
7088            (RatioOrbit.recip (orbitDirection b hb)) :=
7089        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hbId) hbRec
7090      exact orbitDirection_nonunit_not_crossEq_recip b hb hbUnit hself
7091    · rintro ⟨haRec, _hbId⟩
7092      have haId := hallId a ha haUnit
7093      have hself :
7094          RatioOrbit.crossEq (orbitDirection a ha)
7095            (RatioOrbit.recip (orbitDirection a ha)) :=
7096        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm haId) haRec
7097      exact orbitDirection_nonunit_not_crossEq_recip a ha haUnit hself
7098  · constructor
7099    · rintro ⟨haId, _hbRec⟩
7100      have haRec := hallRec a ha haUnit
7101      have hself :
7102          RatioOrbit.crossEq (orbitDirection a ha)
7103            (RatioOrbit.recip (orbitDirection a ha)) :=
7104        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm haId) haRec
7105      exact orbitDirection_nonunit_not_crossEq_recip a ha haUnit hself
7106    · rintro ⟨_haRec, hbId⟩
7107      have hbRec := hallRec b hb hbUnit
7108      have hself :
7109          RatioOrbit.crossEq (orbitDirection b hb)
7110            (RatioOrbit.recip (orbitDirection b hb)) :=
7111        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hbId) hbRec
7112      exact orbitDirection_nonunit_not_crossEq_recip b hb hbUnit hself
7113
7114theorem PRCCharacterOrbitProductIdentityIdentity
7115    {χ : RatioOrbit → RatioOrbit}
7116    (hχ : PRCRatioCharacter χ)
7117    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7118    {a b p : DistinctionNat}
7119    (ha : a ≠ DistinctionNat.zero) (hb : b ≠ DistinctionNat.zero)
7120    (hp : p ≠ DistinctionNat.zero)
7121    (hmul : a * b = p)
7122    (haId : PRCCharacterOrbitDirectionIdentity χ a ha)
7123    (hbId : PRCCharacterOrbitDirectionIdentity χ b hb) :
7124    PRCCharacterOrbitDirectionIdentity χ p hp := by
7125  unfold PRCCharacterOrbitDirectionIdentity at *
7126  exact RatioOrbit.crossEq_trans
7127    (hcompat a b p ha hb hp hmul)
7128    (RatioOrbit.crossEq_trans
7129      (hχ.multiplicative (orbitDirection a ha) (orbitDirection b hb))
7130      (RatioOrbit.crossEq_trans
7131        (ratioOrbit_mul_congr haId hbId)
7132        (RatioOrbit.crossEq_symm
7133          (orbitDirection_mul_crossEq a b p ha hb hp hmul))))
7134
7135theorem PRCCharacterOrbitProductReciprocalReciprocal
7136    {χ : RatioOrbit → RatioOrbit}
7137    (hχ : PRCRatioCharacter χ)
7138    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7139    {a b p : DistinctionNat}
7140    (ha : a ≠ DistinctionNat.zero) (hb : b ≠ DistinctionNat.zero)
7141    (hp : p ≠ DistinctionNat.zero)
7142    (hmul : a * b = p)
7143    (haRec : PRCCharacterOrbitDirectionReciprocal χ a ha)
7144    (hbRec : PRCCharacterOrbitDirectionReciprocal χ b hb) :
7145    PRCCharacterOrbitDirectionReciprocal χ p hp := by
7146  unfold PRCCharacterOrbitDirectionReciprocal at *
7147  exact RatioOrbit.crossEq_trans
7148    (hcompat a b p ha hb hp hmul)
7149    (RatioOrbit.crossEq_trans
7150      (hχ.multiplicative (orbitDirection a ha) (orbitDirection b hb))
7151      (RatioOrbit.crossEq_trans
7152        (ratioOrbit_mul_congr haRec hbRec)
7153        (RatioOrbit.crossEq_trans
7154          (ratioOrbit_mul_recip_recip_crossEq_recip_mul
7155            (orbitDirection a ha) (orbitDirection b hb))
7156          (ratioOrbit_recip_congr
7157            (RatioOrbit.crossEq_symm
7158              (orbitDirection_mul_crossEq a b p ha hb hp hmul))))))
7159
7160theorem PRCCharacterNonunitOrbitAllIdentity_of_all_prime_identity
7161    {χ : RatioOrbit → RatioOrbit}
7162    (hχ : PRCRatioCharacter χ)
7163    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7164    (hprimeId : ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
7165      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) :
7166    ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
7167      ¬ DistinctionNat.unit p →
7168        PRCCharacterOrbitDirectionIdentity χ p hp := by
7169  intro p hp hunit
7170  let P : Nat → Prop := fun n =>
7171    ∀ q : DistinctionNat, q.toNat = n →
7172      (hq : q ≠ DistinctionNat.zero) →
7173        ¬ DistinctionNat.unit q →
7174          PRCCharacterOrbitDirectionIdentity χ q hq
7175  have hP : ∀ n : Nat, (∀ m : Nat, m < n → P m) → P n := by
7176    intro n ih q hqNat hq0 hqUnit
7177    by_cases hqPrime : DistinctionNat.primeOrbit q
7178    · simpa [PRCCharacterOrbitDirectionIdentity, primeDirection]
7179        using hprimeId q hqPrime
7180    · have hfac : DistinctionNat.nontrivialFactorization q := by
7181        by_contra hnotFac
7182        exact hqPrime ⟨hq0, hqUnit, hnotFac⟩
7183      rcases hfac with ⟨a, b, ha0, hb0, haUnit, hbUnit, hmul⟩
7184      have hmulNat : a.toNat * b.toNat = n := by
7185        have hnat := congrArg DistinctionNat.toNat hmul
7186        rw [DistinctionNat.toNat_mul, hqNat] at hnat
7187        exact hnat
7188      have haNat0 : a.toNat ≠ 0 := by
7189        intro hz
7190        apply ha0
7191        apply DistinctionNat.toNat_inj
7192        rw [hz, DistinctionNat.toNat_zero]
7193      have hbNat0 : b.toNat ≠ 0 := by
7194        intro hz
7195        apply hb0
7196        apply DistinctionNat.toNat_inj
7197        rw [hz, DistinctionNat.toNat_zero]
7198      have haNat1 : a.toNat ≠ 1 := by
7199        intro hone
7200        exact haUnit ((DistinctionNat.unit_iff_toNat_eq_one a).mpr hone)
7201      have hbNat1 : b.toNat ≠ 1 := by
7202        intro hone
7203        exact hbUnit ((DistinctionNat.unit_iff_toNat_eq_one b).mpr hone)
7204      have haPos : 0 < a.toNat := by omega
7205      have hbPos : 0 < b.toNat := by omega
7206      have haGtOne : 1 < a.toNat := by omega
7207      have hbGtOne : 1 < b.toNat := by omega
7208      have ha_lt : a.toNat < n := by
7209        calc
7210          a.toNat = a.toNat * 1 := by rw [Nat.mul_one]
7211          _ < a.toNat * b.toNat :=
7212            Nat.mul_lt_mul_of_pos_left hbGtOne haPos
7213          _ = n := hmulNat
7214      have hb_lt : b.toNat < n := by
7215        calc
7216          b.toNat = 1 * b.toNat := by rw [Nat.one_mul]
7217          _ < a.toNat * b.toNat :=
7218            Nat.mul_lt_mul_of_pos_right haGtOne hbPos
7219          _ = n := hmulNat
7220      have haId : PRCCharacterOrbitDirectionIdentity χ a ha0 :=
7221        ih a.toNat ha_lt a rfl ha0 haUnit
7222      have hbId : PRCCharacterOrbitDirectionIdentity χ b hb0 :=
7223        ih b.toNat hb_lt b rfl hb0 hbUnit
7224      exact PRCCharacterOrbitProductIdentityIdentity hχ hcompat
7225        ha0 hb0 hq0 hmul haId hbId
7226  have hmain : P p.toNat :=
7227    Nat.strong_induction_on (p := P) p.toNat hP
7228  exact hmain p rfl hp hunit
7229
7230theorem PRCCharacterNonunitOrbitAllReciprocal_of_all_prime_reciprocal
7231    {χ : RatioOrbit → RatioOrbit}
7232    (hχ : PRCRatioCharacter χ)
7233    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7234    (hprimeRec : ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
7235      RatioOrbit.crossEq (χ (primeDirection p hp))
7236        (RatioOrbit.recip (primeDirection p hp))) :
7237    ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
7238      ¬ DistinctionNat.unit p →
7239        PRCCharacterOrbitDirectionReciprocal χ p hp := by
7240  intro p hp hunit
7241  let P : Nat → Prop := fun n =>
7242    ∀ q : DistinctionNat, q.toNat = n →
7243      (hq : q ≠ DistinctionNat.zero) →
7244        ¬ DistinctionNat.unit q →
7245          PRCCharacterOrbitDirectionReciprocal χ q hq
7246  have hP : ∀ n : Nat, (∀ m : Nat, m < n → P m) → P n := by
7247    intro n ih q hqNat hq0 hqUnit
7248    by_cases hqPrime : DistinctionNat.primeOrbit q
7249    · simpa [PRCCharacterOrbitDirectionReciprocal, primeDirection]
7250        using hprimeRec q hqPrime
7251    · have hfac : DistinctionNat.nontrivialFactorization q := by
7252        by_contra hnotFac
7253        exact hqPrime ⟨hq0, hqUnit, hnotFac⟩
7254      rcases hfac with ⟨a, b, ha0, hb0, haUnit, hbUnit, hmul⟩
7255      have hmulNat : a.toNat * b.toNat = n := by
7256        have hnat := congrArg DistinctionNat.toNat hmul
7257        rw [DistinctionNat.toNat_mul, hqNat] at hnat
7258        exact hnat
7259      have haNat0 : a.toNat ≠ 0 := by
7260        intro hz
7261        apply ha0
7262        apply DistinctionNat.toNat_inj
7263        rw [hz, DistinctionNat.toNat_zero]
7264      have hbNat0 : b.toNat ≠ 0 := by
7265        intro hz
7266        apply hb0
7267        apply DistinctionNat.toNat_inj
7268        rw [hz, DistinctionNat.toNat_zero]
7269      have haNat1 : a.toNat ≠ 1 := by
7270        intro hone
7271        exact haUnit ((DistinctionNat.unit_iff_toNat_eq_one a).mpr hone)
7272      have hbNat1 : b.toNat ≠ 1 := by
7273        intro hone
7274        exact hbUnit ((DistinctionNat.unit_iff_toNat_eq_one b).mpr hone)
7275      have haPos : 0 < a.toNat := by omega
7276      have hbPos : 0 < b.toNat := by omega
7277      have haGtOne : 1 < a.toNat := by omega
7278      have hbGtOne : 1 < b.toNat := by omega
7279      have ha_lt : a.toNat < n := by
7280        calc
7281          a.toNat = a.toNat * 1 := by rw [Nat.mul_one]
7282          _ < a.toNat * b.toNat :=
7283            Nat.mul_lt_mul_of_pos_left hbGtOne haPos
7284          _ = n := hmulNat
7285      have hb_lt : b.toNat < n := by
7286        calc
7287          b.toNat = 1 * b.toNat := by rw [Nat.one_mul]
7288          _ < a.toNat * b.toNat :=
7289            Nat.mul_lt_mul_of_pos_right haGtOne hbPos
7290          _ = n := hmulNat
7291      have haRec : PRCCharacterOrbitDirectionReciprocal χ a ha0 :=
7292        ih a.toNat ha_lt a rfl ha0 haUnit
7293      have hbRec : PRCCharacterOrbitDirectionReciprocal χ b hb0 :=
7294        ih b.toNat hb_lt b rfl hb0 hbUnit
7295      exact PRCCharacterOrbitProductReciprocalReciprocal hχ hcompat
7296        ha0 hb0 hq0 hmul haRec hbRec
7297  have hmain : P p.toNat :=
7298    Nat.strong_induction_on (p := P) p.toNat hP
7299  exact hmain p rfl hp hunit
7300
7301theorem PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness_of_prime_local
7302    {χ : RatioOrbit → RatioOrbit}
7303    (hχ : PRCRatioCharacter χ)
7304    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7305    (hprimeLocal : PRCCharacterPrimeLocalOrientation χ) :
7306    PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness χ := by
7307  intro hmixed
7308  by_contra hnoPrimeId
7309  have hprimeRec :
7310      ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
7311        RatioOrbit.crossEq (χ (primeDirection p hp))
7312          (RatioOrbit.recip (primeDirection p hp)) := by
7313    intro p hp
7314    rcases hprimeLocal p hp with hpId | hpRec
7315    · exact False.elim (hnoPrimeId ⟨p, hp, hpId⟩)
7316    · exact hpRec
7317  rcases hmixed.1 with ⟨p, hp, hpUnit, hpId⟩
7318  have hpRec : PRCCharacterOrbitDirectionReciprocal χ p hp :=
7319    PRCCharacterNonunitOrbitAllReciprocal_of_all_prime_reciprocal
7320      hχ hcompat hprimeRec p hp hpUnit
7321  have hself :
7322      RatioOrbit.crossEq (orbitDirection p hp)
7323        (RatioOrbit.recip (orbitDirection p hp)) :=
7324    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
7325  exact orbitDirection_nonunit_not_crossEq_recip p hp hpUnit hself
7326
7327theorem PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness_of_prime_local
7328    {χ : RatioOrbit → RatioOrbit}
7329    (hχ : PRCRatioCharacter χ)
7330    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7331    (hprimeLocal : PRCCharacterPrimeLocalOrientation χ) :
7332    PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness χ := by
7333  intro hmixed
7334  by_contra hnoPrimeRec
7335  have hprimeId :
7336      ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
7337        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp) := by
7338    intro p hp
7339    rcases hprimeLocal p hp with hpId | hpRec
7340    · exact hpId
7341    · exact False.elim (hnoPrimeRec ⟨p, hp, hpRec⟩)
7342  rcases hmixed.2 with ⟨r, hr, hrUnit, hrRec⟩
7343  have hrId : PRCCharacterOrbitDirectionIdentity χ r hr :=
7344    PRCCharacterNonunitOrbitAllIdentity_of_all_prime_identity
7345      hχ hcompat hprimeId r hr hrUnit
7346  have hself :
7347      RatioOrbit.crossEq (orbitDirection r hr)
7348        (RatioOrbit.recip (orbitDirection r hr)) :=
7349    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
7350  exact orbitDirection_nonunit_not_crossEq_recip r hr hrUnit hself
7351
7352theorem PRCCharacterNonunitIdentityWitnessReflectsPrimeWitness_of_prime_local
7353    {χ : RatioOrbit → RatioOrbit}
7354    (hχ : PRCRatioCharacter χ)
7355    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7356    (hprimeLocal : PRCCharacterPrimeLocalOrientation χ)
7357    {p : DistinctionNat} {hp : p ≠ DistinctionNat.zero}
7358    (hpUnit : ¬ DistinctionNat.unit p)
7359    (hpId : PRCCharacterOrbitDirectionIdentity χ p hp) :
7360    ∃ q : DistinctionNat, ∃ hq : DistinctionNat.primeOrbit q,
7361      RatioOrbit.crossEq (χ (primeDirection q hq)) (primeDirection q hq) := by
7362  by_contra hnoPrimeId
7363  have hprimeRec :
7364      ∀ q : DistinctionNat, ∀ hq : DistinctionNat.primeOrbit q,
7365        RatioOrbit.crossEq (χ (primeDirection q hq))
7366          (RatioOrbit.recip (primeDirection q hq)) := by
7367    intro q hq
7368    rcases hprimeLocal q hq with hqId | hqRec
7369    · exact False.elim (hnoPrimeId ⟨q, hq, hqId⟩)
7370    · exact hqRec
7371  have hpRec : PRCCharacterOrbitDirectionReciprocal χ p hp :=
7372    PRCCharacterNonunitOrbitAllReciprocal_of_all_prime_reciprocal
7373      hχ hcompat hprimeRec p hp hpUnit
7374  have hself :
7375      RatioOrbit.crossEq (orbitDirection p hp)
7376        (RatioOrbit.recip (orbitDirection p hp)) :=
7377    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
7378  exact orbitDirection_nonunit_not_crossEq_recip p hp hpUnit hself
7379
7380theorem PRCCharacterPrimeIdentityWitnessGlobalizesNonunit_of_no_mixed_prime_witnesses
7381    {χ : RatioOrbit → RatioOrbit}
7382    (hχ : PRCRatioCharacter χ)
7383    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7384    (hprimeLocal : PRCCharacterPrimeLocalOrientation χ)
7385    (hnomix : PRCCharacterNoMixedPrimeWitnesses χ) :
7386    PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ := by
7387  intro p hp hpId r hr hrUnit
7388  have hprimeId :
7389      ∀ s : DistinctionNat, ∀ hs : DistinctionNat.primeOrbit s,
7390        RatioOrbit.crossEq (χ (primeDirection s hs)) (primeDirection s hs) := by
7391    intro s hs
7392    rcases hprimeLocal s hs with hsId | hsRec
7393    · exact hsId
7394    · exact False.elim (hnomix ⟨⟨p, hp, hpId⟩, ⟨s, hs, hsRec⟩⟩)
7395  exact PRCCharacterNonunitOrbitAllIdentity_of_all_prime_identity
7396    hχ hcompat hprimeId r hr hrUnit
7397
7398theorem PRCCharacterNoMixedPrimeWitnesses_of_prime_identity_witness_globalizes
7399    {χ : RatioOrbit → RatioOrbit}
7400    (hglobal : PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ) :
7401    PRCCharacterNoMixedPrimeWitnesses χ := by
7402  rintro ⟨hid, hrec⟩
7403  rcases hid with ⟨p, hp, hpId⟩
7404  rcases hrec with ⟨r, hr, hrRec⟩
7405  have hrIdOrbit :
7406      PRCCharacterOrbitDirectionIdentity χ r hr.1 :=
7407    hglobal p hp hpId r hr.1 hr.2.1
7408  have hrId :
7409      RatioOrbit.crossEq (χ (primeDirection r hr)) (primeDirection r hr) := by
7410    simpa [primeDirection, PRCCharacterOrbitDirectionIdentity] using hrIdOrbit
7411  have hself :
7412      RatioOrbit.crossEq (primeDirection r hr)
7413        (RatioOrbit.recip (primeDirection r hr)) :=
7414    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
7415  exact primeDirection_not_crossEq_recip r hr hself
7416
7417theorem PRCCharacterPrimeIdentityRespectsComparableTrace_of_nonunit_identity_comparable_trace
7418    {χ : RatioOrbit → RatioOrbit}
7419    (hcomp : PRCCharacterNonunitIdentityRespectsComparableTrace χ) :
7420    PRCCharacterPrimeIdentityRespectsComparableTrace χ := by
7421  intro p hp r hr htrace hpId
7422  exact hcomp p hp.1 hp.2.1 r hr.1 hr.2.1 htrace hpId
7423
7424theorem PRCCharacterNonunitIdentityRespectsComparableTrace_of_prime_comparable
7425    {χ : RatioOrbit → RatioOrbit}
7426    (hχ : PRCRatioCharacter χ)
7427    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7428    (hprimeLocal : PRCCharacterPrimeLocalOrientation χ)
7429    (hprimeComp : PRCCharacterPrimeIdentityRespectsComparableTrace χ) :
7430    PRCCharacterNonunitIdentityRespectsComparableTrace χ := by
7431  intro p hp hpUnit r hr hrUnit _htrace hpId
7432  rcases PRCCharacterNonunitIdentityWitnessReflectsPrimeWitness_of_prime_local
7433      hχ hcompat hprimeLocal hpUnit hpId with
7434    ⟨q, hq, hqId⟩
7435  have hprimeId :
7436      ∀ s : DistinctionNat, ∀ hs : DistinctionNat.primeOrbit s,
7437        RatioOrbit.crossEq (χ (primeDirection s hs)) (primeDirection s hs) := by
7438    intro s hs
7439    exact hprimeComp q hq s hs (orbitPositionTrace_comparable q s) hqId
7440  exact PRCCharacterNonunitOrbitAllIdentity_of_all_prime_identity
7441    hχ hcompat hprimeId r hr hrUnit
7442
7443theorem PRCCharacterOrbitProductLocalOrientationPropagates_of_display_compatible_nomix
7444    {χ : RatioOrbit → RatioOrbit}
7445    (hχ : PRCRatioCharacter χ)
7446    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7447    (hnomix : PRCCharacterOrbitProductNoMixedOrientation χ) :
7448    PRCCharacterOrbitProductLocalOrientationPropagates χ := by
7449  intro a b p ha hb haUnit hbUnit hp hpUnit hmul haLocal hbLocal
7450  rcases haLocal with haId | haRec
7451  · rcases hbLocal with hbId | hbRec
7452    · exact Or.inl
7453        (PRCCharacterOrbitProductIdentityIdentity hχ hcompat
7454          ha hb hp hmul haId hbId)
7455    · exact False.elim
7456        ((hnomix a b p ha hb haUnit hbUnit hp hpUnit hmul).1
7457          ⟨haId, hbRec⟩)
7458  · rcases hbLocal with hbId | hbRec
7459    · exact False.elim
7460        ((hnomix a b p ha hb haUnit hbUnit hp hpUnit hmul).2
7461          ⟨haRec, hbId⟩)
7462    · exact Or.inr
7463        (PRCCharacterOrbitProductReciprocalReciprocal hχ hcompat
7464          ha hb hp hmul haRec hbRec)
7465
7466theorem PRCCharacterNonunitOrbitLocalOrientation_of_prime_and_product_local
7467    {χ : RatioOrbit → RatioOrbit}
7468    (hprimeLocal : PRCCharacterPrimeLocalOrientation χ)
7469    (hprod : PRCCharacterOrbitProductLocalOrientationPropagates χ) :
7470    PRCCharacterNonunitOrbitLocalOrientation χ := by
7471  intro p hp hunit
7472  let P : Nat → Prop := fun n =>
7473    ∀ q : DistinctionNat, q.toNat = n →
7474      (hq : q ≠ DistinctionNat.zero) →
7475        ¬ DistinctionNat.unit q →
7476          PRCCharacterOrbitDirectionIdentity χ q hq ∨
7477            PRCCharacterOrbitDirectionReciprocal χ q hq
7478  have hP : ∀ n : Nat, (∀ m : Nat, m < n → P m) → P n := by
7479    intro n ih q hqNat hq0 hqUnit
7480    by_cases hqPrime : DistinctionNat.primeOrbit q
7481    · simpa [primeDirection] using hprimeLocal q hqPrime
7482    · have hfac : DistinctionNat.nontrivialFactorization q := by
7483        by_contra hnotFac
7484        exact hqPrime ⟨hq0, hqUnit, hnotFac⟩
7485      rcases hfac with ⟨a, b, ha0, hb0, haUnit, hbUnit, hmul⟩
7486      have hmulNat : a.toNat * b.toNat = n := by
7487        have hnat := congrArg DistinctionNat.toNat hmul
7488        rw [DistinctionNat.toNat_mul, hqNat] at hnat
7489        exact hnat
7490      have haNat0 : a.toNat ≠ 0 := by
7491        intro hz
7492        apply ha0
7493        apply DistinctionNat.toNat_inj
7494        rw [hz, DistinctionNat.toNat_zero]
7495      have hbNat0 : b.toNat ≠ 0 := by
7496        intro hz
7497        apply hb0
7498        apply DistinctionNat.toNat_inj
7499        rw [hz, DistinctionNat.toNat_zero]
7500      have haNat1 : a.toNat ≠ 1 := by
7501        intro hone
7502        exact haUnit ((DistinctionNat.unit_iff_toNat_eq_one a).mpr hone)
7503      have hbNat1 : b.toNat ≠ 1 := by
7504        intro hone
7505        exact hbUnit ((DistinctionNat.unit_iff_toNat_eq_one b).mpr hone)
7506      have haPos : 0 < a.toNat := by omega
7507      have hbPos : 0 < b.toNat := by omega
7508      have haGtOne : 1 < a.toNat := by omega
7509      have hbGtOne : 1 < b.toNat := by omega
7510      have ha_lt : a.toNat < n := by
7511        calc
7512          a.toNat = a.toNat * 1 := by rw [Nat.mul_one]
7513          _ < a.toNat * b.toNat :=
7514            Nat.mul_lt_mul_of_pos_left hbGtOne haPos
7515          _ = n := hmulNat
7516      have hb_lt : b.toNat < n := by
7517        calc
7518          b.toNat = 1 * b.toNat := by rw [Nat.one_mul]
7519          _ < a.toNat * b.toNat :=
7520            Nat.mul_lt_mul_of_pos_right haGtOne hbPos
7521          _ = n := hmulNat
7522      have haLocal :
7523          PRCCharacterOrbitDirectionIdentity χ a ha0 ∨
7524            PRCCharacterOrbitDirectionReciprocal χ a ha0 :=
7525        ih a.toNat ha_lt a rfl ha0 haUnit
7526      have hbLocal :
7527          PRCCharacterOrbitDirectionIdentity χ b hb0 ∨
7528            PRCCharacterOrbitDirectionReciprocal χ b hb0 :=
7529        ih b.toNat hb_lt b rfl hb0 hbUnit
7530      exact hprod a b q ha0 hb0 haUnit hbUnit hq0 hqUnit hmul
7531        haLocal hbLocal
7532  have hmain : P p.toNat :=
7533    Nat.strong_induction_on (p := P) p.toNat hP
7534  exact hmain p rfl hp hunit
7535
7536/-- Adjacent nonunit orbit steps cannot mix identity on one side with reciprocal
7537orientation on the other. This is the prime-floor version of the no-mixed
7538orientation law. -/
7539def PRCCharacterPrimeFloorNoAdjacentMixedOrientation
7540    (χ : RatioOrbit → RatioOrbit) : Prop :=
7541  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
7542    ¬ DistinctionNat.unit p →
7543      (¬ (PRCCharacterOrbitDirectionIdentity χ p hp ∧
7544        PRCCharacterOrbitDirectionReciprocal χ
7545          (DistinctionNat.succ p) (orbit_succ_ne_zero p))) ∧
7546      (¬ (PRCCharacterOrbitDirectionReciprocal χ p hp ∧
7547        PRCCharacterOrbitDirectionIdentity χ
7548          (DistinctionNat.succ p) (orbit_succ_ne_zero p)))
7549
7550theorem PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_nonunit_coherent
7551    {χ : RatioOrbit → RatioOrbit}
7552    (hcoh : PRCCharacterNonunitOrbitOrientationCoherent χ) :
7553    PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ := by
7554  intro p hp hunit
7555  have hsuccUnit :
7556      ¬ DistinctionNat.unit (DistinctionNat.succ p) :=
7557    orbit_succ_not_unit_of_nonzero_not_unit p hp hunit
7558  rcases hcoh with hallId | hallRec
7559  · constructor
7560    · rintro ⟨_hpId, hsuccRec⟩
7561      have hsuccId :=
7562        hallId (DistinctionNat.succ p) (orbit_succ_ne_zero p) hsuccUnit
7563      have hself :
7564          RatioOrbit.crossEq
7565            (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))
7566            (RatioOrbit.recip
7567              (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))) :=
7568        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hsuccId) hsuccRec
7569      exact orbitDirection_nonunit_not_crossEq_recip
7570        (DistinctionNat.succ p) (orbit_succ_ne_zero p) hsuccUnit hself
7571    · rintro ⟨hpRec, _hsuccId⟩
7572      have hpId := hallId p hp hunit
7573      have hself :
7574          RatioOrbit.crossEq (orbitDirection p hp)
7575            (RatioOrbit.recip (orbitDirection p hp)) :=
7576        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
7577      exact orbitDirection_nonunit_not_crossEq_recip p hp hunit hself
7578  · constructor
7579    · rintro ⟨hpId, _hsuccRec⟩
7580      have hpRec := hallRec p hp hunit
7581      have hself :
7582          RatioOrbit.crossEq (orbitDirection p hp)
7583            (RatioOrbit.recip (orbitDirection p hp)) :=
7584        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
7585      exact orbitDirection_nonunit_not_crossEq_recip p hp hunit hself
7586    · rintro ⟨_hpRec, hsuccId⟩
7587      have hsuccRec :=
7588        hallRec (DistinctionNat.succ p) (orbit_succ_ne_zero p) hsuccUnit
7589      have hself :
7590          RatioOrbit.crossEq
7591            (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))
7592            (RatioOrbit.recip
7593              (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))) :=
7594        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hsuccId) hsuccRec
7595      exact orbitDirection_nonunit_not_crossEq_recip
7596        (DistinctionNat.succ p) (orbit_succ_ne_zero p) hsuccUnit hself
7597
7598/-- Forward one-step identity transport above the unit floor. The unit orbit is
7599self-reciprocal, so forcing transport out of `1` would wrongly exclude the
7600globally reciprocal character branch. -/
7601def PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep
7602    (χ : RatioOrbit → RatioOrbit) : Prop :=
7603  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
7604    ¬ DistinctionNat.unit p →
7605      PRCCharacterOrbitDirectionIdentity χ p hp →
7606        PRCCharacterOrbitDirectionIdentity χ
7607          (DistinctionNat.succ p) (orbit_succ_ne_zero p)
7608
7609/-- Backward one-step identity transport above the unit floor. -/
7610def PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep
7611    (χ : RatioOrbit → RatioOrbit) : Prop :=
7612  ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
7613    ¬ DistinctionNat.unit p →
7614      PRCCharacterOrbitDirectionIdentity χ
7615        (DistinctionNat.succ p) (orbit_succ_ne_zero p) →
7616          PRCCharacterOrbitDirectionIdentity χ p hp
7617
7618/-- The corrected successor-transport rule: identity orientation transports
7619along one δ-successor step only once the path is above the self-reciprocal unit
7620orbit. This is the exact layer needed for prime-to-prime trace coherence. -/
7621def PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport
7622    (χ : RatioOrbit → RatioOrbit) : Prop :=
7623  PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep χ ∧
7624    PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep χ
7625
7626theorem PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep_of_local_adjacent_nomix
7627    {χ : RatioOrbit → RatioOrbit}
7628    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7629    (hnomix : PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ) :
7630    PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep χ := by
7631  intro p hp hunit hpId
7632  have hsuccUnit :
7633      ¬ DistinctionNat.unit (DistinctionNat.succ p) :=
7634    orbit_succ_not_unit_of_nonzero_not_unit p hp hunit
7635  rcases hlocal (DistinctionNat.succ p) (orbit_succ_ne_zero p) hsuccUnit
7636    with hsuccId | hsuccRec
7637  · exact hsuccId
7638  · exact False.elim ((hnomix p hp hunit).1 ⟨hpId, hsuccRec⟩)
7639
7640theorem PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep_of_local_adjacent_nomix
7641    {χ : RatioOrbit → RatioOrbit}
7642    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7643    (hnomix : PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ) :
7644    PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep χ := by
7645  intro p hp hunit hsuccId
7646  rcases hlocal p hp hunit with hpId | hpRec
7647  · exact hpId
7648  · exact False.elim ((hnomix p hp hunit).2 ⟨hpRec, hsuccId⟩)
7649
7650theorem PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_local_adjacent_nomix
7651    {χ : RatioOrbit → RatioOrbit}
7652    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7653    (hnomix : PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ) :
7654    PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ :=
7655  ⟨PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep_of_local_adjacent_nomix
7656      hlocal hnomix,
7657    PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep_of_local_adjacent_nomix
7658      hlocal hnomix⟩
7659
7660theorem PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_successor_transport
7661    {χ : RatioOrbit → RatioOrbit}
7662    (hstep : PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ) :
7663    PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ := by
7664  intro p hp hunit
7665  have hsuccUnit :
7666      ¬ DistinctionNat.unit (DistinctionNat.succ p) :=
7667    orbit_succ_not_unit_of_nonzero_not_unit p hp hunit
7668  constructor
7669  · rintro ⟨hpId, hsuccRec⟩
7670    have hsuccId :
7671        PRCCharacterOrbitDirectionIdentity χ
7672          (DistinctionNat.succ p) (orbit_succ_ne_zero p) :=
7673      hstep.1 p hp hunit hpId
7674    have hself :
7675        RatioOrbit.crossEq
7676          (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))
7677          (RatioOrbit.recip
7678            (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))) :=
7679      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hsuccId) hsuccRec
7680    exact orbitDirection_nonunit_not_crossEq_recip
7681      (DistinctionNat.succ p) (orbit_succ_ne_zero p) hsuccUnit hself
7682  · rintro ⟨hpRec, hsuccId⟩
7683    have hpId : PRCCharacterOrbitDirectionIdentity χ p hp :=
7684      hstep.2 p hp hunit hsuccId
7685    have hself :
7686        RatioOrbit.crossEq (orbitDirection p hp)
7687          (RatioOrbit.recip (orbitDirection p hp)) :=
7688      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) hpRec
7689    exact orbitDirection_nonunit_not_crossEq_recip p hp hunit hself
7690
7691theorem PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_iff_local_adjacent_nomix
7692    {χ : RatioOrbit → RatioOrbit}
7693    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ) :
7694    PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ ↔
7695      PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ :=
7696  ⟨PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_successor_transport,
7697    PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_local_adjacent_nomix
7698      hlocal⟩
7699
7700theorem PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_nonunit_identity_comparable_trace
7701    {χ : RatioOrbit → RatioOrbit}
7702    (hcomp : PRCCharacterNonunitIdentityRespectsComparableTrace χ) :
7703    PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ := by
7704  constructor
7705  · intro p hp hunit hpId
7706    have hsuccUnit :
7707        ¬ DistinctionNat.unit (DistinctionNat.succ p) :=
7708      orbit_succ_not_unit_of_nonzero_not_unit p hp hunit
7709    exact hcomp p hp hunit (DistinctionNat.succ p)
7710      (orbit_succ_ne_zero p) hsuccUnit
7711      (orbitPositionTrace_comparable p (DistinctionNat.succ p)) hpId
7712  · intro p hp hunit hsuccId
7713    have hsuccUnit :
7714        ¬ DistinctionNat.unit (DistinctionNat.succ p) :=
7715      orbit_succ_not_unit_of_nonzero_not_unit p hp hunit
7716    exact hcomp (DistinctionNat.succ p) (orbit_succ_ne_zero p)
7717      hsuccUnit p hp hunit
7718      (orbitPositionTrace_comparable (DistinctionNat.succ p) p) hsuccId
7719
7720theorem PRCCharacterOrbitIdentity_of_le_of_prime_floor_successor_transport
7721    {χ : RatioOrbit → RatioOrbit}
7722    (hstep : PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ) :
7723    ∀ {p r : DistinctionNat}, (hp : p ≠ DistinctionNat.zero) →
7724      ¬ DistinctionNat.unit p →
7725        (hr : r ≠ DistinctionNat.zero) →
7726          p.toNat ≤ r.toNat →
7727            PRCCharacterOrbitDirectionIdentity χ p hp →
7728              PRCCharacterOrbitDirectionIdentity χ r hr := by
7729  intro p r
7730  revert p
7731  induction r with
7732  | zero =>
7733      intro p hp _hpu hr _hle _hpId
7734      exact False.elim (hr rfl)
7735  | succ n ih =>
7736      intro p hp hpu _hr hle hpId
7737      by_cases hEq : p = DistinctionNat.succ n
7738      · subst p
7739        simpa [PRCCharacterOrbitDirectionIdentity, orbitDirection] using hpId
7740      · have hle_n : p.toNat ≤ n.toNat := by
7741          have hnotNat : p.toNat ≠ Nat.succ n.toNat := by
7742            intro hnat
7743            apply hEq
7744            apply DistinctionNat.toNat_inj
7745            simpa [DistinctionNat.toNat_succ] using hnat
7746          rw [DistinctionNat.toNat_succ] at hle
7747          omega
7748        have hpNat0 : p.toNat ≠ 0 := by
7749          intro hz
7750          apply hp
7751          apply DistinctionNat.toNat_inj
7752          rw [hz, DistinctionNat.toNat_zero]
7753        have hpNat1 : p.toNat ≠ 1 := by
7754          intro hone
7755          exact hpu ((DistinctionNat.unit_iff_toNat_eq_one p).mpr hone)
7756        have hn0 : n ≠ DistinctionNat.zero := by
7757          intro hn
7758          have hnNat : n.toNat = 0 := by rw [hn, DistinctionNat.toNat_zero]
7759          omega
7760        have hnunit : ¬ DistinctionNat.unit n := by
7761          intro hunit
7762          have hnNat1 : n.toNat = 1 :=
7763            (DistinctionNat.unit_iff_toNat_eq_one n).mp hunit
7764          omega
7765        have hnId :
7766            PRCCharacterOrbitDirectionIdentity χ n hn0 :=
7767          ih hp hpu hn0 hle_n hpId
7768        exact hstep.1 n hn0 hnunit hnId
7769
7770theorem PRCCharacterOrbitIdentity_of_ge_of_prime_floor_successor_transport
7771    {χ : RatioOrbit → RatioOrbit}
7772    (hstep : PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ) :
7773    ∀ {p r : DistinctionNat}, (hp : p ≠ DistinctionNat.zero) →
7774      ¬ DistinctionNat.unit p →
7775        (hr : r ≠ DistinctionNat.zero) →
7776          ¬ DistinctionNat.unit r →
7777            r.toNat ≤ p.toNat →
7778              PRCCharacterOrbitDirectionIdentity χ p hp →
7779                PRCCharacterOrbitDirectionIdentity χ r hr := by
7780  intro p r
7781  revert r
7782  induction p with
7783  | zero =>
7784      intro r hp _hpu _hr _hru _hge _hpId
7785      exact False.elim (hp rfl)
7786  | succ n ih =>
7787      intro r _hp _hpu hr hru hge hpId
7788      by_cases hEq : r = DistinctionNat.succ n
7789      · subst r
7790        simpa [PRCCharacterOrbitDirectionIdentity, orbitDirection] using hpId
7791      · have hge_n : r.toNat ≤ n.toNat := by
7792          have hnotNat : r.toNat ≠ Nat.succ n.toNat := by
7793            intro hnat
7794            apply hEq
7795            apply DistinctionNat.toNat_inj
7796            simpa [DistinctionNat.toNat_succ] using hnat
7797          rw [DistinctionNat.toNat_succ] at hge
7798          omega
7799        have hrNat0 : r.toNat ≠ 0 := by
7800          intro hz
7801          apply hr
7802          apply DistinctionNat.toNat_inj
7803          rw [hz, DistinctionNat.toNat_zero]
7804        have hrNat1 : r.toNat ≠ 1 := by
7805          intro hone
7806          exact hru ((DistinctionNat.unit_iff_toNat_eq_one r).mpr hone)
7807        have hn0 : n ≠ DistinctionNat.zero := by
7808          intro hn
7809          have hnNat : n.toNat = 0 := by rw [hn, DistinctionNat.toNat_zero]
7810          omega
7811        have hnunit : ¬ DistinctionNat.unit n := by
7812          intro hunit
7813          have hnNat1 : n.toNat = 1 :=
7814            (DistinctionNat.unit_iff_toNat_eq_one n).mp hunit
7815          omega
7816        have hsuccId :
7817            PRCCharacterOrbitDirectionIdentity χ
7818              (DistinctionNat.succ n) (orbit_succ_ne_zero n) := by
7819          simpa [PRCCharacterOrbitDirectionIdentity, orbitDirection] using hpId
7820        have hnId :
7821            PRCCharacterOrbitDirectionIdentity χ n hn0 :=
7822          hstep.2 n hn0 hnunit hsuccId
7823        exact ih hn0 hnunit hr hru hge_n hnId
7824
7825theorem PRCCharacterPrimeIdentityRespectsComparableTrace_of_prime_floor_successor_transport
7826    {χ : RatioOrbit → RatioOrbit}
7827    (hstep : PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ) :
7828    PRCCharacterPrimeIdentityRespectsComparableTrace χ := by
7829  intro p hp r hr _hcomp hpId
7830  have hpOrbitId :
7831      PRCCharacterOrbitDirectionIdentity χ p hp.1 := by
7832    exact hpId
7833  rcases Nat.le_total p.toNat r.toNat with hle | hge
7834  · exact PRCCharacterOrbitIdentity_of_le_of_prime_floor_successor_transport
7835      hstep hp.1 hp.2.1 hr.1 hle hpOrbitId
7836  · exact PRCCharacterOrbitIdentity_of_ge_of_prime_floor_successor_transport
7837      hstep hp.1 hp.2.1 hr.1 hr.2.1 hge hpOrbitId
7838
7839theorem PRCCharacterNonunitIdentityRespectsComparableTrace_of_prime_floor_successor_transport
7840    {χ : RatioOrbit → RatioOrbit}
7841    (hstep : PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ) :
7842    PRCCharacterNonunitIdentityRespectsComparableTrace χ := by
7843  intro p hp hpUnit r hr hrUnit _hcomp hpId
7844  rcases Nat.le_total p.toNat r.toNat with hle | hge
7845  · exact PRCCharacterOrbitIdentity_of_le_of_prime_floor_successor_transport
7846      hstep hp hpUnit hr hle hpId
7847  · exact PRCCharacterOrbitIdentity_of_ge_of_prime_floor_successor_transport
7848      hstep hp hpUnit hr hrUnit hge hpId
7849
7850theorem PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_prime_floor_successor_transport
7851    {χ : RatioOrbit → RatioOrbit}
7852    (hlocal : PRCCharacterNonunitOrbitLocalOrientation χ)
7853    (hstep : PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ) :
7854    PRCCharacterNonunitOrbitOrientationCoherent χ := by
7855  by_cases hId :
7856      ∃ p : DistinctionNat, ∃ hp : p ≠ DistinctionNat.zero,
7857        ∃ hunit : ¬ DistinctionNat.unit p,
7858          PRCCharacterOrbitDirectionIdentity χ p hp
7859  · rcases hId with ⟨p0, hp0, hunit0, hp0Id⟩
7860    exact Or.inl (by
7861      intro q hq hqUnit
7862      rcases Nat.le_total p0.toNat q.toNat with hle | hge
7863      · exact PRCCharacterOrbitIdentity_of_le_of_prime_floor_successor_transport
7864          hstep hp0 hunit0 hq hle hp0Id
7865      · exact PRCCharacterOrbitIdentity_of_ge_of_prime_floor_successor_transport
7866          hstep hp0 hunit0 hq hqUnit hge hp0Id)
7867  · exact Or.inr (by
7868      intro q hq hqUnit
7869      rcases hlocal q hq hqUnit with hqId | hqRec
7870      · exact False.elim (hId ⟨q, hq, hqUnit, hqId⟩)
7871      · exact hqRec)
7872
7873theorem PRCCharacterPrimeIdentityWitnessGlobalizesNonunit_of_prime_floor_successor_transport
7874    {χ : RatioOrbit → RatioOrbit}
7875    (hstep : PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ) :
7876    PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ := by
7877  intro p hp hpId r hr hrUnit
7878  have hpOrbitId :
7879      PRCCharacterOrbitDirectionIdentity χ p hp.1 := by
7880    simpa [PRCCharacterOrbitDirectionIdentity, primeDirection] using hpId
7881  rcases Nat.le_total p.toNat r.toNat with hle | hge
7882  · exact PRCCharacterOrbitIdentity_of_le_of_prime_floor_successor_transport
7883      hstep hp.1 hp.2.1 hr hle hpOrbitId
7884  · exact PRCCharacterOrbitIdentity_of_ge_of_prime_floor_successor_transport
7885      hstep hp.1 hp.2.1 hr hrUnit hge hpOrbitId
7886
7887theorem PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_prime_identity_witness_globalizes
7888    {χ : RatioOrbit → RatioOrbit}
7889    (hχ : PRCRatioCharacter χ)
7890    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
7891    (hprimeLocal : PRCCharacterPrimeLocalOrientation χ)
7892    (hglobal : PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ) :
7893    PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ := by
7894  constructor
7895  · intro p hp hpUnit hpId
7896    have hsuccUnit :
7897        ¬ DistinctionNat.unit (DistinctionNat.succ p) :=
7898      orbit_succ_not_unit_of_nonzero_not_unit p hp hpUnit
7899    rcases PRCCharacterNonunitIdentityWitnessReflectsPrimeWitness_of_prime_local
7900        hχ hcompat hprimeLocal hpUnit hpId with
7901      ⟨q, hq, hqId⟩
7902    exact hglobal q hq hqId
7903      (DistinctionNat.succ p) (orbit_succ_ne_zero p) hsuccUnit
7904  · intro p hp hpUnit hsuccId
7905    have hsuccUnit :
7906        ¬ DistinctionNat.unit (DistinctionNat.succ p) :=
7907      orbit_succ_not_unit_of_nonzero_not_unit p hp hpUnit
7908    rcases PRCCharacterNonunitIdentityWitnessReflectsPrimeWitness_of_prime_local
7909        hχ hcompat hprimeLocal hsuccUnit hsuccId with
7910      ⟨q, hq, hqId⟩
7911    exact hglobal q hq hqId p hp hpUnit
7912
7913theorem PRCCharacterOrbitIdentityRespectsSuccessorStep_of_transport
7914    {χ : RatioOrbit → RatioOrbit}
7915    (htransport : PRCCharacterOrbitIdentitySuccessorTransport χ) :
7916    PRCCharacterOrbitIdentityRespectsSuccessorStep χ := by
7917  intro p hp
7918  exact ⟨htransport.1 p hp, htransport.2 p hp⟩
7919
7920theorem PRCCharacterOrbitIdentity_one_of_identity
7921    {χ : RatioOrbit → RatioOrbit}
7922    (hstep : PRCCharacterOrbitIdentityRespectsSuccessorStep χ)
7923    {p : DistinctionNat} (hp : p ≠ DistinctionNat.zero)
7924    (hpId : PRCCharacterOrbitDirectionIdentity χ p hp) :
7925    PRCCharacterOrbitDirectionIdentity χ
7926      DistinctionNat.one DistinctionNat.one_ne_zero := by
7927  induction p with
7928  | zero =>
7929      exact False.elim (hp rfl)
7930  | succ n ih =>
7931      cases n with
7932      | zero =>
7933          exact hpId
7934      | succ m =>
7935          have hn : DistinctionNat.succ m ≠ DistinctionNat.zero :=
7936            orbit_succ_ne_zero m
7937          have hnId :
7938              PRCCharacterOrbitDirectionIdentity χ
7939                (DistinctionNat.succ m) hn :=
7940            (hstep (DistinctionNat.succ m) hn).2 hpId
7941          exact ih hn hnId
7942
7943theorem PRCCharacterOrbitIdentity_of_one
7944    {χ : RatioOrbit → RatioOrbit}
7945    (hstep : PRCCharacterOrbitIdentityRespectsSuccessorStep χ)
7946    {r : DistinctionNat} (hr : r ≠ DistinctionNat.zero)
7947    (honeId : PRCCharacterOrbitDirectionIdentity χ
7948      DistinctionNat.one DistinctionNat.one_ne_zero) :
7949    PRCCharacterOrbitDirectionIdentity χ r hr := by
7950  induction r with
7951  | zero =>
7952      exact False.elim (hr rfl)
7953  | succ n ih =>
7954      cases n with
7955      | zero =>
7956          exact honeId
7957      | succ m =>
7958          have hn : DistinctionNat.succ m ≠ DistinctionNat.zero :=
7959            orbit_succ_ne_zero m
7960          have hnId :
7961              PRCCharacterOrbitDirectionIdentity χ
7962                (DistinctionNat.succ m) hn :=
7963            ih hn
7964          exact (hstep (DistinctionNat.succ m) hn).1 hnId
7965
7966theorem PRCCharacterPrimeIdentityRespectsComparableTrace_of_successor_step
7967    {χ : RatioOrbit → RatioOrbit}
7968    (hstep : PRCCharacterOrbitIdentityRespectsSuccessorStep χ) :
7969    PRCCharacterPrimeIdentityRespectsComparableTrace χ := by
7970  intro p hp r hr _hcomp hpId
7971  have hpOrbitId :
7972      PRCCharacterOrbitDirectionIdentity χ p hp.1 := by
7973    exact hpId
7974  have honeId :
7975      PRCCharacterOrbitDirectionIdentity χ
7976        DistinctionNat.one DistinctionNat.one_ne_zero :=
7977    PRCCharacterOrbitIdentity_one_of_identity hstep hp.1 hpOrbitId
7978  exact PRCCharacterOrbitIdentity_of_one hstep hr.1 honeId
7979
7980theorem PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_comparable_trace
7981    {χ : RatioOrbit → RatioOrbit}
7982    (hcomp : PRCCharacterPrimeIdentityRespectsComparableTrace χ) :
7983    PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ := by
7984  intro p hp r hr _T _hpT _hrT hpId
7985  exact hcomp p hp r hr (orbitPositionTrace_comparable p r) hpId
7986
7987theorem PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_common_trace_extension
7988    {χ : RatioOrbit → RatioOrbit}
7989    (hcommon : PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ) :
7990    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ := by
7991  intro p hp r hr hpT hrT hpId
7992  exact hcommon p hp r hr (orbitPositionTrace (p + r)) hpT hrT hpId
7993
7994theorem PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_canonical_add_trace
7995    {χ : RatioOrbit → RatioOrbit}
7996    (hcanon : PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ) :
7997    PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ := by
7998  intro p hp r hr _T _hpT _hrT hpId
7999  exact hcanon p hp r hr
8000    (orbitPositionTrace_add_extends_left p r)
8001    (orbitPositionTrace_add_extends_right p r) hpId
8002
8003theorem PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_iff_common_trace_extension
8004    {χ : RatioOrbit → RatioOrbit} :
8005    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ ↔
8006      PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ :=
8007  ⟨PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_canonical_add_trace,
8008    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_common_trace_extension⟩
8009
8010theorem PRCCharacterPrimeIdentityRespectsTraceConnected_of_common_trace_extension
8011    {χ : RatioOrbit → RatioOrbit}
8012    (hcommon : PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ) :
8013    PRCCharacterPrimeIdentityRespectsTraceConnected χ := by
8014  intro p hp r hr hconn hpId
8015  rcases hconn with ⟨T, hpT, hrT⟩
8016  exact hcommon p hp r hr T hpT hrT hpId
8017
8018theorem PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_trace_connected
8019    {χ : RatioOrbit → RatioOrbit}
8020    (hconn : PRCCharacterPrimeIdentityRespectsTraceConnected χ) :
8021    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ := by
8022  intro p hp r hr _hpT _hrT hpId
8023  exact hconn p hp r hr (PRCPrimeAxisTraceConnected_proved p hp r hr) hpId
8024
8025theorem PRCCharacterPrimeIdentityRespectsTraceConnected_of_canonical_add_trace
8026    {χ : RatioOrbit → RatioOrbit}
8027    (hcanon : PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ) :
8028    PRCCharacterPrimeIdentityRespectsTraceConnected χ :=
8029  PRCCharacterPrimeIdentityRespectsTraceConnected_of_common_trace_extension
8030    (PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_canonical_add_trace
8031      hcanon)
8032
8033theorem PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_iff_trace_connected
8034    {χ : RatioOrbit → RatioOrbit} :
8035    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ ↔
8036      PRCCharacterPrimeIdentityRespectsTraceConnected χ :=
8037  ⟨PRCCharacterPrimeIdentityRespectsTraceConnected_of_canonical_add_trace,
8038    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_trace_connected⟩
8039
8040theorem PRCCharacterPrimeIdentityBranchUniform_of_trace_coherence
8041    {χ : RatioOrbit → RatioOrbit}
8042    (hcoh : PRCCharacterPrimeIdentityTraceCoherent χ) :
8043    PRCCharacterPrimeIdentityBranchUniform χ := by
8044  intro p hp r hr hpId
8045  exact hcoh p hp r hr hpId
8046
8047theorem PRCCharacterPrimeIdentityTraceCoherent_of_branch_uniform
8048    {χ : RatioOrbit → RatioOrbit}
8049    (huniform : PRCCharacterPrimeIdentityBranchUniform χ) :
8050    PRCCharacterPrimeIdentityTraceCoherent χ := by
8051  intro p hp r hr hpId
8052  exact huniform p hp r hr hpId
8053
8054theorem PRCCharacterPrimeIdentityBranchUniform_iff_trace_coherence
8055    {χ : RatioOrbit → RatioOrbit} :
8056    PRCCharacterPrimeIdentityBranchUniform χ ↔
8057      PRCCharacterPrimeIdentityTraceCoherent χ :=
8058  ⟨PRCCharacterPrimeIdentityTraceCoherent_of_branch_uniform,
8059    PRCCharacterPrimeIdentityBranchUniform_of_trace_coherence⟩
8060
8061theorem PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_branch_uniform
8062    {χ : RatioOrbit → RatioOrbit}
8063    (huniform : PRCCharacterPrimeIdentityBranchUniform χ) :
8064    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ := by
8065  intro p hp r hr _hpT _hrT hpId
8066  exact huniform p hp r hr hpId
8067
8068theorem PRCCharacterPrimeIdentityBranchUniform_of_canonical_add_trace
8069    {χ : RatioOrbit → RatioOrbit}
8070    (hcanon : PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ) :
8071    PRCCharacterPrimeIdentityBranchUniform χ := by
8072  intro p hp r hr hpId
8073  exact hcanon p hp r hr
8074    (orbitPositionTrace_add_extends_left p r)
8075    (orbitPositionTrace_add_extends_right p r) hpId
8076
8077theorem PRCCharacterPrimeIdentityBranchUniform_iff_canonical_add_trace
8078    {χ : RatioOrbit → RatioOrbit} :
8079    PRCCharacterPrimeIdentityBranchUniform χ ↔
8080      PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ :=
8081  ⟨PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_branch_uniform,
8082    PRCCharacterPrimeIdentityBranchUniform_of_canonical_add_trace⟩
8083
8084theorem PRCCharacterPrimeIdentityRespectsComparableTrace_of_trace_coherence
8085    {χ : RatioOrbit → RatioOrbit}
8086    (hcoh : PRCCharacterPrimeIdentityTraceCoherent χ) :
8087    PRCCharacterPrimeIdentityRespectsComparableTrace χ := by
8088  intro p hp r hr _hcomp hpId
8089  exact hcoh p hp r hr hpId
8090
8091theorem PRCCharacterPrimeIdentityTraceCoherent_of_comparable_trace
8092    {χ : RatioOrbit → RatioOrbit}
8093    (hcomp : PRCCharacterPrimeIdentityRespectsComparableTrace χ) :
8094    PRCCharacterPrimeIdentityTraceCoherent χ := by
8095  intro p hp r hr hpId
8096  exact hcomp p hp r hr (orbitPositionTrace_comparable p r) hpId
8097
8098theorem PRCCharacterPrimeIdentityRespectsComparableTrace_iff_trace_coherence
8099    {χ : RatioOrbit → RatioOrbit} :
8100    PRCCharacterPrimeIdentityRespectsComparableTrace χ ↔
8101      PRCCharacterPrimeIdentityTraceCoherent χ :=
8102  ⟨PRCCharacterPrimeIdentityTraceCoherent_of_comparable_trace,
8103    PRCCharacterPrimeIdentityRespectsComparableTrace_of_trace_coherence⟩
8104
8105theorem PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_trace_coherence
8106    {χ : RatioOrbit → RatioOrbit}
8107    (hcoh : PRCCharacterPrimeIdentityTraceCoherent χ) :
8108    PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ :=
8109  PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_comparable_trace
8110    (PRCCharacterPrimeIdentityRespectsComparableTrace_of_trace_coherence hcoh)
8111
8112theorem PRCCharacterPrimeIdentityTraceCoherent_of_common_trace_extension
8113    {χ : RatioOrbit → RatioOrbit}
8114    (hcommon : PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ) :
8115    PRCCharacterPrimeIdentityTraceCoherent χ := by
8116  intro p hp r hr hpId
8117  exact hcommon p hp r hr (orbitPositionTrace (p + r))
8118    (orbitPositionTrace_add_extends_left p r)
8119    (orbitPositionTrace_add_extends_right p r) hpId
8120
8121theorem PRCCharacterPrimeIdentityRespectsCommonTraceExtension_iff_trace_coherence
8122    {χ : RatioOrbit → RatioOrbit} :
8123    PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ ↔
8124      PRCCharacterPrimeIdentityTraceCoherent χ :=
8125  ⟨PRCCharacterPrimeIdentityTraceCoherent_of_common_trace_extension,
8126    PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_trace_coherence⟩
8127
8128theorem PRCCharacterPrimeIdentityRespectsTraceConnected_of_trace_coherence
8129    {χ : RatioOrbit → RatioOrbit}
8130    (hcoh : PRCCharacterPrimeIdentityTraceCoherent χ) :
8131    PRCCharacterPrimeIdentityRespectsTraceConnected χ := by
8132  intro p hp r hr _hconn hpId
8133  exact hcoh p hp r hr hpId
8134
8135theorem PRCCharacterPrimeIdentityTraceCoherent_of_trace_connected
8136    {χ : RatioOrbit → RatioOrbit}
8137    (hconn : PRCCharacterPrimeIdentityRespectsTraceConnected χ) :
8138    PRCCharacterPrimeIdentityTraceCoherent χ := by
8139  intro p hp r hr hpId
8140  exact hconn p hp r hr (PRCPrimeAxisTraceConnected_proved p hp r hr) hpId
8141
8142theorem PRCCharacterPrimeIdentityRespectsTraceConnected_iff_trace_coherence
8143    {χ : RatioOrbit → RatioOrbit} :
8144    PRCCharacterPrimeIdentityRespectsTraceConnected χ ↔
8145      PRCCharacterPrimeIdentityTraceCoherent χ :=
8146  ⟨PRCCharacterPrimeIdentityTraceCoherent_of_trace_connected,
8147    PRCCharacterPrimeIdentityRespectsTraceConnected_of_trace_coherence⟩
8148
8149/-- Local orientation target: prime cost calibration must at least orient each
8150prime axis as identity or reciprocal. -/
8151def PRCPrimeCalibrationForcesLocalPrimeOrientationTarget : Prop :=
8152  ∀ χ : RatioOrbit → RatioOrbit,
8153    PRCRatioCharacter χ →
8154      PRCCharacterPrimeDirectionCalibrated χ →
8155        PRCCharacterPrimeLocalOrientation χ
8156
8157theorem PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved :
8158    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget := by
8159  intro χ hχ hprime p hp
8160  have hq : (primeDirection p hp).toRat ≠ 0 :=
8161    primeDirection_toRat_ne_zero p hp
8162  have hχq : (χ (primeDirection p hp)).toRat ≠ 0 :=
8163    hχ.nonzero_preserving hq
8164  have hcal :
8165      RatioOrbit.crossEq
8166        (onRatioOrbit (χ (primeDirection p hp)))
8167        (onRatioOrbit (primeDirection p hp)) := by
8168    simpa [costFromCharacter] using hprime p hp
8169  exact jcost_eq_forces_same_or_reciprocal hχq hq hcal
8170
8171/-- No-mixing target: prime cost calibration must forbid independent mixed
8172identity/reciprocal choices on different prime axes. -/
8173def PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget : Prop :=
8174  ∀ χ : RatioOrbit → RatioOrbit,
8175    PRCRatioCharacter χ →
8176      PRCCharacterPrimeDirectionCalibrated χ →
8177        PRCCharacterNoMixedPrimeOrientation χ
8178
8179/-- Existential prime-witness form of no-mixed prime orientation. -/
8180def PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget : Prop :=
8181  ∀ χ : RatioOrbit → RatioOrbit,
8182    PRCRatioCharacter χ →
8183      PRCCharacterPrimeDirectionCalibrated χ →
8184        PRCCharacterNoMixedPrimeWitnesses χ
8185
8186/-- One-sided prime witness-exclusion target: prime calibration should forbid any
8187reciprocal-oriented prime witness once an identity-oriented prime witness
8188exists. -/
8189def PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget :
8190    Prop :=
8191  ∀ χ : RatioOrbit → RatioOrbit,
8192    PRCRatioCharacter χ →
8193      PRCCharacterPrimeDirectionCalibrated χ →
8194        PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ
8195
8196/-- Reciprocal-witness globalization target: if prime calibration allows one
8197reciprocal-oriented native prime witness, reciprocal orientation must hold on
8198every native prime axis. -/
8199def PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget : Prop :=
8200  ∀ χ : RatioOrbit → RatioOrbit,
8201    PRCRatioCharacter χ →
8202      PRCCharacterPrimeDirectionCalibrated χ →
8203        PRCCharacterPrimeReciprocalWitnessGlobalizes χ
8204
8205/-- Distinguished-axis converse half of reciprocal globalization: any
8206reciprocal-oriented native prime axis must force the orbit-`2` prime axis onto
8207the reciprocal branch. -/
8208def PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget :
8209    Prop :=
8210  ∀ χ : RatioOrbit → RatioOrbit,
8211    PRCRatioCharacter χ →
8212      PRCCharacterPrimeDirectionCalibrated χ →
8213        PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal χ
8214
8215/-- Distinguished-axis reciprocal branch target: once calibration puts the
8216orbit-`2` prime axis on the reciprocal branch, every native prime axis must be
8217on the reciprocal branch. -/
8218def PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget : Prop :=
8219  ∀ χ : RatioOrbit → RatioOrbit,
8220    PRCRatioCharacter χ →
8221      PRCCharacterPrimeDirectionCalibrated χ →
8222        PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ
8223
8224/-- Split target for reciprocal globalization: arbitrary prime-to-two
8225reciprocal transport plus two-to-all reciprocal transport. -/
8226def PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget :
8227    Prop :=
8228  PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget ∧
8229    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
8230
8231/-- Exact remaining trace-coherence target: prime calibration must make identity
8232orientation propagate across prime axes. -/
8233def PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget : Prop :=
8234  ∀ χ : RatioOrbit → RatioOrbit,
8235    PRCRatioCharacter χ →
8236      PRCCharacterPrimeDirectionCalibrated χ →
8237        PRCCharacterPrimeIdentityTraceCoherent χ
8238
8239/-- Trace-free branch-uniformity target: prime calibration should force every
8240identity-oriented native prime axis to put all native prime axes on the identity
8241branch. -/
8242def PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget : Prop :=
8243  ∀ χ : RatioOrbit → RatioOrbit,
8244    PRCRatioCharacter χ →
8245      PRCCharacterPrimeDirectionCalibrated χ →
8246        PRCCharacterPrimeIdentityBranchUniform χ
8247
8248/-- Smaller trace-transport target: prime calibration should make identity
8249orientation invariant along native prime-axis trace connections. The structural
8250connectivity of the prime-axis trace graph is already proved above. -/
8251def PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget : Prop :=
8252  ∀ χ : RatioOrbit → RatioOrbit,
8253    PRCRatioCharacter χ →
8254      PRCCharacterPrimeDirectionCalibrated χ →
8255        PRCCharacterPrimeIdentityRespectsTraceConnected χ
8256
8257/-- Sharper form of the trace-transport target: prime calibration must force
8258identity orientation to respect an explicitly witnessed common finite δ-trace
8259extension. -/
8260def PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget : Prop :=
8261  ∀ χ : RatioOrbit → RatioOrbit,
8262    PRCRatioCharacter χ →
8263      PRCCharacterPrimeDirectionCalibrated χ →
8264        PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ
8265
8266/-- Canonical-add-trace target: prime calibration should force identity
8267orientation to transport through the concrete finite common extension
8268`orbitPositionTrace (p + r)`. -/
8269def PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget : Prop :=
8270  ∀ χ : RatioOrbit → RatioOrbit,
8271    PRCRatioCharacter χ →
8272      PRCCharacterPrimeDirectionCalibrated χ →
8273        PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ
8274
8275/-- Sharper trace-order target: prime calibration should force identity
8276orientation to respect comparability of finite δ-orbit traces. -/
8277def PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget : Prop :=
8278  ∀ χ : RatioOrbit → RatioOrbit,
8279    PRCRatioCharacter χ →
8280      PRCCharacterPrimeDirectionCalibrated χ →
8281        PRCCharacterPrimeIdentityRespectsComparableTrace χ
8282
8283/-- Sharper one-step target: prime calibration should force identity orientation
8284to be invariant under one successor step on every nonzero orbit direction. -/
8285def PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget : Prop :=
8286  ∀ χ : RatioOrbit → RatioOrbit,
8287    PRCRatioCharacter χ →
8288      PRCCharacterPrimeDirectionCalibrated χ →
8289        PRCCharacterOrbitIdentityRespectsSuccessorStep χ
8290
8291/-- Sharper directional successor target: prime calibration should force both
8292one-step directions separately. This exposes the exact additive-trace
8293compatibility missing from the purely multiplicative ratio-character laws. -/
8294def PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget : Prop :=
8295  ∀ χ : RatioOrbit → RatioOrbit,
8296    PRCRatioCharacter χ →
8297      PRCCharacterPrimeDirectionCalibrated χ →
8298        PRCCharacterOrbitIdentitySuccessorTransport χ
8299
8300/-- Sharper additive successor target: prime calibration should force the ratio
8301character to respect the additive successor operation on nonzero orbit
8302directions. -/
8303def PRCPrimeCalibrationForcesOrbitSuccessorAdditiveCompatibilityTarget : Prop :=
8304  ∀ χ : RatioOrbit → RatioOrbit,
8305    PRCRatioCharacter χ →
8306      PRCCharacterPrimeDirectionCalibrated χ →
8307        PRCCharacterOrbitSuccessorAdditiveCompatible χ
8308
8309/-- Corrected successor target after the reciprocal-character check: prime
8310calibration should force successor transport above the self-reciprocal unit
8311floor, not additive transport out of the unit orbit itself. -/
8312def PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget : Prop :=
8313  ∀ χ : RatioOrbit → RatioOrbit,
8314    PRCRatioCharacter χ →
8315      PRCCharacterPrimeDirectionCalibrated χ →
8316        PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ
8317
8318/-- Witness-globalized form of the prime-floor blocker: if any calibrated prime
8319axis picks identity, then every nonunit orbit direction must pick identity. -/
8320def PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget :
8321    Prop :=
8322  ∀ χ : RatioOrbit → RatioOrbit,
8323    PRCRatioCharacter χ →
8324      PRCCharacterPrimeDirectionCalibrated χ →
8325        PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ
8326
8327/-- Forward half of the corrected prime-floor successor target. -/
8328def PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget :
8329    Prop :=
8330  ∀ χ : RatioOrbit → RatioOrbit,
8331    PRCRatioCharacter χ →
8332      PRCCharacterPrimeDirectionCalibrated χ →
8333        PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep χ
8334
8335/-- Backward half of the corrected prime-floor successor target. -/
8336def PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget :
8337    Prop :=
8338  ∀ χ : RatioOrbit → RatioOrbit,
8339    PRCRatioCharacter χ →
8340      PRCCharacterPrimeDirectionCalibrated χ →
8341        PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep χ
8342
8343/-- Split one-step form of the corrected prime-floor successor target. -/
8344def PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :
8345    Prop :=
8346  PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget ∧
8347    PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget
8348
8349/-- First component of the prime-floor successor blocker: prime calibration
8350should orient every nonunit orbit direction, not only prime axes. -/
8351def PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget : Prop :=
8352  ∀ χ : RatioOrbit → RatioOrbit,
8353    PRCRatioCharacter χ →
8354      PRCCharacterPrimeDirectionCalibrated χ →
8355        PRCCharacterNonunitOrbitLocalOrientation χ
8356
8357/-- Sharper source of nonunit local orientation: prime calibration should force
8358the product-factor propagation step that carries prime-axis orientation through
8359composite orbit positions. -/
8360def PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget : Prop :=
8361  ∀ χ : RatioOrbit → RatioOrbit,
8362    PRCRatioCharacter χ →
8363      PRCCharacterPrimeDirectionCalibrated χ →
8364        PRCCharacterOrbitProductLocalOrientationPropagates χ
8365
8366/-- Product-display compatibility target: prime calibration should force the
8367character to respect the native equality between product orbit directions and
8368ratio products of factor directions. -/
8369def PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget : Prop :=
8370  ∀ χ : RatioOrbit → RatioOrbit,
8371    PRCRatioCharacter χ →
8372      PRCCharacterPrimeDirectionCalibrated χ →
8373        PRCCharacterOrbitProductDisplayCompatible χ
8374
8375/-- Sharper source of product-display compatibility: prime calibration should
8376force the raw character to respect ratio cross-equivalence. Without this,
8377`χ : RatioOrbit → RatioOrbit` is not yet a quotient-native character. -/
8378def PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget : Prop :=
8379  ∀ χ : RatioOrbit → RatioOrbit,
8380    PRCRatioCharacter χ →
8381      PRCCharacterPrimeDirectionCalibrated χ →
8382        PRCCharacterRespectsCrossEq χ
8383
8384theorem PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_of_normalizeRatio_canonical
8385    (hcanon : PRCNormalizeRatioCanonicalTarget) :
8386    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget := by
8387  intro χ hχ _hprime
8388  exact PRCCharacterRespectsCrossEq_of_normalizeRatio_canonical hχ hcanon
8389
8390theorem PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_of_reduced_signCanonical_unique
8391    (hunique : PRCReducedSignCanonicalRatioUniqueTarget) :
8392    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget :=
8393  PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_of_normalizeRatio_canonical
8394    (PRCNormalizeRatioCanonicalTarget_of_reduced_signCanonical_unique hunique)
8395
8396theorem PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_proved :
8397    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget :=
8398  PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_of_reduced_signCanonical_unique
8399    PRCReducedSignCanonicalRatioUniqueTarget_proved
8400
8401/-- Product no-mixing target: prime calibration should rule out mixed
8402identity/reciprocal factor orientations under native multiplication. -/
8403def PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget : Prop :=
8404  ∀ χ : RatioOrbit → RatioOrbit,
8405    PRCRatioCharacter χ →
8406      PRCCharacterPrimeDirectionCalibrated χ →
8407        PRCCharacterOrbitProductNoMixedOrientation χ
8408
8409/-- Stronger replacement for product no-mixing: prime calibration should force a
8410single coherent orientation across all nonunit orbit directions. Once this is
8411available, mixed product factors are impossible by nonunit non-self-reciprocity. -/
8412def PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget : Prop :=
8413  ∀ χ : RatioOrbit → RatioOrbit,
8414    PRCRatioCharacter χ →
8415      PRCCharacterPrimeDirectionCalibrated χ →
8416        PRCCharacterNonunitOrbitOrientationCoherent χ
8417
8418/-- Branch-coupling target: prime calibration should prevent any identity-oriented
8419nonunit direction from coexisting with any reciprocal-oriented nonunit direction.
8420Together with local nonunit orientation this is exactly global nonunit
8421orientation coherence. -/
8422def PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget : Prop :=
8423  ∀ χ : RatioOrbit → RatioOrbit,
8424    PRCRatioCharacter χ →
8425      PRCCharacterPrimeDirectionCalibrated χ →
8426        PRCCharacterNoMixedNonunitOrbitOrientation χ
8427
8428/-- Positive transport form of the same branch-coupling blocker: if prime
8429calibration allows one nonunit direction to remain identity-oriented, that
8430identity branch must transport to every nonunit direction. -/
8431def PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget : Prop :=
8432  ∀ χ : RatioOrbit → RatioOrbit,
8433    PRCRatioCharacter χ →
8434      PRCCharacterPrimeDirectionCalibrated χ →
8435        PRCCharacterNonunitIdentityBranchTransport χ
8436
8437/-- Witness-globalization form of the same branch-coupling blocker: if prime
8438calibration permits any identity-oriented nonunit direction, that witness fixes
8439the identity branch globally. -/
8440def PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget : Prop :=
8441  ∀ χ : RatioOrbit → RatioOrbit,
8442    PRCRatioCharacter χ →
8443      PRCCharacterPrimeDirectionCalibrated χ →
8444        PRCCharacterNonunitIdentityWitnessGlobalizes χ
8445
8446/-- One-sided witness-exclusion target: prime calibration should make one
8447identity-oriented nonunit witness incompatible with every reciprocal-oriented
8448nonunit witness. This strips local orientation out of witness globalization. -/
8449def PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget :
8450    Prop :=
8451  ∀ χ : RatioOrbit → RatioOrbit,
8452    PRCRatioCharacter χ →
8453      PRCCharacterPrimeDirectionCalibrated χ →
8454        PRCCharacterNonunitIdentityWitnessExcludesReciprocal χ
8455
8456/-- Existential no-mixed-witness target: prime calibration should forbid the
8457coexistence of any identity-oriented nonunit witness and any reciprocal-oriented
8458nonunit witness. -/
8459def PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget : Prop :=
8460  ∀ χ : RatioOrbit → RatioOrbit,
8461    PRCRatioCharacter χ →
8462      PRCCharacterPrimeDirectionCalibrated χ →
8463        PRCCharacterNonunitNoMixedWitnesses χ
8464
8465/-- Composite bridge for the witness split: under prime calibration, prime
8466no-mixing should control arbitrary nonunit no-mixing. -/
8467def PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget :
8468    Prop :=
8469  ∀ χ : RatioOrbit → RatioOrbit,
8470    PRCRatioCharacter χ →
8471      PRCCharacterPrimeDirectionCalibrated χ →
8472        PRCCharacterPrimeWitnessesControlNonunitWitnesses χ
8473
8474/-- Reflection form of the composite bridge: mixed nonunit witnesses must reflect
8475down to mixed prime-axis witnesses. -/
8476def PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget :
8477    Prop :=
8478  ∀ χ : RatioOrbit → RatioOrbit,
8479    PRCRatioCharacter χ →
8480      PRCCharacterPrimeDirectionCalibrated χ →
8481        PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses χ
8482
8483/-- Identity half of the mixed-context reflection target. -/
8484def PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget :
8485    Prop :=
8486  ∀ χ : RatioOrbit → RatioOrbit,
8487    PRCRatioCharacter χ →
8488      PRCCharacterPrimeDirectionCalibrated χ →
8489        PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness χ
8490
8491/-- Reciprocal half of the mixed-context reflection target. -/
8492def PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget :
8493    Prop :=
8494  ∀ χ : RatioOrbit → RatioOrbit,
8495    PRCRatioCharacter χ →
8496      PRCCharacterPrimeDirectionCalibrated χ →
8497        PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness χ
8498
8499/-- Split form of the mixed nonunit reflection target. -/
8500def PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget :
8501    Prop :=
8502  PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget ∧
8503    PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget
8504
8505/-- Split form of the current no-mixed-witness blocker: first rule out mixed
8506prime witnesses, then prove that prime-witness control reaches nonunit
8507composites. -/
8508def PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget : Prop :=
8509  PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ∧
8510    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget
8511
8512/-- Local-orientation plus one-sided witness exclusion is the split form of
8513witness globalization. -/
8514def PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget :
8515    Prop :=
8516  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
8517    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget
8518
8519/-- Dual transport target: reciprocal orientation at one nonunit direction must
8520transport to every nonunit direction. -/
8521def PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget : Prop :=
8522  ∀ χ : RatioOrbit → RatioOrbit,
8523    PRCRatioCharacter χ →
8524      PRCCharacterPrimeDirectionCalibrated χ →
8525        PRCCharacterNonunitReciprocalBranchTransport χ
8526
8527/-- Split target for the two one-way nonunit branch transports. -/
8528def PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget : Prop :=
8529  PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget ∧
8530    PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget
8531
8532/-- Trace-order sharpening of nonunit identity-branch transport: prime
8533calibration should force identity orientation to respect comparability of finite
8534δ-orbit traces on nonunit directions. -/
8535def PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget : Prop :=
8536  ∀ χ : RatioOrbit → RatioOrbit,
8537    PRCRatioCharacter χ →
8538      PRCCharacterPrimeDirectionCalibrated χ →
8539        PRCCharacterNonunitIdentityRespectsComparableTrace χ
8540
8541/-- Two-branch agreement target: prime calibration should force a nonunit branch
8542choice at one direction to agree with every other nonunit direction, for both
8543identity and reciprocal branches. -/
8544def PRCPrimeCalibrationForcesNonunitBranchAgreementTarget : Prop :=
8545  ∀ χ : RatioOrbit → RatioOrbit,
8546    PRCRatioCharacter χ →
8547      PRCCharacterPrimeDirectionCalibrated χ →
8548        PRCCharacterNonunitBranchAgreement χ
8549
8550/-- Local orientation plus two-branch agreement is the positive normal form of
8551the global nonunit branch-coupling blocker. -/
8552def PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget :
8553    Prop :=
8554  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
8555    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget
8556
8557/-- Local orientation plus identity-branch transport is the minimal positive
8558normal form: reciprocal transport follows from these two facts. -/
8559def PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget :
8560    Prop :=
8561  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
8562    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
8563
8564/-- Trace-layer version of the active local identity-transport target. The
8565identity-transport half is replaced by its equivalent finite δ-trace
8566comparability law. -/
8567def PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget :
8568    Prop :=
8569  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
8570    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
8571
8572/-- Sharpened source of global nonunit coherence: first prove every nonunit orbit
8573direction has a local branch, then prove the cross-nonunit no-mixing law. -/
8574def PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget : Prop :=
8575  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
8576    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget
8577
8578/-- Product-layer sharpening of global nonunit coherence: local nonunit
8579orientation is already available, so the remaining branch-coupling obligation can
8580be carried by the product no-mixing law. -/
8581def PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget : Prop :=
8582  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
8583    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget
8584
8585theorem PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_coherent
8586    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8587    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget := by
8588  intro χ hχ hprime
8589  exact PRCCharacterNoMixedNonunitOrbitOrientation_of_coherent
8590    (hcoh χ hχ hprime)
8591
8592theorem PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_product_no_mixed
8593    (hprod : PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget) :
8594    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget := by
8595  intro χ hχ hprime
8596  exact PRCCharacterNoMixedNonunitOrbitOrientation_of_product_no_mixed
8597    (hprod χ hχ hprime)
8598
8599theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_no_mixed_nonunit
8600    (hnomix : PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget) :
8601    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget := by
8602  intro χ hχ hprime
8603  exact PRCCharacterOrbitProductNoMixedOrientation_of_no_mixed_nonunit
8604    (hnomix χ hχ hprime)
8605
8606theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_no_mixed_nonunit :
8607    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
8608      PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget :=
8609  ⟨PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_product_no_mixed,
8610    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_no_mixed_nonunit⟩
8611
8612theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_branch_transport
8613    (htransport : PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget) :
8614    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget := by
8615  intro χ hχ hprime
8616  exact PRCCharacterOrbitProductNoMixedOrientation_of_identity_branch_transport
8617    (htransport χ hχ hprime)
8618
8619theorem PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_comparable_trace
8620    (hcomp : PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget) :
8621    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget := by
8622  intro χ hχ hprime
8623  exact PRCCharacterNonunitIdentityBranchTransport_of_comparable_trace
8624    (hcomp χ hχ hprime)
8625
8626theorem PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_of_transport_pair
8627    (hpair : PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget) :
8628    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget := by
8629  intro χ hχ hprime
8630  exact PRCCharacterNonunitBranchAgreement_of_transport_pair
8631    ⟨hpair.1 χ hχ hprime, hpair.2 χ hχ hprime⟩
8632
8633theorem PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_branch_agreement
8634    (hagree : PRCPrimeCalibrationForcesNonunitBranchAgreementTarget) :
8635    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget := by
8636  intro χ hχ hprime
8637  exact PRCCharacterNonunitIdentityBranchTransport_of_branch_agreement
8638    (hagree χ hχ hprime)
8639
8640theorem PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget_of_branch_agreement
8641    (hagree : PRCPrimeCalibrationForcesNonunitBranchAgreementTarget) :
8642    PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget := by
8643  intro χ hχ hprime
8644  exact PRCCharacterNonunitReciprocalBranchTransport_of_branch_agreement
8645    (hagree χ hχ hprime)
8646
8647theorem PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget_of_branch_agreement
8648    (hagree : PRCPrimeCalibrationForcesNonunitBranchAgreementTarget) :
8649    PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget :=
8650  ⟨PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_branch_agreement
8651      hagree,
8652    PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget_of_branch_agreement
8653      hagree⟩
8654
8655theorem PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_iff_transport_pair :
8656    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget ↔
8657      PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget :=
8658  ⟨PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget_of_branch_agreement,
8659    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_of_transport_pair⟩
8660
8661theorem PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_of_local_identity_transport
8662    (hsharp :
8663      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget) :
8664    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget := by
8665  intro χ hχ hprime
8666  exact PRCCharacterNonunitBranchAgreement_of_local_identity_branch_transport
8667    (hsharp.1 χ hχ hprime) (hsharp.2 χ hχ hprime)
8668
8669theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_of_local_branch_agreement
8670    (hsharp :
8671      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget) :
8672    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget :=
8673  ⟨hsharp.1,
8674    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_branch_agreement
8675      hsharp.2⟩
8676
8677theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget_of_local_identity_transport
8678    (hsharp :
8679      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget) :
8680    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget :=
8681  ⟨hsharp.1,
8682    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_of_local_identity_transport
8683      hsharp⟩
8684
8685theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget_iff_local_identity_transport :
8686    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget ↔
8687      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget :=
8688  ⟨PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_of_local_branch_agreement,
8689    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget_of_local_identity_transport⟩
8690
8691theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_of_local_identity_transport
8692    (hsharp :
8693      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget) :
8694    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget :=
8695  ⟨hsharp.1,
8696    (by
8697      intro χ hχ hprime
8698      exact PRCCharacterNonunitIdentityRespectsComparableTrace_of_branch_transport
8699        (hsharp.2 χ hχ hprime))⟩
8700
8701theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_of_local_comparable_trace
8702    (hsharp :
8703      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget) :
8704    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget :=
8705  ⟨hsharp.1,
8706    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_comparable_trace
8707      hsharp.2⟩
8708
8709theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_iff_local_comparable_trace :
8710    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget ↔
8711      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget :=
8712  ⟨PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_of_local_identity_transport,
8713    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_of_local_comparable_trace⟩
8714
8715theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget_of_local_product_no_mixed
8716    (hsharp : PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget) :
8717    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget :=
8718  ⟨hsharp.1,
8719    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_product_no_mixed
8720      hsharp.2⟩
8721
8722theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_product_no_mixed
8723    (hsharp : PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget) :
8724    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget := by
8725  intro χ hχ hprime
8726  exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_no_mixed
8727    (hsharp.1 χ hχ hprime)
8728    (PRCCharacterNoMixedNonunitOrbitOrientation_of_product_no_mixed
8729      (hsharp.2 χ hχ hprime))
8730
8731theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget_of_coherent
8732    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8733    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget :=
8734  ⟨(by
8735      intro χ hχ hprime
8736      exact PRCCharacterNonunitOrbitLocalOrientation_of_coherent
8737        (hcoh χ hχ hprime)),
8738    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_coherent hcoh⟩
8739
8740theorem PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_of_coherent
8741    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8742    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget := by
8743  intro χ hχ hprime
8744  exact PRCCharacterNonunitBranchAgreement_of_coherent (hcoh χ hχ hprime)
8745
8746theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget_of_coherent
8747    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8748    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget :=
8749  ⟨(by
8750      intro χ hχ hprime
8751      exact PRCCharacterNonunitOrbitLocalOrientation_of_coherent
8752        (hcoh χ hχ hprime)),
8753    PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_of_coherent hcoh⟩
8754
8755theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_branch_agreement
8756    (hsharp :
8757      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget) :
8758    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget := by
8759  intro χ hχ hprime
8760  exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_branch_agreement
8761    (hsharp.1 χ hχ hprime) (hsharp.2 χ hχ hprime)
8762
8763theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_local_branch_agreement :
8764    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
8765      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget :=
8766  ⟨PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget_of_coherent,
8767    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_branch_agreement⟩
8768
8769theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_no_mixed
8770    (hsharp : PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget) :
8771    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget := by
8772  intro χ hχ hprime
8773  exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_no_mixed
8774    (hsharp.1 χ hχ hprime) (hsharp.2 χ hχ hprime)
8775
8776theorem PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_coherent
8777    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8778    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget := by
8779  intro χ hχ hprime
8780  exact PRCCharacterNonunitIdentityBranchTransport_of_coherent
8781    (hcoh χ hχ hprime)
8782
8783theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_local_no_mixed :
8784    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
8785      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget :=
8786  ⟨PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget_of_coherent,
8787    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_no_mixed⟩
8788
8789/-- Sharpened source of nonunit orientation coherence: local nonunit orientation
8790plus prime-floor successor transport force every nonunit orbit direction onto
8791one coherent identity/reciprocal branch. -/
8792def PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget : Prop :=
8793  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
8794    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
8795
8796theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_and_prime_floor_successor_transport
8797    (hsharp : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget) :
8798    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget := by
8799  intro χ hχ hprime
8800  exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_prime_floor_successor_transport
8801    (hsharp.1 χ hχ hprime) (hsharp.2 χ hχ hprime)
8802
8803theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_nonunit_coherent
8804    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8805    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget := by
8806  intro χ hχ hprime
8807  exact PRCCharacterOrbitProductNoMixedOrientation_of_nonunit_coherent
8808    (hcoh χ hχ hprime)
8809
8810theorem PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_nonunit_coherent
8811    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8812    PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget := by
8813  intro χ hχ hprime
8814  exact PRCCharacterNonunitOrbitLocalOrientation_of_coherent
8815    (hcoh χ hχ hprime)
8816
8817theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_nonunit_coherent
8818    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8819    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget := by
8820  intro χ hχ hprime
8821  exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_local_adjacent_nomix
8822    (PRCCharacterNonunitOrbitLocalOrientation_of_coherent (hcoh χ hχ hprime))
8823    (PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_nonunit_coherent
8824      (hcoh χ hχ hprime))
8825
8826theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_prime_floor_successor_transport
8827    (hstep : PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
8828    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget := by
8829  intro χ hχ hprime
8830  exact PRCCharacterNonunitIdentityRespectsComparableTrace_of_prime_floor_successor_transport
8831    (hstep χ hχ hprime)
8832
8833theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget_of_nonunit_coherent
8834    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
8835    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget :=
8836  ⟨PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_nonunit_coherent hcoh,
8837    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_nonunit_coherent hcoh⟩
8838
8839theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_sharpened :
8840    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
8841      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget :=
8842  ⟨PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget_of_nonunit_coherent,
8843    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_and_prime_floor_successor_transport⟩
8844
8845theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_identity_comparable_trace
8846    (hcomp : PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget) :
8847    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget := by
8848  intro χ hχ hprime
8849  exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_nonunit_identity_comparable_trace
8850    (hcomp χ hχ hprime)
8851
8852theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_iff_prime_floor_successor_transport :
8853    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget ↔
8854      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget :=
8855  ⟨PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_identity_comparable_trace,
8856    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_prime_floor_successor_transport⟩
8857
8858theorem PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget_of_successor_transport
8859    (hstep : PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
8860    PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget := by
8861  intro χ hχ hprime
8862  exact (hstep χ hχ hprime).1
8863
8864theorem PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget_of_successor_transport
8865    (hstep : PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
8866    PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget := by
8867  intro χ hχ hprime
8868  exact (hstep χ hχ hprime).2
8869
8870theorem PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_successor_transport
8871    (hstep : PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
8872    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
8873  ⟨PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget_of_successor_transport
8874      hstep,
8875    PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget_of_successor_transport
8876      hstep⟩
8877
8878theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_successor_step_pair
8879    (hpair :
8880      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget) :
8881    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget := by
8882  intro χ hχ hprime
8883  exact ⟨hpair.1 χ hχ hprime, hpair.2 χ hχ hprime⟩
8884
8885theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_iff_successor_step_pair :
8886    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget ↔
8887      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
8888  ⟨PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_successor_transport,
8889    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_successor_step_pair⟩
8890
8891theorem PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_identity_comparable_trace
8892    (hcomp : PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget) :
8893    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
8894  PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_successor_transport
8895    (PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_identity_comparable_trace
8896      hcomp)
8897
8898theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_successor_step_pair
8899    (hpair :
8900      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget) :
8901    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget :=
8902  PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_prime_floor_successor_transport
8903    (PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_successor_step_pair
8904      hpair)
8905
8906theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_iff_successor_step_pair :
8907    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget ↔
8908      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
8909  ⟨PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_identity_comparable_trace,
8910    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_successor_step_pair⟩
8911
8912/-- Pass-45 sharpening of product-local orientation: same-orientation products
8913are algebraic and product-display compatibility is proved through canonical
8914normalization. The remaining product commitment is nonunit orientation
8915coherence, which implies product no-mixing. -/
8916def PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget : Prop :=
8917  PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
8918
8919theorem PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_of_crossEq_respect
8920    (hrespect : PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget) :
8921    PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget := by
8922  intro χ hχ hprime
8923  exact PRCCharacterOrbitProductDisplayCompatible_of_crossEq_respect
8924    (hrespect χ hχ hprime)
8925
8926theorem PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved :
8927    PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget :=
8928  PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_of_crossEq_respect
8929    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_proved
8930
8931theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_of_prime_floor_successor_transport
8932    (hstep : PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
8933    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget := by
8934  intro χ hχ hprime
8935  exact PRCCharacterPrimeIdentityWitnessGlobalizesNonunit_of_prime_floor_successor_transport
8936    (hstep χ hχ hprime)
8937
8938theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_prime_identity_witness_globalizes
8939    (hglobal :
8940      PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget) :
8941    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget := by
8942  intro χ hχ hprime
8943  exact
8944    PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_prime_identity_witness_globalizes
8945
8946      (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
8947        χ hχ hprime)
8948      (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
8949      (hglobal χ hχ hprime)
8950
8951theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_iff_prime_identity_witness_globalizes :
8952    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget ↔
8953      PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget :=
8954  ⟨PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_of_prime_floor_successor_transport,
8955    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_prime_identity_witness_globalizes⟩
8956
8957theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_of_no_mixed_prime_witnesses
8958    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
8959    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget := by
8960  intro χ hχ hprime
8961  exact PRCCharacterPrimeIdentityWitnessGlobalizesNonunit_of_no_mixed_prime_witnesses
8962
8963    (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
8964      χ hχ hprime)
8965    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
8966    (hnomix χ hχ hprime)
8967
8968theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_prime_identity_witness_globalizes
8969    (hglobal :
8970      PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget) :
8971    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
8972  intro χ hχ hprime
8973  exact PRCCharacterNoMixedPrimeWitnesses_of_prime_identity_witness_globalizes
8974    (hglobal χ hχ hprime)
8975
8976theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_iff_no_mixed_prime_witnesses :
8977    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget ↔
8978      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget :=
8979  ⟨PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_prime_identity_witness_globalizes,
8980    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_of_no_mixed_prime_witnesses⟩
8981
8982theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_product_no_mixed
8983    (hprod : PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget) :
8984    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget := by
8985  intro χ hχ hprime
8986  have hprodLocal : PRCCharacterOrbitProductLocalOrientationPropagates χ :=
8987    PRCCharacterOrbitProductLocalOrientationPropagates_of_display_compatible_nomix
8988      hχ (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
8989        χ hχ hprime) (hprod χ hχ hprime)
8990  exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_no_mixed
8991    (PRCCharacterNonunitOrbitLocalOrientation_of_prime_and_product_local
8992      (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
8993      hprodLocal)
8994    (PRCCharacterNoMixedNonunitOrbitOrientation_of_product_no_mixed
8995      (hprod χ hχ hprime))
8996
8997theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_nonunit_coherent :
8998    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
8999      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget :=
9000  ⟨PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_product_no_mixed,
9001    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_nonunit_coherent⟩
9002
9003theorem PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_product_no_mixed
9004    (hprod : PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget) :
9005    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget :=
9006  PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_coherent
9007    (PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_product_no_mixed
9008      hprod)
9009
9010theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_identity_branch_transport
9011    (htransport : PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget) :
9012    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget := by
9013  intro χ hχ hprime
9014  exact PRCCharacterNonunitIdentityWitnessGlobalizes_of_branch_transport
9015    (htransport χ hχ hprime)
9016
9017theorem PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_identity_witness_globalizes
9018    (hwitness :
9019      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget) :
9020    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget := by
9021  intro χ hχ hprime
9022  exact PRCCharacterNonunitIdentityBranchTransport_of_witness_globalizes
9023    (hwitness χ hχ hprime)
9024
9025theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_iff_identity_branch_transport :
9026    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget ↔
9027      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget :=
9028  ⟨PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_identity_witness_globalizes,
9029    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_identity_branch_transport⟩
9030
9031theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_product_no_mixed
9032    (hprod : PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget) :
9033    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget :=
9034  PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_identity_branch_transport
9035    (PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_product_no_mixed
9036      hprod)
9037
9038theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_witness_globalizes
9039    (hwitness :
9040      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget) :
9041    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget :=
9042  PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_branch_transport
9043    (PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_identity_witness_globalizes
9044      hwitness)
9045
9046theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_witness_globalizes :
9047    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
9048      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget :=
9049  ⟨PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_product_no_mixed,
9050    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_witness_globalizes⟩
9051
9052theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_identity_witness_globalizes
9053    (hwitness :
9054      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget) :
9055    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget :=
9056  PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_product_no_mixed
9057    (PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_witness_globalizes
9058      hwitness)
9059
9060theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_nonunit_coherent
9061    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
9062    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget := by
9063  intro χ hχ hprime
9064  exact PRCCharacterNonunitIdentityWitnessGlobalizes_of_coherent
9065    (hcoh χ hχ hprime)
9066
9067theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_identity_witness_globalizes :
9068    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
9069      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget :=
9070  ⟨PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_nonunit_coherent,
9071    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_identity_witness_globalizes⟩
9072
9073theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_of_no_mixed
9074    (hnomix : PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget) :
9075    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget := by
9076  intro χ hχ hprime
9077  exact PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_no_mixed
9078    (hnomix χ hχ hprime)
9079
9080theorem PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_identity_witness_excludes
9081    (hexcl :
9082      PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget) :
9083    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget := by
9084  intro χ hχ hprime
9085  exact PRCCharacterNoMixedNonunitOrbitOrientation_of_identity_witness_excludes
9086    (hexcl χ hχ hprime)
9087
9088theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_iff_no_mixed :
9089    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget ↔
9090      PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget :=
9091  ⟨PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_identity_witness_excludes,
9092    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_of_no_mixed⟩
9093
9094theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_identity_witness_excludes
9095    (hexcl :
9096      PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget) :
9097    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget := by
9098  intro χ hχ hprime
9099  exact PRCCharacterNonunitNoMixedWitnesses_of_identity_witness_excludes
9100    (hexcl χ hχ hprime)
9101
9102theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_of_no_mixed_witnesses
9103    (hnomix : PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget) :
9104    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget := by
9105  intro χ hχ hprime
9106  exact PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_no_mixed_witnesses
9107    (hnomix χ hχ hprime)
9108
9109theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_identity_witness_excludes :
9110    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget ↔
9111      PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget :=
9112  ⟨PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_of_no_mixed_witnesses,
9113    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_identity_witness_excludes⟩
9114
9115theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_no_mixed_prime_orientation
9116    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget) :
9117    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
9118  intro χ hχ hprime
9119  exact PRCCharacterNoMixedPrimeWitnesses_of_no_mixed_prime_orientation
9120    (hnomix χ hχ hprime)
9121
9122theorem PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_no_mixed_prime_witnesses
9123    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
9124    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget := by
9125  intro χ hχ hprime
9126  exact PRCCharacterNoMixedPrimeOrientation_of_no_mixed_prime_witnesses
9127    (hnomix χ hχ hprime)
9128
9129theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_orientation :
9130    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
9131      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget :=
9132  ⟨PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_no_mixed_prime_witnesses,
9133    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_no_mixed_prime_orientation⟩
9134
9135theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_of_no_mixed_prime_orientation
9136    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget) :
9137    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget := by
9138  intro χ hχ hprime
9139  exact PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_orientation
9140    (hnomix χ hχ hprime)
9141
9142theorem PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_identity_witness_excludes_reciprocal
9143    (hexcl :
9144      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget) :
9145    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget := by
9146  intro χ hχ hprime
9147  exact PRCCharacterNoMixedPrimeOrientation_of_identity_witness_excludes_reciprocal
9148    (hexcl χ hχ hprime)
9149
9150theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_iff_no_mixed_prime_orientation :
9151    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget ↔
9152      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget :=
9153  ⟨PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_identity_witness_excludes_reciprocal,
9154    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_of_no_mixed_prime_orientation⟩
9155
9156theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_identity_witness_excludes_reciprocal
9157    (hexcl :
9158      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget) :
9159    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
9160  intro χ hχ hprime
9161  exact PRCCharacterNoMixedPrimeWitnesses_of_identity_witness_excludes_reciprocal
9162    (hexcl χ hχ hprime)
9163
9164theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_of_no_mixed_prime_witnesses
9165    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
9166    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget := by
9167  intro χ hχ hprime
9168  exact PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_witnesses
9169    (hnomix χ hχ hprime)
9170
9171theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_identity_witness_excludes_reciprocal :
9172    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
9173      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget :=
9174  ⟨PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_of_no_mixed_prime_witnesses,
9175    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_identity_witness_excludes_reciprocal⟩
9176
9177theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_of_no_mixed_prime_orientation
9178    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget) :
9179    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget := by
9180  intro χ hχ hprime
9181  exact PRCCharacterPrimeReciprocalWitnessGlobalizes_of_local_no_mixed_prime_orientation
9182    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9183    (hnomix χ hχ hprime)
9184
9185theorem PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_reciprocal_witness_globalizes
9186    (hglobal :
9187      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget) :
9188    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget := by
9189  intro χ hχ hprime
9190  exact PRCCharacterNoMixedPrimeOrientation_of_reciprocal_witness_globalizes
9191    (hglobal χ hχ hprime)
9192
9193theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_no_mixed_prime_orientation :
9194    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget ↔
9195      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget :=
9196  ⟨PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_reciprocal_witness_globalizes,
9197    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_of_no_mixed_prime_orientation⟩
9198
9199theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_identity_witness_excludes_reciprocal :
9200    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget ↔
9201      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget :=
9202  PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_no_mixed_prime_orientation.trans
9203    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_iff_no_mixed_prime_orientation.symm
9204
9205theorem PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_of_reciprocal_witness_globalizes
9206    (hglobal :
9207      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget) :
9208    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget := by
9209  intro χ hχ hprime
9210  exact PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal_of_reciprocal_witness_globalizes
9211    (hglobal χ hχ hprime)
9212
9213theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_reciprocal_witness_globalizes
9214    (hglobal :
9215      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget) :
9216    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget := by
9217  intro χ hχ hprime
9218  exact PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_reciprocal_witness_globalizes
9219    (hglobal χ hχ hprime)
9220
9221theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_of_reciprocal_witness_globalizes
9222    (hglobal :
9223      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget) :
9224    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget :=
9225  ⟨PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_of_reciprocal_witness_globalizes
9226      hglobal,
9227    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_reciprocal_witness_globalizes
9228      hglobal⟩
9229
9230theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_of_split
9231    (hsplit :
9232      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget) :
9233    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget := by
9234  intro χ hχ hprime
9235  exact PRCCharacterPrimeReciprocalWitnessGlobalizes_of_split
9236    ⟨hsplit.1 χ hχ hprime, hsplit.2 χ hχ hprime⟩
9237
9238theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_split :
9239    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget ↔
9240      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget :=
9241  ⟨PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_of_reciprocal_witness_globalizes,
9242    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_of_split⟩
9243
9244theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_nonunit_no_mixed_witnesses
9245    (hnomix : PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget) :
9246    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
9247  intro χ hχ hprime
9248  exact PRCCharacterNoMixedPrimeWitnesses_of_nonunit_no_mixed_witnesses
9249    (hnomix χ hχ hprime)
9250
9251theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_of_nonunit_no_mixed_witnesses
9252    (hnomix : PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget) :
9253    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget :=
9254  ⟨PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_nonunit_no_mixed_witnesses
9255      hnomix,
9256    by
9257      intro χ hχ hprime _hprimeWitnesses
9258      exact hnomix χ hχ hprime⟩
9259
9260theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_split
9261    (hsplit : PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget) :
9262    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget := by
9263  intro χ hχ hprime
9264  exact (hsplit.2 χ hχ hprime) (hsplit.1 χ hχ hprime)
9265
9266theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_split :
9267    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget ↔
9268      PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget :=
9269  ⟨PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_of_nonunit_no_mixed_witnesses,
9270    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_split⟩
9271
9272theorem PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_of_mixed_reflects
9273    (hreflect :
9274      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget) :
9275    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget := by
9276  intro χ hχ hprime
9277  exact PRCCharacterPrimeWitnessesControlNonunitWitnesses_of_mixed_reflects
9278    (hreflect χ hχ hprime)
9279
9280theorem PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_of_prime_control
9281    (hcontrol :
9282      PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget) :
9283    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget := by
9284  intro χ hχ hprime
9285  exact PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses_of_prime_control
9286    (hcontrol χ hχ hprime)
9287
9288theorem PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_iff_mixed_reflects :
9289    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget ↔
9290      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget :=
9291  ⟨PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_of_prime_control,
9292    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_of_mixed_reflects⟩
9293
9294theorem PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget_of_reflects
9295    (hreflect :
9296      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget) :
9297    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget := by
9298  constructor
9299  · intro χ hχ hprime
9300    exact (PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit_of_reflects
9301      (hreflect χ hχ hprime)).1
9302  · intro χ hχ hprime
9303    exact (PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit_of_reflects
9304      (hreflect χ hχ hprime)).2
9305
9306theorem PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_of_split
9307    (hsplit :
9308      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget) :
9309    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget := by
9310  intro χ hχ hprime
9311  exact PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses_of_split
9312    ⟨hsplit.1 χ hχ hprime, hsplit.2 χ hχ hprime⟩
9313
9314theorem PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_iff_split :
9315    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget ↔
9316      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget :=
9317  ⟨PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget_of_reflects,
9318    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_of_split⟩
9319
9320theorem PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget_proved :
9321    PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget := by
9322  intro χ hχ hprime
9323  exact PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness_of_prime_local
9324
9325    (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
9326      χ hχ hprime)
9327    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9328
9329theorem PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget_proved :
9330    PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget := by
9331  intro χ hχ hprime
9332  exact PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness_of_prime_local
9333
9334    (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
9335      χ hχ hprime)
9336    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9337
9338theorem PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget_proved :
9339    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget :=
9340  ⟨PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget_proved,
9341    PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget_proved⟩
9342
9343theorem PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_proved :
9344    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget :=
9345  PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_of_split
9346    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget_proved
9347
9348theorem PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_proved :
9349    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget :=
9350  PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_of_mixed_reflects
9351    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_proved
9352
9353theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_of_no_mixed_prime_witnesses
9354    (hprime : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
9355    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget :=
9356  ⟨hprime, PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_proved⟩
9357
9358theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_no_mixed_prime_witnesses
9359    (hprime : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
9360    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget :=
9361  PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_split
9362    (PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_of_no_mixed_prime_witnesses
9363      hprime)
9364
9365theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_no_mixed_prime_witnesses :
9366    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget ↔
9367      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget :=
9368  ⟨PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_nonunit_no_mixed_witnesses,
9369    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_no_mixed_prime_witnesses⟩
9370
9371theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_local_exclusion
9372    (hsharp :
9373      PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget) :
9374    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget := by
9375  intro χ hχ hprime
9376  exact PRCCharacterNonunitIdentityWitnessGlobalizes_of_local_excludes
9377    (hsharp.1 χ hχ hprime) (hsharp.2 χ hχ hprime)
9378
9379theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget_of_identity_witness_globalizes
9380    (hwitness :
9381      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget) :
9382    PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget :=
9383  ⟨PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_nonunit_coherent
9384      (PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_identity_witness_globalizes
9385        hwitness),
9386    (by
9387      intro χ hχ hprime
9388      exact PRCCharacterNonunitIdentityWitnessExcludesReciprocal_of_globalizes
9389        (hwitness χ hχ hprime))⟩
9390
9391theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_iff_local_exclusion :
9392    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget ↔
9393      PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget :=
9394  ⟨PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget_of_identity_witness_globalizes,
9395    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_local_exclusion⟩
9396
9397theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_branch_transport :
9398    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
9399      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget :=
9400  ⟨PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_product_no_mixed,
9401    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_branch_transport⟩
9402
9403theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_branch_transport
9404    (htransport : PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget) :
9405    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget := by
9406  intro χ hχ hprime
9407  exact PRCCharacterNonunitIdentityRespectsComparableTrace_of_branch_transport
9408    (htransport χ hχ hprime)
9409
9410theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_product_no_mixed
9411    (hprod : PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget) :
9412    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget :=
9413  PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_branch_transport
9414    (PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_product_no_mixed
9415      hprod)
9416
9417theorem PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_iff_comparable_trace :
9418    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget ↔
9419      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget :=
9420  ⟨PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_branch_transport,
9421    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_comparable_trace⟩
9422
9423theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_comparable_trace :
9424    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
9425      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget :=
9426  ⟨PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_product_no_mixed,
9427    fun hcomp =>
9428      PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_branch_transport
9429        (PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_comparable_trace
9430          hcomp)⟩
9431
9432theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_successor_step_pair
9433    (hpair :
9434      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget) :
9435    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget :=
9436  (PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_comparable_trace.mpr
9437    (PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_successor_step_pair
9438      hpair))
9439
9440theorem PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_product_no_mixed
9441    (hprod : PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget) :
9442    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
9443  PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_identity_comparable_trace
9444    (PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_product_no_mixed
9445      hprod)
9446
9447theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_successor_step_pair :
9448    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
9449      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
9450  ⟨PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_product_no_mixed,
9451    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_successor_step_pair⟩
9452
9453theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_successor_step_pair
9454    (hpair :
9455      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget) :
9456    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget :=
9457  PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_product_no_mixed
9458    (PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_successor_step_pair
9459      hpair)
9460
9461theorem PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_nonunit_coherent
9462    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
9463    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
9464  PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_successor_transport
9465    (PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_nonunit_coherent
9466      hcoh)
9467
9468theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_successor_step_pair :
9469    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
9470      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget :=
9471  ⟨PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_nonunit_coherent,
9472    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_successor_step_pair⟩
9473
9474theorem PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget_of_identity_comparable_trace
9475    (hcomp : PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget) :
9476    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget := by
9477  intro χ hχ hprime
9478  exact PRCCharacterOrbitProductLocalOrientationPropagates_of_display_compatible_nomix
9479    hχ (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
9480      χ hχ hprime)
9481    ((PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_comparable_trace.mpr
9482      hcomp) χ hχ hprime)
9483
9484theorem PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_identity_comparable_trace
9485    (hcomp : PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget) :
9486    PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget := by
9487  intro χ hχ hprime
9488  exact PRCCharacterNonunitOrbitLocalOrientation_of_prime_and_product_local
9489    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9490    ((PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget_of_identity_comparable_trace
9491      hcomp) χ hχ hprime)
9492
9493theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_of_identity_comparable_trace
9494    (hcomp : PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget) :
9495    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget :=
9496  ⟨PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_identity_comparable_trace
9497      hcomp,
9498    hcomp⟩
9499
9500theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_local_comparable_trace
9501    (hsharp :
9502      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget) :
9503    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget :=
9504  hsharp.2
9505
9506theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_iff_identity_comparable_trace :
9507    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget ↔
9508      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget :=
9509  ⟨PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_local_comparable_trace,
9510    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_of_identity_comparable_trace⟩
9511
9512/-- Second component of the prime-floor successor blocker: adjacent nonunit
9513orbit directions cannot carry opposite identity/reciprocal orientations. -/
9514def PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget : Prop :=
9515  ∀ χ : RatioOrbit → RatioOrbit,
9516    PRCRatioCharacter χ →
9517      PRCCharacterPrimeDirectionCalibrated χ →
9518        PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ
9519
9520theorem PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_of_nonunit_coherent
9521    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
9522    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget := by
9523  intro χ hχ hprime
9524  exact PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_nonunit_coherent
9525    (hcoh χ hχ hprime)
9526
9527theorem PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_of_successor_transport
9528    (hstep : PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
9529    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget := by
9530  intro χ hχ hprime
9531  exact PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_successor_transport
9532    (hstep χ hχ hprime)
9533
9534/-- The exact local version of the corrected successor blocker: local nonunit
9535orientation plus adjacent no-mixing is equivalent to local nonunit orientation
9536plus prime-floor successor transport. -/
9537def PRCPrimeFloorSuccessorTransportLocalAdjacentTarget : Prop :=
9538  PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
9539    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget
9540
9541/-- Pass-39 refinement of the prime-floor successor target. It separates local
9542nonunit orientation from adjacent no-mixing instead of bundling both facts under
9543successor transport. -/
9544def PRCPrimeFloorSuccessorTransportSharpenedTarget : Prop :=
9545  PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget ∧
9546    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget
9547
9548theorem PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget_of_additive_compat
9549    (hadd : PRCPrimeCalibrationForcesOrbitSuccessorAdditiveCompatibilityTarget) :
9550    PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget := by
9551  intro χ hχ hprime
9552  exact PRCCharacterOrbitIdentitySuccessorTransport_of_additive_compat
9553    (hadd χ hχ hprime)
9554
9555theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_local_adjacent_nomix
9556    (hsharp : PRCPrimeFloorSuccessorTransportSharpenedTarget) :
9557    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget := by
9558  intro χ hχ hprime
9559  exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_local_adjacent_nomix
9560    (PRCCharacterNonunitOrbitLocalOrientation_of_coherent
9561      (hsharp.1 χ hχ hprime))
9562    (hsharp.2 χ hχ hprime)
9563
9564theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_local_adjacent_target
9565    (hsharp : PRCPrimeFloorSuccessorTransportLocalAdjacentTarget) :
9566    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget := by
9567  intro χ hχ hprime
9568  exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_local_adjacent_nomix
9569    (hsharp.1 χ hχ hprime) (hsharp.2 χ hχ hprime)
9570
9571theorem PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_of_local_successor_transport
9572    (hsharp :
9573      PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
9574        PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
9575    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget :=
9576  ⟨hsharp.1,
9577    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_of_successor_transport
9578      hsharp.2⟩
9579
9580theorem PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_iff_local_successor_transport :
9581    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget ↔
9582      (PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
9583        PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :=
9584  ⟨(fun hsharp =>
9585      ⟨hsharp.1,
9586        PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_local_adjacent_target
9587          hsharp⟩),
9588    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_of_local_successor_transport⟩
9589
9590theorem PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_of_nonunit_coherent
9591    (hcoh : PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget) :
9592    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget :=
9593  ⟨PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_nonunit_coherent hcoh,
9594    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_of_nonunit_coherent
9595      hcoh⟩
9596
9597theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_adjacent
9598    (hsharp : PRCPrimeFloorSuccessorTransportLocalAdjacentTarget) :
9599    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget := by
9600  exact PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_and_prime_floor_successor_transport
9601    ⟨hsharp.1,
9602      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_local_adjacent_target
9603        hsharp⟩
9604
9605theorem PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_iff_nonunit_coherent :
9606    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget ↔
9607      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget :=
9608  ⟨PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_adjacent,
9609    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_of_nonunit_coherent⟩
9610
9611theorem PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_product_local_orientation
9612    (hprod : PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget) :
9613    PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget := by
9614  intro χ hχ hprime
9615  exact PRCCharacterNonunitOrbitLocalOrientation_of_prime_and_product_local
9616    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9617    (hprod χ hχ hprime)
9618
9619theorem PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget_of_display_compatible_nomix
9620    (hsharp : PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget) :
9621    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget := by
9622  intro χ hχ hprime
9623  exact PRCCharacterOrbitProductLocalOrientationPropagates_of_display_compatible_nomix
9624    hχ (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
9625      χ hχ hprime)
9626    (PRCCharacterOrbitProductNoMixedOrientation_of_nonunit_coherent
9627      (hsharp χ hχ hprime))
9628
9629theorem PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_prime_floor_successor_transport
9630    (hstep : PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) :
9631    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget := by
9632  intro χ hχ hprime
9633  exact PRCCharacterPrimeIdentityRespectsComparableTrace_of_prime_floor_successor_transport
9634    (hstep χ hχ hprime)
9635
9636theorem PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget_of_transport
9637    (htransport : PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget) :
9638    PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget := by
9639  intro χ hχ hprime
9640  exact PRCCharacterOrbitIdentityRespectsSuccessorStep_of_transport
9641    (htransport χ hχ hprime)
9642
9643theorem PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_successor_step
9644    (hstep : PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget) :
9645    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget := by
9646  intro χ hχ hprime
9647  exact PRCCharacterPrimeIdentityRespectsComparableTrace_of_successor_step
9648    (hstep χ hχ hprime)
9649
9650theorem PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_comparable_trace
9651    (hcomp : PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget) :
9652    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget := by
9653  intro χ hχ hprime
9654  exact PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_comparable_trace
9655    (hcomp χ hχ hprime)
9656
9657theorem PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_common_trace_extension
9658    (hcommon : PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget) :
9659    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget := by
9660  intro χ hχ hprime
9661  exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_common_trace_extension
9662    (hcommon χ hχ hprime)
9663
9664theorem PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_canonical_add_trace
9665    (hcanon : PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget) :
9666    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget := by
9667  intro χ hχ hprime
9668  exact PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_canonical_add_trace
9669    (hcanon χ hχ hprime)
9670
9671theorem PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_iff_common_trace_extension :
9672    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget ↔
9673      PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget :=
9674  ⟨PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_canonical_add_trace,
9675    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_common_trace_extension⟩
9676
9677theorem PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_common_trace_extension
9678    (hcommon : PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget) :
9679    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget := by
9680  intro χ hχ hprime
9681  exact PRCCharacterPrimeIdentityRespectsTraceConnected_of_common_trace_extension
9682    (hcommon χ hχ hprime)
9683
9684theorem PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_trace_transport
9685    (htransport : PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget) :
9686    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget := by
9687  intro χ hχ hprime
9688  exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_trace_connected
9689    (htransport χ hχ hprime)
9690
9691theorem PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_canonical_add_trace
9692    (hcanon : PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget) :
9693    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget := by
9694  intro χ hχ hprime
9695  exact PRCCharacterPrimeIdentityRespectsTraceConnected_of_canonical_add_trace
9696    (hcanon χ hχ hprime)
9697
9698theorem PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_iff_trace_transport :
9699    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget ↔
9700      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget :=
9701  ⟨PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_canonical_add_trace,
9702    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_trace_transport⟩
9703
9704theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_trace_coherence
9705    (hcoh : PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget) :
9706    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
9707  intro χ hχ hprime
9708  exact PRCCharacterPrimeIdentityBranchUniform_of_trace_coherence
9709    (hcoh χ hχ hprime)
9710
9711theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_branch_uniformity
9712    (huniform : PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
9713    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget := by
9714  intro χ hχ hprime
9715  exact PRCCharacterPrimeIdentityTraceCoherent_of_branch_uniform
9716    (huniform χ hχ hprime)
9717
9718theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_trace_coherence :
9719    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
9720      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget :=
9721  ⟨PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_branch_uniformity,
9722    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_trace_coherence⟩
9723
9724theorem PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_branch_uniformity
9725    (huniform : PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
9726    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget := by
9727  intro χ hχ hprime
9728  exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_branch_uniform
9729    (huniform χ hχ hprime)
9730
9731theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_canonical_add_trace
9732    (hcanon : PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget) :
9733    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
9734  intro χ hχ hprime
9735  exact PRCCharacterPrimeIdentityBranchUniform_of_canonical_add_trace
9736    (hcanon χ hχ hprime)
9737
9738theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_canonical_add_trace :
9739    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
9740      PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget :=
9741  ⟨PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_branch_uniformity,
9742    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_canonical_add_trace⟩
9743
9744theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_trace_transport
9745    (htransport : PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget) :
9746    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget := by
9747  intro χ hχ hprime p hp r hr hpId
9748  exact htransport χ hχ hprime p hp r hr
9749    (PRCPrimeAxisTraceConnected_proved p hp r hr) hpId
9750
9751theorem PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_trace_coherence
9752    (hcoh : PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget) :
9753    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget := by
9754  intro χ hχ hprime
9755  exact PRCCharacterPrimeIdentityRespectsComparableTrace_of_trace_coherence
9756    (hcoh χ hχ hprime)
9757
9758theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_comparable_trace
9759    (hcomp : PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget) :
9760    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget := by
9761  intro χ hχ hprime
9762  exact PRCCharacterPrimeIdentityTraceCoherent_of_comparable_trace
9763    (hcomp χ hχ hprime)
9764
9765theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_comparable_trace :
9766    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget ↔
9767      PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget :=
9768  ⟨PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_trace_coherence,
9769    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_comparable_trace⟩
9770
9771theorem PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_trace_coherence
9772    (hcoh : PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget) :
9773    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget := by
9774  intro χ hχ hprime
9775  exact PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_trace_coherence
9776    (hcoh χ hχ hprime)
9777
9778theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_common_trace_extension
9779    (hcommon : PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget) :
9780    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget := by
9781  intro χ hχ hprime
9782  exact PRCCharacterPrimeIdentityTraceCoherent_of_common_trace_extension
9783    (hcommon χ hχ hprime)
9784
9785theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_common_trace_extension :
9786    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget ↔
9787      PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget :=
9788  ⟨PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_trace_coherence,
9789    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_common_trace_extension⟩
9790
9791theorem PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_trace_coherence
9792    (hcoh : PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget) :
9793    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget := by
9794  intro χ hχ hprime
9795  exact PRCCharacterPrimeIdentityRespectsTraceConnected_of_trace_coherence
9796    (hcoh χ hχ hprime)
9797
9798theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_trace_transport :
9799    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget ↔
9800      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget :=
9801  ⟨PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_trace_coherence,
9802    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_trace_transport⟩
9803
9804theorem PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_nonunit_identity_comparable_trace
9805    (hcomp : PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget) :
9806    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget := by
9807  intro χ hχ hprime
9808  exact PRCCharacterPrimeIdentityRespectsComparableTrace_of_nonunit_identity_comparable_trace
9809    (hcomp χ hχ hprime)
9810
9811theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_prime_identity_comparable_trace
9812    (hcomp : PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget) :
9813    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget := by
9814  intro χ hχ hprime
9815  exact PRCCharacterNonunitIdentityRespectsComparableTrace_of_prime_comparable
9816
9817    (PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
9818      χ hχ hprime)
9819    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9820    (hcomp χ hχ hprime)
9821
9822theorem PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_iff_nonunit_identity_comparable_trace :
9823    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget ↔
9824      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget :=
9825  ⟨PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_prime_identity_comparable_trace,
9826    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_nonunit_identity_comparable_trace⟩
9827
9828theorem PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_iff_prime_floor_successor_transport :
9829    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget ↔
9830      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget :=
9831  PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_iff_nonunit_identity_comparable_trace.trans
9832    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_iff_prime_floor_successor_transport
9833
9834theorem PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_trace_coherence
9835    (htrace : PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget) :
9836    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget := by
9837  intro χ hχ hprime p hp r hr hpId hrRec
9838  have hrId := htrace χ hχ hprime p hp r hr hpId
9839  have hself :
9840      RatioOrbit.crossEq
9841        (primeDirection r hr)
9842        (RatioOrbit.recip (primeDirection r hr)) :=
9843    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hrId) hrRec
9844  exact primeDirection_not_crossEq_recip r hr hself
9845
9846theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_no_mixed_prime_orientation
9847    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget) :
9848    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget := by
9849  intro χ hχ hprime
9850  exact PRCCharacterPrimeIdentityTraceCoherent_of_local_no_mixed_prime_orientation
9851    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9852    (hnomix χ hχ hprime)
9853
9854theorem PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_iff_trace_coherence :
9855    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget ↔
9856      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget :=
9857  ⟨PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_no_mixed_prime_orientation,
9858    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_trace_coherence⟩
9859
9860theorem PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_branch_uniformity
9861    (huniform : PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
9862    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget := by
9863  intro χ hχ hprime
9864  exact PRCCharacterNoMixedPrimeOrientation_of_branch_uniform
9865    (huniform χ hχ hprime)
9866
9867theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_no_mixed_prime_orientation
9868    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget) :
9869    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
9870  intro χ hχ hprime
9871  exact PRCCharacterPrimeIdentityBranchUniform_of_local_no_mixed_prime_orientation
9872    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
9873    (hnomix χ hχ hprime)
9874
9875theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_no_mixed_prime_orientation :
9876    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
9877      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget :=
9878  ⟨PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_branch_uniformity,
9879    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_no_mixed_prime_orientation⟩
9880
9881theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_trace_coherence :
9882    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
9883      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget :=
9884  PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_orientation.trans
9885    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_iff_trace_coherence
9886
9887/-- Sharper orientation blocker A: prime cost calibration must choose one
9888coherent orientation across all native prime axes. This is the place where
9889mixed independent prime inversions must be ruled out. -/
9890def PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget : Prop :=
9891  ∀ χ : RatioOrbit → RatioOrbit,
9892    PRCRatioCharacter χ →
9893      PRCCharacterPrimeDirectionCalibrated χ →
9894        PRCCharacterPrimeOrientationCoherent χ
9895
9896/-- Distinguished-prime normal form of the same blocker: prime calibration must
9897make the branch chosen at orbit `2` control every native prime branch. -/
9898def PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget : Prop :=
9899  ∀ χ : RatioOrbit → RatioOrbit,
9900    PRCRatioCharacter χ →
9901      PRCCharacterPrimeDirectionCalibrated χ →
9902        PRCCharacterTwoPrimeBranchControlsPrimes χ
9903
9904/-- Identity-iff-two target: prime calibration must force identity orientation
9905on any prime axis exactly when it forces identity on the distinguished orbit
9906`2` prime axis. -/
9907def PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget : Prop :=
9908  ∀ χ : RatioOrbit → RatioOrbit,
9909    PRCRatioCharacter χ →
9910      PRCCharacterPrimeDirectionCalibrated χ →
9911        PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ
9912
9913/-- One-sided distinguished-axis target: prime calibration must force identity
9914at the orbit-`2` prime axis from identity at any calibrated prime axis. -/
9915def PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget : Prop :=
9916  ∀ χ : RatioOrbit → RatioOrbit,
9917    PRCRatioCharacter χ →
9918      PRCCharacterPrimeDirectionCalibrated χ →
9919        PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ
9920
9921/-- Two-reciprocal exclusion target: if prime calibration leaves the orbit-`2`
9922axis on the reciprocal branch, no native prime axis may remain on identity. -/
9923def PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget : Prop :=
9924  ∀ χ : RatioOrbit → RatioOrbit,
9925    PRCRatioCharacter χ →
9926      PRCCharacterPrimeDirectionCalibrated χ →
9927        PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ
9928
9929/-- Two-specific mixed-witness exclusion target: if the orbit-`2` prime axis is
9930reciprocal-oriented, no identity-oriented native prime witness may exist. -/
9931def PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget :
9932    Prop :=
9933  ∀ χ : RatioOrbit → RatioOrbit,
9934    PRCRatioCharacter χ →
9935      PRCCharacterPrimeDirectionCalibrated χ →
9936        PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ
9937
9938/-- Exact calibrated mixed-character model whose nonexistence is equivalent to
9939the orbit-`2` mixed-witness exclusion target. Constructing this model would
9940refute the current character-rigidity route. -/
9941def PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter :
9942    Prop :=
9943  ∃ χ : RatioOrbit → RatioOrbit,
9944    PRCRatioCharacter χ ∧
9945      PRCCharacterPrimeDirectionCalibrated χ ∧
9946        PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed χ
9947
9948/-- Sharpened calibrated mixed-character model: orbit `2` is reciprocal, while
9949a non-`2` native prime witness is identity-oriented. -/
9950def PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter :
9951    Prop :=
9952  ∃ χ : RatioOrbit → RatioOrbit,
9953    PRCRatioCharacter χ ∧
9954      PRCCharacterPrimeDirectionCalibrated χ ∧
9955        PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed χ
9956
9957/-- Concrete calibrated two-adic axis-twist model. Constructing this object is
9958the native valuation route to refuting the current character-rigidity branch. -/
9959def PRCPrimeCalibratedTwoAdicAxisTwistCharacter : Prop :=
9960  ∃ χ : RatioOrbit → RatioOrbit,
9961    PRCRatioCharacter χ ∧
9962      PRCCharacterPrimeDirectionCalibrated χ ∧
9963        PRCCharacterTwoAdicAxisTwist χ
9964
9965theorem PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist
9966    {χ : RatioOrbit → RatioOrbit}
9967    (htwist : PRCCharacterTwoAdicAxisTwist χ) :
9968    PRCCharacterPrimeDirectionCalibrated χ := by
9969  intro p hp
9970  by_cases hptwo : p = twoOrbit
9971  · subst p
9972    have hcost :
9973        RatioOrbit.crossEq
9974          (costFromCharacter χ twoPrimeDirection)
9975          (onRatioOrbit twoPrimeDirection) := by
9976      unfold costFromCharacter
9977      exact
9978        RatioOrbit.crossEq_trans
9979          (onRatioOrbit_congr htwist.1)
9980          (RatioOrbit.crossEq_symm (reciprocal_symmetric twoPrimeDirection))
9981    simpa [twoPrimeDirection, primeDirection] using hcost
9982  · unfold costFromCharacter
9983    exact onRatioOrbit_congr (htwist.2 p hp hptwo)
9984
9985theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_ratio_character_axis_twist
9986    (htwist : PRCTwoAdicAxisTwistRatioCharacter) :
9987    PRCPrimeCalibratedTwoAdicAxisTwistCharacter := by
9988  rcases htwist with ⟨χ, hχ, hbranch⟩
9989  exact
9990    ⟨χ, hχ,
9991      PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist hbranch,
9992      hbranch⟩
9993
9994theorem PRCTwoAdicAxisTwistRatioCharacter_of_calibrated_two_adic_axis_twist
9995    (htwist : PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
9996    PRCTwoAdicAxisTwistRatioCharacter := by
9997  rcases htwist with ⟨χ, hχ, _hprime, hbranch⟩
9998  exact ⟨χ, hχ, hbranch⟩
9999
10000theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_iff_ratio_character_axis_twist :
10001    PRCPrimeCalibratedTwoAdicAxisTwistCharacter ↔
10002      PRCTwoAdicAxisTwistRatioCharacter :=
10003  ⟨PRCTwoAdicAxisTwistRatioCharacter_of_calibrated_two_adic_axis_twist,
10004    PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_ratio_character_axis_twist⟩
10005
10006theorem PRCTwoAdicAxisTwistRatioCharacter_absurd_of_no_calibrated_twist
10007    (hno : ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
10008    ¬ PRCTwoAdicAxisTwistRatioCharacter := by
10009  intro htwist
10010  exact hno
10011    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_ratio_character_axis_twist
10012      htwist)
10013
10014/-- Calibrated composite-defect model equivalent to the non-two mixed-prime
10015blocker, but with the forced composite image `χ(2*p)=p/2` exposed. -/
10016def PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter :
10017    Prop :=
10018  ∃ χ : RatioOrbit → RatioOrbit,
10019    PRCRatioCharacter χ ∧
10020      PRCCharacterPrimeDirectionCalibrated χ ∧
10021        PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect χ
10022
10023/-- Calibrated cost-visible composite-defect model equivalent to the Pass 95
10024blocker, but now exposing the actual composite J-cost failure. -/
10025def PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter :
10026    Prop :=
10027  ∃ χ : RatioOrbit → RatioOrbit,
10028    PRCRatioCharacter χ ∧
10029      PRCCharacterPrimeDirectionCalibrated χ ∧
10030        PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect χ
10031
10032/-- Calibrated mixed-prime witness model: a ratio character satisfies prime
10033calibration while carrying both an identity-oriented prime witness and a
10034reciprocal-oriented prime witness. Nonexistence of this model is definitionally
10035the current no-mixed-prime witness blocker. -/
10036def PRCPrimeCalibratedMixedPrimeWitnessesCharacter : Prop :=
10037  ∃ χ : RatioOrbit → RatioOrbit,
10038    PRCRatioCharacter χ ∧
10039      PRCCharacterPrimeDirectionCalibrated χ ∧
10040        PRCCharacterMixedPrimeWitnesses χ
10041
10042/-- Fully unpacked calibrated mixed-prime pair model: a calibrated ratio
10043character plus named native prime axes `p` and `r`, with `p` identity-oriented
10044and `r` reciprocal-oriented. This is the current obstruction with no remaining
10045propositional packaging around the two branch witnesses. -/
10046def PRCPrimeCalibratedMixedPrimePairWitnessCharacter : Prop :=
10047  ∃ χ : RatioOrbit → RatioOrbit,
10048    PRCRatioCharacter χ ∧
10049      PRCCharacterPrimeDirectionCalibrated χ ∧
10050        PRCCharacterMixedPrimePairWitnesses χ
10051
10052/-- Calibrated same-axis mixed-prime pair model: the mixed branch occurs at a
10053single native prime orbit. -/
10054def PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter : Prop :=
10055  ∃ χ : RatioOrbit → RatioOrbit,
10056    PRCRatioCharacter χ ∧
10057      PRCCharacterPrimeDirectionCalibrated χ ∧
10058        PRCCharacterSamePrimeMixedPairWitnesses χ
10059
10060/-- Calibrated distinct-axis mixed-prime pair model: the mixed branch occurs
10061between two different native prime orbits. -/
10062def PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter : Prop :=
10063  ∃ χ : RatioOrbit → RatioOrbit,
10064    PRCRatioCharacter χ ∧
10065      PRCCharacterPrimeDirectionCalibrated χ ∧
10066        PRCCharacterDistinctPrimeMixedPairWitnesses χ
10067
10068theorem PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter_of_non_two_mixed
10069    (hmix :
10070      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter) :
10071    PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
10072  rcases hmix with ⟨χ, hχ, hprime, htwoRec, p, hp, hpne, hpId⟩
10073  exact
10074    ⟨χ, hχ, hprime, p, hp, twoOrbit, twoOrbit_primeOrbit, hpne, hpId,
10075      by simpa [twoPrimeDirection] using htwoRec⟩
10076
10077/-- Trace-connected reciprocal target: prime calibration should force reciprocal
10078orientation at the orbit-`2` prime axis to transport along any finite δ-trace
10079connection to a native prime axis. -/
10080def PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget : Prop :=
10081  ∀ χ : RatioOrbit → RatioOrbit,
10082    PRCRatioCharacter χ →
10083      PRCCharacterPrimeDirectionCalibrated χ →
10084        PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ
10085
10086/-- Two-prime identity trace-connected target: prime calibration should force
10087identity orientation at the orbit-`2` prime axis to transport along any finite
10088δ-trace connection to a native prime axis. Pass 81 isolates this as the same
10089blocker as reciprocal trace transport, seen through reciprocal twist. -/
10090def PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget : Prop :=
10091  ∀ χ : RatioOrbit → RatioOrbit,
10092    PRCRatioCharacter χ →
10093      PRCCharacterPrimeDirectionCalibrated χ →
10094        PRCCharacterTwoPrimeIdentityRespectsTraceConnected χ
10095
10096theorem PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_local_and_nomixed
10097    (hlocal : PRCPrimeCalibrationForcesLocalPrimeOrientationTarget)
10098    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget) :
10099    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget := by
10100  intro χ hχ hprime
10101  have hloc := hlocal χ hχ hprime
10102  have hno := hnomix χ hχ hprime
10103  by_cases hId :
10104      ∃ p : DistinctionNat, ∃ hp : DistinctionNat.primeOrbit p,
10105        RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
10106  · rcases hId with ⟨p0, hp0, hid0⟩
10107    exact Or.inl (by
10108      intro p hp
10109      rcases hloc p hp with hid | hrec
10110      · exact hid
10111      · exact False.elim (hno p0 hp0 p hp hid0 hrec))
10112  · exact Or.inr (by
10113      intro p hp
10114      rcases hloc p hp with hid | hrec
10115      · exact False.elim (hId ⟨p, hp, hid⟩)
10116      · exact hrec)
10117
10118theorem PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_no_mixed_prime_witnesses
10119    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
10120    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget :=
10121  PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_local_and_nomixed
10122    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved
10123    (PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_no_mixed_prime_witnesses
10124      hnomix)
10125
10126theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_coherent_prime_orientation
10127    (hcoh : PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget) :
10128    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
10129  intro χ hχ hprime
10130  exact PRCCharacterNoMixedPrimeWitnesses_of_coherent_prime_orientation
10131    (hcoh χ hχ hprime)
10132
10133theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_coherent_prime_orientation :
10134    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10135      PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget :=
10136  ⟨PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_no_mixed_prime_witnesses,
10137    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_coherent_prime_orientation⟩
10138
10139theorem PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_of_coherent_prime_orientation
10140    (hcoh : PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget) :
10141    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget := by
10142  intro χ hχ hprime
10143  exact PRCCharacterTwoPrimeBranchControlsPrimes_of_coherent
10144    (hcoh χ hχ hprime)
10145
10146theorem PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_two_prime_branch_controls
10147    (hctrl : PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget) :
10148    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget := by
10149  intro χ hχ hprime
10150  exact PRCCharacterPrimeOrientationCoherent_of_local_two_prime_branch_controls
10151    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
10152    (hctrl χ hχ hprime)
10153
10154theorem PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_iff_two_prime_branch_controls :
10155    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget ↔
10156      PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget :=
10157  ⟨PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_of_coherent_prime_orientation,
10158    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_two_prime_branch_controls⟩
10159
10160theorem PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_two_prime_branch_controls
10161    (hctrl : PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget) :
10162    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget := by
10163  intro χ hχ hprime
10164  exact PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_local_two_prime_branch_controls
10165    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
10166    (hctrl χ hχ hprime)
10167
10168theorem PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_of_prime_identity_iff_two
10169    (hiff : PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget) :
10170    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget := by
10171  intro χ hχ hprime
10172  exact PRCCharacterTwoPrimeBranchControlsPrimes_of_local_prime_identity_iff_two
10173    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
10174    (hiff χ hχ hprime)
10175
10176theorem PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_iff_prime_identity_iff_two :
10177    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget ↔
10178      PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget :=
10179  ⟨PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_two_prime_branch_controls,
10180    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_of_prime_identity_iff_two⟩
10181
10182theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_identity_iff_two
10183    (hiff : PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget) :
10184    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget := by
10185  intro χ hχ hprime
10186  exact PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_identity_iff_two
10187    (hiff χ hχ hprime)
10188
10189theorem PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_identity_forces_two
10190    (hforces :
10191      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
10192    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget := by
10193  intro χ hχ hprime p hp
10194  constructor
10195  · exact hforces χ hχ hprime p hp
10196  · intro htwoId
10197    rcases PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime
10198        p hp with hpId | hpRec
10199    · exact hpId
10200    · have htwistId :
10201          RatioOrbit.crossEq
10202              (PRCCharacterReciprocalTwist χ (primeDirection p hp))
10203              (primeDirection p hp) :=
10204        (PRCCharacterReciprocalTwist_prime_identity_iff_reciprocal
10205          χ p hp).mpr hpRec
10206      have htwistTwoId :=
10207        hforces (PRCCharacterReciprocalTwist χ)
10208          hχ.reciprocalTwist hprime.reciprocalTwist p hp htwistId
10209      have htwoRec :
10210          RatioOrbit.crossEq (χ twoPrimeDirection)
10211            (RatioOrbit.recip twoPrimeDirection) :=
10212        (PRCCharacterReciprocalTwist_two_identity_iff_reciprocal
10213          χ).mp htwistTwoId
10214      have hself :
10215          RatioOrbit.crossEq twoPrimeDirection
10216            (RatioOrbit.recip twoPrimeDirection) :=
10217        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) htwoRec
10218      exact False.elim
10219        (primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself)
10220
10221theorem PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_iff_identity_forces_two :
10222    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget ↔
10223      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
10224  ⟨PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_identity_iff_two,
10225    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_identity_forces_two⟩
10226
10227theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_identity_forces_two
10228    (hforces :
10229      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
10230    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget := by
10231  intro χ hχ hprime
10232  exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_identity_forces_two
10233    (hforces χ hχ hprime)
10234
10235theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes
10236    (hexcl :
10237      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget) :
10238    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget := by
10239  intro χ hχ hprime
10240  exact PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_local_two_prime_reciprocal_excludes
10241    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
10242    (hexcl χ hχ hprime)
10243
10244theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes :
10245    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
10246      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget :=
10247  ⟨PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_identity_forces_two,
10248    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes⟩
10249
10250theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_two_prime_reciprocal_excludes
10251    (hexcl :
10252      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget) :
10253    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget := by
10254  intro χ hχ hprime
10255  exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_excludes
10256    (hexcl χ hχ hprime)
10257
10258theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_witness
10259    (hexcl :
10260      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget) :
10261    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget := by
10262  intro χ hχ hprime
10263  exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_witness_excludes
10264    (hexcl χ hχ hprime)
10265
10266theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_iff_witness :
10267    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget ↔
10268      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget :=
10269  ⟨PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_two_prime_reciprocal_excludes,
10270    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_witness⟩
10271
10272theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes_witness
10273    (hexcl :
10274      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget) :
10275    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
10276  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes
10277    (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_witness
10278      hexcl)
10279
10280theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_identity_forces_two
10281    (hforces :
10282      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
10283    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget :=
10284  PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_two_prime_reciprocal_excludes
10285    (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_identity_forces_two
10286      hforces)
10287
10288theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes_witness :
10289    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
10290      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget :=
10291  ⟨PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_identity_forces_two,
10292    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes_witness⟩
10293
10294theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_no_mixed_character
10295    (hmix :
10296      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter) :
10297    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget := by
10298  intro χ hχ hprime
10299  exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_not_mixed
10300    (by
10301      intro hcharMix
10302      exact hmix ⟨χ, hχ, hprime, hcharMix⟩)
10303
10304theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_absurd_of_witness_excludes
10305    (hexcl :
10306      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget) :
10307    ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter := by
10308  intro hmix
10309  rcases hmix with ⟨χ, hχ, hprime, hcharMix⟩
10310  exact
10311    (PRCCharacter_not_mixed_of_two_prime_reciprocal_excludes_prime_identity_witness
10312      (hexcl χ hχ hprime)) hcharMix
10313
10314theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_mixed_character :
10315    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget ↔
10316      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter :=
10317  ⟨PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_absurd_of_witness_excludes,
10318    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_no_mixed_character⟩
10319
10320theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_mixed
10321    (hmix : PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter) :
10322    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter := by
10323  rcases hmix with ⟨χ, hχ, hprime, hcharMix⟩
10324  exact
10325    ⟨χ, hχ, hprime,
10326      PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed_of_mixed hcharMix⟩
10327
10328theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_of_non_two_mixed
10329    (hmix :
10330      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter) :
10331    PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter := by
10332  rcases hmix with ⟨χ, hχ, hprime, hcharMix⟩
10333  exact
10334    ⟨χ, hχ, hprime,
10335      PRCCharacterTwoPrimeReciprocalIdentityPrimeMixed_of_non_two_mixed hcharMix⟩
10336
10337theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_iff_non_two :
10338    PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter ↔
10339      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter :=
10340  ⟨PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_mixed,
10341    PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_of_non_two_mixed⟩
10342
10343theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_two_adic_axis_twist
10344    (htwist : PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
10345    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter := by
10346  rcases htwist with ⟨χ, hχ, hprime, htwistχ⟩
10347  rcases htwistχ with ⟨htwoRec, hnonTwoId⟩
10348  exact
10349    ⟨χ, hχ, hprime,
10350      ⟨htwoRec, threeOrbit, threeOrbit_primeOrbit, threeOrbit_ne_twoOrbit,
10351        hnonTwoId threeOrbit threeOrbit_primeOrbit threeOrbit_ne_twoOrbit⟩⟩
10352
10353theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_no_non_two_mixed
10354    (hno :
10355      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter) :
10356    ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter := by
10357  intro htwist
10358  exact hno
10359    (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_two_adic_axis_twist
10360      htwist)
10361
10362theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_non_two_mixed_character :
10363    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget ↔
10364      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter := by
10365  constructor
10366  · intro hexcl hnonTwo
10367    exact
10368      (PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_absurd_of_witness_excludes
10369        hexcl)
10370        (PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_of_non_two_mixed
10371          hnonTwo)
10372  · intro hnonTwo
10373    exact
10374      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_no_mixed_character
10375        (by
10376          intro hmix
10377          exact hnonTwo
10378            (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_mixed
10379              hmix))
10380
10381theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_non_two_mixed
10382    (hmix :
10383      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter) :
10384    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter := by
10385  rcases hmix with ⟨χ, hχ, hprime, hcharMix⟩
10386  exact
10387    ⟨χ, hχ, hprime,
10388      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_of_non_two_mixed
10389        hχ hcharMix⟩
10390
10391theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_composite_defect
10392    (hdefect :
10393      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter) :
10394    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter := by
10395  rcases hdefect with ⟨χ, hχ, hprime, hcharDefect⟩
10396  exact
10397    ⟨χ, hχ, hprime,
10398      PRCCharacterTwoPrimeReciprocalIdentityNonTwoPrimeMixed_of_composite_defect
10399        hcharDefect⟩
10400
10401theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_iff_composite_defect :
10402    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter ↔
10403      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter :=
10404  ⟨PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_non_two_mixed,
10405    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_composite_defect⟩
10406
10407theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_defect_character :
10408    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget ↔
10409      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter := by
10410  constructor
10411  · intro hexcl hdefect
10412    exact
10413      (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_non_two_mixed_character.mp
10414        hexcl)
10415        (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_composite_defect
10416          hdefect)
10417  · intro hdefect
10418    exact
10419      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_non_two_mixed_character.mpr
10420        (by
10421          intro hmix
10422          exact hdefect
10423            (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_non_two_mixed
10424              hmix))
10425
10426theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_of_composite_defect
10427    (hdefect :
10428      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter) :
10429    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter := by
10430  rcases hdefect with ⟨χ, hχ, hprime, hcharDefect⟩
10431  exact
10432    ⟨χ, hχ, hprime,
10433      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect_of_composite_defect
10434        hcharDefect⟩
10435
10436theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_cost_defect
10437    (hdefect :
10438      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter) :
10439    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter := by
10440  rcases hdefect with ⟨χ, hχ, hprime, hcharDefect⟩
10441  exact
10442    ⟨χ, hχ, hprime,
10443      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_of_cost_defect
10444        hcharDefect⟩
10445
10446theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_iff_cost_defect :
10447    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter ↔
10448      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter :=
10449  ⟨PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_of_composite_defect,
10450    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_cost_defect⟩
10451
10452theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_cost_defect_character :
10453    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget ↔
10454      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter := by
10455  constructor
10456  · intro hexcl hdefect
10457    exact
10458      (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_defect_character.mp
10459        hexcl)
10460        (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_cost_defect
10461          hdefect)
10462  · intro hdefect
10463    exact
10464      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_defect_character.mpr
10465        (by
10466          intro hplain
10467          exact hdefect
10468            (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_of_composite_defect
10469              hplain))
10470
10471theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_of_no_composite_cost_defect
10472    (hno :
10473      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter) :
10474    PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget := by
10475  intro χ hχ hprime htwoRec p hp hpne hpId
10476  by_contra hnotCost
10477  have hcharDefect :
10478      PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect χ :=
10479    PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeCostDefect_of_composite_defect
10480      (PRCCharacterTwoPrimeReciprocalIdentityNonTwoCompositeDefect_of_non_two_mixed
10481        hχ ⟨htwoRec, p, hp, hpne, hpId⟩)
10482  exact hno ⟨χ, hχ, hprime, hcharDefect⟩
10483
10484theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_absurd_of_mixed_composite_consistency
10485    (hconsistency :
10486      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget) :
10487    ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter := by
10488  intro hdefect
10489  rcases hdefect with ⟨χ, hχ, hprime, hcharDefect⟩
10490  rcases hcharDefect with ⟨htwoRec, p, hp, hpne, hpId, _hprod, hnotCost⟩
10491  exact hnotCost (hconsistency χ hχ hprime htwoRec p hp hpne hpId)
10492
10493theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_iff_no_composite_cost_defect_character :
10494    PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget ↔
10495      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter :=
10496  ⟨PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_absurd_of_mixed_composite_consistency,
10497    PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_of_no_composite_cost_defect⟩
10498
10499theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_mixed_composite_cost_consistency :
10500    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget ↔
10501      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget := by
10502  constructor
10503  · intro hexcl
10504    exact
10505      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_of_no_composite_cost_defect
10506        (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_cost_defect_character.mp
10507          hexcl)
10508  · intro hconsistency
10509    exact
10510      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_cost_defect_character.mpr
10511        (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_absurd_of_mixed_composite_consistency
10512          hconsistency)
10513
10514theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_mixed_composite_cost_consistency_direct
10515    (hconsistency :
10516      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget) :
10517    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget := by
10518  intro χ hχ hprime htwoRec hwitness
10519  rcases hwitness with ⟨p, hp, hpId⟩
10520  by_cases hpne : p ≠ twoOrbit
10521  · have hcost :=
10522      hconsistency χ hχ hprime htwoRec p hp hpne hpId
10523    have hmulχ :
10524        RatioOrbit.crossEq
10525          (χ (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
10526          (RatioOrbit.mul (χ twoPrimeDirection) (χ (primeDirection p hp))) :=
10527      hχ.multiplicative twoPrimeDirection (primeDirection p hp)
10528    have hmulTarget :
10529        RatioOrbit.crossEq
10530          (RatioOrbit.mul (χ twoPrimeDirection) (χ (primeDirection p hp)))
10531          (RatioOrbit.mul
10532            (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp)) :=
10533      ratioOrbit_mul_congr htwoRec hpId
10534    have hprod :
10535        RatioOrbit.crossEq
10536          (χ (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
10537          (RatioOrbit.mul
10538            (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp)) :=
10539      RatioOrbit.crossEq_trans hmulχ hmulTarget
10540    have hcostImage :
10541        RatioOrbit.crossEq
10542          (costFromCharacter χ
10543            (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
10544          (onRatioOrbit
10545            (RatioOrbit.mul
10546              (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp))) :=
10547      onRatioOrbit_congr hprod
10548    exact
10549      two_prime_composite_mixed_image_jcost_mismatch p hp
10550        (RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hcostImage) hcost)
10551  · have hpeq : p = twoOrbit := by
10552      by_contra h
10553      exact hpne h
10554    have hdir : primeDirection p hp = twoPrimeDirection := by
10555      subst hpeq
10556      rfl
10557    rw [hdir] at hpId
10558    have hself :
10559        RatioOrbit.crossEq twoPrimeDirection
10560          (RatioOrbit.recip twoPrimeDirection) :=
10561      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) htwoRec
10562    exact primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself
10563
10564theorem PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_prime_pair_product_cost_consistent
10565    {χ : RatioOrbit → RatioOrbit}
10566    (hχ : PRCRatioCharacter χ)
10567    (hpair : PRCCharacterPrimePairProductCostConsistent χ) :
10568    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ := by
10569  intro htwoRec hwitness
10570  rcases hwitness with ⟨p, hp, hpId⟩
10571  by_cases hpne : p ≠ twoOrbit
10572  · have hcost :=
10573      hpair twoOrbit twoOrbit_primeOrbit p hp
10574    have hmulχ :
10575        RatioOrbit.crossEq
10576          (χ (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
10577          (RatioOrbit.mul (χ twoPrimeDirection) (χ (primeDirection p hp))) :=
10578      hχ.multiplicative twoPrimeDirection (primeDirection p hp)
10579    have hmulTarget :
10580        RatioOrbit.crossEq
10581          (RatioOrbit.mul (χ twoPrimeDirection) (χ (primeDirection p hp)))
10582          (RatioOrbit.mul
10583            (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp)) :=
10584      ratioOrbit_mul_congr htwoRec hpId
10585    have hprod :
10586        RatioOrbit.crossEq
10587          (χ (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
10588          (RatioOrbit.mul
10589            (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp)) :=
10590      RatioOrbit.crossEq_trans hmulχ hmulTarget
10591    have hcostImage :
10592        RatioOrbit.crossEq
10593          (costFromCharacter χ
10594            (RatioOrbit.mul twoPrimeDirection (primeDirection p hp)))
10595          (onRatioOrbit
10596            (RatioOrbit.mul
10597              (RatioOrbit.recip twoPrimeDirection) (primeDirection p hp))) :=
10598      onRatioOrbit_congr hprod
10599    exact
10600      two_prime_composite_mixed_image_jcost_mismatch p hp
10601        (RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hcostImage) hcost)
10602  · have hpeq : p = twoOrbit := by
10603      by_contra h
10604      exact hpne h
10605    have hdir : primeDirection p hp = twoPrimeDirection := by
10606      subst hpeq
10607      rfl
10608    rw [hdir] at hpId
10609    have hself :
10610        RatioOrbit.crossEq twoPrimeDirection
10611          (RatioOrbit.recip twoPrimeDirection) :=
10612      RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hpId) htwoRec
10613    exact primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself
10614
10615theorem PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_prime_pair_product_cost_consistent
10616    {χ : RatioOrbit → RatioOrbit}
10617    (hχ : PRCRatioCharacter χ)
10618    (hprime : PRCCharacterPrimeDirectionCalibrated χ)
10619    (hpair : PRCCharacterPrimePairProductCostConsistent χ) :
10620    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ := by
10621  have hlocal :=
10622    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime
10623  have hexclWitness :
10624      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness χ :=
10625    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentityWitness_of_prime_pair_product_cost_consistent
10626      hχ hpair
10627  have hexcl :
10628      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ :=
10629    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_witness_excludes
10630      hexclWitness
10631  exact
10632    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_local_two_prime_reciprocal_excludes
10633      hlocal hexcl
10634
10635theorem PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_admissible
10636    {χ : RatioOrbit → RatioOrbit}
10637    (hadm : PRCAdmissibleRatioCharacter χ) :
10638    PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ := by
10639  have hforces :
10640      PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ :=
10641    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_prime_pair_product_cost_consistent
10642      hadm.ratio_character hadm.prime_calibrated
10643      hadm.prime_pair_product_cost
10644  intro p hp
10645  constructor
10646  · exact hforces p hp
10647  · intro htwoId
10648    rcases PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved
10649        χ hadm.ratio_character hadm.prime_calibrated p hp with hpId | hpRec
10650    · exact hpId
10651    · have htwistAdmissible :
10652        PRCAdmissibleRatioCharacter (PRCCharacterReciprocalTwist χ) :=
10653        hadm.reciprocalTwist
10654      have htwistForces :
10655          PRCCharacterPrimeIdentityForcesTwoPrimeIdentity
10656            (PRCCharacterReciprocalTwist χ) :=
10657        PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_prime_pair_product_cost_consistent
10658          htwistAdmissible.ratio_character
10659          htwistAdmissible.prime_calibrated
10660          htwistAdmissible.prime_pair_product_cost
10661      have htwistId :
10662          RatioOrbit.crossEq
10663              (PRCCharacterReciprocalTwist χ (primeDirection p hp))
10664              (primeDirection p hp) :=
10665        (PRCCharacterReciprocalTwist_prime_identity_iff_reciprocal
10666          χ p hp).mpr hpRec
10667      have htwistTwoId := htwistForces p hp htwistId
10668      have htwoRec :
10669          RatioOrbit.crossEq (χ twoPrimeDirection)
10670            (RatioOrbit.recip twoPrimeDirection) :=
10671        (PRCCharacterReciprocalTwist_two_identity_iff_reciprocal
10672          χ).mp htwistTwoId
10673      have hself :
10674          RatioOrbit.crossEq twoPrimeDirection
10675            (RatioOrbit.recip twoPrimeDirection) :=
10676        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) htwoRec
10677      exact False.elim
10678        (primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself)
10679
10680theorem PRCCharacterPrimeOrientationCoherent_of_admissible
10681    {χ : RatioOrbit → RatioOrbit}
10682    (hadm : PRCAdmissibleRatioCharacter χ) :
10683    PRCCharacterPrimeOrientationCoherent χ := by
10684  have hlocal :=
10685    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved
10686      χ hadm.ratio_character hadm.prime_calibrated
10687  have hiff :
10688      PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ :=
10689    PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_admissible hadm
10690  have hctrl :
10691      PRCCharacterTwoPrimeBranchControlsPrimes χ :=
10692    PRCCharacterTwoPrimeBranchControlsPrimes_of_local_prime_identity_iff_two
10693      hlocal hiff
10694  exact
10695    PRCCharacterPrimeOrientationCoherent_of_local_two_prime_branch_controls
10696      hlocal hctrl
10697
10698theorem PRCAdmissibleCharacterPrimeOrientationCoherentTarget_proved :
10699    PRCAdmissibleCharacterPrimeOrientationCoherentTarget := by
10700  intro χ hadm
10701  exact PRCCharacterPrimeOrientationCoherent_of_admissible hadm
10702
10703theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_of_prime_pair_product_cost_consistency
10704    (hpair :
10705      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
10706    PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget := by
10707  intro χ hχ hprime _htwoRec p hp _hpne _hpId
10708  exact hpair χ hχ hprime twoOrbit twoOrbit_primeOrbit p hp
10709
10710theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_of_prime_calibration_propagation
10711    (hprop : PRCPrimeCalibrationPropagationTarget) :
10712    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget := by
10713  intro χ hχ hprime p hp r hr
10714  exact hprop χ hχ hprime
10715    (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr))
10716
10717theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_of_coherent_prime_orientation
10718    (hcoh : PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget) :
10719    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget := by
10720  intro χ hχ hprime p hp r hr
10721  let qp := primeDirection p hp
10722  let qr := primeDirection r hr
10723  rcases hcoh χ hχ hprime with hallId | hallRec
10724  · have hpId : RatioOrbit.crossEq (χ qp) qp := by
10725      simpa [qp] using hallId p hp
10726    have hrId : RatioOrbit.crossEq (χ qr) qr := by
10727      simpa [qr] using hallId r hr
10728    exact onRatioOrbit_congr
10729      (RatioOrbit.crossEq_trans
10730        (hχ.multiplicative qp qr)
10731        (ratioOrbit_mul_congr hpId hrId))
10732  · have hpRec :
10733        RatioOrbit.crossEq (χ qp) (RatioOrbit.recip qp) := by
10734      simpa [qp] using hallRec p hp
10735    have hrRec :
10736        RatioOrbit.crossEq (χ qr) (RatioOrbit.recip qr) := by
10737      simpa [qr] using hallRec r hr
10738    exact RatioOrbit.crossEq_trans
10739      (onRatioOrbit_congr
10740        (RatioOrbit.crossEq_trans
10741          (hχ.multiplicative qp qr)
10742          (RatioOrbit.crossEq_trans
10743            (ratioOrbit_mul_congr hpRec hrRec)
10744            (ratioOrbit_mul_recip_recip_crossEq_recip_mul qp qr))))
10745      (RatioOrbit.crossEq_symm (reciprocal_symmetric (RatioOrbit.mul qp qr)))
10746
10747theorem PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_prime_pair_product_cost_consistency
10748    (hpair :
10749      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
10750    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget :=
10751  PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_two_prime_branch_controls
10752    (PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_of_prime_identity_iff_two
10753      (PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_identity_forces_two
10754        (PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes_witness
10755          (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_mixed_composite_cost_consistency_direct
10756            (PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_of_prime_pair_product_cost_consistency
10757              hpair)))))
10758
10759theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_coherent_prime_orientation :
10760    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10761      PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget :=
10762  ⟨PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_prime_pair_product_cost_consistency,
10763    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_of_coherent_prime_orientation⟩
10764
10765theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_of_no_mixed_prime_witnesses
10766    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
10767    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget :=
10768  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_of_coherent_prime_orientation
10769    (PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_no_mixed_prime_witnesses
10770      hnomix)
10771
10772theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_prime_pair_product_cost_consistency
10773    (hpair :
10774      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
10775    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget :=
10776  PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_coherent_prime_orientation
10777    (PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_prime_pair_product_cost_consistency
10778      hpair)
10779
10780theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_mixed_prime_witnesses :
10781    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10782      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget :=
10783  ⟨PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_prime_pair_product_cost_consistency,
10784    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_of_no_mixed_prime_witnesses⟩
10785
10786theorem PRCPrimeCalibratedMixedPrimeWitnessesCharacter_absurd_of_no_mixed_prime_witnesses
10787    (hnomix : PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
10788    ¬ PRCPrimeCalibratedMixedPrimeWitnessesCharacter := by
10789  intro hmixed
10790  rcases hmixed with ⟨χ, hχ, hprime, hcharMixed⟩
10791  exact (hnomix χ hχ hprime) hcharMixed
10792
10793theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_no_mixed_prime_witness_character
10794    (hmixed : ¬ PRCPrimeCalibratedMixedPrimeWitnessesCharacter) :
10795    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
10796  intro χ hχ hprime hcharMixed
10797  exact hmixed ⟨χ, hχ, hprime, hcharMixed⟩
10798
10799theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_witness_character :
10800    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10801      ¬ PRCPrimeCalibratedMixedPrimeWitnessesCharacter :=
10802  ⟨PRCPrimeCalibratedMixedPrimeWitnessesCharacter_absurd_of_no_mixed_prime_witnesses,
10803    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_no_mixed_prime_witness_character⟩
10804
10805theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_mixed_prime_witness_character :
10806    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10807      ¬ PRCPrimeCalibratedMixedPrimeWitnessesCharacter :=
10808  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_mixed_prime_witnesses.trans
10809    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_witness_character
10810
10811theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_of_mixed_prime_witness_character
10812    (hmixed : PRCPrimeCalibratedMixedPrimeWitnessesCharacter) :
10813    ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
10814  intro hnomix
10815  exact (PRCPrimeCalibratedMixedPrimeWitnessesCharacter_absurd_of_no_mixed_prime_witnesses
10816    hnomix) hmixed
10817
10818theorem PRCPrimeCalibratedMixedPrimeWitnessesCharacter_of_not_no_mixed_prime_witnesses
10819    (hnot : ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget) :
10820    PRCPrimeCalibratedMixedPrimeWitnessesCharacter := by
10821  by_contra hmixed
10822  exact hnot
10823    (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_no_mixed_prime_witness_character
10824      hmixed)
10825
10826theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_iff_mixed_prime_witness_character :
10827    ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10828      PRCPrimeCalibratedMixedPrimeWitnessesCharacter :=
10829  ⟨PRCPrimeCalibratedMixedPrimeWitnessesCharacter_of_not_no_mixed_prime_witnesses,
10830    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_of_mixed_prime_witness_character⟩
10831
10832theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_of_mixed_prime_witness_character
10833    (hmixed : PRCPrimeCalibratedMixedPrimeWitnessesCharacter) :
10834    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget := by
10835  intro hpair
10836  exact (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_of_mixed_prime_witness_character
10837    hmixed)
10838    (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_prime_pair_product_cost_consistency
10839      hpair)
10840
10841theorem PRCPrimeCalibratedMixedPrimeWitnessesCharacter_of_not_prime_pair_product_cost_consistency
10842    (hnot : ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
10843    PRCPrimeCalibratedMixedPrimeWitnessesCharacter := by
10844  by_contra hmixed
10845  exact hnot
10846    ((PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_mixed_prime_witness_character).mpr
10847      hmixed)
10848
10849theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_iff_mixed_prime_witness_character :
10850    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10851      PRCPrimeCalibratedMixedPrimeWitnessesCharacter :=
10852  ⟨PRCPrimeCalibratedMixedPrimeWitnessesCharacter_of_not_prime_pair_product_cost_consistency,
10853    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_of_mixed_prime_witness_character⟩
10854
10855theorem PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_mixed_prime_witness_character
10856    (hmixed : PRCPrimeCalibratedMixedPrimeWitnessesCharacter) :
10857    PRCPrimeCalibratedMixedPrimePairWitnessCharacter := by
10858  rcases hmixed with ⟨χ, hχ, hprime, hcharMixed⟩
10859  exact ⟨χ, hχ, hprime,
10860    PRCCharacterMixedPrimePairWitnesses_of_mixed_prime_witnesses hcharMixed⟩
10861
10862theorem PRCPrimeCalibratedMixedPrimeWitnessesCharacter_of_pair_witness_character
10863    (hpair : PRCPrimeCalibratedMixedPrimePairWitnessCharacter) :
10864    PRCPrimeCalibratedMixedPrimeWitnessesCharacter := by
10865  rcases hpair with ⟨χ, hχ, hprime, hcharPair⟩
10866  exact ⟨χ, hχ, hprime,
10867    PRCCharacterMixedPrimeWitnesses_of_pair_witnesses hcharPair⟩
10868
10869theorem PRCPrimeCalibratedMixedPrimeWitnessesCharacter_iff_pair_witness_character :
10870    PRCPrimeCalibratedMixedPrimeWitnessesCharacter ↔
10871      PRCPrimeCalibratedMixedPrimePairWitnessCharacter :=
10872  ⟨PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_mixed_prime_witness_character,
10873    PRCPrimeCalibratedMixedPrimeWitnessesCharacter_of_pair_witness_character⟩
10874
10875theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_pair_witness_character :
10876    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10877      ¬ PRCPrimeCalibratedMixedPrimePairWitnessCharacter :=
10878  PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_witness_character.trans
10879    (not_congr PRCPrimeCalibratedMixedPrimeWitnessesCharacter_iff_pair_witness_character)
10880
10881theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_iff_mixed_prime_pair_witness_character :
10882    ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10883      PRCPrimeCalibratedMixedPrimePairWitnessCharacter :=
10884  PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_iff_mixed_prime_witness_character.trans
10885    PRCPrimeCalibratedMixedPrimeWitnessesCharacter_iff_pair_witness_character
10886
10887theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_mixed_prime_pair_witness_character :
10888    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10889      ¬ PRCPrimeCalibratedMixedPrimePairWitnessCharacter :=
10890  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_mixed_prime_witness_character.trans
10891    (not_congr PRCPrimeCalibratedMixedPrimeWitnessesCharacter_iff_pair_witness_character)
10892
10893theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_iff_mixed_prime_pair_witness_character :
10894    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10895      PRCPrimeCalibratedMixedPrimePairWitnessCharacter :=
10896  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_iff_mixed_prime_witness_character.trans
10897    PRCPrimeCalibratedMixedPrimeWitnessesCharacter_iff_pair_witness_character
10898
10899theorem PRCPrimeCalibratedMixedPrimePairWitnessCharacter_same_or_distinct
10900    (hpair : PRCPrimeCalibratedMixedPrimePairWitnessCharacter) :
10901    PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter ∨
10902      PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
10903  rcases hpair with ⟨χ, hχ, hprime, hcharPair⟩
10904  cases PRCCharacterMixedPrimePairWitnesses_same_or_distinct hcharPair with
10905  | inl hsame => exact Or.inl ⟨χ, hχ, hprime, hsame⟩
10906  | inr hdistinct => exact Or.inr ⟨χ, hχ, hprime, hdistinct⟩
10907
10908theorem PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_same
10909    (hsame : PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter) :
10910    PRCPrimeCalibratedMixedPrimePairWitnessCharacter := by
10911  rcases hsame with ⟨χ, hχ, hprime, hcharSame⟩
10912  exact ⟨χ, hχ, hprime,
10913    PRCCharacterMixedPrimePairWitnesses_of_same hcharSame⟩
10914
10915theorem PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_distinct
10916    (hdistinct : PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter) :
10917    PRCPrimeCalibratedMixedPrimePairWitnessCharacter := by
10918  rcases hdistinct with ⟨χ, hχ, hprime, hcharDistinct⟩
10919  exact ⟨χ, hχ, hprime,
10920    PRCCharacterMixedPrimePairWitnesses_of_distinct hcharDistinct⟩
10921
10922theorem PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_same_or_distinct
10923    (hsplit :
10924      PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter ∨
10925        PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter) :
10926    PRCPrimeCalibratedMixedPrimePairWitnessCharacter := by
10927  cases hsplit with
10928  | inl hsame => exact PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_same hsame
10929  | inr hdistinct =>
10930      exact PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_distinct hdistinct
10931
10932theorem PRCPrimeCalibratedMixedPrimePairWitnessCharacter_iff_same_or_distinct :
10933    PRCPrimeCalibratedMixedPrimePairWitnessCharacter ↔
10934      PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter ∨
10935        PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter :=
10936  ⟨PRCPrimeCalibratedMixedPrimePairWitnessCharacter_same_or_distinct,
10937    PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_same_or_distinct⟩
10938
10939theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_same_and_no_distinct_pair_witness_character :
10940    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10941      ¬ PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter ∧
10942        ¬ PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
10943  constructor
10944  · intro htarget
10945    constructor
10946    · intro hsame
10947      exact (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_pair_witness_character.mp
10948        htarget)
10949        (PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_same hsame)
10950    · intro hdistinct
10951      exact (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_pair_witness_character.mp
10952        htarget)
10953        (PRCPrimeCalibratedMixedPrimePairWitnessCharacter_of_distinct hdistinct)
10954  · intro hnoSplit
10955    exact PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_pair_witness_character.mpr
10956      (fun hpair =>
10957        (PRCPrimeCalibratedMixedPrimePairWitnessCharacter_iff_same_or_distinct.mp hpair).elim
10958          hnoSplit.1 hnoSplit.2)
10959
10960theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_iff_same_or_distinct_pair_witness_character :
10961    ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10962      PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter ∨
10963        PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter :=
10964  PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_iff_mixed_prime_pair_witness_character.trans
10965    PRCPrimeCalibratedMixedPrimePairWitnessCharacter_iff_same_or_distinct
10966
10967theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_same_and_no_distinct_pair_witness_character :
10968    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10969      ¬ PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter ∧
10970        ¬ PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
10971  constructor
10972  · intro htarget
10973    exact PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_same_and_no_distinct_pair_witness_character.mp
10974      (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_prime_pair_product_cost_consistency
10975        htarget)
10976  · intro hnoSplit
10977    exact PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_mixed_prime_pair_witness_character.mpr
10978      (fun hpair =>
10979        (PRCPrimeCalibratedMixedPrimePairWitnessCharacter_iff_same_or_distinct.mp hpair).elim
10980          hnoSplit.1 hnoSplit.2)
10981
10982theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_iff_same_or_distinct_pair_witness_character :
10983    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
10984      PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter ∨
10985        PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter :=
10986  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_iff_mixed_prime_pair_witness_character.trans
10987    PRCPrimeCalibratedMixedPrimePairWitnessCharacter_iff_same_or_distinct
10988
10989theorem PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter_absurd :
10990    ¬ PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter := by
10991  intro hsame
10992  rcases hsame with ⟨χ, _hχ, _hprime, hcharSame⟩
10993  exact PRCCharacterSamePrimeMixedPairWitnesses_absurd hcharSame
10994
10995theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_distinct_prime_pair_witness_character :
10996    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
10997      ¬ PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
10998  constructor
10999  · intro htarget hdistinct
11000    exact (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_same_and_no_distinct_pair_witness_character.mp
11001      htarget).2 hdistinct
11002  · intro hnoDistinct
11003    exact PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_same_and_no_distinct_pair_witness_character.mpr
11004      ⟨PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter_absurd, hnoDistinct⟩
11005
11006theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_iff_distinct_prime_pair_witness_character :
11007    ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
11008      PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
11009  constructor
11010  · intro hnot
11011    rcases (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_not_iff_same_or_distinct_pair_witness_character.mp
11012      hnot) with hsame | hdistinct
11013    · exact False.elim
11014        (PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter_absurd hsame)
11015    · exact hdistinct
11016  · intro hdistinct htarget
11017    exact (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_distinct_prime_pair_witness_character.mp
11018      htarget) hdistinct
11019
11020theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_distinct_prime_pair_witness_character :
11021    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
11022      ¬ PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
11023  constructor
11024  · intro htarget hdistinct
11025    exact (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_same_and_no_distinct_pair_witness_character.mp
11026      htarget).2 hdistinct
11027  · intro hnoDistinct
11028    exact PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_same_and_no_distinct_pair_witness_character.mpr
11029      ⟨PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter_absurd, hnoDistinct⟩
11030
11031theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_iff_distinct_prime_pair_witness_character :
11032    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
11033      PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
11034  constructor
11035  · intro hnot
11036    rcases (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_iff_same_or_distinct_pair_witness_character.mp
11037      hnot) with hsame | hdistinct
11038    · exact False.elim
11039        (PRCPrimeCalibratedSamePrimeMixedPairWitnessCharacter_absurd hsame)
11040    · exact hdistinct
11041  · intro hdistinct htarget
11042    exact (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_distinct_prime_pair_witness_character.mp
11043      htarget) hdistinct
11044
11045theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_no_distinct_prime_pair_witness_character
11046    (hnoDistinct : ¬ PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter) :
11047    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
11048  intro χ hχ hprime
11049  exact PRCCharacterPrimeIdentityBranchUniform_of_local_no_distinct_prime_pair
11050    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime) (by
11051      intro hdistinct
11052      exact hnoDistinct ⟨χ, hχ, hprime, hdistinct⟩)
11053
11054theorem PRCPrimeCalibrationForcesNoDistinctPrimePairWitnessCharacter_of_prime_identity_branch_uniformity
11055    (huniform : PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
11056    ¬ PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
11057  intro hdistinct
11058  rcases hdistinct with ⟨χ, hχ, hprime, hcharDistinct⟩
11059  exact PRCCharacterDistinctPrimeMixedPairWitnesses_absurd_of_branch_uniform
11060    (huniform χ hχ hprime) hcharDistinct
11061
11062theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_no_distinct_prime_pair_witness_character :
11063    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
11064      ¬ PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter :=
11065  ⟨PRCPrimeCalibrationForcesNoDistinctPrimePairWitnessCharacter_of_prime_identity_branch_uniformity,
11066    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_no_distinct_prime_pair_witness_character⟩
11067
11068theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_not_iff_distinct_prime_pair_witness_character :
11069    ¬ PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
11070      PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
11071  constructor
11072  · intro hnot
11073    by_contra hnoDistinct
11074    exact hnot
11075      (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_no_distinct_prime_pair_witness_character
11076        hnoDistinct)
11077  · intro hdistinct huniform
11078    exact (PRCPrimeCalibrationForcesNoDistinctPrimePairWitnessCharacter_of_prime_identity_branch_uniformity
11079      huniform) hdistinct
11080
11081theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_prime_identity_branch_uniformity :
11082    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
11083      PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
11084  exact
11085    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_no_distinct_prime_pair_witness_character.trans
11086      (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_no_distinct_prime_pair_witness_character.symm)
11087
11088theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_identity_iff_two
11089    (hiff : PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget) :
11090    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
11091  intro χ hχ hprime
11092  exact PRCCharacterPrimeIdentityBranchUniform_of_identity_iff_two
11093    (hiff χ hχ hprime)
11094
11095theorem PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_branch_uniformity
11096    (huniform : PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
11097    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget := by
11098  intro χ hχ hprime
11099  exact PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_branch_uniform
11100    (huniform χ hχ hprime)
11101
11102theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_identity_iff_two :
11103    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
11104      PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget :=
11105  ⟨PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_branch_uniformity,
11106    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_identity_iff_two⟩
11107
11108theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_identity_forces_two :
11109    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
11110      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
11111  PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_identity_iff_two.trans
11112    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_iff_identity_forces_two
11113
11114theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_prime_identity_forces_two :
11115    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
11116      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
11117  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_prime_identity_branch_uniformity.trans
11118    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_identity_forces_two
11119
11120theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_not_iff_distinct_prime_pair_witness_character :
11121    ¬ PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
11122      PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter := by
11123  constructor
11124  · intro hnot
11125    exact PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_not_iff_distinct_prime_pair_witness_character.mp
11126      (fun huniform =>
11127        hnot
11128          (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_identity_forces_two.mp
11129            huniform))
11130  · intro hdistinct hforces
11131    exact
11132      (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_not_iff_distinct_prime_pair_witness_character.mpr
11133        hdistinct)
11134        (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_identity_forces_two.mpr
11135          hforces)
11136
11137theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_no_two_prime_mixed_character :
11138    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
11139      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter :=
11140  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes_witness.trans
11141    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_mixed_character
11142
11143theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_no_non_two_mixed_character :
11144    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
11145      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter :=
11146  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes_witness.trans
11147    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_non_two_mixed_character
11148
11149theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_no_non_two_composite_defect_character :
11150    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
11151      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter :=
11152  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes_witness.trans
11153    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_defect_character
11154
11155theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_no_non_two_composite_cost_defect_character :
11156    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
11157      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter :=
11158  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes_witness.trans
11159    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_composite_cost_defect_character
11160
11161theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_mixed_composite_cost_consistency :
11162    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
11163      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget :=
11164  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes_witness.trans
11165    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_mixed_composite_cost_consistency
11166
11167theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_mixed_composite_cost_consistency :
11168    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget ↔
11169      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget :=
11170  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_prime_identity_forces_two.trans
11171    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_mixed_composite_cost_consistency
11172
11173theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_iff_no_non_two_mixed_character :
11174    PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget ↔
11175      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter :=
11176  PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_mixed_composite_cost_consistency.symm.trans
11177    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_non_two_mixed_character
11178
11179theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_not_iff_non_two_mixed_character :
11180    ¬ PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget ↔
11181      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter := by
11182  constructor
11183  · intro hnot
11184    by_contra hnoMixed
11185    exact hnot
11186      (PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_iff_no_non_two_mixed_character.mpr
11187        hnoMixed)
11188  · intro hmixed htarget
11189    exact
11190      (PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_iff_no_non_two_mixed_character.mp
11191        htarget) hmixed
11192
11193theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_mixed_composite_cost_consistency
11194    (hconsistency :
11195      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget) :
11196    ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter := by
11197  intro htwist
11198  exact
11199    (PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_iff_no_non_two_mixed_character.mp
11200      hconsistency)
11201      (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_two_adic_axis_twist
11202        htwist)
11203
11204theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_prime_identity_forces_two
11205    (hforces :
11206      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
11207    ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter :=
11208  PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_mixed_composite_cost_consistency
11209    (PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_mixed_composite_cost_consistency.mp
11210      hforces)
11211
11212theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_prime_pair_product_cost_consistency
11213    (hpair :
11214      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
11215    ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter :=
11216  PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_mixed_composite_cost_consistency
11217    (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_mixed_composite_cost_consistency.mp
11218      hpair)
11219
11220theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_not_of_two_adic_axis_twist
11221    (htwist :
11222      PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
11223    ¬ PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget := by
11224  intro hconsistency
11225  exact
11226    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_mixed_composite_cost_consistency
11227      hconsistency) htwist
11228
11229theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_not_of_two_adic_axis_twist
11230    (htwist :
11231      PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
11232    ¬ PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget := by
11233  intro hforces
11234  exact
11235    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_prime_identity_forces_two
11236      hforces) htwist
11237
11238theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_of_two_adic_axis_twist
11239    (htwist :
11240      PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
11241    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget := by
11242  intro hpair
11243  exact
11244    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_prime_pair_product_cost_consistency
11245      hpair) htwist
11246
11247theorem PRCTwoAdicAxisTwistRatioCharacter_absurd_of_mixed_composite_cost_consistency
11248    (hconsistency :
11249      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget) :
11250    ¬ PRCTwoAdicAxisTwistRatioCharacter :=
11251  PRCTwoAdicAxisTwistRatioCharacter_absurd_of_no_calibrated_twist
11252    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_mixed_composite_cost_consistency
11253      hconsistency)
11254
11255theorem PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_identity_forces_two
11256    (hforces :
11257      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
11258    ¬ PRCTwoAdicAxisTwistRatioCharacter :=
11259  PRCTwoAdicAxisTwistRatioCharacter_absurd_of_no_calibrated_twist
11260    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_prime_identity_forces_two
11261      hforces)
11262
11263theorem PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_pair_product_cost_consistency
11264    (hpair :
11265      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
11266    ¬ PRCTwoAdicAxisTwistRatioCharacter :=
11267  PRCTwoAdicAxisTwistRatioCharacter_absurd_of_no_calibrated_twist
11268    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_prime_pair_product_cost_consistency
11269      hpair)
11270
11271theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_not_of_ratio_character_axis_twist
11272    (htwist :
11273      PRCTwoAdicAxisTwistRatioCharacter) :
11274    ¬ PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget := by
11275  exact
11276    PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_not_of_two_adic_axis_twist
11277      (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_ratio_character_axis_twist
11278        htwist)
11279
11280theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_not_of_ratio_character_axis_twist
11281    (htwist :
11282      PRCTwoAdicAxisTwistRatioCharacter) :
11283    ¬ PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget := by
11284  exact
11285    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_not_of_two_adic_axis_twist
11286      (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_ratio_character_axis_twist
11287        htwist)
11288
11289theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_of_ratio_character_axis_twist
11290    (htwist :
11291      PRCTwoAdicAxisTwistRatioCharacter) :
11292    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget := by
11293  exact
11294    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_of_two_adic_axis_twist
11295      (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_ratio_character_axis_twist
11296        htwist)
11297
11298theorem twoThreePrimeMixedDirection_not_crossEq_composite :
11299    ¬ RatioOrbit.crossEq twoThreePrimeMixedDirection
11300      twoThreePrimeCompositeDirection := by
11301  intro h
11302  rw [RatioOrbit.crossEq_iff_toRat_eq] at h
11303  rw [twoThreePrimeMixedDirection_toRat,
11304    twoThreePrimeCompositeDirection_toRat] at h
11305  norm_num at h
11306
11307theorem twoThreePrimeMixedDirection_not_crossEq_composite_recip :
11308    ¬ RatioOrbit.crossEq twoThreePrimeMixedDirection
11309      (RatioOrbit.recip twoThreePrimeCompositeDirection) := by
11310  intro h
11311  rw [RatioOrbit.crossEq_iff_toRat_eq] at h
11312  rw [twoThreePrimeMixedDirection_toRat, RatioOrbit.recip_toRat,
11313    twoThreePrimeCompositeDirection_toRat] at h
11314  norm_num at h
11315
11316theorem PRCCharacterTwoAdicAxisTwist_two_three_mixed_image
11317    {χ : RatioOrbit → RatioOrbit}
11318    (hχ : PRCRatioCharacter χ)
11319    (htwist : PRCCharacterTwoAdicAxisTwist χ) :
11320    RatioOrbit.crossEq (χ twoThreePrimeCompositeDirection)
11321      twoThreePrimeMixedDirection := by
11322  have hthreeId :
11323      RatioOrbit.crossEq (χ threePrimeDirection) threePrimeDirection := by
11324    simpa [threePrimeDirection] using
11325      htwist.2 threeOrbit threeOrbit_primeOrbit threeOrbit_ne_twoOrbit
11326  exact
11327    RatioOrbit.crossEq_trans
11328      (by
11329        simpa [twoThreePrimeCompositeDirection] using
11330          hχ.multiplicative twoPrimeDirection threePrimeDirection)
11331      (by
11332        simpa [twoThreePrimeMixedDirection] using
11333          ratioOrbit_mul_congr htwist.1 hthreeId)
11334
11335theorem PRCCharacterTwoAdicAxisTwist_two_three_local_orientation_absurd
11336    {χ : RatioOrbit → RatioOrbit}
11337    (hχ : PRCRatioCharacter χ)
11338    (htwist : PRCCharacterTwoAdicAxisTwist χ) :
11339    ¬ PRCCharacterTwoThreeCompositeLocalOrientation χ := by
11340  intro hlocal
11341  have himage :=
11342    PRCCharacterTwoAdicAxisTwist_two_three_mixed_image hχ htwist
11343  rcases hlocal with hidentity | hreciprocal
11344  · exact twoThreePrimeMixedDirection_not_crossEq_composite
11345      (RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm himage) hidentity)
11346  · exact twoThreePrimeMixedDirection_not_crossEq_composite_recip
11347      (RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm himage) hreciprocal)
11348
11349theorem PRCTwoAdicAxisTwistRatioCharacter_forces_two_three_local_orientation_failure
11350    (htwist : PRCTwoAdicAxisTwistRatioCharacter) :
11351    ∃ χ : RatioOrbit → RatioOrbit,
11352      PRCRatioCharacter χ ∧
11353        PRCCharacterTwoAdicAxisTwist χ ∧
11354          ¬ PRCCharacterTwoThreeCompositeLocalOrientation χ := by
11355  rcases htwist with ⟨χ, hχ, hbranch⟩
11356  exact ⟨χ, hχ, hbranch,
11357    PRCCharacterTwoAdicAxisTwist_two_three_local_orientation_absurd hχ hbranch⟩
11358
11359theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_of_ratio_character_axis_twist
11360    (htwist : PRCTwoAdicAxisTwistRatioCharacter) :
11361    PRCTwoThreeCompositeLocalOrientationFailureCharacter :=
11362  PRCTwoAdicAxisTwistRatioCharacter_forces_two_three_local_orientation_failure
11363    htwist
11364
11365theorem PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11366    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11367    PRCTwoAdicAxisTwistRatioCharacter := by
11368  rcases hfail with ⟨χ, hχ, hbranch, _hnotLocal⟩
11369  exact ⟨χ, hχ, hbranch⟩
11370
11371theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_iff_ratio_character_axis_twist :
11372    PRCTwoThreeCompositeLocalOrientationFailureCharacter ↔
11373      PRCTwoAdicAxisTwistRatioCharacter :=
11374  ⟨PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character,
11375    PRCTwoThreeCompositeLocalOrientationFailureCharacter_of_ratio_character_axis_twist⟩
11376
11377theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_iff_calibrated_two_adic_axis_twist :
11378    PRCTwoThreeCompositeLocalOrientationFailureCharacter ↔
11379      PRCPrimeCalibratedTwoAdicAxisTwistCharacter :=
11380  PRCTwoThreeCompositeLocalOrientationFailureCharacter_iff_ratio_character_axis_twist.trans
11381    PRCPrimeCalibratedTwoAdicAxisTwistCharacter_iff_ratio_character_axis_twist.symm
11382
11383theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_ratio_character_axis_twist
11384    (hno : ¬ PRCTwoAdicAxisTwistRatioCharacter) :
11385    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget := by
11386  intro χ hχ hbranch
11387  exfalso
11388  exact hno ⟨χ, hχ, hbranch⟩
11389
11390theorem PRCTwoAdicAxisTwistRatioCharacter_absurd_of_two_three_local_orientation_target
11391    (htarget :
11392      PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget) :
11393    ¬ PRCTwoAdicAxisTwistRatioCharacter := by
11394  intro htwist
11395  rcases htwist with ⟨χ, hχ, hbranch⟩
11396  exact
11397    (PRCCharacterTwoAdicAxisTwist_two_three_local_orientation_absurd hχ hbranch)
11398      (htarget χ hχ hbranch)
11399
11400theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_ratio_character_axis_twist :
11401    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget ↔
11402      ¬ PRCTwoAdicAxisTwistRatioCharacter :=
11403  ⟨PRCTwoAdicAxisTwistRatioCharacter_absurd_of_two_three_local_orientation_target,
11404    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_ratio_character_axis_twist⟩
11405
11406theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_two_three_local_orientation_target
11407    (htarget :
11408      PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget) :
11409    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter := by
11410  intro hfail
11411  exact
11412    (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_two_three_local_orientation_target
11413      htarget)
11414      (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11415        hfail)
11416
11417theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character :
11418    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget ↔
11419      ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter :=
11420  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_ratio_character_axis_twist.trans
11421    (not_congr
11422      PRCTwoThreeCompositeLocalOrientationFailureCharacter_iff_ratio_character_axis_twist.symm)
11423
11424theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_calibrated_two_adic_axis_twist :
11425    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget ↔
11426      ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter :=
11427  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character.trans
11428    (not_congr
11429      PRCTwoThreeCompositeLocalOrientationFailureCharacter_iff_calibrated_two_adic_axis_twist)
11430
11431theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_two_three_local_orientation_target
11432    (htarget :
11433      PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget) :
11434    ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter :=
11435  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_calibrated_two_adic_axis_twist.mp
11436    htarget
11437
11438theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_failure_character
11439    (hno : ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11440    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11441  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character.mpr
11442    hno
11443
11444/-- Closed certificate for the exact `2*3` two-adic fork. It packages the
11445constructive branch (`failure` / `ratio twist` / `calibrated twist`) and the
11446positive branch (local orientation as the negation of each equivalent witness)
11447under one name, so downstream certificate wiring does not have to repeat the
11448equivalence chain. -/
11449structure PRCTwoThreeCompositeLocalForkCertificate : Prop where
11450  failure_iff_ratio_character_axis_twist :
11451    PRCTwoThreeCompositeLocalOrientationFailureCharacter ↔
11452      PRCTwoAdicAxisTwistRatioCharacter
11453  calibrated_two_adic_axis_twist_iff_ratio_character_axis_twist :
11454    PRCPrimeCalibratedTwoAdicAxisTwistCharacter ↔
11455      PRCTwoAdicAxisTwistRatioCharacter
11456  failure_iff_calibrated_two_adic_axis_twist :
11457    PRCTwoThreeCompositeLocalOrientationFailureCharacter ↔
11458      PRCPrimeCalibratedTwoAdicAxisTwistCharacter
11459  target_iff_no_ratio_character_axis_twist :
11460    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget ↔
11461      ¬ PRCTwoAdicAxisTwistRatioCharacter
11462  target_iff_no_failure_character :
11463    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget ↔
11464      ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter
11465  target_iff_no_calibrated_two_adic_axis_twist :
11466    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget ↔
11467      ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter
11468  target_excludes_calibrated_two_adic_axis_twist :
11469    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget →
11470      ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter
11471  no_failure_character_forces_target :
11472    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter →
11473      PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget
11474  mixed_composite_cost_consistency_excludes_failure_character :
11475    PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget →
11476      ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter
11477  prime_identity_forces_two_excludes_failure_character :
11478    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget →
11479      ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter
11480  prime_pair_product_cost_consistency_excludes_failure_character :
11481    PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget →
11482      ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter
11483
11484def prcTwoThreeCompositeLocalForkCertificate :
11485    PRCTwoThreeCompositeLocalForkCertificate where
11486  failure_iff_ratio_character_axis_twist :=
11487    PRCTwoThreeCompositeLocalOrientationFailureCharacter_iff_ratio_character_axis_twist
11488  calibrated_two_adic_axis_twist_iff_ratio_character_axis_twist :=
11489    PRCPrimeCalibratedTwoAdicAxisTwistCharacter_iff_ratio_character_axis_twist
11490  failure_iff_calibrated_two_adic_axis_twist :=
11491    PRCTwoThreeCompositeLocalOrientationFailureCharacter_iff_calibrated_two_adic_axis_twist
11492  target_iff_no_ratio_character_axis_twist :=
11493    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_ratio_character_axis_twist
11494  target_iff_no_failure_character :=
11495    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character
11496  target_iff_no_calibrated_two_adic_axis_twist :=
11497    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_calibrated_two_adic_axis_twist
11498  target_excludes_calibrated_two_adic_axis_twist :=
11499    PRCPrimeCalibratedTwoAdicAxisTwistCharacter_absurd_of_two_three_local_orientation_target
11500  no_failure_character_forces_target :=
11501    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_failure_character
11502  mixed_composite_cost_consistency_excludes_failure_character := by
11503    intro hconsistency hfail
11504    exact
11505      (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_mixed_composite_cost_consistency
11506        hconsistency)
11507        (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11508          hfail)
11509  prime_identity_forces_two_excludes_failure_character := by
11510    intro hforces hfail
11511    exact
11512      (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_identity_forces_two
11513        hforces)
11514        (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11515          hfail)
11516  prime_pair_product_cost_consistency_excludes_failure_character := by
11517    intro hpair hfail
11518    exact
11519      (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_pair_product_cost_consistency
11520        hpair)
11521        (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11522          hfail)
11523
11524theorem PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_two_three_local_orientation_failure_character
11525    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11526    PRCPrimeCalibratedTwoAdicAxisTwistCharacter :=
11527  PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_ratio_character_axis_twist
11528    (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11529      hfail)
11530
11531theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_two_three_local_orientation_failure_character
11532    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11533    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter :=
11534  PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_two_adic_axis_twist
11535    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_two_three_local_orientation_failure_character
11536      hfail)
11537
11538theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_two_three_local_orientation_failure_character
11539    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11540    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter :=
11541  PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_non_two_mixed
11542    (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_two_three_local_orientation_failure_character
11543      hfail)
11544
11545theorem PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_of_two_three_local_orientation_failure_character
11546    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11547    PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter :=
11548  PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_of_composite_defect
11549    (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_two_three_local_orientation_failure_character
11550      hfail)
11551
11552theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_not_of_two_three_local_orientation_failure_character
11553    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11554    ¬ PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget :=
11555  PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_not_of_ratio_character_axis_twist
11556    (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11557      hfail)
11558
11559theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_not_of_two_three_local_orientation_failure_character
11560    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11561    ¬ PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
11562  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_not_of_ratio_character_axis_twist
11563    (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11564      hfail)
11565
11566theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_of_two_three_local_orientation_failure_character
11567    (hfail : PRCTwoThreeCompositeLocalOrientationFailureCharacter) :
11568    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget :=
11569  PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_not_of_ratio_character_axis_twist
11570    (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11571      hfail)
11572
11573theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_calibrated_two_adic_axis_twist
11574    (hno : ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
11575    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter := by
11576  intro hfail
11577  exact hno
11578    (PRCPrimeCalibratedTwoAdicAxisTwistCharacter_of_two_three_local_orientation_failure_character
11579      hfail)
11580
11581theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_non_two_mixed_character
11582    (hno :
11583      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter) :
11584    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter := by
11585  intro hfail
11586  exact hno
11587    (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter_of_two_three_local_orientation_failure_character
11588      hfail)
11589
11590theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_non_two_composite_defect_character
11591    (hno :
11592      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter) :
11593    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter := by
11594  intro hfail
11595  exact hno
11596    (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter_of_two_three_local_orientation_failure_character
11597      hfail)
11598
11599theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_non_two_composite_cost_defect_character
11600    (hno :
11601      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter) :
11602    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter := by
11603  intro hfail
11604  exact hno
11605    (PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter_of_two_three_local_orientation_failure_character
11606      hfail)
11607
11608theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_calibrated_two_adic_axis_twist
11609    (hno : ¬ PRCPrimeCalibratedTwoAdicAxisTwistCharacter) :
11610    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11611  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character.mpr
11612    (PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_calibrated_two_adic_axis_twist
11613      hno)
11614
11615theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_non_two_mixed_character
11616    (hno :
11617      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter) :
11618    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11619  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character.mpr
11620    (PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_non_two_mixed_character
11621      hno)
11622
11623theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_non_two_composite_defect_character
11624    (hno :
11625      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeDefectCharacter) :
11626    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11627  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character.mpr
11628    (PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_non_two_composite_defect_character
11629      hno)
11630
11631theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_non_two_composite_cost_defect_character
11632    (hno :
11633      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter) :
11634    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11635  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_failure_character.mpr
11636    (PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_no_non_two_composite_cost_defect_character
11637      hno)
11638
11639theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_mixed_composite_cost_consistency
11640    (hconsistency :
11641      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget) :
11642    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11643  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_ratio_character_axis_twist.mpr
11644    (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_mixed_composite_cost_consistency
11645      hconsistency)
11646
11647theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_prime_identity_forces_two
11648    (hforces :
11649      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
11650    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11651  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_ratio_character_axis_twist.mpr
11652    (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_identity_forces_two
11653      hforces)
11654
11655theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_prime_pair_product_cost_consistency
11656    (hpair :
11657      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
11658    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11659  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_iff_no_ratio_character_axis_twist.mpr
11660    (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_pair_product_cost_consistency
11661      hpair)
11662
11663theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_mixed_composite_cost_consistency
11664    (hconsistency :
11665      PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget) :
11666    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter :=
11667  PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_two_three_local_orientation_target
11668    (PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_mixed_composite_cost_consistency
11669      hconsistency)
11670
11671theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_prime_identity_forces_two
11672    (hforces :
11673      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
11674    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter :=
11675  PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_two_three_local_orientation_target
11676    (PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_prime_identity_forces_two
11677      hforces)
11678
11679theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_prime_pair_product_cost_consistency
11680    (hpair :
11681      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
11682    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter :=
11683  PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_two_three_local_orientation_target
11684    (PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_prime_pair_product_cost_consistency
11685      hpair)
11686
11687theorem PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_identity_branch_uniformity
11688    (huniform :
11689      PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
11690    ¬ PRCTwoAdicAxisTwistRatioCharacter := by
11691  intro htwist
11692  rcases htwist with ⟨χ, hχ, haxis⟩
11693  have hprime : PRCCharacterPrimeDirectionCalibrated χ :=
11694    PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist haxis
11695  have hthreeId :
11696      RatioOrbit.crossEq (χ threePrimeDirection) threePrimeDirection := by
11697    simpa [threePrimeDirection] using
11698      haxis.2 threeOrbit threeOrbit_primeOrbit threeOrbit_ne_twoOrbit
11699  have htwoId :
11700      RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection :=
11701    huniform χ hχ hprime threeOrbit threeOrbit_primeOrbit
11702      twoOrbit twoOrbit_primeOrbit hthreeId
11703  have hself :
11704      RatioOrbit.crossEq twoPrimeDirection
11705        (RatioOrbit.recip twoPrimeDirection) :=
11706    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) haxis.1
11707  exact primeDirection_not_crossEq_recip twoOrbit twoOrbit_primeOrbit hself
11708
11709theorem PRCTwoThreeCompositeLocalOrientationFailureCharacter_absurd_of_prime_identity_branch_uniformity
11710    (huniform :
11711      PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
11712    ¬ PRCTwoThreeCompositeLocalOrientationFailureCharacter := by
11713  intro hfail
11714  exact
11715    (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_identity_branch_uniformity
11716      huniform)
11717      (PRCTwoAdicAxisTwistRatioCharacter_of_two_three_local_orientation_failure_character
11718        hfail)
11719
11720theorem PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_prime_identity_branch_uniformity
11721    (huniform :
11722      PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget) :
11723    PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget :=
11724  PRCTwoThreeCompositeLocalOrientationForTwoAdicAxisTwistTarget_of_no_ratio_character_axis_twist
11725    (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_identity_branch_uniformity
11726      huniform)
11727
11728theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_not_of_non_two_mixed_character
11729    (hmix :
11730      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoPrimeMixedCharacter) :
11731    ¬ PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
11732  intro huniform
11733  exact
11734    (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_no_distinct_prime_pair_witness_character.mp
11735      huniform)
11736      (PRCPrimeCalibratedDistinctPrimeMixedPairWitnessCharacter_of_non_two_mixed
11737        hmix)
11738
11739theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_not_of_ratio_character_axis_twist
11740    (htwist :
11741      PRCTwoAdicAxisTwistRatioCharacter) :
11742    ¬ PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget := by
11743  intro huniform
11744  exact
11745    (PRCTwoAdicAxisTwistRatioCharacter_absurd_of_prime_identity_branch_uniformity
11746      huniform) htwist
11747
11748theorem PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_refuted :
11749    ¬ PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget :=
11750  PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_not_of_ratio_character_axis_twist
11751    PRCTwoAdicAxisTwistRatioCharacter_constructed
11752
11753theorem PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_refuted :
11754    ¬ PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget := by
11755  intro hpair
11756  exact PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_refuted
11757    (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_prime_identity_branch_uniformity.mp
11758      hpair)
11759
11760theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_refuted :
11761    ¬ PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget := by
11762  intro hconsistency
11763  exact PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_refuted
11764    (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_mixed_composite_cost_consistency.mpr
11765      hconsistency)
11766
11767theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_refuted :
11768    ¬ PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget := by
11769  intro htarget
11770  exact PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_refuted
11771    (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_iff_prime_identity_forces_two.mpr
11772      htarget)
11773
11774theorem PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_refuted :
11775    ¬ PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget := by
11776  intro htarget
11777  exact PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_refuted
11778    (PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_iff_identity_forces_two.mp
11779      htarget)
11780
11781theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_refuted :
11782    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget := by
11783  intro htarget
11784  exact PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_refuted
11785    (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_mixed_composite_cost_consistency.mp
11786      htarget)
11787
11788theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_refuted :
11789    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget := by
11790  intro htarget
11791  exact PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_refuted
11792    (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_iff_witness.mp
11793      htarget)
11794
11795theorem PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_refuted :
11796    ¬ PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget := by
11797  intro htarget
11798  exact PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_refuted
11799    (PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_iff_prime_identity_iff_two.mp
11800      htarget)
11801
11802theorem PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_refuted :
11803    ¬ PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget := by
11804  intro htarget
11805  exact PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_refuted
11806    (PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_iff_two_prime_branch_controls.mp
11807      htarget)
11808
11809theorem PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_refuted :
11810    ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget := by
11811  intro htarget
11812  exact PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_refuted
11813    (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_coherent_prime_orientation.mp
11814      htarget)
11815
11816theorem PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_refuted :
11817    ¬ PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget := by
11818  intro htarget
11819  exact PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_refuted
11820    (PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_orientation.mpr
11821      htarget)
11822
11823theorem PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_refuted :
11824    ¬ PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget := by
11825  intro htarget
11826  exact PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_refuted
11827    (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_trace_coherence.mpr
11828      htarget)
11829
11830theorem PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_refuted :
11831    ¬ PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget := by
11832  intro htarget
11833  exact PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_refuted
11834    (PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_trace_transport.mpr
11835      htarget)
11836
11837theorem PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_refuted :
11838    ¬ PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget := by
11839  intro htarget
11840  exact PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_refuted
11841    (PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_common_trace_extension.mpr
11842      htarget)
11843
11844theorem PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_refuted :
11845    ¬ PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget := by
11846  intro htarget
11847  exact PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_refuted
11848    (PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_canonical_add_trace.mpr
11849      htarget)
11850
11851theorem PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_refuted :
11852    ¬ PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget := by
11853  intro htarget
11854  exact PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_refuted
11855    (PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_comparable_trace.mpr
11856      htarget)
11857
11858theorem twoAdicAxisTwistCharacter_not_prime_pair_product_cost_consistent :
11859    ¬ PRCCharacterPrimePairProductCostConsistent
11860      twoAdicAxisTwistCharacter := by
11861  intro hconsistent
11862  have hcost :
11863      RatioOrbit.crossEq
11864        (costFromCharacter twoAdicAxisTwistCharacter
11865          twoThreePrimeCompositeDirection)
11866        (onRatioOrbit twoThreePrimeCompositeDirection) := by
11867    simpa [twoThreePrimeCompositeDirection, twoPrimeDirection,
11868      threePrimeDirection] using
11869      hconsistent twoOrbit twoOrbit_primeOrbit
11870        threeOrbit threeOrbit_primeOrbit
11871  have himage :
11872      RatioOrbit.crossEq
11873        (twoAdicAxisTwistCharacter twoThreePrimeCompositeDirection)
11874        twoThreePrimeMixedDirection :=
11875    PRCCharacterTwoAdicAxisTwist_two_three_mixed_image
11876      twoAdicAxisTwistCharacter_ratio_character
11877      twoAdicAxisTwistCharacter_branch
11878  have hcostImage :
11879      RatioOrbit.crossEq
11880        (costFromCharacter twoAdicAxisTwistCharacter
11881          twoThreePrimeCompositeDirection)
11882        (onRatioOrbit twoThreePrimeMixedDirection) := by
11883    unfold costFromCharacter
11884    exact onRatioOrbit_congr himage
11885  exact
11886    two_prime_composite_mixed_image_jcost_mismatch
11887      threeOrbit threeOrbit_primeOrbit
11888      (by
11889        simpa [twoThreePrimeMixedDirection, twoThreePrimeCompositeDirection,
11890          threePrimeDirection] using
11891          RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hcostImage) hcost)
11892
11893theorem twoAdicAxisTwistCharacter_not_admissible :
11894    ¬ PRCAdmissibleRatioCharacter twoAdicAxisTwistCharacter := by
11895  intro hadm
11896  exact twoAdicAxisTwistCharacter_not_prime_pair_product_cost_consistent
11897    hadm.prime_pair_product_cost
11898
11899theorem costFromCharacter_reciprocal_congr
11900    (χ : RatioOrbit → RatioOrbit) (hχ : PRCRatioCharacter χ)
11901    (q : RatioOrbit) :
11902    RatioOrbit.crossEq (costFromCharacter χ q)
11903      (costFromCharacter χ (RatioOrbit.recip q)) := by
11904  unfold costFromCharacter
11905  exact RatioOrbit.crossEq_trans
11906    (reciprocal_symmetric (χ q))
11907    (RatioOrbit.crossEq_symm (onRatioOrbit_congr (hχ.reciprocal q)))
11908
11909theorem costFromCharacter_normalized_congr
11910    (χ : RatioOrbit → RatioOrbit) (hχ : PRCRatioCharacter χ)
11911    (q : RatioOrbit) :
11912    RatioOrbit.crossEq (costFromCharacter χ q)
11913      (costFromCharacter χ (DistinctionNat.normalizeRatio q)) := by
11914  unfold costFromCharacter
11915  exact onRatioOrbit_congr (hχ.normalized_invariant q)
11916
11917theorem costFromCharacter_mul_congr
11918    (χ : RatioOrbit → RatioOrbit) (hχ : PRCRatioCharacter χ)
11919    (x y : RatioOrbit) :
11920    RatioOrbit.crossEq (costFromCharacter χ (RatioOrbit.mul x y))
11921      (onRatioOrbit (RatioOrbit.mul (χ x) (χ y))) := by
11922  unfold costFromCharacter
11923  exact onRatioOrbit_congr (hχ.multiplicative x y)
11924
11925theorem costFromCharacter_div_congr
11926    (χ : RatioOrbit → RatioOrbit) (hχ : PRCRatioCharacter χ)
11927    (x y : RatioOrbit) :
11928    RatioOrbit.crossEq (costFromCharacter χ (div x y))
11929      (onRatioOrbit (div (χ x) (χ y))) := by
11930  unfold costFromCharacter div
11931  exact onRatioOrbit_congr
11932    (RatioOrbit.crossEq_trans
11933      (hχ.multiplicative x (RatioOrbit.recip y))
11934      (ratioOrbit_mul_congr (RatioOrbit.crossEq_refl (χ x))
11935        (hχ.reciprocal y)))
11936
11937theorem costFromCharacter_canonical_rcl
11938    (χ : RatioOrbit → RatioOrbit) (hχ : PRCRatioCharacter χ)
11939    {x y : RatioOrbit} (hx : x.toRat ≠ 0) (hy : y.toRat ≠ 0) :
11940    RatioOrbit.crossEq
11941      (RatioOrbit.add
11942        (costFromCharacter χ (RatioOrbit.mul x y))
11943        (costFromCharacter χ (div x y)))
11944      (RatioOrbit.add
11945        (RatioOrbit.add
11946          (RatioOrbit.mul two
11947            (RatioOrbit.mul (costFromCharacter χ x)
11948              (costFromCharacter χ y)))
11949          (RatioOrbit.mul two (costFromCharacter χ x)))
11950        (RatioOrbit.mul two (costFromCharacter χ y))) := by
11951  let X := χ x
11952  let Y := χ y
11953  have hX : X.toRat ≠ 0 := by
11954    exact hχ.nonzero_preserving hx
11955  have hY : Y.toRat ≠ 0 := by
11956    exact hχ.nonzero_preserving hy
11957  have hcanon :
11958      RatioOrbit.crossEq
11959        (RatioOrbit.add (onRatioOrbit (RatioOrbit.mul X Y))
11960          (onRatioOrbit (div X Y)))
11961        (RatioOrbit.add
11962          (RatioOrbit.add
11963            (RatioOrbit.mul two
11964              (RatioOrbit.mul (onRatioOrbit X) (onRatioOrbit Y)))
11965            (RatioOrbit.mul two (onRatioOrbit X)))
11966          (RatioOrbit.mul two (onRatioOrbit Y))) :=
11967    canonical_rcl_surface hX hY
11968  have hleft :
11969      RatioOrbit.crossEq
11970        (RatioOrbit.add
11971          (costFromCharacter χ (RatioOrbit.mul x y))
11972          (costFromCharacter χ (div x y)))
11973        (RatioOrbit.add (onRatioOrbit (RatioOrbit.mul X Y))
11974          (onRatioOrbit (div X Y))) := by
11975    exact ratioOrbit_add_congr
11976      (costFromCharacter_mul_congr χ hχ x y)
11977      (costFromCharacter_div_congr χ hχ x y)
11978  have hright :
11979      RatioOrbit.crossEq
11980        (RatioOrbit.add
11981          (RatioOrbit.add
11982            (RatioOrbit.mul two
11983              (RatioOrbit.mul (onRatioOrbit X) (onRatioOrbit Y)))
11984            (RatioOrbit.mul two (onRatioOrbit X)))
11985          (RatioOrbit.mul two (onRatioOrbit Y)))
11986        (RatioOrbit.add
11987          (RatioOrbit.add
11988            (RatioOrbit.mul two
11989              (RatioOrbit.mul (costFromCharacter χ x)
11990                (costFromCharacter χ y)))
11991            (RatioOrbit.mul two (costFromCharacter χ x)))
11992          (RatioOrbit.mul two (costFromCharacter χ y))) := by
11993    unfold costFromCharacter X Y
11994    exact RatioOrbit.crossEq_refl _
11995  exact RatioOrbit.crossEq_trans hleft
11996    (RatioOrbit.crossEq_trans hcanon hright)
11997
11998/-- Exact remaining construction target for refuting the admissibility-upgrade
11999route: find an exact-unit-zero native cost cross-equivalent to the two-adic
12000generated character cost. The generated cost has the right quotient behavior;
12001the only delicate point is satisfying the `PRCNativeCostHypotheses` interface
12002whose `unit_zero` field is definitional equality, not cross-equivalence. -/
12003def PRCTwoAdicAxisTwistGeneratedCostNativeHypothesesTarget : Prop :=
12004  ∃ F : RatioOrbit → RatioOrbit,
12005    PRCNativeCostHypotheses F ∧
12006      ∀ q : RatioOrbit,
12007        RatioOrbit.crossEq (F q)
12008          (costFromCharacter twoAdicAxisTwistCharacter q)
12009
12010noncomputable def twoAdicGeneratedNativeCost (q : RatioOrbit) : RatioOrbit :=
12011  by
12012    classical
12013    exact if q = RatioOrbit.one then RatioOrbit.zero
12014      else costFromCharacter twoAdicAxisTwistCharacter q
12015
12016theorem twoAdicGeneratedNativeCost_crossEq_generated (q : RatioOrbit) :
12017    RatioOrbit.crossEq (twoAdicGeneratedNativeCost q)
12018      (costFromCharacter twoAdicAxisTwistCharacter q) := by
12019  classical
12020  by_cases hq : q = RatioOrbit.one
12021  · subst q
12022    rw [twoAdicGeneratedNativeCost, if_pos rfl]
12023    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.zero_toRat,
12024      costFromCharacter_toRat, twoAdicAxisTwistCharacter_toRat,
12025      RatioOrbit.one_toRat]
12026    rw [twoAdicTwistRat_one]
12027    norm_num
12028  · rw [twoAdicGeneratedNativeCost, if_neg hq]
12029    exact RatioOrbit.crossEq_refl _
12030
12031theorem twoAdicGeneratedNativeCost_hypotheses :
12032    PRCNativeCostHypotheses twoAdicGeneratedNativeCost where
12033  reciprocal := by
12034    intro q
12035    exact RatioOrbit.crossEq_trans
12036      (twoAdicGeneratedNativeCost_crossEq_generated q)
12037      (RatioOrbit.crossEq_trans
12038        (costFromCharacter_reciprocal_congr
12039          twoAdicAxisTwistCharacter
12040          twoAdicAxisTwistCharacter_ratio_character q)
12041        (RatioOrbit.crossEq_symm
12042          (twoAdicGeneratedNativeCost_crossEq_generated
12043            (RatioOrbit.recip q))))
12044  normalized_invariant := by
12045    intro q
12046    exact RatioOrbit.crossEq_trans
12047      (twoAdicGeneratedNativeCost_crossEq_generated q)
12048      (RatioOrbit.crossEq_trans
12049        (costFromCharacter_normalized_congr
12050          twoAdicAxisTwistCharacter
12051          twoAdicAxisTwistCharacter_ratio_character q)
12052        (RatioOrbit.crossEq_symm
12053          (twoAdicGeneratedNativeCost_crossEq_generated
12054            (DistinctionNat.normalizeRatio q))))
12055  canonical_rcl := by
12056    intro x y hx hy
12057    let C := costFromCharacter twoAdicAxisTwistCharacter
12058    have hC :
12059        RatioOrbit.crossEq
12060          (RatioOrbit.add (C (RatioOrbit.mul x y)) (C (div x y)))
12061          (RatioOrbit.add
12062            (RatioOrbit.add
12063              (RatioOrbit.mul two (RatioOrbit.mul (C x) (C y)))
12064              (RatioOrbit.mul two (C x)))
12065            (RatioOrbit.mul two (C y))) :=
12066      costFromCharacter_canonical_rcl twoAdicAxisTwistCharacter
12067        twoAdicAxisTwistCharacter_ratio_character hx hy
12068    have hleft :
12069        RatioOrbit.crossEq
12070          (RatioOrbit.add
12071            (twoAdicGeneratedNativeCost (RatioOrbit.mul x y))
12072            (twoAdicGeneratedNativeCost (div x y)))
12073          (RatioOrbit.add (C (RatioOrbit.mul x y)) (C (div x y))) := by
12074      exact ratioOrbit_add_congr
12075        (twoAdicGeneratedNativeCost_crossEq_generated (RatioOrbit.mul x y))
12076        (twoAdicGeneratedNativeCost_crossEq_generated (div x y))
12077    have hxF := twoAdicGeneratedNativeCost_crossEq_generated x
12078    have hyF := twoAdicGeneratedNativeCost_crossEq_generated y
12079    have hmulInner :
12080        RatioOrbit.crossEq
12081          (RatioOrbit.mul (C x) (C y))
12082          (RatioOrbit.mul (twoAdicGeneratedNativeCost x)
12083            (twoAdicGeneratedNativeCost y)) :=
12084      ratioOrbit_mul_congr
12085        (RatioOrbit.crossEq_symm hxF)
12086        (RatioOrbit.crossEq_symm hyF)
12087    have hterm₁ :
12088        RatioOrbit.crossEq
12089          (RatioOrbit.mul two (RatioOrbit.mul (C x) (C y)))
12090          (RatioOrbit.mul two
12091            (RatioOrbit.mul (twoAdicGeneratedNativeCost x)
12092              (twoAdicGeneratedNativeCost y))) :=
12093      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two) hmulInner
12094    have hterm₂ :
12095        RatioOrbit.crossEq
12096          (RatioOrbit.mul two (C x))
12097          (RatioOrbit.mul two (twoAdicGeneratedNativeCost x)) :=
12098      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two)
12099        (RatioOrbit.crossEq_symm hxF)
12100    have hterm₃ :
12101        RatioOrbit.crossEq
12102          (RatioOrbit.mul two (C y))
12103          (RatioOrbit.mul two (twoAdicGeneratedNativeCost y)) :=
12104      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two)
12105        (RatioOrbit.crossEq_symm hyF)
12106    have hright :
12107        RatioOrbit.crossEq
12108          (RatioOrbit.add
12109            (RatioOrbit.add
12110              (RatioOrbit.mul two (RatioOrbit.mul (C x) (C y)))
12111              (RatioOrbit.mul two (C x)))
12112            (RatioOrbit.mul two (C y)))
12113          (RatioOrbit.add
12114            (RatioOrbit.add
12115              (RatioOrbit.mul two
12116                (RatioOrbit.mul (twoAdicGeneratedNativeCost x)
12117                  (twoAdicGeneratedNativeCost y)))
12118              (RatioOrbit.mul two (twoAdicGeneratedNativeCost x)))
12119            (RatioOrbit.mul two (twoAdicGeneratedNativeCost y))) :=
12120      ratioOrbit_add_congr (ratioOrbit_add_congr hterm₁ hterm₂) hterm₃
12121    exact RatioOrbit.crossEq_trans hleft
12122      (RatioOrbit.crossEq_trans hC hright)
12123  unit_zero := by
12124    classical
12125    rw [twoAdicGeneratedNativeCost, if_pos rfl]
12126  two_calibrated := by
12127    have hFtwo := twoAdicGeneratedNativeCost_crossEq_generated two
12128    have htwistTwo :
12129        RatioOrbit.crossEq (twoAdicAxisTwistCharacter two)
12130          (RatioOrbit.recip two) := by
12131      rw [RatioOrbit.crossEq_iff_toRat_eq, twoAdicAxisTwistCharacter_toRat,
12132        RatioOrbit.recip_toRat, two_toRat]
12133      rw [twoAdicTwistRat_two]
12134    have hcost :
12135        RatioOrbit.crossEq
12136          (costFromCharacter twoAdicAxisTwistCharacter two)
12137          (onRatioOrbit two) := by
12138      unfold costFromCharacter
12139      exact RatioOrbit.crossEq_trans
12140        (onRatioOrbit_congr htwistTwo)
12141        (RatioOrbit.crossEq_symm (reciprocal_symmetric two))
12142    exact RatioOrbit.crossEq_trans hFtwo hcost
12143
12144theorem PRCTwoAdicAxisTwistGeneratedCostNativeHypothesesTarget_constructed :
12145    PRCTwoAdicAxisTwistGeneratedCostNativeHypothesesTarget :=
12146  ⟨twoAdicGeneratedNativeCost,
12147    twoAdicGeneratedNativeCost_hypotheses,
12148    twoAdicGeneratedNativeCost_crossEq_generated⟩
12149
12150theorem PRCNoAdmissibleFactorForTwoAdicAxisTwistGeneratedCost
12151    {F : RatioOrbit → RatioOrbit}
12152    (hFtwist :
12153      ∀ q : RatioOrbit,
12154        RatioOrbit.crossEq (F q)
12155          (costFromCharacter twoAdicAxisTwistCharacter q)) :
12156    ¬ ∃ ψ : RatioOrbit → RatioOrbit,
12157      PRCAdmissibleRatioCharacter ψ ∧
12158        ∀ q : RatioOrbit,
12159          RatioOrbit.crossEq (F q) (costFromCharacter ψ q) := by
12160  intro hψ
12161  rcases hψ with ⟨ψ, hadm, hFψ⟩
12162  have hψcost :
12163      RatioOrbit.crossEq
12164        (costFromCharacter ψ twoThreePrimeCompositeDirection)
12165        (onRatioOrbit twoThreePrimeCompositeDirection) := by
12166    simpa [twoThreePrimeCompositeDirection, twoPrimeDirection,
12167      threePrimeDirection] using
12168      hadm.prime_pair_product_cost twoOrbit twoOrbit_primeOrbit
12169        threeOrbit threeOrbit_primeOrbit
12170  have himage :
12171      RatioOrbit.crossEq
12172        (twoAdicAxisTwistCharacter twoThreePrimeCompositeDirection)
12173        twoThreePrimeMixedDirection :=
12174    PRCCharacterTwoAdicAxisTwist_two_three_mixed_image
12175      twoAdicAxisTwistCharacter_ratio_character
12176      twoAdicAxisTwistCharacter_branch
12177  have htwistCost :
12178      RatioOrbit.crossEq
12179        (costFromCharacter twoAdicAxisTwistCharacter
12180          twoThreePrimeCompositeDirection)
12181        (onRatioOrbit twoThreePrimeMixedDirection) := by
12182    unfold costFromCharacter
12183    exact onRatioOrbit_congr himage
12184  have htwistCanonical :
12185      RatioOrbit.crossEq
12186        (onRatioOrbit twoThreePrimeMixedDirection)
12187        (onRatioOrbit twoThreePrimeCompositeDirection) :=
12188    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwistCost)
12189      (RatioOrbit.crossEq_trans
12190        (RatioOrbit.crossEq_symm
12191          (hFtwist twoThreePrimeCompositeDirection))
12192        (RatioOrbit.crossEq_trans
12193          (hFψ twoThreePrimeCompositeDirection)
12194          hψcost))
12195  exact
12196    two_prime_composite_mixed_image_jcost_mismatch
12197      threeOrbit threeOrbit_primeOrbit
12198      (by
12199        simpa [twoThreePrimeMixedDirection, twoThreePrimeCompositeDirection,
12200          threePrimeDirection] using htwistCanonical)
12201
12202theorem PRCNativeCostFactorizationAdmissibilityUpgradeTarget_not_of_two_adic_axis_twist_generated_cost
12203    (htwistCost :
12204      PRCTwoAdicAxisTwistGeneratedCostNativeHypothesesTarget) :
12205    ¬ PRCNativeCostFactorizationAdmissibilityUpgradeTarget := by
12206  intro hupgrade
12207  rcases htwistCost with ⟨F, hF, hFtwist⟩
12208  exact
12209    PRCNoAdmissibleFactorForTwoAdicAxisTwistGeneratedCost hFtwist
12210      (hupgrade F hF twoAdicAxisTwistCharacter
12211        twoAdicAxisTwistCharacter_ratio_character hFtwist)
12212
12213theorem PRCNativeCostFactorizationAdmissibilityUpgradeTarget_refuted :
12214    ¬ PRCNativeCostFactorizationAdmissibilityUpgradeTarget :=
12215  PRCNativeCostFactorizationAdmissibilityUpgradeTarget_not_of_two_adic_axis_twist_generated_cost
12216    PRCTwoAdicAxisTwistGeneratedCostNativeHypothesesTarget_constructed
12217
12218theorem PRCNativeCostUniquenessTarget_refuted :
12219    ¬ PRCNativeCostUniquenessTarget := by
12220  intro hunique
12221  have hcanonical :
12222      RatioOrbit.crossEq
12223        (twoAdicGeneratedNativeCost twoThreePrimeCompositeDirection)
12224        (onRatioOrbit twoThreePrimeCompositeDirection) :=
12225    hunique twoAdicGeneratedNativeCost
12226      twoAdicGeneratedNativeCost_hypotheses
12227      twoThreePrimeCompositeDirection
12228  have htwistGenerated :
12229      RatioOrbit.crossEq
12230        (twoAdicGeneratedNativeCost twoThreePrimeCompositeDirection)
12231        (costFromCharacter twoAdicAxisTwistCharacter
12232          twoThreePrimeCompositeDirection) :=
12233    twoAdicGeneratedNativeCost_crossEq_generated
12234      twoThreePrimeCompositeDirection
12235  have himage :
12236      RatioOrbit.crossEq
12237        (twoAdicAxisTwistCharacter twoThreePrimeCompositeDirection)
12238        twoThreePrimeMixedDirection :=
12239    PRCCharacterTwoAdicAxisTwist_two_three_mixed_image
12240      twoAdicAxisTwistCharacter_ratio_character
12241      twoAdicAxisTwistCharacter_branch
12242  have htwistCost :
12243      RatioOrbit.crossEq
12244        (costFromCharacter twoAdicAxisTwistCharacter
12245          twoThreePrimeCompositeDirection)
12246        (onRatioOrbit twoThreePrimeMixedDirection) := by
12247    unfold costFromCharacter
12248    exact onRatioOrbit_congr himage
12249  have hbad :
12250      RatioOrbit.crossEq
12251        (onRatioOrbit twoThreePrimeMixedDirection)
12252        (onRatioOrbit twoThreePrimeCompositeDirection) :=
12253    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwistCost)
12254      (RatioOrbit.crossEq_trans
12255        (RatioOrbit.crossEq_symm htwistGenerated)
12256        hcanonical)
12257  exact
12258    two_prime_composite_mixed_image_jcost_mismatch
12259      threeOrbit threeOrbit_primeOrbit
12260      (by
12261        simpa [twoThreePrimeMixedDirection, twoThreePrimeCompositeDirection,
12262          threePrimeDirection] using hbad)
12263
12264/-- Cost-level repair for the native uniqueness hypotheses: a native cost must
12265already be canonical on products of native prime directions. This is the exact
12266surface where the two-adic generated cost slips through the older
12267`PRCNativeCostHypotheses`. -/
12268def PRCNativeCostPrimePairProductCalibrated
12269    (F : RatioOrbit → RatioOrbit) : Prop :=
12270  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
12271    ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
12272      RatioOrbit.crossEq
12273        (F (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
12274        (onRatioOrbit
12275          (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
12276
12277/-- Strengthened native-cost interface after the two-adic no-go: keep the old
12278RCL/normalization/calibration fields, but add prime-pair product calibration at
12279the cost level. -/
12280structure PRCStrengthenedNativeCostHypotheses
12281    (F : RatioOrbit → RatioOrbit) : Prop where
12282  native : PRCNativeCostHypotheses F
12283  prime_pair_product_cost :
12284    PRCNativeCostPrimePairProductCalibrated F
12285
12286/-- Signed-unit repair for native costs: the cost must see the signed unit
12287`-1`, not only positive prime and prime-pair probes. -/
12288def PRCNativeCostSignedUnitCalibrated
12289    (F : RatioOrbit → RatioOrbit) : Prop :=
12290  RatioOrbit.crossEq (F negativeOneRatio) (onRatioOrbit negativeOneRatio)
12291
12292/-- Signed repaired native-cost interface after the absolute-value no-go:
12293the pass-274 strengthened hypotheses plus direct calibration at the signed
12294unit. -/
12295structure PRCSignedStrengthenedNativeCostHypotheses
12296    (F : RatioOrbit → RatioOrbit) : Prop where
12297  strengthened : PRCStrengthenedNativeCostHypotheses F
12298  signed_unit : PRCNativeCostSignedUnitCalibrated F
12299
12300/-- Replacement target after pass 281: uniqueness is now asked only for native
12301costs that also calibrate the signed unit. -/
12302def PRCSignedStrengthenedNativeCostUniquenessTarget : Prop :=
12303  ∀ F : RatioOrbit → RatioOrbit,
12304    PRCSignedStrengthenedNativeCostHypotheses F →
12305      ∀ q : RatioOrbit,
12306        RatioOrbit.crossEq (F q) (onRatioOrbit q)
12307
12308/-- Native cost-level all-prime calibration. Pass 283 refutes deriving this from
12309two calibration alone. -/
12310def PRCNativeCostPrimeDirectionCalibrated
12311    (F : RatioOrbit → RatioOrbit) : Prop :=
12312  ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
12313    RatioOrbit.crossEq (F (primeDirection p hp))
12314      (onRatioOrbit (primeDirection p hp))
12315
12316/-- Prime-signed repaired native-cost interface: signed strengthened hypotheses
12317plus direct all-prime calibration at the cost level. -/
12318structure PRCPrimeSignedStrengthenedNativeCostHypotheses
12319    (F : RatioOrbit → RatioOrbit) : Prop where
12320  signed_strengthened : PRCSignedStrengthenedNativeCostHypotheses F
12321  prime_direction_cost : PRCNativeCostPrimeDirectionCalibrated F
12322
12323/-- Zero-calibrated final native-cost interface for the character-factorization
12324route: the native cost has zero trace at the zero orbit, sees the signed unit,
12325and is calibrated on all native prime axes and prime-pair products. -/
12326structure PRCZeroCalibratedPrimeSignedStrengthenedNativeCostHypotheses
12327    (F : RatioOrbit → RatioOrbit) : Prop where
12328  prime_signed : PRCPrimeSignedStrengthenedNativeCostHypotheses F
12329  zero_calibrated :
12330    PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F)
12331
12332/-- Replacement uniqueness target after both no-go repairs: sign and every prime
12333axis are calibrated at the native-cost level. -/
12334def PRCPrimeSignedStrengthenedNativeCostUniquenessTarget : Prop :=
12335  ∀ F : RatioOrbit → RatioOrbit,
12336    PRCPrimeSignedStrengthenedNativeCostHypotheses F →
12337      ∀ q : RatioOrbit,
12338        RatioOrbit.crossEq (F q) (onRatioOrbit q)
12339
12340/-- Zero-calibrated replacement uniqueness target after the zero-flat and
12341absolute-value no-gos. -/
12342def PRCZeroCalibratedPrimeSignedStrengthenedNativeCostUniquenessTarget : Prop :=
12343  ∀ F : RatioOrbit → RatioOrbit,
12344    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostHypotheses F →
12345      ∀ q : RatioOrbit,
12346        RatioOrbit.crossEq (F q) (onRatioOrbit q)
12347
12348/-- Replacement target for the refuted old native uniqueness statement. -/
12349def PRCStrengthenedNativeCostUniquenessTarget : Prop :=
12350  ∀ F : RatioOrbit → RatioOrbit,
12351    PRCStrengthenedNativeCostHypotheses F →
12352      ∀ q : RatioOrbit,
12353        RatioOrbit.crossEq (F q) (onRatioOrbit q)
12354
12355/-- Strengthened factorization target: once the cost-level prime-pair field is
12356part of the native hypotheses, a factor character must be admissible. -/
12357def PRCStrengthenedNativeCostAdmissibleCharacterFactorizationTarget : Prop :=
12358  ∀ F : RatioOrbit → RatioOrbit,
12359    PRCStrengthenedNativeCostHypotheses F →
12360      ∃ χ : RatioOrbit → RatioOrbit,
12361        PRCAdmissibleRatioCharacter χ ∧
12362          ∀ q : RatioOrbit,
12363            RatioOrbit.crossEq (F q) (costFromCharacter χ q)
12364
12365theorem PRCStrengthenedNativeCostAdmissibleCharacterFactorizationTarget_of_character_factorization_and_two_calibration
12366    (hfactor : PRCNativeCostCharacterFactorizationTarget)
12367    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget) :
12368    PRCStrengthenedNativeCostAdmissibleCharacterFactorizationTarget := by
12369  intro F hF
12370  rcases hfactor F hF.native with ⟨χ, hχ, hFχ⟩
12371  have htwoCal :
12372      RatioOrbit.crossEq (costFromCharacter χ two) (onRatioOrbit two) :=
12373    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ two))
12374      hF.native.two_calibrated
12375  have hprime :
12376      PRCCharacterPrimeDirectionCalibrated χ :=
12377    htwo χ hχ htwoCal
12378  have hpair :
12379      PRCCharacterPrimePairProductCostConsistent χ := by
12380    intro p hp r hr
12381    exact RatioOrbit.crossEq_trans
12382      (RatioOrbit.crossEq_symm
12383        (hFχ (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr))))
12384      (hF.prime_pair_product_cost p hp r hr)
12385  exact ⟨χ, ⟨hχ, hprime, hpair⟩, hFχ⟩
12386
12387theorem PRCStrengthenedNativeCostUniquenessTarget_of_strengthened_admissible_factorization_and_rigidity
12388    (hfactor : PRCStrengthenedNativeCostAdmissibleCharacterFactorizationTarget)
12389    (hrigid : PRCNativeCostAdmissibleCharacterRigidityTarget) :
12390    PRCStrengthenedNativeCostUniquenessTarget := by
12391  intro F hF q
12392  rcases hfactor F hF with ⟨χ, hadm, hFχ⟩
12393  exact RatioOrbit.crossEq_trans (hFχ q) (hrigid χ hadm q)
12394
12395theorem PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_rigidity
12396    (hfactor : PRCNativeCostCharacterFactorizationTarget)
12397    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
12398    (hrigid : PRCNativeCostAdmissibleCharacterRigidityTarget) :
12399    PRCStrengthenedNativeCostUniquenessTarget :=
12400  PRCStrengthenedNativeCostUniquenessTarget_of_strengthened_admissible_factorization_and_rigidity
12401    (PRCStrengthenedNativeCostAdmissibleCharacterFactorizationTarget_of_character_factorization_and_two_calibration
12402      hfactor htwo)
12403    hrigid
12404
12405theorem PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_global_orientation
12406    (hfactor : PRCNativeCostCharacterFactorizationTarget)
12407    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
12408    (horient : PRCAdmissibleCharacterGlobalOrientationTarget) :
12409    PRCStrengthenedNativeCostUniquenessTarget :=
12410  PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_rigidity
12411    hfactor htwo
12412    (PRCNativeCostAdmissibleCharacterRigidityTarget_of_admissible_global_orientation
12413      horient)
12414
12415theorem PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_prime_propagation
12416    (hfactor : PRCNativeCostCharacterFactorizationTarget)
12417    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
12418    (hprop : PRCPrimeCalibrationPropagationTarget) :
12419    PRCStrengthenedNativeCostUniquenessTarget :=
12420  PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_rigidity
12421    hfactor htwo
12422    (PRCNativeCostAdmissibleCharacterRigidityTarget_of_prime_calibration_propagation
12423      hprop)
12424
12425/-- Exact strengthened-hypothesis no-go target after the signed-unit analysis:
12426the absolute-value character generates a native cost satisfying the prime-pair
12427repair while erasing the signed unit. -/
12428def PRCAbsValueGeneratedCostStrengthenedNativeHypothesesTarget : Prop :=
12429  ∃ F : RatioOrbit → RatioOrbit,
12430    PRCStrengthenedNativeCostHypotheses F ∧
12431      ∀ q : RatioOrbit,
12432        RatioOrbit.crossEq (F q)
12433          (costFromCharacter absValueCharacter q)
12434
12435noncomputable def absValueGeneratedNativeCost (q : RatioOrbit) : RatioOrbit :=
12436  by
12437    classical
12438    exact if q = RatioOrbit.one then RatioOrbit.zero
12439      else costFromCharacter absValueCharacter q
12440
12441theorem absValueGeneratedNativeCost_crossEq_generated (q : RatioOrbit) :
12442    RatioOrbit.crossEq (absValueGeneratedNativeCost q)
12443      (costFromCharacter absValueCharacter q) := by
12444  classical
12445  by_cases hq : q = RatioOrbit.one
12446  · subst q
12447    rw [absValueGeneratedNativeCost, if_pos rfl]
12448    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.zero_toRat,
12449      costFromCharacter_toRat, absValueCharacter_toRat, RatioOrbit.one_toRat]
12450    norm_num
12451  · rw [absValueGeneratedNativeCost, if_neg hq]
12452    exact RatioOrbit.crossEq_refl _
12453
12454theorem absValueGeneratedNativeCost_native_hypotheses :
12455    PRCNativeCostHypotheses absValueGeneratedNativeCost where
12456  reciprocal := by
12457    intro q
12458    exact RatioOrbit.crossEq_trans
12459      (absValueGeneratedNativeCost_crossEq_generated q)
12460      (RatioOrbit.crossEq_trans
12461        (costFromCharacter_reciprocal_congr
12462          absValueCharacter
12463          absValueCharacter_ratio_character q)
12464        (RatioOrbit.crossEq_symm
12465          (absValueGeneratedNativeCost_crossEq_generated
12466            (RatioOrbit.recip q))))
12467  normalized_invariant := by
12468    intro q
12469    exact RatioOrbit.crossEq_trans
12470      (absValueGeneratedNativeCost_crossEq_generated q)
12471      (RatioOrbit.crossEq_trans
12472        (costFromCharacter_normalized_congr
12473          absValueCharacter
12474          absValueCharacter_ratio_character q)
12475        (RatioOrbit.crossEq_symm
12476          (absValueGeneratedNativeCost_crossEq_generated
12477            (DistinctionNat.normalizeRatio q))))
12478  canonical_rcl := by
12479    intro x y hx hy
12480    let C := costFromCharacter absValueCharacter
12481    have hC :
12482        RatioOrbit.crossEq
12483          (RatioOrbit.add (C (RatioOrbit.mul x y)) (C (div x y)))
12484          (RatioOrbit.add
12485            (RatioOrbit.add
12486              (RatioOrbit.mul two (RatioOrbit.mul (C x) (C y)))
12487              (RatioOrbit.mul two (C x)))
12488            (RatioOrbit.mul two (C y))) :=
12489      costFromCharacter_canonical_rcl absValueCharacter
12490        absValueCharacter_ratio_character hx hy
12491    have hleft :
12492        RatioOrbit.crossEq
12493          (RatioOrbit.add
12494            (absValueGeneratedNativeCost (RatioOrbit.mul x y))
12495            (absValueGeneratedNativeCost (div x y)))
12496          (RatioOrbit.add (C (RatioOrbit.mul x y)) (C (div x y))) := by
12497      exact ratioOrbit_add_congr
12498        (absValueGeneratedNativeCost_crossEq_generated (RatioOrbit.mul x y))
12499        (absValueGeneratedNativeCost_crossEq_generated (div x y))
12500    have hxF := absValueGeneratedNativeCost_crossEq_generated x
12501    have hyF := absValueGeneratedNativeCost_crossEq_generated y
12502    have hmulInner :
12503        RatioOrbit.crossEq
12504          (RatioOrbit.mul (C x) (C y))
12505          (RatioOrbit.mul (absValueGeneratedNativeCost x)
12506            (absValueGeneratedNativeCost y)) :=
12507      ratioOrbit_mul_congr
12508        (RatioOrbit.crossEq_symm hxF)
12509        (RatioOrbit.crossEq_symm hyF)
12510    have hterm₁ :
12511        RatioOrbit.crossEq
12512          (RatioOrbit.mul two (RatioOrbit.mul (C x) (C y)))
12513          (RatioOrbit.mul two
12514            (RatioOrbit.mul (absValueGeneratedNativeCost x)
12515              (absValueGeneratedNativeCost y))) :=
12516      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two) hmulInner
12517    have hterm₂ :
12518        RatioOrbit.crossEq
12519          (RatioOrbit.mul two (C x))
12520          (RatioOrbit.mul two (absValueGeneratedNativeCost x)) :=
12521      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two)
12522        (RatioOrbit.crossEq_symm hxF)
12523    have hterm₃ :
12524        RatioOrbit.crossEq
12525          (RatioOrbit.mul two (C y))
12526          (RatioOrbit.mul two (absValueGeneratedNativeCost y)) :=
12527      ratioOrbit_mul_congr (RatioOrbit.crossEq_refl two)
12528        (RatioOrbit.crossEq_symm hyF)
12529    have hright :
12530        RatioOrbit.crossEq
12531          (RatioOrbit.add
12532            (RatioOrbit.add
12533              (RatioOrbit.mul two (RatioOrbit.mul (C x) (C y)))
12534              (RatioOrbit.mul two (C x)))
12535            (RatioOrbit.mul two (C y)))
12536          (RatioOrbit.add
12537            (RatioOrbit.add
12538              (RatioOrbit.mul two
12539                (RatioOrbit.mul (absValueGeneratedNativeCost x)
12540                  (absValueGeneratedNativeCost y)))
12541              (RatioOrbit.mul two (absValueGeneratedNativeCost x)))
12542            (RatioOrbit.mul two (absValueGeneratedNativeCost y))) :=
12543      ratioOrbit_add_congr (ratioOrbit_add_congr hterm₁ hterm₂) hterm₃
12544    exact RatioOrbit.crossEq_trans hleft
12545      (RatioOrbit.crossEq_trans hC hright)
12546  unit_zero := by
12547    classical
12548    rw [absValueGeneratedNativeCost, if_pos rfl]
12549  two_calibrated := by
12550    have hFtwo := absValueGeneratedNativeCost_crossEq_generated two
12551    have hcost := absValueCharacter_prime_calibrated twoOrbit twoOrbit_primeOrbit
12552    simpa [twoPrimeDirection, primeDirection] using
12553      RatioOrbit.crossEq_trans hFtwo hcost
12554
12555theorem absValueGeneratedNativeCost_prime_pair_product_cost :
12556    PRCNativeCostPrimePairProductCalibrated absValueGeneratedNativeCost := by
12557  intro p hp r hr
12558  exact RatioOrbit.crossEq_trans
12559    (absValueGeneratedNativeCost_crossEq_generated
12560      (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
12561    (absValueCharacter_prime_pair_product_cost p hp r hr)
12562
12563theorem absValueGeneratedNativeCost_prime_direction_cost :
12564    PRCNativeCostPrimeDirectionCalibrated absValueGeneratedNativeCost := by
12565  intro p hp
12566  exact RatioOrbit.crossEq_trans
12567    (absValueGeneratedNativeCost_crossEq_generated (primeDirection p hp))
12568    (absValueCharacter_prime_calibrated p hp)
12569
12570theorem absValueGeneratedNativeCost_strengthened_hypotheses :
12571    PRCStrengthenedNativeCostHypotheses absValueGeneratedNativeCost where
12572  native := absValueGeneratedNativeCost_native_hypotheses
12573  prime_pair_product_cost := absValueGeneratedNativeCost_prime_pair_product_cost
12574
12575theorem absValueGeneratedNativeCost_doubled_trace_zero_calibrated :
12576    PRCDoubledTraceZeroCalibrated
12577      (nativeCostDoubledTrace absValueGeneratedNativeCost) := by
12578  rw [PRCDoubledTraceZeroCalibrated, RatioOrbit.crossEq_iff_toRat_eq,
12579    nativeCostDoubledTrace, doubledTraceValue, RatioOrbit.mul_toRat,
12580    RatioOrbit.add_toRat, two_toRat, RatioOrbit.zero_toRat,
12581    RatioOrbit.one_toRat]
12582  rw [absValueGeneratedNativeCost, if_neg (by
12583    intro h
12584    have hrat := congrArg RatioOrbit.toRat h
12585    rw [RatioOrbit.zero_toRat, RatioOrbit.one_toRat] at hrat
12586    norm_num at hrat)]
12587  rw [costFromCharacter_toRat, absValueCharacter_toRat, RatioOrbit.zero_toRat]
12588  norm_num
12589
12590theorem PRCAbsValueGeneratedCostStrengthenedNativeHypothesesTarget_constructed :
12591    PRCAbsValueGeneratedCostStrengthenedNativeHypothesesTarget :=
12592  ⟨absValueGeneratedNativeCost,
12593    absValueGeneratedNativeCost_strengthened_hypotheses,
12594    absValueGeneratedNativeCost_crossEq_generated⟩
12595
12596theorem negativeOneRatio_ne_one :
12597    negativeOneRatio ≠ RatioOrbit.one := by
12598  intro h
12599  have hrat := congrArg RatioOrbit.toRat h
12600  rw [negativeOneRatio_toRat, RatioOrbit.one_toRat] at hrat
12601  norm_num at hrat
12602
12603theorem absValueGeneratedNativeCost_negative_one_zero :
12604    RatioOrbit.crossEq (absValueGeneratedNativeCost negativeOneRatio)
12605      RatioOrbit.zero := by
12606  rw [absValueGeneratedNativeCost, if_neg negativeOneRatio_ne_one]
12607  rw [RatioOrbit.crossEq_iff_toRat_eq, costFromCharacter_toRat,
12608    absValueCharacter_toRat, negativeOneRatio_toRat, RatioOrbit.zero_toRat]
12609  norm_num
12610
12611theorem onRatioOrbit_negativeOneRatio_toRat :
12612    (onRatioOrbit negativeOneRatio).toRat = -2 := by
12613  rw [onRatioOrbit_toRat, negativeOneRatio_toRat]
12614  norm_num
12615
12616theorem absValueGeneratedNativeCost_negative_one_not_canonical :
12617    ¬ RatioOrbit.crossEq (absValueGeneratedNativeCost negativeOneRatio)
12618      (onRatioOrbit negativeOneRatio) := by
12619  intro h
12620  rw [RatioOrbit.crossEq_iff_toRat_eq] at h
12621  have hzero :=
12622    (RatioOrbit.crossEq_iff_toRat_eq
12623      (absValueGeneratedNativeCost negativeOneRatio) RatioOrbit.zero).mp
12624      absValueGeneratedNativeCost_negative_one_zero
12625  rw [hzero, onRatioOrbit_negativeOneRatio_toRat] at h
12626  norm_num at h
12627
12628theorem PRCStrengthenedNativeCostUniquenessTarget_refuted :
12629    ¬ PRCStrengthenedNativeCostUniquenessTarget := by
12630  intro huniq
12631  exact absValueGeneratedNativeCost_negative_one_not_canonical
12632    (huniq absValueGeneratedNativeCost
12633      absValueGeneratedNativeCost_strengthened_hypotheses negativeOneRatio)
12634
12635theorem onRatioOrbit_signed_unit_calibrated :
12636    PRCNativeCostSignedUnitCalibrated onRatioOrbit :=
12637  RatioOrbit.crossEq_refl (onRatioOrbit negativeOneRatio)
12638
12639theorem absValueGeneratedNativeCost_not_signed_unit_calibrated :
12640    ¬ PRCNativeCostSignedUnitCalibrated absValueGeneratedNativeCost :=
12641  absValueGeneratedNativeCost_negative_one_not_canonical
12642
12643def PRCZeroCalibrationForcesNativeCostSignedUnitCalibrationTarget : Prop :=
12644  ∀ F : RatioOrbit → RatioOrbit,
12645    PRCNativeCostHypotheses F →
12646      PRCDoubledTraceZeroCalibrated (nativeCostDoubledTrace F) →
12647        PRCNativeCostSignedUnitCalibrated F
12648
12649theorem PRCZeroCalibrationForcesNativeCostSignedUnitCalibrationTarget_refuted :
12650    ¬ PRCZeroCalibrationForcesNativeCostSignedUnitCalibrationTarget := by
12651  intro htarget
12652  exact absValueGeneratedNativeCost_not_signed_unit_calibrated
12653    (htarget absValueGeneratedNativeCost
12654      absValueGeneratedNativeCost_native_hypotheses
12655      absValueGeneratedNativeCost_doubled_trace_zero_calibrated)
12656
12657theorem absValueGeneratedNativeCost_not_signed_strengthened_hypotheses :
12658    ¬ PRCSignedStrengthenedNativeCostHypotheses absValueGeneratedNativeCost := by
12659  intro h
12660  exact absValueGeneratedNativeCost_not_signed_unit_calibrated h.signed_unit
12661
12662theorem onRatioOrbit_prime_pair_product_calibrated :
12663    PRCNativeCostPrimePairProductCalibrated onRatioOrbit := by
12664  intro p hp r hr
12665  exact RatioOrbit.crossEq_refl
12666    (onRatioOrbit (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
12667
12668theorem twoAdicGeneratedNativeCost_not_prime_pair_product_calibrated :
12669    ¬ PRCNativeCostPrimePairProductCalibrated twoAdicGeneratedNativeCost := by
12670  intro hpair
12671  have hcanonical :
12672      RatioOrbit.crossEq
12673        (twoAdicGeneratedNativeCost twoThreePrimeCompositeDirection)
12674        (onRatioOrbit twoThreePrimeCompositeDirection) := by
12675    simpa [twoThreePrimeCompositeDirection, twoPrimeDirection,
12676      threePrimeDirection] using
12677      hpair twoOrbit twoOrbit_primeOrbit threeOrbit threeOrbit_primeOrbit
12678  have htwistGenerated :
12679      RatioOrbit.crossEq
12680        (twoAdicGeneratedNativeCost twoThreePrimeCompositeDirection)
12681        (costFromCharacter twoAdicAxisTwistCharacter
12682          twoThreePrimeCompositeDirection) :=
12683    twoAdicGeneratedNativeCost_crossEq_generated
12684      twoThreePrimeCompositeDirection
12685  have himage :
12686      RatioOrbit.crossEq
12687        (twoAdicAxisTwistCharacter twoThreePrimeCompositeDirection)
12688        twoThreePrimeMixedDirection :=
12689    PRCCharacterTwoAdicAxisTwist_two_three_mixed_image
12690      twoAdicAxisTwistCharacter_ratio_character
12691      twoAdicAxisTwistCharacter_branch
12692  have htwistCost :
12693      RatioOrbit.crossEq
12694        (costFromCharacter twoAdicAxisTwistCharacter
12695          twoThreePrimeCompositeDirection)
12696        (onRatioOrbit twoThreePrimeMixedDirection) := by
12697    unfold costFromCharacter
12698    exact onRatioOrbit_congr himage
12699  have hbad :
12700      RatioOrbit.crossEq
12701        (onRatioOrbit twoThreePrimeMixedDirection)
12702        (onRatioOrbit twoThreePrimeCompositeDirection) :=
12703    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwistCost)
12704      (RatioOrbit.crossEq_trans
12705        (RatioOrbit.crossEq_symm htwistGenerated)
12706        hcanonical)
12707  exact
12708    two_prime_composite_mixed_image_jcost_mismatch
12709      threeOrbit threeOrbit_primeOrbit
12710      (by
12711        simpa [twoThreePrimeMixedDirection, twoThreePrimeCompositeDirection,
12712          threePrimeDirection] using hbad)
12713
12714theorem twoAdicGeneratedNativeCost_not_strengthened_hypotheses :
12715    ¬ PRCStrengthenedNativeCostHypotheses twoAdicGeneratedNativeCost := by
12716  intro hstrong
12717  exact twoAdicGeneratedNativeCost_not_prime_pair_product_calibrated
12718    hstrong.prime_pair_product_cost
12719
12720theorem PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_not_iff_non_two_composite_cost_defect_character :
12721    ¬ PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget ↔
12722      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter := by
12723  constructor
12724  · intro hnot
12725    by_contra hnoDefect
12726    exact hnot
12727      (PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_iff_no_composite_cost_defect_character.mpr
12728        hnoDefect)
12729  · intro hdefect htarget
12730    exact
12731      (PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_iff_no_composite_cost_defect_character.mp
12732        htarget) hdefect
12733
12734theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_not_iff_non_two_composite_cost_defect_character :
12735    ¬ PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
12736      PRCPrimeCalibratedTwoPrimeReciprocalIdentityNonTwoCompositeCostDefectCharacter := by
12737  constructor
12738  · intro hnot
12739    by_contra hnoDefect
12740    exact hnot
12741      (PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_no_non_two_composite_cost_defect_character.mpr
12742        hnoDefect)
12743  · intro hdefect htarget
12744    exact
12745      (PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_no_non_two_composite_cost_defect_character.mp
12746        htarget) hdefect
12747
12748theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_prime_pair_product_cost_consistency
12749    (hpair :
12750      PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget) :
12751    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget :=
12752  PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_mixed_composite_cost_consistency_direct
12753    (PRCPrimeCalibrationForcesTwoPrimeMixedCompositeCostConsistencyTarget_of_prime_pair_product_cost_consistency
12754      hpair)
12755
12756theorem PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_of_identity_forces_two
12757    (hforces :
12758      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
12759    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget := by
12760  intro χ hχ hprime
12761  exact
12762    PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal_of_reciprocal_twist_identity_forces_two
12763      (hforces
12764        (PRCCharacterReciprocalTwist χ)
12765        (PRCRatioCharacter.reciprocalTwist hχ)
12766        (PRCCharacterPrimeDirectionCalibrated.reciprocalTwist hprime))
12767
12768theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_prime_reciprocal_forces_two
12769    (hforces :
12770      PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget) :
12771    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget := by
12772  intro χ hχ hprime
12773  exact
12774    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_reciprocal_twist_reciprocal_forces_two
12775      (hforces
12776        (PRCCharacterReciprocalTwist χ)
12777        (PRCRatioCharacter.reciprocalTwist hχ)
12778        (PRCCharacterPrimeDirectionCalibrated.reciprocalTwist hprime))
12779
12780theorem PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_iff_identity_forces_two :
12781    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget ↔
12782      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
12783  ⟨PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_prime_reciprocal_forces_two,
12784    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_of_identity_forces_two⟩
12785
12786theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_two_prime_reciprocal_forces
12787    (hforces :
12788      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget) :
12789    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget := by
12790  intro χ hχ hprime
12791  exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_two_prime_reciprocal_forces
12792    (hforces χ hχ hprime)
12793
12794theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_two_prime_reciprocal_excludes
12795    (hexcl :
12796      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget) :
12797    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget := by
12798  intro χ hχ hprime
12799  exact PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_local_excludes_prime_identity
12800    (PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved χ hχ hprime)
12801    (hexcl χ hχ hprime)
12802
12803theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_iff_two_prime_reciprocal_forces :
12804    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget ↔
12805      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget :=
12806  ⟨PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_two_prime_reciprocal_excludes,
12807    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_two_prime_reciprocal_forces⟩
12808
12809theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_identity_forces_two
12810    (hidentity :
12811      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget) :
12812    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget :=
12813  PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_two_prime_reciprocal_excludes
12814    (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_identity_forces_two
12815      hidentity)
12816
12817theorem PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_forces
12818    (hforces :
12819      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget) :
12820    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
12821  PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes
12822    (PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_two_prime_reciprocal_forces
12823      hforces)
12824
12825theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_iff_identity_forces_two :
12826    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget ↔
12827      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
12828  ⟨PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_forces,
12829    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_identity_forces_two⟩
12830
12831theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_of_two_prime_reciprocal_forces
12832    (hforces :
12833      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget) :
12834    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget := by
12835  constructor
12836  · have hexcl :
12837        PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget :=
12838      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_two_prime_reciprocal_forces
12839        hforces
12840    have hidentity :
12841        PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
12842      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes
12843        hexcl
12844    exact
12845      PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_of_identity_forces_two
12846        hidentity
12847  · exact hforces
12848
12849theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_split
12850    (hsplit :
12851      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget) :
12852    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget :=
12853  hsplit.2
12854
12855theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_iff_two_prime_reciprocal_forces :
12856    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget ↔
12857      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget :=
12858  ⟨PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_split,
12859    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_of_two_prime_reciprocal_forces⟩
12860
12861theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_trace_connected
12862    (htrace :
12863      PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget) :
12864    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget := by
12865  intro χ hχ hprime
12866  exact PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_trace_connected
12867    (htrace χ hχ hprime)
12868
12869theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_of_forces
12870    (hforces :
12871      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget) :
12872    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget := by
12873  intro χ hχ hprime
12874  exact PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_of_forces
12875    (hforces χ hχ hprime)
12876
12877theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_iff_forces :
12878    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget ↔
12879      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget :=
12880  ⟨PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_trace_connected,
12881    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_of_forces⟩
12882
12883theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_of_identity_trace_connected
12884    (hidentity :
12885      PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget) :
12886    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget := by
12887  intro χ hχ hprime
12888  exact
12889    PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_of_reciprocal_twist_identity
12890      (hidentity (PRCCharacterReciprocalTwist χ)
12891        hχ.reciprocalTwist hprime.reciprocalTwist)
12892
12893theorem PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_of_reciprocal_trace_connected
12894    (hreciprocal :
12895      PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget) :
12896    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget := by
12897  intro χ hχ hprime
12898  exact
12899    PRCCharacterTwoPrimeIdentityRespectsTraceConnected_of_reciprocal_twist_reciprocal
12900      (hreciprocal (PRCCharacterReciprocalTwist χ)
12901        hχ.reciprocalTwist hprime.reciprocalTwist)
12902
12903theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_iff_identity_trace_connected :
12904    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget ↔
12905      PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget :=
12906  ⟨PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_of_reciprocal_trace_connected,
12907    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_of_identity_trace_connected⟩
12908
12909theorem PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_of_prime_identity_trace_transport
12910    (htransport :
12911      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget) :
12912    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget := by
12913  intro χ hχ hprime
12914  exact
12915    PRCCharacterTwoPrimeIdentityRespectsTraceConnected_of_prime_identity_trace_connected
12916      (htransport χ hχ hprime)
12917
12918theorem PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_two_prime_identity_trace_connected
12919    (htwo :
12920      PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget) :
12921    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget := by
12922  intro χ hχ hprime
12923  have hrecTrace :
12924      PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget :=
12925    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_of_identity_trace_connected
12926      htwo
12927  have hrecForces :
12928      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget :=
12929    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_trace_connected
12930      hrecTrace
12931  have hexcl :
12932      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget :=
12933    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_two_prime_reciprocal_forces
12934      hrecForces
12935  have hforcesTwo :
12936      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget :=
12937    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes
12938      hexcl
12939  exact
12940    PRCCharacterPrimeIdentityRespectsTraceConnected_of_two_prime_identity_and_forces_two
12941      (htwo χ hχ hprime)
12942      (hforcesTwo χ hχ hprime)
12943
12944theorem PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_iff_prime_identity_trace_transport :
12945    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget ↔
12946      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget :=
12947  ⟨PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_two_prime_identity_trace_connected,
12948    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_of_prime_identity_trace_transport⟩
12949
12950theorem PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_refuted :
12951    ¬ PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget := by
12952  intro htarget
12953  exact PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_refuted
12954    (PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_iff_prime_identity_trace_transport.mp
12955      htarget)
12956
12957theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_refuted :
12958    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget := by
12959  intro htarget
12960  exact PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_refuted
12961    (PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_iff_identity_trace_connected.mp
12962      htarget)
12963
12964theorem PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_refuted :
12965    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget := by
12966  intro htarget
12967  exact PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_refuted
12968    (PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_iff_identity_forces_two.mp
12969      htarget)
12970
12971theorem PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_refuted :
12972    ¬ PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget := by
12973  intro htarget
12974  exact PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_refuted
12975    (PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_iff_identity_forces_two.mp
12976      htarget)
12977
12978theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_refuted :
12979    ¬ PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget := by
12980  intro htarget
12981  exact PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_refuted
12982    (PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_iff_two_prime_reciprocal_forces.mp
12983      htarget)
12984
12985theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_refuted :
12986    ¬ PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget := by
12987  intro htarget
12988  exact PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_refuted
12989    (PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_iff_no_mixed_prime_witnesses.mp
12990      htarget)
12991
12992theorem PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_refuted :
12993    ¬ PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget := by
12994  intro htarget
12995  exact PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_refuted
12996    (PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_iff_prime_identity_witness_globalizes.mp
12997      htarget)
12998
12999theorem PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_refuted :
13000    ¬ PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget := by
13001  intro htarget
13002  exact PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_refuted
13003    (PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_iff_prime_floor_successor_transport.mp
13004      htarget)
13005
13006theorem PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_refuted :
13007    ¬ PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget := by
13008  intro htarget
13009  exact PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_refuted
13010    (PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_iff_comparable_trace.mp
13011      htarget)
13012
13013theorem PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_refuted :
13014    ¬ PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget := by
13015  intro htarget
13016  exact PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_refuted
13017    (PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_branch_transport.mp
13018      htarget)
13019
13020theorem PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_refuted :
13021    ¬ PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget := by
13022  intro htarget
13023  exact PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_refuted
13024    (PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_no_mixed_nonunit.mpr
13025      htarget)
13026
13027theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_refuted :
13028    ¬ PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget := by
13029  intro htarget
13030  exact PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_refuted
13031    (PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_iff_identity_branch_transport.mp
13032      htarget)
13033
13034theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_refuted :
13035    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget := by
13036  intro htarget
13037  exact PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_refuted
13038    (PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_identity_witness_globalizes.mp
13039      htarget)
13040
13041theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_refuted :
13042    ¬ PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget := by
13043  intro htarget
13044  exact PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_refuted
13045    (PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_iff_no_mixed.mp
13046      htarget)
13047
13048theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_refuted :
13049    ¬ PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget := by
13050  intro htarget
13051  exact PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_refuted
13052    (PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_no_mixed_prime_witnesses.mp
13053      htarget)
13054
13055theorem PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_refuted :
13056    ¬ PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget := by
13057  intro htarget
13058  exact PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_refuted
13059    (PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_iff_successor_step_pair.mpr
13060      htarget)
13061
13062theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget_refuted :
13063    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget := by
13064  intro htarget
13065  exact PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_refuted
13066    (PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_sharpened.mpr
13067      htarget)
13068
13069theorem PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget_refuted :
13070    ¬ PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget :=
13071  PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_refuted
13072
13073theorem PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_refuted :
13074    ¬ PRCPrimeFloorSuccessorTransportLocalAdjacentTarget := by
13075  intro htarget
13076  exact PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_refuted
13077    (PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_iff_nonunit_coherent.mp
13078      htarget)
13079
13080theorem PRCPrimeFloorSuccessorTransportSharpenedTarget_refuted :
13081    ¬ PRCPrimeFloorSuccessorTransportSharpenedTarget := by
13082  intro htarget
13083  exact PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget_refuted
13084    htarget.1
13085
13086theorem PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_refuted :
13087    ¬ PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget := by
13088  intro htarget
13089  exact PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_refuted
13090    (PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_split.mpr htarget)
13091
13092theorem PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget_refuted :
13093    ¬ PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget := by
13094  intro htarget
13095  exact PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_refuted
13096    (PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_iff_local_exclusion.mpr
13097      htarget)
13098
13099theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_refuted :
13100    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget := by
13101  intro htarget
13102  exact PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_refuted
13103    (PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_iff_identity_comparable_trace.mp
13104      htarget)
13105
13106theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget_refuted :
13107    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget := by
13108  intro htarget
13109  exact PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_refuted
13110    (PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_local_no_mixed.mpr
13111      htarget)
13112
13113theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget_refuted :
13114    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget := by
13115  intro htarget
13116  exact PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_refuted
13117    (PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_product_no_mixed
13118      htarget)
13119
13120theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_refuted :
13121    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget := by
13122  intro htarget
13123  exact PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_refuted
13124    (PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_iff_local_comparable_trace.mp
13125      htarget)
13126
13127theorem PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget_refuted :
13128    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget := by
13129  intro htarget
13130  exact PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalIdentityTransportTarget_refuted
13131    (PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalBranchAgreementTarget_iff_local_identity_transport.mp
13132      htarget)
13133
13134theorem PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget_refuted :
13135    ¬ PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget := by
13136  intro htarget
13137  exact PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_refuted
13138    (PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_successor_step
13139      htarget)
13140
13141theorem PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget_refuted :
13142    ¬ PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget := by
13143  intro htarget
13144  exact PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget_refuted
13145    (PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget_of_transport htarget)
13146
13147theorem PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_refuted :
13148    ¬ PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget := by
13149  intro htarget
13150  exact PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_refuted
13151    (PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_iff_no_mixed_prime_orientation.mp
13152      htarget)
13153
13154theorem PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_refuted :
13155    ¬ PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget := by
13156  intro htarget
13157  exact PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_refuted
13158    (PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_no_mixed_prime_orientation.mp
13159      htarget)
13160
13161theorem PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_refuted :
13162    ¬ PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget := by
13163  intro htarget
13164  have hprime :
13165      PRCCharacterPrimeDirectionCalibrated twoAdicAxisTwistCharacter :=
13166    PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist
13167      twoAdicAxisTwistCharacter_branch
13168  have hlocal :
13169      PRCCharacterNonunitOrbitLocalOrientation twoAdicAxisTwistCharacter :=
13170    htarget twoAdicAxisTwistCharacter twoAdicAxisTwistCharacter_ratio_character
13171      hprime
13172  have hprod0 : twoOrbit * threeOrbit ≠ DistinctionNat.zero :=
13173    DistinctionNat.mul_ne_zero twoOrbit_primeOrbit.1 threeOrbit_primeOrbit.1
13174  have hprodUnit : ¬ DistinctionNat.unit (twoOrbit * threeOrbit) :=
13175    orbit_mul_not_unit_of_left_not_unit
13176      (p := twoOrbit) (r := threeOrbit) twoOrbit_primeOrbit.2.1
13177  have hprodCross :
13178      RatioOrbit.crossEq (orbitDirection (twoOrbit * threeOrbit) hprod0)
13179        twoThreePrimeCompositeDirection := by
13180    simpa [twoThreePrimeCompositeDirection, twoPrimeDirection,
13181      threePrimeDirection, primeDirection] using
13182      orbitDirection_mul_crossEq twoOrbit threeOrbit (twoOrbit * threeOrbit)
13183        twoOrbit_primeOrbit.1 threeOrbit_primeOrbit.1 hprod0 rfl
13184  have hrespect : PRCCharacterRespectsCrossEq twoAdicAxisTwistCharacter :=
13185    PRCCharacterRespectsCrossEq_of_normalizeRatio_canonical
13186      twoAdicAxisTwistCharacter_ratio_character
13187      PRCNormalizeRatioCanonicalTarget_proved
13188  have htwoThree :
13189      PRCCharacterTwoThreeCompositeLocalOrientation twoAdicAxisTwistCharacter := by
13190    rcases hlocal (twoOrbit * threeOrbit) hprod0 hprodUnit with hId | hRec
13191    · exact Or.inl
13192        (RatioOrbit.crossEq_trans
13193          (hrespect twoThreePrimeCompositeDirection
13194            (orbitDirection (twoOrbit * threeOrbit) hprod0)
13195            (RatioOrbit.crossEq_symm hprodCross))
13196          (RatioOrbit.crossEq_trans hId hprodCross))
13197    · exact Or.inr
13198        (RatioOrbit.crossEq_trans
13199          (hrespect twoThreePrimeCompositeDirection
13200            (orbitDirection (twoOrbit * threeOrbit) hprod0)
13201            (RatioOrbit.crossEq_symm hprodCross))
13202          (RatioOrbit.crossEq_trans hRec (ratioOrbit_recip_congr hprodCross)))
13203  exact PRCCharacterTwoAdicAxisTwist_two_three_local_orientation_absurd
13204    twoAdicAxisTwistCharacter_ratio_character
13205    twoAdicAxisTwistCharacter_branch htwoThree
13206
13207theorem PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget_refuted :
13208    ¬ PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget := by
13209  intro htarget
13210  exact PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_refuted
13211    (PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_product_local_orientation
13212      htarget)
13213
13214theorem PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget_refuted :
13215    ¬ PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget := by
13216  intro htarget
13217  have hprime :
13218      PRCCharacterPrimeDirectionCalibrated twoAdicAxisTwistCharacter :=
13219    PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist
13220      twoAdicAxisTwistCharacter_branch
13221  have htransport :
13222      PRCCharacterNonunitReciprocalBranchTransport twoAdicAxisTwistCharacter :=
13223    htarget twoAdicAxisTwistCharacter twoAdicAxisTwistCharacter_ratio_character
13224      hprime
13225  have htwoRec :
13226      PRCCharacterOrbitDirectionReciprocal twoAdicAxisTwistCharacter
13227        twoOrbit twoOrbit_primeOrbit.1 := by
13228    simpa [PRCCharacterOrbitDirectionReciprocal, twoPrimeDirection,
13229      primeDirection] using twoAdicAxisTwistCharacter_branch.1
13230  have hthreeRec :
13231      PRCCharacterOrbitDirectionReciprocal twoAdicAxisTwistCharacter
13232        threeOrbit threeOrbit_primeOrbit.1 :=
13233    htransport twoOrbit twoOrbit_primeOrbit.1 twoOrbit_primeOrbit.2.1 htwoRec
13234      threeOrbit threeOrbit_primeOrbit.1 threeOrbit_primeOrbit.2.1
13235  have hthreeId :
13236      PRCCharacterOrbitDirectionIdentity twoAdicAxisTwistCharacter
13237        threeOrbit threeOrbit_primeOrbit.1 := by
13238    simpa [PRCCharacterOrbitDirectionIdentity, threePrimeDirection,
13239      primeDirection] using
13240      twoAdicAxisTwistCharacter_branch.2 threeOrbit threeOrbit_primeOrbit
13241        threeOrbit_ne_twoOrbit
13242  have hself :
13243      RatioOrbit.crossEq (orbitDirection threeOrbit threeOrbit_primeOrbit.1)
13244        (RatioOrbit.recip (orbitDirection threeOrbit threeOrbit_primeOrbit.1)) :=
13245    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hthreeId) hthreeRec
13246  exact orbitDirection_nonunit_not_crossEq_recip threeOrbit
13247    threeOrbit_primeOrbit.1 threeOrbit_primeOrbit.2.1 hself
13248
13249theorem PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget_refuted :
13250    ¬ PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget := by
13251  intro htarget
13252  exact PRCPrimeCalibrationForcesNonunitReciprocalBranchTransportTarget_refuted
13253    htarget.2
13254
13255theorem PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_refuted :
13256    ¬ PRCPrimeCalibrationForcesNonunitBranchAgreementTarget := by
13257  intro htarget
13258  exact PRCPrimeCalibrationForcesNonunitBranchTransportPairTarget_refuted
13259    (PRCPrimeCalibrationForcesNonunitBranchAgreementTarget_iff_transport_pair.mp
13260      htarget)
13261
13262theorem PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_refuted :
13263    ¬ PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget := by
13264  intro htarget
13265  have hprime :
13266      PRCCharacterPrimeDirectionCalibrated twoAdicAxisTwistCharacter :=
13267    PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist
13268      twoAdicAxisTwistCharacter_branch
13269  have hnoAdj :
13270      PRCCharacterPrimeFloorNoAdjacentMixedOrientation
13271        twoAdicAxisTwistCharacter :=
13272    htarget twoAdicAxisTwistCharacter twoAdicAxisTwistCharacter_ratio_character
13273      hprime
13274  have htwoRec :
13275      PRCCharacterOrbitDirectionReciprocal twoAdicAxisTwistCharacter
13276        twoOrbit twoOrbit_primeOrbit.1 := by
13277    simpa [PRCCharacterOrbitDirectionReciprocal, twoPrimeDirection,
13278      primeDirection] using twoAdicAxisTwistCharacter_branch.1
13279  have hthreeId :
13280      PRCCharacterOrbitDirectionIdentity twoAdicAxisTwistCharacter
13281        (DistinctionNat.succ twoOrbit) (orbit_succ_ne_zero twoOrbit) := by
13282    simpa [PRCCharacterOrbitDirectionIdentity, threeOrbit,
13283      threePrimeDirection, primeDirection] using
13284      twoAdicAxisTwistCharacter_branch.2 threeOrbit threeOrbit_primeOrbit
13285        threeOrbit_ne_twoOrbit
13286  exact (hnoAdj twoOrbit twoOrbit_primeOrbit.1 twoOrbit_primeOrbit.2.1).2
13287    ⟨htwoRec, hthreeId⟩
13288
13289theorem PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget_refuted :
13290    ¬ PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget := by
13291  intro htarget
13292  have hprime :
13293      PRCCharacterPrimeDirectionCalibrated twoAdicAxisTwistCharacter :=
13294    PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist
13295      twoAdicAxisTwistCharacter_branch
13296  have hcontracts :
13297      PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep
13298        twoAdicAxisTwistCharacter :=
13299    htarget twoAdicAxisTwistCharacter twoAdicAxisTwistCharacter_ratio_character
13300      hprime
13301  have hthreeId :
13302      PRCCharacterOrbitDirectionIdentity twoAdicAxisTwistCharacter
13303        (DistinctionNat.succ twoOrbit) (orbit_succ_ne_zero twoOrbit) := by
13304    simpa [PRCCharacterOrbitDirectionIdentity, threeOrbit,
13305      threePrimeDirection, primeDirection] using
13306      twoAdicAxisTwistCharacter_branch.2 threeOrbit threeOrbit_primeOrbit
13307        threeOrbit_ne_twoOrbit
13308  have htwoId :
13309      PRCCharacterOrbitDirectionIdentity twoAdicAxisTwistCharacter
13310        twoOrbit twoOrbit_primeOrbit.1 :=
13311    hcontracts twoOrbit twoOrbit_primeOrbit.1 twoOrbit_primeOrbit.2.1
13312      hthreeId
13313  have htwoRec :
13314      PRCCharacterOrbitDirectionReciprocal twoAdicAxisTwistCharacter
13315        twoOrbit twoOrbit_primeOrbit.1 := by
13316    simpa [PRCCharacterOrbitDirectionReciprocal, twoPrimeDirection,
13317      primeDirection] using twoAdicAxisTwistCharacter_branch.1
13318  have hself :
13319      RatioOrbit.crossEq (orbitDirection twoOrbit twoOrbit_primeOrbit.1)
13320        (RatioOrbit.recip (orbitDirection twoOrbit twoOrbit_primeOrbit.1)) :=
13321    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) htwoRec
13322  exact orbitDirection_nonunit_not_crossEq_recip twoOrbit
13323    twoOrbit_primeOrbit.1 twoOrbit_primeOrbit.2.1 hself
13324
13325theorem twoAdicTwistRat_four :
13326    twoAdicTwistRat 4 = (1 / 4 : ℚ) := by
13327  have hmul := twoAdicTwistRat_mul (2 : ℚ) (2 : ℚ)
13328  rw [twoAdicTwistRat_two] at hmul
13329  norm_num at hmul
13330  exact hmul
13331
13332theorem twoAdicAxisTwistCharacter_succ_three_not_identity :
13333    ¬ PRCCharacterOrbitDirectionIdentity twoAdicAxisTwistCharacter
13334      (DistinctionNat.succ threeOrbit) (orbit_succ_ne_zero threeOrbit) := by
13335  intro hId
13336  rw [PRCCharacterOrbitDirectionIdentity, RatioOrbit.crossEq_iff_toRat_eq,
13337    twoAdicAxisTwistCharacter_toRat, orbitDirection_toRat,
13338    DistinctionNat.toNat_succ, threeOrbit_toNat] at hId
13339  norm_num [twoAdicTwistRat_four] at hId
13340
13341theorem PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget_refuted :
13342    ¬ PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget := by
13343  intro htarget
13344  have hprime :
13345      PRCCharacterPrimeDirectionCalibrated twoAdicAxisTwistCharacter :=
13346    PRCCharacterPrimeDirectionCalibrated_of_two_adic_axis_twist
13347      twoAdicAxisTwistCharacter_branch
13348  have hextends :
13349      PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep
13350        twoAdicAxisTwistCharacter :=
13351    htarget twoAdicAxisTwistCharacter twoAdicAxisTwistCharacter_ratio_character
13352      hprime
13353  have hthreeId :
13354      PRCCharacterOrbitDirectionIdentity twoAdicAxisTwistCharacter
13355        threeOrbit threeOrbit_primeOrbit.1 := by
13356    simpa [PRCCharacterOrbitDirectionIdentity, threePrimeDirection,
13357      primeDirection] using
13358      twoAdicAxisTwistCharacter_branch.2 threeOrbit threeOrbit_primeOrbit
13359        threeOrbit_ne_twoOrbit
13360  exact twoAdicAxisTwistCharacter_succ_three_not_identity
13361    (hextends threeOrbit threeOrbit_primeOrbit.1 threeOrbit_primeOrbit.2.1
13362      hthreeId)
13363
13364/-- Sharper orientation blocker B: once prime orientation is coherent, the
13365multiplicative character law and native rational factorization must propagate
13366that orientation to every ratio direction. -/
13367def PRCCoherentPrimeOrientationPropagatesToGlobalTarget : Prop :=
13368  ∀ χ : RatioOrbit → RatioOrbit,
13369    PRCRatioCharacter χ →
13370      PRCCharacterPrimeOrientationCoherent χ →
13371        PRCCharacterGlobalCostOrientation χ
13372
13373/-- Exact repaired orientation target after the absolute-value countermodel:
13374coherent prime orientation must be supplemented by signed-unit calibration before
13375one can ask for global pointwise identity-or-reciprocal orientation. -/
13376def PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget : Prop :=
13377  ∀ χ : RatioOrbit → RatioOrbit,
13378    PRCRatioCharacter χ →
13379      PRCCharacterSignedUnitCalibrated χ →
13380        PRCCharacterPrimeOrientationCoherent χ →
13381          PRCCharacterGlobalCostOrientation χ
13382
13383/-- The admissible interface must also force signed-unit calibration. Pass 279
13384shows that the repaired prime-pair admissibility fields still do not do this. -/
13385def PRCAdmissibleCharacterSignedUnitCalibratedTarget : Prop :=
13386  ∀ χ : RatioOrbit → RatioOrbit,
13387    PRCAdmissibleRatioCharacter χ →
13388      PRCCharacterSignedUnitCalibrated χ
13389
13390theorem PRCAdmissibleCharacterGlobalOrientationTarget_of_signed_global_propagation
13391    (hsign : PRCAdmissibleCharacterSignedUnitCalibratedTarget)
13392    (hprop : PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget) :
13393    PRCAdmissibleCharacterGlobalOrientationTarget := by
13394  intro χ hadm
13395  exact hprop χ hadm.ratio_character (hsign χ hadm)
13396    (PRCAdmissibleCharacterPrimeOrientationCoherentTarget_proved χ hadm)
13397
13398theorem absValueCharacter_negative_one_no_global_orientation :
13399    ¬ (RatioOrbit.crossEq (absValueCharacter negativeOneRatio) negativeOneRatio ∨
13400      RatioOrbit.crossEq (absValueCharacter negativeOneRatio)
13401        (RatioOrbit.recip negativeOneRatio)) := by
13402  intro horient
13403  rcases horient with hsame | hrec
13404  · rw [RatioOrbit.crossEq_iff_toRat_eq, absValueCharacter_toRat,
13405      negativeOneRatio_toRat] at hsame
13406    norm_num at hsame
13407  · rw [RatioOrbit.crossEq_iff_toRat_eq, absValueCharacter_toRat,
13408      negativeOneRatio_toRat, RatioOrbit.recip_toRat,
13409      negativeOneRatio_toRat] at hrec
13410    norm_num at hrec
13411
13412/-- The coherent-prime-to-global target is false without a signed-unit
13413calibration. The absolute-value character fixes every positive prime axis, but
13414it sends `-1` to `+1`, so the global orientation conclusion fails exactly at the
13415signed unit. -/
13416theorem PRCCoherentPrimeOrientationPropagatesToGlobalTarget_refuted :
13417    ¬ PRCCoherentPrimeOrientationPropagatesToGlobalTarget := by
13418  intro hprop
13419  exact absValueCharacter_negative_one_no_global_orientation
13420    (hprop absValueCharacter absValueCharacter_ratio_character
13421      absValueCharacter_prime_orientation_coherent negativeOneRatio)
13422
13423theorem PRCAdmissibleCharacterSignedUnitCalibratedTarget_refuted :
13424    ¬ PRCAdmissibleCharacterSignedUnitCalibratedTarget := by
13425  intro hsign
13426  exact absValueCharacter_not_signed_unit_calibrated
13427    (hsign absValueCharacter absValueCharacter_admissible)
13428
13429theorem negativeOneRatio_self_recip :
13430    RatioOrbit.crossEq negativeOneRatio (RatioOrbit.recip negativeOneRatio) := by
13431  rw [RatioOrbit.crossEq_iff_toRat_eq, negativeOneRatio_toRat,
13432    RatioOrbit.recip_toRat, negativeOneRatio_toRat]
13433  norm_num
13434
13435theorem PRCCharacterZero_of_prime_orientation_coherent
13436    {χ : RatioOrbit → RatioOrbit}
13437    (hχ : PRCRatioCharacter χ)
13438    (hcoh : PRCCharacterPrimeOrientationCoherent χ) :
13439    RatioOrbit.crossEq (χ RatioOrbit.zero) RatioOrbit.zero := by
13440  have hrespect : PRCCharacterRespectsCrossEq χ :=
13441    PRCCharacterRespectsCrossEq_of_normalizeRatio_canonical hχ
13442      PRCNormalizeRatioCanonicalTarget_proved
13443  have htwoNotOne :
13444      ¬ RatioOrbit.crossEq (χ twoPrimeDirection) RatioOrbit.one := by
13445    intro hone
13446    rcases hcoh with hallId | hallRec
13447    · have htwoId := hallId twoOrbit twoOrbit_primeOrbit
13448      have htwoOne :
13449          RatioOrbit.crossEq twoPrimeDirection RatioOrbit.one :=
13450        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoId) hone
13451      rw [RatioOrbit.crossEq_iff_toRat_eq, twoPrimeDirection_toRat,
13452        RatioOrbit.one_toRat] at htwoOne
13453      norm_num at htwoOne
13454    · have htwoRec := hallRec twoOrbit twoOrbit_primeOrbit
13455      have hrecOne :
13456          RatioOrbit.crossEq (RatioOrbit.recip twoPrimeDirection)
13457            RatioOrbit.one :=
13458        RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm htwoRec) hone
13459      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
13460        twoPrimeDirection_toRat, RatioOrbit.one_toRat] at hrecOne
13461      norm_num at hrecOne
13462  have hzeroMul :
13463      RatioOrbit.crossEq (RatioOrbit.mul RatioOrbit.zero twoPrimeDirection)
13464        RatioOrbit.zero := by
13465    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat,
13466      RatioOrbit.zero_toRat]
13467    norm_num
13468  have hχzeroMul :
13469      RatioOrbit.crossEq
13470        (χ (RatioOrbit.mul RatioOrbit.zero twoPrimeDirection))
13471        (χ RatioOrbit.zero) :=
13472    hrespect (RatioOrbit.mul RatioOrbit.zero twoPrimeDirection)
13473      RatioOrbit.zero hzeroMul
13474  have hmul :
13475      RatioOrbit.crossEq
13476        (χ (RatioOrbit.mul RatioOrbit.zero twoPrimeDirection))
13477        (RatioOrbit.mul (χ RatioOrbit.zero) (χ twoPrimeDirection)) :=
13478    hχ.multiplicative RatioOrbit.zero twoPrimeDirection
13479  have hzeroEq :
13480      RatioOrbit.crossEq (χ RatioOrbit.zero)
13481        (RatioOrbit.mul (χ RatioOrbit.zero) (χ twoPrimeDirection)) :=
13482    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm hχzeroMul) hmul
13483  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.mul_toRat] at hzeroEq
13484  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.zero_toRat]
13485  by_cases hy : (χ RatioOrbit.zero).toRat = 0
13486  · exact hy
13487  · have htwoRatOne : (χ twoPrimeDirection).toRat = 1 := by
13488      have hcancel :
13489          (χ RatioOrbit.zero).toRat * 1 =
13490            (χ RatioOrbit.zero).toRat * (χ twoPrimeDirection).toRat := by
13491        simpa [mul_one] using hzeroEq
13492      exact (mul_left_cancel₀ hy hcancel).symm
13493    exact False.elim (htwoNotOne (by
13494      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.one_toRat]
13495      exact htwoRatOne))
13496
13497theorem PRCCharacterPositiveOrbitIdentity_of_all_prime_identity
13498    {χ : RatioOrbit → RatioOrbit}
13499    (hχ : PRCRatioCharacter χ)
13500    (hrespect : PRCCharacterRespectsCrossEq χ)
13501    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
13502    (hprimeId : ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
13503      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp))
13504    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero) :
13505    PRCCharacterOrbitDirectionIdentity χ p hp := by
13506  by_cases hunit : DistinctionNat.unit p
13507  · have hpOne :
13508        RatioOrbit.crossEq (orbitDirection p hp) RatioOrbit.one := by
13509      rw [RatioOrbit.crossEq_iff_toRat_eq, orbitDirection_toRat,
13510        RatioOrbit.one_toRat]
13511      exact_mod_cast (DistinctionNat.unit_iff_toNat_eq_one p).mp hunit
13512    exact RatioOrbit.crossEq_trans (hrespect (orbitDirection p hp)
13513      RatioOrbit.one hpOne)
13514      (RatioOrbit.crossEq_trans hχ.unit (RatioOrbit.crossEq_symm hpOne))
13515  · exact PRCCharacterNonunitOrbitAllIdentity_of_all_prime_identity
13516      hχ hcompat hprimeId p hp hunit
13517
13518theorem PRCCharacterPositiveOrbitReciprocal_of_all_prime_reciprocal
13519    {χ : RatioOrbit → RatioOrbit}
13520    (hχ : PRCRatioCharacter χ)
13521    (hrespect : PRCCharacterRespectsCrossEq χ)
13522    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
13523    (hprimeRec : ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
13524      RatioOrbit.crossEq (χ (primeDirection p hp))
13525        (RatioOrbit.recip (primeDirection p hp)))
13526    (p : DistinctionNat) (hp : p ≠ DistinctionNat.zero) :
13527    PRCCharacterOrbitDirectionReciprocal χ p hp := by
13528  by_cases hunit : DistinctionNat.unit p
13529  · have hpOne :
13530        RatioOrbit.crossEq (orbitDirection p hp) RatioOrbit.one := by
13531      rw [RatioOrbit.crossEq_iff_toRat_eq, orbitDirection_toRat,
13532        RatioOrbit.one_toRat]
13533      exact_mod_cast (DistinctionNat.unit_iff_toNat_eq_one p).mp hunit
13534    have hrecOne :
13535        RatioOrbit.crossEq RatioOrbit.one
13536          (RatioOrbit.recip (orbitDirection p hp)) := by
13537      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.one_toRat,
13538        RatioOrbit.recip_toRat, orbitDirection_toRat]
13539      rw [(DistinctionNat.unit_iff_toNat_eq_one p).mp hunit]
13540      norm_num
13541    exact RatioOrbit.crossEq_trans (hrespect (orbitDirection p hp)
13542      RatioOrbit.one hpOne)
13543      (RatioOrbit.crossEq_trans hχ.unit hrecOne)
13544  · exact PRCCharacterNonunitOrbitAllReciprocal_of_all_prime_reciprocal
13545      hχ hcompat hprimeRec p hp hunit
13546
13547theorem PRCCharacterPositiveRatioIdentity_of_all_prime_identity
13548    {χ : RatioOrbit → RatioOrbit}
13549    (hχ : PRCRatioCharacter χ)
13550    (hrespect : PRCCharacterRespectsCrossEq χ)
13551    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
13552    (hprimeId : ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
13553      RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp))
13554    {n d : DistinctionNat}
13555    (hn : n ≠ DistinctionNat.zero) (hd : d ≠ DistinctionNat.zero) :
13556    RatioOrbit.crossEq
13557      (χ (RatioOrbit.mul (orbitDirection n hn)
13558        (RatioOrbit.recip (orbitDirection d hd))))
13559      (RatioOrbit.mul (orbitDirection n hn)
13560        (RatioOrbit.recip (orbitDirection d hd))) := by
13561  have hnId := PRCCharacterPositiveOrbitIdentity_of_all_prime_identity
13562    hχ hrespect hcompat hprimeId n hn
13563  have hdId := PRCCharacterPositiveOrbitIdentity_of_all_prime_identity
13564    hχ hrespect hcompat hprimeId d hd
13565  have hrecD :
13566      RatioOrbit.crossEq
13567        (χ (RatioOrbit.recip (orbitDirection d hd)))
13568        (RatioOrbit.recip (orbitDirection d hd)) :=
13569    RatioOrbit.crossEq_trans (hχ.reciprocal (orbitDirection d hd))
13570      (ratioOrbit_recip_congr hdId)
13571  exact RatioOrbit.crossEq_trans
13572    (hχ.multiplicative (orbitDirection n hn)
13573      (RatioOrbit.recip (orbitDirection d hd)))
13574    (ratioOrbit_mul_congr hnId hrecD)
13575
13576theorem PRCCharacterPositiveRatioReciprocal_of_all_prime_reciprocal
13577    {χ : RatioOrbit → RatioOrbit}
13578    (hχ : PRCRatioCharacter χ)
13579    (hrespect : PRCCharacterRespectsCrossEq χ)
13580    (hcompat : PRCCharacterOrbitProductDisplayCompatible χ)
13581    (hprimeRec : ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
13582      RatioOrbit.crossEq (χ (primeDirection p hp))
13583        (RatioOrbit.recip (primeDirection p hp)))
13584    {n d : DistinctionNat}
13585    (hn : n ≠ DistinctionNat.zero) (hd : d ≠ DistinctionNat.zero) :
13586    RatioOrbit.crossEq
13587      (χ (RatioOrbit.mul (orbitDirection n hn)
13588        (RatioOrbit.recip (orbitDirection d hd))))
13589      (RatioOrbit.recip
13590        (RatioOrbit.mul (orbitDirection n hn)
13591          (RatioOrbit.recip (orbitDirection d hd)))) := by
13592  have hnRec := PRCCharacterPositiveOrbitReciprocal_of_all_prime_reciprocal
13593    hχ hrespect hcompat hprimeRec n hn
13594  have hdRec := PRCCharacterPositiveOrbitReciprocal_of_all_prime_reciprocal
13595    hχ hrespect hcompat hprimeRec d hd
13596  have hrecD :
13597      RatioOrbit.crossEq
13598        (χ (RatioOrbit.recip (orbitDirection d hd)))
13599        (orbitDirection d hd) :=
13600    RatioOrbit.crossEq_trans (hχ.reciprocal (orbitDirection d hd))
13601      (RatioOrbit.crossEq_trans (ratioOrbit_recip_congr hdRec)
13602        (ratioOrbit_recip_recip_crossEq_self (orbitDirection d hd)))
13603  have hprod :
13604      RatioOrbit.crossEq
13605        (RatioOrbit.mul
13606          (RatioOrbit.recip (orbitDirection n hn)) (orbitDirection d hd))
13607        (RatioOrbit.recip
13608          (RatioOrbit.mul (orbitDirection n hn)
13609            (RatioOrbit.recip (orbitDirection d hd)))) :=
13610    RatioOrbit.crossEq_trans
13611      (ratioOrbit_mul_congr (RatioOrbit.crossEq_refl _)
13612        (RatioOrbit.crossEq_symm
13613          (ratioOrbit_recip_recip_crossEq_self (orbitDirection d hd))))
13614      (ratioOrbit_mul_recip_recip_crossEq_recip_mul
13615        (orbitDirection n hn) (RatioOrbit.recip (orbitDirection d hd)))
13616  exact RatioOrbit.crossEq_trans
13617    (hχ.multiplicative (orbitDirection n hn)
13618      (RatioOrbit.recip (orbitDirection d hd)))
13619    (RatioOrbit.crossEq_trans (ratioOrbit_mul_congr hnRec hrecD) hprod)
13620
13621theorem PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget_proved :
13622    PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget := by
13623  intro χ hχ hsign hcoh q
13624  have hrespect : PRCCharacterRespectsCrossEq χ :=
13625    PRCCharacterRespectsCrossEq_of_normalizeRatio_canonical hχ
13626      PRCNormalizeRatioCanonicalTarget_proved
13627  have hcompat : PRCCharacterOrbitProductDisplayCompatible χ :=
13628    PRCCharacterOrbitProductDisplayCompatible_of_crossEq_respect hrespect
13629  by_cases hq0 : q.toRat = 0
13630  · have hqZero : RatioOrbit.crossEq q RatioOrbit.zero := by
13631      rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.zero_toRat]
13632      exact hq0
13633    have hχzero := PRCCharacterZero_of_prime_orientation_coherent hχ hcoh
13634    exact Or.inl
13635      (RatioOrbit.crossEq_trans (hrespect q RatioOrbit.zero hqZero)
13636        (RatioOrbit.crossEq_trans hχzero (RatioOrbit.crossEq_symm hqZero)))
13637  · rcases PRCSignedRatioDecompositionTarget_proved q hq0 with hpos | hneg
13638    · rcases hpos with ⟨n, d, hn, hd, hqpos⟩
13639      rcases hcoh with hallId | hallRec
13640      · have hposId :
13641            RatioOrbit.crossEq
13642              (χ (RatioOrbit.mul (orbitDirection n hn)
13643                (RatioOrbit.recip (orbitDirection d hd))))
13644              (RatioOrbit.mul (orbitDirection n hn)
13645                (RatioOrbit.recip (orbitDirection d hd))) :=
13646          PRCCharacterPositiveRatioIdentity_of_all_prime_identity
13647            hχ hrespect hcompat hallId hn hd
13648        exact Or.inl
13649          (RatioOrbit.crossEq_trans (hrespect q _ hqpos)
13650            (RatioOrbit.crossEq_trans hposId (RatioOrbit.crossEq_symm hqpos)))
13651      · have hposRec :
13652            RatioOrbit.crossEq
13653              (χ (RatioOrbit.mul (orbitDirection n hn)
13654                (RatioOrbit.recip (orbitDirection d hd))))
13655              (RatioOrbit.recip
13656                (RatioOrbit.mul (orbitDirection n hn)
13657                  (RatioOrbit.recip (orbitDirection d hd)))) :=
13658          PRCCharacterPositiveRatioReciprocal_of_all_prime_reciprocal
13659            hχ hrespect hcompat hallRec hn hd
13660        exact Or.inr
13661          (RatioOrbit.crossEq_trans (hrespect q _ hqpos)
13662            (RatioOrbit.crossEq_trans hposRec
13663              (ratioOrbit_recip_congr (RatioOrbit.crossEq_symm hqpos))))
13664    · rcases hneg with ⟨n, d, hn, hd, hqneg⟩
13665      let pos :=
13666        RatioOrbit.mul (orbitDirection n hn)
13667          (RatioOrbit.recip (orbitDirection d hd))
13668      rcases hcoh with hallId | hallRec
13669      · have hposId : RatioOrbit.crossEq (χ pos) pos :=
13670          PRCCharacterPositiveRatioIdentity_of_all_prime_identity
13671            hχ hrespect hcompat hallId hn hd
13672        have hnegId :
13673            RatioOrbit.crossEq
13674              (χ (RatioOrbit.mul negativeOneRatio pos))
13675              (RatioOrbit.mul negativeOneRatio pos) :=
13676          RatioOrbit.crossEq_trans
13677            (hχ.multiplicative negativeOneRatio pos)
13678            (ratioOrbit_mul_congr hsign hposId)
13679        exact Or.inl
13680          (RatioOrbit.crossEq_trans (hrespect q _ hqneg)
13681            (RatioOrbit.crossEq_trans hnegId (RatioOrbit.crossEq_symm hqneg)))
13682      · have hposRec : RatioOrbit.crossEq (χ pos) (RatioOrbit.recip pos) :=
13683          PRCCharacterPositiveRatioReciprocal_of_all_prime_reciprocal
13684            hχ hrespect hcompat hallRec hn hd
13685        have hnegRec :
13686            RatioOrbit.crossEq
13687              (χ (RatioOrbit.mul negativeOneRatio pos))
13688              (RatioOrbit.recip (RatioOrbit.mul negativeOneRatio pos)) :=
13689          RatioOrbit.crossEq_trans
13690            (hχ.multiplicative negativeOneRatio pos)
13691            (RatioOrbit.crossEq_trans
13692              (ratioOrbit_mul_congr hsign hposRec)
13693              (RatioOrbit.crossEq_trans
13694                (ratioOrbit_mul_congr negativeOneRatio_self_recip
13695                  (RatioOrbit.crossEq_refl _))
13696                (ratioOrbit_mul_recip_recip_crossEq_recip_mul
13697                  negativeOneRatio pos)))
13698        exact Or.inr
13699          (RatioOrbit.crossEq_trans (hrespect q _ hqneg)
13700            (RatioOrbit.crossEq_trans hnegRec
13701              (ratioOrbit_recip_congr (RatioOrbit.crossEq_symm hqneg))))
13702
13703theorem PRCAdmissibleCharacterGlobalOrientationTarget_of_signed_unit_calibration
13704    (hsign : PRCAdmissibleCharacterSignedUnitCalibratedTarget) :
13705    PRCAdmissibleCharacterGlobalOrientationTarget :=
13706  PRCAdmissibleCharacterGlobalOrientationTarget_of_signed_global_propagation
13707    hsign PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget_proved
13708
13709theorem PRCNativeCostAdmissibleCharacterRigidityTarget_of_signed_unit_calibration
13710    (hsign : PRCAdmissibleCharacterSignedUnitCalibratedTarget) :
13711    PRCNativeCostAdmissibleCharacterRigidityTarget :=
13712  PRCNativeCostAdmissibleCharacterRigidityTarget_of_admissible_global_orientation
13713    (PRCAdmissibleCharacterGlobalOrientationTarget_of_signed_unit_calibration
13714      hsign)
13715
13716theorem PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_signed_unit_calibration
13717    (hfactor : PRCNativeCostCharacterFactorizationTarget)
13718    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
13719    (hsign : PRCAdmissibleCharacterSignedUnitCalibratedTarget) :
13720    PRCStrengthenedNativeCostUniquenessTarget :=
13721  PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_rigidity
13722    hfactor htwo
13723    (PRCNativeCostAdmissibleCharacterRigidityTarget_of_signed_unit_calibration
13724      hsign)
13725
13726theorem PRCSignedAdmissibleRatioCharacter_global_orientation
13727    {χ : RatioOrbit → RatioOrbit}
13728    (hadm : PRCSignedAdmissibleRatioCharacter χ) :
13729    PRCCharacterGlobalCostOrientation χ :=
13730  PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget_proved χ
13731    hadm.admissible.ratio_character hadm.signed_unit
13732    (PRCAdmissibleCharacterPrimeOrientationCoherentTarget_proved χ
13733      hadm.admissible)
13734
13735/-- Signed-admissible character rigidity is the repaired version of admissible
13736rigidity: once sign erasure is excluded, the character-generated cost is
13737canonical everywhere. -/
13738def PRCNativeCostSignedAdmissibleCharacterRigidityTarget : Prop :=
13739  ∀ χ : RatioOrbit → RatioOrbit,
13740    PRCSignedAdmissibleRatioCharacter χ →
13741      ∀ q : RatioOrbit,
13742        RatioOrbit.crossEq (costFromCharacter χ q) (onRatioOrbit q)
13743
13744theorem PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved :
13745    PRCNativeCostSignedAdmissibleCharacterRigidityTarget := by
13746  intro χ hadm q
13747  rcases PRCSignedAdmissibleRatioCharacter_global_orientation hadm q with hsame | hinv
13748  · exact onRatioOrbit_congr hsame
13749  · exact RatioOrbit.crossEq_trans
13750      (onRatioOrbit_congr hinv)
13751      (RatioOrbit.crossEq_symm (reciprocal_symmetric q))
13752
13753theorem PRCZeroCalibratedNativeCostUniquenessTarget_of_signed_admissible_factorization
13754    (hfactor : PRCZeroCalibratedNativeCostSignedAdmissibleCharacterFactorizationTarget) :
13755    PRCZeroCalibratedNativeCostUniquenessTarget := by
13756  intro F hF hzero q
13757  rcases hfactor F hF hzero with ⟨χ, hadm, hFχ⟩
13758  exact RatioOrbit.crossEq_trans (hFχ q)
13759    (PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved χ hadm q)
13760
13761theorem PRCNoSignedAdmissibleFactorForAbsValueGeneratedNativeCost :
13762    ¬ ∃ χ : RatioOrbit → RatioOrbit,
13763      PRCSignedAdmissibleRatioCharacter χ ∧
13764        ∀ q : RatioOrbit,
13765          RatioOrbit.crossEq (absValueGeneratedNativeCost q)
13766            (costFromCharacter χ q) := by
13767  intro hχ
13768  rcases hχ with ⟨χ, hadm, hFχ⟩
13769  have hcanonical :
13770      RatioOrbit.crossEq (absValueGeneratedNativeCost negativeOneRatio)
13771        (onRatioOrbit negativeOneRatio) :=
13772    RatioOrbit.crossEq_trans (hFχ negativeOneRatio)
13773      (PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved
13774        χ hadm negativeOneRatio)
13775  exact absValueGeneratedNativeCost_negative_one_not_canonical hcanonical
13776
13777theorem PRCZeroCalibratedNativeCostSignedAdmissibleCharacterFactorizationTarget_refuted :
13778    ¬ PRCZeroCalibratedNativeCostSignedAdmissibleCharacterFactorizationTarget := by
13779  intro hfactor
13780  exact PRCNoSignedAdmissibleFactorForAbsValueGeneratedNativeCost
13781    (hfactor absValueGeneratedNativeCost
13782      absValueGeneratedNativeCost_native_hypotheses
13783      absValueGeneratedNativeCost_doubled_trace_zero_calibrated)
13784
13785theorem PRCZeroCalibratedNativeCostUniquenessTarget_refuted :
13786    ¬ PRCZeroCalibratedNativeCostUniquenessTarget := by
13787  intro huniq
13788  exact absValueGeneratedNativeCost_negative_one_not_canonical
13789    (huniq absValueGeneratedNativeCost
13790      absValueGeneratedNativeCost_native_hypotheses
13791      absValueGeneratedNativeCost_doubled_trace_zero_calibrated
13792      negativeOneRatio)
13793
13794/-- Upstream repaired factorization target: a strengthened native cost must
13795factor through a signed-admissible character, not merely through the unsigned
13796admissible interface refuted by `absValueCharacter`. -/
13797def PRCStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget : Prop :=
13798  ∀ F : RatioOrbit → RatioOrbit,
13799    PRCStrengthenedNativeCostHypotheses F →
13800      ∃ χ : RatioOrbit → RatioOrbit,
13801        PRCSignedAdmissibleRatioCharacter χ ∧
13802          ∀ q : RatioOrbit,
13803            RatioOrbit.crossEq (F q) (costFromCharacter χ q)
13804
13805theorem PRCStrengthenedNativeCostUniquenessTarget_of_signed_admissible_factorization
13806    (hfactor : PRCStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget) :
13807    PRCStrengthenedNativeCostUniquenessTarget := by
13808  intro F hF q
13809  rcases hfactor F hF with ⟨χ, hadm, hFχ⟩
13810  exact RatioOrbit.crossEq_trans (hFχ q)
13811    (PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved χ hadm q)
13812
13813theorem PRCStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_refuted :
13814    ¬ PRCStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget := by
13815  intro hfactor
13816  exact PRCStrengthenedNativeCostUniquenessTarget_refuted
13817    (PRCStrengthenedNativeCostUniquenessTarget_of_signed_admissible_factorization
13818      hfactor)
13819
13820theorem costFromCharacter_negativeOne_forces_signed_unit
13821    {χ : RatioOrbit → RatioOrbit}
13822    (hχ : PRCRatioCharacter χ)
13823    (hcost : RatioOrbit.crossEq
13824      (costFromCharacter χ negativeOneRatio)
13825      (onRatioOrbit negativeOneRatio)) :
13826    PRCCharacterSignedUnitCalibrated χ := by
13827  have hnegNonzero : negativeOneRatio.toRat ≠ 0 := by
13828    rw [negativeOneRatio_toRat]
13829    norm_num
13830  have hx : (χ negativeOneRatio).toRat ≠ 0 :=
13831    hχ.nonzero_preserving hnegNonzero
13832  rw [PRCCharacterSignedUnitCalibrated, RatioOrbit.crossEq_iff_toRat_eq,
13833    negativeOneRatio_toRat]
13834  rw [RatioOrbit.crossEq_iff_toRat_eq, costFromCharacter_toRat,
13835    onRatioOrbit_negativeOneRatio_toRat] at hcost
13836  let x : ℚ := (χ negativeOneRatio).toRat
13837  have hx' : x ≠ 0 := hx
13838  have hsum : x + x⁻¹ = -2 := by
13839    linarith
13840  have hmul := congrArg (fun t : ℚ => t * x) hsum
13841  field_simp [hx'] at hmul
13842  nlinarith
13843
13844/-- Zero-calibrated final factorization target: the repaired hypotheses are
13845strong enough to turn the zero-calibrated trace-root factor into a
13846signed-admissible character. -/
13847def PRCZeroCalibratedPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget : Prop :=
13848  ∀ F : RatioOrbit → RatioOrbit,
13849    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostHypotheses F →
13850      ∃ χ : RatioOrbit → RatioOrbit,
13851        PRCSignedAdmissibleRatioCharacter χ ∧
13852          ∀ q : RatioOrbit,
13853            RatioOrbit.crossEq (F q) (costFromCharacter χ q)
13854
13855theorem PRCZeroCalibratedPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_proved :
13856    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget := by
13857  intro F hF
13858  rcases PRCZeroCalibratedNativeCostCharacterFactorizationTarget_proved
13859      F hF.prime_signed.signed_strengthened.strengthened.native
13860      hF.zero_calibrated with
13861    ⟨χ, hχ, hFχ⟩
13862  have hprime : PRCCharacterPrimeDirectionCalibrated χ := by
13863    intro p hp
13864    exact RatioOrbit.crossEq_trans
13865      (RatioOrbit.crossEq_symm (hFχ (primeDirection p hp)))
13866      (hF.prime_signed.prime_direction_cost p hp)
13867  have hpair : PRCCharacterPrimePairProductCostConsistent χ := by
13868    intro p hp r hr
13869    exact RatioOrbit.crossEq_trans
13870      (RatioOrbit.crossEq_symm
13871        (hFχ (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr))))
13872      (hF.prime_signed.signed_strengthened.strengthened.prime_pair_product_cost
13873        p hp r hr)
13874  have hsignCost :
13875      RatioOrbit.crossEq (costFromCharacter χ negativeOneRatio)
13876        (onRatioOrbit negativeOneRatio) :=
13877    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ negativeOneRatio))
13878      hF.prime_signed.signed_strengthened.signed_unit
13879  have hsign : PRCCharacterSignedUnitCalibrated χ :=
13880    costFromCharacter_negativeOne_forces_signed_unit hχ hsignCost
13881  exact ⟨χ, ⟨⟨hχ, hprime, hpair⟩, hsign⟩, hFχ⟩
13882
13883theorem PRCZeroCalibratedPrimeSignedStrengthenedNativeCostUniquenessTarget_proved :
13884    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostUniquenessTarget := by
13885  intro F hF q
13886  rcases
13887      PRCZeroCalibratedPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_proved
13888        F hF with
13889    ⟨χ, hadm, hFχ⟩
13890  exact RatioOrbit.crossEq_trans (hFχ q)
13891    (PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved χ hadm q)
13892
13893/-- Signed repaired factorization target after pass 281: under the native
13894signed-unit cost field, a factor must be signed-admissible. -/
13895def PRCSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget : Prop :=
13896  ∀ F : RatioOrbit → RatioOrbit,
13897    PRCSignedStrengthenedNativeCostHypotheses F →
13898      ∃ χ : RatioOrbit → RatioOrbit,
13899        PRCSignedAdmissibleRatioCharacter χ ∧
13900          ∀ q : RatioOrbit,
13901            RatioOrbit.crossEq (F q) (costFromCharacter χ q)
13902
13903theorem PRCSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_of_character_factorization_and_two_calibration
13904    (hfactor : PRCNativeCostCharacterFactorizationTarget)
13905    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget) :
13906    PRCSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget := by
13907  intro F hF
13908  rcases hfactor F hF.strengthened.native with ⟨χ, hχ, hFχ⟩
13909  have htwoCal :
13910      RatioOrbit.crossEq (costFromCharacter χ two) (onRatioOrbit two) :=
13911    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ two))
13912      hF.strengthened.native.two_calibrated
13913  have hprime :
13914      PRCCharacterPrimeDirectionCalibrated χ :=
13915    htwo χ hχ htwoCal
13916  have hpair :
13917      PRCCharacterPrimePairProductCostConsistent χ := by
13918    intro p hp r hr
13919    exact RatioOrbit.crossEq_trans
13920      (RatioOrbit.crossEq_symm
13921        (hFχ (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr))))
13922      (hF.strengthened.prime_pair_product_cost p hp r hr)
13923  have hsignCost :
13924      RatioOrbit.crossEq (costFromCharacter χ negativeOneRatio)
13925        (onRatioOrbit negativeOneRatio) :=
13926    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ negativeOneRatio))
13927      hF.signed_unit
13928  have hsign : PRCCharacterSignedUnitCalibrated χ :=
13929    costFromCharacter_negativeOne_forces_signed_unit hχ hsignCost
13930  exact ⟨χ, ⟨⟨hχ, hprime, hpair⟩, hsign⟩, hFχ⟩
13931
13932theorem PRCSignedStrengthenedNativeCostUniquenessTarget_of_signed_admissible_factorization
13933    (hfactor : PRCSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget) :
13934    PRCSignedStrengthenedNativeCostUniquenessTarget := by
13935  intro F hF q
13936  rcases hfactor F hF with ⟨χ, hadm, hFχ⟩
13937  exact RatioOrbit.crossEq_trans (hFχ q)
13938    (PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved χ hadm q)
13939
13940theorem PRCSignedStrengthenedNativeCostUniquenessTarget_of_character_factorization_and_two_calibration
13941    (hfactor : PRCNativeCostCharacterFactorizationTarget)
13942    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget) :
13943    PRCSignedStrengthenedNativeCostUniquenessTarget :=
13944  PRCSignedStrengthenedNativeCostUniquenessTarget_of_signed_admissible_factorization
13945    (PRCSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_of_character_factorization_and_two_calibration
13946      hfactor htwo)
13947
13948/-- Final repaired factorization target at this layer: once the native cost
13949itself carries prime calibration and signed-unit calibration, ordinary character
13950factorization yields a signed-admissible factor. -/
13951def PRCPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget : Prop :=
13952  ∀ F : RatioOrbit → RatioOrbit,
13953    PRCPrimeSignedStrengthenedNativeCostHypotheses F →
13954      ∃ χ : RatioOrbit → RatioOrbit,
13955        PRCSignedAdmissibleRatioCharacter χ ∧
13956          ∀ q : RatioOrbit,
13957            RatioOrbit.crossEq (F q) (costFromCharacter χ q)
13958
13959theorem PRCPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_of_character_factorization
13960    (hfactor : PRCNativeCostCharacterFactorizationTarget) :
13961    PRCPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget := by
13962  intro F hF
13963  rcases hfactor F hF.signed_strengthened.strengthened.native with ⟨χ, hχ, hFχ⟩
13964  have hprime :
13965      PRCCharacterPrimeDirectionCalibrated χ := by
13966    intro p hp
13967    exact RatioOrbit.crossEq_trans
13968      (RatioOrbit.crossEq_symm (hFχ (primeDirection p hp)))
13969      (hF.prime_direction_cost p hp)
13970  have hpair :
13971      PRCCharacterPrimePairProductCostConsistent χ := by
13972    intro p hp r hr
13973    exact RatioOrbit.crossEq_trans
13974      (RatioOrbit.crossEq_symm
13975        (hFχ (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr))))
13976      (hF.signed_strengthened.strengthened.prime_pair_product_cost p hp r hr)
13977  have hsignCost :
13978      RatioOrbit.crossEq (costFromCharacter χ negativeOneRatio)
13979        (onRatioOrbit negativeOneRatio) :=
13980    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ negativeOneRatio))
13981      hF.signed_strengthened.signed_unit
13982  have hsign : PRCCharacterSignedUnitCalibrated χ :=
13983    costFromCharacter_negativeOne_forces_signed_unit hχ hsignCost
13984  exact ⟨χ, ⟨⟨hχ, hprime, hpair⟩, hsign⟩, hFχ⟩
13985
13986theorem PRCPrimeSignedStrengthenedNativeCostUniquenessTarget_of_signed_admissible_factorization
13987    (hfactor : PRCPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget) :
13988    PRCPrimeSignedStrengthenedNativeCostUniquenessTarget := by
13989  intro F hF q
13990  rcases hfactor F hF with ⟨χ, hadm, hFχ⟩
13991  exact RatioOrbit.crossEq_trans (hFχ q)
13992    (PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved χ hadm q)
13993
13994theorem PRCPrimeSignedStrengthenedNativeCostUniquenessTarget_of_character_factorization
13995    (hfactor : PRCNativeCostCharacterFactorizationTarget) :
13996    PRCPrimeSignedStrengthenedNativeCostUniquenessTarget :=
13997  PRCPrimeSignedStrengthenedNativeCostUniquenessTarget_of_signed_admissible_factorization
13998    (PRCPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_of_character_factorization
13999      hfactor)
14000
14001theorem PRCAdmissibleCharacterGlobalOrientationTarget_of_prime_coherence_and_global_propagation
14002    (hcoh : PRCAdmissibleCharacterPrimeOrientationCoherentTarget)
14003    (hprop : PRCCoherentPrimeOrientationPropagatesToGlobalTarget) :
14004    PRCAdmissibleCharacterGlobalOrientationTarget := by
14005  intro χ hadm
14006  exact hprop χ hadm.ratio_character (hcoh χ hadm)
14007
14008theorem PRCAdmissibleCharacterGlobalOrientationTarget_of_global_propagation
14009    (hprop : PRCCoherentPrimeOrientationPropagatesToGlobalTarget) :
14010    PRCAdmissibleCharacterGlobalOrientationTarget :=
14011  PRCAdmissibleCharacterGlobalOrientationTarget_of_prime_coherence_and_global_propagation
14012    PRCAdmissibleCharacterPrimeOrientationCoherentTarget_proved hprop
14013
14014theorem PRCNativeCostAdmissibleCharacterRigidityTarget_of_admissible_prime_coherence_and_global_propagation
14015    (hcoh : PRCAdmissibleCharacterPrimeOrientationCoherentTarget)
14016    (hprop : PRCCoherentPrimeOrientationPropagatesToGlobalTarget) :
14017    PRCNativeCostAdmissibleCharacterRigidityTarget :=
14018  PRCNativeCostAdmissibleCharacterRigidityTarget_of_admissible_global_orientation
14019    (PRCAdmissibleCharacterGlobalOrientationTarget_of_prime_coherence_and_global_propagation
14020      hcoh hprop)
14021
14022theorem PRCNativeCostAdmissibleCharacterRigidityTarget_of_global_propagation
14023    (hprop : PRCCoherentPrimeOrientationPropagatesToGlobalTarget) :
14024    PRCNativeCostAdmissibleCharacterRigidityTarget :=
14025  PRCNativeCostAdmissibleCharacterRigidityTarget_of_admissible_global_orientation
14026    (PRCAdmissibleCharacterGlobalOrientationTarget_of_global_propagation hprop)
14027
14028theorem PRCPrimeCalibrationForcesGlobalOrientationTarget_of_prime_orientation_targets
14029    (hcoherent : PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget)
14030    (hprop : PRCCoherentPrimeOrientationPropagatesToGlobalTarget) :
14031    PRCPrimeCalibrationForcesGlobalOrientationTarget := by
14032  intro χ hχ hprime
14033  exact hprop χ hχ (hcoherent χ hχ hprime)
14034
14035theorem PRCPrimeCalibrationPropagationTarget_of_global_orientation
14036    (horient : PRCPrimeCalibrationForcesGlobalOrientationTarget) :
14037    PRCPrimeCalibrationPropagationTarget := by
14038  intro χ hχ hprime q
14039  rcases horient χ hχ hprime q with hsame | hinv
14040  · exact onRatioOrbit_congr hsame
14041  · exact RatioOrbit.crossEq_trans
14042      (onRatioOrbit_congr hinv)
14043      (RatioOrbit.crossEq_symm (reciprocal_symmetric q))
14044
14045/-- Pass-27 refinement of prime propagation. -/
14046def PRCPrimeCalibrationPropagationSharpenedTarget : Prop :=
14047  PRCPrimeFloorSuccessorTransportSharpenedTarget ∧
14048    PRCCoherentPrimeOrientationPropagatesToGlobalTarget
14049
14050theorem PRCPrimeCalibrationPropagationTarget_of_sharpened_orientation
14051    (hsharp : PRCPrimeCalibrationPropagationSharpenedTarget) :
14052    PRCPrimeCalibrationPropagationTarget :=
14053  PRCPrimeCalibrationPropagationTarget_of_global_orientation
14054    (PRCPrimeCalibrationForcesGlobalOrientationTarget_of_prime_orientation_targets
14055      (PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_local_and_nomixed
14056        PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved
14057        (PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_trace_coherence
14058          (PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_trace_transport
14059            (PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_common_trace_extension
14060              (PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_comparable_trace
14061                (PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_prime_floor_successor_transport
14062                  (PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_local_adjacent_nomix
14063                    hsharp.1)))))))
14064      hsharp.2)
14065
14066theorem PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_admissible_prime_coherence_and_global_propagation
14067    (hfactor : PRCNativeCostCharacterFactorizationTarget)
14068    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
14069    (hcoh : PRCAdmissibleCharacterPrimeOrientationCoherentTarget)
14070    (hprop : PRCCoherentPrimeOrientationPropagatesToGlobalTarget) :
14071    PRCStrengthenedNativeCostUniquenessTarget :=
14072  PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_rigidity
14073    hfactor htwo
14074    (PRCNativeCostAdmissibleCharacterRigidityTarget_of_admissible_prime_coherence_and_global_propagation
14075      hcoh hprop)
14076
14077theorem PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_coherent_global_propagation
14078    (hfactor : PRCNativeCostCharacterFactorizationTarget)
14079    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
14080    (hprop : PRCCoherentPrimeOrientationPropagatesToGlobalTarget) :
14081    PRCStrengthenedNativeCostUniquenessTarget :=
14082  PRCStrengthenedNativeCostUniquenessTarget_of_character_factorization_two_calibration_and_admissible_rigidity
14083    hfactor htwo
14084    (PRCNativeCostAdmissibleCharacterRigidityTarget_of_global_propagation
14085      hprop)
14086
14087theorem PRCNativeCostCharacterRigidityTarget_of_prime_targets
14088    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
14089    (hprop : PRCPrimeCalibrationPropagationTarget) :
14090    PRCNativeCostCharacterRigidityTarget := by
14091  intro χ hχ htwoCal q
14092  exact hprop χ hχ (htwo χ hχ htwoCal) q
14093
14094theorem PRCNativeCostUniquenessTarget_of_prime_character_targets
14095    (hfactor : PRCNativeCostCharacterFactorizationTarget)
14096    (htwo : PRCTwoCalibrationForcesPrimeCalibrationTarget)
14097    (hprop : PRCPrimeCalibrationPropagationTarget) :
14098    PRCNativeCostUniquenessTarget := by
14099  intro F hF q
14100  rcases hfactor F hF with ⟨χ, hχ, hFχ⟩
14101  have hcal :
14102      RatioOrbit.crossEq (costFromCharacter χ two) (onRatioOrbit two) :=
14103    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ two)) hF.two_calibrated
14104  have hrigid :=
14105    PRCNativeCostCharacterRigidityTarget_of_prime_targets htwo hprop
14106  exact RatioOrbit.crossEq_trans (hFχ q) (hrigid χ hχ hcal q)
14107
14108/-- The identity map is a ratio character. This sanity-check anchors the
14109character interface to the canonical cost. -/
14110theorem identity_ratio_character :
14111    PRCRatioCharacter (fun q : RatioOrbit => q) where
14112  unit := RatioOrbit.crossEq_refl RatioOrbit.one
14113  multiplicative := by
14114    intro x y
14115    exact RatioOrbit.crossEq_refl (RatioOrbit.mul x y)
14116  reciprocal := by
14117    intro x
14118    exact RatioOrbit.crossEq_refl (RatioOrbit.recip x)
14119  normalized_invariant := by
14120    intro q
14121    exact DistinctionNat.normalizeRatio_crossEq q
14122  nonzero_preserving := by
14123    intro q hq
14124    exact hq
14125
14126theorem identity_character_rigid :
14127    ∀ q : RatioOrbit,
14128      RatioOrbit.crossEq
14129        (costFromCharacter (fun q : RatioOrbit => q) q)
14130        (onRatioOrbit q) := by
14131  intro q
14132  exact RatioOrbit.crossEq_refl (onRatioOrbit q)
14133
14134theorem identity_character_prime_calibrated :
14135    PRCCharacterPrimeDirectionCalibrated (fun q : RatioOrbit => q) := by
14136  intro p hp
14137  exact identity_character_rigid (primeDirection p hp)
14138
14139theorem identity_character_prime_pair_product_cost_consistent :
14140    PRCCharacterPrimePairProductCostConsistent
14141      (fun q : RatioOrbit => q) := by
14142  intro p hp r hr
14143  exact identity_character_rigid
14144    (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr))
14145
14146theorem identity_admissible_ratio_character :
14147    PRCAdmissibleRatioCharacter (fun q : RatioOrbit => q) where
14148  ratio_character := identity_ratio_character
14149  prime_calibrated := identity_character_prime_calibrated
14150  prime_pair_product_cost :=
14151    identity_character_prime_pair_product_cost_consistent
14152
14153theorem identity_character_global_orientation :
14154    PRCCharacterGlobalCostOrientation (fun q : RatioOrbit => q) := by
14155  intro q
14156  exact Or.inl (RatioOrbit.crossEq_refl q)
14157
14158theorem identity_character_prime_orientation_coherent :
14159    PRCCharacterPrimeOrientationCoherent (fun q : RatioOrbit => q) := by
14160  exact Or.inl (by
14161    intro p hp
14162    exact RatioOrbit.crossEq_refl (primeDirection p hp))
14163
14164/-- The global reciprocal map is also a ratio character. This is the first
14165explicit witness that the multiplicative character laws alone do not choose the
14166identity orientation. -/
14167theorem reciprocal_ratio_character :
14168    PRCRatioCharacter (fun q : RatioOrbit => RatioOrbit.recip q) where
14169  unit := by
14170    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
14171      RatioOrbit.one_toRat]
14172    norm_num
14173  multiplicative := by
14174    intro x y
14175    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
14176      RatioOrbit.mul_toRat, RatioOrbit.mul_toRat, RatioOrbit.recip_toRat,
14177      RatioOrbit.recip_toRat]
14178    by_cases hx : x.toRat = 0
14179    · simp [hx]
14180    · by_cases hy : y.toRat = 0
14181      · simp [hy]
14182      · field_simp [hx, hy]
14183  reciprocal := by
14184    intro x
14185    exact RatioOrbit.crossEq_refl (RatioOrbit.recip (RatioOrbit.recip x))
14186  normalized_invariant := by
14187    intro q
14188    rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
14189      RatioOrbit.recip_toRat]
14190    have hnorm :
14191        q.toRat = (DistinctionNat.normalizeRatio q).toRat :=
14192      (RatioOrbit.crossEq_iff_toRat_eq q (DistinctionNat.normalizeRatio q)).mp
14193        (DistinctionNat.normalizeRatio_crossEq q)
14194    exact congrArg Inv.inv hnorm
14195  nonzero_preserving := by
14196    intro q hq
14197    rw [RatioOrbit.recip_toRat]
14198    exact inv_ne_zero hq
14199
14200theorem reciprocal_character_prime_calibrated :
14201    PRCCharacterPrimeDirectionCalibrated
14202      (fun q : RatioOrbit => RatioOrbit.recip q) := by
14203  intro p hp
14204  simpa [costFromCharacter] using
14205    RatioOrbit.crossEq_symm (reciprocal_symmetric (primeDirection p hp))
14206
14207theorem reciprocal_character_prime_pair_product_cost_consistent :
14208    PRCCharacterPrimePairProductCostConsistent
14209      (fun q : RatioOrbit => RatioOrbit.recip q) := by
14210  intro p hp r hr
14211  simpa [costFromCharacter] using
14212    RatioOrbit.crossEq_symm
14213      (reciprocal_symmetric
14214        (RatioOrbit.mul (primeDirection p hp) (primeDirection r hr)))
14215
14216theorem reciprocal_admissible_ratio_character :
14217    PRCAdmissibleRatioCharacter
14218      (fun q : RatioOrbit => RatioOrbit.recip q) where
14219  ratio_character := reciprocal_ratio_character
14220  prime_calibrated := reciprocal_character_prime_calibrated
14221  prime_pair_product_cost :=
14222    reciprocal_character_prime_pair_product_cost_consistent
14223
14224theorem reciprocal_character_global_orientation :
14225    PRCCharacterGlobalCostOrientation
14226      (fun q : RatioOrbit => RatioOrbit.recip q) := by
14227  intro q
14228  exact Or.inr (RatioOrbit.crossEq_refl (RatioOrbit.recip q))
14229
14230theorem reciprocal_character_prime_orientation_coherent :
14231    PRCCharacterPrimeOrientationCoherent
14232      (fun q : RatioOrbit => RatioOrbit.recip q) := by
14233  exact Or.inr (by
14234    intro p hp
14235    exact RatioOrbit.crossEq_refl (RatioOrbit.recip (primeDirection p hp)))
14236
14237theorem reciprocal_character_not_successor_additive_compatible :
14238    ¬ PRCCharacterOrbitSuccessorAdditiveCompatible
14239      (fun q : RatioOrbit => RatioOrbit.recip q) := by
14240  intro hcompat
14241  have hstep := hcompat DistinctionNat.one DistinctionNat.one_ne_zero
14242  rw [RatioOrbit.crossEq_iff_toRat_eq, RatioOrbit.recip_toRat,
14243    RatioOrbit.add_toRat, RatioOrbit.recip_toRat, RatioOrbit.one_toRat,
14244    orbitDirection_toRat, orbitDirection_toRat, DistinctionNat.toNat_succ,
14245    DistinctionNat.one_toNat] at hstep
14246  norm_num at hstep
14247
14248theorem PRCPrimeCalibrationForcesOrbitSuccessorAdditiveCompatibilityTarget_refuted :
14249    ¬ PRCPrimeCalibrationForcesOrbitSuccessorAdditiveCompatibilityTarget := by
14250  intro htarget
14251  exact reciprocal_character_not_successor_additive_compatible
14252    (htarget (fun q : RatioOrbit => RatioOrbit.recip q)
14253      reciprocal_ratio_character reciprocal_character_prime_calibrated)
14254
14255/-- The sharpened replacement for the opaque native uniqueness blocker. -/
14256def PRCNativeCostUniquenessSharpenedTarget : Prop :=
14257  PRCNativeCostCharacterFactorizationTarget ∧
14258    PRCNativeCostCharacterRigidityTarget
14259
14260theorem PRCNativeCostUniquenessSharpenedTarget_refuted :
14261    ¬ PRCNativeCostUniquenessSharpenedTarget := by
14262  intro htarget
14263  exact PRCNativeCostCharacterFactorizationTarget_refuted htarget.1
14264
14265/-- Pass-26 refinement of the rigidity target. -/
14266def PRCNativeCostCharacterRigiditySharpenedTarget : Prop :=
14267  PRCTwoCalibrationForcesPrimeCalibrationTarget ∧
14268    PRCPrimeCalibrationPropagationTarget
14269
14270theorem PRCPrimeCalibrationPropagationTarget_refuted :
14271    ¬ PRCPrimeCalibrationPropagationTarget := by
14272  intro htarget
14273  exact PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_refuted
14274    (PRCPrimeCalibrationForcesPrimePairProductCostConsistencyTarget_of_prime_calibration_propagation
14275      htarget)
14276
14277theorem PRCPrimeCalibrationForcesGlobalOrientationTarget_refuted :
14278    ¬ PRCPrimeCalibrationForcesGlobalOrientationTarget := by
14279  intro htarget
14280  exact PRCPrimeCalibrationPropagationTarget_refuted
14281    (PRCPrimeCalibrationPropagationTarget_of_global_orientation htarget)
14282
14283theorem PRCPrimeCalibrationPropagationSharpenedTarget_refuted :
14284    ¬ PRCPrimeCalibrationPropagationSharpenedTarget := by
14285  intro htarget
14286  exact PRCPrimeCalibrationPropagationTarget_refuted
14287    (PRCPrimeCalibrationPropagationTarget_of_sharpened_orientation htarget)
14288
14289theorem PRCNativeCostCharacterRigiditySharpenedTarget_refuted :
14290    ¬ PRCNativeCostCharacterRigiditySharpenedTarget := by
14291  intro htarget
14292  exact PRCTwoCalibrationForcesPrimeCalibrationTarget_refuted htarget.1
14293
14294theorem PRCNativeCostUniquenessTarget_of_character_targets
14295    (hfactor : PRCNativeCostCharacterFactorizationTarget)
14296    (hrigid : PRCNativeCostCharacterRigidityTarget) :
14297    PRCNativeCostUniquenessTarget := by
14298  intro F hF q
14299  rcases hfactor F hF with ⟨χ, hχ, hFχ⟩
14300  have hcal :
14301      RatioOrbit.crossEq (costFromCharacter χ two) (onRatioOrbit two) :=
14302    RatioOrbit.crossEq_trans (RatioOrbit.crossEq_symm (hFχ two)) hF.two_calibrated
14303  exact RatioOrbit.crossEq_trans (hFχ q) (hrigid χ hχ hcal q)
14304
14305/-- Pass-25 certificate: native cost uniqueness is not closed, but the missing
14306mathematics is now split into exact Lean targets. -/
14307structure PRCNativeCostUniquenessBlockerCertificate : Prop where
14308  zero_calibrated_factorization_target :
14309    PRCZeroCalibratedNativeCostCharacterFactorizationTarget
14310  zero_calibrated_signed_admissible_factorization_refuted :
14311    ¬ PRCZeroCalibratedNativeCostSignedAdmissibleCharacterFactorizationTarget
14312  zero_calibration_signed_unit_target_refuted :
14313    ¬ PRCZeroCalibrationForcesNativeCostSignedUnitCalibrationTarget
14314  zero_calibrated_prime_signed_strengthened_factorization :
14315    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget
14316  zero_calibrated_prime_signed_strengthened_uniqueness :
14317    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostUniquenessTarget
14318  old_factorization_refuted :
14319    ¬ PRCNativeCostCharacterFactorizationTarget
14320  zero_calibrated_uniqueness_target :
14321    ¬ PRCZeroCalibratedNativeCostUniquenessTarget
14322  signed_admissible_rigidity_target :
14323    PRCNativeCostSignedAdmissibleCharacterRigidityTarget
14324  old_rigidity_refuted :
14325    ¬ PRCNativeCostCharacterRigidityTarget
14326  two_to_prime_target_refuted :
14327    ¬ PRCTwoCalibrationForcesPrimeCalibrationTarget
14328  prime_propagation_target_refuted :
14329    ¬ PRCPrimeCalibrationPropagationTarget
14330  global_orientation_target_refuted :
14331    ¬ PRCPrimeCalibrationForcesGlobalOrientationTarget
14332  coherent_prime_orientation :
14333    PRCCharacterPrimeOrientationCoherent =
14334      PRCCharacterPrimeOrientationCoherent
14335  two_orbit_prime :
14336    DistinctionNat.primeOrbit twoOrbit
14337  two_prime_direction :
14338    twoPrimeDirection = twoPrimeDirection
14339  two_prime_branch_controls_primes :
14340    PRCCharacterTwoPrimeBranchControlsPrimes =
14341      PRCCharacterTwoPrimeBranchControlsPrimes
14342  prime_identity_iff_two_prime_identity :
14343    PRCCharacterPrimeIdentityIffTwoPrimeIdentity =
14344      PRCCharacterPrimeIdentityIffTwoPrimeIdentity
14345  prime_identity_forces_two_prime_identity :
14346    PRCCharacterPrimeIdentityForcesTwoPrimeIdentity =
14347      PRCCharacterPrimeIdentityForcesTwoPrimeIdentity
14348  two_prime_reciprocal_excludes_prime_identity :
14349    PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity =
14350      PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity
14351  two_prime_reciprocal_forces_prime_reciprocal :
14352    PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal =
14353      PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal
14354  two_prime_reciprocal_trace_connected :
14355    PRCCharacterTwoPrimeReciprocalRespectsTraceConnected =
14356      PRCCharacterTwoPrimeReciprocalRespectsTraceConnected
14357  two_prime_identity_trace_connected :
14358    PRCCharacterTwoPrimeIdentityRespectsTraceConnected =
14359      PRCCharacterTwoPrimeIdentityRespectsTraceConnected
14360  reciprocal_twist_character :
14361    ∀ χ : RatioOrbit → RatioOrbit,
14362      PRCRatioCharacter χ →
14363        PRCRatioCharacter (PRCCharacterReciprocalTwist χ)
14364  reciprocal_twist_prime_calibrated :
14365    ∀ χ : RatioOrbit → RatioOrbit,
14366      PRCCharacterPrimeDirectionCalibrated χ →
14367        PRCCharacterPrimeDirectionCalibrated (PRCCharacterReciprocalTwist χ)
14368  reciprocal_twist_prime_identity_iff_reciprocal :
14369    ∀ χ : RatioOrbit → RatioOrbit,
14370      ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
14371        RatioOrbit.crossEq
14372            (PRCCharacterReciprocalTwist χ (primeDirection p hp))
14373            (primeDirection p hp) ↔
14374          RatioOrbit.crossEq (χ (primeDirection p hp))
14375            (RatioOrbit.recip (primeDirection p hp))
14376  reciprocal_twist_two_identity_iff_reciprocal :
14377    ∀ χ : RatioOrbit → RatioOrbit,
14378      RatioOrbit.crossEq
14379          (PRCCharacterReciprocalTwist χ twoPrimeDirection)
14380          twoPrimeDirection ↔
14381        RatioOrbit.crossEq (χ twoPrimeDirection)
14382          (RatioOrbit.recip twoPrimeDirection)
14383  reciprocal_twist_prime_reciprocal_iff_identity :
14384    ∀ χ : RatioOrbit → RatioOrbit,
14385      ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
14386        RatioOrbit.crossEq
14387            (PRCCharacterReciprocalTwist χ (primeDirection p hp))
14388            (RatioOrbit.recip (primeDirection p hp)) ↔
14389          RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)
14390  reciprocal_twist_two_reciprocal_iff_identity :
14391    ∀ χ : RatioOrbit → RatioOrbit,
14392      RatioOrbit.crossEq
14393          (PRCCharacterReciprocalTwist χ twoPrimeDirection)
14394          (RatioOrbit.recip twoPrimeDirection) ↔
14395        RatioOrbit.crossEq (χ twoPrimeDirection) twoPrimeDirection
14396  two_prime_branch_controls_from_coherent :
14397    ∀ χ : RatioOrbit → RatioOrbit,
14398      PRCCharacterPrimeOrientationCoherent χ →
14399        PRCCharacterTwoPrimeBranchControlsPrimes χ
14400  coherent_from_local_two_prime_branch_controls :
14401    ∀ χ : RatioOrbit → RatioOrbit,
14402      PRCCharacterPrimeLocalOrientation χ →
14403        PRCCharacterTwoPrimeBranchControlsPrimes χ →
14404          PRCCharacterPrimeOrientationCoherent χ
14405  prime_identity_iff_two_from_local_two_prime_branch_controls :
14406    ∀ χ : RatioOrbit → RatioOrbit,
14407      PRCCharacterPrimeLocalOrientation χ →
14408        PRCCharacterTwoPrimeBranchControlsPrimes χ →
14409          PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ
14410  two_prime_branch_controls_from_local_prime_identity_iff_two :
14411    ∀ χ : RatioOrbit → RatioOrbit,
14412      PRCCharacterPrimeLocalOrientation χ →
14413        PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ →
14414          PRCCharacterTwoPrimeBranchControlsPrimes χ
14415  prime_identity_forces_two_from_identity_iff_two :
14416    ∀ χ : RatioOrbit → RatioOrbit,
14417      PRCCharacterPrimeIdentityIffTwoPrimeIdentity χ →
14418        PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ
14419  two_prime_reciprocal_excludes_from_identity_forces_two :
14420    ∀ χ : RatioOrbit → RatioOrbit,
14421      PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ →
14422        PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ
14423  prime_identity_forces_two_from_local_two_prime_reciprocal_excludes :
14424    ∀ χ : RatioOrbit → RatioOrbit,
14425      PRCCharacterPrimeLocalOrientation χ →
14426        PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ →
14427          PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ
14428  prime_identity_forces_two_iff_two_prime_reciprocal_excludes :
14429    ∀ χ : RatioOrbit → RatioOrbit,
14430      PRCCharacterPrimeLocalOrientation χ →
14431        (PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ ↔
14432          PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ)
14433  two_prime_reciprocal_excludes_from_two_prime_reciprocal_forces :
14434    ∀ χ : RatioOrbit → RatioOrbit,
14435      PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ →
14436        PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ
14437  two_prime_reciprocal_forces_from_local_excludes_prime_identity :
14438    ∀ χ : RatioOrbit → RatioOrbit,
14439      PRCCharacterPrimeLocalOrientation χ →
14440        PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ →
14441          PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ
14442  two_prime_reciprocal_excludes_iff_two_prime_reciprocal_forces :
14443    ∀ χ : RatioOrbit → RatioOrbit,
14444      PRCCharacterPrimeLocalOrientation χ →
14445        (PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity χ ↔
14446          PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ)
14447  two_prime_reciprocal_forces_from_trace_connected :
14448    ∀ χ : RatioOrbit → RatioOrbit,
14449      PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ →
14450        PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ
14451  two_prime_reciprocal_trace_connected_from_forces :
14452    ∀ χ : RatioOrbit → RatioOrbit,
14453      PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ →
14454        PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ
14455  two_prime_reciprocal_trace_connected_iff_forces :
14456    ∀ χ : RatioOrbit → RatioOrbit,
14457      (PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ ↔
14458        PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ)
14459  two_prime_reciprocal_trace_connected_from_twist_identity :
14460    ∀ χ : RatioOrbit → RatioOrbit,
14461      PRCCharacterTwoPrimeIdentityRespectsTraceConnected
14462          (PRCCharacterReciprocalTwist χ) →
14463        PRCCharacterTwoPrimeReciprocalRespectsTraceConnected χ
14464  two_prime_identity_trace_connected_from_twist_reciprocal :
14465    ∀ χ : RatioOrbit → RatioOrbit,
14466      PRCCharacterTwoPrimeReciprocalRespectsTraceConnected
14467          (PRCCharacterReciprocalTwist χ) →
14468        PRCCharacterTwoPrimeIdentityRespectsTraceConnected χ
14469  two_prime_identity_trace_connected_from_prime_identity_trace_connected :
14470    ∀ χ : RatioOrbit → RatioOrbit,
14471      PRCCharacterPrimeIdentityRespectsTraceConnected χ →
14472        PRCCharacterTwoPrimeIdentityRespectsTraceConnected χ
14473  prime_identity_trace_connected_from_two_prime_identity_and_forces_two :
14474    ∀ χ : RatioOrbit → RatioOrbit,
14475      PRCCharacterTwoPrimeIdentityRespectsTraceConnected χ →
14476        PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ →
14477          PRCCharacterPrimeIdentityRespectsTraceConnected χ
14478  local_prime_orientation :
14479    PRCCharacterPrimeLocalOrientation =
14480      PRCCharacterPrimeLocalOrientation
14481  no_mixed_prime_orientation :
14482    PRCCharacterNoMixedPrimeOrientation =
14483      PRCCharacterNoMixedPrimeOrientation
14484  no_mixed_prime_witnesses :
14485    PRCCharacterNoMixedPrimeWitnesses =
14486      PRCCharacterNoMixedPrimeWitnesses
14487  prime_identity_witness_excludes_reciprocal :
14488    PRCCharacterPrimeIdentityWitnessExcludesReciprocal =
14489      PRCCharacterPrimeIdentityWitnessExcludesReciprocal
14490  prime_reciprocal_witness_globalizes :
14491    PRCCharacterPrimeReciprocalWitnessGlobalizes =
14492      PRCCharacterPrimeReciprocalWitnessGlobalizes
14493  prime_reciprocal_forces_two_prime_reciprocal :
14494    PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal =
14495      PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal
14496  prime_reciprocal_witness_globalizes_split :
14497    PRCCharacterPrimeReciprocalWitnessGlobalizesSplit =
14498      PRCCharacterPrimeReciprocalWitnessGlobalizesSplit
14499  prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_orientation :
14500    ∀ χ : RatioOrbit → RatioOrbit,
14501      PRCCharacterNoMixedPrimeOrientation χ →
14502        PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ
14503  no_mixed_prime_orientation_from_identity_witness_excludes_reciprocal :
14504    ∀ χ : RatioOrbit → RatioOrbit,
14505      PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ →
14506        PRCCharacterNoMixedPrimeOrientation χ
14507  prime_identity_witness_excludes_reciprocal_iff_no_mixed_prime_orientation :
14508    ∀ χ : RatioOrbit → RatioOrbit,
14509      PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ ↔
14510        PRCCharacterNoMixedPrimeOrientation χ
14511  no_mixed_prime_witnesses_from_identity_witness_excludes_reciprocal :
14512    ∀ χ : RatioOrbit → RatioOrbit,
14513      PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ →
14514        PRCCharacterNoMixedPrimeWitnesses χ
14515  prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_witnesses :
14516    ∀ χ : RatioOrbit → RatioOrbit,
14517      PRCCharacterNoMixedPrimeWitnesses χ →
14518        PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ
14519  no_mixed_prime_witnesses_iff_identity_witness_excludes_reciprocal :
14520    ∀ χ : RatioOrbit → RatioOrbit,
14521      PRCCharacterNoMixedPrimeWitnesses χ ↔
14522        PRCCharacterPrimeIdentityWitnessExcludesReciprocal χ
14523  prime_reciprocal_witness_globalizes_from_local_no_mixed_prime_orientation :
14524    ∀ χ : RatioOrbit → RatioOrbit,
14525      PRCCharacterPrimeLocalOrientation χ →
14526        PRCCharacterNoMixedPrimeOrientation χ →
14527          PRCCharacterPrimeReciprocalWitnessGlobalizes χ
14528  no_mixed_prime_orientation_from_prime_reciprocal_witness_globalizes :
14529    ∀ χ : RatioOrbit → RatioOrbit,
14530      PRCCharacterPrimeReciprocalWitnessGlobalizes χ →
14531        PRCCharacterNoMixedPrimeOrientation χ
14532  prime_reciprocal_forces_two_from_reciprocal_witness_globalizes :
14533    ∀ χ : RatioOrbit → RatioOrbit,
14534      PRCCharacterPrimeReciprocalWitnessGlobalizes χ →
14535        PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal χ
14536  two_prime_reciprocal_forces_from_reciprocal_witness_globalizes :
14537    ∀ χ : RatioOrbit → RatioOrbit,
14538      PRCCharacterPrimeReciprocalWitnessGlobalizes χ →
14539        PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal χ
14540  prime_reciprocal_witness_globalizes_split_from_reciprocal_witness_globalizes :
14541    ∀ χ : RatioOrbit → RatioOrbit,
14542      PRCCharacterPrimeReciprocalWitnessGlobalizes χ →
14543        PRCCharacterPrimeReciprocalWitnessGlobalizesSplit χ
14544  prime_reciprocal_witness_globalizes_from_split :
14545    ∀ χ : RatioOrbit → RatioOrbit,
14546      PRCCharacterPrimeReciprocalWitnessGlobalizesSplit χ →
14547        PRCCharacterPrimeReciprocalWitnessGlobalizes χ
14548  prime_reciprocal_witness_globalizes_iff_split :
14549    ∀ χ : RatioOrbit → RatioOrbit,
14550      PRCCharacterPrimeReciprocalWitnessGlobalizes χ ↔
14551        PRCCharacterPrimeReciprocalWitnessGlobalizesSplit χ
14552  prime_reciprocal_forces_two_from_reciprocal_twist_identity_forces_two :
14553    ∀ χ : RatioOrbit → RatioOrbit,
14554      PRCCharacterPrimeIdentityForcesTwoPrimeIdentity
14555          (PRCCharacterReciprocalTwist χ) →
14556        PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal χ
14557  prime_identity_forces_two_from_reciprocal_twist_reciprocal_forces_two :
14558    ∀ χ : RatioOrbit → RatioOrbit,
14559      PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal
14560          (PRCCharacterReciprocalTwist χ) →
14561        PRCCharacterPrimeIdentityForcesTwoPrimeIdentity χ
14562  character_no_mixed_prime_witnesses_from_coherent_prime_orientation :
14563    ∀ χ : RatioOrbit → RatioOrbit,
14564      PRCCharacterPrimeOrientationCoherent χ →
14565        PRCCharacterNoMixedPrimeWitnesses χ
14566  mixed_nonunit_witnesses_reflect_prime_witnesses :
14567    PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses =
14568      PRCCharacterMixedNonunitWitnessesReflectPrimeWitnesses
14569  mixed_nonunit_identity_witness_reflects_prime_witness :
14570    PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness =
14571      PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness
14572  mixed_nonunit_reciprocal_witness_reflects_prime_witness :
14573    PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness =
14574      PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness
14575  mixed_nonunit_witnesses_reflect_prime_witnesses_split :
14576    PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit =
14577      PRCCharacterMixedNonunitWitnessesReflectPrimeWitnessesSplit
14578  prime_identity_trace_coherence :
14579    PRCCharacterPrimeIdentityTraceCoherent =
14580      PRCCharacterPrimeIdentityTraceCoherent
14581  prime_identity_branch_uniform :
14582    PRCCharacterPrimeIdentityBranchUniform =
14583      PRCCharacterPrimeIdentityBranchUniform
14584  prime_axis_trace_connected :
14585    PRCPrimeAxisTraceConnected =
14586      PRCPrimeAxisTraceConnected
14587  prime_axis_trace_connected_proved :
14588    ∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
14589      ∀ r : DistinctionNat, ∀ hr : DistinctionNat.primeOrbit r,
14590        PRCPrimeAxisTraceConnected p hp r hr
14591  orbit_trace_extends_of_toNat_le :
14592    ∀ p r : DistinctionNat,
14593      p.toNat ≤ r.toNat →
14594        Trace.Extends (orbitPositionTrace p) (orbitPositionTrace r)
14595  orbit_trace_comparable :
14596    ∀ p r : DistinctionNat,
14597      Trace.Extends (orbitPositionTrace p) (orbitPositionTrace r) ∨
14598        Trace.Extends (orbitPositionTrace r) (orbitPositionTrace p)
14599  orbit_direction_toRat :
14600    ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
14601      (orbitDirection p hp).toRat = (p.toNat : ℚ)
14602  orbit_direction_nonunit_not_crossEq_recip :
14603    ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
14604      ¬ DistinctionNat.unit p →
14605        ¬ RatioOrbit.crossEq
14606          (orbitDirection p hp)
14607          (RatioOrbit.recip (orbitDirection p hp))
14608  orbit_direction_succ_add_one :
14609    ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
14610      RatioOrbit.crossEq
14611        (orbitDirection (DistinctionNat.succ p) (orbit_succ_ne_zero p))
14612        (RatioOrbit.add (orbitDirection p hp) RatioOrbit.one)
14613  ratio_add_right_one_cancel :
14614    ∀ a b : RatioOrbit,
14615      RatioOrbit.crossEq
14616        (RatioOrbit.add a RatioOrbit.one)
14617        (RatioOrbit.add b RatioOrbit.one) →
14618          RatioOrbit.crossEq a b
14619  prime_identity_respects_trace_connected :
14620    PRCCharacterPrimeIdentityRespectsTraceConnected =
14621      PRCCharacterPrimeIdentityRespectsTraceConnected
14622  prime_identity_respects_common_trace_extension :
14623    PRCCharacterPrimeIdentityRespectsCommonTraceExtension =
14624      PRCCharacterPrimeIdentityRespectsCommonTraceExtension
14625  prime_identity_respects_canonical_add_trace :
14626    PRCCharacterPrimeIdentityRespectsCanonicalAddTrace =
14627      PRCCharacterPrimeIdentityRespectsCanonicalAddTrace
14628  prime_identity_respects_comparable_trace :
14629    PRCCharacterPrimeIdentityRespectsComparableTrace =
14630      PRCCharacterPrimeIdentityRespectsComparableTrace
14631  orbit_direction_identity :
14632    PRCCharacterOrbitDirectionIdentity =
14633      PRCCharacterOrbitDirectionIdentity
14634  orbit_direction_reciprocal :
14635    PRCCharacterOrbitDirectionReciprocal =
14636      PRCCharacterOrbitDirectionReciprocal
14637  prime_identity_witness_globalizes_nonunit :
14638    PRCCharacterPrimeIdentityWitnessGlobalizesNonunit =
14639      PRCCharacterPrimeIdentityWitnessGlobalizesNonunit
14640  prime_no_mixed_from_branch_uniform :
14641    ∀ χ : RatioOrbit → RatioOrbit,
14642      PRCCharacterPrimeIdentityBranchUniform χ →
14643        PRCCharacterNoMixedPrimeOrientation χ
14644  prime_identity_branch_uniform_from_local_no_mixed :
14645    ∀ χ : RatioOrbit → RatioOrbit,
14646      PRCCharacterPrimeLocalOrientation χ →
14647        PRCCharacterNoMixedPrimeOrientation χ →
14648          PRCCharacterPrimeIdentityBranchUniform χ
14649  orbit_succ_not_unit :
14650    ∀ p : DistinctionNat, p ≠ DistinctionNat.zero →
14651      ¬ DistinctionNat.unit p →
14652        ¬ DistinctionNat.unit (DistinctionNat.succ p)
14653  orbit_identity_respects_successor_step :
14654    PRCCharacterOrbitIdentityRespectsSuccessorStep =
14655      PRCCharacterOrbitIdentityRespectsSuccessorStep
14656  orbit_identity_extends_successor_step :
14657    PRCCharacterOrbitIdentityExtendsSuccessorStep =
14658      PRCCharacterOrbitIdentityExtendsSuccessorStep
14659  orbit_identity_contracts_successor_step :
14660    PRCCharacterOrbitIdentityContractsSuccessorStep =
14661      PRCCharacterOrbitIdentityContractsSuccessorStep
14662  orbit_identity_successor_transport :
14663    PRCCharacterOrbitIdentitySuccessorTransport =
14664      PRCCharacterOrbitIdentitySuccessorTransport
14665  orbit_successor_additive_compat :
14666    PRCCharacterOrbitSuccessorAdditiveCompatible =
14667      PRCCharacterOrbitSuccessorAdditiveCompatible
14668  nonunit_orbit_local_orientation :
14669    PRCCharacterNonunitOrbitLocalOrientation =
14670      PRCCharacterNonunitOrbitLocalOrientation
14671  orbit_product_local_orientation :
14672    PRCCharacterOrbitProductLocalOrientationPropagates =
14673      PRCCharacterOrbitProductLocalOrientationPropagates
14674  ratio_mul_congr :
14675    ∀ a₁ a₂ b₁ b₂ : RatioOrbit,
14676      RatioOrbit.crossEq a₁ a₂ →
14677        RatioOrbit.crossEq b₁ b₂ →
14678          RatioOrbit.crossEq (RatioOrbit.mul a₁ b₁) (RatioOrbit.mul a₂ b₂)
14679  ratio_recip_congr :
14680    ∀ a b : RatioOrbit,
14681      RatioOrbit.crossEq a b →
14682        RatioOrbit.crossEq (RatioOrbit.recip a) (RatioOrbit.recip b)
14683  ratio_mul_recip_recip :
14684    ∀ a b : RatioOrbit,
14685      RatioOrbit.crossEq
14686        (RatioOrbit.mul (RatioOrbit.recip a) (RatioOrbit.recip b))
14687        (RatioOrbit.recip (RatioOrbit.mul a b))
14688  orbit_direction_mul :
14689    ∀ a b p : DistinctionNat,
14690      ∀ ha : a ≠ DistinctionNat.zero, ∀ hb : b ≠ DistinctionNat.zero,
14691        ∀ hp : p ≠ DistinctionNat.zero,
14692          a * b = p →
14693            RatioOrbit.crossEq (orbitDirection p hp)
14694              (RatioOrbit.mul (orbitDirection a ha) (orbitDirection b hb))
14695  orbit_product_display_compatible :
14696    PRCCharacterOrbitProductDisplayCompatible =
14697      PRCCharacterOrbitProductDisplayCompatible
14698  orbit_character_respects_crossEq :
14699    PRCCharacterRespectsCrossEq =
14700      PRCCharacterRespectsCrossEq
14701  normalizeRatio_canonical_target :
14702    PRCNormalizeRatioCanonicalTarget
14703  signed_orbit_sign_canonical :
14704    PRCSignedOrbitSignCanonical =
14705      PRCSignedOrbitSignCanonical
14706  ratio_reduced_sign_canonical :
14707    PRCRatioReducedSignCanonical =
14708      PRCRatioReducedSignCanonical
14709  signed_ofOrbit_abs_self :
14710    ∀ n : DistinctionNat, (SignedOrbit.ofOrbit n).abs = n
14711  signed_neg_ofOrbit_abs_self :
14712    ∀ n : DistinctionNat,
14713      (SignedOrbit.negate (SignedOrbit.ofOrbit n)).abs = n
14714  signedQuotient_signCanonical :
14715    ∀ z : SignedOrbit, ∀ d : DistinctionNat,
14716      ∀ hd : d ≠ DistinctionNat.zero,
14717        DistinctionNat.divides d z.abs →
14718          PRCSignedOrbitSignCanonical (DistinctionNat.signedQuotient z d hd)
14719  normalizeRatio_reduced_signCanonical :
14720    ∀ q : RatioOrbit,
14721      PRCRatioReducedSignCanonical (DistinctionNat.normalizeRatio q)
14722  signCanonical_toInt_injective :
14723    ∀ z w : SignedOrbit,
14724      PRCSignedOrbitSignCanonical z →
14725        PRCSignedOrbitSignCanonical w →
14726          z.toInt = w.toInt →
14727            z = w
14728  reduced_den_dvd :
14729    ∀ q r : RatioOrbit,
14730      PRCRatioReducedSignCanonical q →
14731        PRCRatioReducedSignCanonical r →
14732          RatioOrbit.crossEq q r →
14733            q.den.toNat ∣ r.den.toNat
14734  reduced_den_eq :
14735    ∀ q r : RatioOrbit,
14736      PRCRatioReducedSignCanonical q →
14737        PRCRatioReducedSignCanonical r →
14738          RatioOrbit.crossEq q r →
14739            q.den = r.den
14740  reduced_num_eq :
14741    ∀ q r : RatioOrbit,
14742      PRCRatioReducedSignCanonical q →
14743        PRCRatioReducedSignCanonical r →
14744          RatioOrbit.crossEq q r →
14745            q.num = r.num
14746  reduced_signCanonical_ratio_unique_target :
14747    PRCReducedSignCanonicalRatioUniqueTarget
14748  reduced_signCanonical_ratio_unique_proved :
14749    PRCReducedSignCanonicalRatioUniqueTarget
14750  normalizeRatio_canonical_from_reduced_signCanonical_unique :
14751    PRCReducedSignCanonicalRatioUniqueTarget →
14752      PRCNormalizeRatioCanonicalTarget
14753  normalizeRatio_canonical_proved :
14754    PRCNormalizeRatioCanonicalTarget
14755  orbit_character_crossEq_from_normalizeRatio_canonical :
14756    ∀ χ : RatioOrbit → RatioOrbit,
14757      PRCRatioCharacter χ →
14758        PRCNormalizeRatioCanonicalTarget →
14759          PRCCharacterRespectsCrossEq χ
14760  orbit_product_display_from_crossEq :
14761    ∀ χ : RatioOrbit → RatioOrbit,
14762      PRCCharacterRespectsCrossEq χ →
14763        PRCCharacterOrbitProductDisplayCompatible χ
14764  orbit_product_no_mixed_orientation :
14765    PRCCharacterOrbitProductNoMixedOrientation =
14766      PRCCharacterOrbitProductNoMixedOrientation
14767  nonunit_orbit_orientation_coherent :
14768    PRCCharacterNonunitOrbitOrientationCoherent =
14769      PRCCharacterNonunitOrbitOrientationCoherent
14770  no_mixed_nonunit_orbit_orientation :
14771    PRCCharacterNoMixedNonunitOrbitOrientation =
14772      PRCCharacterNoMixedNonunitOrbitOrientation
14773  nonunit_identity_branch_transport :
14774    PRCCharacterNonunitIdentityBranchTransport =
14775      PRCCharacterNonunitIdentityBranchTransport
14776  nonunit_identity_witness_globalizes :
14777    PRCCharacterNonunitIdentityWitnessGlobalizes =
14778      PRCCharacterNonunitIdentityWitnessGlobalizes
14779  nonunit_reciprocal_branch_transport :
14780    PRCCharacterNonunitReciprocalBranchTransport =
14781      PRCCharacterNonunitReciprocalBranchTransport
14782  nonunit_branch_transport_pair :
14783    PRCCharacterNonunitBranchTransportPair =
14784      PRCCharacterNonunitBranchTransportPair
14785  nonunit_identity_respects_comparable_trace :
14786    PRCCharacterNonunitIdentityRespectsComparableTrace =
14787      PRCCharacterNonunitIdentityRespectsComparableTrace
14788  nonunit_branch_agreement :
14789    PRCCharacterNonunitBranchAgreement =
14790      PRCCharacterNonunitBranchAgreement
14791  nonunit_local_from_coherent :
14792    ∀ χ : RatioOrbit → RatioOrbit,
14793      PRCCharacterNonunitOrbitOrientationCoherent χ →
14794        PRCCharacterNonunitOrbitLocalOrientation χ
14795  no_mixed_nonunit_from_coherent :
14796    ∀ χ : RatioOrbit → RatioOrbit,
14797      PRCCharacterNonunitOrbitOrientationCoherent χ →
14798        PRCCharacterNoMixedNonunitOrbitOrientation χ
14799  orbit_mul_not_unit_left :
14800    ∀ p r : DistinctionNat,
14801      ¬ DistinctionNat.unit p →
14802        ¬ DistinctionNat.unit (p * r)
14803  no_mixed_nonunit_from_product_no_mixed :
14804    ∀ χ : RatioOrbit → RatioOrbit,
14805      PRCCharacterOrbitProductNoMixedOrientation χ →
14806        PRCCharacterNoMixedNonunitOrbitOrientation χ
14807  orbit_product_no_mixed_from_no_mixed_nonunit :
14808    ∀ χ : RatioOrbit → RatioOrbit,
14809      PRCCharacterNoMixedNonunitOrbitOrientation χ →
14810        PRCCharacterOrbitProductNoMixedOrientation χ
14811  orbit_product_no_mixed_iff_no_mixed_nonunit :
14812    ∀ χ : RatioOrbit → RatioOrbit,
14813      PRCCharacterOrbitProductNoMixedOrientation χ ↔
14814        PRCCharacterNoMixedNonunitOrbitOrientation χ
14815  no_mixed_nonunit_from_identity_branch_transport :
14816    ∀ χ : RatioOrbit → RatioOrbit,
14817      PRCCharacterNonunitIdentityBranchTransport χ →
14818        PRCCharacterNoMixedNonunitOrbitOrientation χ
14819  orbit_product_no_mixed_from_identity_branch_transport :
14820    ∀ χ : RatioOrbit → RatioOrbit,
14821      PRCCharacterNonunitIdentityBranchTransport χ →
14822        PRCCharacterOrbitProductNoMixedOrientation χ
14823  nonunit_identity_branch_transport_from_local_no_mixed :
14824    ∀ χ : RatioOrbit → RatioOrbit,
14825      PRCCharacterNonunitOrbitLocalOrientation χ →
14826        PRCCharacterNoMixedNonunitOrbitOrientation χ →
14827          PRCCharacterNonunitIdentityBranchTransport χ
14828  nonunit_identity_branch_transport_from_coherent :
14829    ∀ χ : RatioOrbit → RatioOrbit,
14830      PRCCharacterNonunitOrbitOrientationCoherent χ →
14831        PRCCharacterNonunitIdentityBranchTransport χ
14832  nonunit_identity_witness_globalizes_from_branch_transport :
14833    ∀ χ : RatioOrbit → RatioOrbit,
14834      PRCCharacterNonunitIdentityBranchTransport χ →
14835        PRCCharacterNonunitIdentityWitnessGlobalizes χ
14836  nonunit_identity_branch_transport_from_witness_globalizes :
14837    ∀ χ : RatioOrbit → RatioOrbit,
14838      PRCCharacterNonunitIdentityWitnessGlobalizes χ →
14839        PRCCharacterNonunitIdentityBranchTransport χ
14840  nonunit_identity_witness_globalizes_iff_branch_transport :
14841    ∀ χ : RatioOrbit → RatioOrbit,
14842      PRCCharacterNonunitIdentityWitnessGlobalizes χ ↔
14843        PRCCharacterNonunitIdentityBranchTransport χ
14844  nonunit_coherent_from_local_identity_witness_globalizes :
14845    ∀ χ : RatioOrbit → RatioOrbit,
14846      PRCCharacterNonunitOrbitLocalOrientation χ →
14847        PRCCharacterNonunitIdentityWitnessGlobalizes χ →
14848          PRCCharacterNonunitOrbitOrientationCoherent χ
14849  nonunit_identity_witness_globalizes_from_coherent :
14850    ∀ χ : RatioOrbit → RatioOrbit,
14851      PRCCharacterNonunitOrbitOrientationCoherent χ →
14852        PRCCharacterNonunitIdentityWitnessGlobalizes χ
14853  nonunit_reciprocal_branch_transport_from_coherent :
14854    ∀ χ : RatioOrbit → RatioOrbit,
14855      PRCCharacterNonunitOrbitOrientationCoherent χ →
14856        PRCCharacterNonunitReciprocalBranchTransport χ
14857  nonunit_branch_transport_pair_from_coherent :
14858    ∀ χ : RatioOrbit → RatioOrbit,
14859      PRCCharacterNonunitOrbitOrientationCoherent χ →
14860        PRCCharacterNonunitBranchTransportPair χ
14861  nonunit_identity_branch_transport_from_comparable_trace :
14862    ∀ χ : RatioOrbit → RatioOrbit,
14863      PRCCharacterNonunitIdentityRespectsComparableTrace χ →
14864        PRCCharacterNonunitIdentityBranchTransport χ
14865  nonunit_identity_comparable_trace_from_branch_transport :
14866    ∀ χ : RatioOrbit → RatioOrbit,
14867      PRCCharacterNonunitIdentityBranchTransport χ →
14868        PRCCharacterNonunitIdentityRespectsComparableTrace χ
14869  nonunit_identity_comparable_trace_iff_branch_transport :
14870    ∀ χ : RatioOrbit → RatioOrbit,
14871      PRCCharacterNonunitIdentityRespectsComparableTrace χ ↔
14872        PRCCharacterNonunitIdentityBranchTransport χ
14873  nonunit_branch_agreement_from_coherent :
14874    ∀ χ : RatioOrbit → RatioOrbit,
14875      PRCCharacterNonunitOrbitOrientationCoherent χ →
14876        PRCCharacterNonunitBranchAgreement χ
14877  nonunit_branch_agreement_from_transport_pair :
14878    ∀ χ : RatioOrbit → RatioOrbit,
14879      PRCCharacterNonunitBranchTransportPair χ →
14880        PRCCharacterNonunitBranchAgreement χ
14881  nonunit_identity_branch_transport_from_branch_agreement :
14882    ∀ χ : RatioOrbit → RatioOrbit,
14883      PRCCharacterNonunitBranchAgreement χ →
14884        PRCCharacterNonunitIdentityBranchTransport χ
14885  nonunit_reciprocal_branch_transport_from_branch_agreement :
14886    ∀ χ : RatioOrbit → RatioOrbit,
14887      PRCCharacterNonunitBranchAgreement χ →
14888        PRCCharacterNonunitReciprocalBranchTransport χ
14889  nonunit_branch_transport_pair_from_branch_agreement :
14890    ∀ χ : RatioOrbit → RatioOrbit,
14891      PRCCharacterNonunitBranchAgreement χ →
14892        PRCCharacterNonunitBranchTransportPair χ
14893  nonunit_branch_agreement_iff_transport_pair :
14894    ∀ χ : RatioOrbit → RatioOrbit,
14895      PRCCharacterNonunitBranchAgreement χ ↔
14896        PRCCharacterNonunitBranchTransportPair χ
14897  nonunit_branch_agreement_from_local_identity_branch_transport :
14898    ∀ χ : RatioOrbit → RatioOrbit,
14899      PRCCharacterNonunitOrbitLocalOrientation χ →
14900        PRCCharacterNonunitIdentityBranchTransport χ →
14901          PRCCharacterNonunitBranchAgreement χ
14902  prime_floor_successor_transport_from_nonunit_identity_comparable_trace :
14903    ∀ χ : RatioOrbit → RatioOrbit,
14904      PRCCharacterNonunitIdentityRespectsComparableTrace χ →
14905        PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ
14906  nonunit_coherent_from_local_branch_agreement :
14907    ∀ χ : RatioOrbit → RatioOrbit,
14908      PRCCharacterNonunitOrbitLocalOrientation χ →
14909        PRCCharacterNonunitBranchAgreement χ →
14910          PRCCharacterNonunitOrbitOrientationCoherent χ
14911  nonunit_branch_agreement_iff_coherent_of_local :
14912    ∀ χ : RatioOrbit → RatioOrbit,
14913      PRCCharacterNonunitOrbitLocalOrientation χ →
14914        (PRCCharacterNonunitBranchAgreement χ ↔
14915          PRCCharacterNonunitOrbitOrientationCoherent χ)
14916  nonunit_coherent_from_local_no_mixed :
14917    ∀ χ : RatioOrbit → RatioOrbit,
14918      PRCCharacterNonunitOrbitLocalOrientation χ →
14919        PRCCharacterNoMixedNonunitOrbitOrientation χ →
14920          PRCCharacterNonunitOrbitOrientationCoherent χ
14921  nonunit_coherent_from_local_identity_branch_transport :
14922    ∀ χ : RatioOrbit → RatioOrbit,
14923      PRCCharacterNonunitOrbitLocalOrientation χ →
14924        PRCCharacterNonunitIdentityBranchTransport χ →
14925          PRCCharacterNonunitOrbitOrientationCoherent χ
14926  orbit_product_no_mixed_from_nonunit_coherent :
14927    ∀ χ : RatioOrbit → RatioOrbit,
14928      PRCCharacterNonunitOrbitOrientationCoherent χ →
14929        PRCCharacterOrbitProductNoMixedOrientation χ
14930  orbit_product_identity_identity :
14931    ∀ χ : RatioOrbit → RatioOrbit,
14932      PRCRatioCharacter χ →
14933        PRCCharacterOrbitProductDisplayCompatible χ →
14934          ∀ a b p : DistinctionNat,
14935            ∀ ha : a ≠ DistinctionNat.zero, ∀ hb : b ≠ DistinctionNat.zero,
14936              ∀ hp : p ≠ DistinctionNat.zero,
14937                a * b = p →
14938                  PRCCharacterOrbitDirectionIdentity χ a ha →
14939                    PRCCharacterOrbitDirectionIdentity χ b hb →
14940                      PRCCharacterOrbitDirectionIdentity χ p hp
14941  orbit_product_reciprocal_reciprocal :
14942    ∀ χ : RatioOrbit → RatioOrbit,
14943      PRCRatioCharacter χ →
14944        PRCCharacterOrbitProductDisplayCompatible χ →
14945          ∀ a b p : DistinctionNat,
14946            ∀ ha : a ≠ DistinctionNat.zero, ∀ hb : b ≠ DistinctionNat.zero,
14947              ∀ hp : p ≠ DistinctionNat.zero,
14948                a * b = p →
14949                  PRCCharacterOrbitDirectionReciprocal χ a ha →
14950                    PRCCharacterOrbitDirectionReciprocal χ b hb →
14951                      PRCCharacterOrbitDirectionReciprocal χ p hp
14952  nonunit_all_identity_from_all_prime_identity :
14953    ∀ χ : RatioOrbit → RatioOrbit,
14954      PRCRatioCharacter χ →
14955        PRCCharacterOrbitProductDisplayCompatible χ →
14956          (∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
14957            RatioOrbit.crossEq (χ (primeDirection p hp)) (primeDirection p hp)) →
14958            ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
14959              ¬ DistinctionNat.unit p →
14960                PRCCharacterOrbitDirectionIdentity χ p hp
14961  nonunit_all_reciprocal_from_all_prime_reciprocal :
14962    ∀ χ : RatioOrbit → RatioOrbit,
14963      PRCRatioCharacter χ →
14964        PRCCharacterOrbitProductDisplayCompatible χ →
14965          (∀ p : DistinctionNat, ∀ hp : DistinctionNat.primeOrbit p,
14966            RatioOrbit.crossEq (χ (primeDirection p hp))
14967              (RatioOrbit.recip (primeDirection p hp))) →
14968            ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
14969              ¬ DistinctionNat.unit p →
14970                PRCCharacterOrbitDirectionReciprocal χ p hp
14971  mixed_identity_reflects_prime_from_prime_local :
14972    ∀ χ : RatioOrbit → RatioOrbit,
14973      PRCRatioCharacter χ →
14974        PRCCharacterOrbitProductDisplayCompatible χ →
14975          PRCCharacterPrimeLocalOrientation χ →
14976            PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness χ
14977  mixed_reciprocal_reflects_prime_from_prime_local :
14978    ∀ χ : RatioOrbit → RatioOrbit,
14979      PRCRatioCharacter χ →
14980        PRCCharacterOrbitProductDisplayCompatible χ →
14981          PRCCharacterPrimeLocalOrientation χ →
14982            PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness χ
14983  orbit_product_local_from_display_nomix :
14984    ∀ χ : RatioOrbit → RatioOrbit,
14985      PRCRatioCharacter χ →
14986        PRCCharacterOrbitProductDisplayCompatible χ →
14987          PRCCharacterOrbitProductNoMixedOrientation χ →
14988            PRCCharacterOrbitProductLocalOrientationPropagates χ
14989  nonunit_local_from_prime_product :
14990    ∀ χ : RatioOrbit → RatioOrbit,
14991      PRCCharacterPrimeLocalOrientation χ →
14992        PRCCharacterOrbitProductLocalOrientationPropagates χ →
14993          PRCCharacterNonunitOrbitLocalOrientation χ
14994  prime_floor_no_adjacent_mixed_orientation :
14995    PRCCharacterPrimeFloorNoAdjacentMixedOrientation =
14996      PRCCharacterPrimeFloorNoAdjacentMixedOrientation
14997  prime_floor_no_adjacent_from_nonunit_coherent :
14998    ∀ χ : RatioOrbit → RatioOrbit,
14999      PRCCharacterNonunitOrbitOrientationCoherent χ →
15000        PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ
15001  prime_floor_orbit_identity_extends_successor_step :
15002    PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep =
15003      PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep
15004  prime_floor_orbit_identity_contracts_successor_step :
15005    PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep =
15006      PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep
15007  prime_floor_orbit_identity_successor_transport :
15008    PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport =
15009      PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport
15010  prime_floor_extends_from_local_adjacent_nomix :
15011    ∀ χ : RatioOrbit → RatioOrbit,
15012      PRCCharacterNonunitOrbitLocalOrientation χ →
15013        PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ →
15014          PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep χ
15015  prime_floor_contracts_from_local_adjacent_nomix :
15016    ∀ χ : RatioOrbit → RatioOrbit,
15017      PRCCharacterNonunitOrbitLocalOrientation χ →
15018        PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ →
15019          PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep χ
15020  prime_floor_successor_transport_from_local_adjacent_nomix :
15021    ∀ χ : RatioOrbit → RatioOrbit,
15022      PRCCharacterNonunitOrbitLocalOrientation χ →
15023        PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ →
15024          PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ
15025  prime_floor_no_adjacent_from_successor_transport :
15026    ∀ χ : RatioOrbit → RatioOrbit,
15027      PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ →
15028        PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ
15029  prime_floor_successor_transport_iff_local_adjacent_nomix :
15030    ∀ χ : RatioOrbit → RatioOrbit,
15031      PRCCharacterNonunitOrbitLocalOrientation χ →
15032        (PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ ↔
15033          PRCCharacterPrimeFloorNoAdjacentMixedOrientation χ)
15034  prime_identity_comparable_from_prime_floor_successor_transport :
15035    ∀ χ : RatioOrbit → RatioOrbit,
15036      PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ →
15037        PRCCharacterPrimeIdentityRespectsComparableTrace χ
15038  nonunit_identity_comparable_from_prime_floor_successor_transport :
15039    ∀ χ : RatioOrbit → RatioOrbit,
15040      PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ →
15041        PRCCharacterNonunitIdentityRespectsComparableTrace χ
15042  nonunit_coherent_from_local_prime_floor_successor_transport :
15043    ∀ χ : RatioOrbit → RatioOrbit,
15044      PRCCharacterNonunitOrbitLocalOrientation χ →
15045        PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ →
15046          PRCCharacterNonunitOrbitOrientationCoherent χ
15047  prime_identity_witness_globalizes_nonunit_from_successor_transport :
15048    ∀ χ : RatioOrbit → RatioOrbit,
15049      PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ →
15050        PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ
15051  prime_floor_successor_transport_from_prime_identity_witness_globalizes :
15052    ∀ χ : RatioOrbit → RatioOrbit,
15053      PRCRatioCharacter χ →
15054        PRCCharacterOrbitProductDisplayCompatible χ →
15055          PRCCharacterPrimeLocalOrientation χ →
15056            PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ →
15057              PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport χ
15058  prime_identity_witness_globalizes_nonunit_from_no_mixed_prime_witnesses :
15059    ∀ χ : RatioOrbit → RatioOrbit,
15060      PRCRatioCharacter χ →
15061        PRCCharacterOrbitProductDisplayCompatible χ →
15062          PRCCharacterPrimeLocalOrientation χ →
15063            PRCCharacterNoMixedPrimeWitnesses χ →
15064              PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ
15065  no_mixed_prime_witnesses_from_prime_identity_witness_globalizes :
15066    ∀ χ : RatioOrbit → RatioOrbit,
15067      PRCCharacterPrimeIdentityWitnessGlobalizesNonunit χ →
15068        PRCCharacterNoMixedPrimeWitnesses χ
15069  orbit_identity_extends_from_additive_compat :
15070    ∀ χ : RatioOrbit → RatioOrbit,
15071      PRCCharacterOrbitSuccessorAdditiveCompatible χ →
15072        PRCCharacterOrbitIdentityExtendsSuccessorStep χ
15073  orbit_identity_contracts_from_additive_compat :
15074    ∀ χ : RatioOrbit → RatioOrbit,
15075      PRCCharacterOrbitSuccessorAdditiveCompatible χ →
15076        PRCCharacterOrbitIdentityContractsSuccessorStep χ
15077  orbit_identity_successor_transport_from_additive_compat :
15078    ∀ χ : RatioOrbit → RatioOrbit,
15079      PRCCharacterOrbitSuccessorAdditiveCompatible χ →
15080        PRCCharacterOrbitIdentitySuccessorTransport χ
15081  orbit_identity_respects_successor_step_from_transport :
15082    ∀ χ : RatioOrbit → RatioOrbit,
15083      PRCCharacterOrbitIdentitySuccessorTransport χ →
15084        PRCCharacterOrbitIdentityRespectsSuccessorStep χ
15085  orbit_identity_one_of_identity :
15086    ∀ χ : RatioOrbit → RatioOrbit,
15087      PRCCharacterOrbitIdentityRespectsSuccessorStep χ →
15088        ∀ p : DistinctionNat, ∀ hp : p ≠ DistinctionNat.zero,
15089          PRCCharacterOrbitDirectionIdentity χ p hp →
15090            PRCCharacterOrbitDirectionIdentity χ
15091              DistinctionNat.one DistinctionNat.one_ne_zero
15092  orbit_identity_of_one :
15093    ∀ χ : RatioOrbit → RatioOrbit,
15094      PRCCharacterOrbitIdentityRespectsSuccessorStep χ →
15095        ∀ r : DistinctionNat, ∀ hr : r ≠ DistinctionNat.zero,
15096          PRCCharacterOrbitDirectionIdentity χ
15097            DistinctionNat.one DistinctionNat.one_ne_zero →
15098              PRCCharacterOrbitDirectionIdentity χ r hr
15099  prime_identity_comparable_from_successor_step :
15100    ∀ χ : RatioOrbit → RatioOrbit,
15101      PRCCharacterOrbitIdentityRespectsSuccessorStep χ →
15102        PRCCharacterPrimeIdentityRespectsComparableTrace χ
15103  prime_identity_common_trace_from_comparable_trace :
15104    ∀ χ : RatioOrbit → RatioOrbit,
15105      PRCCharacterPrimeIdentityRespectsComparableTrace χ →
15106        PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ
15107  prime_identity_canonical_add_trace_from_common_trace :
15108    ∀ χ : RatioOrbit → RatioOrbit,
15109      PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ →
15110        PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ
15111  prime_identity_common_trace_from_canonical_add_trace :
15112    ∀ χ : RatioOrbit → RatioOrbit,
15113      PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ →
15114        PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ
15115  prime_identity_canonical_add_trace_iff_common_trace :
15116    ∀ χ : RatioOrbit → RatioOrbit,
15117      PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ ↔
15118        PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ
15119  prime_identity_canonical_add_trace_from_trace_connected :
15120    ∀ χ : RatioOrbit → RatioOrbit,
15121      PRCCharacterPrimeIdentityRespectsTraceConnected χ →
15122        PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ
15123  prime_identity_trace_connected_from_canonical_add_trace :
15124    ∀ χ : RatioOrbit → RatioOrbit,
15125      PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ →
15126        PRCCharacterPrimeIdentityRespectsTraceConnected χ
15127  prime_identity_canonical_add_trace_iff_trace_connected :
15128    ∀ χ : RatioOrbit → RatioOrbit,
15129      PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ ↔
15130        PRCCharacterPrimeIdentityRespectsTraceConnected χ
15131  prime_identity_branch_uniform_from_trace_coherence :
15132    ∀ χ : RatioOrbit → RatioOrbit,
15133      PRCCharacterPrimeIdentityTraceCoherent χ →
15134        PRCCharacterPrimeIdentityBranchUniform χ
15135  prime_identity_trace_coherence_from_branch_uniform :
15136    ∀ χ : RatioOrbit → RatioOrbit,
15137      PRCCharacterPrimeIdentityBranchUniform χ →
15138        PRCCharacterPrimeIdentityTraceCoherent χ
15139  prime_identity_branch_uniform_iff_trace_coherence :
15140    ∀ χ : RatioOrbit → RatioOrbit,
15141      PRCCharacterPrimeIdentityBranchUniform χ ↔
15142        PRCCharacterPrimeIdentityTraceCoherent χ
15143  prime_identity_canonical_add_trace_from_branch_uniform :
15144    ∀ χ : RatioOrbit → RatioOrbit,
15145      PRCCharacterPrimeIdentityBranchUniform χ →
15146        PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ
15147  prime_identity_branch_uniform_from_canonical_add_trace :
15148    ∀ χ : RatioOrbit → RatioOrbit,
15149      PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ →
15150        PRCCharacterPrimeIdentityBranchUniform χ
15151  prime_identity_branch_uniform_iff_canonical_add_trace :
15152    ∀ χ : RatioOrbit → RatioOrbit,
15153      PRCCharacterPrimeIdentityBranchUniform χ ↔
15154        PRCCharacterPrimeIdentityRespectsCanonicalAddTrace χ
15155  prime_identity_trace_connected_from_common_trace :
15156    ∀ χ : RatioOrbit → RatioOrbit,
15157      PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ →
15158        PRCCharacterPrimeIdentityRespectsTraceConnected χ
15159  prime_identity_comparable_trace_from_trace_coherence :
15160    ∀ χ : RatioOrbit → RatioOrbit,
15161      PRCCharacterPrimeIdentityTraceCoherent χ →
15162        PRCCharacterPrimeIdentityRespectsComparableTrace χ
15163  prime_identity_trace_coherence_from_comparable_trace :
15164    ∀ χ : RatioOrbit → RatioOrbit,
15165      PRCCharacterPrimeIdentityRespectsComparableTrace χ →
15166        PRCCharacterPrimeIdentityTraceCoherent χ
15167  prime_identity_comparable_trace_iff_trace_coherence :
15168    ∀ χ : RatioOrbit → RatioOrbit,
15169      PRCCharacterPrimeIdentityRespectsComparableTrace χ ↔
15170        PRCCharacterPrimeIdentityTraceCoherent χ
15171  prime_identity_common_trace_from_trace_coherence :
15172    ∀ χ : RatioOrbit → RatioOrbit,
15173      PRCCharacterPrimeIdentityTraceCoherent χ →
15174        PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ
15175  prime_identity_trace_coherence_from_common_trace :
15176    ∀ χ : RatioOrbit → RatioOrbit,
15177      PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ →
15178        PRCCharacterPrimeIdentityTraceCoherent χ
15179  prime_identity_common_trace_iff_trace_coherence :
15180    ∀ χ : RatioOrbit → RatioOrbit,
15181      PRCCharacterPrimeIdentityRespectsCommonTraceExtension χ ↔
15182        PRCCharacterPrimeIdentityTraceCoherent χ
15183  prime_identity_trace_connected_from_trace_coherence :
15184    ∀ χ : RatioOrbit → RatioOrbit,
15185      PRCCharacterPrimeIdentityTraceCoherent χ →
15186        PRCCharacterPrimeIdentityRespectsTraceConnected χ
15187  prime_identity_trace_coherence_from_trace_connected :
15188    ∀ χ : RatioOrbit → RatioOrbit,
15189      PRCCharacterPrimeIdentityRespectsTraceConnected χ →
15190        PRCCharacterPrimeIdentityTraceCoherent χ
15191  prime_identity_trace_connected_iff_trace_coherence :
15192    ∀ χ : RatioOrbit → RatioOrbit,
15193      PRCCharacterPrimeIdentityRespectsTraceConnected χ ↔
15194        PRCCharacterPrimeIdentityTraceCoherent χ
15195  prime_to_local_orientation_target :
15196    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget
15197  prime_to_local_orientation_proved :
15198    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget
15199  prime_no_mixed_orientation_target_refuted :
15200    ¬ PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15201  prime_identity_trace_coherence_target_refuted :
15202    ¬ PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15203  prime_identity_branch_uniformity_target_refuted :
15204    ¬ PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget
15205  prime_identity_trace_transport_target_refuted :
15206    ¬ PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15207  prime_identity_common_trace_extension_target_refuted :
15208    ¬ PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget
15209  prime_identity_canonical_add_trace_target_refuted :
15210    ¬ PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget
15211  prime_identity_comparable_trace_target_refuted :
15212    ¬ PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget
15213  orbit_successor_identity_target_refuted :
15214    ¬ PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget
15215  orbit_successor_transport_target_refuted :
15216    ¬ PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget
15217  orbit_successor_additive_compat_target_refuted :
15218    ¬ PRCPrimeCalibrationForcesOrbitSuccessorAdditiveCompatibilityTarget
15219  prime_floor_successor_transport_target_refuted :
15220    ¬ PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15221  prime_identity_witness_globalizes_nonunit_target_refuted :
15222    ¬ PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget
15223  prime_floor_identity_extends_successor_step_target_refuted :
15224    ¬ PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget
15225  prime_floor_identity_contracts_successor_step_target_refuted :
15226    ¬ PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget
15227  prime_floor_identity_successor_step_pair_target_refuted :
15228    ¬ PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15229  prime_floor_nonunit_local_orientation_target_refuted :
15230    ¬ PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget
15231  prime_floor_nonunit_product_local_orientation_target_refuted :
15232    ¬ PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget
15233  prime_floor_product_display_compatibility_target :
15234    PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget
15235  prime_floor_character_crossEq_respect_target :
15236    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget
15237  prime_floor_character_crossEq_from_normalizeRatio_canonical :
15238    PRCNormalizeRatioCanonicalTarget →
15239      PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget
15240  prime_floor_character_crossEq_from_reduced_signCanonical_unique :
15241    PRCReducedSignCanonicalRatioUniqueTarget →
15242      PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget
15243  prime_floor_character_crossEq_respect_proved :
15244    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget
15245  prime_floor_product_display_from_crossEq_respect :
15246    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget →
15247      PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget
15248  prime_floor_product_display_compatibility_proved :
15249    PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget
15250  prime_floor_product_no_mixed_orientation_target_refuted :
15251    ¬ PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget
15252  prime_floor_nonunit_orbit_orientation_coherent_target_refuted :
15253    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15254  prime_floor_no_mixed_nonunit_orbit_orientation_target_refuted :
15255    ¬ PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget
15256  prime_floor_nonunit_identity_branch_transport_target_refuted :
15257    ¬ PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
15258  prime_floor_nonunit_identity_witness_globalizes_target_refuted :
15259    ¬ PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget
15260  prime_floor_nonunit_identity_witness_excludes_reciprocal_target_refuted :
15261    ¬ PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget
15262  prime_floor_nonunit_no_mixed_witnesses_target_refuted :
15263    ¬ PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget
15264  prime_floor_no_mixed_prime_witnesses_target_refuted :
15265    ¬ PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15266  prime_floor_prime_identity_witness_excludes_reciprocal_target_refuted :
15267    ¬ PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget
15268  prime_floor_prime_reciprocal_witness_globalizes_target_refuted :
15269    ¬ PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget
15270  prime_floor_prime_reciprocal_forces_two_prime_reciprocal_target_refuted :
15271    ¬ PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget
15272  prime_floor_prime_reciprocal_witness_globalizes_split_target_refuted :
15273    ¬ PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget
15274  prime_floor_prime_witnesses_control_nonunit_target :
15275    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget
15276  prime_floor_mixed_nonunit_witnesses_reflect_prime_target :
15277    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget
15278  prime_floor_mixed_nonunit_identity_witness_reflects_prime_target :
15279    PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget
15280  prime_floor_mixed_nonunit_reciprocal_witness_reflects_prime_target :
15281    PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget
15282  prime_floor_mixed_nonunit_witnesses_reflect_prime_split_target :
15283    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget
15284  prime_floor_nonunit_no_mixed_witnesses_split_target_refuted :
15285    ¬ PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget
15286  prime_floor_nonunit_identity_witness_local_exclusion_target_refuted :
15287    ¬ PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget
15288  prime_floor_nonunit_identity_comparable_trace_target_refuted :
15289    ¬ PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15290  prime_floor_nonunit_orbit_orientation_local_no_mixed_target_refuted :
15291    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget
15292  prime_floor_nonunit_orbit_orientation_local_product_no_mixed_target_refuted :
15293    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget
15294  prime_floor_no_mixed_nonunit_from_coherent :
15295    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15296      PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget
15297  prime_floor_no_mixed_nonunit_from_product_no_mixed :
15298    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget →
15299      PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget
15300  prime_floor_product_no_mixed_from_no_mixed_nonunit :
15301    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget →
15302      PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget
15303  prime_floor_product_no_mixed_iff_no_mixed_nonunit :
15304    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
15305      PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget
15306  prime_floor_product_no_mixed_from_identity_branch_transport :
15307    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget →
15308      PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget
15309  prime_floor_nonunit_identity_branch_transport_from_comparable_trace :
15310    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget →
15311      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
15312  prime_floor_nonunit_identity_branch_transport_from_coherent :
15313    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15314      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
15315  prime_floor_nonunit_local_no_mixed_from_local_product_no_mixed :
15316    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget →
15317      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget
15318  prime_floor_nonunit_coherent_from_local_product_no_mixed :
15319    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget →
15320      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15321  prime_floor_nonunit_coherent_from_product_no_mixed :
15322    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget →
15323      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15324  prime_floor_product_no_mixed_iff_nonunit_coherent :
15325    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
15326      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15327  prime_floor_nonunit_identity_branch_transport_from_product_no_mixed :
15328    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget →
15329      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
15330  prime_floor_product_no_mixed_iff_identity_branch_transport :
15331    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
15332      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
15333  prime_floor_identity_witness_globalizes_from_identity_branch_transport :
15334    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget →
15335      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget
15336  prime_floor_identity_branch_transport_from_identity_witness_globalizes :
15337    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget →
15338      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
15339  prime_floor_identity_witness_globalizes_iff_identity_branch_transport :
15340    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget ↔
15341      PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget
15342  prime_floor_identity_witness_globalizes_from_product_no_mixed :
15343    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget →
15344      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget
15345  prime_floor_product_no_mixed_from_identity_witness_globalizes :
15346    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget →
15347      PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget
15348  prime_floor_product_no_mixed_iff_identity_witness_globalizes :
15349    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
15350      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget
15351  prime_floor_nonunit_coherent_from_identity_witness_globalizes :
15352    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget →
15353      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15354  prime_floor_identity_witness_globalizes_from_nonunit_coherent :
15355    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15356      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget
15357  prime_floor_nonunit_coherent_iff_identity_witness_globalizes :
15358    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
15359      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget
15360  prime_floor_identity_witness_excludes_reciprocal_from_no_mixed :
15361    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget →
15362      PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget
15363  prime_floor_no_mixed_from_identity_witness_excludes_reciprocal :
15364    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget →
15365      PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget
15366  prime_floor_identity_witness_excludes_reciprocal_iff_no_mixed :
15367    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget ↔
15368      PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget
15369  prime_floor_no_mixed_witnesses_from_identity_witness_excludes_reciprocal :
15370    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget →
15371      PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget
15372  prime_floor_identity_witness_excludes_reciprocal_from_no_mixed_witnesses :
15373    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget →
15374      PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget
15375  prime_floor_no_mixed_witnesses_iff_identity_witness_excludes_reciprocal :
15376    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget ↔
15377      PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget
15378  prime_floor_no_mixed_prime_witnesses_from_no_mixed_prime_orientation :
15379    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget →
15380      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15381  prime_floor_no_mixed_prime_orientation_from_no_mixed_prime_witnesses :
15382    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget →
15383      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15384  prime_floor_no_mixed_prime_witnesses_iff_no_mixed_prime_orientation :
15385    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
15386      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15387  prime_floor_prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_orientation :
15388    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget →
15389      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget
15390  prime_floor_no_mixed_prime_orientation_from_identity_witness_excludes_reciprocal :
15391    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget →
15392      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15393  prime_floor_prime_identity_witness_excludes_reciprocal_iff_no_mixed_prime_orientation :
15394    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget ↔
15395      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15396  prime_floor_no_mixed_prime_witnesses_from_identity_witness_excludes_reciprocal :
15397    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget →
15398      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15399  prime_floor_prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_witnesses :
15400    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget →
15401      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget
15402  prime_floor_no_mixed_prime_witnesses_iff_identity_witness_excludes_reciprocal :
15403    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
15404      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget
15405  prime_floor_prime_reciprocal_witness_globalizes_from_no_mixed_prime_orientation :
15406    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget →
15407      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget
15408  prime_floor_no_mixed_prime_orientation_from_reciprocal_witness_globalizes :
15409    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget →
15410      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15411  prime_floor_prime_reciprocal_witness_globalizes_iff_no_mixed_prime_orientation :
15412    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget ↔
15413      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15414  prime_floor_prime_reciprocal_witness_globalizes_iff_identity_witness_excludes_reciprocal :
15415    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget ↔
15416      PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget
15417  prime_floor_prime_reciprocal_forces_two_from_reciprocal_witness_globalizes :
15418    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget →
15419      PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget
15420  prime_floor_two_prime_reciprocal_forces_from_reciprocal_witness_globalizes :
15421    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget →
15422      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15423  prime_floor_prime_reciprocal_witness_globalizes_split_from_reciprocal_witness_globalizes :
15424    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget →
15425      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget
15426  prime_floor_prime_reciprocal_witness_globalizes_from_split :
15427    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget →
15428      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget
15429  prime_floor_prime_reciprocal_witness_globalizes_iff_split :
15430    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget ↔
15431      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget
15432  prime_floor_prime_reciprocal_forces_two_from_identity_forces_two :
15433    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget →
15434      PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget
15435  prime_floor_prime_identity_forces_two_from_reciprocal_forces_two :
15436    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget →
15437      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15438  prime_floor_prime_reciprocal_forces_two_iff_identity_forces_two :
15439    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget ↔
15440      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15441  prime_floor_two_prime_reciprocal_excludes_identity_witness_from_excludes :
15442    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget →
15443      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget
15444  prime_floor_two_prime_reciprocal_excludes_from_identity_witness_excludes :
15445    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget →
15446      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget
15447  prime_floor_two_prime_reciprocal_excludes_iff_identity_witness_excludes :
15448    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget ↔
15449      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget
15450  prime_floor_prime_identity_forces_two_from_two_prime_reciprocal_excludes_identity_witness :
15451    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget →
15452      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15453  prime_floor_two_prime_reciprocal_excludes_identity_witness_from_identity_forces_two :
15454    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget →
15455      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget
15456  prime_floor_prime_identity_forces_two_iff_two_prime_reciprocal_excludes_identity_witness :
15457    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
15458      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget
15459  prime_floor_two_prime_reciprocal_excludes_identity_witness_from_no_mixed_character :
15460    ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter →
15461      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget
15462  prime_floor_no_mixed_character_from_two_prime_reciprocal_excludes_identity_witness :
15463    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget →
15464      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter
15465  prime_floor_two_prime_reciprocal_excludes_identity_witness_iff_no_mixed_character :
15466    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget ↔
15467      ¬ PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter
15468  prime_floor_prime_reciprocal_witness_globalizes_split_from_two_prime_reciprocal_forces :
15469    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget →
15470      PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget
15471  prime_floor_two_prime_reciprocal_forces_from_split :
15472    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget →
15473      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15474  prime_floor_prime_reciprocal_witness_globalizes_split_iff_two_prime_reciprocal_forces :
15475    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget ↔
15476      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15477  prime_identity_trace_coherence_from_no_mixed_prime_orientation :
15478    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget →
15479      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15480  prime_no_mixed_prime_orientation_iff_trace_coherence :
15481    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget ↔
15482      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15483  prime_no_mixed_prime_orientation_from_branch_uniformity :
15484    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget →
15485      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15486  prime_identity_branch_uniformity_from_no_mixed_prime_orientation :
15487    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget →
15488      PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget
15489  prime_identity_branch_uniformity_iff_no_mixed_prime_orientation :
15490    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
15491      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15492  prime_no_mixed_prime_witnesses_iff_trace_coherence :
15493    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
15494      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15495  coherent_prime_orientation_from_no_mixed_prime_witnesses :
15496    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget →
15497      PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget
15498  no_mixed_prime_witnesses_from_coherent_prime_orientation :
15499    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget →
15500      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15501  no_mixed_prime_witnesses_iff_coherent_prime_orientation :
15502    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget ↔
15503      PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget
15504  two_prime_branch_controls_target_refuted :
15505    ¬ PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget
15506  two_prime_branch_controls_from_coherent_prime_orientation :
15507    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget →
15508      PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget
15509  coherent_prime_orientation_from_two_prime_branch_controls :
15510    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget →
15511      PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget
15512  coherent_prime_orientation_iff_two_prime_branch_controls :
15513    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget ↔
15514      PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget
15515  prime_identity_iff_two_prime_identity_target_refuted :
15516    ¬ PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget
15517  prime_identity_forces_two_prime_identity_target_refuted :
15518    ¬ PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15519  two_prime_reciprocal_excludes_prime_identity_target_refuted :
15520    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget
15521  two_prime_reciprocal_excludes_prime_identity_witness_target_refuted :
15522    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget
15523  two_prime_reciprocal_identity_prime_mixed_character :
15524    PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter =
15525      PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter
15526  two_prime_reciprocal_forces_prime_reciprocal_target_refuted :
15527    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15528  two_prime_reciprocal_trace_connected_target_refuted :
15529    ¬ PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget
15530  two_prime_identity_trace_connected_target_refuted :
15531    ¬ PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget
15532  prime_identity_iff_two_from_two_prime_branch_controls :
15533    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget →
15534      PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget
15535  two_prime_branch_controls_from_prime_identity_iff_two :
15536    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget →
15537      PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget
15538  two_prime_branch_controls_iff_prime_identity_iff_two :
15539    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget ↔
15540      PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget
15541  prime_identity_forces_two_from_identity_iff_two_target :
15542    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget →
15543      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15544  prime_identity_iff_two_from_identity_forces_two_target :
15545    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget →
15546      PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget
15547  prime_identity_iff_two_iff_identity_forces_two :
15548    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget ↔
15549      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15550  two_prime_reciprocal_excludes_from_identity_forces_two_target :
15551    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget →
15552      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget
15553  prime_identity_forces_two_from_two_prime_reciprocal_excludes_target :
15554    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget →
15555      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15556  prime_identity_forces_two_target_iff_two_prime_reciprocal_excludes :
15557    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget ↔
15558      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget
15559  two_prime_reciprocal_excludes_from_two_prime_reciprocal_forces_target :
15560    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget →
15561      PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget
15562  two_prime_reciprocal_forces_from_two_prime_reciprocal_excludes_target :
15563    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget →
15564      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15565  two_prime_reciprocal_excludes_target_iff_two_prime_reciprocal_forces :
15566    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget ↔
15567      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15568  two_prime_reciprocal_forces_from_identity_forces_two_target :
15569    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget →
15570      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15571  prime_identity_forces_two_from_two_prime_reciprocal_forces_target :
15572    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget →
15573      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15574  two_prime_reciprocal_forces_target_iff_identity_forces_two :
15575    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget ↔
15576      PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget
15577  two_prime_reciprocal_forces_from_trace_connected_target :
15578    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget →
15579      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15580  two_prime_reciprocal_trace_connected_from_forces_target :
15581    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget →
15582      PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget
15583  two_prime_reciprocal_trace_connected_target_iff_forces :
15584    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget ↔
15585      PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget
15586  two_prime_reciprocal_trace_connected_from_identity_trace_connected_target :
15587    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget →
15588      PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget
15589  two_prime_identity_trace_connected_from_reciprocal_trace_connected_target :
15590    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget →
15591      PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget
15592  two_prime_reciprocal_trace_connected_target_iff_identity_trace_connected :
15593    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget ↔
15594      PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget
15595  two_prime_identity_trace_connected_from_prime_identity_trace_transport_target :
15596    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget →
15597      PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget
15598  prime_identity_trace_transport_from_two_prime_identity_trace_connected_target :
15599    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget →
15600      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15601  two_prime_identity_trace_connected_target_iff_prime_identity_trace_transport :
15602    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget ↔
15603      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15604  prime_floor_no_mixed_prime_witnesses_from_nonunit_no_mixed_witnesses :
15605    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget →
15606      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15607  prime_floor_nonunit_no_mixed_witnesses_split_from_nonunit_no_mixed_witnesses :
15608    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget →
15609      PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget
15610  prime_floor_nonunit_no_mixed_witnesses_from_split :
15611    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget →
15612      PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget
15613  prime_floor_nonunit_no_mixed_witnesses_iff_split :
15614    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget ↔
15615      PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget
15616  prime_floor_prime_witnesses_control_from_mixed_reflects :
15617    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget →
15618      PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget
15619  prime_floor_mixed_reflects_from_prime_witnesses_control :
15620    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget →
15621      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget
15622  prime_floor_prime_witnesses_control_iff_mixed_reflects :
15623    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget ↔
15624      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget
15625  prime_floor_mixed_reflection_split_from_reflects :
15626    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget →
15627      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget
15628  prime_floor_mixed_reflection_from_split :
15629    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget →
15630      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget
15631  prime_floor_mixed_reflection_iff_split :
15632    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget ↔
15633      PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget
15634  prime_floor_mixed_identity_reflects_prime_proved :
15635    PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget
15636  prime_floor_mixed_reciprocal_reflects_prime_proved :
15637    PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget
15638  prime_floor_mixed_reflection_split_proved :
15639    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget
15640  prime_floor_mixed_reflection_proved :
15641    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget
15642  prime_floor_prime_witnesses_control_nonunit_proved :
15643    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget
15644  prime_floor_nonunit_no_mixed_split_from_no_mixed_prime_witnesses :
15645    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget →
15646      PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget
15647  prime_floor_nonunit_no_mixed_from_no_mixed_prime_witnesses :
15648    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget →
15649      PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget
15650  prime_floor_nonunit_no_mixed_iff_no_mixed_prime_witnesses :
15651    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget ↔
15652      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15653  prime_floor_identity_witness_globalizes_from_local_exclusion :
15654    PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget →
15655      PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget
15656  prime_floor_identity_witness_local_exclusion_from_globalizes :
15657    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget →
15658      PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget
15659  prime_floor_identity_witness_globalizes_iff_local_exclusion :
15660    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget ↔
15661      PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget
15662  prime_floor_nonunit_identity_comparable_trace_from_branch_transport :
15663    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget →
15664      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15665  prime_floor_nonunit_identity_comparable_trace_from_product_no_mixed :
15666    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget →
15667      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15668  prime_floor_nonunit_identity_branch_transport_iff_comparable_trace :
15669    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget ↔
15670      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15671  prime_floor_product_no_mixed_iff_identity_comparable_trace :
15672    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
15673      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15674  prime_floor_product_local_orientation_from_identity_comparable_trace :
15675    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget →
15676      PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget
15677  prime_floor_nonunit_local_orientation_from_identity_comparable_trace :
15678    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget →
15679      PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget
15680  prime_floor_nonunit_local_comparable_trace_from_identity_comparable_trace :
15681    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget →
15682      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget
15683  prime_floor_nonunit_identity_comparable_trace_from_local_comparable_trace :
15684    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget →
15685      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15686  prime_floor_nonunit_local_comparable_trace_iff_identity_comparable_trace :
15687    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget ↔
15688      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15689  prime_floor_nonunit_local_no_mixed_from_coherent :
15690    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15691      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget
15692  prime_floor_nonunit_coherent_from_local_no_mixed :
15693    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget →
15694      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15695  prime_floor_nonunit_orbit_orientation_coherent_iff_local_no_mixed :
15696    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
15697      PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget
15698  prime_floor_nonunit_orbit_orientation_coherent_sharpened_target_refuted :
15699    ¬ PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget
15700  prime_floor_nonunit_orbit_orientation_coherent_from_local_successor_transport :
15701    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget →
15702      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15703  prime_floor_product_no_mixed_from_nonunit_coherent :
15704    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15705      PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget
15706  prime_floor_nonunit_local_from_nonunit_coherent :
15707    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15708      PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget
15709  prime_floor_no_adjacent_mixed_from_nonunit_coherent :
15710    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15711      PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget
15712  prime_floor_no_adjacent_mixed_from_successor_transport :
15713    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget →
15714      PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget
15715  prime_floor_successor_transport_from_nonunit_coherent :
15716    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15717      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15718  prime_floor_nonunit_identity_comparable_trace_from_successor_transport :
15719    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget →
15720      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15721  prime_floor_nonunit_orbit_orientation_sharpened_from_nonunit_coherent :
15722    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15723      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget
15724  prime_floor_nonunit_orbit_orientation_coherent_iff_sharpened :
15725    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
15726      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget
15727  prime_floor_successor_transport_from_identity_comparable_trace :
15728    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget →
15729      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15730  prime_floor_identity_extends_successor_step_from_successor_transport :
15731    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget →
15732      PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget
15733  prime_floor_identity_contracts_successor_step_from_successor_transport :
15734    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget →
15735      PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget
15736  prime_floor_identity_successor_step_pair_from_successor_transport :
15737    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget →
15738      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15739  prime_floor_successor_transport_from_successor_step_pair :
15740    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget →
15741      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15742  prime_floor_successor_transport_iff_successor_step_pair :
15743    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget ↔
15744      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15745  target_prime_identity_witness_globalizes_nonunit_from_successor_transport :
15746    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget →
15747      PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget
15748  target_prime_floor_successor_transport_from_prime_identity_witness_globalizes :
15749    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget →
15750      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15751  target_prime_floor_successor_transport_iff_prime_identity_witness_globalizes :
15752    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget ↔
15753      PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget
15754  target_prime_identity_witness_globalizes_nonunit_from_no_mixed_prime_witnesses :
15755    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget →
15756      PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget
15757  target_no_mixed_prime_witnesses_from_prime_identity_witness_globalizes :
15758    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget →
15759      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15760  target_prime_identity_witness_globalizes_nonunit_iff_no_mixed_prime_witnesses :
15761    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget ↔
15762      PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget
15763  prime_floor_identity_successor_step_pair_from_identity_comparable_trace :
15764    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget →
15765      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15766  prime_floor_nonunit_identity_comparable_trace_from_successor_step_pair :
15767    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget →
15768      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15769  prime_floor_nonunit_identity_comparable_trace_iff_successor_step_pair :
15770    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget ↔
15771      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15772  prime_floor_product_no_mixed_from_successor_step_pair :
15773    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget →
15774      PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget
15775  prime_floor_identity_successor_step_pair_from_product_no_mixed :
15776    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget →
15777      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15778  prime_floor_product_no_mixed_iff_successor_step_pair :
15779    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget ↔
15780      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15781  prime_floor_nonunit_coherent_from_successor_step_pair :
15782    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget →
15783      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15784  prime_floor_identity_successor_step_pair_from_nonunit_coherent :
15785    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15786      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15787  prime_floor_nonunit_coherent_iff_successor_step_pair :
15788    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget ↔
15789      PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget
15790  prime_floor_nonunit_identity_comparable_trace_iff_successor_transport :
15791    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget ↔
15792      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15793  prime_floor_successor_transport_local_adjacent_target_refuted :
15794    ¬ PRCPrimeFloorSuccessorTransportLocalAdjacentTarget
15795  prime_floor_successor_transport_from_local_adjacent_target :
15796    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget →
15797      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15798  prime_floor_local_adjacent_from_local_successor_transport :
15799    (PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
15800      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget) →
15801        PRCPrimeFloorSuccessorTransportLocalAdjacentTarget
15802  prime_floor_local_adjacent_iff_local_successor_transport :
15803    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget ↔
15804      (PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget ∧
15805        PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget)
15806  prime_floor_local_adjacent_from_nonunit_coherent :
15807    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget →
15808      PRCPrimeFloorSuccessorTransportLocalAdjacentTarget
15809  prime_floor_nonunit_coherent_from_local_adjacent :
15810    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget →
15811      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15812  prime_floor_local_adjacent_iff_nonunit_coherent :
15813    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget ↔
15814      PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget
15815  prime_floor_product_local_orientation_sharpened_target_refuted :
15816    ¬ PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget
15817  prime_floor_product_local_orientation_from_display_nomix :
15818    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget →
15819      PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget
15820  prime_floor_nonunit_local_orientation_from_product_local :
15821    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget →
15822      PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget
15823  prime_floor_no_adjacent_mixed_orientation_target_refuted :
15824    ¬ PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget
15825  prime_floor_successor_transport_sharpened_target_refuted :
15826    ¬ PRCPrimeFloorSuccessorTransportSharpenedTarget
15827  prime_floor_successor_transport_target_from_local_adjacent_nomix :
15828    PRCPrimeFloorSuccessorTransportSharpenedTarget →
15829      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15830  orbit_successor_transport_target_from_additive_compat :
15831    PRCPrimeCalibrationForcesOrbitSuccessorAdditiveCompatibilityTarget →
15832      PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget
15833  prime_identity_comparable_trace_from_prime_floor_successor_transport :
15834    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget →
15835      PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget
15836  orbit_successor_identity_target_from_transport :
15837    PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget →
15838      PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget
15839  prime_identity_comparable_trace_from_successor_step :
15840    PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget →
15841      PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget
15842  target_prime_identity_comparable_trace_from_nonunit_identity_comparable :
15843    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget →
15844      PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget
15845  target_nonunit_identity_comparable_trace_from_prime_identity_comparable :
15846    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget →
15847      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15848  target_prime_identity_comparable_trace_iff_nonunit_identity_comparable :
15849    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget ↔
15850      PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget
15851  target_prime_identity_comparable_trace_iff_prime_floor_successor_transport :
15852    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget ↔
15853      PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget
15854  prime_identity_common_trace_extension_from_comparable_trace :
15855    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget →
15856      PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget
15857  prime_identity_canonical_add_trace_from_common_trace_target :
15858    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget →
15859      PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget
15860  prime_identity_common_trace_from_canonical_add_trace_target :
15861    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget →
15862      PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget
15863  prime_identity_canonical_add_trace_target_iff_common_trace :
15864    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget ↔
15865      PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget
15866  prime_identity_canonical_add_trace_from_trace_transport_target :
15867    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget →
15868      PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget
15869  prime_identity_trace_transport_from_canonical_add_trace_target :
15870    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget →
15871      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15872  prime_identity_canonical_add_trace_target_iff_trace_transport :
15873    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget ↔
15874      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15875  prime_identity_branch_uniformity_from_trace_coherence_target :
15876    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget →
15877      PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget
15878  prime_identity_trace_coherence_from_branch_uniformity_target :
15879    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget →
15880      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15881  prime_identity_branch_uniformity_target_iff_trace_coherence :
15882    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
15883      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15884  prime_identity_canonical_add_trace_from_branch_uniformity_target :
15885    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget →
15886      PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget
15887  prime_identity_branch_uniformity_from_canonical_add_trace_target :
15888    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget →
15889      PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget
15890  prime_identity_branch_uniformity_target_iff_canonical_add_trace :
15891    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget ↔
15892      PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget
15893  prime_identity_trace_transport_from_common_trace :
15894    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget →
15895      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15896  prime_identity_trace_coherence_from_transport :
15897    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget →
15898      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15899  target_prime_identity_comparable_trace_from_trace_coherence :
15900    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget →
15901      PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget
15902  target_prime_identity_trace_coherence_from_comparable_trace :
15903    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget →
15904      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15905  target_prime_identity_trace_coherence_iff_comparable_trace :
15906    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget ↔
15907      PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget
15908  target_prime_identity_common_trace_from_trace_coherence :
15909    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget →
15910      PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget
15911  target_prime_identity_trace_coherence_from_common_trace :
15912    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget →
15913      PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget
15914  target_prime_identity_trace_coherence_iff_common_trace :
15915    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget ↔
15916      PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget
15917  target_prime_identity_trace_transport_from_trace_coherence :
15918    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget →
15919      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15920  target_prime_identity_trace_coherence_iff_trace_transport :
15921    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget ↔
15922      PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget
15923  prime_no_mixed_from_trace_coherence :
15924    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget →
15925      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget
15926  coherent_prime_orientation_reduction :
15927    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget →
15928      PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget →
15929        PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget
15930  prime_to_coherent_orientation_target_refuted :
15931    ¬ PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget
15932  coherent_prime_orientation_propagation_target_refuted :
15933    ¬ PRCCoherentPrimeOrientationPropagatesToGlobalTarget
15934  admissible_prime_orientation_coherent_target :
15935    PRCAdmissibleCharacterPrimeOrientationCoherentTarget
15936  admissible_signed_unit_calibration_target_refuted :
15937    ¬ PRCAdmissibleCharacterSignedUnitCalibratedTarget
15938  signed_coherent_prime_orientation_propagation_target :
15939    PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget
15940  global_orientation_reduction :
15941    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget →
15942      PRCCoherentPrimeOrientationPropagatesToGlobalTarget →
15943        PRCPrimeCalibrationForcesGlobalOrientationTarget
15944  prime_propagation_sharpened_target_refuted :
15945    ¬ PRCPrimeCalibrationPropagationSharpenedTarget
15946  prime_propagation_reduction :
15947    PRCPrimeCalibrationForcesGlobalOrientationTarget →
15948      PRCPrimeCalibrationPropagationTarget
15949  prime_propagation_sharpened_reduction :
15950    PRCPrimeCalibrationPropagationSharpenedTarget →
15951      PRCPrimeCalibrationPropagationTarget
15952  rigidity_sharpened_target_refuted :
15953    ¬ PRCNativeCostCharacterRigiditySharpenedTarget
15954  rigidity_reduction :
15955    PRCTwoCalibrationForcesPrimeCalibrationTarget →
15956      PRCPrimeCalibrationPropagationTarget →
15957        PRCNativeCostCharacterRigidityTarget
15958  identity_character : PRCRatioCharacter (fun q : RatioOrbit => q)
15959  identity_rigid :
15960    ∀ q : RatioOrbit,
15961      RatioOrbit.crossEq
15962        (costFromCharacter (fun q : RatioOrbit => q) q)
15963        (onRatioOrbit q)
15964  identity_orientation :
15965    PRCCharacterGlobalCostOrientation (fun q : RatioOrbit => q)
15966  identity_prime_orientation_coherent :
15967    PRCCharacterPrimeOrientationCoherent (fun q : RatioOrbit => q)
15968  reciprocal_character :
15969    PRCRatioCharacter (fun q : RatioOrbit => RatioOrbit.recip q)
15970  reciprocal_prime_calibrated :
15971    PRCCharacterPrimeDirectionCalibrated
15972      (fun q : RatioOrbit => RatioOrbit.recip q)
15973  reciprocal_orientation :
15974    PRCCharacterGlobalCostOrientation
15975      (fun q : RatioOrbit => RatioOrbit.recip q)
15976  reciprocal_prime_orientation_coherent :
15977    PRCCharacterPrimeOrientationCoherent
15978      (fun q : RatioOrbit => RatioOrbit.recip q)
15979  sharpened_target :
15980    ¬ PRCNativeCostUniquenessSharpenedTarget
15981  reduction :
15982    PRCNativeCostCharacterFactorizationTarget →
15983      PRCNativeCostCharacterRigidityTarget →
15984        PRCNativeCostUniquenessTarget
15985  prime_reduction :
15986    PRCNativeCostCharacterFactorizationTarget →
15987      PRCTwoCalibrationForcesPrimeCalibrationTarget →
15988        PRCPrimeCalibrationPropagationTarget →
15989          PRCNativeCostUniquenessTarget
15990  original_target :
15991    ¬ PRCNativeCostUniquenessTarget
15992  original_target_refuted :
15993    ¬ PRCNativeCostUniquenessTarget
15994  strength_tag : StrengthTag.deltaOnly = StrengthTag.deltaOnly
15995
15996theorem prc_native_cost_uniqueness_blocker_certificate :
15997    PRCNativeCostUniquenessBlockerCertificate where
15998  zero_calibrated_factorization_target :=
15999    PRCZeroCalibratedNativeCostCharacterFactorizationTarget_proved
16000  zero_calibrated_signed_admissible_factorization_refuted :=
16001    PRCZeroCalibratedNativeCostSignedAdmissibleCharacterFactorizationTarget_refuted
16002  zero_calibration_signed_unit_target_refuted :=
16003    PRCZeroCalibrationForcesNativeCostSignedUnitCalibrationTarget_refuted
16004  zero_calibrated_prime_signed_strengthened_factorization :=
16005    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostSignedAdmissibleCharacterFactorizationTarget_proved
16006  zero_calibrated_prime_signed_strengthened_uniqueness :=
16007    PRCZeroCalibratedPrimeSignedStrengthenedNativeCostUniquenessTarget_proved
16008  old_factorization_refuted := PRCNativeCostCharacterFactorizationTarget_refuted
16009  zero_calibrated_uniqueness_target :=
16010    PRCZeroCalibratedNativeCostUniquenessTarget_refuted
16011  signed_admissible_rigidity_target :=
16012    PRCNativeCostSignedAdmissibleCharacterRigidityTarget_proved
16013  old_rigidity_refuted := PRCNativeCostCharacterRigidityTarget_refuted
16014  two_to_prime_target_refuted := PRCTwoCalibrationForcesPrimeCalibrationTarget_refuted
16015  prime_propagation_target_refuted :=
16016    PRCPrimeCalibrationPropagationTarget_refuted
16017  global_orientation_target_refuted :=
16018    PRCPrimeCalibrationForcesGlobalOrientationTarget_refuted
16019  coherent_prime_orientation := rfl
16020  two_orbit_prime := twoOrbit_primeOrbit
16021  two_prime_direction := rfl
16022  two_prime_branch_controls_primes := rfl
16023  prime_identity_iff_two_prime_identity := rfl
16024  prime_identity_forces_two_prime_identity := rfl
16025  two_prime_reciprocal_excludes_prime_identity := rfl
16026  two_prime_reciprocal_forces_prime_reciprocal := rfl
16027  two_prime_reciprocal_trace_connected := rfl
16028  two_prime_identity_trace_connected := rfl
16029  reciprocal_twist_character := by
16030    intro χ
16031    exact PRCRatioCharacter.reciprocalTwist
16032  reciprocal_twist_prime_calibrated := by
16033    intro χ
16034    exact PRCCharacterPrimeDirectionCalibrated.reciprocalTwist
16035  reciprocal_twist_prime_identity_iff_reciprocal := by
16036    intro χ p hp
16037    exact PRCCharacterReciprocalTwist_prime_identity_iff_reciprocal χ p hp
16038  reciprocal_twist_two_identity_iff_reciprocal := by
16039    intro χ
16040    exact PRCCharacterReciprocalTwist_two_identity_iff_reciprocal χ
16041  reciprocal_twist_prime_reciprocal_iff_identity := by
16042    intro χ p hp
16043    exact PRCCharacterReciprocalTwist_prime_reciprocal_iff_identity χ p hp
16044  reciprocal_twist_two_reciprocal_iff_identity := by
16045    intro χ
16046    exact PRCCharacterReciprocalTwist_two_reciprocal_iff_identity χ
16047  two_prime_branch_controls_from_coherent := by
16048    intro χ
16049    exact PRCCharacterTwoPrimeBranchControlsPrimes_of_coherent
16050  coherent_from_local_two_prime_branch_controls := by
16051    intro χ
16052    exact PRCCharacterPrimeOrientationCoherent_of_local_two_prime_branch_controls
16053  prime_identity_iff_two_from_local_two_prime_branch_controls := by
16054    intro χ
16055    exact PRCCharacterPrimeIdentityIffTwoPrimeIdentity_of_local_two_prime_branch_controls
16056  two_prime_branch_controls_from_local_prime_identity_iff_two := by
16057    intro χ
16058    exact PRCCharacterTwoPrimeBranchControlsPrimes_of_local_prime_identity_iff_two
16059  prime_identity_forces_two_from_identity_iff_two := by
16060    intro χ
16061    exact PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_identity_iff_two
16062  two_prime_reciprocal_excludes_from_identity_forces_two := by
16063    intro χ
16064    exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_identity_forces_two
16065  prime_identity_forces_two_from_local_two_prime_reciprocal_excludes := by
16066    intro χ
16067    exact PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_local_two_prime_reciprocal_excludes
16068  prime_identity_forces_two_iff_two_prime_reciprocal_excludes := by
16069    intro χ
16070    exact PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_iff_two_prime_reciprocal_excludes
16071  two_prime_reciprocal_excludes_from_two_prime_reciprocal_forces := by
16072    intro χ
16073    exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_of_two_prime_reciprocal_forces
16074  two_prime_reciprocal_forces_from_local_excludes_prime_identity := by
16075    intro χ
16076    exact PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_local_excludes_prime_identity
16077  two_prime_reciprocal_excludes_iff_two_prime_reciprocal_forces := by
16078    intro χ
16079    exact PRCCharacterTwoPrimeReciprocalExcludesPrimeIdentity_iff_two_prime_reciprocal_forces
16080  two_prime_reciprocal_forces_from_trace_connected := by
16081    intro χ
16082    exact PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_trace_connected
16083  two_prime_reciprocal_trace_connected_from_forces := by
16084    intro χ
16085    exact PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_of_forces
16086  two_prime_reciprocal_trace_connected_iff_forces := by
16087    intro χ
16088    exact PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_iff_forces
16089  two_prime_reciprocal_trace_connected_from_twist_identity := by
16090    intro χ
16091    exact PRCCharacterTwoPrimeReciprocalRespectsTraceConnected_of_reciprocal_twist_identity
16092  two_prime_identity_trace_connected_from_twist_reciprocal := by
16093    intro χ
16094    exact PRCCharacterTwoPrimeIdentityRespectsTraceConnected_of_reciprocal_twist_reciprocal
16095  two_prime_identity_trace_connected_from_prime_identity_trace_connected := by
16096    intro χ
16097    exact PRCCharacterTwoPrimeIdentityRespectsTraceConnected_of_prime_identity_trace_connected
16098  prime_identity_trace_connected_from_two_prime_identity_and_forces_two := by
16099    intro χ
16100    exact PRCCharacterPrimeIdentityRespectsTraceConnected_of_two_prime_identity_and_forces_two
16101  local_prime_orientation := rfl
16102  no_mixed_prime_orientation := rfl
16103  no_mixed_prime_witnesses := rfl
16104  prime_identity_witness_excludes_reciprocal := rfl
16105  prime_reciprocal_witness_globalizes := rfl
16106  prime_reciprocal_forces_two_prime_reciprocal := rfl
16107  prime_reciprocal_witness_globalizes_split := rfl
16108  prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_orientation := by
16109    intro χ
16110    exact PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_orientation
16111  no_mixed_prime_orientation_from_identity_witness_excludes_reciprocal := by
16112    intro χ
16113    exact PRCCharacterNoMixedPrimeOrientation_of_identity_witness_excludes_reciprocal
16114  prime_identity_witness_excludes_reciprocal_iff_no_mixed_prime_orientation := by
16115    intro χ
16116    exact PRCCharacterPrimeIdentityWitnessExcludesReciprocal_iff_no_mixed_prime_orientation
16117  no_mixed_prime_witnesses_from_identity_witness_excludes_reciprocal := by
16118    intro χ
16119    exact PRCCharacterNoMixedPrimeWitnesses_of_identity_witness_excludes_reciprocal
16120  prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_witnesses := by
16121    intro χ
16122    exact PRCCharacterPrimeIdentityWitnessExcludesReciprocal_of_no_mixed_prime_witnesses
16123  no_mixed_prime_witnesses_iff_identity_witness_excludes_reciprocal := by
16124    intro χ
16125    exact PRCCharacterNoMixedPrimeWitnesses_iff_identity_witness_excludes_reciprocal
16126  prime_reciprocal_witness_globalizes_from_local_no_mixed_prime_orientation := by
16127    intro χ
16128    exact PRCCharacterPrimeReciprocalWitnessGlobalizes_of_local_no_mixed_prime_orientation
16129  no_mixed_prime_orientation_from_prime_reciprocal_witness_globalizes := by
16130    intro χ
16131    exact PRCCharacterNoMixedPrimeOrientation_of_reciprocal_witness_globalizes
16132  prime_reciprocal_forces_two_from_reciprocal_witness_globalizes := by
16133    intro χ
16134    exact PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal_of_reciprocal_witness_globalizes
16135  two_prime_reciprocal_forces_from_reciprocal_witness_globalizes := by
16136    intro χ
16137    exact PRCCharacterTwoPrimeReciprocalForcesPrimeReciprocal_of_reciprocal_witness_globalizes
16138  prime_reciprocal_witness_globalizes_split_from_reciprocal_witness_globalizes := by
16139    intro χ
16140    exact PRCCharacterPrimeReciprocalWitnessGlobalizesSplit_of_reciprocal_witness_globalizes
16141  prime_reciprocal_witness_globalizes_from_split := by
16142    intro χ
16143    exact PRCCharacterPrimeReciprocalWitnessGlobalizes_of_split
16144  prime_reciprocal_witness_globalizes_iff_split := by
16145    intro χ
16146    exact PRCCharacterPrimeReciprocalWitnessGlobalizes_iff_split
16147  prime_reciprocal_forces_two_from_reciprocal_twist_identity_forces_two := by
16148    intro χ
16149    exact PRCCharacterPrimeReciprocalForcesTwoPrimeReciprocal_of_reciprocal_twist_identity_forces_two
16150  prime_identity_forces_two_from_reciprocal_twist_reciprocal_forces_two := by
16151    intro χ
16152    exact PRCCharacterPrimeIdentityForcesTwoPrimeIdentity_of_reciprocal_twist_reciprocal_forces_two
16153  character_no_mixed_prime_witnesses_from_coherent_prime_orientation := by
16154    intro χ
16155    exact PRCCharacterNoMixedPrimeWitnesses_of_coherent_prime_orientation
16156  mixed_nonunit_witnesses_reflect_prime_witnesses := rfl
16157  mixed_nonunit_identity_witness_reflects_prime_witness := rfl
16158  mixed_nonunit_reciprocal_witness_reflects_prime_witness := rfl
16159  mixed_nonunit_witnesses_reflect_prime_witnesses_split := rfl
16160  prime_identity_trace_coherence := rfl
16161  prime_identity_branch_uniform := rfl
16162  prime_axis_trace_connected := rfl
16163  prime_axis_trace_connected_proved :=
16164    PRCPrimeAxisTraceConnected_proved
16165  orbit_trace_extends_of_toNat_le := by
16166    intro p r
16167    exact orbitPositionTrace_extends_of_toNat_le
16168  orbit_trace_comparable :=
16169    orbitPositionTrace_comparable
16170  orbit_direction_toRat := by
16171    intro p
16172    exact orbitDirection_toRat p
16173  orbit_direction_nonunit_not_crossEq_recip := by
16174    intro p
16175    exact orbitDirection_nonunit_not_crossEq_recip p
16176  orbit_direction_succ_add_one := by
16177    intro p
16178    exact orbitDirection_succ_crossEq_add_one p
16179  ratio_add_right_one_cancel := by
16180    intro a b
16181    exact RatioOrbit.add_right_one_cancel
16182  prime_identity_respects_trace_connected := rfl
16183  prime_identity_respects_common_trace_extension := rfl
16184  prime_identity_respects_canonical_add_trace := rfl
16185  prime_identity_respects_comparable_trace := rfl
16186  orbit_direction_identity := rfl
16187  orbit_direction_reciprocal := rfl
16188  prime_identity_witness_globalizes_nonunit := rfl
16189  orbit_succ_not_unit := by
16190    intro p
16191    exact orbit_succ_not_unit_of_nonzero_not_unit p
16192  orbit_identity_respects_successor_step := rfl
16193  orbit_identity_extends_successor_step := rfl
16194  orbit_identity_contracts_successor_step := rfl
16195  orbit_identity_successor_transport := rfl
16196  orbit_successor_additive_compat := rfl
16197  nonunit_orbit_local_orientation := rfl
16198  orbit_product_local_orientation := rfl
16199  ratio_mul_congr := by
16200    intro a₁ a₂ b₁ b₂
16201    exact ratioOrbit_mul_congr
16202  ratio_recip_congr := by
16203    intro a b
16204    exact ratioOrbit_recip_congr
16205  ratio_mul_recip_recip :=
16206    ratioOrbit_mul_recip_recip_crossEq_recip_mul
16207  orbit_direction_mul := by
16208    intro a b p
16209    exact orbitDirection_mul_crossEq a b p
16210  orbit_product_display_compatible := rfl
16211  orbit_character_respects_crossEq := rfl
16212  normalizeRatio_canonical_target := PRCNormalizeRatioCanonicalTarget_proved
16213  signed_orbit_sign_canonical := rfl
16214  ratio_reduced_sign_canonical := rfl
16215  signed_ofOrbit_abs_self := signedOrbit_ofOrbit_abs_self
16216  signed_neg_ofOrbit_abs_self := signedOrbit_neg_ofOrbit_abs_self
16217  signedQuotient_signCanonical := by
16218    intro z d
16219    exact signedQuotient_signCanonical_of_divides z d
16220  normalizeRatio_reduced_signCanonical :=
16221    normalizeRatio_reduced_signCanonical
16222  signCanonical_toInt_injective := by
16223    intro z w
16224    exact PRCSignedOrbitSignCanonical.eq_of_toInt_eq
16225  reduced_den_dvd := by
16226    intro q r
16227    exact PRCReducedSignCanonical_den_dvd_of_crossEq
16228  reduced_den_eq := by
16229    intro q r
16230    exact PRCReducedSignCanonical_den_eq_of_crossEq
16231  reduced_num_eq := by
16232    intro q r
16233    exact PRCReducedSignCanonical_num_eq_of_crossEq
16234  reduced_signCanonical_ratio_unique_target :=
16235    PRCReducedSignCanonicalRatioUniqueTarget_proved
16236  reduced_signCanonical_ratio_unique_proved :=
16237    PRCReducedSignCanonicalRatioUniqueTarget_proved
16238  normalizeRatio_canonical_from_reduced_signCanonical_unique :=
16239    PRCNormalizeRatioCanonicalTarget_of_reduced_signCanonical_unique
16240  normalizeRatio_canonical_proved :=
16241    PRCNormalizeRatioCanonicalTarget_proved
16242  orbit_character_crossEq_from_normalizeRatio_canonical := by
16243    intro χ
16244    exact PRCCharacterRespectsCrossEq_of_normalizeRatio_canonical
16245  orbit_product_display_from_crossEq := by
16246    intro χ
16247    exact PRCCharacterOrbitProductDisplayCompatible_of_crossEq_respect
16248  orbit_product_no_mixed_orientation := rfl
16249  nonunit_orbit_orientation_coherent := rfl
16250  no_mixed_nonunit_orbit_orientation := rfl
16251  nonunit_identity_branch_transport := rfl
16252  nonunit_identity_witness_globalizes := rfl
16253  nonunit_reciprocal_branch_transport := rfl
16254  nonunit_branch_transport_pair := rfl
16255  nonunit_identity_respects_comparable_trace := rfl
16256  nonunit_branch_agreement := rfl
16257  nonunit_local_from_coherent := by
16258    intro χ
16259    exact PRCCharacterNonunitOrbitLocalOrientation_of_coherent
16260  no_mixed_nonunit_from_coherent := by
16261    intro χ
16262    exact PRCCharacterNoMixedNonunitOrbitOrientation_of_coherent
16263  orbit_mul_not_unit_left := by
16264    intro p r
16265    exact orbit_mul_not_unit_of_left_not_unit
16266  no_mixed_nonunit_from_product_no_mixed := by
16267    intro χ
16268    exact PRCCharacterNoMixedNonunitOrbitOrientation_of_product_no_mixed
16269  orbit_product_no_mixed_from_no_mixed_nonunit := by
16270    intro χ
16271    exact PRCCharacterOrbitProductNoMixedOrientation_of_no_mixed_nonunit
16272  orbit_product_no_mixed_iff_no_mixed_nonunit := by
16273    intro χ
16274    exact PRCCharacterOrbitProductNoMixedOrientation_iff_no_mixed_nonunit
16275  no_mixed_nonunit_from_identity_branch_transport := by
16276    intro χ
16277    exact PRCCharacterNoMixedNonunitOrbitOrientation_of_identity_branch_transport
16278  orbit_product_no_mixed_from_identity_branch_transport := by
16279    intro χ
16280    exact PRCCharacterOrbitProductNoMixedOrientation_of_identity_branch_transport
16281  nonunit_identity_branch_transport_from_local_no_mixed := by
16282    intro χ
16283    exact PRCCharacterNonunitIdentityBranchTransport_of_local_no_mixed
16284  nonunit_identity_branch_transport_from_coherent := by
16285    intro χ
16286    exact PRCCharacterNonunitIdentityBranchTransport_of_coherent
16287  nonunit_identity_witness_globalizes_from_branch_transport := by
16288    intro χ
16289    exact PRCCharacterNonunitIdentityWitnessGlobalizes_of_branch_transport
16290  nonunit_identity_branch_transport_from_witness_globalizes := by
16291    intro χ
16292    exact PRCCharacterNonunitIdentityBranchTransport_of_witness_globalizes
16293  nonunit_identity_witness_globalizes_iff_branch_transport := by
16294    intro χ
16295    exact PRCCharacterNonunitIdentityWitnessGlobalizes_iff_branch_transport
16296  nonunit_coherent_from_local_identity_witness_globalizes := by
16297    intro χ
16298    exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_identity_witness_globalizes
16299  nonunit_identity_witness_globalizes_from_coherent := by
16300    intro χ
16301    exact PRCCharacterNonunitIdentityWitnessGlobalizes_of_coherent
16302  nonunit_reciprocal_branch_transport_from_coherent := by
16303    intro χ
16304    exact PRCCharacterNonunitReciprocalBranchTransport_of_coherent
16305  nonunit_branch_transport_pair_from_coherent := by
16306    intro χ
16307    exact PRCCharacterNonunitBranchTransportPair_of_coherent
16308  nonunit_identity_branch_transport_from_comparable_trace := by
16309    intro χ
16310    exact PRCCharacterNonunitIdentityBranchTransport_of_comparable_trace
16311  nonunit_identity_comparable_trace_from_branch_transport := by
16312    intro χ
16313    exact PRCCharacterNonunitIdentityRespectsComparableTrace_of_branch_transport
16314  nonunit_identity_comparable_trace_iff_branch_transport := by
16315    intro χ
16316    exact PRCCharacterNonunitIdentityRespectsComparableTrace_iff_branch_transport
16317  nonunit_branch_agreement_from_coherent := by
16318    intro χ
16319    exact PRCCharacterNonunitBranchAgreement_of_coherent
16320  nonunit_branch_agreement_from_transport_pair := by
16321    intro χ
16322    exact PRCCharacterNonunitBranchAgreement_of_transport_pair
16323  nonunit_identity_branch_transport_from_branch_agreement := by
16324    intro χ
16325    exact PRCCharacterNonunitIdentityBranchTransport_of_branch_agreement
16326  nonunit_reciprocal_branch_transport_from_branch_agreement := by
16327    intro χ
16328    exact PRCCharacterNonunitReciprocalBranchTransport_of_branch_agreement
16329  nonunit_branch_transport_pair_from_branch_agreement := by
16330    intro χ
16331    exact PRCCharacterNonunitBranchTransportPair_of_branch_agreement
16332  nonunit_branch_agreement_iff_transport_pair := by
16333    intro χ
16334    exact PRCCharacterNonunitBranchAgreement_iff_transport_pair
16335  nonunit_branch_agreement_from_local_identity_branch_transport := by
16336    intro χ
16337    exact PRCCharacterNonunitBranchAgreement_of_local_identity_branch_transport
16338  nonunit_coherent_from_local_branch_agreement := by
16339    intro χ
16340    exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_branch_agreement
16341  nonunit_branch_agreement_iff_coherent_of_local := by
16342    intro χ
16343    exact PRCCharacterNonunitBranchAgreement_iff_coherent_of_local
16344  nonunit_coherent_from_local_no_mixed := by
16345    intro χ
16346    exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_no_mixed
16347  nonunit_coherent_from_local_identity_branch_transport := by
16348    intro χ
16349    exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_identity_branch_transport
16350  orbit_product_no_mixed_from_nonunit_coherent := by
16351    intro χ
16352    exact PRCCharacterOrbitProductNoMixedOrientation_of_nonunit_coherent
16353  orbit_product_identity_identity := by
16354    intro χ
16355    exact PRCCharacterOrbitProductIdentityIdentity
16356  orbit_product_reciprocal_reciprocal := by
16357    intro χ
16358    exact PRCCharacterOrbitProductReciprocalReciprocal
16359  nonunit_all_identity_from_all_prime_identity := by
16360    intro χ
16361    exact PRCCharacterNonunitOrbitAllIdentity_of_all_prime_identity
16362  nonunit_all_reciprocal_from_all_prime_reciprocal := by
16363    intro χ
16364    exact PRCCharacterNonunitOrbitAllReciprocal_of_all_prime_reciprocal
16365  mixed_identity_reflects_prime_from_prime_local := by
16366    intro χ
16367    exact PRCCharacterMixedNonunitIdentityWitnessReflectsPrimeWitness_of_prime_local
16368  mixed_reciprocal_reflects_prime_from_prime_local := by
16369    intro χ
16370    exact PRCCharacterMixedNonunitReciprocalWitnessReflectsPrimeWitness_of_prime_local
16371  orbit_product_local_from_display_nomix := by
16372    intro χ
16373    exact PRCCharacterOrbitProductLocalOrientationPropagates_of_display_compatible_nomix
16374  nonunit_local_from_prime_product := by
16375    intro χ
16376    exact PRCCharacterNonunitOrbitLocalOrientation_of_prime_and_product_local
16377  prime_floor_no_adjacent_mixed_orientation := rfl
16378  prime_floor_no_adjacent_from_nonunit_coherent := by
16379    intro χ
16380    exact PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_nonunit_coherent
16381  prime_floor_orbit_identity_extends_successor_step := rfl
16382  prime_floor_orbit_identity_contracts_successor_step := rfl
16383  prime_floor_orbit_identity_successor_transport := rfl
16384  prime_floor_extends_from_local_adjacent_nomix := by
16385    intro χ
16386    exact PRCCharacterPrimeFloorOrbitIdentityExtendsSuccessorStep_of_local_adjacent_nomix
16387  prime_floor_contracts_from_local_adjacent_nomix := by
16388    intro χ
16389    exact PRCCharacterPrimeFloorOrbitIdentityContractsSuccessorStep_of_local_adjacent_nomix
16390  prime_floor_successor_transport_from_local_adjacent_nomix := by
16391    intro χ
16392    exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_local_adjacent_nomix
16393  prime_floor_no_adjacent_from_successor_transport := by
16394    intro χ
16395    exact PRCCharacterPrimeFloorNoAdjacentMixedOrientation_of_successor_transport
16396  prime_floor_successor_transport_iff_local_adjacent_nomix := by
16397    intro χ
16398    exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_iff_local_adjacent_nomix
16399  prime_floor_successor_transport_from_nonunit_identity_comparable_trace := by
16400    intro χ
16401    exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_nonunit_identity_comparable_trace
16402  prime_identity_comparable_from_prime_floor_successor_transport := by
16403    intro χ
16404    exact PRCCharacterPrimeIdentityRespectsComparableTrace_of_prime_floor_successor_transport
16405  nonunit_identity_comparable_from_prime_floor_successor_transport := by
16406    intro χ
16407    exact PRCCharacterNonunitIdentityRespectsComparableTrace_of_prime_floor_successor_transport
16408  nonunit_coherent_from_local_prime_floor_successor_transport := by
16409    intro χ
16410    exact PRCCharacterNonunitOrbitOrientationCoherent_of_local_and_prime_floor_successor_transport
16411  prime_identity_witness_globalizes_nonunit_from_successor_transport := by
16412    intro χ
16413    exact PRCCharacterPrimeIdentityWitnessGlobalizesNonunit_of_prime_floor_successor_transport
16414  prime_floor_successor_transport_from_prime_identity_witness_globalizes := by
16415    intro χ
16416    exact PRCCharacterPrimeFloorOrbitIdentitySuccessorTransport_of_prime_identity_witness_globalizes
16417  prime_identity_witness_globalizes_nonunit_from_no_mixed_prime_witnesses := by
16418    intro χ
16419    exact PRCCharacterPrimeIdentityWitnessGlobalizesNonunit_of_no_mixed_prime_witnesses
16420  no_mixed_prime_witnesses_from_prime_identity_witness_globalizes := by
16421    intro χ
16422    exact PRCCharacterNoMixedPrimeWitnesses_of_prime_identity_witness_globalizes
16423  orbit_identity_extends_from_additive_compat := by
16424    intro χ
16425    exact PRCCharacterOrbitIdentityExtendsSuccessorStep_of_additive_compat
16426  orbit_identity_contracts_from_additive_compat := by
16427    intro χ
16428    exact PRCCharacterOrbitIdentityContractsSuccessorStep_of_additive_compat
16429  orbit_identity_successor_transport_from_additive_compat := by
16430    intro χ
16431    exact PRCCharacterOrbitIdentitySuccessorTransport_of_additive_compat
16432  orbit_identity_respects_successor_step_from_transport := by
16433    intro χ
16434    exact PRCCharacterOrbitIdentityRespectsSuccessorStep_of_transport
16435  orbit_identity_one_of_identity := by
16436    intro χ
16437    exact PRCCharacterOrbitIdentity_one_of_identity
16438  orbit_identity_of_one := by
16439    intro χ
16440    exact PRCCharacterOrbitIdentity_of_one
16441  prime_identity_comparable_from_successor_step := by
16442    intro χ
16443    exact PRCCharacterPrimeIdentityRespectsComparableTrace_of_successor_step
16444  target_prime_identity_comparable_trace_from_nonunit_identity_comparable :=
16445    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_nonunit_identity_comparable_trace
16446  target_nonunit_identity_comparable_trace_from_prime_identity_comparable :=
16447    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_prime_identity_comparable_trace
16448  target_prime_identity_comparable_trace_iff_nonunit_identity_comparable :=
16449    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_iff_nonunit_identity_comparable_trace
16450  target_prime_identity_comparable_trace_iff_prime_floor_successor_transport :=
16451    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_iff_prime_floor_successor_transport
16452  prime_identity_common_trace_from_comparable_trace := by
16453    intro χ
16454    exact PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_comparable_trace
16455  prime_identity_canonical_add_trace_from_common_trace := by
16456    intro χ
16457    exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_common_trace_extension
16458  prime_identity_common_trace_from_canonical_add_trace := by
16459    intro χ
16460    exact PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_canonical_add_trace
16461  prime_identity_canonical_add_trace_iff_common_trace := by
16462    intro χ
16463    exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_iff_common_trace_extension
16464  prime_identity_canonical_add_trace_from_trace_connected := by
16465    intro χ
16466    exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_trace_connected
16467  prime_identity_trace_connected_from_canonical_add_trace := by
16468    intro χ
16469    exact PRCCharacterPrimeIdentityRespectsTraceConnected_of_canonical_add_trace
16470  prime_identity_canonical_add_trace_iff_trace_connected := by
16471    intro χ
16472    exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_iff_trace_connected
16473  prime_identity_branch_uniform_from_trace_coherence := by
16474    intro χ
16475    exact PRCCharacterPrimeIdentityBranchUniform_of_trace_coherence
16476  prime_identity_trace_coherence_from_branch_uniform := by
16477    intro χ
16478    exact PRCCharacterPrimeIdentityTraceCoherent_of_branch_uniform
16479  prime_identity_branch_uniform_iff_trace_coherence := by
16480    intro χ
16481    exact PRCCharacterPrimeIdentityBranchUniform_iff_trace_coherence
16482  prime_identity_canonical_add_trace_from_branch_uniform := by
16483    intro χ
16484    exact PRCCharacterPrimeIdentityRespectsCanonicalAddTrace_of_branch_uniform
16485  prime_identity_branch_uniform_from_canonical_add_trace := by
16486    intro χ
16487    exact PRCCharacterPrimeIdentityBranchUniform_of_canonical_add_trace
16488  prime_identity_branch_uniform_iff_canonical_add_trace := by
16489    intro χ
16490    exact PRCCharacterPrimeIdentityBranchUniform_iff_canonical_add_trace
16491  prime_no_mixed_from_branch_uniform := by
16492    intro χ
16493    exact PRCCharacterNoMixedPrimeOrientation_of_branch_uniform
16494  prime_identity_branch_uniform_from_local_no_mixed := by
16495    intro χ
16496    exact PRCCharacterPrimeIdentityBranchUniform_of_local_no_mixed_prime_orientation
16497  prime_identity_trace_connected_from_common_trace := by
16498    intro χ
16499    exact PRCCharacterPrimeIdentityRespectsTraceConnected_of_common_trace_extension
16500  prime_identity_comparable_trace_from_trace_coherence := by
16501    intro χ
16502    exact PRCCharacterPrimeIdentityRespectsComparableTrace_of_trace_coherence
16503  prime_identity_trace_coherence_from_comparable_trace := by
16504    intro χ
16505    exact PRCCharacterPrimeIdentityTraceCoherent_of_comparable_trace
16506  prime_identity_comparable_trace_iff_trace_coherence := by
16507    intro χ
16508    exact PRCCharacterPrimeIdentityRespectsComparableTrace_iff_trace_coherence
16509  prime_identity_common_trace_from_trace_coherence := by
16510    intro χ
16511    exact PRCCharacterPrimeIdentityRespectsCommonTraceExtension_of_trace_coherence
16512  prime_identity_trace_coherence_from_common_trace := by
16513    intro χ
16514    exact PRCCharacterPrimeIdentityTraceCoherent_of_common_trace_extension
16515  prime_identity_common_trace_iff_trace_coherence := by
16516    intro χ
16517    exact PRCCharacterPrimeIdentityRespectsCommonTraceExtension_iff_trace_coherence
16518  prime_identity_trace_connected_from_trace_coherence := by
16519    intro χ
16520    exact PRCCharacterPrimeIdentityRespectsTraceConnected_of_trace_coherence
16521  prime_identity_trace_coherence_from_trace_connected := by
16522    intro χ
16523    exact PRCCharacterPrimeIdentityTraceCoherent_of_trace_connected
16524  prime_identity_trace_connected_iff_trace_coherence := by
16525    intro χ
16526    exact PRCCharacterPrimeIdentityRespectsTraceConnected_iff_trace_coherence
16527  prime_to_local_orientation_target :=
16528    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved
16529  prime_to_local_orientation_proved :=
16530    PRCPrimeCalibrationForcesLocalPrimeOrientationTarget_proved
16531  prime_no_mixed_orientation_target_refuted :=
16532    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_refuted
16533  prime_identity_trace_coherence_target_refuted :=
16534    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_refuted
16535  prime_identity_branch_uniformity_target_refuted :=
16536    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_refuted
16537  prime_identity_trace_transport_target_refuted :=
16538    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_refuted
16539  prime_identity_common_trace_extension_target_refuted :=
16540    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_refuted
16541  prime_identity_canonical_add_trace_target_refuted :=
16542    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_refuted
16543  prime_identity_comparable_trace_target_refuted :=
16544    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_refuted
16545  orbit_successor_identity_target_refuted :=
16546    PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget_refuted
16547  orbit_successor_transport_target_refuted :=
16548    PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget_refuted
16549  orbit_successor_additive_compat_target_refuted :=
16550    PRCPrimeCalibrationForcesOrbitSuccessorAdditiveCompatibilityTarget_refuted
16551  prime_floor_successor_transport_target_refuted :=
16552    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_refuted
16553  prime_identity_witness_globalizes_nonunit_target_refuted :=
16554    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_refuted
16555  prime_floor_identity_extends_successor_step_target_refuted :=
16556    PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget_refuted
16557  prime_floor_identity_contracts_successor_step_target_refuted :=
16558    PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget_refuted
16559  prime_floor_identity_successor_step_pair_target_refuted :=
16560    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_refuted
16561  prime_floor_nonunit_local_orientation_target_refuted :=
16562    PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_refuted
16563  prime_floor_nonunit_product_local_orientation_target_refuted :=
16564    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget_refuted
16565  prime_floor_product_display_compatibility_target :=
16566    PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
16567  prime_floor_character_crossEq_respect_target :=
16568    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_proved
16569  prime_floor_character_crossEq_from_normalizeRatio_canonical :=
16570    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_of_normalizeRatio_canonical
16571  prime_floor_character_crossEq_from_reduced_signCanonical_unique :=
16572    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_of_reduced_signCanonical_unique
16573  prime_floor_character_crossEq_respect_proved :=
16574    PRCPrimeCalibrationForcesCharacterCrossEqRespectTarget_proved
16575  prime_floor_product_display_from_crossEq_respect :=
16576    PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_of_crossEq_respect
16577  prime_floor_product_display_compatibility_proved :=
16578    PRCPrimeCalibrationForcesOrbitProductDisplayCompatibilityTarget_proved
16579  prime_floor_product_no_mixed_orientation_target_refuted :=
16580    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_refuted
16581  prime_floor_nonunit_orbit_orientation_coherent_target_refuted :=
16582    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_refuted
16583  prime_floor_no_mixed_nonunit_orbit_orientation_target_refuted :=
16584    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_refuted
16585  prime_floor_nonunit_identity_branch_transport_target_refuted :=
16586    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_refuted
16587  prime_floor_nonunit_identity_witness_globalizes_target_refuted :=
16588    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_refuted
16589  prime_floor_nonunit_identity_witness_excludes_reciprocal_target_refuted :=
16590    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_refuted
16591  prime_floor_nonunit_no_mixed_witnesses_target_refuted :=
16592    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_refuted
16593  prime_floor_no_mixed_prime_witnesses_target_refuted :=
16594    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_refuted
16595  prime_floor_prime_identity_witness_excludes_reciprocal_target_refuted :=
16596    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_refuted
16597  prime_floor_prime_reciprocal_witness_globalizes_target_refuted :=
16598    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_refuted
16599  prime_floor_prime_reciprocal_forces_two_prime_reciprocal_target_refuted :=
16600    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_refuted
16601  prime_floor_prime_reciprocal_witness_globalizes_split_target_refuted :=
16602    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_refuted
16603  two_prime_reciprocal_excludes_prime_identity_witness_target_refuted :=
16604    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_refuted
16605  two_prime_reciprocal_identity_prime_mixed_character := rfl
16606  prime_floor_prime_witnesses_control_nonunit_target :=
16607    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_proved
16608  prime_floor_mixed_nonunit_witnesses_reflect_prime_target :=
16609    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_proved
16610  prime_floor_mixed_nonunit_identity_witness_reflects_prime_target :=
16611    PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget_proved
16612  prime_floor_mixed_nonunit_reciprocal_witness_reflects_prime_target :=
16613    PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget_proved
16614  prime_floor_mixed_nonunit_witnesses_reflect_prime_split_target :=
16615    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget_proved
16616  prime_floor_nonunit_no_mixed_witnesses_split_target_refuted :=
16617    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_refuted
16618  prime_floor_nonunit_identity_witness_local_exclusion_target_refuted :=
16619    PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget_refuted
16620  prime_floor_nonunit_identity_comparable_trace_target_refuted :=
16621    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_refuted
16622  prime_floor_nonunit_orbit_orientation_local_no_mixed_target_refuted :=
16623    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget_refuted
16624  prime_floor_nonunit_orbit_orientation_local_product_no_mixed_target_refuted :=
16625    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalProductNoMixedTarget_refuted
16626  prime_floor_no_mixed_nonunit_from_coherent :=
16627    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_coherent
16628  prime_floor_no_mixed_nonunit_from_product_no_mixed :=
16629    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_product_no_mixed
16630  prime_floor_product_no_mixed_from_no_mixed_nonunit :=
16631    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_no_mixed_nonunit
16632  prime_floor_product_no_mixed_iff_no_mixed_nonunit :=
16633    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_no_mixed_nonunit
16634  prime_floor_product_no_mixed_from_identity_branch_transport :=
16635    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_branch_transport
16636  prime_floor_nonunit_identity_branch_transport_from_comparable_trace :=
16637    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_comparable_trace
16638  prime_floor_nonunit_identity_branch_transport_from_coherent :=
16639    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_coherent
16640  prime_floor_nonunit_local_no_mixed_from_local_product_no_mixed :=
16641    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget_of_local_product_no_mixed
16642  prime_floor_nonunit_coherent_from_local_product_no_mixed :=
16643    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_product_no_mixed
16644  prime_floor_nonunit_coherent_from_product_no_mixed :=
16645    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_product_no_mixed
16646  prime_floor_product_no_mixed_iff_nonunit_coherent :=
16647    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_nonunit_coherent
16648  prime_floor_nonunit_identity_branch_transport_from_product_no_mixed :=
16649    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_product_no_mixed
16650  prime_floor_product_no_mixed_iff_identity_branch_transport :=
16651    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_branch_transport
16652  prime_floor_identity_witness_globalizes_from_identity_branch_transport :=
16653    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_identity_branch_transport
16654  prime_floor_identity_branch_transport_from_identity_witness_globalizes :=
16655    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_of_identity_witness_globalizes
16656  prime_floor_identity_witness_globalizes_iff_identity_branch_transport :=
16657    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_iff_identity_branch_transport
16658  prime_floor_identity_witness_globalizes_from_product_no_mixed :=
16659    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_product_no_mixed
16660  prime_floor_product_no_mixed_from_identity_witness_globalizes :=
16661    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_identity_witness_globalizes
16662  prime_floor_product_no_mixed_iff_identity_witness_globalizes :=
16663    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_witness_globalizes
16664  prime_floor_nonunit_coherent_from_identity_witness_globalizes :=
16665    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_identity_witness_globalizes
16666  prime_floor_identity_witness_globalizes_from_nonunit_coherent :=
16667    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_nonunit_coherent
16668  prime_floor_nonunit_coherent_iff_identity_witness_globalizes :=
16669    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_identity_witness_globalizes
16670  prime_floor_identity_witness_excludes_reciprocal_from_no_mixed :=
16671    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_of_no_mixed
16672  prime_floor_no_mixed_from_identity_witness_excludes_reciprocal :=
16673    PRCPrimeCalibrationForcesNoMixedNonunitOrbitOrientationTarget_of_identity_witness_excludes
16674  prime_floor_identity_witness_excludes_reciprocal_iff_no_mixed :=
16675    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_iff_no_mixed
16676  prime_floor_no_mixed_witnesses_from_identity_witness_excludes_reciprocal :=
16677    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_identity_witness_excludes
16678  prime_floor_identity_witness_excludes_reciprocal_from_no_mixed_witnesses :=
16679    PRCPrimeCalibrationForcesNonunitIdentityWitnessExcludesReciprocalTarget_of_no_mixed_witnesses
16680  prime_floor_no_mixed_witnesses_iff_identity_witness_excludes_reciprocal :=
16681    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_identity_witness_excludes
16682  prime_floor_no_mixed_prime_witnesses_from_no_mixed_prime_orientation :=
16683    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_no_mixed_prime_orientation
16684  prime_floor_no_mixed_prime_orientation_from_no_mixed_prime_witnesses :=
16685    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_no_mixed_prime_witnesses
16686  prime_floor_no_mixed_prime_witnesses_iff_no_mixed_prime_orientation :=
16687    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_no_mixed_prime_orientation
16688  prime_floor_prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_orientation :=
16689    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_of_no_mixed_prime_orientation
16690  prime_floor_no_mixed_prime_orientation_from_identity_witness_excludes_reciprocal :=
16691    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_identity_witness_excludes_reciprocal
16692  prime_floor_prime_identity_witness_excludes_reciprocal_iff_no_mixed_prime_orientation :=
16693    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_iff_no_mixed_prime_orientation
16694  prime_floor_no_mixed_prime_witnesses_from_identity_witness_excludes_reciprocal :=
16695    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_identity_witness_excludes_reciprocal
16696  prime_floor_prime_identity_witness_excludes_reciprocal_from_no_mixed_prime_witnesses :=
16697    PRCPrimeCalibrationForcesPrimeIdentityWitnessExcludesReciprocalTarget_of_no_mixed_prime_witnesses
16698  prime_floor_no_mixed_prime_witnesses_iff_identity_witness_excludes_reciprocal :=
16699    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_identity_witness_excludes_reciprocal
16700  prime_floor_prime_reciprocal_witness_globalizes_from_no_mixed_prime_orientation :=
16701    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_of_no_mixed_prime_orientation
16702  prime_floor_no_mixed_prime_orientation_from_reciprocal_witness_globalizes :=
16703    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_reciprocal_witness_globalizes
16704  prime_floor_prime_reciprocal_witness_globalizes_iff_no_mixed_prime_orientation :=
16705    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_no_mixed_prime_orientation
16706  prime_floor_prime_reciprocal_witness_globalizes_iff_identity_witness_excludes_reciprocal :=
16707    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_identity_witness_excludes_reciprocal
16708  prime_floor_prime_reciprocal_forces_two_from_reciprocal_witness_globalizes :=
16709    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_of_reciprocal_witness_globalizes
16710  prime_floor_two_prime_reciprocal_forces_from_reciprocal_witness_globalizes :=
16711    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_reciprocal_witness_globalizes
16712  prime_floor_prime_reciprocal_witness_globalizes_split_from_reciprocal_witness_globalizes :=
16713    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_of_reciprocal_witness_globalizes
16714  prime_floor_prime_reciprocal_witness_globalizes_from_split :=
16715    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_of_split
16716  prime_floor_prime_reciprocal_witness_globalizes_iff_split :=
16717    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesTarget_iff_split
16718  prime_floor_prime_reciprocal_forces_two_from_identity_forces_two :=
16719    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_of_identity_forces_two
16720  prime_floor_prime_identity_forces_two_from_reciprocal_forces_two :=
16721    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_prime_reciprocal_forces_two
16722  prime_floor_prime_reciprocal_forces_two_iff_identity_forces_two :=
16723    PRCPrimeCalibrationForcesPrimeReciprocalForcesTwoPrimeReciprocalTarget_iff_identity_forces_two
16724  prime_floor_two_prime_reciprocal_excludes_identity_witness_from_excludes :=
16725    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_two_prime_reciprocal_excludes
16726  prime_floor_two_prime_reciprocal_excludes_from_identity_witness_excludes :=
16727    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_witness
16728  prime_floor_two_prime_reciprocal_excludes_iff_identity_witness_excludes :=
16729    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_iff_witness
16730  prime_floor_prime_identity_forces_two_from_two_prime_reciprocal_excludes_identity_witness :=
16731    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes_witness
16732  prime_floor_two_prime_reciprocal_excludes_identity_witness_from_identity_forces_two :=
16733    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_identity_forces_two
16734  prime_floor_prime_identity_forces_two_iff_two_prime_reciprocal_excludes_identity_witness :=
16735    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes_witness
16736  prime_floor_two_prime_reciprocal_excludes_identity_witness_from_no_mixed_character :=
16737    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_of_no_mixed_character
16738  prime_floor_no_mixed_character_from_two_prime_reciprocal_excludes_identity_witness :=
16739    PRCPrimeCalibratedTwoPrimeReciprocalIdentityPrimeMixedCharacter_absurd_of_witness_excludes
16740  prime_floor_two_prime_reciprocal_excludes_identity_witness_iff_no_mixed_character :=
16741    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityWitnessTarget_iff_no_mixed_character
16742  prime_floor_prime_reciprocal_witness_globalizes_split_from_two_prime_reciprocal_forces :=
16743    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_of_two_prime_reciprocal_forces
16744  prime_floor_two_prime_reciprocal_forces_from_split :=
16745    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_split
16746  prime_floor_prime_reciprocal_witness_globalizes_split_iff_two_prime_reciprocal_forces :=
16747    PRCPrimeCalibrationForcesPrimeReciprocalWitnessGlobalizesSplitTarget_iff_two_prime_reciprocal_forces
16748  prime_identity_trace_coherence_from_no_mixed_prime_orientation :=
16749    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_no_mixed_prime_orientation
16750  prime_no_mixed_prime_orientation_iff_trace_coherence :=
16751    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_iff_trace_coherence
16752  prime_no_mixed_prime_witnesses_iff_trace_coherence :=
16753    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_trace_coherence
16754  coherent_prime_orientation_from_no_mixed_prime_witnesses :=
16755    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_no_mixed_prime_witnesses
16756  no_mixed_prime_witnesses_from_coherent_prime_orientation :=
16757    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_coherent_prime_orientation
16758  no_mixed_prime_witnesses_iff_coherent_prime_orientation :=
16759    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_iff_coherent_prime_orientation
16760  two_prime_branch_controls_target_refuted :=
16761    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_refuted
16762  two_prime_branch_controls_from_coherent_prime_orientation :=
16763    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_of_coherent_prime_orientation
16764  coherent_prime_orientation_from_two_prime_branch_controls :=
16765    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_two_prime_branch_controls
16766  coherent_prime_orientation_iff_two_prime_branch_controls :=
16767    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_iff_two_prime_branch_controls
16768  prime_identity_iff_two_prime_identity_target_refuted :=
16769    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_refuted
16770  prime_identity_forces_two_prime_identity_target_refuted :=
16771    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_refuted
16772  two_prime_reciprocal_excludes_prime_identity_target_refuted :=
16773    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_refuted
16774  two_prime_reciprocal_forces_prime_reciprocal_target_refuted :=
16775    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_refuted
16776  two_prime_reciprocal_trace_connected_target_refuted :=
16777    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_refuted
16778  two_prime_identity_trace_connected_target_refuted :=
16779    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_refuted
16780  prime_identity_iff_two_from_two_prime_branch_controls :=
16781    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_two_prime_branch_controls
16782  two_prime_branch_controls_from_prime_identity_iff_two :=
16783    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_of_prime_identity_iff_two
16784  two_prime_branch_controls_iff_prime_identity_iff_two :=
16785    PRCPrimeCalibrationForcesTwoPrimeBranchControlsPrimesTarget_iff_prime_identity_iff_two
16786  prime_identity_forces_two_from_identity_iff_two_target :=
16787    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_identity_iff_two
16788  prime_identity_iff_two_from_identity_forces_two_target :=
16789    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_of_identity_forces_two
16790  prime_identity_iff_two_iff_identity_forces_two :=
16791    PRCPrimeCalibrationForcesPrimeIdentityIffTwoPrimeIdentityTarget_iff_identity_forces_two
16792  two_prime_reciprocal_excludes_from_identity_forces_two_target :=
16793    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_identity_forces_two
16794  prime_identity_forces_two_from_two_prime_reciprocal_excludes_target :=
16795    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_excludes
16796  prime_identity_forces_two_target_iff_two_prime_reciprocal_excludes :=
16797    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_iff_two_prime_reciprocal_excludes
16798  two_prime_reciprocal_excludes_from_two_prime_reciprocal_forces_target :=
16799    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_of_two_prime_reciprocal_forces
16800  two_prime_reciprocal_forces_from_two_prime_reciprocal_excludes_target :=
16801    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_two_prime_reciprocal_excludes
16802  two_prime_reciprocal_excludes_target_iff_two_prime_reciprocal_forces :=
16803    PRCPrimeCalibrationForcesTwoPrimeReciprocalExcludesPrimeIdentityTarget_iff_two_prime_reciprocal_forces
16804  two_prime_reciprocal_forces_from_identity_forces_two_target :=
16805    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_identity_forces_two
16806  prime_identity_forces_two_from_two_prime_reciprocal_forces_target :=
16807    PRCPrimeCalibrationForcesPrimeIdentityForcesTwoPrimeIdentityTarget_of_two_prime_reciprocal_forces
16808  two_prime_reciprocal_forces_target_iff_identity_forces_two :=
16809    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_iff_identity_forces_two
16810  two_prime_reciprocal_forces_from_trace_connected_target :=
16811    PRCPrimeCalibrationForcesTwoPrimeReciprocalForcesPrimeReciprocalTarget_of_trace_connected
16812  two_prime_reciprocal_trace_connected_from_forces_target :=
16813    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_of_forces
16814  two_prime_reciprocal_trace_connected_target_iff_forces :=
16815    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_iff_forces
16816  two_prime_reciprocal_trace_connected_from_identity_trace_connected_target :=
16817    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_of_identity_trace_connected
16818  two_prime_identity_trace_connected_from_reciprocal_trace_connected_target :=
16819    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_of_reciprocal_trace_connected
16820  two_prime_reciprocal_trace_connected_target_iff_identity_trace_connected :=
16821    PRCPrimeCalibrationForcesTwoPrimeReciprocalTraceConnectedTarget_iff_identity_trace_connected
16822  two_prime_identity_trace_connected_from_prime_identity_trace_transport_target :=
16823    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_of_prime_identity_trace_transport
16824  prime_identity_trace_transport_from_two_prime_identity_trace_connected_target :=
16825    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_two_prime_identity_trace_connected
16826  two_prime_identity_trace_connected_target_iff_prime_identity_trace_transport :=
16827    PRCPrimeCalibrationForcesTwoPrimeIdentityTraceConnectedTarget_iff_prime_identity_trace_transport
16828  prime_floor_no_mixed_prime_witnesses_from_nonunit_no_mixed_witnesses :=
16829    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_nonunit_no_mixed_witnesses
16830  prime_floor_nonunit_no_mixed_witnesses_split_from_nonunit_no_mixed_witnesses :=
16831    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_of_nonunit_no_mixed_witnesses
16832  prime_floor_nonunit_no_mixed_witnesses_from_split :=
16833    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_split
16834  prime_floor_nonunit_no_mixed_witnesses_iff_split :=
16835    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_split
16836  prime_floor_prime_witnesses_control_from_mixed_reflects :=
16837    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_of_mixed_reflects
16838  prime_floor_mixed_reflects_from_prime_witnesses_control :=
16839    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_of_prime_control
16840  prime_floor_prime_witnesses_control_iff_mixed_reflects :=
16841    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_iff_mixed_reflects
16842  prime_floor_mixed_reflection_split_from_reflects :=
16843    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget_of_reflects
16844  prime_floor_mixed_reflection_from_split :=
16845    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_of_split
16846  prime_floor_mixed_reflection_iff_split :=
16847    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_iff_split
16848  prime_floor_mixed_identity_reflects_prime_proved :=
16849    PRCPrimeCalibrationForcesMixedNonunitIdentityWitnessReflectsPrimeWitnessTarget_proved
16850  prime_floor_mixed_reciprocal_reflects_prime_proved :=
16851    PRCPrimeCalibrationForcesMixedNonunitReciprocalWitnessReflectsPrimeWitnessTarget_proved
16852  prime_floor_mixed_reflection_split_proved :=
16853    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesSplitTarget_proved
16854  prime_floor_mixed_reflection_proved :=
16855    PRCPrimeCalibrationForcesMixedNonunitWitnessesReflectPrimeWitnessesTarget_proved
16856  prime_floor_prime_witnesses_control_nonunit_proved :=
16857    PRCPrimeCalibrationForcesPrimeWitnessesControlNonunitWitnessesTarget_proved
16858  prime_floor_nonunit_no_mixed_split_from_no_mixed_prime_witnesses :=
16859    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesSplitTarget_of_no_mixed_prime_witnesses
16860  prime_floor_nonunit_no_mixed_from_no_mixed_prime_witnesses :=
16861    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_of_no_mixed_prime_witnesses
16862  prime_floor_nonunit_no_mixed_iff_no_mixed_prime_witnesses :=
16863    PRCPrimeCalibrationForcesNonunitNoMixedWitnessesTarget_iff_no_mixed_prime_witnesses
16864  prime_floor_identity_witness_globalizes_from_local_exclusion :=
16865    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_of_local_exclusion
16866  prime_floor_identity_witness_local_exclusion_from_globalizes :=
16867    PRCPrimeCalibrationForcesNonunitIdentityWitnessLocalExclusionTarget_of_identity_witness_globalizes
16868  prime_floor_identity_witness_globalizes_iff_local_exclusion :=
16869    PRCPrimeCalibrationForcesNonunitIdentityWitnessGlobalizesTarget_iff_local_exclusion
16870  prime_floor_nonunit_identity_comparable_trace_from_branch_transport :=
16871    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_branch_transport
16872  prime_floor_nonunit_identity_comparable_trace_from_product_no_mixed :=
16873    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_product_no_mixed
16874  prime_floor_nonunit_identity_branch_transport_iff_comparable_trace :=
16875    PRCPrimeCalibrationForcesNonunitIdentityBranchTransportTarget_iff_comparable_trace
16876  prime_floor_product_no_mixed_iff_identity_comparable_trace :=
16877    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_identity_comparable_trace
16878  prime_floor_product_local_orientation_from_identity_comparable_trace :=
16879    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget_of_identity_comparable_trace
16880  prime_floor_nonunit_local_orientation_from_identity_comparable_trace :=
16881    PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_identity_comparable_trace
16882  prime_floor_nonunit_local_comparable_trace_from_identity_comparable_trace :=
16883    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_of_identity_comparable_trace
16884  prime_floor_nonunit_identity_comparable_trace_from_local_comparable_trace :=
16885    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_local_comparable_trace
16886  prime_floor_nonunit_local_comparable_trace_iff_identity_comparable_trace :=
16887    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalComparableTraceTarget_iff_identity_comparable_trace
16888  prime_floor_nonunit_local_no_mixed_from_coherent :=
16889    PRCPrimeCalibrationForcesNonunitOrbitOrientationLocalNoMixedTarget_of_coherent
16890  prime_floor_nonunit_coherent_from_local_no_mixed :=
16891    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_no_mixed
16892  prime_floor_nonunit_orbit_orientation_coherent_iff_local_no_mixed :=
16893    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_local_no_mixed
16894  prime_floor_nonunit_orbit_orientation_coherent_sharpened_target_refuted :=
16895    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget_refuted
16896  prime_floor_nonunit_orbit_orientation_coherent_from_local_successor_transport :=
16897    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_and_prime_floor_successor_transport
16898  prime_floor_product_no_mixed_from_nonunit_coherent :=
16899    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_nonunit_coherent
16900  prime_floor_nonunit_local_from_nonunit_coherent :=
16901    PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_nonunit_coherent
16902  prime_floor_no_adjacent_mixed_from_nonunit_coherent :=
16903    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_of_nonunit_coherent
16904  prime_floor_no_adjacent_mixed_from_successor_transport :=
16905    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_of_successor_transport
16906  prime_floor_successor_transport_from_nonunit_coherent :=
16907    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_nonunit_coherent
16908  prime_floor_nonunit_identity_comparable_trace_from_successor_transport :=
16909    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_prime_floor_successor_transport
16910  prime_floor_nonunit_orbit_orientation_sharpened_from_nonunit_coherent :=
16911    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentSharpenedTarget_of_nonunit_coherent
16912  prime_floor_nonunit_orbit_orientation_coherent_iff_sharpened :=
16913    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_sharpened
16914  prime_floor_successor_transport_from_identity_comparable_trace :=
16915    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_identity_comparable_trace
16916  prime_floor_identity_extends_successor_step_from_successor_transport :=
16917    PRCPrimeCalibrationForcesPrimeFloorIdentityExtendsSuccessorStepTarget_of_successor_transport
16918  prime_floor_identity_contracts_successor_step_from_successor_transport :=
16919    PRCPrimeCalibrationForcesPrimeFloorIdentityContractsSuccessorStepTarget_of_successor_transport
16920  prime_floor_identity_successor_step_pair_from_successor_transport :=
16921    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_successor_transport
16922  prime_floor_successor_transport_from_successor_step_pair :=
16923    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_successor_step_pair
16924  prime_floor_successor_transport_iff_successor_step_pair :=
16925    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_iff_successor_step_pair
16926  target_prime_identity_witness_globalizes_nonunit_from_successor_transport :=
16927    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_of_prime_floor_successor_transport
16928  target_prime_floor_successor_transport_from_prime_identity_witness_globalizes :=
16929    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_prime_identity_witness_globalizes
16930  target_prime_floor_successor_transport_iff_prime_identity_witness_globalizes :=
16931    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_iff_prime_identity_witness_globalizes
16932  target_prime_identity_witness_globalizes_nonunit_from_no_mixed_prime_witnesses :=
16933    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_of_no_mixed_prime_witnesses
16934  target_no_mixed_prime_witnesses_from_prime_identity_witness_globalizes :=
16935    PRCPrimeCalibrationForcesNoMixedPrimeWitnessesTarget_of_prime_identity_witness_globalizes
16936  target_prime_identity_witness_globalizes_nonunit_iff_no_mixed_prime_witnesses :=
16937    PRCPrimeCalibrationForcesPrimeIdentityWitnessGlobalizesNonunitTarget_iff_no_mixed_prime_witnesses
16938  prime_floor_identity_successor_step_pair_from_identity_comparable_trace :=
16939    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_identity_comparable_trace
16940  prime_floor_nonunit_identity_comparable_trace_from_successor_step_pair :=
16941    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_of_successor_step_pair
16942  prime_floor_nonunit_identity_comparable_trace_iff_successor_step_pair :=
16943    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_iff_successor_step_pair
16944  prime_floor_product_no_mixed_from_successor_step_pair :=
16945    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_of_successor_step_pair
16946  prime_floor_identity_successor_step_pair_from_product_no_mixed :=
16947    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_product_no_mixed
16948  prime_floor_product_no_mixed_iff_successor_step_pair :=
16949    PRCPrimeCalibrationForcesOrbitProductNoMixedOrientationTarget_iff_successor_step_pair
16950  prime_floor_nonunit_coherent_from_successor_step_pair :=
16951    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_successor_step_pair
16952  prime_floor_identity_successor_step_pair_from_nonunit_coherent :=
16953    PRCPrimeCalibrationForcesPrimeFloorIdentitySuccessorStepPairTarget_of_nonunit_coherent
16954  prime_floor_nonunit_coherent_iff_successor_step_pair :=
16955    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_iff_successor_step_pair
16956  prime_floor_nonunit_identity_comparable_trace_iff_successor_transport :=
16957    PRCPrimeCalibrationForcesNonunitIdentityComparableTraceTarget_iff_prime_floor_successor_transport
16958  prime_floor_successor_transport_local_adjacent_target_refuted :=
16959    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_refuted
16960  prime_floor_successor_transport_from_local_adjacent_target :=
16961    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_local_adjacent_target
16962  prime_floor_local_adjacent_from_local_successor_transport :=
16963    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_of_local_successor_transport
16964  prime_floor_local_adjacent_iff_local_successor_transport :=
16965    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_iff_local_successor_transport
16966  prime_floor_local_adjacent_from_nonunit_coherent :=
16967    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_of_nonunit_coherent
16968  prime_floor_nonunit_coherent_from_local_adjacent :=
16969    PRCPrimeCalibrationForcesNonunitOrbitOrientationCoherentTarget_of_local_adjacent
16970  prime_floor_local_adjacent_iff_nonunit_coherent :=
16971    PRCPrimeFloorSuccessorTransportLocalAdjacentTarget_iff_nonunit_coherent
16972  prime_floor_product_local_orientation_sharpened_target_refuted :=
16973    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationSharpenedTarget_refuted
16974  prime_floor_product_local_orientation_from_display_nomix :=
16975    PRCPrimeCalibrationForcesNonunitOrbitProductLocalOrientationTarget_of_display_compatible_nomix
16976  prime_floor_nonunit_local_orientation_from_product_local :=
16977    PRCPrimeCalibrationForcesNonunitOrbitLocalOrientationTarget_of_product_local_orientation
16978  prime_floor_no_adjacent_mixed_orientation_target_refuted :=
16979    PRCPrimeCalibrationForcesPrimeFloorNoAdjacentMixedOrientationTarget_refuted
16980  prime_floor_successor_transport_sharpened_target_refuted :=
16981    PRCPrimeFloorSuccessorTransportSharpenedTarget_refuted
16982  prime_floor_successor_transport_target_from_local_adjacent_nomix :=
16983    PRCPrimeCalibrationForcesPrimeFloorSuccessorTransportTarget_of_local_adjacent_nomix
16984  orbit_successor_transport_target_from_additive_compat :=
16985    PRCPrimeCalibrationForcesOrbitSuccessorTransportTarget_of_additive_compat
16986  prime_identity_comparable_trace_from_prime_floor_successor_transport :=
16987    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_prime_floor_successor_transport
16988  orbit_successor_identity_target_from_transport :=
16989    PRCPrimeCalibrationForcesOrbitSuccessorIdentityTarget_of_transport
16990  prime_identity_comparable_trace_from_successor_step :=
16991    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_successor_step
16992  prime_identity_common_trace_extension_from_comparable_trace :=
16993    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_comparable_trace
16994  prime_identity_canonical_add_trace_from_common_trace_target :=
16995    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_common_trace_extension
16996  prime_identity_common_trace_from_canonical_add_trace_target :=
16997    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_canonical_add_trace
16998  prime_identity_canonical_add_trace_target_iff_common_trace :=
16999    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_iff_common_trace_extension
17000  prime_identity_canonical_add_trace_from_trace_transport_target :=
17001    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_trace_transport
17002  prime_identity_trace_transport_from_canonical_add_trace_target :=
17003    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_canonical_add_trace
17004  prime_identity_canonical_add_trace_target_iff_trace_transport :=
17005    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_iff_trace_transport
17006  prime_identity_branch_uniformity_from_trace_coherence_target :=
17007    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_trace_coherence
17008  prime_identity_trace_coherence_from_branch_uniformity_target :=
17009    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_branch_uniformity
17010  prime_identity_branch_uniformity_target_iff_trace_coherence :=
17011    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_trace_coherence
17012  prime_identity_canonical_add_trace_from_branch_uniformity_target :=
17013    PRCPrimeCalibrationForcesPrimeIdentityCanonicalAddTraceTarget_of_branch_uniformity
17014  prime_identity_branch_uniformity_from_canonical_add_trace_target :=
17015    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_canonical_add_trace
17016  prime_identity_branch_uniformity_target_iff_canonical_add_trace :=
17017    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_canonical_add_trace
17018  prime_identity_trace_transport_from_common_trace :=
17019    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_common_trace_extension
17020  prime_identity_trace_coherence_from_transport :=
17021    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_trace_transport
17022  target_prime_identity_comparable_trace_from_trace_coherence :=
17023    PRCPrimeCalibrationForcesPrimeIdentityComparableTraceTarget_of_trace_coherence
17024  target_prime_identity_trace_coherence_from_comparable_trace :=
17025    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_comparable_trace
17026  target_prime_identity_trace_coherence_iff_comparable_trace :=
17027    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_comparable_trace
17028  target_prime_identity_common_trace_from_trace_coherence :=
17029    PRCPrimeCalibrationForcesPrimeIdentityCommonTraceExtensionTarget_of_trace_coherence
17030  target_prime_identity_trace_coherence_from_common_trace :=
17031    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_of_common_trace_extension
17032  target_prime_identity_trace_coherence_iff_common_trace :=
17033    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_common_trace_extension
17034  target_prime_identity_trace_transport_from_trace_coherence :=
17035    PRCPrimeCalibrationForcesPrimeIdentityTraceTransportTarget_of_trace_coherence
17036  target_prime_identity_trace_coherence_iff_trace_transport :=
17037    PRCPrimeCalibrationForcesPrimeIdentityTraceCoherenceTarget_iff_trace_transport
17038  prime_no_mixed_from_trace_coherence :=
17039    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_trace_coherence
17040  prime_no_mixed_prime_orientation_from_branch_uniformity :=
17041    PRCPrimeCalibrationForcesNoMixedPrimeOrientationTarget_of_branch_uniformity
17042  prime_identity_branch_uniformity_from_no_mixed_prime_orientation :=
17043    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_of_no_mixed_prime_orientation
17044  prime_identity_branch_uniformity_iff_no_mixed_prime_orientation :=
17045    PRCPrimeCalibrationForcesPrimeIdentityBranchUniformityTarget_iff_no_mixed_prime_orientation
17046  coherent_prime_orientation_reduction :=
17047    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_of_local_and_nomixed
17048  prime_to_coherent_orientation_target_refuted :=
17049    PRCPrimeCalibrationForcesCoherentPrimeOrientationTarget_refuted
17050  coherent_prime_orientation_propagation_target_refuted :=
17051    PRCCoherentPrimeOrientationPropagatesToGlobalTarget_refuted
17052  admissible_prime_orientation_coherent_target :=
17053    PRCAdmissibleCharacterPrimeOrientationCoherentTarget_proved
17054  admissible_signed_unit_calibration_target_refuted :=
17055    PRCAdmissibleCharacterSignedUnitCalibratedTarget_refuted
17056  signed_coherent_prime_orientation_propagation_target :=
17057    PRCSignedCoherentPrimeOrientationPropagatesToGlobalTarget_proved
17058  global_orientation_reduction :=
17059    PRCPrimeCalibrationForcesGlobalOrientationTarget_of_prime_orientation_targets
17060  prime_propagation_sharpened_target_refuted :=
17061    PRCPrimeCalibrationPropagationSharpenedTarget_refuted
17062  prime_propagation_reduction :=
17063    PRCPrimeCalibrationPropagationTarget_of_global_orientation
17064  prime_propagation_sharpened_reduction :=
17065    PRCPrimeCalibrationPropagationTarget_of_sharpened_orientation
17066  rigidity_sharpened_target_refuted :=
17067    PRCNativeCostCharacterRigiditySharpenedTarget_refuted
17068  rigidity_reduction := PRCNativeCostCharacterRigidityTarget_of_prime_targets
17069  identity_character := identity_ratio_character
17070  identity_rigid := identity_character_rigid
17071  identity_orientation := identity_character_global_orientation
17072  identity_prime_orientation_coherent :=
17073    identity_character_prime_orientation_coherent
17074  reciprocal_character := reciprocal_ratio_character
17075  reciprocal_prime_calibrated := reciprocal_character_prime_calibrated
17076  reciprocal_orientation := reciprocal_character_global_orientation
17077  reciprocal_prime_orientation_coherent :=
17078    reciprocal_character_prime_orientation_coherent
17079  sharpened_target := PRCNativeCostUniquenessSharpenedTarget_refuted
17080  reduction := PRCNativeCostUniquenessTarget_of_character_targets
17081  prime_reduction := PRCNativeCostUniquenessTarget_of_prime_character_targets
17082  original_target := PRCNativeCostUniquenessTarget_refuted
17083  original_target_refuted := PRCNativeCostUniquenessTarget_refuted
17084  strength_tag := rfl
17085
17086end PRCJCost
17087end PrimitiveRecognitionCalculus
17088end Foundation
17089end IndisputableMonolith
17090

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