module V:Datalib.Cvalues
(
Model
)
module A: M.A
module R: M.R
module F: M.F
typeloc =
M.loc
type
m_cell
typecell =
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 |
| |
V_float of |
| |
V_pointer of |
| |
V_record of |
| |
V_union of |
| |
V_array of |
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.itemval 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
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.itemval 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.itemval 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.itemval 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.itemval 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