{"abstract":"Pinned proxies remain semantically live after destruction.","category":"Accessibility interaction semantics","checks":8,"contract":"Bounded accessibility proxy registry: input operations [kind,id,generation,value]. create installs a nonnegative generation only if newer than existing generation; retired generations remain recorded. destroy only applies to matching generation. get returns value only for matching generation live proxy. set changes matching live proxy and never creates objects. pin/unpin maintain nonnegative reference count; destroying a pinned proxy immediately makes reads unavailable but keeps tombstone until unpinned. Each operation returns a snapshot [id,generation,live,value,pins] for its ID, or None when absent; dead value is always None. Unknown operations do nothing.","contract_signature":"data","evaluation_group":"s3-accessibility-proxy-lifetime","failed_approach":"The local repair substitutes if kind == 'destroy' and old[3] < 1: but still mishandles the regression fixtures.","family":"s3-accessibility-proxy-lifetime-pinned-destruction","id":"FA-53586","implementations":{"attempt":{"sha256":"78fb4a21df05059807b161794d2710d2a86dc1314b53d518808d1b501e8edf29","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    state = {}\n    result = []\n    for kind,ident,generation,value in data:\n        old = state.get(ident)\n        if kind == 'create' and generation >= 0 and (old is None or generation > old[0]):\n            state[ident] = [generation,True,value,0]\n        elif old is not None and generation == old[0]:\n            if kind == 'destroy' and old[3] < 1: old[1],old[2] = False,None\n            elif kind == 'set' and old[1]: old[2] = value\n            elif kind == 'pin' and old[1]: old[3] += 1\n            elif kind == 'unpin': old[3] = max(0,old[3]-1)\n        row = state.get(ident)\n        result.append((ident,list(row)) if row is not None else None)\n    return [([entry[0]]+entry[1]) if entry is not None else None for entry in result]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('newer proxy preserves stale isolation', solve([['create','a',N,'x'],['create','a',N+1,'y'],['set','a',N,'stale'],['destroy','a',N,None]],), [['a',N,True,'x',0],['a',N+1,True,'y',0],['a',N+1,True,'y',0],['a',N+1,True,'y',0]])\ncheck('equal generation no reset', solve([['create','a',N,'x'],['pin','a',N,None],['create','a',N,'y']],), [['a',N,True,'x',0],['a',N,True,'x',1],['a',N,True,'x',1]])\ncheck('stale create and pinned generation', solve([['create','a',N,'x'],['pin','a',N,None],['create','a',N+1,'y'],['create','a',N,'stale']],), [['a',N,True,'x',0],['a',N,True,'x',1],['a',N+1,True,'y',0],['a',N+1,True,'y',0]])\ncheck('retired proxy cannot revive', solve([['create','a',N,'x'],['destroy','a',N,None],['set','a',N,'z'],['pin','a',N,None]],), [['a',N,True,'x',0],['a',N,False,None,0],['a',N,False,None,0],['a',N,False,None,0]])\ncheck('pinned destroy immediate', solve([['create','a',N,'x'],['pin','a',N,None],['destroy','a',N,None],['unpin','a',N,None]],), [['a',N,True,'x',0],['a',N,True,'x',1],['a',N,False,None,1],['a',N,False,None,0]])\ncheck('unpin lower bound', solve([['create','a',0,'x'],['unpin','a',0,None],['set','a',0,'y']],), [['a',0,True,'x',0],['a',0,True,'x',0],['a',0,True,'y',0]])\ncheck('unknown and negative', solve([['set','missing',0,'x'],['create','bad',-1,'x'],['get','missing',0,None]],), [None,None,None])\ncheck('separate proxy IDs', solve([['create','a',N,'x'],['create','b',N,'y']],), [['a',N,True,'x',0],['b',N,True,'y',0]])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"efc33431a72195ff4de03eb478a444e3712222a20ed27178d41f48e44baedea7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(data):\n    state = {}\n    result = []\n    for kind,ident,generation,value in data:\n        old = state.get(ident)\n        if kind == 'create' and generation >= 0 and (old is None or generation > old[0]):\n            state[ident] = [generation,True,value,0]\n        elif old is not None and generation == old[0]:\n            if kind == 'destroy' and old[3] == 0: old[1],old[2] = False,None\n            elif kind == 'set' and old[1]: old[2] = value\n            elif kind == 'pin' and old[1]: old[3] += 1\n            elif kind == 'unpin': old[3] = max(0,old[3]-1)\n        row = state.get(ident)\n        result.append((ident,list(row)) if row is not None else None)\n    return [([entry[0]]+entry[1]) if entry is not None else None for entry in result]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('newer proxy preserves stale isolation', solve([['create','a',N,'x'],['create','a',N+1,'y'],['set','a',N,'stale'],['destroy','a',N,None]],), [['a',N,True,'x',0],['a',N+1,True,'y',0],['a',N+1,True,'y',0],['a',N+1,True,'y',0]])\ncheck('equal generation no reset', solve([['create','a',N,'x'],['pin','a',N,None],['create','a',N,'y']],), [['a',N,True,'x',0],['a',N,True,'x',1],['a',N,True,'x',1]])\ncheck('stale create and pinned generation', solve([['create','a',N,'x'],['pin','a',N,None],['create','a',N+1,'y'],['create','a',N,'stale']],), [['a',N,True,'x',0],['a',N,True,'x',1],['a',N+1,True,'y',0],['a',N+1,True,'y',0]])\ncheck('retired proxy cannot revive', solve([['create','a',N,'x'],['destroy','a',N,None],['set','a',N,'z'],['pin','a',N,None]],), [['a',N,True,'x',0],['a',N,False,None,0],['a',N,False,None,0],['a',N,False,None,0]])\ncheck('pinned destroy immediate', solve([['create','a',N,'x'],['pin','a',N,None],['destroy','a',N,None],['unpin','a',N,None]],), [['a',N,True,'x',0],['a',N,True,'x',1],['a',N,False,None,1],['a',N,False,None,0]])\ncheck('unpin lower bound', solve([['create','a',0,'x'],['unpin','a',0,None],['set','a',0,'y']],), [['a',0,True,'x',0],['a',0,True,'x',0],['a',0,True,'y',0]])\ncheck('unknown and negative', solve([['set','missing',0,'x'],['create','bad',-1,'x'],['get','missing',0,None]],), [None,None,None])\ncheck('separate proxy IDs', solve([['create','a',N,'x'],['create','b',N,'y']],), [['a',N,True,'x',0],['b',N,True,'y',0]])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Stipulated finite adapter contract, not a claim of platform accessibility or ARIA 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-accessibility-proxy-lifetime-pinned-destruction","generated_at":"2026-09-29T14:45:40.627728+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline accessibility bridge model with explicit policy; useful for testing semantic API adapters independently of browser implementations.","root_cause":"The pinned destruction decision in the proxy lifetime adapter violates its declared contract.","sha256":"2c86c4d15234acdb0136d96ce6d9e581bea8748472892f4561a557516fb34266","title":"Pinned proxies remain semantically live after destruction · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.451,"exit_code":1,"observations":[{"actual":[["a",1,true,"x",0],["a",2,true,"y",0],["a",2,true,"y",0],["a",2,true,"y",0]],"check":"newer proxy preserves stale isolation","expected":[["a",1,true,"x",0],["a",2,true,"y",0],["a",2,true,"y",0],["a",2,true,"y",0]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,true,"x",1]],"check":"equal generation no reset","expected":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,true,"x",1]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,true,"x",1],["a",2,true,"y",0],["a",2,true,"y",0]],"check":"stale create and pinned generation","expected":[["a",1,true,"x",0],["a",1,true,"x",1],["a",2,true,"y",0],["a",2,true,"y",0]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,false,null,0],["a",1,false,null,0],["a",1,false,null,0]],"check":"retired proxy cannot revive","expected":[["a",1,true,"x",0],["a",1,false,null,0],["a",1,false,null,0],["a",1,false,null,0]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,true,"x",1],["a",1,true,"x",0]],"check":"pinned destroy immediate","expected":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,false,null,1],["a",1,false,null,0]],"passed":false},{"actual":[["a",0,true,"x",0],["a",0,true,"x",0],["a",0,true,"y",0]],"check":"unpin lower bound","expected":[["a",0,true,"x",0],["a",0,true,"x",0],["a",0,true,"y",0]],"passed":true},{"actual":[null,null,null],"check":"unknown and negative","expected":[null,null,null],"passed":true},{"actual":[["a",1,true,"x",0],["b",1,true,"y",0]],"check":"separate proxy IDs","expected":[["a",1,true,"x",0],["b",1,true,"y",0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"newer proxy preserves stale isolation\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"passed\": true}, {\"check\": \"equal generation no reset\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 1]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 1]], \"passed\": true}, {\"check\": \"stale create and pinned generation\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"passed\": true}, {\"check\": \"retired proxy cannot revive\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0]], \"passed\": true}, {\"check\": \"pinned destroy immediate\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, false, null, 1], [\"a\", 1, false, null, 0]], \"passed\": false}, {\"check\": \"unpin lower bound\", \"actual\": [[\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"y\", 0]], \"expected\": [[\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"y\", 0]], \"passed\": true}, {\"check\": \"unknown and negative\", \"actual\": [null, null, null], \"expected\": [null, null, null], \"passed\": true}, {\"check\": \"separate proxy IDs\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"b\", 1, true, \"y\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"b\", 1, true, \"y\", 0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.956,"exit_code":1,"observations":[{"actual":[["a",1,true,"x",0],["a",2,true,"y",0],["a",2,true,"y",0],["a",2,true,"y",0]],"check":"newer proxy preserves stale isolation","expected":[["a",1,true,"x",0],["a",2,true,"y",0],["a",2,true,"y",0],["a",2,true,"y",0]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,true,"x",1]],"check":"equal generation no reset","expected":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,true,"x",1]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,true,"x",1],["a",2,true,"y",0],["a",2,true,"y",0]],"check":"stale create and pinned generation","expected":[["a",1,true,"x",0],["a",1,true,"x",1],["a",2,true,"y",0],["a",2,true,"y",0]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,false,null,0],["a",1,false,null,0],["a",1,false,null,0]],"check":"retired proxy cannot revive","expected":[["a",1,true,"x",0],["a",1,false,null,0],["a",1,false,null,0],["a",1,false,null,0]],"passed":true},{"actual":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,true,"x",1],["a",1,true,"x",0]],"check":"pinned destroy immediate","expected":[["a",1,true,"x",0],["a",1,true,"x",1],["a",1,false,null,1],["a",1,false,null,0]],"passed":false},{"actual":[["a",0,true,"x",0],["a",0,true,"x",0],["a",0,true,"y",0]],"check":"unpin lower bound","expected":[["a",0,true,"x",0],["a",0,true,"x",0],["a",0,true,"y",0]],"passed":true},{"actual":[null,null,null],"check":"unknown and negative","expected":[null,null,null],"passed":true},{"actual":[["a",1,true,"x",0],["b",1,true,"y",0]],"check":"separate proxy IDs","expected":[["a",1,true,"x",0],["b",1,true,"y",0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"newer proxy preserves stale isolation\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"passed\": true}, {\"check\": \"equal generation no reset\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 1]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 1]], \"passed\": true}, {\"check\": \"stale create and pinned generation\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 2, true, \"y\", 0], [\"a\", 2, true, \"y\", 0]], \"passed\": true}, {\"check\": \"retired proxy cannot revive\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0], [\"a\", 1, false, null, 0]], \"passed\": true}, {\"check\": \"pinned destroy immediate\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 1], [\"a\", 1, true, \"x\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"a\", 1, true, \"x\", 1], [\"a\", 1, false, null, 1], [\"a\", 1, false, null, 0]], \"passed\": false}, {\"check\": \"unpin lower bound\", \"actual\": [[\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"y\", 0]], \"expected\": [[\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"x\", 0], [\"a\", 0, true, \"y\", 0]], \"passed\": true}, {\"check\": \"unknown and negative\", \"actual\": [null, null, null], \"expected\": [null, null, null], \"passed\": true}, {\"check\": \"separate proxy IDs\", \"actual\": [[\"a\", 1, true, \"x\", 0], [\"b\", 1, true, \"y\", 0]], \"expected\": [[\"a\", 1, true, \"x\", 0], [\"b\", 1, true, \"y\", 0]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}