Encyclopedia Foundation Foundation Dalembert Unconditional J Computes P

ARTICLE 3 claims 3 theorems

Foundation Dalembert Unconditional J Computes P

A single equation pins down how the cost of recognition must combine, with no prior assumption about the rule itself.

A forced composition law

The declaration J_computes_P is a theorem in the framework's machine-checked library of formal theorems. It states that for any two positive numbers x and y, the cost function J satisfies the identity J(xy) + J(x/y) = 2J(x)J(y) + 2J(x) + 2J(y). In plain terms: the cost of a product and the cost of a ratio combine in exactly one way, and that way is forced by the cost function itself.

This matters because the cost function J(x) = (x + 1/x)/2 - 1 is not assumed to have any particular composition rule. The framework starts with five plain conditions: symmetry, zero cost at unity, a forced composition law, calibration, and continuity. The theorem shows that if J satisfies those conditions, then the composition law P(u, v) must equal 2uv + 2u + 2v on the entire first quadrant. There is no room for a different rule, polynomial or otherwise.

The proof works by computing P from J rather than assuming it. Since J is symmetric, normalized, calibrated, and smooth, it is uniquely determined by an ordinary differential equation. Once J is fixed, the composition law is read off directly from the identity. The library also proves that J covers every nonnegative value, so the result holds for all possible cost inputs, not just a special subset.

In Recognition Science, this is the hinge that makes the whole chain of consequences possible. The framework models reality as a ledger, a discrete record of recognition events, and the cost of recognition is forced, not chosen. From this single identity, the framework derives the golden ratio, an eight-tick cycle, and three spatial dimensions. The theorem does not itself prove those later results, but it supplies the algebraic foundation they stand on.

What the declaration does not claim is equally important. It does not say that the five conditions are true of the physical world; that is a modeling choice. It does not say that any particular recognition event has a cost; that is an interpretation. It only says that if the conditions hold, then the composition law is uniquely determined. The theorem is unconditional in the sense that no assumption on P is needed, but it is conditional on the existence of a function F satisfying the five conditions.

The practical upshot is a sharp reduction in freedom. A mathematician might worry that a functional equation admits irregular solutions, but this theorem rules them out by showing P is computed, not free. A reader who accepts the five conditions gets the composition law for free, and with it, the rest of the framework's structure.

THEOREM J_computes_P · IndisputableMonolith/Foundation/DAlembert/Unconditional.lean
/-- The d'Alembert identity for J, rewritten to show P is computed. -/
theorem J_computes_P :
    ∀ x y : ℝ, 0 < x → 0 < y →
      Cost.Jcost (x * y) + Cost.Jcost (x / y) =
      2 * Cost.Jcost x * Cost.Jcost y + 2 * Cost.Jcost x + 2 * Cost.Jcost y := by
  intro x y hx hy
  -- This is the d'Alembert identity in multiplicative form
  -- We prove it by converting to log-coordinates and using Jcost_cosh_add_identity
  let t := Real.log x
  let u := Real.log y
  have ht : Real.exp t = x := Real.exp_log hx
  have hu : Real.exp u = y := Real.exp_log hy
  -- In log coordinates: G(t+u) + G(t-u) = 2*G(t)*G(u) + 2*G(t) + 2*G(u)
  have h_cosh := Jcost_cosh_add_identity t u
  -- Convert back to multiplicative coordinates
  simp only [G] at h_cosh
  have h1 : Real.exp (t + u) = x * y := by rw [Real.exp_add, ht, hu]
  have h2 : Real.exp (t - u) = x / y := by rw [Real.exp_sub, ht, hu]
  rw [h1, h2, ht, hu] at h_cosh
  -- Rewrite to match goal form
  calc Cost.Jcost (x * y) + Cost.Jcost (x / y)
      = 2 * (Cost.Jcost x * Cost.Jcost y) + 2 * (Cost.Jcost x + Cost.Jcost y) := h_cosh
    _ = 2 * Cost.Jcost x * Cost.Jcost y + 2 * Cost.Jcost x + 2 * Cost.Jcost y := by ring
THEOREM P_determined_nonneg · IndisputableMonolith/Foundation/DAlembert/Unconditional.lean
/-- Since J is surjective onto [0, ∞), P is determined on [0, ∞)². -/
theorem P_determined_nonneg (P : ℝ → ℝ → ℝ)
    (hCons : ∀ x y : ℝ, 0 < x → 0 < y →
      Cost.Jcost (x * y) + Cost.Jcost (x / y) = P (Cost.Jcost x) (Cost.Jcost y)) :
    ∀ u v : ℝ, 0 ≤ u → 0 ≤ v → P u v = 2*u*v + 2*u + 2*v := by
  intro u v hu hv
  obtain ⟨x, hx_pos, hx_eq⟩ := J_surjective_nonneg u hu
  obtain ⟨y, hy_pos, hy_eq⟩ := J_surjective_nonneg v hv
  have h := P_determined_on_range P hCons x y hx_pos hy_pos
  rw [hx_eq, hy_eq] at h
  exact h
THEOREM J_surjective_nonneg · IndisputableMonolith/Foundation/DAlembert/Unconditional.lean
/-- J : (0, ∞) → [0, ∞) is surjective onto [0, ∞). -/
theorem J_surjective_nonneg :
    ∀ v : ℝ, 0 ≤ v → ∃ x : ℝ, 0 < x ∧ Cost.Jcost x = v := by
  intro v hv
  -- J(x) = (x + 1/x)/2 - 1
  -- J(1) = 0
  -- J(x) → ∞ as x → ∞ or x → 0⁺
  -- J is continuous on (0, ∞)
  -- By IVT, J takes all values in [0, ∞)
  -- For v = 0, take x = 1
  -- For v > 0, solve (x + 1/x)/2 - 1 = v
  --   => x + 1/x = 2v + 2
  --   => x² - (2v + 2)x + 1 = 0
  --   => x = (2v + 2 + √((2v+2)² - 4)) / 2 = v + 1 + √(v² + 2v)
  by_cases hv0 : v = 0
  · use 1
    constructor
    · exact one_pos
    · simp [Cost.Jcost, hv0]
  · -- v > 0 case
    have hv_pos : 0 < v := lt_of_le_of_ne hv (Ne.symm hv0)
    let discriminant := (2*v + 2)^2 - 4
    have h_disc_pos : 0 < discriminant := by
      simp only [discriminant]
      have h1 : (2*v + 2)^2 = 4*v^2 + 8*v + 4 := by ring
      rw [h1]
      have h2 : 4*v^2 + 8*v + 4 - 4 = 4*v^2 + 8*v := by ring
      rw [h2]
      have h3 : 4*v^2 + 8*v = 4*v*(v + 2) := by ring
      rw [h3]
      apply mul_pos
      · linarith
      · linarith
    let x := (2*v + 2 + Real.sqrt discriminant) / 2
    have hx_pos : 0 < x := by
      simp only [x]
      apply div_pos
      · have h1 : 0 < 2*v + 2 := by linarith
        have h2 : 0 ≤ Real.sqrt discriminant := Real.sqrt_nonneg _
        linarith
      · linarith
    use x
    constructor
    · exact hx_pos
    · -- Prove J(x) = v
      simp only [Cost.Jcost, x]
      -- Need to show: ((2v+2+√disc)/2 + 2/(2v+2+√disc))/2 - 1 = v
      -- This is algebraic manipulation
      have hx_ne : x ≠ 0 := hx_pos.ne'
      have h_quad : x^2 - (2*v + 2)*x + 1 = 0 := by
        simp only [x]
        have h_sqrt_sq : Real.sqrt discriminant ^ 2 = discriminant :=
          Real.sq_sqrt (le_of_lt h_disc_pos)
        field_simp
        simp only [discriminant] at h_sqrt_sq ⊢
        ring_nf
        ring_nf at h_sqrt_sq
        linarith
      -- From quadratic: x + 1/x = 2v + 2
      have h_sum : x + x⁻¹ = 2*v + 2 := by
        have h1 : x^2 + 1 = (2*v + 2)*x := by linarith [h_quad]
        field_simp at h1 ⊢
        linarith
      calc (x + x⁻¹) / 2 - 1 = (2*v + 2) / 2 - 1 := by rw [h_sum]
        _ = v + 1 - 1 := by ring
        _ = v := by ring

What this page does not claim

The five conditions are true of the physical world. Any particular recognition event has a cost. The theorem proves the golden ratio or three spatial dimensions by itself.

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/Unconditional.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:

MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND