Encyclopedia Chemistry Chemistry Polymer Solubility From Jcost Hildebrand Cert
ARTICLE 4 claims 3 theorems 1 model
Chemistry Polymer Solubility From Jcost Hildebrand Cert
A formal certificate in the Recognition Science library records three general properties of a cost function, but says nothing specific about polymers.
The certificate's scope
In polymer chemistry, a common rule of thumb is that a polymer dissolves in a solvent when their solubility parameters are close enough. The solubility parameter, usually written δ, measures how much energy a material needs to separate its molecules; values are quoted in MPa^(1/2). For many polymers δ sits near 20, and good solvation typically occurs when the difference between polymer and solvent is a few units. The Recognition Science framework offers a formal object called HildebrandCert (the ledger, a discrete record of recognition events, is its home concept), but the certificate does not prove that rule.
What the certificate actually establishes is three general facts about a cost function J(x) = (x + 1/x)/2 - 1 applied to a ratio m/e. First, when m equals e, the cost is zero: J(1) = 0. Second, for positive m and e, the cost is never negative. Third, the number φ - 3/2, where φ is the golden ratio (1.618...), is positive. These are true for any positive inputs; they do not mention polymers, solvents, or solubility parameters at all.
The module defines domainCost(m, e) as J(m/e), and HildebrandCert is a structure bundling the three proved properties. The certificate is inhabited, meaning the properties are consistent and provable. But the definition of domainCost makes no reference to solubility parameters, molecular forces, or any chemical quantity. The docstring includes a research note sketching how one might use the cost to set a tolerance: |δ_poly - δ_solvent| < J(φ) × δ_poly ≈ 0.118 × δ_poly, which for δ ≈ 20 gives a range of about 2.4 MPa^(1/2), close to the empirical 2 to 4 MPa^(1/2) for good solvation. That note is explicitly marked as a plan, not a result.
In Recognition Science, the framework models the cost of recognition as forced by the five conditions that lead to J. Within that framework, the certificate's three facts are proved theorems in the machine-checked library of formal theorems. But the step from J to a solubility rule would require defining m and e in chemical terms, say as cohesive energy densities. That definition does not exist in the module. The certificate therefore establishes only the abstract cost properties, not any chemical prediction.
The practical lesson is separation of concerns. A formal certificate can record true general facts, while the application to a specific field needs a bridge that names the field's quantities. Here the bridge is missing, so the certificate is a foundation stone, not a finished building. A reader should not take the 0.118 factor or the 2.4 MPa^(1/2) range as a derived theorem; those numbers live in a research note, awaiting a chemical definition that would make them testable.
THEOREM domainCost_at_eq · domainCost_nonneg · canonicalThreshold_pos · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
theorem domainCost_at_eq (r : ℝ) (h : r ≠ 0) : domainCost r r = 0 := by
unfold domainCost; rw [div_self h]; exact Jcost_unit0
theorem domainCost_nonneg (m e : ℝ) (hm : 0 < m) (he : 0 < e) : 0 ≤ domainCost m e := by
unfold domainCost; exact Jcost_nonneg (div_pos hm he)
theorem canonicalThreshold_pos : 0 < canonicalThreshold := by
unfold canonicalThreshold; linarith [phi_gt_onePointFive]
THEOREM domainCost · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
def domainCost (m e : ℝ) : ℝ := Jcost (m / e)
THEOREM cert_inhabited · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
theorem cert_inhabited : Nonempty HildebrandCert := ⟨cert⟩
MODEL HildebrandCert · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
structure HildebrandCert where
cost_at_eq : ∀ r : ℝ, r ≠ 0 → domainCost r r = 0
cost_nonneg : ∀ m e : ℝ, 0 < m → 0 < e → 0 ≤ domainCost m e
threshold_pos : 0 < canonicalThreshold
What this page does not claim
The certificate does not prove that polymers dissolve when |δ_poly - δ_solvent| < 0.118 × δ_poly. The certificate does not derive the empirical 2 to 4 MPa^(1/2) tolerance from first principles. The certificate does not define solubility parameters in terms of recognition cost.
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/Chemistry/PolymerSolubilityFromJCost.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 chemical definition of m and e would make the cost function a theorem about solubility?
- Does the empirical 2 to 4 MPa^(1/2) solvation window hold across all polymer-solvent pairs, or only for typical systems?
- How does the framework's cost function relate to the Hildebrand solubility parameter's own theoretical basis in cohesive energy density?
- What would a machine-checked proof of the solubility rule require beyond the current certificate?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM domainCost_at_eq · domainCost_nonneg · canonicalThreshold_pos · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
theorem domainCost_at_eq (r : ℝ) (h : r ≠ 0) : domainCost r r = 0 := by unfold domainCost; rw [div_self h]; exact Jcost_unit0theorem domainCost_nonneg (m e : ℝ) (hm : 0 < m) (he : 0 < e) : 0 ≤ domainCost m e := by unfold domainCost; exact Jcost_nonneg (div_pos hm he)theorem canonicalThreshold_pos : 0 < canonicalThreshold := by unfold canonicalThreshold; linarith [phi_gt_onePointFive]The certificate establishes three general facts about the cost function J(x) = (x + 1/x)/2 - 1: zero at equality, nonnegativity for positive inputs, and positivity of φ - 3/2. domainCost_at_eq · domainCost_nonneg · canonicalThreshold_pos · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.leanTHEOREM domainCost · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
def domainCost (m e : ℝ) : ℝ := Jcost (m / e)The certificate says nothing specific to polymer solubility, because domainCost is defined as J(m/e) without reference to chemical quantities. domainCost · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.leanTHEOREM cert_inhabited · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
theorem cert_inhabited : Nonempty HildebrandCert := ⟨cert⟩The certificate is inhabited, meaning the three properties are consistent and provable. cert_inhabited · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.leanMODEL HildebrandCert · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean
structure HildebrandCert where cost_at_eq : ∀ r : ℝ, r ≠ 0 → domainCost r r = 0 cost_nonneg : ∀ m e : ℝ, 0 < m → 0 < e → 0 ≤ domainCost m e threshold_pos : 0 < canonicalThresholdThe docstring's solubility tolerance numbers are a research note, not a result. HildebrandCert · IndisputableMonolith/Chemistry/PolymerSolubilityFromJCost.lean