Encyclopedia Cost Cost Aczel Class Aczel D Alembert Smooth
Cost Aczel Class Aczel D Alembert Smooth
A continuous solution to a classical functional equation is automatically infinitely differentiable, a fact the framework's machine-checked library formalizes.
The smoothness theorem
The classical d'Alembert functional equation asks for functions H that satisfy H(t+u) + H(t-u) = 2·H(t)·H(u) with H(0) = 1. The full family of continuous solutions is known and small: the constant function H(t) = 1, the hyperbolic cosine H(t) = cosh(λt) for any nonzero λ, and the ordinary cosine H(t) = cos(λt) for any nonzero λ. Each of these is smooth, meaning it has derivatives of every order. The mathematical fact at issue is the converse: does continuity alone force smoothness? The answer is yes, and the classification was completed by János Aczél in 1966 (Chapter 3 of his book on functional equations).
The Recognition Science framework's machine-checked library of formal theorems captures this result in a declaration named aczel_dAlembert_smooth. The declaration states that any continuous function H satisfying the d'Alembert equation with H(0) = 1 is infinitely differentiable. The theorem is parameterized by a typeclass called AczelSmoothnessPackage, which is a hypothesis carrier: it asserts the implication as a premise. The concrete instance that supplies the proof lives in a separate module, AczelProof, which provides the unconditional theorem dAlembert_contDiff_top.
The split into a class declaration and a proof module is a design choice about dependency structure, not a weakening of the mathematics. The class file decouples the statement from both the larger unconditional proof and the framework's cost theorem, so neither has to import the other. The historical note: before April 2026 the class was declared in a sibling file; the consolidation into the current split file preserves the same content while making the module graph cleaner.
What the declaration does not claim is just as precise. It does not assert that the smoothness package itself is instantiated; that is supplied elsewhere. It does not prove the classification of solutions, only the smoothness consequence that follows from continuity. And it does not say anything about the framework's cost function J(x) = (x + 1/x)/2 − 1 or its uniqueness theorem; the d'Alembert equation appears here as a classical functional equation, and the smoothness result is a standalone mathematical fact that the framework imports for its own purposes.
THEOREM aczel_dAlembert_smooth · IndisputableMonolith/Cost/AczelClass.lean
/-- Smoothness of continuous d'Alembert solutions, parameterized by an
`AczelSmoothnessPackage` instance. -/
theorem aczel_dAlembert_smooth [AczelSmoothnessPackage] (H : ℝ → ℝ)
(h_one : H 0 = 1)
(h_cont : Continuous H)
(h_dAlembert : ∀ t u, H (t + u) + H (t - u) = 2 * H t * H u) :
ContDiff ℝ ⊤ H :=
AczelSmoothnessPackage.smooth_of_dAlembert H h_one h_cont h_dAlembert
What this page does not claim
The declaration does not prove the classification of all continuous d'Alembert solutions. The declaration does not assert that AczelSmoothnessPackage has a concrete instance. The declaration does not connect the d'Alembert equation to the framework's cost function J.
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/AczelClass.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:
- How does the smoothness of d'Alembert solutions feed into the uniqueness proof for the cost function J?
- What concrete instance of AczelSmoothnessPackage is provided in AczelProof, and how is it constructed?
- Where in the framework's forcing chain does the d'Alembert equation first arise?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM aczel_dAlembert_smooth · IndisputableMonolith/Cost/AczelClass.lean
/-- Smoothness of continuous d'Alembert solutions, parameterized by an `AczelSmoothnessPackage` instance. -/ theorem aczel_dAlembert_smooth [AczelSmoothnessPackage] (H : ℝ → ℝ) (h_one : H 0 = 1) (h_cont : Continuous H) (h_dAlembert : ∀ t u, H (t + u) + H (t - u) = 2 * H t * H u) : ContDiff ℝ ⊤ H := AczelSmoothnessPackage.smooth_of_dAlembert H h_one h_cont h_dAlembertThe declaration states that any continuous function H satisfying the d'Alembert equation with H(0) = 1 is infinitely differentiable. aczel_dAlembert_smooth · IndisputableMonolith/Cost/AczelClass.lean