IndisputableMonolith.Verification.Necessity.PhiNecessity
IndisputableMonolith/Verification/Necessity/PhiNecessity.lean · 121 lines · 7 declarations
show as:
view math explainer →
1import Mathlib
2import IndisputableMonolith.Constants
3import IndisputableMonolith.PhiSupport.Lemmas
4
5namespace IndisputableMonolith
6namespace Verification
7namespace Necessity
8namespace PhiNecessity
9
10/-- Minimal self-similarity structure sufficient for the inevitability pipeline. -/
11structure HasSelfSimilarity (StateSpace : Type) where
12 preferred_scale : ℝ
13 scale_gt_one : 1 < preferred_scale
14 level0 : ℝ
15 level1 : ℝ
16 level2 : ℝ
17 level0_pos : 0 < level0
18 level1_ratio : level1 = preferred_scale * level0
19 level2_ratio : level2 = preferred_scale * level1
20 level2_recurrence : level2 = level1 + level0
21
22namespace HasSelfSimilarity
23
24@[simp]
25lemma preferred_scale_pos {StateSpace : Type} (hSim : HasSelfSimilarity StateSpace) :
26 0 < hSim.preferred_scale :=
27 lt_trans (show (0 : ℝ) < 1 by norm_num) hSim.scale_gt_one
28
29end HasSelfSimilarity
30
31/-- **SCAFFOLD**: Canonical self-similarity witness constructed by directly
32 inserting φ. This does NOT derive self-similarity from zero parameters alone;
33 it assumes the conclusion by building a witness from the known answer.
34
35 The genuine derivation chain is:
36 1. ZeroParameterComparisonLedger → HasMultilevelComposition (structural)
37 2. HasMultilevelComposition + no_free_knobs → UniformScaleLadder (HierarchyForcing)
38 3. UniformScaleLadder + local binary recurrence + minimality → Fibonacci (HierarchyDynamics)
39 4. Fibonacci → φ (HierarchyEmergence)
40
41 See `IndisputableMonolith.Foundation.HierarchyDynamics.bridge_T5_T6` for the
42 sorry-free derivation of the Fibonacci recurrence from primitive axioms.
43
44 This scaffold constructor is retained for backward compatibility
45 with the existing exclusivity pipeline. -/
46noncomputable def self_similarity_from_discrete
47 (StateSpace : Type)
48 [Inhabited StateSpace]
49 (_levels : ℤ → StateSpace)
50 (_surj : Function.Surjective _levels) :
51 HasSelfSimilarity StateSpace :=
52 { preferred_scale := Constants.phi
53 , scale_gt_one := IndisputableMonolith.PhiSupport.one_lt_phi
54 , level0 := 1
55 , level1 := Constants.phi
56 , level2 := Constants.phi ^ 2
57 , level0_pos := by norm_num
58 , level1_ratio := by simp
59 , level2_ratio := by
60 simp [pow_two, mul_comm, mul_left_comm, mul_assoc]
61 , level2_recurrence := IndisputableMonolith.PhiSupport.phi_squared }
62
63/-- Self-similarity data forces the preferred scale to satisfy the golden-ratio polynomial. -/
64lemma preferred_scale_fixed_point
65 {StateSpace : Type} [Inhabited StateSpace]
66 (hSim : HasSelfSimilarity StateSpace) :
67 hSim.preferred_scale ^ 2 = hSim.preferred_scale + 1 := by
68 classical
69 have h₀ : hSim.level0 ≠ 0 := ne_of_gt hSim.level0_pos
70 have h_eq :
71 hSim.preferred_scale ^ 2 * hSim.level0 = (hSim.preferred_scale + 1) * hSim.level0 := by
72 calc
73 hSim.preferred_scale ^ 2 * hSim.level0
74 = hSim.preferred_scale * (hSim.preferred_scale * hSim.level0) := by
75 simp [pow_two, mul_comm, mul_left_comm, mul_assoc]
76 _ = hSim.preferred_scale * hSim.level1 := by
77 simpa [hSim.level1_ratio, mul_comm, mul_left_comm, mul_assoc]
78 _ = hSim.level2 := by
79 simpa [mul_comm, mul_left_comm, mul_assoc] using hSim.level2_ratio.symm
80 _ = hSim.level1 + hSim.level0 := hSim.level2_recurrence
81 _ = (hSim.preferred_scale + 1) * hSim.level0 := by
82 simpa [hSim.level1_ratio, right_distrib, add_comm, add_left_comm, add_assoc]
83 have hScaled := congrArg (fun t => t / hSim.level0) h_eq
84 simpa [h₀, mul_comm, mul_left_comm, mul_assoc] using hScaled
85
86/-- Core consequence: any self-similarity witness satisfies the golden-ratio identities. -/
87private lemma phi_result
88 {StateSpace : Type} [Inhabited StateSpace]
89 (hSim : HasSelfSimilarity StateSpace) :
90 hSim.preferred_scale = Constants.phi ∧
91 hSim.preferred_scale ^ 2 = hSim.preferred_scale + 1 ∧
92 hSim.preferred_scale > 0 := by
93 have hPos : 0 < hSim.preferred_scale := HasSelfSimilarity.preferred_scale_pos hSim
94 have hFixed := preferred_scale_fixed_point (StateSpace:=StateSpace) hSim
95 have hEq :=
96 (IndisputableMonolith.PhiSupport.phi_unique_pos_root hSim.preferred_scale).mp
97 ⟨hFixed, hPos⟩
98 exact ⟨hEq, hFixed, hPos⟩
99
100/-- Golden-ratio necessity when discrete levels are available. -/
101theorem self_similarity_forces_phi
102 {StateSpace : Type} [Inhabited StateSpace]
103 (hSim : HasSelfSimilarity StateSpace)
104 (_hDiscrete : ∃ levels : ℤ → StateSpace, Function.Surjective levels) :
105 hSim.preferred_scale = Constants.phi ∧
106 hSim.preferred_scale ^ 2 = hSim.preferred_scale + 1 ∧
107 hSim.preferred_scale > 0 :=
108 phi_result hSim
109
110/-- Golden-ratio necessity from the polynomial identity alone. -/
111theorem phi_is_mathematically_necessary
112 (φ : ℝ) (h_gt : 1 < φ) (h_fix : φ ^ 2 = φ + 1) :
113 φ = Constants.phi :=
114 (IndisputableMonolith.PhiSupport.phi_unique_pos_root φ).mp
115 ⟨h_fix, lt_trans (show (0 : ℝ) < 1 by norm_num) h_gt⟩
116
117end PhiNecessity
118end Necessity
119end Verification
120end IndisputableMonolith
121