Encyclopedia Chemistry Chemistry Solubility Rule From Jcost Solubility Rule Cert
ARTICLE 3 claims 2 theorems 1 model
Chemistry Solubility Rule From Jcost Solubility Rule Cert
A machine-checked certificate bundles three general facts about a cost formula, but its own text says it proves nothing specific to chemistry.
A certificate, not a law
Solubility rules are the chemist's shorthand for which salts dissolve in water: sodium chloride dissolves, silver chloride does not, and the difference is usually taught as a list to memorize. The Recognition Science declaration SolubilityRuleCert does not add a new rule to that list. It is a certificate, a small bundle of three formally checked facts about a single cost function applied to a ratio of two numbers.
The certificate's subject is a function the framework calls domainCost, defined as J(m / e), where J is the framework's forced cost function and m and e are real numbers. The three facts the certificate proves are general properties of that function, not properties of any chemical system. First, when the two inputs are equal and nonzero, the cost is zero. Second, for positive inputs, the cost is never negative. Third, a constant called the canonical threshold, phi minus 3/2, is positive. These are true for any two positive real numbers, whether they stand for solvation energy and lattice energy, prices, or distances.
The declaration's own docstring is explicit about the limit. It states that the code proves those three general facts and nothing specific to this subject, because domainCost is defined without reference to any chemical quantity. The paragraph describing a solubility rule, where a compound dissolves when J(ΔG_solvation/ΔG_lattice) is below J(φ), is a research note recording where the idea was meant to go, not a result. The certificate itself contains no definition of m or e in chemical terms; without such a definition, it cannot be a theorem about solubility.
What the certificate does establish is a reusable template. The same body of three facts is shared verbatim with 2383 sibling modules, each one a placeholder for a different intended application. The universal content lives in a single module, DomainCostTemplate, and every subject-specific module is meant to supply its own definitions of m and e. SolubilityRuleCert is the chemistry instance of that template, but the chemistry instance is incomplete: it names the intended subject without connecting the certificate's variables to it.
In plain terms, the declaration proves a small piece of mathematics about a cost function and packages it under a chemistry name. The name is a promise of future work, not a description of what the certificate currently does. A reader who wants a solubility rule will not find one here; a reader who wants to see how the framework structures an application will find a clean, honest example of a claim that knows its own limits.
THEOREM domainCost_at_eq · domainCost_nonneg · canonicalThreshold_pos · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.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 SolubilityRuleCert · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.lean
structure SolubilityRuleCert 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
MODEL domainCost · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.lean
def domainCost (m e : ℝ) : ℝ := Jcost (m / e)
What this page does not claim
The certificate does not establish any empirical solubility rule for any specific salt. The certificate does not connect its cost function to solvation or lattice energies in a formal way. The certificate does not derive the intended threshold J(φ) from chemical principles.
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/SolubilityRuleFromJCost.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 definitions of m and e would turn this certificate into a theorem about solubility?
- How does the shared DomainCostTemplate relate to the 2383 sibling modules that reuse its body?
- What experimental solubility data could test the intended rule once m and e are defined chemically?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM domainCost_at_eq · domainCost_nonneg · canonicalThreshold_pos · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.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 proves three general facts about domainCost: zero cost at equal positive inputs, nonnegative cost for positive inputs, and a positive canonical threshold. domainCost_at_eq · domainCost_nonneg · canonicalThreshold_pos · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.leanTHEOREM SolubilityRuleCert · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.lean
structure SolubilityRuleCert 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 declaration's own docstring states that the code proves nothing specific to this subject, because domainCost is defined without reference to one. SolubilityRuleCert · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.leanMODEL domainCost · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.lean
def domainCost (m e : ℝ) : ℝ := Jcost (m / e)The certificate contains no definition of m or e in chemical terms. domainCost · IndisputableMonolith/Chemistry/SolubilityRuleFromJCost.lean