Documentation

Complexity.Tactic.WordRAM

Reusing RAM controller certificates #

Named Refines, ComputableInPolyTime and UniformComputableInPolyTime proofs can be registered with program_certificate. The stateful and polytime tactics respectively retrieve them through the existing certificate index. Predicate and program heads are separate keys: a RAM certificate cannot discharge a Turing-machine polynomial-time goal. Local certificates remain ordinary hypotheses.

Use Refines.bind, branch, prepend, and call explicitly to choose intermediate assertions, representations and charged preparation code; automation then reuses the named subroutine proofs. No rule evaluates arbitrary host-language continuations for free or guesses an implementation.

Main definitions #

Close a named controller certificate from local hypotheses before case splitting changes its budget. Only complete proofs commit here; certificates with remaining obligations are alternatives in ramControllerAlternative.

Instances For

    Keep incomplete named controller proofs as alternatives with explicit proof obligations.

    Instances For

      Reuse a named function certificate with the RAM predicate, without changing machine models.

      Instances For

        Reuse a named uniform function certificate under its own predicate key.

        Instances For