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

HasXReciprocity

definition
show as:
view math explainer →
module
IndisputableMonolith.ILG.Reciprocity
domain
ILG
line
14 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.ILG.Reciprocity on GitHub at line 14.

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

  11
  12/-- A function Q(a, k) satisfies X-reciprocity if there exists a function Q_tilde
  13    such that Q(a, k) = Q_tilde (X_var k a tau0). -/
  14def HasXReciprocity (Q : ℝ → ℝ → ℝ) (tau0 : ℝ) : Prop :=
  15  ∃ Q_tilde : ℝ → ℝ, ∀ a k, Q a k = Q_tilde (X_var k a tau0)
  16
  17/-- The X-reciprocity identity: if Q depends only on X = k*tau0/a,
  18    then a * ∂Q/∂a = - k * ∂Q/∂k.
  19
  20    This is the derivative form of ∂lnQ/∂lna = -∂lnQ/∂lnk. -/
  21theorem x_reciprocity_identity (tau0 : ℝ) (Q_tilde : ℝ → ℝ)
  22    (a k : ℝ) (ha : a ≠ 0) (hk : k ≠ 0)
  23    (hQ : DifferentiableAt ℝ Q_tilde (X_var k a tau0)) :
  24    let Q := fun (a k : ℝ) => Q_tilde (X_var k a tau0)
  25    a * (deriv (fun a' => Q a' k) a) = - (k * (deriv (fun k' => Q a k') k)) := by
  26  set X := X_var k a tau0
  27  let f_a := fun a' => Q_tilde (X_var k a' tau0)
  28  let f_k := fun k' => Q_tilde (X_var k' a tau0)
  29
  30  -- Partial with respect to a
  31  have h_deriv_a : deriv f_a a = deriv Q_tilde X * (-(k * tau0) / a^2) := by
  32    rw [show f_a = Q_tilde ∘ (fun a' => (k * tau0) / a') by funext a'; rfl]
  33    have h_inner : DifferentiableAt ℝ (fun a' => (k * tau0) / a') a := by
  34      apply DifferentiableAt.const_div
  35      · exact differentiableAt_id'
  36      · exact ha
  37    rw [deriv_comp a hQ h_inner]
  38    congr
  39    rw [deriv_const_div (k * tau0) differentiableAt_id' ha]
  40    simp
  41    ring
  42
  43  -- Partial with respect to k
  44  have h_deriv_k : deriv f_k k = deriv Q_tilde X * (tau0 / a) := by