FA-15441 / Numerics / Open access
Exact ldl decomposition: diagonal factor progression · case 01
The exact exact ldl decomposition result violates the stated contract at diagonal factor progression.
ROOT CAUSE
The diagonal factor progression step uses range(n-1) instead of range(n).
VERIFIED REPAIR
Use range(n) at the diagonal factor progression step.
Unsuccessful approach: The partial repair range(n-1,-1,-1) still violates the diagonal factor progression invariant.
Case contract
Input symmetric positive definite integer matrix; return unit lower L and diagonal D as rational pairs such that A=L*D*Ltranspose.
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):
a=[list(map(Fraction,row)) for row in x];n=len(a);L=[[Fraction(int(i==j)) for j in range(n)] for i in range(n)];D=[Fraction(0)]*n
for j in range(n-1):
D[j]=a[j][j]-sum(L[j][k]**2*D[k] for k in range(j))
if not D[j]:return None
for i in range(j+1,n):
L[i][j]=(a[i][j]-sum(L[i][k]*L[j][k]*D[k] for k in range(j)))/(D[j])
return [[[[v.numerator,v.denominator] for v in row] for row in L],[[v.numerator,v.denominator] for v in D]]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([[2]], [[[[1, 1]]], [[2, 1]]]), ([[14, 2], [2, 2]], [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [12, 7]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]])], [([[5]], [[[[1, 1]]], [[5, 1]]]), ([[14, -12], [-12, 14]], [[[[1, 1], [0, 1]], [[-6, 7], [1, 1]]], [[14, 1], [26, 7]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]])], [([[5]], [[[[1, 1]]], [[5, 1]]]), ([[14, -1], [-1, 6]], [[[[1, 1], [0, 1]], [[-1, 14], [1, 1]]], [[14, 1], [83, 14]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]])], [([[2]], [[[[1, 1]]], [[2, 1]]]), ([[19, 15], [15, 14]], [[[[1, 1], [0, 1]], [[15, 19], [1, 1]]], [[19, 1], [41, 19]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]])], [([[10]], [[[[1, 1]]], [[10, 1]]]), ([[11, 6], [6, 5]], [[[[1, 1], [0, 1]], [[6, 11], [1, 1]]], [[11, 1], [19, 11]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[1, 0], [0, 19]], [[[[1, 1], [0, 1]], [[0, 1], [1, 1]]], [[1, 1], [19, 1]]]), ([[3, 2], [2, 5]], [[[[1, 1], [0, 1]], [[2, 3], [1, 1]]], [[3, 1], [11, 3]]]), ([[9, 0], [0, 1]], [[[[1, 1], [0, 1]], [[0, 1], [1, 1]]], [[9, 1], [1, 1]]]), ([[6, 5], [5, 11]], [[[[1, 1], [0, 1]], [[5, 6], [1, 1]]], [[6, 1], [41, 6]]])]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| explicit oracle 0 | [[[[1, 1]]], [[0, 1]]] | [[[[1, 1]]], [[2, 1]]] | Failed |
| explicit oracle 1 | [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [0, 1]]] | [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [12, 7]]] | Failed |
| explicit oracle 2 | [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [0, 1]]] | [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]] | Failed |
| explicit oracle 3 | [[[[1, 1]]], [[0, 1]]] | [[[[1, 1]]], [[5, 1]]] | Failed |
| explicit oracle 4 | [[[[1, 1]]], [[0, 1]]] | [[[[1, 1]]], [[5, 1]]] | Failed |
| explicit oracle 5 | [[[[1, 1]]], [[0, 1]]] | [[[[1, 1]]], [[2, 1]]] | Failed |
| explicit oracle 6 | [[[[1, 1]]], [[0, 1]]] | [[[[1, 1]]], [[10, 1]]] | Failed |
| explicit oracle 7 | [[[[1, 1]]], [[0, 1]]] | [[[[1, 1]]], [[2, 1]]] | Failed |
SHA-256 / a32f643392952bab2758e234261d9346952a64f0452174f57cbeb99bd8cb5391
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):
a=[list(map(Fraction,row)) for row in x];n=len(a);L=[[Fraction(int(i==j)) for j in range(n)] for i in range(n)];D=[Fraction(0)]*n
for j in range(n-1,-1,-1):
D[j]=a[j][j]-sum(L[j][k]**2*D[k] for k in range(j))
if not D[j]:return None
for i in range(j+1,n):
L[i][j]=(a[i][j]-sum(L[i][k]*L[j][k]*D[k] for k in range(j)))/(D[j])
return [[[[v.numerator,v.denominator] for v in row] for row in L],[[v.numerator,v.denominator] for v in D]]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([[2]], [[[[1, 1]]], [[2, 1]]]), ([[14, 2], [2, 2]], [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [12, 7]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]])], [([[5]], [[[[1, 1]]], [[5, 1]]]), ([[14, -12], [-12, 14]], [[[[1, 1], [0, 1]], [[-6, 7], [1, 1]]], [[14, 1], [26, 7]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]])], [([[5]], [[[[1, 1]]], [[5, 1]]]), ([[14, -1], [-1, 6]], [[[[1, 1], [0, 1]], [[-1, 14], [1, 1]]], [[14, 1], [83, 14]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]])], [([[2]], [[[[1, 1]]], [[2, 1]]]), ([[19, 15], [15, 14]], [[[[1, 1], [0, 1]], [[15, 19], [1, 1]]], [[19, 1], [41, 19]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]])], [([[10]], [[[[1, 1]]], [[10, 1]]]), ([[11, 6], [6, 5]], [[[[1, 1], [0, 1]], [[6, 11], [1, 1]]], [[11, 1], [19, 11]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[1, 0], [0, 19]], [[[[1, 1], [0, 1]], [[0, 1], [1, 1]]], [[1, 1], [19, 1]]]), ([[3, 2], [2, 5]], [[[[1, 1], [0, 1]], [[2, 3], [1, 1]]], [[3, 1], [11, 3]]]), ([[9, 0], [0, 1]], [[[[1, 1], [0, 1]], [[0, 1], [1, 1]]], [[9, 1], [1, 1]]]), ([[6, 5], [5, 11]], [[[[1, 1], [0, 1]], [[5, 6], [1, 1]]], [[6, 1], [41, 6]]])]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| explicit oracle 0 | [[[[1, 1]]], [[2, 1]]] | [[[[1, 1]]], [[2, 1]]] | Passed |
| explicit oracle 1 | [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [2, 1]]] | [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [12, 7]]] | Failed |
| explicit oracle 2 | [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-9, 8], [1, 1], [0, 1]], [[-3, 20], [-7, 8], [4, 15], [1, 1]]], [[20, 1], [8, 1], [15, 1], [22, 1]]] | [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]] | Failed |
| explicit oracle 3 | [[[[1, 1]]], [[5, 1]]] | [[[[1, 1]]], [[5, 1]]] | Passed |
| explicit oracle 4 | [[[[1, 1]]], [[5, 1]]] | [[[[1, 1]]], [[5, 1]]] | Passed |
| explicit oracle 5 | [[[[1, 1]]], [[2, 1]]] | [[[[1, 1]]], [[2, 1]]] | Passed |
| explicit oracle 6 | [[[[1, 1]]], [[10, 1]]] | [[[[1, 1]]], [[10, 1]]] | Passed |
| explicit oracle 7 | [[[[1, 1]]], [[2, 1]]] | [[[[1, 1]]], [[2, 1]]] | Passed |
SHA-256 / d229bb92b864bbcb6c90ee05b762dd8b8cf08aa0752825b9181ae5c5e646d131
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):
a=[list(map(Fraction,row)) for row in x];n=len(a);L=[[Fraction(int(i==j)) for j in range(n)] for i in range(n)];D=[Fraction(0)]*n
for j in range(n):
D[j]=a[j][j]-sum(L[j][k]**2*D[k] for k in range(j))
if not D[j]:return None
for i in range(j+1,n):
L[i][j]=(a[i][j]-sum(L[i][k]*L[j][k]*D[k] for k in range(j)))/(D[j])
return [[[[v.numerator,v.denominator] for v in row] for row in L],[[v.numerator,v.denominator] for v in D]]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[([[2]], [[[[1, 1]]], [[2, 1]]]), ([[14, 2], [2, 2]], [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [12, 7]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]])], [([[5]], [[[[1, 1]]], [[5, 1]]]), ([[14, -12], [-12, 14]], [[[[1, 1], [0, 1]], [[-6, 7], [1, 1]]], [[14, 1], [26, 7]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]])], [([[5]], [[[[1, 1]]], [[5, 1]]]), ([[14, -1], [-1, 6]], [[[[1, 1], [0, 1]], [[-1, 14], [1, 1]]], [[14, 1], [83, 14]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[10]], [[[[1, 1]]], [[10, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[10]], [[[[1, 1]]], [[10, 1]]])], [([[2]], [[[[1, 1]]], [[2, 1]]]), ([[19, 15], [15, 14]], [[[[1, 1], [0, 1]], [[15, 19], [1, 1]]], [[19, 1], [41, 19]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]]), ([[5]], [[[[1, 1]]], [[5, 1]]])], [([[10]], [[[[1, 1]]], [[10, 1]]]), ([[11, 6], [6, 5]], [[[[1, 1], [0, 1]], [[6, 11], [1, 1]]], [[11, 1], [19, 11]]]), ([[2]], [[[[1, 1]]], [[2, 1]]]), ([[20, -8, 15, -3], [-8, 8, -9, -7], [15, -9, 15, 4], [-3, -7, 4, 22]], [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]]), ([[1, 0], [0, 19]], [[[[1, 1], [0, 1]], [[0, 1], [1, 1]]], [[1, 1], [19, 1]]]), ([[3, 2], [2, 5]], [[[[1, 1], [0, 1]], [[2, 3], [1, 1]]], [[3, 1], [11, 3]]]), ([[9, 0], [0, 1]], [[[[1, 1], [0, 1]], [[0, 1], [1, 1]]], [[9, 1], [1, 1]]]), ([[6, 5], [5, 11]], [[[[1, 1], [0, 1]], [[5, 6], [1, 1]]], [[6, 1], [41, 6]]])]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| explicit oracle 0 | [[[[1, 1]]], [[2, 1]]] | [[[[1, 1]]], [[2, 1]]] | Passed |
| explicit oracle 1 | [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [12, 7]]] | [[[[1, 1], [0, 1]], [[1, 7], [1, 1]]], [[14, 1], [12, 7]]] | Passed |
| explicit oracle 2 | [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]] | [[[[1, 1], [0, 1], [0, 1], [0, 1]], [[-2, 5], [1, 1], [0, 1], [0, 1]], [[3, 4], [-5, 8], [1, 1], [0, 1]], [[-3, 20], [-41, 24], [3, 5], [1, 1]]], [[20, 1], [24, 5], [15, 8], [103, 15]]] | Passed |
| explicit oracle 3 | [[[[1, 1]]], [[5, 1]]] | [[[[1, 1]]], [[5, 1]]] | Passed |
| explicit oracle 4 | [[[[1, 1]]], [[5, 1]]] | [[[[1, 1]]], [[5, 1]]] | Passed |
| explicit oracle 5 | [[[[1, 1]]], [[2, 1]]] | [[[[1, 1]]], [[2, 1]]] | Passed |
| explicit oracle 6 | [[[[1, 1]]], [[10, 1]]] | [[[[1, 1]]], [[10, 1]]] | Passed |
| explicit oracle 7 | [[[[1, 1]]], [[2, 1]]] | [[[[1, 1]]], [[2, 1]]] | Passed |
SHA-256 / c4b1b3bd206688de1e761c27707c8d1614744e6adb6b873e2d3f0f656b58139b
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:26.722896+00:00.
Case digest / 69a8d37ac584b9c8823a7110896291a9ea5f46e2eec924a57b58685ecf791255