Public evidence
Machine-checked verification for calculation version 1.1.4 · tier engine_tested
CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· T≠0; solve_for p|o|t; all three fields verify; absolute reverse-solves are multi-valued · Protocol · Schema · Production report
Legacy regression suite: 14/14 calculation tests · Production surface contract 3/3
Three distinct suites: educational examples on the calculator page, this legacy regression count (14/14 golden + boundary), and the CVP verification suite below. They are not the same number. Property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the CVP Manifest . SKIP (0/0) means that suite has no published vectors.
Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Calculation version 1.1.4. CVP 1.0.0-proposed. 6/6 golden · 4/4 CVP boundary · 4/4 invalid · 3/3 property · 1/1 metamorphic · 7/7 round-trip · 1/1 cross-interface · 1/1 CVP contract. digest 620c0f56d567.
Fingerprint sha256:783cd14e12cb9811044d6bc3fce9d6c1f6fd3cf96201ae81a3916d8ad4aad9f1
Input schema sha256:9e03727ba37a3e2ed408e1b5848d278926befd7c7560784f476b13b239ba0ac9 · Output schema sha256:1ffdaff2555960cc04fef346c1146c38f6a8feb12995a9fdb488e220d00a439c · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write
(published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.
Engine identity and declared limitations.
Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.
Golden and boundary cases from the legacy Evidence JSON. CVP property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the Manifest — including SKIP when a suite has no vectors.
| ID | Kind | Status | Detail |
|---|---|---|---|
basic | golden | pass | Expected 1.5 · Actual value=1.5 · solve_for=p · observed=101.5 · true=100 · percent_error=1.5 · absolute_error=1.5 · relative_error=0.015 · signed_percent_error=1.5 |
approx | golden | pass | Expected 8.7217417812505 · Actual value=8.7217417812505 · solve_for=p · observed=56.891 · true=62.327 · percent_error=8.7217417812505 · absolute_error=5.436 · relative_error=0.08721741781250501 · signed_percent_error=-8.7217417812505 |
exact | golden | pass | Expected 0 · Actual value=0 · solve_for=p · observed=5 · true=5 · percent_error=0 · absolute_error=0 · relative_error=0 · signed_percent_error=0 |
share-ot | golden | pass | Expected percent_error=2 · absolute_error=2 · relative_error=0.02 · Actual value=2 · solve_for=p · observed=98 · true=100 · percent_error=2 · absolute_error=2 · relative_error=0.02 · signed_percent_error=-2 |
signed | golden | pass | Expected percent_error=-22.22222222222222 · Actual value=-22.22222222222222 · solve_for=p · observed=7 · true=9 · percent_error=-22.22222222222222 · absolute_error=2 · relative_error=0.2222222222222222 · signed_percent_error=-22.22222222222222 |
reverse-o-abs | golden | pass | Expected value=98 · solve_for=o · solution_type=two · status=success · Actual value=98 · solve_for=o · true=100 · percent_error=2 · absolute_error=2 · relative_error=0.02 · signed_percent_error=-2 · absolute=true |
zero-true | boundary | pass | Expected TRUE_VALUE_ZERO · Actual TRUE_VALUE_ZERO |
inconsistent | golden | pass | Expected status=inconsistent · code=INCONSISTENT_INPUTS · percent_error=2 · Actual value=2 · solve_for=p · observed=98 · true=100 · percent_error=2 · entered_percent_error=20 · absolute_error=2 · relative_error=0.02 |
infinite-t | golden | pass | Expected status=infinite · code=INFINITELY_MANY · constraint=T != 0 · solution_type=infinite · Actual solve_for=t · observed=0 · percent_error=100 · relative_error=1 · absolute=true · status=infinite · code=INFINITELY_MANY · solution_type=infinite |
no-sol-t | boundary | pass | Expected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION |
solve-t-p100 | golden | pass | Expected value=25 · solve_for=t · true=25 · solution_type=unique · Actual value=25 · solve_for=t · observed=50 · true=25 · percent_error=100 · absolute_error=25 · relative_error=1 · signed_percent_error=100 |
infinite-t-signed | golden | pass | Expected status=infinite · code=INFINITELY_MANY · constraint=T != 0 · solution_type=infinite · Actual solve_for=t · observed=0 · percent_error=-100 · relative_error=1 · signed_percent_error=-100 · absolute=false · status=infinite · code=INFINITELY_MANY |
no-sol-t-signed-p | boundary | pass | Expected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION |
no-sol-t-signed-o0 | boundary | pass | Expected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION |