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.Masses.GapFunctionForcing on GitHub at line 73.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
one_lt_phi -
forces -
gapAffineLogR -
log_one_add_inv_phi_eq_log_phi -
zero_normalization_forces_offset -
calibration -
point -
one_lt_phi -
one_lt_phi -
gapAffineLogR -
log_one_add_inv_phi_eq_log_phi -
unit_step_forces_log_scale -
zero_normalization_forces_offset
used by
formal source
70 simpa [gapAffineLogR] using h0
71
72/-- Unit-step calibration fixes the log scale coefficient. -/
73lemma unit_step_forces_log_scale
74 {a c : ℝ}
75 (h0 : gapAffineLogR a phi c 0 = 0)
76 (h1 : gapAffineLogR a phi c 1 = 1) :
77 a = 1 / Real.log phi := by
78 have hc : c = 0 := zero_normalization_forces_offset h0
79 have hlog_ne : Real.log phi ≠ 0 := ne_of_gt (Real.log_pos one_lt_phi)
80 have hmul_raw : a * Real.log (1 + phi⁻¹) = 1 := by
81 simpa [gapAffineLogR, hc] using h1
82 have hmul : a * Real.log phi = 1 := by
83 calc
84 a * Real.log phi = a * Real.log (1 + phi⁻¹) := by
85 rw [log_one_add_inv_phi_eq_log_phi]
86 _ = 1 := hmul_raw
87 exact (eq_div_iff hlog_ne).2 hmul
88
89/-- Three-point calibration (`x = -1,0,1`) forces the affine-log shift to `b = φ`.
90 The extra `b > 1` assumption encodes the physically relevant positive-shift branch. -/
91lemma minus_one_step_forces_phi_shift
92 {a b c : ℝ}
93 (hb : 1 < b)
94 (h0 : gapAffineLogR a b c 0 = 0)
95 (h1 : gapAffineLogR a b c 1 = 1)
96 (hneg1 : gapAffineLogR a b c (-1) = -2) :
97 b = phi := by
98 have hb_pos : 0 < b := lt_trans zero_lt_one hb
99 have hb_ne : b ≠ 0 := ne_of_gt hb_pos
100 have hplus_pos : 0 < 1 + (1 : ℝ) / b := by
101 have hinv_pos : 0 < (1 : ℝ) / b := one_div_pos.mpr hb_pos
102 linarith
103 have hinv_lt_one : (1 : ℝ) / b < 1 := by