FAILURE MAP
← Case archive

FA-15036 / Numerics / Open access

Balanced odd radix encoding: digit significance order · case 01

The exact balanced odd radix encoding result violates the stated contract at digit significance order.

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

ROOT CAUSE

The digit significance order step uses out[::-1] instead of out.

VERIFIED REPAIR

Use out at the digit significance order step.

Unsuccessful approach: The partial repair sorted(out) still violates the digit significance order 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 [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[::-1]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([-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]), ([-99, 7], [-1, 0, -2])], [([-100, 5], [0, 0, 1, -1]), ([-100, 9], [-1, -2, -1]), ([-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])], [([-99, 3], [0, 0, 1, -1, -1]), ([-99, 7], [-1, 0, -2]), ([-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])], [([-99, 5], [1, 0, 1, -1]), ([-98, 5], [2, 0, 1, -1]), ([-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])], [([-99, 7], [-1, 0, -2]), ([-97, 3], [-1, 1, 1, -1, -1]), ([-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])]]
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[-1, -1, 1, 0, -1][-1, 0, 1, -1, -1]Failed
explicit oracle 1[1, 2, 1][1, 2, 1]Passed
explicit oracle 2[-1, 1, 0, 0][0, 0, 1, -1]Failed
explicit oracle 3[-2, 0, -2][-2, 0, -2]Passed
explicit oracle 4[-1, -2, -1][-1, -2, -1]Passed
explicit oracle 5[-1, -1, 1, 0, 0][0, 0, 1, -1, -1]Failed
explicit oracle 6[-1, 1, 0, 1][1, 0, 1, -1]Failed
explicit oracle 7[-2, 0, -1][-1, 0, -2]Failed

SHA-256 / 251734831fa6c2ebb9d49ae03ae192b1f9cb91760ee05a6fd3ae1dc3de474720

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 [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 sorted(out)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([-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]), ([-99, 7], [-1, 0, -2])], [([-100, 5], [0, 0, 1, -1]), ([-100, 9], [-1, -2, -1]), ([-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])], [([-99, 3], [0, 0, 1, -1, -1]), ([-99, 7], [-1, 0, -2]), ([-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])], [([-99, 5], [1, 0, 1, -1]), ([-98, 5], [2, 0, 1, -1]), ([-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])], [([-99, 7], [-1, 0, -2]), ([-97, 3], [-1, 1, 1, -1, -1]), ([-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])]]
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[-1, -1, -1, 0, 1][-1, 0, 1, -1, -1]Failed
explicit oracle 1[1, 1, 2][1, 2, 1]Failed
explicit oracle 2[-1, 0, 0, 1][0, 0, 1, -1]Failed
explicit oracle 3[-2, -2, 0][-2, 0, -2]Failed
explicit oracle 4[-2, -1, -1][-1, -2, -1]Failed
explicit oracle 5[-1, -1, 0, 0, 1][0, 0, 1, -1, -1]Failed
explicit oracle 6[-1, 0, 1, 1][1, 0, 1, -1]Failed
explicit oracle 7[-2, -1, 0][-1, 0, -2]Failed

SHA-256 / 1807c7624340ab067886423834f5e27805a516274ab129cb4e9c07ce0235f5f1

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 = [[([-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]), ([-99, 7], [-1, 0, -2])], [([-100, 5], [0, 0, 1, -1]), ([-100, 9], [-1, -2, -1]), ([-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])], [([-99, 3], [0, 0, 1, -1, -1]), ([-99, 7], [-1, 0, -2]), ([-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])], [([-99, 5], [1, 0, 1, -1]), ([-98, 5], [2, 0, 1, -1]), ([-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])], [([-99, 7], [-1, 0, -2]), ([-97, 3], [-1, 1, 1, -1, -1]), ([-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])]]
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[-1, 0, 1, -1, -1][-1, 0, 1, -1, -1]Passed
explicit oracle 1[1, 2, 1][1, 2, 1]Passed
explicit oracle 2[0, 0, 1, -1][0, 0, 1, -1]Passed
explicit oracle 3[-2, 0, -2][-2, 0, -2]Passed
explicit oracle 4[-1, -2, -1][-1, -2, -1]Passed
explicit oracle 5[0, 0, 1, -1, -1][0, 0, 1, -1, -1]Passed
explicit oracle 6[1, 0, 1, -1][1, 0, 1, -1]Passed
explicit oracle 7[-1, 0, -2][-1, 0, -2]Passed

SHA-256 / 690fe9678ad60c70f891313c7ea7c1a75a7c213ce2e1c4e642f552a7bf300907

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.691764+00:00.

Case digest / 4d49ed640acf59fcc75be4d36f1f0208c578e3c0adc0be9880063ccad4c741d0