FAILURE MAP
← Case archive

FA-14551 / Numerics / Open access

Calkin wilf successors: integer part at breadth boundary · case 01

The exact calkin wilf successors result violates the stated contract at integer part at breadth boundary.

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

ROOT CAUSE

The integer part at breadth boundary step uses q//p if p else 0 instead of p//q.

VERIFIED REPAIR

Use p//q at the integer part at breadth boundary step.

Unsuccessful approach: The partial repair (p+q-1)//q still violates the integer part at breadth boundary 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(x):
     out.append([p,q])
     if q==0:return None
     a=q//p if p else 0
     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 = [[(3, [[1, 1], [1, 2], [2, 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]]), (2, [[1, 1], [1, 2]]), (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]])], [(4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 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]])], [(5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (9, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 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]]), (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]])], [(6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]), (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]]), (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]])], [(7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]), (15, [[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, [[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], [2, 9]][[1, 1], [1, 2], [2, 1]]Failed
explicit oracle 1[[1, 1]][[1, 1]]Passed
explicit oracle 2[[1, 1], [1, 2], [2, 9], [9, 79], [79, 1334], [1334, 43943], [43943, 2854961], [2854961, 368246026], [368246026, 94636373721], [94636373721, 48548091472847], [48548091472847, 49761699123294454], [49761699123294454, 101961672955538863399], [101961672955538863399, 417736924337143600051249], [417736924337143600051249, 3422518519132544559681019658], [3422518519132544559681019658, 56077965518249818273229907045081], [56077965518249818273229907045081, 1837618848645009775862926264279239631], [1837618848645009775862926264279239631, 120432026427570040162478780308838620651766], [120432026427570040162478780308838620651766, 15785386998103269025571571395557478260409685287], [15785386998103269025571571395557478260409685287, 4138060274497349432280889543325936358266258328908849], [4138060274497349432280889543325936358266258328908849, 2169539483240155449503012028755240275943500834744881848074], [2169539483240155449503012028755240275943500834744881848074, 2274929202713374420499022494643802693284682338436017715278981849], [2274929202713374420499022494643802693284682338436017715278981849, 4770874602255791766589546366260231737601296179822166358815717739727823], [4770874602255791766589546366260231737601296179822166358815717739727823, 20010503198612203756362653897316622255685160770815726787274122976613827666166], [20010503198612203756362653897316622255685160770815726787274122976613827666166, 167860287226402349065855309955148703757274580576774141773088971302370728567109375271], [167860287226402349065855309955148703757274580576774141773088971302370728567109375271, 2816228464479660329084403213516033707550613650298269251355107616119859053495516437828334641], [2816228464479660329084403213516033707550613650298269251355107616119859053495516437828334641, 94496949324075474514733332570559381610438704689114948335974540938741757490987419742780953103638282], [94496949324075474514733332570559381610438704689114948335974540938741757490987419742780953103638282, 6341583015101219452791715246817443430575200107722974486747239813025742518217797348357568210886954647235289], [6341583015101219452791715246817443430575200107722974486747239813025742518217797348357568210886954647235289, 851152870551858285587377406367037220104439951619751386297450435607751443359392948737017194240420385696963514600399], [851152870551858285587377406367037220104439951619751386297450435607751443359392948737017194240420385696963514600399, 228479609783449914749301152408390893123029679324662423031939537894241344693348448411056265134987665749112453667129630712054], [228479609783449914749301152408390893123029679324662423031939537894241344693348448411056265134987665749112453667129630712054, 122664056706324487170076605253586682064468958898091518365509656250328061870415250917825732997997947617447637699521697232769756484903], [122664056706324487170076605253586682064468958898091518365509656250328061870415250917825732997997947617447637699521697232769756484903, 131709528109752343667707529731340837046296515174695882823773676032687486969513047134097782887884589209956363210435563064699194465775701455921], [131709528109752343667707529731340837046296515174695882823773676032687486969513047134097782887884589209956363210435563064699194465775701455921, 282844058033199035343166552705911323232818617089753104847204958858728049428420173962313237248468904609637384999917570232102211519202911745326085250826], [282844058033199035343166552705911323232818617089753104847204958858728049428420173962313237248468904609637384999917570232102211519202911745326085250826, 1214805979403359996959137988186363648199244747801914062076660964979771532487890513510498777482863161485707336715359722632623334825917630388653534287556010781401], [1214805979403359996959137988186363648199244747801914062076660964979771532487890513510498777482863161485707336715359722632623334825917630388653534287556010781401, 10435103906260167538028830154149271397201208062911310990212640823922747927307149116741639267955835561569109489476698571271218829160253916011980817349186074690911325653967], [10435103906260167538028830154149271397201208062911310990212640823922747927307149116741639267955835561569109489476698571271218829160253916011980817349186074690911325653967, 179273720041432180878304008827464507570019791656597209420506739940581513874790050175929884533452526791617815588668952398630231303766665955837183999962477599024842348882531625525494], [179273720041432180878304008827464507570019791656597209420506739940581513874790050175929884533452526791617815588668952398630231303766665955837183999962477599024842348882531625525494, 6159798117060961575025175267849286774201271159318419937106912479696592111465516908025410505930501299725209486597999089808680632081899707894713731771263382203504891821726020092733344653825319], [6159798117060961575025175267849286774201271159318419937106912479696592111465516908025410505930501299725209486597999089808680632081899707894713731771263382203504891821726020092733344653825319, 423298103409987151765614138288275374320887721179783715136045455438748349212611793398791784353291694555038867922189459196063184661425893903039245304426025132477857029408840311351158818333869795456578609], [423298103409987151765614138288275374320887721179783715136045455438748349212611793398791784353291694555038867922189459196063184661425893903039245304426025132477857029408840311351158818333869795456578609, 58177648339774366795035871555356206071125121308017441406011835944099910748850601545267935992035241085439288995558458765439034811963322690887436528055960289445058139735896332864475245705800664177704000889464233738], [58177648339774366795035871555356206071125121308017441406011835944099910748850601545267935992035241085439288995558458765439034811963322690887436528055960289445058139735896332864475245705800664177704000889464233738, 15991750206619432138181744891226765641595209532218766665864390516489721704890224871811994166361666648450622883183727255139415554245547597919567714243898708300790917779134093036155494028345676974246764141430013002544236931801], [15991750206619432138181744891226765641595209532218766665864390516489721704890224871811994166361666648450622883183727255139415554245547597919567714243898708300790917779134093036155494028345676974246764141430013002544236931801, 8791557650349649830409050497630198546589440652796863680185989796974432013733628233967289447209529263647933756037685713428675916899051490589995432868389949311686223789559087698470065664972320984878852238050771301881381898167821477350351], [8791557650349649830409050497630198546589440652796863680185989796974432013733628233967289447209529263647933756037685713428675916899051490589995432868389949311686223789559087698470065664972320984878852238050771301881381898167821477350351, 9666419862831280898234991114652164865520117282131725845956026788571739274303615734423023732952159140834584025149495058861252554556590902878688937088564915829280721079810170113759617660884015443640846471908634706024981426660542016470422820695367926], [9666419862831280898234991114652164865520117282131725845956026788571739274303615734423023732952159140834584025149495058861252554556590902878688937088564915829280721079810170113759617660884015443640846471908634706024981426660542016470422820695367926, 21256682076305427020801723461004781512125502335317188335362148418845252917206966563280235722882626143850380417147322242321895305514616233935764757184984327644191724035830645432849107102877932825726525329879515080493512881749185563295030656118054992078180242727], [21256682076305427020801723461004781512125502335317188335362148418845252917206966563280235722882626143850380417147322242321895305514616233935764757184984327644191724035830645432849107102877932825726525329879515080493512881749185563295030656118054992078180242727, 93487876443363270697214204461223242015845473563746175329712834030062274693687576758808244353686647221765491021738062152477836188185610844749125831764883246698738737024562851591666488773005686958710984954313349625758283930315908087690237699942604120365952559500003705615409], [93487876443363270697214204461223242015845473563746175329712834030062274693687576758808244353686647221765491021738062152477836188185610844749125831764883246698738737024562851591666488773005686958710984954313349625758283930315908087690237699942604120365952559500003705615409, 822328057644604809767525841019682721106764220223941447966917047194082559653687161425074859892872023464901068085827083552129706044045981008313861414044297255154107003738129552539685187038410925346746852596646136422097417083404644847646408226800847833761844361126850370818350016869375754], [822328057644604809767525841019682721106764220223941447966917047194082559653687161425074859892872023464901068085827083552129706044045981008313861414044297255154107003738129552539685187038410925346746852596646136422097417083404644847646408226800847833761844361126850370818350016869375754, 14466548179627955046325343096981006927904298746509481514206891819310159410257149852026930618114620069165023968796800405168140833221635222071053182342530883793955215506718009400528167828240974071254331605254747986898456754200148045703971760197437283943140616245956862363172578264555289167541601250009], [14466548179627955046325343096981006927904298746509481514206891819310159410257149852026930618114620069165023968796800405168140833221635222071053182342530883793955215506718009400528167828240974071254331605254747986898456754200148045703971760197437283943140616245956862363172578264555289167541601250009, 508996413993059666390078234359702970375471006155320028651972616979142032830626118977916826496960499097456815886124732192440736551860358653400983729431599339883356645483097186911663727270274266313367806942691060388470531239094327544337159210204933135139387687181591877514901214405092992486743655657854706320673743], [508996413993059666390078234359702970375471006155320028651972616979142032830626118977916826496960499097456815886124732192440736551860358653400983729431599339883356645483097186911663727270274266313367806942691060388470531239094327544337159210204933135139387687181591877514901214405092992486743655657854706320673743, 35817438443626481333005765028356643566279776296998852545887252141763715296987712474716868425958463708426506948268579008012151401394263792518828768392882420526650788296022198350130593357073269254748471108627973491797056536971116854158555922416357764204652376226601073587005676717305409095817571845596462736172139759609691300086], [35817438443626481333005765028356643566279776296998852545887252141763715296987712474716868425958463708426506948268579008012151401394263792518828768392882420526650788296022198350130593357073269254748471108627973491797056536971116854158555922416357764204652376226601073587005676717305409095817571845596462736172139759609691300086, 5040856325877595177821476844675771851397455356614108843667178903556545590570663784669289842445436282759879852587431219841527472948401313188350780505230239836694627947915278813040796558694175908353322399777731879053501269360682609891456434511236067960646753796100518856755328124391401820059538198901630799093326200446958407014055117615584551], [5040856325877595177821476844675771851397455356614108843667178903556545590570663784669289842445436282759879852587431219841527472948401313188350780505230239836694627947915278813040796558694175908353322399777731879053501269360682609891456434511236067960646753796100518856755328124391401820059538198901630799093326200446958407014055117615584551, 1418874916928164115594210083388928441216697828229583394369563038813991566516568582306146487419332755265125095192501808480812313941985791262882972440772598852619007080075447799122712573291808326859434392150215929292789507227043253434241710514931442803037787463786086628851802086665713684576634202757965316635185643726427152672717053810739066678424554959921], [1418874916928164115594210083388928441216697828229583394369563038813991566516568582306146487419332755265125095192501808480812313941985791262882972440772598852619007080075447799122712573291808326859434392150215929292789507227043253434241710514931442803037787463786086628851802086665713684576634202757965316635185643726427152672717053810739066678424554959921, 798755568395379341125802741544225923240265318393555180330140674111499985328123777150649676917421415331393352212085778425081371689178744489360208434530716102760548589840261524392681383122225327333903591468635711836516924242136863108343001880107438037008939061747169584984921876554557984187164360074069203117583115909527341371440461999961142373599919321206473239926611722]][[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 3[[1, 1], [1, 2]][[1, 1], [1, 2]]Passed
explicit oracle 4[[1, 1], [1, 2], [2, 9], [9, 79]][[1, 1], [1, 2], [2, 1], [1, 3]]Failed
explicit oracle 5[[1, 1], [1, 2], [2, 9], [9, 79], [79, 1334]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]Failed
explicit oracle 6[[1, 1], [1, 2], [2, 9], [9, 79], [79, 1334], [1334, 43943]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]Failed
explicit oracle 7[[1, 1], [1, 2], [2, 9], [9, 79], [79, 1334], [1334, 43943], [43943, 2854961]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]Failed

SHA-256 / 1c8961ade57c9fca4b115d157cfbf58502578bfd15f9782e83b88c60e0eb9b08

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):
     out.append([p,q])
     if q==0:return None
     a=(p+q-1)//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 = [[(3, [[1, 1], [1, 2], [2, 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]]), (2, [[1, 1], [1, 2]]), (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]])], [(4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 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]])], [(5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (9, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 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]]), (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]])], [(6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]), (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]]), (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]])], [(7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]), (15, [[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, [[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], [2, 5]][[1, 1], [1, 2], [2, 1]]Failed
explicit oracle 1[[1, 1]][[1, 1]]Passed
explicit oracle 2[[1, 1], [1, 2], [2, 5], [5, 13], [13, 34], [34, 89], [89, 233], [233, 610], [610, 1597], [1597, 4181], [4181, 10946], [10946, 28657], [28657, 75025], [75025, 196418], [196418, 514229], [514229, 1346269], [1346269, 3524578], [3524578, 9227465], [9227465, 24157817], [24157817, 63245986], [63245986, 165580141], [165580141, 433494437], [433494437, 1134903170], [1134903170, 2971215073], [2971215073, 7778742049], [7778742049, 20365011074], [20365011074, 53316291173], [53316291173, 139583862445], [139583862445, 365435296162], [365435296162, 956722026041], [956722026041, 2504730781961], [2504730781961, 6557470319842], [6557470319842, 17167680177565], [17167680177565, 44945570212853], [44945570212853, 117669030460994], [117669030460994, 308061521170129], [308061521170129, 806515533049393], [806515533049393, 2111485077978050], [2111485077978050, 5527939700884757], [5527939700884757, 14472334024676221], [14472334024676221, 37889062373143906], [37889062373143906, 99194853094755497], [99194853094755497, 259695496911122585], [259695496911122585, 679891637638612258], [679891637638612258, 1779979416004714189], [1779979416004714189, 4660046610375530309], [4660046610375530309, 12200160415121876738], [12200160415121876738, 31940434634990099905], [31940434634990099905, 83621143489848422977], [83621143489848422977, 218922995834555169026]][[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 3[[1, 1], [1, 2]][[1, 1], [1, 2]]Passed
explicit oracle 4[[1, 1], [1, 2], [2, 5], [5, 13]][[1, 1], [1, 2], [2, 1], [1, 3]]Failed
explicit oracle 5[[1, 1], [1, 2], [2, 5], [5, 13], [13, 34]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]Failed
explicit oracle 6[[1, 1], [1, 2], [2, 5], [5, 13], [13, 34], [34, 89]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]Failed
explicit oracle 7[[1, 1], [1, 2], [2, 5], [5, 13], [13, 34], [34, 89], [89, 233]][[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]Failed

SHA-256 / aa39dfb0a7f1b9dfbd98a7f7ba785b13267d4907947e980d607513d5d6189c71

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 = [[(3, [[1, 1], [1, 2], [2, 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]]), (2, [[1, 1], [1, 2]]), (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]])], [(4, [[1, 1], [1, 2], [2, 1], [1, 3]]), (6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 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]])], [(5, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2]]), (9, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1], [1, 4], [4, 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]]), (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]])], [(6, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3]]), (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]]), (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]])], [(7, [[1, 1], [1, 2], [2, 1], [1, 3], [3, 2], [2, 3], [3, 1]]), (15, [[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, [[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], [2, 1]][[1, 1], [1, 2], [2, 1]]Passed
explicit oracle 1[[1, 1]][[1, 1]]Passed
explicit oracle 2[[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 3[[1, 1], [1, 2]][[1, 1], [1, 2]]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 / 575abb23b3e2f43095399b8df952862ebc2feab5fef031736706cf84c19827f1

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

Case digest / d5b50048fdd914ee6118ec1a65fa1e4ce66f4566e6f50675fd01b49b0e144353