Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Handling of commands.
too_long
indicates the duration after which a warning should be given to indicate commands that take too long to execute.
type compiler = Common.Path.t -> Core.Sign.t
Type alias for a function that compiles a Lambdapi module.
type proof_data = {
pdata_sym_pos : Common.Pos.popt;
Position of the declared symbol.
*)pdata_state : Proof.proof_state;
Proof state.
*)pdata_proof : Parsing.Syntax.p_proof;
Proof script.
*)pdata_finalize : Core.Sig_state.sig_state ->
Proof.proof_state ->
Core.Sig_state.sig_state;
Finalizer.
*)pdata_end_pos : Common.Pos.popt;
Position of the proof's terminator.
*)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.
val get_proof_data :
compiler ->
Core.Sig_state.sig_state ->
Parsing.Syntax.p_command ->
cmd_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.
val handle :
compiler ->
Core.Sig_state.sig_state ->
Parsing.Syntax.p_command ->
Core.Sig_state.sig_state
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.