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

rcl_equality

proved
show as:
view math explainer →
module
IndisputableMonolith.Cosmology.ScaleInvarianceSelectionCert
domain
Cosmology
line
36 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Cosmology.ScaleInvarianceSelectionCert on GitHub at line 36.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  33/-- The Recognition Composition Law (RCL) in inequality form:
  34    J(xy) + J(x/y) = 2J(x)J(y) + 2J(x) + 2J(y).
  35    The cost of combining x and y is controlled by their individual costs. -/
  36theorem rcl_equality {x y : ℝ} (hx : 0 < x) (hy : 0 < y) :
  37    Jcost (x * y) + Jcost (x / y) = 2 * Jcost x * Jcost y + 2 * Jcost x + 2 * Jcost y := by
  38  rw [Jcost_eq_sq hx.ne', Jcost_eq_sq hy.ne',
  39      Jcost_eq_sq (mul_pos hx hy).ne',
  40      Jcost_eq_sq (div_pos hx hy).ne']
  41  field_simp [hx.ne', hy.ne']
  42  ring
  43
  44/-- Scale-change cost: J(cx) is controlled by J(x) and J(c). -/
  45theorem scale_change_cost {c x : ℝ} (hc : 0 < c) (hx : 0 < x) :
  46    Jcost (c * x) ≤ 2 * Jcost c * Jcost x + 2 * Jcost c + 2 * Jcost x := by
  47  have h := rcl_equality hc hx
  48  -- J(cx) + J(c/x) = 2J(c)J(x) + 2J(c) + 2J(x)
  49  -- J(cx) ≤ 2J(c)J(x) + 2J(c) + 2J(x) since J(c/x) ≥ 0
  50  linarith [Jcost_nonneg (div_pos hc hx)]
  51
  52/-- If c = 1 (no scale change), cost is zero. -/
  53theorem no_scale_change_is_free {x : ℝ} (hx : 0 < x) :
  54    Jcost (1 * x) = Jcost x := by simp
  55
  56/-- Scale invariance in log-space: J is symmetric under inversion. -/
  57theorem log_space_symmetry {x : ℝ} (hx : 0 < x) :
  58    Jcost x = Jcost x⁻¹ := Jcost_symm hx
  59
  60structure ScaleInvarianceCert where
  61  rcl : ∀ {x y : ℝ}, 0 < x → 0 < y →
  62    Jcost (x * y) + Jcost (x / y) = 2 * Jcost x * Jcost y + 2 * Jcost x + 2 * Jcost y
  63  scale_cost_bound : ∀ {c x : ℝ}, 0 < c → 0 < x →
  64    Jcost (c * x) ≤ 2 * Jcost c * Jcost x + 2 * Jcost c + 2 * Jcost x
  65  free_at_unit : ∀ {x : ℝ}, 0 < x → Jcost (1 * x) = Jcost x
  66  log_symmetric : ∀ {x : ℝ}, 0 < x → Jcost x = Jcost x⁻¹