FA-40956 / Heap invariants / Open access
Heap frontier next candidate competes with all retained branches · case 01
The bounded heap frontier certificate reports an incorrect chosen.
ROOT CAUSE
Heap frontier next candidate competes with all retained branches.
VERIFIED REPAIR
Derive chosen using nxt under the stated bounded certificate contract.
Unsuccessful approach: The local patch uses f[0] if f else children[0] if children else None and still violates the stated relation.
Case contract
A read-only best-first traversal of a valid binary min heap has already emitted parent slot p and a frontier of distinct slots. Insert p children that exist into the frontier, order by (key,index), and choose next. Return new frontier, chosen slot, child additions, traversal output key, preserved heap, and next frontier after selection. Initial frontier excludes p and its children.
Why this case matters
This isolates an internal heap representation or priority-structure invariant using deterministic finite records.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
a=d['keys']; p=d['parent']; f=d['frontier']; children=[i for i in (2*p+1,2*p+2) if i<len(a)]; ready=sorted(f+children,key=lambda i:(a[i],i)); nxt=ready[0] if ready else None
return {'ready': ready,
'chosen': min(children,key=lambda i:a[i]) if children else None,
'children': children,
'next_key': None if nxt is None else a[nxt],
'heap_after': a,
'frontier_after': ready[1:]}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 9], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 10], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 10], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 11], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 11], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 12], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 12], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 13], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 13], 'frontier_after': [4, 7]})]][N-1]
check('regression certificate 1', solve(cases[0][0]), cases[0][1])
check('regression certificate 2', solve(cases[1][0]), cases[1][1])
check('regression certificate 3', solve(cases[2][0]), cases[2][1])
check('regression certificate 4', solve(cases[3][0]), cases[3][1])
check('regression certificate 5', solve(cases[4][0]), cases[4][1])
check('regression certificate 6', solve(cases[5][0]), cases[5][1])
check('variant-dependent certificate', solve(cases[6][0]), cases[6][1])
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 |
|---|---|---|---|
| regression certificate 1 | {'children': [], 'chosen': None, 'frontier_after': [], 'heap_after': [1], 'next_key': None, 'ready': []} | {'children': [], 'chosen': None, 'frontier_after': [], 'heap_after': [1], 'next_key': None, 'ready': []} | Passed |
| regression certificate 2 | {'children': [1, 2], 'chosen': 2, 'frontier_after': [1], 'heap_after': [1, 7, 2], 'next_key': 2, 'ready': [2, 1]} | {'children': [1, 2], 'chosen': 2, 'frontier_after': [1], 'heap_after': [1, 7, 2], 'next_key': 2, 'ready': [2, 1]} | Passed |
| regression certificate 3 | {'children': [3, 4], 'chosen': 4, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | Failed |
| regression certificate 4 | {'children': [3, 4], 'chosen': 4, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | Failed |
| regression certificate 5 | {'children': [1, 2], 'chosen': 1, 'frontier_after': [2], 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'next_key': 3, 'ready': [1, 2]} | {'children': [1, 2], 'chosen': 1, 'frontier_after': [2], 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'next_key': 3, 'ready': [1, 2]} | Passed |
| regression certificate 6 | {'children': [7], 'chosen': 7, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'next_key': 3, 'ready': [2, 4, 7]} | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'next_key': 3, 'ready': [2, 4, 7]} | Failed |
| variant-dependent certificate | {'children': [7], 'chosen': 7, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'next_key': 3, 'ready': [2, 4, 7]} | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'next_key': 3, 'ready': [2, 4, 7]} | Failed |
SHA-256 / 0502930caf22c67d475e79080c275976fa2a37aba074fd1d8b806a64c6bdf58a
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
a=d['keys']; p=d['parent']; f=d['frontier']; children=[i for i in (2*p+1,2*p+2) if i<len(a)]; ready=sorted(f+children,key=lambda i:(a[i],i)); nxt=ready[0] if ready else None
return {'ready': ready,
'chosen': f[0] if f else children[0] if children else None,
'children': children,
'next_key': None if nxt is None else a[nxt],
'heap_after': a,
'frontier_after': ready[1:]}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 9], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 10], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 10], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 11], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 11], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 12], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 12], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 13], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 13], 'frontier_after': [4, 7]})]][N-1]
check('regression certificate 1', solve(cases[0][0]), cases[0][1])
check('regression certificate 2', solve(cases[1][0]), cases[1][1])
check('regression certificate 3', solve(cases[2][0]), cases[2][1])
check('regression certificate 4', solve(cases[3][0]), cases[3][1])
check('regression certificate 5', solve(cases[4][0]), cases[4][1])
check('regression certificate 6', solve(cases[5][0]), cases[5][1])
check('variant-dependent certificate', solve(cases[6][0]), cases[6][1])
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 |
|---|---|---|---|
| regression certificate 1 | {'children': [], 'chosen': None, 'frontier_after': [], 'heap_after': [1], 'next_key': None, 'ready': []} | {'children': [], 'chosen': None, 'frontier_after': [], 'heap_after': [1], 'next_key': None, 'ready': []} | Passed |
| regression certificate 2 | {'children': [1, 2], 'chosen': 1, 'frontier_after': [1], 'heap_after': [1, 7, 2], 'next_key': 2, 'ready': [2, 1]} | {'children': [1, 2], 'chosen': 2, 'frontier_after': [1], 'heap_after': [1, 7, 2], 'next_key': 2, 'ready': [2, 1]} | Failed |
| regression certificate 3 | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | Passed |
| regression certificate 4 | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | Passed |
| regression certificate 5 | {'children': [1, 2], 'chosen': 1, 'frontier_after': [2], 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'next_key': 3, 'ready': [1, 2]} | {'children': [1, 2], 'chosen': 1, 'frontier_after': [2], 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'next_key': 3, 'ready': [1, 2]} | Passed |
| regression certificate 6 | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'next_key': 3, 'ready': [2, 4, 7]} | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'next_key': 3, 'ready': [2, 4, 7]} | Passed |
| variant-dependent certificate | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'next_key': 3, 'ready': [2, 4, 7]} | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'next_key': 3, 'ready': [2, 4, 7]} | Passed |
SHA-256 / 7eefc6c568f2514728a8298f181a453858267f00c47953de328b67e9a2fd2ef2
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
a=d['keys']; p=d['parent']; f=d['frontier']; children=[i for i in (2*p+1,2*p+2) if i<len(a)]; ready=sorted(f+children,key=lambda i:(a[i],i)); nxt=ready[0] if ready else None
return {'ready': ready,
'chosen': nxt,
'children': children,
'next_key': None if nxt is None else a[nxt],
'heap_after': a,
'frontier_after': ready[1:]}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 9], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 10], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 10], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 11], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 11], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 12], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 12], 'frontier_after': [4, 7]})], [({'keys': [1], 'parent': 0, 'frontier': []}, {'ready': [], 'chosen': None, 'children': [], 'next_key': None, 'heap_after': [1], 'frontier_after': []}), ({'keys': [1, 7, 2], 'parent': 0, 'frontier': []}, {'ready': [2, 1], 'chosen': 2, 'children': [1, 2], 'next_key': 2, 'heap_after': [1, 7, 2], 'frontier_after': [1]}), ({'keys': [1, 4, 2, 7, 5, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 4, 2, 7, 4, 3, 6], 'parent': 1, 'frontier': [2]}, {'ready': [2, 4, 3], 'chosen': 2, 'children': [3, 4], 'next_key': 2, 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'frontier_after': [4, 3]}), ({'keys': [1, 3, 3, 5, 6, 7, 8], 'parent': 0, 'frontier': []}, {'ready': [1, 2], 'chosen': 1, 'children': [1, 2], 'next_key': 3, 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'frontier_after': [2]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 8], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'frontier_after': [4, 7]}), ({'keys': [1, 2, 3, 4, 5, 6, 7, 13], 'parent': 3, 'frontier': [2, 4]}, {'ready': [2, 4, 7], 'chosen': 2, 'children': [7], 'next_key': 3, 'heap_after': [1, 2, 3, 4, 5, 6, 7, 13], 'frontier_after': [4, 7]})]][N-1]
check('regression certificate 1', solve(cases[0][0]), cases[0][1])
check('regression certificate 2', solve(cases[1][0]), cases[1][1])
check('regression certificate 3', solve(cases[2][0]), cases[2][1])
check('regression certificate 4', solve(cases[3][0]), cases[3][1])
check('regression certificate 5', solve(cases[4][0]), cases[4][1])
check('regression certificate 6', solve(cases[5][0]), cases[5][1])
check('variant-dependent certificate', solve(cases[6][0]), cases[6][1])
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 |
|---|---|---|---|
| regression certificate 1 | {'children': [], 'chosen': None, 'frontier_after': [], 'heap_after': [1], 'next_key': None, 'ready': []} | {'children': [], 'chosen': None, 'frontier_after': [], 'heap_after': [1], 'next_key': None, 'ready': []} | Passed |
| regression certificate 2 | {'children': [1, 2], 'chosen': 2, 'frontier_after': [1], 'heap_after': [1, 7, 2], 'next_key': 2, 'ready': [2, 1]} | {'children': [1, 2], 'chosen': 2, 'frontier_after': [1], 'heap_after': [1, 7, 2], 'next_key': 2, 'ready': [2, 1]} | Passed |
| regression certificate 3 | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 5, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | Passed |
| regression certificate 4 | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | {'children': [3, 4], 'chosen': 2, 'frontier_after': [4, 3], 'heap_after': [1, 4, 2, 7, 4, 3, 6], 'next_key': 2, 'ready': [2, 4, 3]} | Passed |
| regression certificate 5 | {'children': [1, 2], 'chosen': 1, 'frontier_after': [2], 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'next_key': 3, 'ready': [1, 2]} | {'children': [1, 2], 'chosen': 1, 'frontier_after': [2], 'heap_after': [1, 3, 3, 5, 6, 7, 8], 'next_key': 3, 'ready': [1, 2]} | Passed |
| regression certificate 6 | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'next_key': 3, 'ready': [2, 4, 7]} | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 8], 'next_key': 3, 'ready': [2, 4, 7]} | Passed |
| variant-dependent certificate | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'next_key': 3, 'ready': [2, 4, 7]} | {'children': [7], 'chosen': 2, 'frontier_after': [4, 7], 'heap_after': [1, 2, 3, 4, 5, 6, 7, 9], 'next_key': 3, 'ready': [2, 4, 7]} | Passed |
SHA-256 / c142259ac587e9a80429a6406a56a9ddacffb4db4547535018656b75b55f2d9e
Verification & scope
A stipulated offline diagnostic model; it does not implement a production allocator, concurrency protocol, or complete heap 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:43:36.167694+00:00.
Case digest / 69bfda8e8426d6fd10b75fece586c22bd5a995262789ae0253b9e709de75b83b