Public evidence
Machine-checked verification for calculation version 1.0.6 · tier engine_tested
CVP status
CVP VERIFIED · production STALE · CVP protocol 1.0.0-proposed · Core assurance · operate (+/−/×/÷) and simplify
O2 BigInt gold covers operate (+/−/×/÷) and simplify only. Fraction integer inputs and every arithmetic intermediate must be safe integers (|x| ≤ 2^53−1); overflow returns VALUE_OUT_OF_RANGE. to-dec and from-dec have engine regression coverage, not O2 mode verification.
Legacy regression suite: 32/32 calculation tests · Production surface contract 5/5
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. Verification revision 2026-09-30.safe-integer-scope. Calculation version 1.0.6. CVP 1.0.0-proposed. 6/6 golden · 8/8 CVP boundary · 8/8 invalid · 2/2 property · 1/1 metamorphic · 1/1 round-trip · 7/7 cross-interface · 5/5 CVP contract. digest b2e72767e4a4.
Fingerprint sha256:c22300e344070a95a3c8831f8dc26c0c9adbc88a96cb7aaf50303d2755e30b34
Input schema sha256:6a1a9267461a8f953ff6f8289ffbd2ad64525cc914f53be9132b15f325487864 · Output schema sha256:0c0a783a6f09275e7cb36fc533c12637800f7c0383df922c28c7a0cece5c8b31 · 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 |