Home Developers Evidence math.log

Public evidence

math.log

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

Declared partition coverage
PASS · 5/5 declared partitions (log-y, log-x, log-b, invalid-domain, xcal)
Versions
Calculation 1.1.5 · CVP protocol 1.0.0-proposed · Evidence 2026-09-08.xcal
Verification revision
2026-09-08.xcal · 2/2 property · digest f983352a55ff

Verification

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.

    This calculator CURRENT · Public schema 1.1.5 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-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.

  • Golden (oracle-backed) 3 / 3
  • CVP boundary 23 / 23
  • Invalid input 23 / 23
  • Property 2 / 2
  • Metamorphic 2 / 2
  • Round-trip 3 / 3
  • O3 high-precision 14 / 14
  • Cross-interface 1 / 1
  • Cross-calculator 12 / 12
  • URL → result → graph 4 / 4
  • CVP contract 1 / 1
  • Interfaces PASS · UI (SSR) / REST / MCP / URL→result→graph
  • Interface claim Success 1/1. Integration: URL → SSR result → Live graph current point (4/4). Hydration/slider/history are URL-canonical contracts, not a live browser session.
  • Assurance Core
  • release artifacts aligned PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS

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.

Build & scope

Engine identity and declared limitations.

Tool
log
Engine
log
Engine build
2026-09-10
Evidence core
2026-09-10T22:48:17.762Z
Rendered
2026-09-16T22:03:43.773Z
Last reviewed

Assumptions

  • Real arithmetic; argument x > 0; base b > 0 and b ≠ 1.
  • Unspecified log is common (base 10). ln is the dedicated natural-log page; this engine also accepts base e.
  • UI, SSR share URLs, REST, and validation cases all call this same three-mode engine.
  • When b, x, and y are all present with no explicit solve_for, the engine computes y and ignores the extra y (legacy share URLs).

Limitations

  • Real logarithm only: x > 0; b > 0 and b ≠ 1 (including 0 < b < 1)
  • Missing scalar → MISSING_REQUIRED_INPUT / INVALID_NUMBER
  • Invalid base → INVALID_BASE; x ≤ 0 → INVALID_ARGUMENT
  • Solve-for-b edge cases → NON_UNIQUE_BASE / NO_REAL_SOLUTION / RESULT_OVERFLOW

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
common-100goldenpassExpected 2 · Actual value=2 · solve_for=y · b=10 · x=100 · y=2 · base_label=10 · base_mode=common
common-2goldenpassExpected 0.3010299956639812 · Actual value=0.3010299956639812 · solve_for=y · b=10 · x=2 · y=0.3010299956639812 · base_label=10 · base_mode=common
natural-egoldenpassExpected 1 · Actual value=1 · solve_for=y · b=2.718281828459045 · x=2.718281828459045 · y=1 · base_label=e · base_mode=natural
binary-8goldenpassExpected 3 · Actual value=3 · solve_for=y · b=2 · x=8 · y=3 · base_label=2 · base_mode=binary
common-neg2goldenpassExpected -2 · Actual value=-2 · solve_for=y · b=10 · x=0.01 · y=-2 · base_label=10 · base_mode=common
x-onegoldenpassExpected 0 · Actual value=0 · solve_for=y · b=10 · x=1 · y=0 · base_label=10 · base_mode=common
base-lt-onegoldenpassExpected 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-reciprocalgoldenpassExpected -2 · Actual value=-2 · solve_for=y · b=0.5 · x=4 · y=-2 · base_label=0.5 · base_mode=custom
decimal-customgoldenpassExpected 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-5goldenpassExpected 0.43067655807339306 · Actual value=0.43067655807339306 · solve_for=y · b=5 · x=2 · y=0.43067655807339306 · base_label=5 · base_mode=custom
invalid-base-1boundarypassExpected INVALID_BASE · Actual INVALID_BASE
invalid-base-0boundarypassExpected INVALID_BASE · Actual INVALID_BASE
invalid-base-negboundarypassExpected INVALID_BASE · Actual INVALID_BASE
x-zeroboundarypassExpected INVALID_ARGUMENT · Actual INVALID_ARGUMENT
x-negboundarypassExpected INVALID_ARGUMENT · Actual INVALID_ARGUMENT
empty-xboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
near-base-onegoldenpassExpected 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-xgoldenpassExpected -100 · Actual value=-100 · solve_for=y · b=10 · x=1e-100 · y=-100 · base_label=10 · base_mode=common
log2-cbrt-twogoldenpassExpected 0.3333333333333333 · Actual value=0.33333333333333337 · solve_for=y · b=2 · x=1.2599210498948732 · y=0.33333333333333337 · base_label=2 · base_mode=binary
large-finitegoldenpassExpected 308 · Actual value=308 · solve_for=y · b=10 · x=1e+308 · y=308 · base_label=10 · base_mode=common
x-infinityboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
x-nanboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
x-abcboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
x-whitespaceboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
x-nullboundarypassExpected MISSING_REQUIRED_INPUT · Actual MISSING_REQUIRED_INPUT
x-objectboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
x-arrayboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
x-booleanboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
b-objectboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
b-arrayboundarypassExpected INVALID_NUMBER · Actual INVALID_NUMBER
solve-x-common-1000goldenpassExpected 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-1024goldenpassExpected 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-halfgoldenpassExpected 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-explicitgoldenpassExpected 1000 · Actual value=1000 · solve_for=x · b=10 · x=1000 · y=3 · base_label=10 · base_mode=common
solve-b-common-10goldenpassExpected 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-2goldenpassExpected 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-halfgoldenpassExpected 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-uniqueboundarypassExpected NON_UNIQUE_BASE · Actual NON_UNIQUE_BASE
solve-b-y-zero-x-not-oneboundarypassExpected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION
solve-b-x-one-invalidboundarypassExpected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION
solve-x-overflowboundarypassExpected RESULT_OVERFLOW · Actual RESULT_OVERFLOW
solve-x-underflowboundarypassExpected RESULT_UNDERFLOW · Actual RESULT_UNDERFLOW
solve-b-overflowboundarypassExpected RESULT_OVERFLOW · Actual RESULT_OVERFLOW
three-filled-defaults-to-ygoldenpassExpected 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-forboundarypassExpected INVALID_SOLVE_FOR · Actual INVALID_SOLVE_FOR