FA-12461 / Molecular graph representation / Open access
Aromatic bond tags are inferred from atom flags · case 01
Aromatic bond tags are inferred from atom flags.
ROOT CAUSE
Two aromatic atom flags are treated as proof of an aromatic connecting bond.
THE FAILURE
Two aromatic atom flags are treated as proof of an aromatic connecting bond.
Unsuccessful approach: Requiring aromatic endpoints deletes explicit bond tags on partially annotated graphs.
Case contract
Return the explicit bond aromatic boolean unchanged. Atom aromatic flags are independent annotations and are never used to infer or override it.
Why this case matters
Controlled molecular graph interchange model; tests isolate atom or bond representation errors without claiming chemical validity or production toolkit equivalence.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(left, right, bond, atom_id):
return left and right
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('bridge between annotated atoms', solve(True,True,False,N), False)
check('explicit partial annotation', solve(True,False,True,N), True)
check('neither atom annotated', solve(False,False,True,N), True)
check('consistent aromatic', solve(True,True,bool(N % 2),N), bool(N % 2))
check('plain bond', solve(False,False,bool(N % 2),N), bool(N % 2))
check('single annotated atom', solve(False,True,False,N), False)
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 |
|---|---|---|---|
| bridge between annotated atoms | True | False | Failed |
| explicit partial annotation | False | True | Failed |
| neither atom annotated | False | True | Failed |
| consistent aromatic | True | True | Passed |
| plain bond | False | True | Failed |
| single annotated atom | False | False | Passed |
SHA-256 / e92f74106b389d85dd9a2b9b15f74c680e2620ff4971d2b1384a1a5edfd12bae
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(left, right, bond, atom_id):
return bond and left and right
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('bridge between annotated atoms', solve(True,True,False,N), False)
check('explicit partial annotation', solve(True,False,True,N), True)
check('neither atom annotated', solve(False,False,True,N), True)
check('consistent aromatic', solve(True,True,bool(N % 2),N), bool(N % 2))
check('plain bond', solve(False,False,bool(N % 2),N), bool(N % 2))
check('single annotated atom', solve(False,True,False,N), False)
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 |
|---|---|---|---|
| bridge between annotated atoms | False | False | Passed |
| explicit partial annotation | False | True | Failed |
| neither atom annotated | False | True | Failed |
| consistent aromatic | True | True | Passed |
| plain bond | False | True | Failed |
| single annotated atom | False | False | Passed |
SHA-256 / bd1a970cf255848fad746332308d52392525591fca1539e06a7de6a9676a6668
HELD IN THE MEMBER ARCHIVE
The verified repair and its recorded checks are member-only.
This mechanism has 6 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
Toy representation only; no valence inference, chemical sanitization, synthesis, or real molecular identity determination. 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:38:57.126118+00:00.
Case digest / 26ac1c7fb67a8bb45dd50fffbcc46b5ecca5cd53f01ca05562d74d57d01f2e44