package libzipperposition
Install
Dune Dependency
Authors
Maintainers
Sources
md5=97cdb2f90468e9e27c7bbe3b4fb160bb
sha512=fee73369f673a91dfa9e265fc69be08b32235e10a495f3af6477d404fcd01e3452a0d012b150f3d7f97c00af2f6045019ad039164bf698f70d771231cc4efe5d
doc/libzipperposition.phases/Libzipperposition_phases/Phases/index.html
Module Libzipperposition_phases.Phases
Source
Phases of the Prover
To process a file, the prover goes through a sequence of phases that are used to build values. This module reifies the phases.
Phases
type env_with_clauses =
| Env_clauses : 'c Libzipperposition.Env.packed * 'c Libzipperposition.Clause.sets -> env_with_clauses
type env_with_result =
| Env_result : 'c Libzipperposition.Env.packed * Libzipperposition.Saturate.szs_status -> env_with_result
type ('ret, 'before, 'after) phase =
| Init : (unit, _, [ `Init ]) phase
| Setup_gc : (unit, [ `Init ], [ `Init ]) phase
| Setup_signal : (unit, [ `Init ], [ `Init ]) phase
| Parse_CLI : (filename list * Libzipperposition.Params.t, [ `Init ], [ `Parse_cli ]) phase
| LoadExtensions : (Libzipperposition.Extensions.t list, [ `Parse_cli ], [ `LoadExtensions ]) phase
| Parse_prelude : (prelude, [ `LoadExtensions ], [ `Parse_prelude ]) phase
| Start_file : (filename, [ `Parse_prelude ], [ `Start_file ]) phase
| Parse_file : (Logtk.Input_format.t * Logtk.UntypedAST.statement Iter.t, [ `Start_file ], [ `Parse_file ]) phase
| Typing : (Logtk.TypeInference.typed_statement CCVector.ro_vector, [ `Parse_file ], [ `Typing ]) phase
| CNF : (Logtk.Statement.clause_t CCVector.ro_vector, [ `Typing ], [ `CNF ]) phase
| Compute_prec : (Logtk.Precedence.t, [ `CNF ], [ `Precedence ]) phase
| Compute_ord_select : (Logtk.Ordering.t * Libzipperposition.Selection.t, [ `Precedence ], [ `Compute_ord_select ]) phase
| MakeCtx : ((module Libzipperposition.Ctx.S), [ `Compute_ord_select ], [ `MakeCtx ]) phase
| MakeEnv : (env_with_clauses, [ `MakeCtx ], [ `MakeEnv ]) phase
| Pre_saturate : ('c Libzipperposition.Env.packed * Libzipperposition.Saturate.szs_status * 'c Libzipperposition.Clause.sets, [ `MakeEnv ], [ `Pre_saturate ]) phase
| Saturate : (env_with_result, [ `Pre_saturate ], [ `Saturate ]) phase
| Print_result : (unit, [ `Saturate ], [ `Print_result ]) phase
| Print_dot : (unit, [ `Print_result ], [ `Print_dot ]) phase
| Check_proof : (errcode, [ `Print_dot ], [ `Check_proof ]) phase
| Print_stats : (unit, [ `Check_proof ], [ `Print_stats ]) phase
| Exit : (unit, _, [ `Exit ]) phase
Main Type
Monad type, representing an action starting at phase 'p1
and stopping at phase 'p2
Start the given phase
Start phase, call f ()
to get the result, return its result using return_phase
val bind :
('a, 'p_before, 'p_middle) t ->
f:('a -> ('b, 'p_middle, 'p_after) t) ->
('b, 'p_before, 'p_after) t
bind state f
calls f
to go one step further from state
run_sequentiel l
runs each action of the list in succession, restarting every time with the initial state (once an action has finished, its state is discarded). Only the very last state is kept. If any errcode is non-zero, then the evaluation stops with this errcode
get_key k
returns the value associated with k
in the state
update ~f
changes the state using f
val run_with :
Logtk.Flex_state.t ->
('a, [ `Init ], [ `Exit ]) t ->
(Logtk.Flex_state.t * 'a) or_error
run_with state m
executes the actions in m
starting with state
, returning some value (or error) and the final state.
run m
is run_with empty_state m