Polynomial-time finite table operations #
Programs construct finite tables as ordinary functions and use ordinary application and update.
The certificates store the complete table using encPi and the existing list machinery.
The index type is fixed independently of the input; values need not be finite or inhabited.
The plain construction, access and update rules are proved in the internal primitives module and
re-exported here; the polytime tactic applies the computed-index rules. This module adds the
tidy forms of construction and fixed-index access that tidy proofs still use.
Main results #
Turing.MultiTapeTM.ComputableInPolyTime.ofFn,.pi: construct fixed finite families.Turing.MultiTapeTM.ComputableInPolyTime.pi_apply,.pi_update: fixed-index access.Turing.MultiTapeTM.ComputableInPolyTime.pi_apply',.pi_update': computed-index access.
References #
Adapts Computability/Probabilistic/Pi.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8 to plain polynomial time.
Construct a list of a fixed number of efficiently computed entries.
Construct a table by computing each entry, retaining the original input in each computation.
Read a fixed entry, charging for the stored prefix without requiring a default value.