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
/-- (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
/-- 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
/-- 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''
/-- 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:
- How does the abstract CPM template instantiate for a specific physical system, such as a particle or a field configuration?
- What is the physical interpretation of the defect mass and the energy gap in a recognition ledger?
- Does the refined Knet value (9/7)^2 arise from a deeper principle or is it an empirical fit?
- How does the law of existence relate to the forcing chain that derives the golden ratio and three dimensions?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM defect_le_constants_mul_tests · IndisputableMonolith/CPM/LawOfExistence.lean
/-- (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 ringThe defect mass is bounded above by a product of three constants times the orthogonal mass. defect_le_constants_mul_tests · IndisputableMonolith/CPM/LawOfExistence.leanTHEOREM energyGap_ge_cmin_mul_defect · IndisputableMonolith/CPM/LawOfExistence.lean
/-- 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 ringThe energy gap is at least the defect mass divided by the product of the three constants. energyGap_ge_cmin_mul_defect · IndisputableMonolith/CPM/LawOfExistence.leanTHEOREM Jcost_log_second_deriv_normalized · cproj_eq_two_from_J_normalization · IndisputableMonolith/CPM/LawOfExistence.lean
/-- 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''/-- 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]The second derivative of the cost function at its minimum equals 1, which fixes Cproj to be 2. Jcost_log_second_deriv_normalized · cproj_eq_two_from_J_normalization · IndisputableMonolith/CPM/LawOfExistence.leanTHEOREM 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_numThe concrete instance computes cmin = 49/162. c_value_eight_tick · IndisputableMonolith/CPM/LawOfExistence.lean