module Enumerative:sig
..end
Enumerative forward search
val search : Variable.t list -> Ast.t_system -> unit
search procs init
performs enumerative forward search. States are
stored in an internal hash-table.
val resume_search_from : Variable.t list -> Ast.t_system -> unit
val replay_trace_and_expand : Variable.t list -> Ast.t_system -> Node.t -> unit
val smallest_to_resist_on_trace : Node.t list -> Node.t list
Given a list of candidate approximations (and their permutations),
checks if one is satisfiable on the finite model constructed by
search
.
type
env
The type of environments for enumerative explorations
typestate = private
int array
The type of states, we allow states to be constructed from the outside by
calling the function new_undef_state
.
val print_state : env -> Format.formatter -> state -> unit
Printing a state. It is decoded to an SAtom
in a very inefficient
manner. This function should only be used for debugging.
val empty_env : env
A dummy empty environment.
val mk_env : int -> Ast.t_system -> env
mk_env nb sys
creates an environment for the enumerative exploration of
the transition system sys
with a fixed number nb
of processes.
val int_of_term : env -> Types.term -> int
Encoding of a term in the enumerative environment.
val next_id : env -> int
Returns the next free integer that is not used for encoding terms.
val new_undef_state : env -> state
Returns a new uninitialized state from an enumertive environment
val empty_state : state
A dummy empty state.
val register_state : env -> state -> unit
Register the given state as an explored state in the environment.
val size_of_env : env -> int
Returns the (heuristically) computed size of tables needed for the exploration.
val no_scan_states : env -> unit
Prevent the GC from scanning the list of states stored in the environemnt as it is going to be kept in memory all the time. Call this function once the exploration is finished.
val print_last : env -> unit
see Oracle.S
include Oracle.S