sig
  val model_name : string
  type t_data = Model0.data0
  type t_exp = Model0.M.t_data Fol.d_term
  type t_pred = Model0.M.t_exp Fol.t_pred
  val eq_data : Model0.data0 -> Model0.data0 -> bool
  val mk_lvar : Cil_types.logic_var -> 'Fol.d_term
  val mk_cvar : Cil_types.varinfo -> 'Fol.d_term
  val mk_cvar_addr : Cil_types.varinfo -> Model0.data0 Fol.d_term
  val mk_lvar_addr : Cil_types.logic_var -> Model0.data0 Fol.d_term
  val mk_field_access :
    Model0.exp0 -> Cil_types.fieldinfo -> Model0.data0 Fol.d_term
  val mk_index_access :
    Model0.exp0 -> '-> Model0.exp0 -> Model0.data0 Fol.d_term
  val mk_field_shift :
    Model0.exp0 -> Cil_types.fieldinfo -> Model0.data0 Fol.d_term
  val mk_index_shift :
    Model0.exp0 -> '-> Model0.exp0 -> Model0.data0 Fol.d_term
  val mk_shift_pointer :
    Model0.exp0 -> '-> Model0.exp0 -> Model0.data0 Fol.d_term
  val mk_access_pointer : Model0.exp0 -> '-> Model0.exp0
  val mk_field_update :
    Model0.exp0 ->
    Cil_types.fieldinfo -> Model0.exp0 -> Model0.data0 Fol.d_term
  val mk_index_update :
    Model0.exp0 -> Model0.exp0 -> Model0.exp0 -> Model0.data0 Fol.d_term
  val expr_cast : '-> '-> 'c
  val prop_in_data :
    (Model0.exp0 -> Model0.exp0) -> Model0.data0 -> Model0.data0 Fol.d_term
  val visit_exp_in_data :
    ('-> Model0.exp0 -> 'a) -> '-> Model0.data0 -> 'a
  val fol : Model0.data0 Fol.d_pred -> Fol.data Fol.d_pred
  val mk_let :
    fresh:bool ->
    Fol.variable ->
    Model0.exp0 -> Model0.data0 Fol.d_pred -> Model0.data0 Fol.d_pred
  val add_decl_hyp : '-> '-> 'b
  val pp_data : Format.formatter -> Model0.data0 -> unit
end