Page actions
instrument implementation / implementation-contract
General Equilibrium ICE-Table Solver implementation
A source-bound implementation contract for General Equilibrium ICE-Table Solver; deployment and executable qualification remain separate.
Binding contract
This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.
- Record owner
- Guth Instruments
- Lifecycle
- verified-with-binding-errata
- Evidence ID
- t8-009
- Effect
- Computation or source lookup only
Input and validation requirements
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.
Required corrections
[
{
"vector": 4,
"field": "extent_x / equilibrium_concentrations",
"wrong": "x=-0.8, [A]=0.8, [B]=0.2",
"correct": "x=-0.2, [A]=0.2, [B]=0.8",
"cause": "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 interface fixture
The sample below is evidence for interface and validation tests, not a production implementation.
{
"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."
}Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche8/tranche8-results.jsontranche errata record