lemma
proved
unit_step_forces_log_scale
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.RSBridge.GapFunctionForcing on GitHub at line 72.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
one_lt_phi -
forces -
is -
is -
is -
gapAffineLogR -
log_one_add_inv_phi_eq_log_phi -
unit_step_forces_log_scale -
zero_normalization_forces_offset -
is -
one_lt_phi -
one_lt_phi -
gapAffineLogR -
log_one_add_inv_phi_eq_log_phi -
zero_normalization_forces_offset
used by
formal source
69
70/-! ## Step 2: g(1) = 1 forces a = 1/log(φ) (given c = 0 and b = φ) -/
71
72lemma unit_step_forces_log_scale
73 {a c : ℝ}
74 (h0 : gapAffineLogR a phi c 0 = 0)
75 (h1 : gapAffineLogR a phi c 1 = 1) :
76 a = 1 / Real.log phi := by
77 have hc : c = 0 := zero_normalization_forces_offset h0
78 have hlog_ne : Real.log phi ≠ 0 := ne_of_gt (Real.log_pos one_lt_phi)
79 have hmul_raw : a * Real.log (1 + phi⁻¹) = 1 := by
80 simpa [gapAffineLogR, hc] using h1
81 have hmul : a * Real.log phi = 1 := by
82 calc
83 a * Real.log phi = a * Real.log (1 + phi⁻¹) := by
84 rw [log_one_add_inv_phi_eq_log_phi]
85 _ = 1 := hmul_raw
86 exact (eq_div_iff hlog_ne).2 hmul
87
88/-! ## Step 3: g(-1) = -2 forces b = φ (the key theorem)
89
90This is the paper's Theorem 4.2: setting u = 1/b, the condition
91`(1 - u)(1 + u)^2 = 1` expands to `u^2 + u - 1 = 0`, giving u = 1/φ. -/
92
93theorem minus_one_step_forces_phi_shift
94 {a b c : ℝ}
95 (hb : 1 < b)
96 (h0 : gapAffineLogR a b c 0 = 0)
97 (h1 : gapAffineLogR a b c 1 = 1)
98 (hneg1 : gapAffineLogR a b c (-1) = -2) :
99 b = phi := by
100 have hb_pos : 0 < b := lt_trans zero_lt_one hb
101 have hb_ne : b ≠ 0 := ne_of_gt hb_pos
102 have hplus_pos : 0 < 1 + (1 : ℝ) / b := by