Page actions
instrument / verified-with-binding-errata
General Equilibrium ICE-Table Solver
The current ledger marks this instrument verified with errata that must be applied at binding time.
Status: VERIFIED_WITH_ERRATALifecycle: verified-with-binding-errata
Ledger state
The current ledger marks this instrument verified with errata that must be applied at binding time.
- Area
- Chemistry & Materials
- Tranche
- tranche-8
- Evidence ID
- t8-009
- Ledger rows
- 1
No ledger note is attached.
Review findings
The core ICE-table and mass-action approach is standard, but the specification is not complete enough for an unqualified PASS. The exact unresolved ambiguity is the meaning and units of K: Kc, Kp, or activity-based K. The solver also needs explicit balancing validation, phase handling, admissible-extent constraints, residual verification, and safeguarded root-finding. It should honestly label results as ideal dilute-solution concentration calculations unless activities are supported.
Formula and scope findings
- ICE-table setup plus numerical solution of the mass-action K expression is the standard method only after the reaction is balanced and stoichiometric coefficients are applied correctly to every species.
- The specification does not define whether K means Kc, Kp, or an activity-based thermodynamic equilibrium constant. Because the inputs are concentrations, the default must be explicitly Kc or activities approximated by concentrations.
- Newton-Raphson alone is not a sufficiently safe general solver: each iteration must enforce the physically admissible extent interval so that every equilibrium amount remains nonnegative and every denominator remains nonzero.
- The implementation must support negative extents when products are present initially or reactants are absent initially.
- The implementation must reject or separately handle pure solids and liquids, which do not belong in the equilibrium-constant expression, and must distinguish them from aqueous or gaseous concentration terms.
- The implementation must validate that the supplied equation is balanced and that all initial concentrations are nonnegative.
Unit assumptions
- All listed concentrations are assumed to be in mol/L (M).
- K is assumed to be dimensionless thermodynamic Kc based on activities, or numerically treated as concentration-based Kc under the ideal dilute-solution approximation; the UI must state which convention is used.
- For a concentration expression, each species concentration is raised to its stoichiometric coefficient and pure solids or liquids are omitted.
- The extent x has units of mol/L when the ICE table is expressed in concentrations.
- If Kp is accepted, gas partial pressures and temperature are required; a pressure K cannot be used with concentration inputs without the appropriate conversion.
Boundary hardening
BREAK_CLAIMED · SELF_FLAGGED
A naive Newton-Raphson implementation initialized at x=0 encounters K=[B]/[A]^2=1/0 for the 2A ⇌ B trap, producing an undefined function value before it can iterate. The solver also must explicitly reject algebraic roots that produce negative concentrations and must expose the extent-direction convention.
Errata and corrections
Tranche errata
extent_x / equilibrium_concentrations · vector 4
x=-0.8, [A]=0.8, [B]=0.2
x=-0.2, [A]=0.2, [B]=0.8
own working solves 1=-5x => x=-0.2 and states '[A]eq=0-(-0.2)=0.2' and '[B]eq=1-0.2=0.8' explicitly, then the field ships x=-0.8 with concentrations swapped
Inspectable example
4 review vectors are recorded. One source-bound sample is shown below.
{
"inputs": {
"balanced_equation": "A ⇌ B",
"initial_concentrations": {
"A": "1.0000000 M",
"B": "0.0000000 M"
},
"Kc": 4
},
"expected_outputs": {
"K_expression": "Kc = [B]/[A] = x/(1-x)",
"extent_x": "0.80000000 M",
"equilibrium_concentrations": {
"A": "0.20000000 M",
"B": "0.80000000 M"
},
"ice_table": {
"A": {
"initial": "1.00000000 M",
"change": "-0.80000000 M",
"equilibrium": "0.20000000 M"
},
"B": {
"initial": "0.00000000 M",
"change": "+0.80000000 M",
"equilibrium": "0.80000000 M"
}
},
"mass_action_check": "0.80000000/0.20000000 = 4.0000000"
},
"reference_data": {
"method": "Solve x/(1-x)=4 within 0 <= x <= 1."
},
"working": "Initial: A=1, B=0. Change for A ⇌ B: A decreases by x and B increases by x. Therefore [A]eq=1-x and [B]eq=x. Set Kc=4: x/(1-x)=4. Multiply through: x=4-4x. Add 4x: 5x=4. Divide by 5: x=0.80000000 M. Then [A]eq=1-0.8=0.20000000 M and [B]eq=0+0.8=0.80000000 M. Check: 0.80000000/0.20000000=4.0000000."
}
Related workflows
No source-defined multi-instrument workflow membership is recorded.
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.json · VERIFIED_WITH_ERRATAevidence-tranche8/tranche8-results.jsonBOUNDARY_HAZARD_CATALOG.json