FAILURE MAP
← Case archive

FA-14546 / Numerics / Open access

Calkin wilf successors: successor output count · case 01

The exact calkin wilf successors result violates the stated contract at successor output count.

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

ROOT CAUSE

The successor output count step uses range(1,x) instead of range(x).

VERIFIED REPAIR

Use range(x) at the successor output count step.

Unsuccessful approach: The partial repair range(x+1) still violates the successor output count invariant.

Case contract

Input positive count k<=50; return first k reduced positive rationals in Calkin-Wilf breadth-first order.

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):
    p,q=1,1
    out=[]
    for _ in range(1,x):
     out.append([p,q])
     if q==0:return None
     a=p//q
     den=(2*a+1)*q-p
     p,q=q,den
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[(1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (2, [[1, 1], [1, 2]]), (3, [[1, 1], [1, 2], [2, 1]]), (4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]), (7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]])], [(2, [[1, 1], [1, 2]]), (4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (18, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7]]), (19, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3]]), (20, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8]]), (21, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5]])], [(3, [[1, 1], [1, 2], [2, 1]]), (7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (35, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4]]), (36, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11]]), (37, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7]]), (38, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10]])], [(4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (10, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (2, [[1, 1], [1, 2]]), (3, [[1, 1], [1, 2], [2, 1]]), (5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]])], [(5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (13, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (19, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3]]), (20, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8]]), (21, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5]]), (22, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7]])]]
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]]Failed
explicit oracle 1[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]Failed
explicit oracle 2[[1, 1]][[1, 1], [1, 2]]Failed
explicit oracle 3[[1, 1], [1, 2]][[1, 1], [1, 2], [2, 1]]Failed
explicit oracle 4[[1, 1], [1, 2], [2, 1]][[1, 1], [1, 2], [2, 1], [1, 3]]Failed
explicit oracle 5[[1, 1], [1, 2], [2, 1], [1, 3]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]Failed
explicit oracle 6[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]Failed
explicit oracle 7[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]Failed

SHA-256 / b9d2604e832067599109b11548b5987a253eca1a1481f0bc5e3e7e30a429e8e3

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):
    p,q=1,1
    out=[]
    for _ in range(x+1):
     out.append([p,q])
     if q==0:return None
     a=p//q
     den=(2*a+1)*q-p
     p,q=q,den
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[(1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (2, [[1, 1], [1, 2]]), (3, [[1, 1], [1, 2], [2, 1]]), (4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]), (7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]])], [(2, [[1, 1], [1, 2]]), (4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (18, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7]]), (19, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3]]), (20, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8]]), (21, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5]])], [(3, [[1, 1], [1, 2], [2, 1]]), (7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (35, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4]]), (36, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11]]), (37, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7]]), (38, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10]])], [(4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (10, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (2, [[1, 1], [1, 2]]), (3, [[1, 1], [1, 2], [2, 1]]), (5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]])], [(5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (13, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (19, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3]]), (20, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8]]), (21, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5]]), (22, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7]])]]
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, 2]][[1, 1]]Failed
explicit oracle 1[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12], [12, 5]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]Failed
explicit oracle 2[[1, 1], [1, 2], [2, 1]][[1, 1], [1, 2]]Failed
explicit oracle 3[[1, 1], [1, 2], [2, 1], [1, 3]][[1, 1], [1, 2], [2, 1]]Failed
explicit oracle 4[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]][[1, 1], [1, 2], [2, 1], [1, 3]]Failed
explicit oracle 5[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]Failed
explicit oracle 6[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]Failed
explicit oracle 7[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]Failed

SHA-256 / dcdd80aa2a658e1d720557fce83bd32d7d721101acabf821995afb78c5f52de2

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):
    p,q=1,1
    out=[]
    for _ in range(x):
     out.append([p,q])
     if q==0:return None
     a=p//q
     den=(2*a+1)*q-p
     p,q=q,den
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[(1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (2, [[1, 1], [1, 2]]), (3, [[1, 1], [1, 2], [2, 1]]), (4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]), (7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]])], [(2, [[1, 1], [1, 2]]), (4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (18, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7]]), (19, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3]]), (20, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8]]), (21, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5]])], [(3, [[1, 1], [1, 2], [2, 1]]), (7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (35, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4]]), (36, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11]]), (37, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7]]), (38, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10]])], [(4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (10, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (2, [[1, 1], [1, 2]]), (3, [[1, 1], [1, 2], [2, 1]]), (5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]])], [(5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (13, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3]]), (1, [[1, 1]]), (50, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]), (19, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3]]), (20, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8]]), (21, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5]]), (22, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7]])]]
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, 1]]Passed
explicit oracle 1[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 3], [3, 5], [5, 2], [2, 5], [5, 3], [3, 4], [4, 1], [1, 5], [5, 4], [4, 7], [7, 3], [3, 8], [8, 5], [5, 7], [7, 2], [2, 7], [7, 5], [5, 8], [8, 3], [3, 7], [7, 4], [4, 5], [5, 1], [1, 6], [6, 5], [5, 9], [9, 4], [4, 11], [11, 7], [7, 10], [10, 3], [3, 11], [11, 8], [8, 13], [13, 5], [5, 12], [12, 7], [7, 9], [9, 2], [2, 9], [9, 7], [7, 12]]Passed
explicit oracle 2[[1, 1], [1, 2]][[1, 1], [1, 2]]Passed
explicit oracle 3[[1, 1], [1, 2], [2, 1]][[1, 1], [1, 2], [2, 1]]Passed
explicit oracle 4[[1, 1], [1, 2], [2, 1], [1, 3]][[1, 1], [1, 2], [2, 1], [1, 3]]Passed
explicit oracle 5[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]Passed
explicit oracle 6[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]Passed
explicit oracle 7[[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]Passed

SHA-256 / 9dc416be4a5678a9644a43c22f670540cf11a20cc1608313992df23e70d011aa

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

Case digest / 8b300c6b1fa5ee81b99782e76220ba42d3970efdc6647d5371498522cd0eaa94