Encyclopedia Foundation Foundation Dalembert Counterexamples Fquad Unit0
ARTICLE 3 claims 3 theorems
Foundation Dalembert Counterexamples Fquad Unit0
A simple quadratic function shows why the Recognition Science framework needs more than a weak consistency condition to force its central cost equation.
The quadratic counterexample
The declaration Fquad_unit0 is a small lemma in the framework's machine-checked library of formal theorems. It states that the function Fquad, defined as the square of the natural logarithm divided by two, evaluates to zero at the input 1. In plain terms, the recognition cost of a perfect match, where the ratio of the two compared quantities is 1, is zero. This is the expected normalization: no difference, no cost.
The function Fquad is not arbitrary. It satisfies three of the five conditions that the framework's main theorem requires of any cost function. It is symmetric under reciprocals, it obeys a weak composition law with a simple additive combiner, and its second derivative at the identity equals 1, which is the calibration condition. The library proves all of these properties for Fquad.
Yet Fquad fails the final structural condition. Its shifted log-lift, the function H(t) = t²/2 + 1, does not satisfy the d'Alembert equation. This is the point of the counterexample: the mere existence of some combiner, here the additive P(u,v) = 2u + 2v, is not enough to force the unique cost function J(x) = (x + 1/x)/2 - 1 that the framework derives. A theorem claiming to force the d'Alembert form from the weak hypothesis must add at least one further nondegeneracy axiom.
In Recognition Science, this counterexample is a boundary marker. It shows precisely where the forcing chain could fail if a condition were dropped, and it justifies the presence of the stronger axioms in the main theorem. The lemma Fquad_unit0 itself only pins down the zero-cost point; the surrounding lemmas do the structural work.
THEOREM Fquad_unit0 · IndisputableMonolith/Foundation/DAlembert/Counterexamples.lean
lemma Fquad_unit0 : Fquad 1 = 0 := by
simp [Fquad, Cost.F_ofLog, Gquad]
THEOREM Fquad_symm · Fquad_consistency · calib_Fquad · IndisputableMonolith/Foundation/DAlembert/Counterexamples.lean
lemma Fquad_symm {x : ℝ} (hx : 0 < x) : Fquad x = Fquad x⁻¹ := by
-- log(x⁻¹) = -log x for x>0
simp [Fquad, Cost.F_ofLog, Gquad, Real.log_inv, hx.ne']
lemma Fquad_consistency :
∀ x y : ℝ, 0 < x → 0 < y →
Fquad (x * y) + Fquad (x / y) = Padd (Fquad x) (Fquad y) := by
intro x y hx hy
-- Work in log-coordinates: let t = log x, u = log y
have hx0 : x ≠ 0 := hx.ne'
have hy0 : y ≠ 0 := hy.ne'
have hlog_mul : Real.log (x * y) = Real.log x + Real.log y := by
simpa using Real.log_mul hx.ne' hy.ne'
have hlog_div : Real.log (x / y) = Real.log x - Real.log y := by
simpa [div_eq_mul_inv, Real.log_mul, Real.log_inv, hy0] using Real.log_div hx.ne' hy.ne'
-- Now compute
simp [Fquad, Cost.F_ofLog, Gquad, Padd, hlog_mul, hlog_div]
ring
lemma calib_Fquad : deriv (deriv (fun t : ℝ => Fquad (Real.exp t))) 0 = 1 := by
-- Fquad(exp t) = t^2/2
have hfun : (fun t : ℝ => Fquad (Real.exp t)) = fun t => t ^ 2 / 2 := by
funext t
simp [Fquad_on_exp, Gquad]
-- Differentiate twice
rw [hfun]
-- First derivative: d/dt (t^2/2) = t
have hderiv_eq : deriv (fun t : ℝ => t ^ 2 / 2) = fun t => t := by
funext t
have hpow : HasDerivAt (fun s : ℝ => s ^ 2) (2 * t) t := by
simpa using (HasDerivAt.fun_pow (hasDerivAt_id t) 2)
have hdiv : HasDerivAt (fun s : ℝ => s ^ 2 / 2) ((2 * t) / 2) t :=
hpow.div_const 2
have hcoef : ((2 * t) / 2 : ℝ) = t := by ring
simpa [hcoef] using hdiv.deriv
-- Second derivative at 0: d/dt (t) at 0 = 1
simpa [hderiv_eq] using (hasDerivAt_id (0 : ℝ)).deriv
THEOREM Hquad_not_dAlembert · IndisputableMonolith/Foundation/DAlembert/Counterexamples.lean
theorem Hquad_not_dAlembert :
¬ (Hquad 0 = 1 ∧ ∀ t u : ℝ, Hquad (t + u) + Hquad (t - u) = 2 * Hquad t * Hquad u) := by
intro h
have h0 : Hquad 0 = 1 := h.1
have hdA := h.2
-- Evaluate the d'Alembert identity at t = 1, u = 1.
have h11 := hdA 1 1
-- Compute both sides explicitly; they disagree (4 ≠ 9/2).
have hL : Hquad (1 + 1) + Hquad (1 - 1) = 4 := by
calc
Hquad (1 + 1) + Hquad (1 - 1)
= ((1 + 1) ^ 2 / 2 + 1) + ((1 - 1) ^ 2 / 2 + 1) := by
simp [Hquad_simp]
_ = 4 := by
norm_num
have hR : 2 * Hquad 1 * Hquad 1 = (9 : ℝ) / 2 := by
simp [Hquad_simp]
ring
-- Contradiction
have : (4 : ℝ) = (9 : ℝ) / 2 := by
calc (4 : ℝ) = Hquad (1 + 1) + Hquad (1 - 1) := by simpa using hL.symm
_ = 2 * Hquad 1 * Hquad 1 := h11
_ = (9 : ℝ) / 2 := hR
norm_num at this
What this page does not claim
This answer does not claim that Fquad is a valid cost function in the full Recognition Science framework. This answer does not claim that the weak consistency condition alone is sufficient for the d'Alembert equation. This answer does not claim that Fquad_unit0 itself establishes anything beyond the zero-cost normalization.
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/Foundation/DAlembert/Counterexamples.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 nondegeneracy axiom, beyond the weak consistency condition, is needed to force the d'Alembert structure?
- Does the quadratic counterexample satisfy the full set of five conditions from the main theorem, or only a subset?
- How does the failure of the d'Alembert equation for the quadratic log-lift relate to the uniqueness proof for the cost function J?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM Fquad_unit0 · IndisputableMonolith/Foundation/DAlembert/Counterexamples.lean
lemma Fquad_unit0 : Fquad 1 = 0 := by simp [Fquad, Cost.F_ofLog, Gquad]The declaration Fquad_unit0 states that the function Fquad, defined as the square of the natural logarithm divided by two, evaluates to zero at the input 1. Fquad_unit0 · IndisputableMonolith/Foundation/DAlembert/Counterexamples.leanTHEOREM Fquad_symm · Fquad_consistency · calib_Fquad · IndisputableMonolith/Foundation/DAlembert/Counterexamples.lean
lemma Fquad_symm {x : ℝ} (hx : 0 < x) : Fquad x = Fquad x⁻¹ := by -- log(x⁻¹) = -log x for x>0 simp [Fquad, Cost.F_ofLog, Gquad, Real.log_inv, hx.ne']lemma Fquad_consistency : ∀ x y : ℝ, 0 < x → 0 < y → Fquad (x * y) + Fquad (x / y) = Padd (Fquad x) (Fquad y) := by intro x y hx hy -- Work in log-coordinates: let t = log x, u = log y have hx0 : x ≠ 0 := hx.ne' have hy0 : y ≠ 0 := hy.ne' have hlog_mul : Real.log (x * y) = Real.log x + Real.log y := by simpa using Real.log_mul hx.ne' hy.ne' have hlog_div : Real.log (x / y) = Real.log x - Real.log y := by simpa [div_eq_mul_inv, Real.log_mul, Real.log_inv, hy0] using Real.log_div hx.ne' hy.ne' -- Now compute simp [Fquad, Cost.F_ofLog, Gquad, Padd, hlog_mul, hlog_div] ringlemma calib_Fquad : deriv (deriv (fun t : ℝ => Fquad (Real.exp t))) 0 = 1 := by -- Fquad(exp t) = t^2/2 have hfun : (fun t : ℝ => Fquad (Real.exp t)) = fun t => t ^ 2 / 2 := by funext t simp [Fquad_on_exp, Gquad] -- Differentiate twice rw [hfun] -- First derivative: d/dt (t^2/2) = t have hderiv_eq : deriv (fun t : ℝ => t ^ 2 / 2) = fun t => t := by funext t have hpow : HasDerivAt (fun s : ℝ => s ^ 2) (2 * t) t := by simpa using (HasDerivAt.fun_pow (hasDerivAt_id t) 2) have hdiv : HasDerivAt (fun s : ℝ => s ^ 2 / 2) ((2 * t) / 2) t := hpow.div_const 2 have hcoef : ((2 * t) / 2 : ℝ) = t := by ring simpa [hcoef] using hdiv.deriv -- Second derivative at 0: d/dt (t) at 0 = 1 simpa [hderiv_eq] using (hasDerivAt_id (0 : ℝ)).derivThe function Fquad satisfies three of the five conditions that the framework's main theorem requires of any cost function. Fquad_symm · Fquad_consistency · calib_Fquad · IndisputableMonolith/Foundation/DAlembert/Counterexamples.leanTHEOREM Hquad_not_dAlembert · IndisputableMonolith/Foundation/DAlembert/Counterexamples.lean
theorem Hquad_not_dAlembert : ¬ (Hquad 0 = 1 ∧ ∀ t u : ℝ, Hquad (t + u) + Hquad (t - u) = 2 * Hquad t * Hquad u) := by intro h have h0 : Hquad 0 = 1 := h.1 have hdA := h.2 -- Evaluate the d'Alembert identity at t = 1, u = 1. have h11 := hdA 1 1 -- Compute both sides explicitly; they disagree (4 ≠ 9/2). have hL : Hquad (1 + 1) + Hquad (1 - 1) = 4 := by calc Hquad (1 + 1) + Hquad (1 - 1) = ((1 + 1) ^ 2 / 2 + 1) + ((1 - 1) ^ 2 / 2 + 1) := by simp [Hquad_simp] _ = 4 := by norm_num have hR : 2 * Hquad 1 * Hquad 1 = (9 : ℝ) / 2 := by simp [Hquad_simp] ring -- Contradiction have : (4 : ℝ) = (9 : ℝ) / 2 := by calc (4 : ℝ) = Hquad (1 + 1) + Hquad (1 - 1) := by simpa using hL.symm _ = 2 * Hquad 1 * Hquad 1 := h11 _ = (9 : ℝ) / 2 := hR norm_num at thisIts shifted log-lift, the function H(t) = t²/2 + 1, does not satisfy the d'Alembert equation. Hquad_not_dAlembert · IndisputableMonolith/Foundation/DAlembert/Counterexamples.lean