FA-44076 / Borrow checking / Open access
Different storage incarnations merge because their source variable spelling matches · case 01
Different storage incarnations merge because their source variable spelling matches.
ROOT CAUSE
The static analyzer mishandles incarnation separation: different storage incarnations merge because their source variable spelling matches.
THE FAILURE
The static analyzer mishandles incarnation separation: different storage incarnations merge because their source variable spelling matches.
Unsuccessful approach: The partial repair uses if d['merged_incarnation'] is not None and bool(d['incarnations']) and d['incarnations'][0]!=d['merged_incarnation']: errors.append('incarnation-separation'), which still violates the stipulated analysis contract.
Case contract
Check ownership lattice join certificates. Definitely initialized paths intersect predecessor sets; possibly moved paths union; unique capabilities survive only if same owner on all paths; returned paths excluded from continuing join; divergent predecessors contribute bottom; reference alternatives union origins; assignment on every path restores initialization; storage incarnations cannot merge by variable spelling; drop flags reflect possibly initialized fields; conditional ownership is not unconditional ownership. Input is a fully explicit descriptor of the stated toy IR. Return rule identifiers in declaration order; absent optional obligations use the provided neutral defaults. No rule is an assertion about a production language.
Why this case matters
A finite offline static-analysis model of ownership and borrowing; it does not execute the analyzed program.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
errors=[]
if set(d['joined_initialized'])!=(set.intersection(*(set(x) for x in d['pred_initialized'])) if d['pred_initialized'] else set()): errors.append('definite-meet')
if set(d['joined_moved'])!=set(x for xs in d['pred_moved'] for x in xs): errors.append('possible-move-union')
if d['unique_retained'] and len(set(d['unique_owners']))!=1: errors.append('unique-owner-agreement')
if bool(set(d['returned'])&set(d['included'])): errors.append('returned-path-exclusion')
if bool(set(d['diverged'])&set(d['included'])): errors.append('divergent-bottom')
if set(d['joined_origins'])!=set(x for xs in d['origin_sets'] for x in xs): errors.append('origin-alternative-union')
if not set(d['assigned_everywhere'])<=set(d['restored']): errors.append('all-path-reinitialization')
if False: errors.append('incarnation-separation')
if set(d['possibly_initialized'])!=set(d['drop_flags']): errors.append('conditional-drop-flags')
if bool(set(d['conditional'])&set(d['unconditional'])): errors.append('conditional-capability')
return errors
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
base={'pred_initialized': [], 'joined_initialized': [], 'pred_moved': [], 'joined_moved': [], 'unique_owners': [], 'unique_retained': False, 'returned': [], 'included': [], 'diverged': [], 'origin_sets': [], 'joined_origins': [], 'assigned_everywhere': [], 'restored': [], 'incarnations': [], 'merged_incarnation': None, 'possibly_initialized': [], 'drop_flags': [], 'conditional': [], 'unconditional': []}
check('well formed empty obligations',solve(base),[])
check('definite-meet regression 0', solve(dict(base, **({'pred_initialized':[['a'],[]],'joined_initialized':['a']}))), ['definite-meet'])
check('definite-meet regression 1', solve(dict(base, **({'pred_initialized':[[N,N+1],[N]],'joined_initialized':[N,N+1]}))), ['definite-meet'])
check('possible-move-union regression 0', solve(dict(base, **({'pred_moved':[['a'],[]]}))), ['possible-move-union'])
check('possible-move-union regression 1', solve(dict(base, **({'pred_moved':[[N],[N+1]],'joined_moved':[N]}))), ['possible-move-union'])
check('unique-owner-agreement regression 0', solve(dict(base, **({'unique_retained':True,'unique_owners':['a','b']}))), ['unique-owner-agreement'])
check('unique-owner-agreement regression 1', solve(dict(base, **({'unique_retained':True,'unique_owners':[N,N+1]}))), ['unique-owner-agreement'])
check('returned-path-exclusion regression 0', solve(dict(base, **({'returned':['a'],'included':['a','b']}))), ['returned-path-exclusion'])
check('returned-path-exclusion regression 1', solve(dict(base, **({'returned':[N],'included':[N,N+1]}))), ['returned-path-exclusion'])
check('divergent-bottom regression 0', solve(dict(base, **({'diverged':['a'],'included':['a','b']}))), ['divergent-bottom'])
check('divergent-bottom regression 1', solve(dict(base, **({'diverged':[N],'included':[N,N+1]}))), ['divergent-bottom'])
check('origin-alternative-union regression 0', solve(dict(base, **({'origin_sets':[['a'],['b']],'joined_origins':['a']}))), ['origin-alternative-union'])
check('origin-alternative-union regression 1', solve(dict(base, **({'origin_sets':[[N],[N+1]],'joined_origins':[N]}))), ['origin-alternative-union'])
check('all-path-reinitialization regression 0', solve(dict(base, **({'assigned_everywhere':['a','b'],'restored':['a']}))), ['all-path-reinitialization'])
check('all-path-reinitialization regression 1', solve(dict(base, **({'assigned_everywhere':[N,N+1],'restored':[N]}))), ['all-path-reinitialization'])
check('incarnation-separation regression 0', solve(dict(base, **({'merged_incarnation':N,'incarnations':[N,N+1]}))), ['incarnation-separation'])
check('incarnation-separation regression 1', solve(dict(base, **({'merged_incarnation':'x1','incarnations':['x1','x2']}))), ['incarnation-separation'])
check('conditional-drop-flags regression 0', solve(dict(base, **({'possibly_initialized':['a']}))), ['conditional-drop-flags'])
check('conditional-drop-flags regression 1', solve(dict(base, **({'possibly_initialized':[N,N+1],'drop_flags':[N]}))), ['conditional-drop-flags'])
check('conditional-capability regression 0', solve(dict(base, **({'conditional':['r'],'unconditional':['r']}))), ['conditional-capability'])
check('conditional-capability regression 1', solve(dict(base, **({'conditional':[N],'unconditional':[N]}))), ['conditional-capability'])
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 |
|---|---|---|---|
| well formed empty obligations | [] | [] | Passed |
| definite-meet regression 0 | ['definite-meet'] | ['definite-meet'] | Passed |
| definite-meet regression 1 | ['definite-meet'] | ['definite-meet'] | Passed |
| possible-move-union regression 0 | ['possible-move-union'] | ['possible-move-union'] | Passed |
| possible-move-union regression 1 | ['possible-move-union'] | ['possible-move-union'] | Passed |
| unique-owner-agreement regression 0 | ['unique-owner-agreement'] | ['unique-owner-agreement'] | Passed |
| unique-owner-agreement regression 1 | ['unique-owner-agreement'] | ['unique-owner-agreement'] | Passed |
| returned-path-exclusion regression 0 | ['returned-path-exclusion'] | ['returned-path-exclusion'] | Passed |
| returned-path-exclusion regression 1 | ['returned-path-exclusion'] | ['returned-path-exclusion'] | Passed |
| divergent-bottom regression 0 | ['divergent-bottom'] | ['divergent-bottom'] | Passed |
| divergent-bottom regression 1 | ['divergent-bottom'] | ['divergent-bottom'] | Passed |
| origin-alternative-union regression 0 | ['origin-alternative-union'] | ['origin-alternative-union'] | Passed |
| origin-alternative-union regression 1 | ['origin-alternative-union'] | ['origin-alternative-union'] | Passed |
| all-path-reinitialization regression 0 | ['all-path-reinitialization'] | ['all-path-reinitialization'] | Passed |
| all-path-reinitialization regression 1 | ['all-path-reinitialization'] | ['all-path-reinitialization'] | Passed |
| incarnation-separation regression 0 | [] | ['incarnation-separation'] | Failed |
| incarnation-separation regression 1 | [] | ['incarnation-separation'] | Failed |
| conditional-drop-flags regression 0 | ['conditional-drop-flags'] | ['conditional-drop-flags'] | Passed |
| conditional-drop-flags regression 1 | ['conditional-drop-flags'] | ['conditional-drop-flags'] | Passed |
| conditional-capability regression 0 | ['conditional-capability'] | ['conditional-capability'] | Passed |
| conditional-capability regression 1 | ['conditional-capability'] | ['conditional-capability'] | Passed |
SHA-256 / 34c5d5cf4fcd9aac1d729ae862040b2d92ec86175b7b27177fb6335e82b62f69
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
errors=[]
if set(d['joined_initialized'])!=(set.intersection(*(set(x) for x in d['pred_initialized'])) if d['pred_initialized'] else set()): errors.append('definite-meet')
if set(d['joined_moved'])!=set(x for xs in d['pred_moved'] for x in xs): errors.append('possible-move-union')
if d['unique_retained'] and len(set(d['unique_owners']))!=1: errors.append('unique-owner-agreement')
if bool(set(d['returned'])&set(d['included'])): errors.append('returned-path-exclusion')
if bool(set(d['diverged'])&set(d['included'])): errors.append('divergent-bottom')
if set(d['joined_origins'])!=set(x for xs in d['origin_sets'] for x in xs): errors.append('origin-alternative-union')
if not set(d['assigned_everywhere'])<=set(d['restored']): errors.append('all-path-reinitialization')
if d['merged_incarnation'] is not None and bool(d['incarnations']) and d['incarnations'][0]!=d['merged_incarnation']: errors.append('incarnation-separation')
if set(d['possibly_initialized'])!=set(d['drop_flags']): errors.append('conditional-drop-flags')
if bool(set(d['conditional'])&set(d['unconditional'])): errors.append('conditional-capability')
return errors
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
base={'pred_initialized': [], 'joined_initialized': [], 'pred_moved': [], 'joined_moved': [], 'unique_owners': [], 'unique_retained': False, 'returned': [], 'included': [], 'diverged': [], 'origin_sets': [], 'joined_origins': [], 'assigned_everywhere': [], 'restored': [], 'incarnations': [], 'merged_incarnation': None, 'possibly_initialized': [], 'drop_flags': [], 'conditional': [], 'unconditional': []}
check('well formed empty obligations',solve(base),[])
check('definite-meet regression 0', solve(dict(base, **({'pred_initialized':[['a'],[]],'joined_initialized':['a']}))), ['definite-meet'])
check('definite-meet regression 1', solve(dict(base, **({'pred_initialized':[[N,N+1],[N]],'joined_initialized':[N,N+1]}))), ['definite-meet'])
check('possible-move-union regression 0', solve(dict(base, **({'pred_moved':[['a'],[]]}))), ['possible-move-union'])
check('possible-move-union regression 1', solve(dict(base, **({'pred_moved':[[N],[N+1]],'joined_moved':[N]}))), ['possible-move-union'])
check('unique-owner-agreement regression 0', solve(dict(base, **({'unique_retained':True,'unique_owners':['a','b']}))), ['unique-owner-agreement'])
check('unique-owner-agreement regression 1', solve(dict(base, **({'unique_retained':True,'unique_owners':[N,N+1]}))), ['unique-owner-agreement'])
check('returned-path-exclusion regression 0', solve(dict(base, **({'returned':['a'],'included':['a','b']}))), ['returned-path-exclusion'])
check('returned-path-exclusion regression 1', solve(dict(base, **({'returned':[N],'included':[N,N+1]}))), ['returned-path-exclusion'])
check('divergent-bottom regression 0', solve(dict(base, **({'diverged':['a'],'included':['a','b']}))), ['divergent-bottom'])
check('divergent-bottom regression 1', solve(dict(base, **({'diverged':[N],'included':[N,N+1]}))), ['divergent-bottom'])
check('origin-alternative-union regression 0', solve(dict(base, **({'origin_sets':[['a'],['b']],'joined_origins':['a']}))), ['origin-alternative-union'])
check('origin-alternative-union regression 1', solve(dict(base, **({'origin_sets':[[N],[N+1]],'joined_origins':[N]}))), ['origin-alternative-union'])
check('all-path-reinitialization regression 0', solve(dict(base, **({'assigned_everywhere':['a','b'],'restored':['a']}))), ['all-path-reinitialization'])
check('all-path-reinitialization regression 1', solve(dict(base, **({'assigned_everywhere':[N,N+1],'restored':[N]}))), ['all-path-reinitialization'])
check('incarnation-separation regression 0', solve(dict(base, **({'merged_incarnation':N,'incarnations':[N,N+1]}))), ['incarnation-separation'])
check('incarnation-separation regression 1', solve(dict(base, **({'merged_incarnation':'x1','incarnations':['x1','x2']}))), ['incarnation-separation'])
check('conditional-drop-flags regression 0', solve(dict(base, **({'possibly_initialized':['a']}))), ['conditional-drop-flags'])
check('conditional-drop-flags regression 1', solve(dict(base, **({'possibly_initialized':[N,N+1],'drop_flags':[N]}))), ['conditional-drop-flags'])
check('conditional-capability regression 0', solve(dict(base, **({'conditional':['r'],'unconditional':['r']}))), ['conditional-capability'])
check('conditional-capability regression 1', solve(dict(base, **({'conditional':[N],'unconditional':[N]}))), ['conditional-capability'])
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 |
|---|---|---|---|
| well formed empty obligations | [] | [] | Passed |
| definite-meet regression 0 | ['definite-meet'] | ['definite-meet'] | Passed |
| definite-meet regression 1 | ['definite-meet'] | ['definite-meet'] | Passed |
| possible-move-union regression 0 | ['possible-move-union'] | ['possible-move-union'] | Passed |
| possible-move-union regression 1 | ['possible-move-union'] | ['possible-move-union'] | Passed |
| unique-owner-agreement regression 0 | ['unique-owner-agreement'] | ['unique-owner-agreement'] | Passed |
| unique-owner-agreement regression 1 | ['unique-owner-agreement'] | ['unique-owner-agreement'] | Passed |
| returned-path-exclusion regression 0 | ['returned-path-exclusion'] | ['returned-path-exclusion'] | Passed |
| returned-path-exclusion regression 1 | ['returned-path-exclusion'] | ['returned-path-exclusion'] | Passed |
| divergent-bottom regression 0 | ['divergent-bottom'] | ['divergent-bottom'] | Passed |
| divergent-bottom regression 1 | ['divergent-bottom'] | ['divergent-bottom'] | Passed |
| origin-alternative-union regression 0 | ['origin-alternative-union'] | ['origin-alternative-union'] | Passed |
| origin-alternative-union regression 1 | ['origin-alternative-union'] | ['origin-alternative-union'] | Passed |
| all-path-reinitialization regression 0 | ['all-path-reinitialization'] | ['all-path-reinitialization'] | Passed |
| all-path-reinitialization regression 1 | ['all-path-reinitialization'] | ['all-path-reinitialization'] | Passed |
| incarnation-separation regression 0 | [] | ['incarnation-separation'] | Failed |
| incarnation-separation regression 1 | [] | ['incarnation-separation'] | Failed |
| conditional-drop-flags regression 0 | ['conditional-drop-flags'] | ['conditional-drop-flags'] | Passed |
| conditional-drop-flags regression 1 | ['conditional-drop-flags'] | ['conditional-drop-flags'] | Passed |
| conditional-capability regression 0 | ['conditional-capability'] | ['conditional-capability'] | Passed |
| conditional-capability regression 1 | ['conditional-capability'] | ['conditional-capability'] | Passed |
SHA-256 / 80a8698a165ed6861d4f0aead7b38de0f5c9f2016ce162707f58fd36fa586abf
HELD IN THE MEMBER ARCHIVE
The verified repair and its recorded checks are member-only.
This mechanism has 21 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.
Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.
Member access is invitation-based. Sign in with your invited account to inspect the repair.
Sign in to the archive ↗Verification & scope
The explicitly stated toy language is the complete scope; this is not a production compiler or a claim about Rust semantics. 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:08.622259+00:00.
Case digest / eebfb76c4e72a9f0316fb393b2cf05d9f806b524b59b2ed2c1e373f5d5361d63