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