module M: sig
.. end
val model_name : string
type
t_data = Model1.data1
The interal representation for M1 are Fol predicates
based on Fol expressions, based on data1 defined above.
type
t_exp = t_data Fol.d_term
type
t_pred = t_data Fol.d_pred
val eq_data : Model1.data1 -> Model1.data1 -> bool
val mk_lvar : Cil_types.logic_var -> 'a Fol.d_term
val mk_cvar : Cil_types.varinfo -> 'a Fol.d_term
val mk_lvar_addr : Cil_types.logic_var -> Model1.data1 Fol.d_term
val mk_cvar_addr : Cil_types.varinfo -> Model1.data1 Fol.d_term
val mk_field_access : Model1.exp1 -> Cil_types.fieldinfo -> Model1.data1 Fol.d_term
val mk_index_access : Model1.exp1 -> 'a -> Model1.exp1 -> Model1.data1 Fol.d_term
val mk_field_shift : Model1.exp1 -> Cil_types.fieldinfo -> Model1.data1 Fol.d_term
val mk_index_shift : Model1.exp1 -> 'a -> Model1.exp1 -> Model1.data1 Fol.d_term
val mk_shift_pointer : Model1.exp1 -> 'a -> Model1.exp1 -> Model1.data1 Fol.d_term
val access : Model1.exp1 -> Model1.exp1
val mk_access_pointer : Model1.exp1 -> 'a -> Model1.exp1
val mk_field_update : Model1.exp1 -> Cil_types.fieldinfo -> Model1.exp1 -> Model1.data1 Fol.d_term
val mk_index_update : Model1.exp1 -> Model1.exp1 -> Model1.exp1 -> Model1.data1 Fol.d_term
val mk_ptr_update : Model1.exp1 -> Model1.exp1 -> Model1.data1 Fol.d_term
val prop_in_data : (Model1.exp1 -> Model1.exp1) -> Model1.data1 -> Model1.exp1
propagate expression transformation do_exp
in the data d
val visit_exp_in_data : ('a -> Model1.exp1 -> 'a) -> 'a -> Model1.data1 -> 'a
val mk_let : fresh:bool ->
Fol.variable ->
Model1.data1 Fol.d_term -> Model1.data1 Fol.d_pred -> Model1.data1 Fol.d_pred
val expr_cast : 'a -> 'b -> 'c
val add_decl_hyp : Cil_types.logic_var ->
Model1.data1 Fol.d_term Fol.t_pred -> Model1.data1 Fol.d_term Fol.t_pred
val fol : Model1.data1 Fol.d_pred -> Fol.data Fol.d_pred
val pp_data : Format.formatter -> Model1.data1 -> unit