{"abstract":"The proposal adoption operation is admitted even though a proposer replaces the adopted value with its client value.","category":"Consensus","checks":9,"contract":"Return a Boolean admission decision for choose a value after prepare responses. The record r must satisfy all of: len(set(r['promise_quorum'][0])) >= r['promise_quorum'][1]; r['highest_accepted'][0] == max(r['highest_accepted'][1]); r['accepted_value'][0] == r['accepted_value'][1]; all(x == r['responses_ballot'][0] for x in r['responses_ballot'][1]); len(r['ballot_identity']) == len(set(tuple(x) for x in r['ballot_identity'])). Extra tracing fields are ignored; validation does not mutate the record.","evaluation_group":"xd-proposal-adoption","failed_approach":"Adding the accepted value check repairs the reported defect, but replacing the adjacent responses ballot check loses that independent invariant.","family":"xd-proposal-adoption-accepted_value","id":"FA-536","implementations":{"attempt":{"sha256":"9160392747f1025eb8ac05acc52030dd782a82ad3d811f0dc62cfbea7ffca4a5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(r):\n    return (len(set(r['promise_quorum'][0])) >= r['promise_quorum'][1]) and (r['highest_accepted'][0] == max(r['highest_accepted'][1])) and (r['accepted_value'][0] == r['accepted_value'][1]) and (len(r['ballot_identity']) == len(set(tuple(x) for x in r['ballot_identity'])))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nr = {'promise_quorum': [[1, 2], 2], 'highest_accepted': [7, [2, 7, 5]], 'accepted_value': ['old', 'old'], 'responses_ballot': [8, [8, 8]], 'ballot_identity': [[8, 'a'], [8, 'b']]}\ncheck('valid operation', solve(r), True)\ncheck('A proposer proceeds with too few distinct promises', solve(dict(r, **{'promise_quorum': [[1, 1], 2]})), False)\ncheck('A proposer ignores the highest previously accepted ballot', solve(dict(r, **{'highest_accepted': [5, [2, 7, 5]]})), False)\ncheck('A proposer replaces the adopted value with its client value', solve(dict(r, **{'accepted_value': ['new', 'old']})), False)\ncheck('Prepare responses from different ballots are combined', solve(dict(r, **{'responses_ballot': [8, [7, 8]]})), False)\ncheck('Two proposers reuse one ballot identity', solve(dict(r, **{'ballot_identity': [[8, 'a'], [8, 'a']]})), False)\ncheck('unrelated tracing metadata', solve(dict(r, trace='run-'+str(N))), True)\ncheck('repeat validation is pure', solve(r), True)\ninvalid = {'promise_quorum': [[1, 1], 2], 'highest_accepted': [5, [2, 7, 5]], 'accepted_value': ['new', 'old'], 'responses_ballot': [8, [7, 8]], 'ballot_identity': [[8, 'a'], [8, 'a']]}\nkeys = list(invalid)\npair = {keys[N % len(keys)]: invalid[keys[N % len(keys)]], keys[(N+1) % len(keys)]: invalid[keys[(N+1) % len(keys)]]}\ncheck('two independent violations in variant', solve(dict(r, **pair)), False)\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":"bccf26faec5ef8b2175e2c11e4c9f5cdbcf28a09c6258e075dceb4aba4ca0fbd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(r):\n    return (len(set(r['promise_quorum'][0])) >= r['promise_quorum'][1]) and (r['highest_accepted'][0] == max(r['highest_accepted'][1])) and (all(x == r['responses_ballot'][0] for x in r['responses_ballot'][1])) and (len(r['ballot_identity']) == len(set(tuple(x) for x in r['ballot_identity'])))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nr = {'promise_quorum': [[1, 2], 2], 'highest_accepted': [7, [2, 7, 5]], 'accepted_value': ['old', 'old'], 'responses_ballot': [8, [8, 8]], 'ballot_identity': [[8, 'a'], [8, 'b']]}\ncheck('valid operation', solve(r), True)\ncheck('A proposer proceeds with too few distinct promises', solve(dict(r, **{'promise_quorum': [[1, 1], 2]})), False)\ncheck('A proposer ignores the highest previously accepted ballot', solve(dict(r, **{'highest_accepted': [5, [2, 7, 5]]})), False)\ncheck('A proposer replaces the adopted value with its client value', solve(dict(r, **{'accepted_value': ['new', 'old']})), False)\ncheck('Prepare responses from different ballots are combined', solve(dict(r, **{'responses_ballot': [8, [7, 8]]})), False)\ncheck('Two proposers reuse one ballot identity', solve(dict(r, **{'ballot_identity': [[8, 'a'], [8, 'a']]})), False)\ncheck('unrelated tracing metadata', solve(dict(r, trace='run-'+str(N))), True)\ncheck('repeat validation is pure', solve(r), True)\ninvalid = {'promise_quorum': [[1, 1], 2], 'highest_accepted': [5, [2, 7, 5]], 'accepted_value': ['new', 'old'], 'responses_ballot': [8, [7, 8]], 'ballot_identity': [[8, 'a'], [8, 'a']]}\nkeys = list(invalid)\npair = {keys[N % len(keys)]: invalid[keys[N % len(keys)]], keys[(N+1) % len(keys)]: invalid[keys[(N+1) % len(keys)]]}\ncheck('two independent violations in variant', solve(dict(r, **pair)), False)\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"},"fixed":{"sha256":"85329280e82a2f5e4b2e69296171dd2eb6eb7ec01abf2a8ba66d23cd59063f3f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(r):\n    return (len(set(r['promise_quorum'][0])) >= r['promise_quorum'][1]) and (r['highest_accepted'][0] == max(r['highest_accepted'][1])) and (r['accepted_value'][0] == r['accepted_value'][1]) and (all(x == r['responses_ballot'][0] for x in r['responses_ballot'][1])) and (len(r['ballot_identity']) == len(set(tuple(x) for x in r['ballot_identity'])))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nr = {'promise_quorum': [[1, 2], 2], 'highest_accepted': [7, [2, 7, 5]], 'accepted_value': ['old', 'old'], 'responses_ballot': [8, [8, 8]], 'ballot_identity': [[8, 'a'], [8, 'b']]}\ncheck('valid operation', solve(r), True)\ncheck('A proposer proceeds with too few distinct promises', solve(dict(r, **{'promise_quorum': [[1, 1], 2]})), False)\ncheck('A proposer ignores the highest previously accepted ballot', solve(dict(r, **{'highest_accepted': [5, [2, 7, 5]]})), False)\ncheck('A proposer replaces the adopted value with its client value', solve(dict(r, **{'accepted_value': ['new', 'old']})), False)\ncheck('Prepare responses from different ballots are combined', solve(dict(r, **{'responses_ballot': [8, [7, 8]]})), False)\ncheck('Two proposers reuse one ballot identity', solve(dict(r, **{'ballot_identity': [[8, 'a'], [8, 'a']]})), False)\ncheck('unrelated tracing metadata', solve(dict(r, trace='run-'+str(N))), True)\ncheck('repeat validation is pure', solve(r), True)\ninvalid = {'promise_quorum': [[1, 1], 2], 'highest_accepted': [5, [2, 7, 5]], 'accepted_value': ['new', 'old'], 'responses_ballot': [8, [7, 8]], 'ballot_identity': [[8, 'a'], [8, 'a']]}\nkeys = list(invalid)\npair = {keys[N % len(keys)]: invalid[keys[N % len(keys)]], keys[(N+1) % len(keys)]: invalid[keys[(N+1) % len(keys)]]}\ncheck('two independent violations in variant', solve(dict(r, **pair)), False)\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":" 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":"xd-proposal-adoption-accepted_value","generated_at":"2026-09-29T14:36:53.772641+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic local contract for consensus. Each negative fixture violates exactly one invariant. No transport timing, persistence, cryptographic verification, or full protocol implementation is claimed.","repair":"Require r['accepted_value'][0] == r['accepted_value'][1] together with every other stated precondition before accepting the operation.","root_cause":"The admission path omits the accepted value invariant while validating the other operation preconditions.","sha256":"e84a9afdc4a5a54c22604195e4988d52b9531209349d43e0cdf86f21d47695c7","title":"Choose a value after prepare responses: A proposer replaces the adopted value with its client value · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":126.935,"exit_code":1,"observations":[{"actual":true,"check":"valid operation","expected":true,"passed":true},{"actual":false,"check":"A proposer proceeds with too few distinct promises","expected":false,"passed":true},{"actual":false,"check":"A proposer ignores the highest previously accepted ballot","expected":false,"passed":true},{"actual":false,"check":"A proposer replaces the adopted value with its client value","expected":false,"passed":true},{"actual":true,"check":"Prepare responses from different ballots are combined","expected":false,"passed":false},{"actual":false,"check":"Two proposers reuse one ballot identity","expected":false,"passed":true},{"actual":true,"check":"unrelated tracing metadata","expected":true,"passed":true},{"actual":true,"check":"repeat validation is pure","expected":true,"passed":true},{"actual":false,"check":"two independent violations in variant","expected":false,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"valid operation\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"A proposer proceeds with too few distinct promises\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"A proposer ignores the highest previously accepted ballot\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"A proposer replaces the adopted value with its client value\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"Prepare responses from different ballots are combined\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"Two proposers reuse one ballot identity\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unrelated tracing metadata\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"repeat validation is pure\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"two independent violations in variant\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.018,"exit_code":1,"observations":[{"actual":true,"check":"valid operation","expected":true,"passed":true},{"actual":false,"check":"A proposer proceeds with too few distinct promises","expected":false,"passed":true},{"actual":false,"check":"A proposer ignores the highest previously accepted ballot","expected":false,"passed":true},{"actual":true,"check":"A proposer replaces the adopted value with its client value","expected":false,"passed":false},{"actual":false,"check":"Prepare responses from different ballots are combined","expected":false,"passed":true},{"actual":false,"check":"Two proposers reuse one ballot identity","expected":false,"passed":true},{"actual":true,"check":"unrelated tracing metadata","expected":true,"passed":true},{"actual":true,"check":"repeat validation is pure","expected":true,"passed":true},{"actual":false,"check":"two independent violations in variant","expected":false,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"valid operation\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"A proposer proceeds with too few distinct promises\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"A proposer ignores the highest previously accepted ballot\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"A proposer replaces the adopted value with its client value\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"Prepare responses from different ballots are combined\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"Two proposers reuse one ballot identity\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unrelated tracing metadata\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"repeat validation is pure\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"two independent violations in variant\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.971,"exit_code":0,"observations":[{"actual":true,"check":"valid operation","expected":true,"passed":true},{"actual":false,"check":"A proposer proceeds with too few distinct promises","expected":false,"passed":true},{"actual":false,"check":"A proposer ignores the highest previously accepted ballot","expected":false,"passed":true},{"actual":false,"check":"A proposer replaces the adopted value with its client value","expected":false,"passed":true},{"actual":false,"check":"Prepare responses from different ballots are combined","expected":false,"passed":true},{"actual":false,"check":"Two proposers reuse one ballot identity","expected":false,"passed":true},{"actual":true,"check":"unrelated tracing metadata","expected":true,"passed":true},{"actual":true,"check":"repeat validation is pure","expected":true,"passed":true},{"actual":false,"check":"two independent violations in variant","expected":false,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"valid operation\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"A proposer proceeds with too few distinct promises\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"A proposer ignores the highest previously accepted ballot\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"A proposer replaces the adopted value with its client value\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"Prepare responses from different ballots are combined\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"Two proposers reuse one ballot identity\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"unrelated tracing metadata\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"repeat validation is pure\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"two independent violations in variant\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}