Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-clean

Big Integer Base-N Arithmetic

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Computing & Information
Tranche
tranche-5
Evidence ID
t5-004
Ledger rows
1

No ledger note is attached.

Review findings

The four vectors assume conventional unsigned base-16 digit arrays with signed subtraction permitted, quotient-and-remainder division, and least-significant-first trace reporting. The exact ambiguities requiring resolution are signed-number representation, division semantics, digit-array order, base and digit validation, and carry/borrow trace schema.

Formula and scope findings

  • The specification gives only the phrase "schoolbook algorithms generalized to base b digit arrays" rather than explicit addition, subtraction, multiplication, and division formulas or pseudocode.
  • Signed-integer behavior is unspecified: subtraction may produce a negative result, but the digit-array representation and sign handling are not defined.
  • Division semantics are unspecified, including quotient rounding, remainder sign, and whether division returns quotient only or quotient plus remainder.
  • Digit order is unspecified: the implementation must define whether arrays are least-significant-digit first or most-significant-digit first.
  • The allowed base range and digit alphabet are unspecified. A standard positional representation requires an integer base b >= 2 and digits in the range 0 through b-1.
  • The carry/borrow trace format is unspecified, so the stated output cannot be verified consistently.

Unit assumptions

  • Inputs are dimensionless integers represented in a common integer base b.
  • For these test vectors, digits are written most-significant first, the base is explicitly supplied, and hexadecimal digits A-F represent values 10-15.
  • The base is an integer b >= 2; every input digit must be in the range 0 through b-1.
  • Results are returned without unnecessary leading zero digits, except that zero is represented as "0".
  • Subtraction uses signed results; division uses nonnegative dividend and divisor and returns truncating quotient plus nonnegative remainder satisfying dividend = divisor * quotient + remainder.
  • Carry and borrow traces below are listed from least-significant processed digit to most-significant processed digit.

Boundary hardening

Recorded hazards

  • Division by zero must be rejected before any division step.
  • Invalid digits, a base below 2, noninteger bases, and mismatched operand bases must be rejected.
  • If negative integers are supported, sign normalization and subtraction cases such as a smaller minuend must be explicitly defined and tested.
  • A JavaScript Number used for intermediate digit products or carry accumulation can lose precision; arbitrary precision requires BigInt or carefully bounded digit arithmetic.
  • Malformed inputs, empty digit arrays, leading signs, leading zeros, and zero normalization need explicit validation rules.
  • The division output must state whether it is quotient-only or quotient-plus-remainder and must define behavior for negative operands.
  • The empty honest_label field is a labeling concern: the catalog should not imply fully verified arbitrary-precision support until base validation, signed arithmetic, division semantics, and precision guarantees are specified and tested.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "base": 16,
    "left": "FFFF",
    "right": "1",
    "operation": "add"
  },
  "expected_outputs": {
    "result": "10000",
    "carry_borrow_trace": {
      "carry_out_by_position": [
        1,
        1,
        1,
        1
      ],
      "final_carry": 1
    }
  },
  "working": "Process right to left: F + 1 = 16, write 0 and carry 1; F + 0 + 1 = 16, write 0 and carry 1; F + 0 + 1 = 16, write 0 and carry 1; F + 0 + 1 = 16, write 0 and carry 1. Append the final carry 1. Result = 10000 base 16."
}

Related workflows

No source-defined multi-instrument workflow membership is recorded.

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_CLEAN
  • evidence-tranche5/tranche5-results.json