FA-57701 / Auction allocation rules / Open access
Reserve schedule: hidden reserve redaction · case 01
Reserve disclosure ignores its seller-approved visibility mode.
ROOT CAUSE
Reserve disclosure ignores its seller-approved visibility mode.
VERIFIED REPAIR
For hidden reserve redaction, apply the stipulated decision x["current_reserve"] if x["disclosed"] else None.
Unsuccessful approach: The attempted repair uses None; the explicit regression cases demonstrate that this still violates the stipulated auction rule.
Case contract
A seller precommits a reserve schedule before an auction. Reserve changes have effective rounds, approval and disclosure states. A hidden reserve can block sale but must not be represented as a competing bidder. The model certifies schedules rather than selecting a second-price payment. Named decision hidden-reserve-redaction: For hidden reserve redaction, apply the stipulated decision x["current_reserve"] if x["disclosed"] else None.
Why this case matters
Offline administrative auction model for software failure analysis.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
v0 = max(((t,v) for t,v in zip(x["starts"],x["values"]) if t<=x["round"]),default=(0,None))[1]
v1 = max(((t,v) for t,v,a in zip(x["starts"],x["values"],x["approved"]) if t<=x["round"] and a),default=(0,None))[1]
v2 = x["current_reserve"]
v3 = x["current_reserve"] if x["frozen"] else x["submitted_reserve"]
v4 = max(x["submitted_reserve"],x["floor"],x["seller_minimum"])
v5 = x["floor"]<=x["submitted_reserve"]<=x["ceiling"]
v6 = max(x["lot_minimum"],x["current_reserve"]*x["quantity"])
v7 = len(x["real_bids"])
v8 = x["current_reserve"] if x["withdrawn"] else x["submitted_reserve"]
v9 = x["submitted_reserve"] if x["round"]>=x["grant_round"] else x["current_reserve"]
return {'effective-reserve-step':v0,'approved-reserve-step':v1,'hidden-reserve-redaction':v2,'reserve-freeze':v3,'reserve-lower-bound':v4,'reserve-range-admission':v5,'whole-lot-reserve':v6,'reserve-not-a-bidder':v7,'withdrawn-reserve-amendment':v8,'grant-round-activation':v9}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('seller floor binds', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [10, 20, 30, 40, 50]), ('seller floor binds / public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [10, 20, 30, 40, 50]), ('amendment starts this round', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 3}, [None, None, None, None, None]), ('first round', {'round': 1, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('last round', {'round': 6, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('all approved', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, True, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('frozen reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': True, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('reserve below floor', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 4, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None])]
def vary(value):
if type(value) is int: return value*N
if isinstance(value,list): return [vary(v) for v in value]
if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'quantity', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
return value
for label, request, expected in fixtures:
check(label, solve(vary(request))['hidden-reserve-redaction'], expected[N-1])
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 |
|---|---|---|---|
| normal contract | 10 | None | Failed |
| seller floor binds | 10 | None | Failed |
| public reserve | 10 | 10 | Passed |
| seller floor binds / public reserve | 10 | 10 | Passed |
| amendment starts this round | 10 | None | Failed |
| first round | 10 | None | Failed |
| last round | 10 | None | Failed |
| all approved | 10 | None | Failed |
| frozen reserve | 10 | None | Failed |
| reserve below floor | 10 | None | Failed |
SHA-256 / 424a228a75aab142f9bcbcd3dbacdf59f9243b65d5b6edbda3a07c80a883659c
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
v0 = max(((t,v) for t,v in zip(x["starts"],x["values"]) if t<=x["round"]),default=(0,None))[1]
v1 = max(((t,v) for t,v,a in zip(x["starts"],x["values"],x["approved"]) if t<=x["round"] and a),default=(0,None))[1]
v2 = None
v3 = x["current_reserve"] if x["frozen"] else x["submitted_reserve"]
v4 = max(x["submitted_reserve"],x["floor"],x["seller_minimum"])
v5 = x["floor"]<=x["submitted_reserve"]<=x["ceiling"]
v6 = max(x["lot_minimum"],x["current_reserve"]*x["quantity"])
v7 = len(x["real_bids"])
v8 = x["current_reserve"] if x["withdrawn"] else x["submitted_reserve"]
v9 = x["submitted_reserve"] if x["round"]>=x["grant_round"] else x["current_reserve"]
return {'effective-reserve-step':v0,'approved-reserve-step':v1,'hidden-reserve-redaction':v2,'reserve-freeze':v3,'reserve-lower-bound':v4,'reserve-range-admission':v5,'whole-lot-reserve':v6,'reserve-not-a-bidder':v7,'withdrawn-reserve-amendment':v8,'grant-round-activation':v9}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('seller floor binds', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [10, 20, 30, 40, 50]), ('seller floor binds / public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [10, 20, 30, 40, 50]), ('amendment starts this round', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 3}, [None, None, None, None, None]), ('first round', {'round': 1, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('last round', {'round': 6, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('all approved', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, True, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('frozen reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': True, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('reserve below floor', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 4, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None])]
def vary(value):
if type(value) is int: return value*N
if isinstance(value,list): return [vary(v) for v in value]
if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'quantity', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
return value
for label, request, expected in fixtures:
check(label, solve(vary(request))['hidden-reserve-redaction'], expected[N-1])
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 |
|---|---|---|---|
| normal contract | None | None | Passed |
| seller floor binds | None | None | Passed |
| public reserve | None | 10 | Failed |
| seller floor binds / public reserve | None | 10 | Failed |
| amendment starts this round | None | None | Passed |
| first round | None | None | Passed |
| last round | None | None | Passed |
| all approved | None | None | Passed |
| frozen reserve | None | None | Passed |
| reserve below floor | None | None | Passed |
SHA-256 / 44135dcb20a908d3ebc82946f2abaf7b99954f4813073a4e14bf4366310295f5
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
v0 = max(((t,v) for t,v in zip(x["starts"],x["values"]) if t<=x["round"]),default=(0,None))[1]
v1 = max(((t,v) for t,v,a in zip(x["starts"],x["values"],x["approved"]) if t<=x["round"] and a),default=(0,None))[1]
v2 = x["current_reserve"] if x["disclosed"] else None
v3 = x["current_reserve"] if x["frozen"] else x["submitted_reserve"]
v4 = max(x["submitted_reserve"],x["floor"],x["seller_minimum"])
v5 = x["floor"]<=x["submitted_reserve"]<=x["ceiling"]
v6 = max(x["lot_minimum"],x["current_reserve"]*x["quantity"])
v7 = len(x["real_bids"])
v8 = x["current_reserve"] if x["withdrawn"] else x["submitted_reserve"]
v9 = x["submitted_reserve"] if x["round"]>=x["grant_round"] else x["current_reserve"]
return {'effective-reserve-step':v0,'approved-reserve-step':v1,'hidden-reserve-redaction':v2,'reserve-freeze':v3,'reserve-lower-bound':v4,'reserve-range-admission':v5,'whole-lot-reserve':v6,'reserve-not-a-bidder':v7,'withdrawn-reserve-amendment':v8,'grant-round-activation':v9}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [('normal contract', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('seller floor binds', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [10, 20, 30, 40, 50]), ('seller floor binds / public reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': True, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 15, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [10, 20, 30, 40, 50]), ('amendment starts this round', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 3}, [None, None, None, None, None]), ('first round', {'round': 1, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('last round', {'round': 6, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('all approved', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, True, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('frozen reserve', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': True, 'submitted_reserve': 8, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None]), ('reserve below floor', {'round': 3, 'starts': [1, 3, 5], 'values': [12, 9, 6], 'approved': [True, False, True], 'disclosed': False, 'frozen': False, 'submitted_reserve': 4, 'current_reserve': 10, 'floor': 7, 'seller_minimum': 5, 'ceiling': 20, 'quantity': 3, 'lot_minimum': 24, 'real_bids': [11, 8], 'reserve_as_bid': 10, 'withdrawn': False, 'grant_round': 4}, [None, None, None, None, None])]
def vary(value):
if type(value) is int: return value*N
if isinstance(value,list): return [vary(v) for v in value]
if isinstance(value,dict): return {k:(v if k in ['count', 'delivery_index', 'disputed', 'maximum_set', 'minimum_set', 'quantity', 'stage', 'threshold', 'waived'] else vary(v)) for k,v in value.items()}
return value
for label, request, expected in fixtures:
check(label, solve(vary(request))['hidden-reserve-redaction'], expected[N-1])
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 |
|---|---|---|---|
| normal contract | None | None | Passed |
| seller floor binds | None | None | Passed |
| public reserve | 10 | 10 | Passed |
| seller floor binds / public reserve | 10 | 10 | Passed |
| amendment starts this round | None | None | Passed |
| first round | None | None | Passed |
| last round | None | None | Passed |
| all approved | None | None | Passed |
| frozen reserve | None | None | Passed |
| reserve below floor | None | None | Passed |
SHA-256 / e343d08e8b7b2fafa0af9fbaaeeb643a59d2419e6accd1425bda81330d788fc7
Verification & scope
Stipulated toy auction rules, not a venue specification, financial advice, optimization claim, or live trading implementation. Nonnegative integer inputs and internally aligned list fields only. 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:46:19.454393+00:00.
Case digest / 208622219611590b1c9347e9bf858a90e8b3a6ff4834f3c78932c1485e3d9e34