functor (D : Mdata.S) ->
sig
module Hlib :
sig
val addr : D.name -> D.pointer
val shift_pointer :
D.pointer -> Formula.integer D.F.term -> D.pointer
val shift_field : D.pointer -> D.name -> D.pointer
val shift_ufield : D.pointer -> D.name -> D.pointer
val shift_index : D.pointer -> Formula.integer D.F.term -> D.pointer
val havoc_index : D.array -> Formula.integer D.F.term -> D.array
val havoc_field : D.record -> D.name -> D.record
val havoc_ufield : D.urecord -> D.name -> D.urecord
val base : D.pointer -> D.pointer
val block_length : D.pointer -> Formula.integer D.F.term
val valid_pointer : D.pointer -> D.F.pred
val valid_range : D.pointer -> D.set -> D.F.pred
val separated : D.pointer -> D.pointer -> D.F.pred
val array_length : D.pointer -> Formula.integer D.F.term
end
val get_array_length : Cil_types.typ -> Formula.integer D.F.term option
val mk_v_array_length : D.pointer -> Formula.integer D.F.term -> D.F.pred
module Globals :
sig
type t = Cil_types.varinfo
val define : t -> unit
val get_definition : t -> D.F.pred Formula.declaration
val on_definition :
(t -> D.F.pred Formula.declaration -> unit) -> unit
end
end