theorem
proved
minus_one_step_forces_phi_shift
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 93.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
all -
all -
one_lt_phi -
phi_sq_eq -
all -
lt_trans -
mul_eq_zero -
forces -
gapAffineLogR -
minus_one_step_forces_phi_shift -
calibration -
all -
phi_sq_eq -
point -
one_lt_phi -
one_lt_phi -
gapAffineLogR
used by
formal source
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
103 have hinv_pos : 0 < (1 : ℝ) / b := one_div_pos.mpr hb_pos
104 linarith
105 have hinv_lt_one : (1 : ℝ) / b < 1 := by
106 simpa using (one_div_lt_one_div_of_lt (by norm_num : (0 : ℝ) < 1) hb)
107 have hminus_pos : 0 < 1 - (1 : ℝ) / b := by linarith
108 have hminus_ne : (1 - (1 : ℝ) / b) ≠ 0 := ne_of_gt hminus_pos
109 have hc : c = 0 := by simpa [gapAffineLogR] using h0
110 have h1' : a * Real.log (1 + (1 : ℝ) / b) = 1 := by
111 simpa [gapAffineLogR, hc] using h1
112 have hneg1_raw : a * Real.log (1 + (-1 : ℝ) / b) = -2 := by
113 simpa [gapAffineLogR, hc] using hneg1
114 have hneg1' : a * Real.log (1 - (1 : ℝ) / b) = -2 := by
115 simpa [sub_eq_add_neg, div_eq_mul_inv, mul_assoc] using hneg1_raw
116 have ha_ne : a ≠ 0 := by
117 intro ha; simp [ha] at h1'
118 have hscaled : a * (-2 * Real.log (1 + (1 : ℝ) / b)) = -2 := by
119 calc
120 a * (-2 * Real.log (1 + (1 : ℝ) / b))
121 = (-2) * (a * Real.log (1 + (1 : ℝ) / b)) := by ring
122 _ = (-2) * 1 := by rw [h1']
123 _ = -2 := by ring