Home Developers CVP Evidence Reproduce

CVP reproduce

mechanical.statics.slip_or_tip

Independent re-run pack: fixed input vectors, O3 expected values, oracle version, commands, and the last result summary. This is how a reader moves from “CalculatorX says it passed” to “I can reproduce why it passed.”

Identity

Calculation version, protocol version, and evidence revision are distinct.

Calculation version
1.0.0
CVP protocol
1.0.0-proposed · proposed
Evidence revision
2026-09-27.o2-o3
Oracle
O3 · mpmath 1.4.1 · 80 dps
Generator
slip-or-tip-mpmath-o3 · seed 20260927.slip-or-tip-o3
Table SHA-256
874c2f9b535d1e68d448314631909c9ff7c02e3b0cec5eb0d898b213cba40574

Numerical claim

O3 PASS is a tabulated-vector claim, not a whole-domain proof.

O2: P vs a separate-module identity (≤2 ULP). Not an incline, not wedges, not screws, and not belts. ≤2 ULP vs O3 applies only to the published tabulated slip-or-tip vectors.

  • Last O3 run 8 / 8
  • Max error observed 0 ULP
  • Threshold ≤ 2 ULP

Commands

Regenerate the table from the public generator. Independent REST check needs only this page's reproduce.json plus stdlib Python — no repo clone and no mpmath. The CVP runner remains a maintainer command.

Regenerate O3 table
python3 generate-slip-or-tip-o3.py after downloading the public generator next to the table
Repo maintainer path
python3 scripts/lib/cvp/oracles/generate-slip-or-tip-o3.py
Independent REST check
Compare POST /api/v1/calc/slip-or-tip against /developers/cvp/reproduce/slip-or-tip-o3-tables.json after downloading check-math-o3-rest.py next to slip-or-tip-o3-tables.json (or pass --reproduce reproduce.json)
Re-run CVP
npm run cvp:run -- --capability mechanical.statics.slip_or_tip
REST check
POST https://www.calculatorx.com/api/v1/calc/slip-or-tip with a tabulated input from the table below

Re-running the generator without changing seed or inputs should reproduce table SHA-256 874c2f9b535d1e68d448314631909c9ff7c02e3b0cec5eb0d898b213cba40574. Compare each expected_f64 to the production result within the declared ULP threshold.

Tabulated vectors

Every O3 vector used for the ≤2 ULP claim. Expected values come from the published mpmath table, not from the implementation under test.

IDKindInputsExpected (f64)ActualULPStatus
o3-slipslip{"W":"100","mu":"0.25","b":"2","d":"2"}{"oracle_layer":"analytic","P":25,"P_slip":25,"P_tip":50}{"model":"slip_or_tip","W":100,"mu":0.25,"b":2,"d":2,"N":100,"P_slip":25,"P_tip":50,"P":25,"mode":"slip","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS
o3-tiptip{"W":"100","mu":"0.6","b":"2","d":"2"}{"oracle_layer":"analytic","P":50,"P_slip":60,"P_tip":50}{"model":"slip_or_tip","W":100,"mu":0.6,"b":2,"d":2,"N":100,"P_slip":60,"P_tip":50,"P":50,"mode":"tip","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS
o3-eithereither{"W":"100","mu":"0.5","b":"2","d":"2"}{"oracle_layer":"analytic","P":50,"P_slip":50,"P_tip":50}{"model":"slip_or_tip","W":100,"mu":0.5,"b":2,"d":2,"N":100,"P_slip":50,"P_tip":50,"P":50,"mode":"either","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS
o3-aliasalias{"weight":"80","mu_s":"0.2","width":"3","height":"1.5"}{"oracle_layer":"analytic","P":16,"P_slip":16,"P_tip":80}{"model":"slip_or_tip","W":80,"mu":0.2,"b":3,"d":1.5,"N":80,"P_slip":16,"P_tip":80,"P":16,"mode":"slip","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS
o3-awkwardawkward{"W":"137","mu":"0.37","b":"2.5","d":"1.8"}{"oracle_layer":"analytic","P":50.69,"P_slip":50.69,"P_tip":95.13888888888889}{"model":"slip_or_tip","W":137,"mu":0.37,"b":2.5,"d":1.8,"N":137,"P_slip":50.69,"P_tip":95.13888888888889,"P":50.69,"mode":"slip","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS
o3-smallsmall{"W":"1","mu":"0.1","b":"0.4","d":"0.2"}{"oracle_layer":"analytic","P":0.1,"P_slip":0.1,"P_tip":1}{"model":"slip_or_tip","W":1,"mu":0.1,"b":0.4,"d":0.2,"N":1,"P_slip":0.1,"P_tip":1,"P":0.1,"mode":"slip","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS
o3-talltall{"W":"200","mu":"0.3","b":"1","d":"4"}{"oracle_layer":"analytic","P":25,"P_slip":60,"P_tip":25}{"model":"slip_or_tip","W":200,"mu":0.3,"b":1,"d":4,"N":200,"P_slip":60,"P_tip":25,"P":25,"mode":"tip","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS
o3-widewide{"W":"50","mu":"0.4","b":"6","d":"1"}{"oracle_layer":"analytic","P":20,"P_slip":20,"P_tip":150}{"model":"slip_or_tip","W":50,"mu":0.4,"b":6,"d":1,"N":50,"P_slip":20,"P_tip":150,"P":20,"mode":"slip","solver":"friction + moment about the leading edge","convention":"The surface is level. P is horizontal at height d. The weight acts through the center of a base of width b. Slip uses F = μN with N = W. Tip is the moment of W about the leading edge."}0PASS