Module Verification.SAInterpreter
module Call_stack : General.Call_stack.Stype vt = Symbolic.Values.tValue type
type st = Symbolic.Subst.tSubst type
type store_t = Engine.SStore.ttype state_t = statetype state_err_t = SPState.err_tval pp_state_err_t :
Ppx_deriving_runtime.Format.formatter ->
state_err_t ->
Ppx_deriving_runtime.unitval show_state_err_t : state_err_t -> Ppx_deriving_runtime.stringval state_vt_to_yojson : state_vt -> Yojson.Safe.tval state_vt_of_yojson :
Yojson.Safe.t ->
state_vt Ppx_deriving_yojson_runtime.error_orval pp_state_vt :
Ppx_deriving_runtime.Format.formatter ->
state_vt ->
Ppx_deriving_runtime.unitval show_state_vt : state_vt -> Ppx_deriving_runtime.stringtype heap_t = heap_ttype annot = annotCommand annotation; language-dependent
module Val : General.Val.S with type t = vttype invariant_frames = (string * state_t) listtype err_t = (vt, state_err_t) General.Exec_err.tval pp_err_t :
Ppx_deriving_runtime.Format.formatter ->
err_t ->
Ppx_deriving_runtime.unitval show_err_t : err_t -> Ppx_deriving_runtime.stringval err_t_to_yojson : err_t -> Yojson.Safe.tval err_t_of_yojson :
Yojson.Safe.t ->
err_t Ppx_deriving_yojson_runtime.error_ormodule CConf : sig ... endType of configurations: state, call stack, previous index, previous loop ids, current index, branching
type result_t = (state_t, state_vt, err_t) Engine.Exec_res.tThe result of execution
In the symbolic case, this is the result of one branch of execution
type conf_selector = | Path of Gil_syntax.Branch_case.path| IdCase of Logging.Report_id.t * Gil_syntax.Branch_case.t option
type 'result cont_func_f = ?selector:conf_selector -> unit -> 'result cont_funcTo support the step-by-step behaviour of the debugger, execution is split into thunks; each invocation executes one GIL command. By supplying a branch path, or an ID and branch case, a particular branch of execution can be selected.
and 'result cont_func = | Finished of 'result list| Continue of{report_id : Logging.Report_id.t option;branch_path : Gil_syntax.Branch_case.path;new_branch_cases : Gil_syntax.Branch_case.t list;cont_func : 'result cont_func_f;
}| EndOfBranch of 'result * 'result cont_func_f
module Logging : sig ... endTypes and functions for logging to the database
val call_graph : Utils.Call_graph.tval evaluate_lcmds :
annot Engine.MP.prog ->
Gil_syntax.LCmd.t list ->
?annot:annot option ->
state_t ->
(state_t, state_err_t) Engine.Res_list.tEvaluates a list of logical commands, in the context of a given state
val init_evaluate_proc :
(result_t -> 'a) ->
annot Engine.MP.prog ->
string ->
string list ->
state_t ->
'a cont_funcBegins execution of a proc, given parameters and initial state
val evaluate_proc :
(result_t -> 'a) ->
annot Engine.MP.prog ->
string ->
string list ->
state_t ->
'a listAs with init_evaluate_proc, but immediately executes the proc to completion