FAILURE MAP
← Case archive

FA-15016 / Numerics / Open access

Balanced odd radix encoding: zero digit representation · case 01

The exact balanced odd radix encoding result violates the stated contract at zero digit representation.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The zero digit representation step uses [] instead of [0].

VERIFIED REPAIR

Use [0] at the zero digit representation step.

Unsuccessful approach: The partial repair [b] still violates the zero digit representation invariant.

Case contract

Input [integer, odd radix>=3]; return least-significant-first balanced digits between -(base//2) and base//2, zero=[0]. Bounds: |integer|<=100 and radix<=9.

Why this case matters

Exact discrete arithmetic with observable algorithmic state; no floating point approximation is used.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import itertools
from fractions import Fraction
N = 1
observations = []
def solve(x):
    n,b=x
    if n==0:return []
    out=[];half=b//2
    for _ in range(60):
     if n==0:break
     r=n%b
     if r>half:r-=b
     out.append(r)
     n=(n-r)//b
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([0, 3], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-100, 5], [0, 0, 1, -1]), ([-100, 7], [-2, 0, -2]), ([-100, 9], [-1, -2, -1]), ([-99, 3], [0, 0, 1, -1, -1]), ([-99, 5], [1, 0, 1, -1])], [([0, 5], [0]), ([0, 9], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-96, 5], [-1, 1, 1, -1]), ([-96, 7], [2, 0, -2]), ([-96, 9], [3, -2, -1]), ([-95, 3], [1, 1, 1, -1, -1])], [([0, 7], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-92, 7], [-1, 1, -2]), ([-92, 9], [-2, -1, -1]), ([-91, 3], [-1, 0, -1, 0, -1]), ([-91, 5], [-1, 2, 1, -1]), ([-91, 7], [0, 1, -2])], [([0, 9], [0]), ([0, 5], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-88, 9], [2, -1, -1]), ([-87, 3], [0, 1, -1, 0, -1]), ([-87, 5], [-2, -2, 2, -1]), ([-87, 7], [-3, 2, -2])], [([0, 3], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-83, 3], [1, -1, 0, 0, -1]), ([-83, 5], [2, -2, 2, -1]), ([-83, 7], [1, 2, -2]), ([-83, 9], [-2, 0, -1]), ([-82, 3], [-1, 0, 0, 0, -1])]]
for i, (args, expected) in enumerate(fixtures[N-1]):
    check("explicit oracle %d" % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
explicit oracle 0[][0]Failed
explicit oracle 1[-1, 0, 1, -1, -1][-1, 0, 1, -1, -1]Passed
explicit oracle 2[1, 2, 1][1, 2, 1]Passed
explicit oracle 3[0, 0, 1, -1][0, 0, 1, -1]Passed
explicit oracle 4[-2, 0, -2][-2, 0, -2]Passed
explicit oracle 5[-1, -2, -1][-1, -2, -1]Passed
explicit oracle 6[0, 0, 1, -1, -1][0, 0, 1, -1, -1]Passed
explicit oracle 7[1, 0, 1, -1][1, 0, 1, -1]Passed

SHA-256 / 566a8d865a812adcdc3558ca20f76ae13dfc82972daf68b28699216a2a75b04e

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import itertools
from fractions import Fraction
N = 1
observations = []
def solve(x):
    n,b=x
    if n==0:return [b]
    out=[];half=b//2
    for _ in range(60):
     if n==0:break
     r=n%b
     if r>half:r-=b
     out.append(r)
     n=(n-r)//b
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([0, 3], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-100, 5], [0, 0, 1, -1]), ([-100, 7], [-2, 0, -2]), ([-100, 9], [-1, -2, -1]), ([-99, 3], [0, 0, 1, -1, -1]), ([-99, 5], [1, 0, 1, -1])], [([0, 5], [0]), ([0, 9], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-96, 5], [-1, 1, 1, -1]), ([-96, 7], [2, 0, -2]), ([-96, 9], [3, -2, -1]), ([-95, 3], [1, 1, 1, -1, -1])], [([0, 7], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-92, 7], [-1, 1, -2]), ([-92, 9], [-2, -1, -1]), ([-91, 3], [-1, 0, -1, 0, -1]), ([-91, 5], [-1, 2, 1, -1]), ([-91, 7], [0, 1, -2])], [([0, 9], [0]), ([0, 5], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-88, 9], [2, -1, -1]), ([-87, 3], [0, 1, -1, 0, -1]), ([-87, 5], [-2, -2, 2, -1]), ([-87, 7], [-3, 2, -2])], [([0, 3], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-83, 3], [1, -1, 0, 0, -1]), ([-83, 5], [2, -2, 2, -1]), ([-83, 7], [1, 2, -2]), ([-83, 9], [-2, 0, -1]), ([-82, 3], [-1, 0, 0, 0, -1])]]
for i, (args, expected) in enumerate(fixtures[N-1]):
    check("explicit oracle %d" % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
explicit oracle 0[3][0]Failed
explicit oracle 1[-1, 0, 1, -1, -1][-1, 0, 1, -1, -1]Passed
explicit oracle 2[1, 2, 1][1, 2, 1]Passed
explicit oracle 3[0, 0, 1, -1][0, 0, 1, -1]Passed
explicit oracle 4[-2, 0, -2][-2, 0, -2]Passed
explicit oracle 5[-1, -2, -1][-1, -2, -1]Passed
explicit oracle 6[0, 0, 1, -1, -1][0, 0, 1, -1, -1]Passed
explicit oracle 7[1, 0, 1, -1][1, 0, 1, -1]Passed

SHA-256 / 919584ebcdd898f6b56b577f0145506f96a8aecf5b10e606e3286ba9df18df64

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import itertools
from fractions import Fraction
N = 1
observations = []
def solve(x):
    n,b=x
    if n==0:return [0]
    out=[];half=b//2
    for _ in range(60):
     if n==0:break
     r=n%b
     if r>half:r-=b
     out.append(r)
     n=(n-r)//b
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([0, 3], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-100, 5], [0, 0, 1, -1]), ([-100, 7], [-2, 0, -2]), ([-100, 9], [-1, -2, -1]), ([-99, 3], [0, 0, 1, -1, -1]), ([-99, 5], [1, 0, 1, -1])], [([0, 5], [0]), ([0, 9], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-96, 5], [-1, 1, 1, -1]), ([-96, 7], [2, 0, -2]), ([-96, 9], [3, -2, -1]), ([-95, 3], [1, 1, 1, -1, -1])], [([0, 7], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-92, 7], [-1, 1, -2]), ([-92, 9], [-2, -1, -1]), ([-91, 3], [-1, 0, -1, 0, -1]), ([-91, 5], [-1, 2, 1, -1]), ([-91, 7], [0, 1, -2])], [([0, 9], [0]), ([0, 5], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-88, 9], [2, -1, -1]), ([-87, 3], [0, 1, -1, 0, -1]), ([-87, 5], [-2, -2, 2, -1]), ([-87, 7], [-3, 2, -2])], [([0, 3], [0]), ([-100, 3], [-1, 0, 1, -1, -1]), ([100, 9], [1, 2, 1]), ([-83, 3], [1, -1, 0, 0, -1]), ([-83, 5], [2, -2, 2, -1]), ([-83, 7], [1, 2, -2]), ([-83, 9], [-2, 0, -1]), ([-82, 3], [-1, 0, 0, 0, -1])]]
for i, (args, expected) in enumerate(fixtures[N-1]):
    check("explicit oracle %d" % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
explicit oracle 0[0][0]Passed
explicit oracle 1[-1, 0, 1, -1, -1][-1, 0, 1, -1, -1]Passed
explicit oracle 2[1, 2, 1][1, 2, 1]Passed
explicit oracle 3[0, 0, 1, -1][0, 0, 1, -1]Passed
explicit oracle 4[-2, 0, -2][-2, 0, -2]Passed
explicit oracle 5[-1, -2, -1][-1, -2, -1]Passed
explicit oracle 6[0, 0, 1, -1, -1][0, 0, 1, -1, -1]Passed
explicit oracle 7[1, 0, 1, -1][1, 0, 1, -1]Passed

SHA-256 / 58fcb87233389e8ce7fde9c1c370cbf13d0cafe67d0e7473962e2a124debad32

Verification & scope

A deterministic bounded teaching model. Inputs are restricted to the explicit contract; this is not a production algebra library. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:39:22.598024+00:00.

Case digest / f4146ee188454e0c8f5633943e778c9ab55b2cc549e47e45769efaadf7c895bf