pith. machine review for the scientific record. sign in
lemma

B_of_one

proved
show as:
view math explainer →
module
IndisputableMonolith.RecogSpec.Scales
domain
RecogSpec
line
21 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.RecogSpec.Scales on GitHub at line 21.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

formal source

  18  have : 0 < (2:ℝ) := by norm_num
  19  simpa [B_of] using pow_pos this k
  20
  21@[simp] lemma B_of_one : B_of 1 = 2 := by simp [B_of]
  22
  23lemma one_le_B_of (k : Nat) : (1 : ℝ) ≤ B_of k := by
  24  induction k with
  25  | zero => simp [B_of]
  26  | succ k ih =>
  27      have hmul : (2 : ℝ) ≤ 2 * B_of k := by
  28        have : 2 * (1 : ℝ) ≤ 2 * B_of k := by
  29          have hnonneg : 0 ≤ (2 : ℝ) := by norm_num
  30          exact mul_le_mul_of_nonneg_left ih hnonneg
  31        simpa using this
  32      have h12 : (1 : ℝ) ≤ 2 := by norm_num
  33      have : (1 : ℝ) ≤ 2 * B_of k := le_trans h12 hmul
  34      simpa [B_of_succ, mul_comm] using this
  35
  36/-- Two to an integer power: 2^k for k ∈ ℤ. -/
  37noncomputable def twoPowZ (k : Int) : ℝ :=
  38  if 0 ≤ k then (2 : ℝ) ^ (Int.toNat k)
  39  else 1 / ((2 : ℝ) ^ (Int.toNat (-k)))
  40
  41@[simp] lemma twoPowZ_zero : twoPowZ 0 = 1 := by simp [twoPowZ]
  42@[simp] lemma twoPowZ_ofNat (k : Nat) : twoPowZ (Int.ofNat k) = (2 : ℝ) ^ k := by simp [twoPowZ]
  43@[simp] lemma twoPowZ_negSucc (k : Nat) : twoPowZ (Int.negSucc k) = 1 / ((2 : ℝ) ^ k.succ) := by
  44  simp [twoPowZ]
  45
  46/-- φ-power wrapper. -/
  47noncomputable def PhiPow (x : ℝ) : ℝ := Real.exp (Real.log (Constants.phi) * x)
  48
  49lemma PhiPow_add (x y : ℝ) : PhiPow (x + y) = PhiPow x * PhiPow y := by
  50  unfold PhiPow
  51  have hx : Real.log (Constants.phi) * (x + y)