{"abstract":"An unknown value from a weaker driver turns a strongly driven net into x.","category":"Digital logic simulation","checks":11,"contract":"Input [drivers, keeper]: drivers are [value, strength] with value in 0/1/x/z and strength weak < pull < strong. 'z' drivers are ignored. With no active driver the net is the keeper value, or 'z' when keeper is None. Otherwise only drivers at the highest present strength matter: a single agreed value wins, any disagreement (including x) gives 'x'.","contract_signature":"*args","evaluation_group":"w2-digital-logic-simulation-bus-resolution","failed_approach":"Exempting only weak unknowns still lets a pull-strength x override a strong driver.","family":"w2-digital-logic-simulation-bus-resolution-unknown-driver-strength","id":"FA-89036","implementations":{"attempt":{"sha256":"b43800c62584df000c5844bfd714d8117093730ed6d49fa8b258d27607f28dc8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    drivers, keep = args\n    rank = {'weak': 0, 'pull': 1, 'strong': 2}\n    live = [(v, s) for v, s in drivers if v != 'z']\n    if not live:\n        return keep if keep is not None else 'z'\n    if any(v == 'x' and s != 'weak' for v, s in live):\n        return 'x'\n    top = max(live, key=lambda d: rank[d[1]])[1]\n    vals = sorted({v for v, s in live if s == top})\n    return vals[0] if len(vals) == 1 else 'x'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong']], '1'], '1'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong']], '0'], '0'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong'], ['z', 'strong']], '1'], '1'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], '0'], '0'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak'], ['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], '1'], '1'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak'], ['1', 'weak'], ['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"13263d46cc5143f1e3a78c913638395796cbfa42487a981f7b29110889a4ec4b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    drivers, keep = args\n    rank = {'weak': 0, 'pull': 1, 'strong': 2}\n    live = [(v, s) for v, s in drivers if v != 'z']\n    if not live:\n        return keep if keep is not None else 'z'\n    if any(v == 'x' for v, s in live):\n        return 'x'\n    top = max(live, key=lambda d: rank[d[1]])[1]\n    vals = sorted({v for v, s in live if s == top})\n    return vals[0] if len(vals) == 1 else 'x'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong']], '1'], '1'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong']], '0'], '0'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong'], ['z', 'strong']], '1'], '1'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], '0'], '0'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak'], ['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')], [('strong beats weak listed first', [[['0', 'weak'], ['1', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], None], '1'), ('pull beats weak listed first', [[['0', 'weak'], ['1', 'pull']], None], '1'), ('strong contention', [[['0', 'strong'], ['1', 'strong'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull'], ['1', 'pull']], None], 'x'), ('pull contention with weak agreement', [[['1', 'pull'], ['0', 'pull'], ['1', 'weak']], '1'], 'x'), ('released strong driver beside weak one', [[['z', 'strong'], ['1', 'weak']], None], '1'), ('all released with keeper', [[['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong'], ['z', 'strong']], '1'], '1'), ('single released driver with keeper', [[['z', 'pull']], '1'], '1'), ('all released without keeper', [[['z', 'weak'], ['z', 'strong']], None], 'z'), ('weak driver disagrees with keeper', [[['1', 'weak'], ['1', 'weak'], ['1', 'weak'], ['1', 'weak'], ['1', 'weak']], '0'], '1'), ('weak unknown under strong driver', [[['x', 'weak'], ['0', 'strong']], None], '0'), ('pull unknown under strong driver', [[['x', 'pull'], ['1', 'strong']], '0'], '1')]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"A deterministic bounded teaching model of one simulator rule set; the contract is stipulated and is not a claim of conformance to any HDL standard or commercial simulator. 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":"w2-digital-logic-simulation-bus-resolution-unknown-driver-strength","generated_at":"2026-09-29T14:51:13.633378+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Resolved nets in switch-level and RTL simulators combine drivers by strength; mixing up strengths or keepers changes observed bus values.","root_cause":"Unknown drivers are checked before strength selection, regardless of strength.","sha256":"a5cd42b5b154b544e4ae4d948cc6cd2c98a691e9f94c828b05905a8071c7e1c3","title":"Weak unknown driver poisons a strongly driven net · 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.056,"exit_code":1,"observations":[{"actual":"1","check":"strong beats weak listed first","expected":"1","passed":true},{"actual":"1","check":"pull beats weak listed first","expected":"1","passed":true},{"actual":"x","check":"strong contention","expected":"x","passed":true},{"actual":"x","check":"pull contention with weak agreement","expected":"x","passed":true},{"actual":"1","check":"released strong driver beside weak one","expected":"1","passed":true},{"actual":"1","check":"all released with keeper","expected":"1","passed":true},{"actual":"1","check":"single released driver with keeper","expected":"1","passed":true},{"actual":"z","check":"all released without keeper","expected":"z","passed":true},{"actual":"1","check":"weak driver disagrees with keeper","expected":"1","passed":true},{"actual":"0","check":"weak unknown under strong driver","expected":"0","passed":true},{"actual":"x","check":"pull unknown under strong driver","expected":"1","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"strong beats weak listed first\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"pull beats weak listed first\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"strong contention\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"pull contention with weak agreement\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"released strong driver beside weak one\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"all released with keeper\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"single released driver with keeper\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"all released without keeper\", \"actual\": \"z\", \"expected\": \"z\", \"passed\": true}, {\"check\": \"weak driver disagrees with keeper\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"weak unknown under strong driver\", \"actual\": \"0\", \"expected\": \"0\", \"passed\": true}, {\"check\": \"pull unknown under strong driver\", \"actual\": \"x\", \"expected\": \"1\", \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.491,"exit_code":1,"observations":[{"actual":"1","check":"strong beats weak listed first","expected":"1","passed":true},{"actual":"1","check":"pull beats weak listed first","expected":"1","passed":true},{"actual":"x","check":"strong contention","expected":"x","passed":true},{"actual":"x","check":"pull contention with weak agreement","expected":"x","passed":true},{"actual":"1","check":"released strong driver beside weak one","expected":"1","passed":true},{"actual":"1","check":"all released with keeper","expected":"1","passed":true},{"actual":"1","check":"single released driver with keeper","expected":"1","passed":true},{"actual":"z","check":"all released without keeper","expected":"z","passed":true},{"actual":"1","check":"weak driver disagrees with keeper","expected":"1","passed":true},{"actual":"x","check":"weak unknown under strong driver","expected":"0","passed":false},{"actual":"x","check":"pull unknown under strong driver","expected":"1","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"strong beats weak listed first\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"pull beats weak listed first\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"strong contention\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"pull contention with weak agreement\", \"actual\": \"x\", \"expected\": \"x\", \"passed\": true}, {\"check\": \"released strong driver beside weak one\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"all released with keeper\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"single released driver with keeper\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"all released without keeper\", \"actual\": \"z\", \"expected\": \"z\", \"passed\": true}, {\"check\": \"weak driver disagrees with keeper\", \"actual\": \"1\", \"expected\": \"1\", \"passed\": true}, {\"check\": \"weak unknown under strong driver\", \"actual\": \"x\", \"expected\": \"0\", \"passed\": false}, {\"check\": \"pull unknown under strong driver\", \"actual\": \"x\", \"expected\": \"1\", \"passed\": false}], \"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."}}