theorem
proved
scale_change_cost
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Cosmology.ScaleInvarianceSelectionCert on GitHub at line 45.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
scale -
rcl_equality -
Jcost_nonneg -
Jcost_nonneg -
cost -
cost -
is -
is -
is -
Jcost_nonneg -
Jcost_nonneg -
is -
Jcost_nonneg
used by
formal source
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⁻¹
67
68/-- Scale-invariance selection certificate. -/
69def scaleInvarianceCert : ScaleInvarianceCert where
70 rcl := rcl_equality
71 scale_cost_bound := scale_change_cost
72 free_at_unit := @no_scale_change_is_free
73 log_symmetric := Jcost_symm
74
75end