Public evidence
Machine-checked verification for calculation version 1.1.5 · tier engine_tested
CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance· Real log: x>0; b>0,b≠1 · Protocol · Schema · Production report
Legacy regression suite: 45/45 calculation tests · Production surface contract 3/3
Three distinct suites: educational examples on the calculator page, this legacy regression count (45/45 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-08.xcal. Calculation version 1.1.5. CVP 1.0.0-proposed. 3/3 golden · 23/23 CVP boundary · 23/23 invalid · 2/2 property · 2/2 metamorphic · 3/3 round-trip · 14/14 O3 · 1/1 cross-interface · 12/12 cross-calculator · 4/4 URL→result→graph · 1/1 CVP contract. digest f983352a55ff. ≤2 ULP vs O3 applies to the 14 published tabulated common-log vectors (log₁₀ of 1, 10, 100, 0.1, 2, 1000 plus 8 seeded random x = 10^(u·6−2) in about [0.01, 10⁴]). It is not a guarantee over all bases, the whole positive reals, or unlisted neighborhoods of 0 and 1.
Fingerprint sha256:bcb7a82f169cf93207a2650382b83eb6ff3e999dc0f1b4d87181c3b4ff5d8ad2
Input schema sha256:7d087522bac508a630ba719d929a8cfa2f64c8522e6ea08ee051bd5d4cd66b7c · Output schema sha256:8ff71d8c30e992a2dbca0e8d464116bdd8233e7a9de147a2689611f33b5a42ca · 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 |
|---|---|---|---|
common-100 | golden | pass | Expected 2 · Actual value=2 · solve_for=y · b=10 · x=100 · y=2 · base_label=10 · base_mode=common |
common-2 | golden | pass | Expected 0.3010299956639812 · Actual value=0.3010299956639812 · solve_for=y · b=10 · x=2 · y=0.3010299956639812 · base_label=10 · base_mode=common |
natural-e | golden | pass | Expected 1 · Actual value=1 · solve_for=y · b=2.718281828459045 · x=2.718281828459045 · y=1 · base_label=e · base_mode=natural |
binary-8 | golden | pass | Expected 3 · Actual value=3 · solve_for=y · b=2 · x=8 · y=3 · base_label=2 · base_mode=binary |
common-neg2 | golden | pass | Expected -2 · Actual value=-2 · solve_for=y · b=10 · x=0.01 · y=-2 · base_label=10 · base_mode=common |
x-one | golden | pass | Expected 0 · Actual value=0 · solve_for=y · b=10 · x=1 · y=0 · base_label=10 · base_mode=common |
base-lt-one | golden | pass | Expected 2 · Actual value=2 · solve_for=y · b=0.5 · x=0.25 · y=2 · base_label=0.5 · base_mode=custom |
base-lt-one-reciprocal | golden | pass | Expected -2 · Actual value=-2 · solve_for=y · b=0.5 · x=4 · y=-2 · base_label=0.5 · base_mode=custom |
decimal-custom | golden | pass | Expected 2 · Actual value=2 · solve_for=y · b=1.5 · x=2.25 · y=2 · base_label=1.5 · base_mode=custom |
change-of-base-5 | golden | pass | Expected 0.43067655807339306 · Actual value=0.43067655807339306 · solve_for=y · b=5 · x=2 · y=0.43067655807339306 · base_label=5 · base_mode=custom |
invalid-base-1 | boundary | pass | Expected INVALID_BASE · Actual INVALID_BASE |
invalid-base-0 | boundary | pass | Expected INVALID_BASE · Actual INVALID_BASE |
invalid-base-neg | boundary | pass | Expected INVALID_BASE · Actual INVALID_BASE |
x-zero | boundary | pass | Expected INVALID_ARGUMENT · Actual INVALID_ARGUMENT |
x-neg | boundary | pass | Expected INVALID_ARGUMENT · Actual INVALID_ARGUMENT |
empty-x | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
near-base-one | golden | pass | Expected 624331476816536.2 · Actual value=624331476816536.2 · solve_for=y · b=1.000000000000001 · x=2 · y=624331476816536.2 · base_label=1.000000000000001 · base_mode=custom |
tiny-positive-x | golden | pass | Expected -100 · Actual value=-100 · solve_for=y · b=10 · x=1e-100 · y=-100 · base_label=10 · base_mode=common |
log2-cbrt-two | golden | pass | Expected 0.3333333333333333 · Actual value=0.33333333333333337 · solve_for=y · b=2 · x=1.2599210498948732 · y=0.33333333333333337 · base_label=2 · base_mode=binary |
large-finite | golden | pass | Expected 308 · Actual value=308 · solve_for=y · b=10 · x=1e+308 · y=308 · base_label=10 · base_mode=common |
x-infinity | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
x-nan | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
x-abc | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
x-whitespace | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
x-null | boundary | pass | Expected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT |
x-object | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
x-array | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
x-boolean | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
b-object | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
b-array | boundary | pass | Expected INVALID_NUMBER · Actual INVALID_NUMBER |
solve-x-common-1000 | golden | pass | Expected value=1000 · solve_for=x · x=1000 · Actual value=1000 · solve_for=x · b=10 · x=1000 · y=3 · base_label=10 · base_mode=common |
solve-x-binary-1024 | golden | pass | Expected value=1024 · solve_for=x · Actual value=1024 · solve_for=x · b=2 · x=1024 · y=10 · base_label=2 · base_mode=binary |
solve-x-half | golden | pass | Expected value=0.25 · solve_for=x · Actual value=0.25 · solve_for=x · b=0.5 · x=0.25 · y=2 · base_label=0.5 · base_mode=custom |
solve-x-explicit | golden | pass | Expected 1000 · Actual value=1000 · solve_for=x · b=10 · x=1000 · y=3 · base_label=10 · base_mode=common |
solve-b-common-10 | golden | pass | Expected value=10 · solve_for=b · b=10 · Actual value=10 · solve_for=b · b=10 · x=100 · y=2 · base_label=10 · base_mode=common |
solve-b-binary-2 | golden | pass | Expected value=2 · solve_for=b · Actual value=2 · solve_for=b · b=2 · x=8 · y=3 · base_label=2 · base_mode=binary |
solve-b-half | golden | pass | Expected value=0.5 · solve_for=b · Actual value=0.5 · solve_for=b · b=0.5 · x=0.25 · y=2 · base_label=0.5 · base_mode=custom |
solve-b-non-unique | boundary | pass | Expected NON_UNIQUE_BASE · Actual NON_UNIQUE_BASE |
solve-b-y-zero-x-not-one | boundary | pass | Expected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION |
solve-b-x-one-invalid | boundary | pass | Expected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION |
solve-x-overflow | boundary | pass | Expected RESULT_OVERFLOW · Actual RESULT_OVERFLOW |
solve-x-underflow | boundary | pass | Expected RESULT_UNDERFLOW · Actual RESULT_UNDERFLOW |
solve-b-overflow | boundary | pass | Expected RESULT_OVERFLOW · Actual RESULT_OVERFLOW |
three-filled-defaults-to-y | golden | pass | Expected value=2 · solve_for=y · Actual value=2 · solve_for=y · b=10 · x=100 · y=2 · base_label=10 · base_mode=common |
invalid-solve-for | boundary | pass | Expected INVALID_SOLVE_FOR · Actual INVALID_SOLVE_FOR |