Encyclopedia Cost Cost Cont Diff Reduction D Alembert First Deriv Of Cont Diff
ARTICLE 5 claims 5 theorems
Cost Cont Diff Reduction D Alembert First Deriv Of Cont Diff
A small regularity assumption turns a functional equation into an ordinary differential equation, and that switch is what lets a uniqueness proof go through.
The first derivative step
The d'Alembert equation, named for Jean le Rond d'Alembert's 1747 work on vibrating strings, is the functional equation H(t+u) + H(t-u) = 2 H(t) H(u). It appears whenever a quantity's value at a sum and difference of two inputs is governed by its values at the inputs separately. The equation has many wild solutions if no regularity is assumed; demanding that H be twice continuously differentiable, written C², selects the well-behaved ones.
The declaration dAlembert_first_deriv_of_contDiff proves that if H satisfies the d'Alembert equation and is C², then differentiating once in the second variable yields the identity deriv H(t+u) - deriv H(t-u) = 2 H(t) deriv H(u). This is the first step in a chain: differentiating again at u = 0 gives H''(t) = H(t) H''(0), and with the calibration H''(0) = 1, the function satisfies the ordinary differential equation H'' = H. The unique solution with H(0) = 1 is the hyperbolic cosine, cosh(t) = (e^t + e^-t)/2.
In Recognition Science, the framework models recognition cost as a function J(x) = (x + 1/x)/2 - 1, derived from normalization, a composition law, and calibration. The C² reduction sharpens the earlier theorem: on the twice-differentiable surface, reciprocal symmetry J(x) = J(1/x) is derived from the composition law rather than assumed. The machine-checked library of formal theorems proves that normalization, composition, calibration, and C² regularity of H = J + 1 force the canonical cost.
What the declaration does not claim is broader. It does not prove that every d'Alembert solution is cosh; that requires calibration. It does not establish the cost function without the composition law. It does not show that the C² condition is necessary; merely sufficient. The theorem is a bridge: it converts a functional equation into an ODE, and the ODE is what the uniqueness proof uses.
THEOREM dAlembert_first_deriv_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- Differentiate the d'Alembert equation once in the second variable. -/
theorem dAlembert_first_deriv_of_contDiff
(Hf : ℝ → ℝ)
(h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u)
(h_diff : ContDiff ℝ 2 Hf) :
∀ t u, deriv Hf (t + u) - deriv Hf (t - u) = 2 * Hf t * deriv Hf u := by
intro t u
have h_diff1 : Differentiable ℝ Hf := contDiffTwo_differentiable h_diff
have h_plus :
HasDerivAt (fun v => Hf (t + v)) (deriv Hf (t + u)) u := by
have h_inner : HasDerivAt (fun v => t + v) 1 u := by
simpa using (hasDerivAt_const u t).add (hasDerivAt_id u)
simpa using (h_diff1.differentiableAt (x := t + u)).hasDerivAt.comp u h_inner
have h_minus :
HasDerivAt (fun v => Hf (t - v)) (-deriv Hf (t - u)) u := by
have h_inner : HasDerivAt (fun v => t - v) (-1) u := by
simpa using (hasDerivAt_const u t).sub (hasDerivAt_id u)
simpa using (h_diff1.differentiableAt (x := t - u)).hasDerivAt.comp u h_inner
have h_left :
HasDerivAt (fun v => Hf (t + v) + Hf (t - v))
(deriv Hf (t + u) - deriv Hf (t - u)) u := by
simpa using h_plus.add h_minus
have h_const : HasDerivAt (fun _ : ℝ => 2 * Hf t) 0 u :=
hasDerivAt_const u (2 * Hf t)
have h_right :
HasDerivAt (((fun _ : ℝ => 2 * Hf t) * Hf)) (2 * (Hf t * deriv Hf u)) u := by
simpa [mul_assoc] using h_const.mul ((h_diff1.differentiableAt (x := u)).hasDerivAt)
have h_eq :
(fun v => Hf (t + v) + Hf (t - v)) = ((fun _ : ℝ => 2 * Hf t) * Hf) := by
funext v
simpa [Pi.mul_apply, mul_assoc] using h_dAlembert t v
have h_deriv_eq := congrArg (fun f : ℝ → ℝ => deriv f u) h_eq
change deriv (fun v => Hf (t + v) + Hf (t - v)) u =
deriv (((fun _ : ℝ => 2 * Hf t) * Hf)) u at h_deriv_eq
rw [h_left.deriv, h_right.deriv] at h_deriv_eq
simpa [mul_assoc] using h_deriv_eq
THEOREM dAlembert_second_deriv_at_zero_of_contDiff · dAlembert_to_ODE_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- Differentiate the first-derivative identity at `u = 0` to relate `H''(t)` to `H''(0)`. -/
theorem dAlembert_second_deriv_at_zero_of_contDiff
(Hf : ℝ → ℝ)
(h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u)
(h_diff : ContDiff ℝ 2 Hf) :
∀ t, 2 * deriv (deriv Hf) t = 2 * Hf t * deriv (deriv Hf) 0 := by
intro t
have h_first :
(fun u => deriv Hf (t + u) - deriv Hf (t - u)) =
((fun _ : ℝ => 2 * Hf t) * deriv Hf) := by
funext u
simpa [Pi.mul_apply, mul_assoc] using
dAlembert_first_deriv_of_contDiff Hf h_dAlembert h_diff t u
have h_plus :
HasDerivAt (fun u => deriv Hf (t + u)) (deriv (deriv Hf) t) 0 := by
have h_inner : HasDerivAt (fun u => t + u) 1 0 := by
simpa using (hasDerivAt_const 0 t).add (hasDerivAt_id 0)
simpa using (hasDerivAt_deriv_of_contDiffTwo h_diff (t + 0)).comp 0 h_inner
have h_minus_raw :
HasDerivAt (fun u => deriv Hf (t - u)) (-deriv (deriv Hf) t) 0 := by
have h_inner : HasDerivAt (fun u => t - u) (-1) 0 := by
simpa using (hasDerivAt_const 0 t).sub (hasDerivAt_id 0)
simpa using (hasDerivAt_deriv_of_contDiffTwo h_diff (t - 0)).comp 0 h_inner
have h_left_raw :
HasDerivAt (fun u => deriv Hf (t + u) - deriv Hf (t - u))
(deriv (deriv Hf) t + deriv (deriv Hf) t) 0 := by
simpa using h_plus.sub h_minus_raw
have h_const : HasDerivAt (fun _ : ℝ => 2 * Hf t) 0 0 :=
hasDerivAt_const 0 (2 * Hf t)
have h_right :
HasDerivAt (((fun _ : ℝ => 2 * Hf t) * deriv Hf))
(2 * (Hf t * deriv (deriv Hf) 0)) 0 := by
simpa [mul_assoc] using h_const.mul (hasDerivAt_deriv_of_contDiffTwo h_diff 0)
have h_deriv_eq := congrArg (fun f : ℝ → ℝ => deriv f 0) h_first
change deriv (fun u => deriv Hf (t + u) - deriv Hf (t - u)) 0 =
deriv (((fun _ : ℝ => 2 * Hf t) * deriv Hf)) 0 at h_deriv_eq
rw [h_left_raw.deriv, h_right.deriv] at h_deriv_eq
linarith
/-- A `C²` d'Alembert solution with calibrated second derivative satisfies `H'' = H`. -/
theorem dAlembert_to_ODE_of_contDiff
(Hf : ℝ → ℝ)
(h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u)
(h_diff : ContDiff ℝ 2 Hf)
(h_deriv2_zero : deriv (deriv Hf) 0 = 1) :
∀ t, deriv (deriv Hf) t = Hf t := by
intro t
have h_rel := dAlembert_second_deriv_at_zero_of_contDiff Hf h_dAlembert h_diff t
rw [h_deriv2_zero] at h_rel
linarith
THEOREM dAlembert_cosh_solution_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- `C²` d'Alembert solutions are determined by calibration and equal `cosh`. -/
theorem dAlembert_cosh_solution_of_contDiff
(Hf : ℝ → ℝ)
(h_one : Hf 0 = 1)
(h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u)
(h_diff : ContDiff ℝ 2 Hf)
(h_deriv2_zero : deriv (deriv Hf) 0 = 1) :
∀ t, Hf t = Real.cosh t := by
have h_ode : ∀ t, deriv (deriv Hf) t = Hf t :=
dAlembert_to_ODE_of_contDiff Hf h_dAlembert h_diff h_deriv2_zero
have h_even : Function.Even Hf := dAlembert_even Hf h_one h_dAlembert
have h_diff0 : DifferentiableAt ℝ Hf 0 :=
(contDiffTwo_differentiable h_diff).differentiableAt
have h_deriv_zero : deriv Hf 0 = 0 :=
even_deriv_at_zero Hf h_even h_diff0
exact ode_cosh_uniqueness_contdiff Hf h_diff h_ode h_one h_deriv_zero
THEOREM composition_law_forces_reciprocity · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- A normalized composition-law cost is automatically reciprocal. -/
theorem composition_law_forces_reciprocity
(F : ℝ → ℝ)
(hNorm : IsNormalized F)
(hComp : SatisfiesCompositionLaw F) :
IsReciprocalCost F := by
intro x hx
let Hf : ℝ → ℝ := H F
have h_H0 : Hf 0 = 1 := by
dsimp [Hf]
simpa [H, G, IsNormalized] using hNorm
have hCoshAdd : CoshAddIdentity F := (composition_law_equiv_coshAdd F).mp hComp
have h_direct : DirectCoshAdd (G F) := CoshAddIdentity_implies_DirectCoshAdd F hCoshAdd
have h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u := by
intro t u
have hG := h_direct t u
have h_goal :
(G F (t + u) + 1) + (G F (t - u) + 1) = 2 * (G F t + 1) * (G F u + 1) := by
calc
(G F (t + u) + 1) + (G F (t - u) + 1)
= (G F (t + u) + G F (t - u)) + 2 := by ring
_ = (2 * (G F t * G F u) + 2 * (G F t + G F u)) + 2 := by simpa [hG]
_ = 2 * (G F t + 1) * (G F u + 1) := by ring
simpa [Hf, H] using h_goal
have h_even : Function.Even Hf := dAlembert_even Hf h_H0 h_dAlembert
have h_even_at_log := h_even (Real.log x)
have h_eq_plus :
F x + 1 = F x⁻¹ + 1 := by
simpa [Hf, H, G, Real.exp_log hx, Real.exp_neg] using h_even_at_log.symm
linarith
THEOREM law_of_logic_forces_jcost_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- Sharpened T5 surface:
normalization, the composition law, calibration, and `C²` regularity of `H = G + 1`
already force the canonical reciprocal cost. Reciprocal symmetry is derived, not assumed. -/
theorem law_of_logic_forces_jcost_of_contDiff
(F : ℝ → ℝ)
(hNorm : IsNormalized F)
(hComp : SatisfiesCompositionLaw F)
(hCalib : IsCalibrated F)
(h_diff : ContDiff ℝ 2 (H F)) :
∀ x : ℝ, 0 < x → F x = Cost.Jcost x := by
intro x hx
let Gf : ℝ → ℝ := G F
let Hf : ℝ → ℝ := H F
have hCoshAdd : CoshAddIdentity F := (composition_law_equiv_coshAdd F).mp hComp
have h_direct : DirectCoshAdd Gf := CoshAddIdentity_implies_DirectCoshAdd F hCoshAdd
have h_H0 : Hf 0 = 1 := by
dsimp [Hf]
simpa [H, G, IsNormalized] using hNorm
have h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u := by
intro t u
have hG := h_direct t u
have h_goal :
(Gf (t + u) + 1) + (Gf (t - u) + 1) = 2 * (Gf t + 1) * (Gf u + 1) := by
calc
(Gf (t + u) + 1) + (Gf (t - u) + 1)
= (Gf (t + u) + Gf (t - u)) + 2 := by ring
_ = (2 * (Gf t * Gf u) + 2 * (Gf t + Gf u)) + 2 := by simp [hG]
_ = 2 * (Gf t + 1) * (Gf u + 1) := by ring
simpa [Hf, H, Gf] using h_goal
have h_H_d2 : deriv (deriv Hf) 0 = 1 := by
have hG_d2 : deriv (deriv Gf) 0 = 1 := by
simpa [Gf, G, IsCalibrated] using hCalib
have hderiv : deriv Hf = deriv Gf := by
funext t
change deriv (fun y => Gf y + 1) t = deriv Gf t
exact deriv_add_const (f := Gf) (x := t) (c := (1 : ℝ))
have hderiv2 : deriv (deriv Hf) = deriv (deriv Gf) := congrArg deriv hderiv
exact (congrArg (fun g => g 0) hderiv2).trans hG_d2
have h_H_cosh : ∀ t, Hf t = Real.cosh t :=
dAlembert_cosh_solution_of_contDiff Hf h_H0 h_dAlembert (by simpa [Hf] using h_diff) h_H_d2
have h_G_cosh : ∀ t, Gf t = Real.cosh t - 1 := by
intro t
have hH := h_H_cosh t
have hH' : Gf t + 1 = Real.cosh t := by
simpa [Hf, H, Gf] using hH
linarith
have ht : Real.exp (Real.log x) = x := Real.exp_log hx
have hJG : G Cost.Jcost (Real.log x) = Real.cosh (Real.log x) - 1 :=
Jcost_G_eq_cosh_sub_one (Real.log x)
calc
F x = F (Real.exp (Real.log x)) := by rw [ht]
_ = Gf (Real.log x) := rfl
_ = Real.cosh (Real.log x) - 1 := h_G_cosh (Real.log x)
_ = G Cost.Jcost (Real.log x) := by simpa using hJG.symm
_ = Cost.Jcost (Real.exp (Real.log x)) := by simp [G]
_ = Cost.Jcost x := by rw [ht]
What this page does not claim
The declaration does not prove that every d'Alembert solution is cosh without calibration. The declaration does not establish the cost function without the composition law. The declaration does not show that the C² condition is necessary, only sufficient.
Verify this page
Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:
$ lake env lean IndisputableMonolith/Cost/ContDiffReduction.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)
A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.
Derived articles
This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:
- What pathological solutions to the d'Alembert equation exist without the C² assumption?
- How does the C² reduction compare with the earlier regularity assumptions in the forcing chain?
- What is the physical interpretation of the cosh solution in the recognition cost framework?
- Can the C² condition be weakened to C¹ or merely differentiable?
- How does the derived reciprocal symmetry relate to the golden ratio and the eight-tick cycle?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM dAlembert_first_deriv_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- Differentiate the d'Alembert equation once in the second variable. -/ theorem dAlembert_first_deriv_of_contDiff (Hf : ℝ → ℝ) (h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u) (h_diff : ContDiff ℝ 2 Hf) : ∀ t u, deriv Hf (t + u) - deriv Hf (t - u) = 2 * Hf t * deriv Hf u := by intro t u have h_diff1 : Differentiable ℝ Hf := contDiffTwo_differentiable h_diff have h_plus : HasDerivAt (fun v => Hf (t + v)) (deriv Hf (t + u)) u := by have h_inner : HasDerivAt (fun v => t + v) 1 u := by simpa using (hasDerivAt_const u t).add (hasDerivAt_id u) simpa using (h_diff1.differentiableAt (x := t + u)).hasDerivAt.comp u h_inner have h_minus : HasDerivAt (fun v => Hf (t - v)) (-deriv Hf (t - u)) u := by have h_inner : HasDerivAt (fun v => t - v) (-1) u := by simpa using (hasDerivAt_const u t).sub (hasDerivAt_id u) simpa using (h_diff1.differentiableAt (x := t - u)).hasDerivAt.comp u h_inner have h_left : HasDerivAt (fun v => Hf (t + v) + Hf (t - v)) (deriv Hf (t + u) - deriv Hf (t - u)) u := by simpa using h_plus.add h_minus have h_const : HasDerivAt (fun _ : ℝ => 2 * Hf t) 0 u := hasDerivAt_const u (2 * Hf t) have h_right : HasDerivAt (((fun _ : ℝ => 2 * Hf t) * Hf)) (2 * (Hf t * deriv Hf u)) u := by simpa [mul_assoc] using h_const.mul ((h_diff1.differentiableAt (x := u)).hasDerivAt) have h_eq : (fun v => Hf (t + v) + Hf (t - v)) = ((fun _ : ℝ => 2 * Hf t) * Hf) := by funext v simpa [Pi.mul_apply, mul_assoc] using h_dAlembert t v have h_deriv_eq := congrArg (fun f : ℝ → ℝ => deriv f u) h_eq change deriv (fun v => Hf (t + v) + Hf (t - v)) u = deriv (((fun _ : ℝ => 2 * Hf t) * Hf)) u at h_deriv_eq rw [h_left.deriv, h_right.deriv] at h_deriv_eq simpa [mul_assoc] using h_deriv_eqThe declaration dAlembert_first_deriv_of_contDiff proves that if H satisfies the d'Alembert equation and is C², then differentiating once in the second variable yields the identity deriv H(t+u) - deriv H(t-u) = 2 H(t) deriv H(u). dAlembert_first_deriv_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.leanTHEOREM dAlembert_second_deriv_at_zero_of_contDiff · dAlembert_to_ODE_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- Differentiate the first-derivative identity at `u = 0` to relate `H''(t)` to `H''(0)`. -/ theorem dAlembert_second_deriv_at_zero_of_contDiff (Hf : ℝ → ℝ) (h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u) (h_diff : ContDiff ℝ 2 Hf) : ∀ t, 2 * deriv (deriv Hf) t = 2 * Hf t * deriv (deriv Hf) 0 := by intro t have h_first : (fun u => deriv Hf (t + u) - deriv Hf (t - u)) = ((fun _ : ℝ => 2 * Hf t) * deriv Hf) := by funext u simpa [Pi.mul_apply, mul_assoc] using dAlembert_first_deriv_of_contDiff Hf h_dAlembert h_diff t u have h_plus : HasDerivAt (fun u => deriv Hf (t + u)) (deriv (deriv Hf) t) 0 := by have h_inner : HasDerivAt (fun u => t + u) 1 0 := by simpa using (hasDerivAt_const 0 t).add (hasDerivAt_id 0) simpa using (hasDerivAt_deriv_of_contDiffTwo h_diff (t + 0)).comp 0 h_inner have h_minus_raw : HasDerivAt (fun u => deriv Hf (t - u)) (-deriv (deriv Hf) t) 0 := by have h_inner : HasDerivAt (fun u => t - u) (-1) 0 := by simpa using (hasDerivAt_const 0 t).sub (hasDerivAt_id 0) simpa using (hasDerivAt_deriv_of_contDiffTwo h_diff (t - 0)).comp 0 h_inner have h_left_raw : HasDerivAt (fun u => deriv Hf (t + u) - deriv Hf (t - u)) (deriv (deriv Hf) t + deriv (deriv Hf) t) 0 := by simpa using h_plus.sub h_minus_raw have h_const : HasDerivAt (fun _ : ℝ => 2 * Hf t) 0 0 := hasDerivAt_const 0 (2 * Hf t) have h_right : HasDerivAt (((fun _ : ℝ => 2 * Hf t) * deriv Hf)) (2 * (Hf t * deriv (deriv Hf) 0)) 0 := by simpa [mul_assoc] using h_const.mul (hasDerivAt_deriv_of_contDiffTwo h_diff 0) have h_deriv_eq := congrArg (fun f : ℝ → ℝ => deriv f 0) h_first change deriv (fun u => deriv Hf (t + u) - deriv Hf (t - u)) 0 = deriv (((fun _ : ℝ => 2 * Hf t) * deriv Hf)) 0 at h_deriv_eq rw [h_left_raw.deriv, h_right.deriv] at h_deriv_eq linarith/-- A `C²` d'Alembert solution with calibrated second derivative satisfies `H'' = H`. -/ theorem dAlembert_to_ODE_of_contDiff (Hf : ℝ → ℝ) (h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u) (h_diff : ContDiff ℝ 2 Hf) (h_deriv2_zero : deriv (deriv Hf) 0 = 1) : ∀ t, deriv (deriv Hf) t = Hf t := by intro t have h_rel := dAlembert_second_deriv_at_zero_of_contDiff Hf h_dAlembert h_diff t rw [h_deriv2_zero] at h_rel linarithDifferentiating again at u = 0 gives H''(t) = H(t) H''(0), and with the calibration H''(0) = 1, the function satisfies the ordinary differential equation H'' = H. dAlembert_second_deriv_at_zero_of_contDiff · dAlembert_to_ODE_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.leanTHEOREM dAlembert_cosh_solution_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- `C²` d'Alembert solutions are determined by calibration and equal `cosh`. -/ theorem dAlembert_cosh_solution_of_contDiff (Hf : ℝ → ℝ) (h_one : Hf 0 = 1) (h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u) (h_diff : ContDiff ℝ 2 Hf) (h_deriv2_zero : deriv (deriv Hf) 0 = 1) : ∀ t, Hf t = Real.cosh t := by have h_ode : ∀ t, deriv (deriv Hf) t = Hf t := dAlembert_to_ODE_of_contDiff Hf h_dAlembert h_diff h_deriv2_zero have h_even : Function.Even Hf := dAlembert_even Hf h_one h_dAlembert have h_diff0 : DifferentiableAt ℝ Hf 0 := (contDiffTwo_differentiable h_diff).differentiableAt have h_deriv_zero : deriv Hf 0 = 0 := even_deriv_at_zero Hf h_even h_diff0 exact ode_cosh_uniqueness_contdiff Hf h_diff h_ode h_one h_deriv_zeroThe unique solution with H(0) = 1 is the hyperbolic cosine, cosh(t) = (e^t + e^-t)/2. dAlembert_cosh_solution_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.leanTHEOREM composition_law_forces_reciprocity · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- A normalized composition-law cost is automatically reciprocal. -/ theorem composition_law_forces_reciprocity (F : ℝ → ℝ) (hNorm : IsNormalized F) (hComp : SatisfiesCompositionLaw F) : IsReciprocalCost F := by intro x hx let Hf : ℝ → ℝ := H F have h_H0 : Hf 0 = 1 := by dsimp [Hf] simpa [H, G, IsNormalized] using hNorm have hCoshAdd : CoshAddIdentity F := (composition_law_equiv_coshAdd F).mp hComp have h_direct : DirectCoshAdd (G F) := CoshAddIdentity_implies_DirectCoshAdd F hCoshAdd have h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u := by intro t u have hG := h_direct t u have h_goal : (G F (t + u) + 1) + (G F (t - u) + 1) = 2 * (G F t + 1) * (G F u + 1) := by calc (G F (t + u) + 1) + (G F (t - u) + 1) = (G F (t + u) + G F (t - u)) + 2 := by ring _ = (2 * (G F t * G F u) + 2 * (G F t + G F u)) + 2 := by simpa [hG] _ = 2 * (G F t + 1) * (G F u + 1) := by ring simpa [Hf, H] using h_goal have h_even : Function.Even Hf := dAlembert_even Hf h_H0 h_dAlembert have h_even_at_log := h_even (Real.log x) have h_eq_plus : F x + 1 = F x⁻¹ + 1 := by simpa [Hf, H, G, Real.exp_log hx, Real.exp_neg] using h_even_at_log.symm linarithOn the twice-differentiable surface, reciprocal symmetry J(x) = J(1/x) is derived from the composition law rather than assumed. composition_law_forces_reciprocity · IndisputableMonolith/Cost/ContDiffReduction.leanTHEOREM law_of_logic_forces_jcost_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean
/-- Sharpened T5 surface: normalization, the composition law, calibration, and `C²` regularity of `H = G + 1` already force the canonical reciprocal cost. Reciprocal symmetry is derived, not assumed. -/ theorem law_of_logic_forces_jcost_of_contDiff (F : ℝ → ℝ) (hNorm : IsNormalized F) (hComp : SatisfiesCompositionLaw F) (hCalib : IsCalibrated F) (h_diff : ContDiff ℝ 2 (H F)) : ∀ x : ℝ, 0 < x → F x = Cost.Jcost x := by intro x hx let Gf : ℝ → ℝ := G F let Hf : ℝ → ℝ := H F have hCoshAdd : CoshAddIdentity F := (composition_law_equiv_coshAdd F).mp hComp have h_direct : DirectCoshAdd Gf := CoshAddIdentity_implies_DirectCoshAdd F hCoshAdd have h_H0 : Hf 0 = 1 := by dsimp [Hf] simpa [H, G, IsNormalized] using hNorm have h_dAlembert : ∀ t u, Hf (t + u) + Hf (t - u) = 2 * Hf t * Hf u := by intro t u have hG := h_direct t u have h_goal : (Gf (t + u) + 1) + (Gf (t - u) + 1) = 2 * (Gf t + 1) * (Gf u + 1) := by calc (Gf (t + u) + 1) + (Gf (t - u) + 1) = (Gf (t + u) + Gf (t - u)) + 2 := by ring _ = (2 * (Gf t * Gf u) + 2 * (Gf t + Gf u)) + 2 := by simp [hG] _ = 2 * (Gf t + 1) * (Gf u + 1) := by ring simpa [Hf, H, Gf] using h_goal have h_H_d2 : deriv (deriv Hf) 0 = 1 := by have hG_d2 : deriv (deriv Gf) 0 = 1 := by simpa [Gf, G, IsCalibrated] using hCalib have hderiv : deriv Hf = deriv Gf := by funext t change deriv (fun y => Gf y + 1) t = deriv Gf t exact deriv_add_const (f := Gf) (x := t) (c := (1 : ℝ)) have hderiv2 : deriv (deriv Hf) = deriv (deriv Gf) := congrArg deriv hderiv exact (congrArg (fun g => g 0) hderiv2).trans hG_d2 have h_H_cosh : ∀ t, Hf t = Real.cosh t := dAlembert_cosh_solution_of_contDiff Hf h_H0 h_dAlembert (by simpa [Hf] using h_diff) h_H_d2 have h_G_cosh : ∀ t, Gf t = Real.cosh t - 1 := by intro t have hH := h_H_cosh t have hH' : Gf t + 1 = Real.cosh t := by simpa [Hf, H, Gf] using hH linarith have ht : Real.exp (Real.log x) = x := Real.exp_log hx have hJG : G Cost.Jcost (Real.log x) = Real.cosh (Real.log x) - 1 := Jcost_G_eq_cosh_sub_one (Real.log x) calc F x = F (Real.exp (Real.log x)) := by rw [ht] _ = Gf (Real.log x) := rfl _ = Real.cosh (Real.log x) - 1 := h_G_cosh (Real.log x) _ = G Cost.Jcost (Real.log x) := by simpa using hJG.symm _ = Cost.Jcost (Real.exp (Real.log x)) := by simp [G] _ = Cost.Jcost x := by rw [ht]The machine-checked library of formal theorems proves that normalization, composition, calibration, and C² regularity of H = J + 1 force the canonical cost. law_of_logic_forces_jcost_of_contDiff · IndisputableMonolith/Cost/ContDiffReduction.lean