Home Developers Evidence math.subtraction

Public evidence

math.subtraction

Machine-checked verification for calculation version 1.0.1 · tier engine_tested

CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance· Declared partitions are difference, solve-for-minuend, solve-for-subtrahend, long-normal, long-negative-result, invalid-domain — aligned with published capability modes. O2 checks numeric values and long-mode domain; column-work strings are not an independent numerical claim. · Protocol · Schema · Production report

Declared partition coverage
PASS · 6/6 declared partitions (difference, solve-for-minuend, solve-for-subtrahend, long-normal, long-negative-result, invalid-domain)
Versions
Calculation 1.0.1 · CVP protocol 1.0.0-proposed · Evidence 2026-09-16.sources-no-wolfram
Verification revision
2026-09-16.sources-no-wolfram · 2/2 property · digest c11ae651671e

Verification

Legacy regression suite: 7/7 calculation tests · Production surface contract 1/1

Three distinct suites: educational examples on the calculator page, this legacy regression count (7/7 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.

    This calculator CURRENT · Public schema 1.0.1 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Verification revision 2026-09-16.sources-no-wolfram. Calculation version 1.0.1. CVP 1.0.0-proposed. 5/5 golden · 1/1 CVP boundary · 3/3 invalid · 2/2 property · 1/1 metamorphic · 2/2 round-trip · 5/5 cross-interface · 1/1 CVP contract. digest c11ae651671e. ≤2 ULP on the numeric value for difference, solve-for-minuend, solve-for-subtrahend, and long-mode difference. Column-work strings and regrouping steps are not an O2 numerical claim.

  • Golden (oracle-backed) 5 / 5
  • CVP boundary 1 / 1
  • Invalid input 3 / 3
  • Property 2 / 2
  • Metamorphic 1 / 1
  • Round-trip 2 / 2
  • Cross-interface 5 / 5
  • CVP contract 1 / 1
  • Interfaces PASS · UI (SSR) / REST / MCP
  • Interface claim ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 1/1 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
  • Assurance Core
  • release artifacts aligned PASS

Fingerprint sha256:113403a47c2ee55509526c0e98d7af7ababb1433c75c68e1b0fd4036154571ef

Input schema sha256:fa1bc74e23719b3abe7bf9bddc9ffc8315a9561e8296e3016c65fb26dd15eca5 · Output schema sha256:59ae1ce074636bfab360e052486f3de9d0465dfea05d29061955df237fe7e6d8 · 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.

Build & scope

Engine identity and declared limitations.

Tool
subtraction
Engine
subtraction
Engine build
2026-09-16
Evidence core
2026-09-16T06:41:00.884Z
Rendered
2026-09-16T22:03:43.782Z
Last reviewed

Assumptions

  • Difference mode: finite reals; scientific notation allowed.
  • Long subtraction: non-negative decimal numbers without scientific notation.
  • Order is minuend − subtrahend. When minuend < subtrahend the difference is negative; long mode still stacks the minuend on top. Column work subtracts the smaller magnitude from the larger, then applies the sign.

Limitations

  • Need any two of minuend/subtrahend/difference → MISSING_REQUIRED_INPUT
  • Long mode: non-negative decimals; scientific notation not supported

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Legacy published checks

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.

IDKindStatusDetail
basicgoldenpassExpected 5 · Actual value=5 · mode=difference · solve_for=difference · minuend=8 · subtrahend=3 · difference=5 · formula=a − b = d · work=Difference: 8 − 3 = 5 Check: 8 − 3 = 5
neggoldenpassExpected 7 · Actual value=7 · mode=difference · solve_for=difference · minuend=4 · subtrahend=-3 · difference=7 · formula=a − b = d · work=Difference: 4 − -3 = 7 Note: subtracting a negative = adding: 4 + 3 = 7 Check: 4 − -3 = 7
decimalgoldenpassExpected 1.18 · Actual value=1.1799999999999997 · mode=difference · solve_for=difference · minuend=2.3 · subtrahend=1.12 · difference=1.1799999999999997 · formula=a − b = d · work=Difference: 2.3 − 1.12 = 1.18 Check: 2.3 − 1.12 = 1.18
regroupgoldenpassExpected 98 · Actual value=98 · mode=difference · solve_for=difference · minuend=245 · subtrahend=147 · difference=98 · formula=a − b = d · work=Difference: 245 − 147 = 98 Check: 245 − 147 = 98
solve-minuendgoldenpassExpected value=15 · solve_for=minuend · Actual value=15 · mode=difference · solve_for=minuend · minuend=15 · subtrahend=6 · difference=9 · formula=a − b = d · work=Solve minuend: d + b = 9 + 6 = 15 Check: 15 − 6 = 9
long-smaller-minuendgoldenpassExpected difference=-78 · swapped=true · Actual value=-78 · mode=long · solve_for=difference · minuend=45 · subtrahend=123 · difference=-78 · formula=a − b = d · work=Long subtraction (align place values, subtract right → left): 45 − 123 ----- -78 If minuend < subtrahend, the result is negative. Column work subtracts the smaller magnitude from the larger, then applies the sign. Column work (with regrouping / borrowing): hundreds: 0 − 0 = 0 tens: 1 < 4 → borrow from hundreds; becomes 11, then 11 − 4 = 7 ones: 3 < 5 → borrow from tens; becomes 13, then 13 − 5 = 8
boundary-sub-one-termboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT