Module Model
module MIL : Stdlib.Map.S with type MIL.key = int list
type value
=
|
Term of Term.t
|
Lambda of Term.lambda
|
Map of Term.t MIL.t
Term or lambda expression
type t
= value Var.VarHashtbl.t
A model is a list of variables and assignemnts
type path
= value list StateVar.StateVarHashtbl.t
A path is a map of state variables to assignments
val path_offset : Numeral.t
Offset of the variables at each step of a path.
val pp_print_value : ?as_type:Type.t -> Stdlib.Format.formatter -> value -> unit
Pretty-print a value
val pp_print_value_xml : ?as_type:Type.t -> Stdlib.Format.formatter -> value -> unit
Pretty-print a value in xml format
val pp_print_value_json : ?as_type:Type.t -> Stdlib.Format.formatter -> value -> unit
Pretty-print a value in json format
val pp_print_model : Stdlib.Format.formatter -> t -> unit
Pretty-print a model
val pp_print_path : Stdlib.Format.formatter -> path -> unit
Pretty-print a path
val create : int -> t
Create a model of the given size
val create_path : int -> path
Create a path of the given size
val path_to_list : path -> (StateVar.t * value list) list
Return an association list with the assignments in the model
val path_of_list : (StateVar.t * value list) list -> path
Create a model of an association list
val path_of_term_list : (StateVar.t * Term.t list) list -> path
Create a model of an association list
val path_from_model : StateVar.t list -> t -> Numeral.t -> path
Convert a model to a path
path_from_model s m k
extracts from the modelm
a path of values for each of the state variables ins
from the offset zero up tok
. The lists of values for each state variable are of equal length. Values that are not defined in the model are filled withTermLib.default_of_type
.
val path_length : path -> int
Return the length of the value paths
All value paths are of equal lengths.
val model_at_k_of_path : path -> Numeral.t -> t
Extract values at instant
k
from the path and return a model
val exists_on_path : (t -> bool) -> path -> bool
Return true if the predicate
p
applies at one step of the path
val for_all_on_path : (t -> bool) -> path -> bool
Return true if the predicate
p
applies at each step of the path
val merge : t -> t -> t
Combine assignments of two models into one. If a variable has an assignment in both models, it gets the assignment in the second model.