FA-50846 / Raster clipping / Open access
Clip region expression: not empty · case 01
Complement uses an empty universe and rejects all samples.
ROOT CAUSE
Complement uses an empty universe and rejects all samples.
VERIFIED REPAIR
Apply the documented state transition at not empty. A postfix region program evaluates finite sample sets. Binary operands preserve left/right order. Complement uses the target universe. Named masks are copied on push; duplicate copies the top value. Subtraction, intersection, union and XOR consume both operands. Draw peeks without consuming. Empty-stack operations are outside this bounded contract.
Unsuccessful approach: Treating coverage as a Boolean loses partial-mask complements.
Case contract
A postfix region program evaluates finite sample sets. Binary operands preserve left/right order. Complement uses the target universe. Named masks are copied on push; duplicate copies the top value. Subtraction, intersection, union and XOR consume both operands. Draw peeks without consuming. Empty-stack operations are outside this bounded contract.
Why this case matters
Raster clip state can leak coverage across draws even when every individual region is valid.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(commands, size):
full=set(range(size))
stack=[]
out=[]
for cmd in commands:
op=cmd[0]
if op=='push': stack.append(set(cmd[1]) & full)
elif op=='dup': stack.append(set(stack[-1]))
elif op=='swap': stack[-2],stack[-1]=stack[-1],stack[-2]
elif op=='not': stack[-1]=set()-stack[-1]
elif op=='clear': stack[-1].clear()
elif op=='draw': out.append(sorted(stack[-1]))
else:
right=stack.pop()
left=stack.pop()
if op=='and': result=left & right
elif op=='or': result=left | right
elif op=='xor': result=left ^ right
elif op=='subtract': result=left-right
elif op=='implies': result=(full-left)|right
else: result=full-(left^right)
stack.append(result)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 4), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 4), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 4), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 4), [[1, 2, 3]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 4), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 4), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 4), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 4), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 4), [[1, 2, 3]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 4), [[2, 3]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 4), [[1, 3]])
if N == 2:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 5), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 5), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 5), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 5), [[1, 2, 3, 4]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 5), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 5), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 5), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 5), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 5), [[1, 2, 3, 4]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 5), [[2, 3, 4]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 5), [[1, 3, 4]])
if N == 3:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 6), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 6), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 6), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 6), [[1, 2, 3, 4, 5]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 6), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 6), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 6), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 6), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 6), [[1, 2, 3, 4, 5]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 6), [[2, 3, 4, 5]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 6), [[1, 3, 4, 5]])
if N == 4:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 7), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 7), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 7), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 7), [[1, 2, 3, 4, 5, 6]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 7), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 7), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 7), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 7), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 7), [[1, 2, 3, 4, 5, 6]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 7), [[2, 3, 4, 5, 6]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 7), [[1, 3, 4, 5, 6]])
if N == 5:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 8), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 8), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 8), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 8), [[1, 2, 3, 4, 5, 6, 7]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 8), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 8), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 8), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 8), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 8), [[1, 2, 3, 4, 5, 6, 7]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 8), [[2, 3, 4, 5, 6, 7]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 8), [[1, 3, 4, 5, 6, 7]])
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 sequence 0 | [[0]] | [[0]] | Passed |
| explicit sequence 1 | [[0, 1]] | [[0, 1]] | Passed |
| explicit sequence 2 | [[2]] | [[2]] | Passed |
| explicit sequence 3 | [[]] | [[1, 2, 3]] | Failed |
| explicit sequence 4 | [[1]] | [[1]] | Passed |
| explicit sequence 5 | [[0, 1, 2]] | [[0, 1, 2]] | Passed |
| explicit sequence 6 | [[0, 2]] | [[0, 2]] | Passed |
| explicit sequence 7 | [[0]] | [[0]] | Passed |
| explicit sequence 8 | [[1, 2, 3]] | [[1, 2, 3]] | Passed |
| explicit sequence 9 | [[2, 3]] | [[2, 3]] | Passed |
| explicit sequence 10 | [[1, 3]] | [[1, 3]] | Passed |
SHA-256 / af35b51f72a5ba585b9ae3d4b6aa5f09a07073fe3c20aeaf74a7158417c8dc94
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(commands, size):
full=set(range(size))
stack=[]
out=[]
for cmd in commands:
op=cmd[0]
if op=='push': stack.append(set(cmd[1]) & full)
elif op=='dup': stack.append(set(stack[-1]))
elif op=='swap': stack[-2],stack[-1]=stack[-1],stack[-2]
elif op=='not': stack[-1]=full if not stack[-1] else set()
elif op=='clear': stack[-1].clear()
elif op=='draw': out.append(sorted(stack[-1]))
else:
right=stack.pop()
left=stack.pop()
if op=='and': result=left & right
elif op=='or': result=left | right
elif op=='xor': result=left ^ right
elif op=='subtract': result=left-right
elif op=='implies': result=(full-left)|right
else: result=full-(left^right)
stack.append(result)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 4), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 4), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 4), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 4), [[1, 2, 3]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 4), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 4), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 4), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 4), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 4), [[1, 2, 3]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 4), [[2, 3]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 4), [[1, 3]])
if N == 2:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 5), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 5), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 5), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 5), [[1, 2, 3, 4]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 5), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 5), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 5), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 5), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 5), [[1, 2, 3, 4]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 5), [[2, 3, 4]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 5), [[1, 3, 4]])
if N == 3:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 6), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 6), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 6), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 6), [[1, 2, 3, 4, 5]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 6), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 6), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 6), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 6), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 6), [[1, 2, 3, 4, 5]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 6), [[2, 3, 4, 5]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 6), [[1, 3, 4, 5]])
if N == 4:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 7), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 7), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 7), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 7), [[1, 2, 3, 4, 5, 6]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 7), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 7), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 7), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 7), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 7), [[1, 2, 3, 4, 5, 6]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 7), [[2, 3, 4, 5, 6]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 7), [[1, 3, 4, 5, 6]])
if N == 5:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 8), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 8), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 8), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 8), [[1, 2, 3, 4, 5, 6, 7]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 8), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 8), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 8), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 8), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 8), [[1, 2, 3, 4, 5, 6, 7]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 8), [[2, 3, 4, 5, 6, 7]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 8), [[1, 3, 4, 5, 6, 7]])
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 sequence 0 | [[0]] | [[0]] | Passed |
| explicit sequence 1 | [[0, 1]] | [[0, 1]] | Passed |
| explicit sequence 2 | [[2]] | [[2]] | Passed |
| explicit sequence 3 | [[]] | [[1, 2, 3]] | Failed |
| explicit sequence 4 | [[1]] | [[1]] | Passed |
| explicit sequence 5 | [[0, 1, 2]] | [[0, 1, 2]] | Passed |
| explicit sequence 6 | [[0, 2]] | [[0, 2]] | Passed |
| explicit sequence 7 | [[0]] | [[0]] | Passed |
| explicit sequence 8 | [[1, 2, 3]] | [[1, 2, 3]] | Passed |
| explicit sequence 9 | [[2, 3]] | [[2, 3]] | Passed |
| explicit sequence 10 | [[1, 3]] | [[1, 3]] | Passed |
SHA-256 / c61318b8388db38f774efe76f1876c669cb4fc6958e63cd592ab41b320c94dbf
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(commands, size):
full=set(range(size))
stack=[]
out=[]
for cmd in commands:
op=cmd[0]
if op=='push': stack.append(set(cmd[1]) & full)
elif op=='dup': stack.append(set(stack[-1]))
elif op=='swap': stack[-2],stack[-1]=stack[-1],stack[-2]
elif op=='not': stack[-1]=full-stack[-1]
elif op=='clear': stack[-1].clear()
elif op=='draw': out.append(sorted(stack[-1]))
else:
right=stack.pop()
left=stack.pop()
if op=='and': result=left & right
elif op=='or': result=left | right
elif op=='xor': result=left ^ right
elif op=='subtract': result=left-right
elif op=='implies': result=(full-left)|right
else: result=full-(left^right)
stack.append(result)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 4), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 4), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 4), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 4), [[1, 2, 3]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 4), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 4), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 4), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 4), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 4), [[1, 2, 3]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 4), [[2, 3]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 4), [[1, 3]])
if N == 2:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 5), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 5), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 5), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 5), [[1, 2, 3, 4]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 5), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 5), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 5), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 5), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 5), [[1, 2, 3, 4]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 5), [[2, 3, 4]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 5), [[1, 3, 4]])
if N == 3:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 6), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 6), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 6), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 6), [[1, 2, 3, 4, 5]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 6), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 6), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 6), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 6), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 6), [[1, 2, 3, 4, 5]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 6), [[2, 3, 4, 5]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 6), [[1, 3, 4, 5]])
if N == 4:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 7), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 7), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 7), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 7), [[1, 2, 3, 4, 5, 6]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 7), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 7), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 7), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 7), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 7), [[1, 2, 3, 4, 5, 6]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 7), [[2, 3, 4, 5, 6]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 7), [[1, 3, 4, 5, 6]])
if N == 5:
check('explicit sequence 0', solve([['push', [0, 99]], ['draw']], 8), [[0]])
check('explicit sequence 1', solve([['push', [0, 1]], ['dup'], ['clear'], ['swap'], ['draw']], 8), [[0, 1]])
check('explicit sequence 2', solve([['push', [0, 1]], ['push', [1, 2]], ['swap'], ['subtract'], ['draw']], 8), [[2]])
check('explicit sequence 3', solve([['push', [0]], ['not'], ['draw']], 8), [[1, 2, 3, 4, 5, 6, 7]])
check('explicit sequence 4', solve([['push', [0, 1]], ['push', [1, 2]], ['and'], ['draw']], 8), [[1]])
check('explicit sequence 5', solve([['push', [0, 1]], ['push', [1, 2]], ['or'], ['draw']], 8), [[0, 1, 2]])
check('explicit sequence 6', solve([['push', [0, 1]], ['push', [1, 2]], ['xor'], ['draw']], 8), [[0, 2]])
check('explicit sequence 7', solve([['push', [0, 1]], ['push', [1, 2]], ['subtract'], ['draw']], 8), [[0]])
check('explicit sequence 8', solve([['push', [0]], ['push', [1]], ['implies'], ['draw']], 8), [[1, 2, 3, 4, 5, 6, 7]])
check('explicit sequence 9', solve([['push', [0]], ['push', [1]], ['equal'], ['draw']], 8), [[2, 3, 4, 5, 6, 7]])
check('explicit sequence 10', solve([['push', [0, 1]], ['push', [1, 2]], ['equal'], ['draw']], 8), [[1, 3, 4, 5, 6, 7]])
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 sequence 0 | [[0]] | [[0]] | Passed |
| explicit sequence 1 | [[0, 1]] | [[0, 1]] | Passed |
| explicit sequence 2 | [[2]] | [[2]] | Passed |
| explicit sequence 3 | [[1, 2, 3]] | [[1, 2, 3]] | Passed |
| explicit sequence 4 | [[1]] | [[1]] | Passed |
| explicit sequence 5 | [[0, 1, 2]] | [[0, 1, 2]] | Passed |
| explicit sequence 6 | [[0, 2]] | [[0, 2]] | Passed |
| explicit sequence 7 | [[0]] | [[0]] | Passed |
| explicit sequence 8 | [[1, 2, 3]] | [[1, 2, 3]] | Passed |
| explicit sequence 9 | [[2, 3]] | [[2, 3]] | Passed |
| explicit sequence 10 | [[1, 3]] | [[1, 3]] | Passed |
SHA-256 / 6f07fbe3fcd2de2897603983e3d8f16f9b997694bcbbe62882c4dfd488a3f885
Verification & scope
Finite one-dimensional integer sample sets model coverage state only; no geometric intersection, memory layout, GPU or graphics-standard conformance is claimed. 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:45:12.989273+00:00.
Case digest / 8107ce38b85ef002223077619146affb33aa0e5bdf87a9d042442f31c4ceafbc