FA-47061 / Bounded deques / Open access
Ring gap insertion reads backing array order as logical order · case 01
Ring gap insertion reads backing array order as logical order.
ROOT CAUSE
Ring gap insertion reads backing array order as logical order.
VERIFIED REPAIR
Restore the documented logical gather invariant in ring-gap-insert.
Unsuccessful approach: The partial repair still applies the incorrect transition to an admitted boundary or multi-element case.
Case contract
Insert into a valid logical gap by moving the shorter ring side, preferring the right side on equal cost. Left shifts decrement physical head; reconstruct live arc and clear all vacant slots. Full ring rejects atomically.
Why this case matters
Controlled bounded deque implementation model with explicit storage and lifecycle observations.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
slots,head,size,gap,value=x
cap=len(slots)
if size==cap:return [slots,head,size,False,0]
logical=slots[:size]
left=gap<size-gap
origin=(head-1)%cap if left else head
inserted=logical[:gap]+[value]+logical[gap:]
result=[None]*cap
for i,v in enumerate(inserted):result[(origin+i)%cap]=v
count=size+1
moved=gap if left else size-gap
return [result,origin,count,True,moved]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('0', solve([[N,N+1,N+2,None,None],0,3,1,N+3]), {1: [[4, 2, 3, None, 1], 4, 4, True, 1], 2: [[5, 3, 4, None, 2], 4, 4, True, 1], 3: [[6, 4, 5, None, 3], 4, 4, True, 1], 4: [[7, 5, 6, None, 4], 4, 4, True, 1], 5: [[8, 6, 7, None, 5], 4, 4, True, 1]}[N])
check('1', solve([[N+2,None,None,N,N+1],3,3,1,N+3]), {1: [[3, None, 1, 4, 2], 2, 4, True, 1], 2: [[4, None, 2, 5, 3], 2, 4, True, 1], 3: [[5, None, 3, 6, 4], 2, 4, True, 1], 4: [[6, None, 4, 7, 5], 2, 4, True, 1], 5: [[7, None, 5, 8, 6], 2, 4, True, 1]}[N])
check('2', solve([[N,N+1,N+2,N+3,None,None],0,4,2,N+4]), {1: [[1, 2, 5, 3, 4, None], 0, 5, True, 2], 2: [[2, 3, 6, 4, 5, None], 0, 5, True, 2], 3: [[3, 4, 7, 5, 6, None], 0, 5, True, 2], 4: [[4, 5, 8, 6, 7, None], 0, 5, True, 2], 5: [[5, 6, 9, 7, 8, None], 0, 5, True, 2]}[N])
check('3', solve([[None,N,N+1,None],1,2,2,N+2]), {1: [[None, 1, 2, 3], 1, 3, True, 0], 2: [[None, 2, 3, 4], 1, 3, True, 0], 3: [[None, 3, 4, 5], 1, 3, True, 0], 4: [[None, 4, 5, 6], 1, 3, True, 0], 5: [[None, 5, 6, 7], 1, 3, True, 0]}[N])
check('4', solve([[N,N+1],0,2,1,N+2]), {1: [[1, 2], 0, 2, False, 0], 2: [[2, 3], 0, 2, False, 0], 3: [[3, 4], 0, 2, False, 0], 4: [[4, 5], 0, 2, False, 0], 5: [[5, 6], 0, 2, False, 0]}[N])
check('5', solve([[None,None,None],2,0,0,N]), {1: [[None, None, 1], 2, 1, True, 0], 2: [[None, None, 2], 2, 1, True, 0], 3: [[None, None, 3], 2, 1, True, 0], 4: [[None, None, 4], 2, 1, True, 0], 5: [[None, None, 5], 2, 1, True, 0]}[N])
check('6', solve([[N+1,None,None,N],3,2,0,N+2]), {1: [[2, None, 3, 1], 2, 3, True, 0], 2: [[3, None, 4, 2], 2, 3, True, 0], 3: [[4, None, 5, 3], 2, 3, True, 0], 4: [[5, None, 6, 4], 2, 3, True, 0], 5: [[6, None, 7, 5], 2, 3, True, 0]}[N])
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 |
|---|---|---|---|
| 0 | [[4, 2, 3, None, 1], 4, 4, True, 1] | [[4, 2, 3, None, 1], 4, 4, True, 1] | Passed |
| 1 | [[None, None, 3, 4, None], 2, 4, True, 1] | [[3, None, 1, 4, 2], 2, 4, True, 1] | Failed |
| 2 | [[1, 2, 5, 3, 4, None], 0, 5, True, 2] | [[1, 2, 5, 3, 4, None], 0, 5, True, 2] | Passed |
| 3 | [[None, None, 1, 3], 1, 3, True, 0] | [[None, 1, 2, 3], 1, 3, True, 0] | Failed |
| 4 | [[1, 2], 0, 2, False, 0] | [[1, 2], 0, 2, False, 0] | Passed |
| 5 | [[None, None, 1], 2, 1, True, 0] | [[None, None, 1], 2, 1, True, 0] | Passed |
| 6 | [[None, None, 3, 2], 2, 3, True, 0] | [[2, None, 3, 1], 2, 3, True, 0] | Failed |
SHA-256 / 520388e7262bc72f683c610d77eb6fdffe2c90ec98aab54fb0087acbc222dfa6
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
slots,head,size,gap,value=x
cap=len(slots)
if size==cap:return [slots,head,size,False,0]
logical=[slots[(head+i)%cap] for i in range(size)] if head==0 else slots[:size]
left=gap<size-gap
origin=(head-1)%cap if left else head
inserted=logical[:gap]+[value]+logical[gap:]
result=[None]*cap
for i,v in enumerate(inserted):result[(origin+i)%cap]=v
count=size+1
moved=gap if left else size-gap
return [result,origin,count,True,moved]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('0', solve([[N,N+1,N+2,None,None],0,3,1,N+3]), {1: [[4, 2, 3, None, 1], 4, 4, True, 1], 2: [[5, 3, 4, None, 2], 4, 4, True, 1], 3: [[6, 4, 5, None, 3], 4, 4, True, 1], 4: [[7, 5, 6, None, 4], 4, 4, True, 1], 5: [[8, 6, 7, None, 5], 4, 4, True, 1]}[N])
check('1', solve([[N+2,None,None,N,N+1],3,3,1,N+3]), {1: [[3, None, 1, 4, 2], 2, 4, True, 1], 2: [[4, None, 2, 5, 3], 2, 4, True, 1], 3: [[5, None, 3, 6, 4], 2, 4, True, 1], 4: [[6, None, 4, 7, 5], 2, 4, True, 1], 5: [[7, None, 5, 8, 6], 2, 4, True, 1]}[N])
check('2', solve([[N,N+1,N+2,N+3,None,None],0,4,2,N+4]), {1: [[1, 2, 5, 3, 4, None], 0, 5, True, 2], 2: [[2, 3, 6, 4, 5, None], 0, 5, True, 2], 3: [[3, 4, 7, 5, 6, None], 0, 5, True, 2], 4: [[4, 5, 8, 6, 7, None], 0, 5, True, 2], 5: [[5, 6, 9, 7, 8, None], 0, 5, True, 2]}[N])
check('3', solve([[None,N,N+1,None],1,2,2,N+2]), {1: [[None, 1, 2, 3], 1, 3, True, 0], 2: [[None, 2, 3, 4], 1, 3, True, 0], 3: [[None, 3, 4, 5], 1, 3, True, 0], 4: [[None, 4, 5, 6], 1, 3, True, 0], 5: [[None, 5, 6, 7], 1, 3, True, 0]}[N])
check('4', solve([[N,N+1],0,2,1,N+2]), {1: [[1, 2], 0, 2, False, 0], 2: [[2, 3], 0, 2, False, 0], 3: [[3, 4], 0, 2, False, 0], 4: [[4, 5], 0, 2, False, 0], 5: [[5, 6], 0, 2, False, 0]}[N])
check('5', solve([[None,None,None],2,0,0,N]), {1: [[None, None, 1], 2, 1, True, 0], 2: [[None, None, 2], 2, 1, True, 0], 3: [[None, None, 3], 2, 1, True, 0], 4: [[None, None, 4], 2, 1, True, 0], 5: [[None, None, 5], 2, 1, True, 0]}[N])
check('6', solve([[N+1,None,None,N],3,2,0,N+2]), {1: [[2, None, 3, 1], 2, 3, True, 0], 2: [[3, None, 4, 2], 2, 3, True, 0], 3: [[4, None, 5, 3], 2, 3, True, 0], 4: [[5, None, 6, 4], 2, 3, True, 0], 5: [[6, None, 7, 5], 2, 3, True, 0]}[N])
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 |
|---|---|---|---|
| 0 | [[4, 2, 3, None, 1], 4, 4, True, 1] | [[4, 2, 3, None, 1], 4, 4, True, 1] | Passed |
| 1 | [[None, None, 3, 4, None], 2, 4, True, 1] | [[3, None, 1, 4, 2], 2, 4, True, 1] | Failed |
| 2 | [[1, 2, 5, 3, 4, None], 0, 5, True, 2] | [[1, 2, 5, 3, 4, None], 0, 5, True, 2] | Passed |
| 3 | [[None, None, 1, 3], 1, 3, True, 0] | [[None, 1, 2, 3], 1, 3, True, 0] | Failed |
| 4 | [[1, 2], 0, 2, False, 0] | [[1, 2], 0, 2, False, 0] | Passed |
| 5 | [[None, None, 1], 2, 1, True, 0] | [[None, None, 1], 2, 1, True, 0] | Passed |
| 6 | [[None, None, 3, 2], 2, 3, True, 0] | [[2, None, 3, 1], 2, 3, True, 0] | Failed |
SHA-256 / 4a6cac0a825a4597887aa3b14a0b5c7159c58634392bb1617a4e5f23364d3734
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
slots,head,size,gap,value=x
cap=len(slots)
if size==cap:return [slots,head,size,False,0]
logical=[slots[(head+i)%cap] for i in range(size)]
left=gap<size-gap
origin=(head-1)%cap if left else head
inserted=logical[:gap]+[value]+logical[gap:]
result=[None]*cap
for i,v in enumerate(inserted):result[(origin+i)%cap]=v
count=size+1
moved=gap if left else size-gap
return [result,origin,count,True,moved]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('0', solve([[N,N+1,N+2,None,None],0,3,1,N+3]), {1: [[4, 2, 3, None, 1], 4, 4, True, 1], 2: [[5, 3, 4, None, 2], 4, 4, True, 1], 3: [[6, 4, 5, None, 3], 4, 4, True, 1], 4: [[7, 5, 6, None, 4], 4, 4, True, 1], 5: [[8, 6, 7, None, 5], 4, 4, True, 1]}[N])
check('1', solve([[N+2,None,None,N,N+1],3,3,1,N+3]), {1: [[3, None, 1, 4, 2], 2, 4, True, 1], 2: [[4, None, 2, 5, 3], 2, 4, True, 1], 3: [[5, None, 3, 6, 4], 2, 4, True, 1], 4: [[6, None, 4, 7, 5], 2, 4, True, 1], 5: [[7, None, 5, 8, 6], 2, 4, True, 1]}[N])
check('2', solve([[N,N+1,N+2,N+3,None,None],0,4,2,N+4]), {1: [[1, 2, 5, 3, 4, None], 0, 5, True, 2], 2: [[2, 3, 6, 4, 5, None], 0, 5, True, 2], 3: [[3, 4, 7, 5, 6, None], 0, 5, True, 2], 4: [[4, 5, 8, 6, 7, None], 0, 5, True, 2], 5: [[5, 6, 9, 7, 8, None], 0, 5, True, 2]}[N])
check('3', solve([[None,N,N+1,None],1,2,2,N+2]), {1: [[None, 1, 2, 3], 1, 3, True, 0], 2: [[None, 2, 3, 4], 1, 3, True, 0], 3: [[None, 3, 4, 5], 1, 3, True, 0], 4: [[None, 4, 5, 6], 1, 3, True, 0], 5: [[None, 5, 6, 7], 1, 3, True, 0]}[N])
check('4', solve([[N,N+1],0,2,1,N+2]), {1: [[1, 2], 0, 2, False, 0], 2: [[2, 3], 0, 2, False, 0], 3: [[3, 4], 0, 2, False, 0], 4: [[4, 5], 0, 2, False, 0], 5: [[5, 6], 0, 2, False, 0]}[N])
check('5', solve([[None,None,None],2,0,0,N]), {1: [[None, None, 1], 2, 1, True, 0], 2: [[None, None, 2], 2, 1, True, 0], 3: [[None, None, 3], 2, 1, True, 0], 4: [[None, None, 4], 2, 1, True, 0], 5: [[None, None, 5], 2, 1, True, 0]}[N])
check('6', solve([[N+1,None,None,N],3,2,0,N+2]), {1: [[2, None, 3, 1], 2, 3, True, 0], 2: [[3, None, 4, 2], 2, 3, True, 0], 3: [[4, None, 5, 3], 2, 3, True, 0], 4: [[5, None, 6, 4], 2, 3, True, 0], 5: [[6, None, 7, 5], 2, 3, True, 0]}[N])
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 |
|---|---|---|---|
| 0 | [[4, 2, 3, None, 1], 4, 4, True, 1] | [[4, 2, 3, None, 1], 4, 4, True, 1] | Passed |
| 1 | [[3, None, 1, 4, 2], 2, 4, True, 1] | [[3, None, 1, 4, 2], 2, 4, True, 1] | Passed |
| 2 | [[1, 2, 5, 3, 4, None], 0, 5, True, 2] | [[1, 2, 5, 3, 4, None], 0, 5, True, 2] | Passed |
| 3 | [[None, 1, 2, 3], 1, 3, True, 0] | [[None, 1, 2, 3], 1, 3, True, 0] | Passed |
| 4 | [[1, 2], 0, 2, False, 0] | [[1, 2], 0, 2, False, 0] | Passed |
| 5 | [[None, None, 1], 2, 1, True, 0] | [[None, None, 1], 2, 1, True, 0] | Passed |
| 6 | [[2, None, 3, 1], 2, 3, True, 0] | [[2, None, 3, 1], 2, 3, True, 0] | Passed |
SHA-256 / d1f9a30d28beb8d9c00c662342ed9547e57ee692af4106f83e6850829d0d4fad
Verification & scope
Offline finite deterministic model; no claim of production implementation or concurrent memory-model conformance. 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:44:37.866307+00:00.
Case digest / b3ac9626605c2975db1d5b08e7abd53eac6cc0ae1604cd22bba6bcbb0092ec0d