Enforcement Oracle #
Oracle wrapper that enforces a query budget by silently dropping queries beyond
the budget. This implements EasyCrypt's Enforce/Bounder pattern.
Main Definitions #
enforceOracle: Oracle that tracks remaining budget viaStateTand returnsdefaultfor queries exceeding the budget.
Main Results #
enforceOracle.fst_map_run_simulateQ: Enforcement is transparent for computations within their query bound.
Enforcement oracle: wraps the original oracle with a per-index budget tracked via StateT.
When the remaining budget for the queried oracle is positive, the query is forwarded and
the budget decremented. When the budget is exhausted, default is returned silently.
Instances For
When the computation is within its query bound, enforcement is transparent: the output distribution is identical to running without enforcement.
For a computation that is structurally within budget, the budget check in the counting semantics is redundant on the support.
Penalty characterization under a structural query bound: the probability of an event together with staying within budget under counting equals the event probability under enforcement.
EasyCrypt-style penalty inequality, obtained here as an equality under the structural boundedness hypothesis.