Module Runtime_mem.Create.V


module V: Datalib.Cvalues(Model)

module A: M.A
module R: M.R
module F: M.F
type loc = M.loc 
type m_cell 
type cell = F.abstract 
val loc_of_term : Ctypes.c_object -> M.F.abstract -> M.loc
val term_of_loc : M.loc -> M.F.abstract
val cast_int_to_loc : Ctypes.c_int -> M.F.integer -> Cil_types.typ -> M.loc
val cast_loc_to_int : Cil_types.typ -> M.loc -> Ctypes.c_int -> M.F.integer

type value =
| V_int of Ctypes.c_int * F.integer
| V_float of Ctypes.c_float * F.real
| V_pointer of Ctypes.c_object * M.loc
| V_record of Cil_types.compinfo * F.record
| V_union of Cil_types.compinfo * F.urecord
| V_array of Ctypes.arrayinfo * F.array
val logic_of_value : value -> F.abstract
val value_of_logic : Ctypes.c_object -> F.abstract -> value
val pp_loc : Format.formatter -> M.loc -> unit
val pp_value : Format.formatter -> value -> unit
val tau_of_loc : Formula.tau
val tau_of_object : Ctypes.c_object -> Formula.tau
val tau_of_object_array : Ctypes.c_object -> int -> Formula.tau
val tau_of_ctype_logic : Cil_types.typ -> Formula.tau
val pp_tau : Format.formatter -> Formula.tau -> unit
val tau_of_ctype : Cil_types.typ -> Formula.tau
val tau_of_logic_type : Cil_types.logic_type -> Formula.tau
val init_value_term_rec : (F.pool ->
F.abstract -> Ctypes.c_object -> F.pred)
Pervasives.ref
module InitObj: F.DRegister(sig
include F.Cobject
val declare : Ctypes.c_object -> 'a -> ('b, 'c, 'd) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Cobject.t -> unit
end)
module InitObjRange: F.DRegister(sig
include F.Cobject
val declare : Ctypes.c_object -> 'a -> ('b, 'c, 'd) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Cobject.t -> unit
end)
module InitObjRangeDef: F.DRegister(sig
include F.Cobject
val declare : Ctypes.c_object -> 'a -> ('b, 'c, Datalib.Cvalues.F.pred) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Cobject.t -> unit
end)
val init_value_term : 'a ->
Formula.m_abstract F.term ->
Ctypes.c_object -> F.pred
module InitObjDef: F.DRegister(sig
include F.Cobject
val declare : Datalib.Cvalues.InitObj.t ->
'a -> ('b, 'c, Datalib.Cvalues.F.pred) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Cobject.t -> unit
val prefix : string
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Cobject.t -> unit
end)
val init_value_term : 'a ->
Formula.m_abstract F.term ->
Ctypes.c_object -> F.pred
val symb_is_init : InitObjDef.t -> string option
val symb_is_init_range : InitObjRangeDef.t -> string option
val lt_loc : M.loc -> M.loc -> M.F.pred
val le_loc : M.loc -> M.loc -> M.F.pred
val minus_loc : M.loc -> M.loc -> M.F.integer
val equal_loc_bool : M.loc -> M.loc -> M.F.boolean
val lt_loc_bool : M.loc -> M.loc -> M.F.boolean
val le_loc_bool : M.loc -> M.loc -> M.F.boolean
val equal_loc : M.loc -> M.loc -> M.F.pred
val le_loc : M.loc -> M.loc -> M.F.pred
val lt_loc : M.loc -> M.loc -> M.F.pred
val null : M.loc
val is_null : M.loc -> M.F.boolean
module RecEqName: F.DRegister(sig
include F.Compinfo
val declare : Cil_types.compinfo -> 'a -> ('b, 'c, 'd) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Compinfo.t -> unit
end)
val equal_rec : (Ctypes.c_object ->
F.abstract ->
F.abstract -> F.pred)
Pervasives.ref
val eq_record_definition : Cil_types.compinfo -> string -> F.pred
2 struct or union objects are equal when all the fields are equal.
val eq_array_definition : Ctypes.arrayinfo -> string -> F.pred
module RecEqSym: F.DRegister(sig
include F.Compinfo
val declare : Datalib.Cvalues.RecEqName.t ->
'a -> ('b, 'c, Datalib.Cvalues.F.pred) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Compinfo.t -> unit
val pp_descr : Format.formatter -> 'a -> unit
end)
module RecEqTrans: F.DRegister(sig
include F.Compinfo
val declare : Datalib.Cvalues.RecEqName.t ->
'a -> ('b, 'c, Datalib.Cvalues.F.pred) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Compinfo.t -> unit
val pp_descr : Format.formatter -> 'a -> unit
end)
module RecEqDef: F.DRegister(sig
include F.Compinfo
val declare : Datalib.Cvalues.RecEqName.t ->
'a -> ('b, 'c, Datalib.Cvalues.F.pred) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Compinfo.t -> unit
val pp_descr : Format.formatter -> 'a -> unit
end)
module ArrEqName: F.DRegister(sig
include F.Arrayinfo
val declare : Ctypes.arrayinfo -> 'a -> ('b, 'c, 'd) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Arrayinfo.t -> unit
end)
module ArrEqDef: F.DRegister(sig
include F.Arrayinfo
val declare : Datalib.Cvalues.ArrEqName.t ->
'a -> ('b, 'c, Datalib.Cvalues.F.pred) Formula.item
val prefix : string
val section : Formula.section
val clear : unit -> unit
val pp_title : Format.formatter -> Datalib.Cvalues.F.Arrayinfo.t -> unit
val pp_descr : Format.formatter -> 'a -> unit
end)
val eq_record : RecEqDef.t ->
F.record ->
F.record -> F.pred
val eq_array : ArrEqDef.t ->
F.array -> F.array -> F.pred
val equal : Ctypes.c_object ->
Formula.m_abstract F.term ->
Formula.m_abstract F.term -> F.pred