FAILURE MAP
← Case archive

FA-39901 / Heap invariants / Open access

Leftist verifier compares children only with the left child · case 01

The bounded leftist ranks certificate reports an incorrect heap edges.

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

ROOT CAUSE

Heap order covers both links and permits equal priorities.

VERIFIED REPAIR

Derive heap edges using [[i,j] for i,x in enumerate(a) for j in x[1:3] if j!=-1 and a[j][0]<x[0]] under the stated bounded certificate contract.

Unsuccessful approach: The local patch uses [[i,j] for i,x in enumerate(a) for j in x[1:3] if j!=-1 and a[j][0]<=x[0]] and still violates the stated relation.

Case contract

A leftist-tree certificate has nodes [key,left,right,stored_npl] with missing child=-1 and valid references. Null-path length of null is -1. Report local heap-edge violations, rank recurrence violations, leftist orientation violations, leaves, unary-right nodes, and root-to-right-spine length; spine traversal stops on repeated node.

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['nodes']; root=d['root']
    def rank(i): return -1 if i==-1 else a[i][3]
    spine=[]; q=root
    while q!=-1 and q not in spine:
        spine.append(q); q=a[q][2]
    return {'heap_edges': [[i,x[1]] for i,x in enumerate(a) if x[1]!=-1 and a[x[1]][0]<x[0]],
    'rank_recurrence': [i for i,x in enumerate(a) if x[3]!=1+min(rank(x[1]),rank(x[2]))],
    'orientation': [i for i,x in enumerate(a) if rank(x[1])<rank(x[2])],
    'leaves': [i for i,x in enumerate(a) if x[1]==-1 and x[2]==-1],
    'right_orphans': [i for i,x in enumerate(a) if x[1]==-1 and x[2]!=-1],
    'spine_length': len(spine)}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[3, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[4, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[5, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[6, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[7, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})]][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 fixtureActualExpectedOutcome
regression certificate 1{'heap_edges': [], 'leaves': [], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 0}{'heap_edges': [], 'leaves': [], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 0}Passed
regression certificate 2{'heap_edges': [], 'leaves': [0], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}{'heap_edges': [], 'leaves': [0], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}Passed
regression certificate 3{'heap_edges': [], 'leaves': [1, 2], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 2}{'heap_edges': [], 'leaves': [1, 2], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 2}Passed
regression certificate 4{'heap_edges': [], 'leaves': [1], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}{'heap_edges': [], 'leaves': [1], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}Passed
regression certificate 5{'heap_edges': [], 'leaves': [1], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [0], 'spine_length': 2}{'heap_edges': [[0, 1]], 'leaves': [1], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [0], 'spine_length': 2}Failed
regression certificate 6{'heap_edges': [], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}Failed
variant-dependent certificate{'heap_edges': [], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}Failed

SHA-256 / e72398f2302e84dfd1172015314d3962a3f668e56fe72c31cb5b847898bd330d

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    a=d['nodes']; root=d['root']
    def rank(i): return -1 if i==-1 else a[i][3]
    spine=[]; q=root
    while q!=-1 and q not in spine:
        spine.append(q); q=a[q][2]
    return {'heap_edges': [[i,j] for i,x in enumerate(a) for j in x[1:3] if j!=-1 and a[j][0]<=x[0]],
    'rank_recurrence': [i for i,x in enumerate(a) if x[3]!=1+min(rank(x[1]),rank(x[2]))],
    'orientation': [i for i,x in enumerate(a) if rank(x[1])<rank(x[2])],
    'leaves': [i for i,x in enumerate(a) if x[1]==-1 and x[2]==-1],
    'right_orphans': [i for i,x in enumerate(a) if x[1]==-1 and x[2]!=-1],
    'spine_length': len(spine)}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[3, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[4, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[5, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[6, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[7, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})]][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 fixtureActualExpectedOutcome
regression certificate 1{'heap_edges': [], 'leaves': [], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 0}{'heap_edges': [], 'leaves': [], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 0}Passed
regression certificate 2{'heap_edges': [], 'leaves': [0], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}{'heap_edges': [], 'leaves': [0], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}Passed
regression certificate 3{'heap_edges': [], 'leaves': [1, 2], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 2}{'heap_edges': [], 'leaves': [1, 2], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 2}Passed
regression certificate 4{'heap_edges': [[0, 1]], 'leaves': [1], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}{'heap_edges': [], 'leaves': [1], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}Failed
regression certificate 5{'heap_edges': [[0, 1]], 'leaves': [1], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [0], 'spine_length': 2}{'heap_edges': [[0, 1]], 'leaves': [1], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [0], 'spine_length': 2}Passed
regression certificate 6{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}Passed
variant-dependent certificate{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}Passed

SHA-256 / 457bcf3174182104345b51a646d459c4a8d59f67faa84b18fb60fc83b41fa35c

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    a=d['nodes']; root=d['root']
    def rank(i): return -1 if i==-1 else a[i][3]
    spine=[]; q=root
    while q!=-1 and q not in spine:
        spine.append(q); q=a[q][2]
    return {'heap_edges': [[i,j] for i,x in enumerate(a) for j in x[1:3] if j!=-1 and a[j][0]<x[0]],
    'rank_recurrence': [i for i,x in enumerate(a) if x[3]!=1+min(rank(x[1]),rank(x[2]))],
    'orientation': [i for i,x in enumerate(a) if rank(x[1])<rank(x[2])],
    'leaves': [i for i,x in enumerate(a) if x[1]==-1 and x[2]==-1],
    'right_orphans': [i for i,x in enumerate(a) if x[1]==-1 and x[2]!=-1],
    'spine_length': len(spine)}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[3, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[4, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[5, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[6, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})], [({'nodes': [], 'root': -1}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [], 'right_orphans': [], 'spine_length': 0}), ({'nodes': [[4, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [0], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[1, 1, 2, 1], [5, -1, -1, 0], [7, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1, 2], 'right_orphans': [], 'spine_length': 2}), ({'nodes': [[5, 1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [], 'rank_recurrence': [], 'orientation': [], 'leaves': [1], 'right_orphans': [], 'spine_length': 1}), ({'nodes': [[8, -1, 1, 1], [2, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 1]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1], 'right_orphans': [0], 'spine_length': 2}), ({'nodes': [[2, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3}), ({'nodes': [[7, 1, 2, 2], [9, -1, -1, 0], [1, 3, 4, 1], [4, -1, -1, 0], [5, -1, -1, 0]], 'root': 0}, {'heap_edges': [[0, 2]], 'rank_recurrence': [0], 'orientation': [0], 'leaves': [1, 3, 4], 'right_orphans': [], 'spine_length': 3})]][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 fixtureActualExpectedOutcome
regression certificate 1{'heap_edges': [], 'leaves': [], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 0}{'heap_edges': [], 'leaves': [], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 0}Passed
regression certificate 2{'heap_edges': [], 'leaves': [0], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}{'heap_edges': [], 'leaves': [0], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}Passed
regression certificate 3{'heap_edges': [], 'leaves': [1, 2], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 2}{'heap_edges': [], 'leaves': [1, 2], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 2}Passed
regression certificate 4{'heap_edges': [], 'leaves': [1], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}{'heap_edges': [], 'leaves': [1], 'orientation': [], 'rank_recurrence': [], 'right_orphans': [], 'spine_length': 1}Passed
regression certificate 5{'heap_edges': [[0, 1]], 'leaves': [1], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [0], 'spine_length': 2}{'heap_edges': [[0, 1]], 'leaves': [1], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [0], 'spine_length': 2}Passed
regression certificate 6{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}Passed
variant-dependent certificate{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}{'heap_edges': [[0, 2]], 'leaves': [1, 3, 4], 'orientation': [0], 'rank_recurrence': [0], 'right_orphans': [], 'spine_length': 3}Passed

SHA-256 / afb1ea1ed9648f06c0ecbcc1d8c3192066cc48d1472c5b9793221119551217c1

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

Case digest / 48313f3f351a0b5a1ad14f88a0cdb0d5a122edba828fb7dacd7887bbf5a16f70