package lambdapi

  1. Overview
  2. Docs

Handling of commands.

val too_long : float Stdlib.ref

too_long indicates the duration after which a warning should be given to indicate commands that take too long to execute.

val sr_check : bool Stdlib.ref

sr_check indicates whether subject-reduction should be checked.

type compiler = Common.Path.t -> Core.Sign.t

Type alias for a function that compiles a Lambdapi module.

type proof_data = {
  1. pdata_sym_pos : Common.Pos.popt;
    (*

    Position of the declared symbol.

    *)
  2. pdata_state : Proof.proof_state;
    (*

    Proof state.

    *)
  3. pdata_proof : Parsing.Syntax.p_proof;
    (*

    Proof script.

    *)
  4. pdata_finalize : Core.Sig_state.sig_state -> Proof.proof_state -> Core.Sig_state.sig_state;
    (*

    Finalizer.

    *)
  5. pdata_end_pos : Common.Pos.popt;
    (*

    Position of the proof's terminator.

    *)
  6. pdata_prv : bool;
    (*

    true iff private symbols are allowed.

    *)
}

Representation of a yet unchecked proof. The structure is initialized when the proof mode is entered, and its finalizer is called when the proof mode is exited (i.e., when a terminator like “end” is used).

type cmd_output = Core.Sig_state.sig_state * proof_data option * Query.result

Representation of a command output.

get_proof_data compile ss cmd tries to handle the command cmd with ss as the signature state and compile as the main compilation function processing lambdapi modules (it is passed as argument to avoid cyclic dependencies). On success, an updated signature state is returned. When cmd leads to entering the proof mode, a proof_data is also returned. This structure contains the list of the tactics to be executed, as well as the initial state of the proof. The checking of the proof is then handled separately. Note that Fatal is raised in case of an error.

handle compile_mod ss cmd retrieves proof data from cmd (with get_proof_data) and handles proofs using functions from Tactic The function compile_mod is used to compile required modules recursively.

OCaml

Innovation. Community. Security.