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

AveragingAgree

definition
show as:
view math explainer →
module
IndisputableMonolith.Cost
domain
Cost
line
46 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.Cost on GitHub at line 46.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

used by

formal source

  43  symmetric : ∀ {x}, 0 < x → F x = F x⁻¹
  44  unit0 : F 1 = 0
  45
  46class AveragingAgree (F : ℝ → ℝ) : Prop where
  47  agrees : AgreesOnExp F
  48
  49class AveragingDerivation (F : ℝ → ℝ) : Prop extends SymmUnit F where
  50  agrees : AgreesOnExp F
  51
  52lemma even_on_log_of_symm {F : ℝ → ℝ} [SymmUnit F] (t : ℝ) :
  53    F (Real.exp t) = F (Real.exp (-t)) := by
  54  have hx : 0 < Real.exp t := Real.exp_pos t
  55  simpa [Real.exp_neg] using (SymmUnit.symmetric (F:=F) hx)
  56
  57class AveragingBounds (F : ℝ → ℝ) : Prop extends SymmUnit F where
  58  upper : ∀ t : ℝ, F (Real.exp t) ≤ Jcost (Real.exp t)
  59  lower : ∀ t : ℝ, Jcost (Real.exp t) ≤ F (Real.exp t)
  60
  61theorem agrees_on_exp_of_bounds {F : ℝ → ℝ} [AveragingBounds F] :
  62    AgreesOnExp F := by
  63  intro t
  64  have h₁ := AveragingBounds.upper (F:=F) t
  65  have h₂ := AveragingBounds.lower (F:=F) t
  66  have : F (Real.exp t) = Jcost (Real.exp t) := le_antisymm h₁ h₂
  67  simpa using this
  68
  69theorem F_eq_J_on_pos_alt (F : ℝ → ℝ)
  70  (hAgree : AgreesOnExp F) : ∀ {x : ℝ}, 0 < x → F x = Jcost x := by
  71  intro x hx
  72  have : ∃ t, Real.exp t = x := ⟨Real.log x, by simpa using Real.exp_log hx⟩
  73  rcases this with ⟨t, rfl⟩
  74  simpa using hAgree t
  75
  76instance (priority := 90) averagingDerivation_of_bounds {F : ℝ → ℝ} [AveragingBounds F] :