Encyclopedia Cpm Cpm Law Of Existence

ARTICLE 4 claims 4 theorems

Cpm Law Of Existence

A generic inequality says that any failure to be in a set is bounded by the cost of testing for it, and a concrete instance fixes the constant at 49/162.

The CPM law of existence

The Coercive Projection Method (CPM) law of existence is a formal template for showing that something belongs to a set by checking a few local tests. The template works for any model that supplies four numbers: a defect mass, an orthogonal mass, an energy gap, and a test score. The core result is an inequality chain. The defect mass, which measures how far a candidate point is from the desired set, is bounded above by a product of three constants times the orthogonal mass. The orthogonal mass is in turn bounded by the energy gap and by the test score. Chaining these gives the law's practical form: if the tests are small and the energy gap is large, then the defect mass is forced to be small, so the point is close to the set.

The framework's machine-checked library of formal theorems proves this chain for an abstract model, with no commitment to a particular measure or function space. The library also proves a converse-style bound: the energy gap is at least the defect mass divided by the product of the three constants. That product defines a single constant, cmin, which acts as the conversion factor between defect and energy. The library proves cmin is positive whenever the three constants are positive. This is the abstract heart of the law: a quantitative trade-off between how far a point is from a set and how much energy separates it from that set.

In Recognition Science, the law gets a concrete instance. The framework's cost function J(x) = (x + 1/x)/2 - 1, which measures the forced cost of recognition, has a second derivative at its minimum equal to 1. That normalization fixes one of the constants, Cproj, to be 2. Another constant, Knet, comes from a covering argument in three dimensions: a covering with epsilon = 1/8 gives Knet = (4/3)^3, and a refined calculation gives (9/7)^2. With these values, the library computes cmin = 49/162. This is the law of existence in its concrete form: the energy gap that guarantees membership is at least 49/162 times the defect mass.

The point of the module is not the specific number but the structure. The abstract inequality chain is a general tool: it says that membership in a set can be certified by local tests, with a quantitative bound on how good the tests must be. The concrete instance shows how the framework's own constants arise from the cost function and from a three-dimensional covering. The law of existence is what connects the abstract cost function to the claim that recognition events, which are discrete and costly, can be certified as belonging to a structure by checking finitely many local conditions.

THEOREM defect_le_constants_mul_tests · IndisputableMonolith/CPM/LawOfExistence.lean
defect_le_constants_mul_tests · IndisputableMonolith/CPM/LawOfExistence.lean:133
/-- (AC) Aggregation: `D ≤ (K_net·C_proj·C_disp) · sup_W T[a]`.

Combines A + dispersion/interface without measure‑theoretic details. -/
theorem defect_le_constants_mul_tests
  (M : Model β) (a : β) :
  M.defectMass a ≤ (M.C.Knet * M.C.Cproj * M.C.Cdisp) * M.tests a := by
  have hA : M.defectMass a ≤ M.C.Knet * M.C.Cproj * M.orthoMass a :=
    M.projection_defect a
  have hD : M.orthoMass a ≤ M.C.Cdisp * M.tests a :=
    M.dispersion a
  calc M.defectMass a
      ≤ M.C.Knet * M.C.Cproj * M.orthoMass a := hA
    _ ≤ M.C.Knet * M.C.Cproj * (M.C.Cdisp * M.tests a) := by
        apply mul_le_mul_of_nonneg_left hD
        have h₁ : 0 ≤ M.C.Knet := M.C.Knet_nonneg
        have h₂ : 0 ≤ M.C.Cproj := M.C.Cproj_nonneg
        exact mul_nonneg h₁ h₂
    _ = (M.C.Knet * M.C.Cproj * M.C.Cdisp) * M.tests a := by ring
THEOREM energyGap_ge_cmin_mul_defect · IndisputableMonolith/CPM/LawOfExistence.lean
energyGap_ge_cmin_mul_defect · IndisputableMonolith/CPM/LawOfExistence.lean:107
/-- Coercivity in the usual “energy gap ≥ c_min · defect” form.

Requires the product `K_net · C_proj · C_eng` to be strictly positive to
invert safely. -/
theorem energyGap_ge_cmin_mul_defect
  (M : Model β)
  (hpos : 0 < M.C.Knet ∧ 0 < M.C.Cproj ∧ 0 < M.C.Ceng)
  (a : β) :
  M.energyGap a ≥ cmin M.C * M.defectMass a := by
  have h := M.defect_le_constants_mul_energyGap a
  have hprodpos : 0 < M.C.Knet * M.C.Cproj * M.C.Ceng := by
    have := mul_pos (mul_pos hpos.1 hpos.2.1) hpos.2.2
    simpa [mul_assoc] using this
  -- From h: D ≤ (K·C·E)·gap, multiply both sides by (K·C·E)⁻¹
  -- Result: (K·C·E)⁻¹·D ≤ gap, i.e., c_min·D ≤ gap
  have hinv : (M.C.Knet * M.C.Cproj * M.C.Ceng)⁻¹ * (M.C.Knet * M.C.Cproj * M.C.Ceng) = 1 := by
    exact inv_mul_cancel₀ (ne_of_gt hprodpos)
  calc cmin M.C * M.defectMass a
      = (M.C.Knet * M.C.Cproj * M.C.Ceng)⁻¹ * M.defectMass a := by rfl
    _ ≤ (M.C.Knet * M.C.Cproj * M.C.Ceng)⁻¹ * ((M.C.Knet * M.C.Cproj * M.C.Ceng) * M.energyGap a) := by
        apply mul_le_mul_of_nonneg_left h
        exact le_of_lt (inv_pos.mpr hprodpos)
    _ = ((M.C.Knet * M.C.Cproj * M.C.Ceng)⁻¹ * (M.C.Knet * M.C.Cproj * M.C.Ceng)) * M.energyGap a := by ring
    _ = 1 * M.energyGap a := by rw [hinv]
    _ = M.energyGap a := by ring
THEOREM Jcost_log_second_deriv_normalized · cproj_eq_two_from_J_normalization · IndisputableMonolith/CPM/LawOfExistence.lean
Jcost_log_second_deriv_normalized · IndisputableMonolith/CPM/LawOfExistence.lean:222
/-- J-cost log-coordinate normalization used as justification hook:
`deriv (deriv (J ∘ exp)) 0 = 1`. -/
lemma Jcost_log_second_deriv_normalized :
  deriv (deriv (fun t : ℝ => IndisputableMonolith.Cost.Jcost (Real.exp t))) 0 = 1 := by
  -- Define f(t) = Jcost (exp t) with no cosh expansion
  set f : ℝ → ℝ := fun t => ((Real.exp t + Real.exp (-t)) / 2) - 1 with hfdef
  have hf_eq : (fun t : ℝ => IndisputableMonolith.Cost.Jcost (Real.exp t)) = f := by
    funext t; simp [hfdef, IndisputableMonolith.Cost.Jcost_exp]
  -- First derivative of f: f'(t) = (exp t - exp (-t)) / 2
  have h_deriv_f : deriv f = fun t => (Real.exp t - Real.exp (-t)) / 2 := by
    funext t
    -- derivative of exp and exp∘neg
    have h1 : HasDerivAt (fun s => Real.exp s) (Real.exp t) t := Real.hasDerivAt_exp t
    have h2 : HasDerivAt (fun s => Real.exp (-s)) (- Real.exp (-t)) t := by
      simpa using (Real.hasDerivAt_exp (-t)).comp t (hasDerivAt_neg t)
    have hsum : HasDerivAt (fun s => Real.exp s + Real.exp (-s)) (Real.exp t - Real.exp (-t)) t := by
      simpa [sub_eq_add_neg] using h1.add h2
    -- scale by 1/2 and subtract constant 1
    have hscale : HasDerivAt (fun s => ((Real.exp s + Real.exp (-s)) / 2)) ((Real.exp t - Real.exp (-t)) / 2) t := by
      -- rewrite to mul_const form using div_eq_mul_inv
      have h := hsum.mul_const ((1:ℝ)/2)
      simpa [div_eq_mul_inv, one_div, mul_comm, mul_left_comm, mul_assoc] using h
    have hfinal : HasDerivAt f ((Real.exp t - Real.exp (-t)) / 2) t := by
      simpa [hfdef] using hscale.sub_const 1
    simpa using hfinal.deriv
  -- Second derivative at 0 via derivative of (deriv f)
  have h_d2_has : HasDerivAt (fun s => deriv f s) ((Real.exp 0 + Real.exp (-0)) / 2) 0 := by
    -- rewrite (deriv f) to a smooth expression and differentiate at 0
    have heq : (fun s => deriv f s) = (fun s => (Real.exp s - Real.exp (-s)) / 2) := by
      funext s; simp [h_deriv_f]
    have h1 : HasDerivAt (fun s => Real.exp s) (Real.exp 0) 0 := Real.hasDerivAt_exp 0
    have h2 : HasDerivAt (fun s => Real.exp (-s)) (- Real.exp (-0)) 0 := by
      simpa using (Real.hasDerivAt_exp (-0)).comp 0 (hasDerivAt_neg 0)
    have hsub : HasDerivAt (fun s => Real.exp s - Real.exp (-s)) (Real.exp 0 + Real.exp (-0)) 0 := by
      simpa [sub_eq_add_neg, add_comm, add_left_comm, add_assoc] using h1.sub h2
    have hscale : HasDerivAt (fun s => (Real.exp s - Real.exp (-s)) / 2) ((Real.exp 0 + Real.exp (-0)) / 2) 0 := by
      -- multiply on the right by 1/2
      have h := hsub.mul_const ((1:ℝ)/2)
      simpa [div_eq_mul_inv, one_div, mul_comm, mul_left_comm, mul_assoc] using h
    simpa [heq] using hscale
  have h_val : deriv (fun s => deriv f s) 0 = ((Real.exp 0 + Real.exp (-0)) / 2) := by
    simpa using h_d2_has.deriv
  have : deriv (deriv f) 0 = 1 := by
    -- evaluate at zero
    simpa [Real.exp_zero] using h_val
  -- Rewrite through the explicit definition of f
  have this' : deriv (deriv (fun x => ((Real.exp x + Real.exp (-x)) / 2) - 1)) 0 = 1 := by
    simpa [hfdef] using this
  -- Drop the constant (second derivative of constant is zero)
  have this'' : deriv (deriv (fun x => (Real.exp x + Real.exp (-x)) / 2)) 0 = 1 := by
    simpa using this'
  -- rewrite back to the target function
  simpa [hf_eq] using this''
cproj_eq_two_from_J_normalization · IndisputableMonolith/CPM/LawOfExistence.lean:276
/-- Minimal justification: under the RS J-normalization, the Hermitian
rank-one projection constant exported by RS equals 2. (The detailed
Hermitian bound is proved in domain files; here we record the value and
the normalization that fixes it.) -/
theorem cproj_eq_two_from_J_normalization
  (_hJ : deriv (deriv (fun t : ℝ => IndisputableMonolith.Cost.Jcost (Real.exp t))) 0 = 1) :
  coneConstants.Cproj = 2 := by
  simp [cone_Cproj_eq_two]
THEOREM c_value_eight_tick · IndisputableMonolith/CPM/LawOfExistence.lean
/-- The eight-tick coercivity constant is 49/162. -/
theorem c_value_eight_tick : cmin eightTickConstants = 49/162 := by
  simp [cmin, eightTickConstants]
  norm_num

What this page does not claim

This module does not prove that any particular physical system satisfies the CPM template. The concrete constants Knet = (9/7)^2 and cmin = 49/162 are derived within the module, not measured against experiment. The CPM law of existence does not by itself derive the fine-structure constant or any other specific coupling.

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/CPM/LawOfExistence.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