Module Model0


module Model0: sig .. end
Model0 is a memory model that only handle direct access to the data (it means no * neither in the statements, nor in the property)

val abort : string -> 'a

type data0 =
| E0addr of Cil_types.logic_var
| E0proj of exp0 * exp0 WpFol.epath
| E0depl of exp0 * exp0 WpFol.epath
| E0shift of exp0 * exp0
| E0mu of exp0 * exp0 WpFol.epath * exp0
type exp0 = data0 Fol.d_term 
val pp_epath : bool -> Format.formatter -> exp0 WpFol.epath -> unit
val pp_data0 : Format.formatter -> data0 -> unit
val pp_exp0 : Format.formatter -> exp0 -> unit
type t_pred = data0 Fol.d_pred 
module M: sig .. end
module MV: Mvar.MV(M)
module MT: MV.MT
val assign_exp : (Cil_types.exp -> M.t_exp option) ->
Cil_types.lhost * Cil_types.offset ->
M.t_exp option -> M.t_pred -> M.t_pred
val assign_old_exp : (Cil_types.exp -> M.t_exp option) ->
MV.MT.t_env ->
Cil_types.lhost * Cil_types.offset ->
M.t_exp option -> M.t_pred -> M.t_pred
this is used for parallele assign : we must be careful that the right side of the let depend only on the assigned variable
val why_prelude : string list