The requests of a deterministic run #
Answering every call q of an oracle program by answer q runs it deterministically:
OracleComp.interpret (m := Id) answer program. OracleComp.queriesWith answer program lists the
requests made along that run, in order. Only their answers matter
(OracleComp.interpret_id_congr): this locality underlies oracle constructions and adversary
arguments, which fix the answers to the requests a program makes and leave every other answer
free.
A program with a query budget of n makes at most n requests along every run
(OracleComp.IsQueryBounded.length_queriesWith_le), and the result of a run whose answers are all
possible is a possible result (OracleComp.interpret_id_mem_supportWith).
Main definitions #
Cslib.OracleComp.queriesWith: the requests a deterministic run makes.
Main results #
Cslib.OracleComp.interpret_id_congr: answers to requests that are not made do not matter.Cslib.OracleComp.IsQueryBounded.length_queriesWith_le: a run makes at most the budgeted number of requests.Cslib.OracleComp.interpret_id_mem_supportWith: a run along possible answers has a possible result.
The requests made by program, in order, when every call q is answered by answer q.
Instances For
Answering the first call and continuing.
A sequence makes the requests of its first part, then those of the continuation selected by the first result.
Postprocessing the result makes no request.
Locality. Answer functions that agree on the requests made under one of them give the same result and the same requests.
A program with a query budget of n makes at most n requests along every run.
A run whose every answer is possible has a possible result.