Public evidence
Machine-checked verification for calculation version 1.0.5 · tier engine_tested
CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance· O2 gold: operate (+/−/×/÷) and simplify · Protocol · Schema · Production report
Legacy regression suite: 32/32 calculation tests · Production surface contract 3/3
Three distinct suites: educational examples on the calculator page, this legacy regression count (32/32 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.0.5. CVP 1.0.0-proposed. 1/1 golden · 8/8 CVP boundary · 6/6 invalid · 2/2 property · 1/1 metamorphic · 1/1 round-trip · 1/1 cross-interface · 1/1 CVP contract. digest b258a9be030c.
Fingerprint sha256:43b5cf307fc4f3736c87857e2bb116ab79f3dd7e7e16b44a5aff2945b674380d
Input schema sha256:8d66a4747d5ec6e98d1037d68aa5291a0bd91768cfbd7df916f4b96c72d679af · Output schema sha256:757c639f564495aa26b322ec5656467d90847acbcf3528b263800e623234fe43 · 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.
Algorithms this engine uses. Not external references.
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 |
|---|---|---|---|
add-lcd | golden | pass | Expected improper=11/12 · n=11 · d=12 · Actual improper=11/12 · n=11 · d=12 · mixed=11/12 · display=11/12 · decimal=0.916666666667 · mode=operate · op=+ |
sub-lcd | golden | pass | Expected improper=7/12 · Actual improper=7/12 · n=7 · d=12 · mixed=7/12 · display=7/12 · decimal=0.583333333333 · mode=operate · op=- |
mul | golden | pass | Expected improper=1/8 · Actual improper=1/8 · n=1 · d=8 · mixed=1/8 · display=1/8 · decimal=0.125 · mode=operate · op=* |
div | golden | pass | Expected improper=9/2 · mixed=4 1/2 · Actual improper=9/2 · n=9 · d=2 · mixed=4 1/2 · display=4 1/2 · decimal=4.5 · mode=operate · op=/ |
simp-12-18 | golden | pass | Expected improper=2/3 · Actual improper=2/3 · n=2 · d=3 · mixed=2/3 · display=2/3 · decimal=0.666666666667 · mode=simplify · decimal_display=0.666666666667 |
simp-100-250 | golden | pass | Expected improper=2/5 · Actual improper=2/5 · n=2 · d=5 · mixed=2/5 · display=2/5 · decimal=0.4 · mode=simplify · decimal_display=0.4 |
simp-zero | golden | pass | Expected improper=0 · Actual improper=0 · n=0 · d=1 · mixed=0 · display=0 · decimal=0 · mode=simplify · decimal_display=0 |
add-zero | golden | pass | Expected improper=3/4 · Actual improper=3/4 · n=3 · d=4 · mixed=3/4 · display=3/4 · decimal=0.75 · mode=operate · op=+ |
simp-neg-num | golden | pass | Expected improper=-3/4 · Actual improper=-3/4 · n=-3 · d=4 · mixed=-3/4 · display=-3/4 · decimal=-0.75 · mode=simplify · decimal_display=-0.75 |
simp-neg-den | golden | pass | Expected improper=-3/4 · Actual improper=-3/4 · n=-3 · d=4 · mixed=-3/4 · display=-3/4 · decimal=-0.75 · mode=simplify · decimal_display=-0.75 |
simp-neg-neg | golden | pass | Expected improper=3/4 · Actual improper=3/4 · n=3 · d=4 · mixed=3/4 · display=3/4 · decimal=0.75 · mode=simplify · decimal_display=0.75 |
add-neg | golden | pass | Expected improper=-11/8 · Actual improper=-11/8 · n=-11 · d=8 · mixed=-1 3/8 · display=-1 3/8 · decimal=-1.375 · mode=operate · op=+ |
add-mixed | golden | pass | Expected improper=23/6 · mixed=3 5/6 · Actual improper=23/6 · n=23 · d=6 · mixed=3 5/6 · display=3 5/6 · decimal=3.83333333333 · mode=operate · op=+ |
mul-mixed | golden | pass | Expected improper=33/8 · Actual improper=33/8 · n=33 · d=8 · mixed=4 1/8 · display=4 1/8 · decimal=4.125 · mode=operate · op=* |
simp-improper | golden | pass | Expected improper=7/3 · mixed=2 1/3 · Actual improper=7/3 · n=7 · d=3 · mixed=2 1/3 · display=7/3 · decimal=2.33333333333 · mode=simplify · decimal_display=2.33333333333 |
from-375 | golden | pass | Expected improper=3/8 · Actual improper=3/8 · n=3 · d=8 · mixed=3/8 · display=3/8 · decimal=0.375 · mode=from-dec · decimal_display=0.375 |
from-125 | golden | pass | Expected improper=5/4 · Actual improper=5/4 · n=5 · d=4 · mixed=1 1/4 · display=5/4 · decimal=1.25 · mode=from-dec · decimal_display=1.25 |
to-dec | golden | pass | Expected improper=3/8 · decimal=0.375 · Actual improper=3/8 · n=3 · d=8 · mixed=3/8 · display=0.375 · decimal=0.375 · mode=to-dec · decimal_display=0.375 |
add-halves | golden | pass | Expected improper=1 · Actual improper=1 · n=1 · d=1 · mixed=1 · display=1 · decimal=1 · mode=operate · op=+ |
mul-cancel | golden | pass | Expected improper=1/4 · Actual improper=1/4 · n=1 · d=4 · mixed=1/4 · display=1/4 · decimal=0.25 · mode=operate · op=* |
boundary-den-zero-a | boundary | pass | Expected DENOMINATOR_MUST_BE_NONZERO · Actual DENOMINATOR_MUST_BE_NONZERO |
boundary-den-zero-b | boundary | pass | Expected DENOMINATOR_MUST_BE_NONZERO · Actual DENOMINATOR_MUST_BE_NONZERO |
boundary-div-zero | boundary | pass | Expected DIVISION_BY_ZERO · Actual DIVISION_BY_ZERO |
boundary-missing | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
boundary-invalid-num | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
boundary-from-dec-empty | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
boundary-alias-add | boundary | pass | Expected improper=11/12 · n=11 · d=12 · Actual improper=11/12 · n=11 · d=12 · mixed=11/12 · display=11/12 · decimal=0.916666666667 · mode=operate · op=+ |
boundary-from-neg-decimal | boundary | pass | Expected improper=-1/8 · Actual improper=-1/8 · n=-1 · d=8 · mixed=-1/8 · display=-1/8 · decimal=-0.125 · mode=from-dec · decimal_display=-0.125 |
property-lcd-equals-cross-product | property | pass | LCD result matches (ad ± bc)/bd after reduction |
property-deterministic | property | pass | 3/4 × 1/6 is deterministic |
property-multiply-commutative | property | pass | (2/5)×(3/7) = (3/7)×(2/5) |
property-gcf-lowest-terms | property | pass | 12/18 reduces to 2/3 |