Module ACSL


module ACSL: sig .. end
Logic Declarations for ACSL

module type Compiler = sig .. end
module Register: 
functor (K : Datatype.Hashtbl) ->
functor (C : Compiler with type key = K.key) -> sig .. end
val dtau_ctype : (Cil_types.typ -> LogicTau.tau) Pervasives.ref
val dhas_ctype : (Cil_types.typ -> LogicLang.term -> LogicLang.pred) Pervasives.ref
val deq_ctype : (Cil_types.typ -> LogicLang.term -> LogicLang.term -> LogicLang.pred)
Pervasives.ref
module Tarray: Datatype.Make_with_collections(sig
include Datatype.Undefined
type t = Cil_types.typ * int option list 
val name : string
val reprs : (Cil_types.typ * 'a list) list
val pp_hash_dim : int -> int option -> int
val hash : Cil_datatype.Typ.t * int option list -> int
val equal : Cil_datatype.Typ.t * 'a -> Cil_datatype.Typ.t * 'a -> bool
val compare : 'a -> 'b -> int
val pp_dim : Format.formatter -> int option -> unit
val pretty : Format.formatter -> Cil_datatype.Typ.t * int option list -> unit
end)
val tarray_dim : Ctypes.arrayflat option -> int option
val tarray_of_typ : Cil_types.typ -> int option list -> Cil_types.typ * int option list
val tarray_of_arrayinfo : Ctypes.arrayinfo -> int option list -> Cil_types.typ * int option list
val tau_of_tarray : LogicTau.tau -> 'a list -> LogicTau.tau
val tarray_elt : Format.formatter -> Cil_types.typ -> unit
val tarray_name : Cil_types.typ -> int option list -> string
val in_range : LogicLang.var -> int option -> LogicLang.pred -> LogicLang.pred
module Darray: Datatype.Make_with_collections(sig
include Datatype.Undefined
type t = Cil_types.typ * int 
val name : string
val reprs : (Cil_types.typ * int) list
val hash : Cil_datatype.Typ.t * int -> int
val equal : Cil_datatype.Typ.t * 'a -> Cil_datatype.Typ.t * 'a -> bool
val compare : 'a -> 'b -> int
val pretty : Format.formatter -> Cil_datatype.Typ.t * int -> unit
end)
val tau_of_darray : LogicTau.tau -> int -> LogicTau.tau
val darray_name : Cil_types.typ -> int -> string
val darray_of_arrayinfo : Ctypes.arrayinfo -> int -> Cil_types.typ * int
module Fmap: Cil_datatype.Fieldinfo.Map
module Record: Register(Cil_datatype.Compinfo.Hashtbl)(sig
type key = Cil_types.compinfo 
type data = LogicId.id * LogicTau.field ACSL.Fmap.t 
val name : string
val reprs : (LogicId.id * 'a ACSL.Fmap.t) list
val compile : Cil_types.compinfo -> LogicId.id * LogicTau.field ACSL.Fmap.t
end)
val record_of : Record.H.key -> LogicId.id
val field_of : Fmap.key -> LogicTau.field
module ADT: Register(Cil_datatype.Logic_type_info.Hashtbl)(sig
type key = Cil_types.logic_type_info 
type data = LogicId.id 
val name : string
val reprs : LogicId.id list
val compile : Cil_types.logic_type_info -> LogicId.id
end)
val tau_of_ctype : Cil_types.typ -> LogicTau.tau
val tau_of_object : Ctypes.c_object -> LogicTau.tau
val tau_of_logic_type : Cil_types.logic_type -> LogicTau.tau
val lib_is_int : (Ctypes.c_int * LogicId.id) list
val lib_to_int : (Ctypes.c_int * LogicId.id) list
val is_int : Ctypes.c_int -> LogicId.id
val to_int : Ctypes.c_int -> LogicId.id
module IsComp: Register(Cil_datatype.Compinfo.Hashtbl)(sig
type key = Cil_types.compinfo 
type data = LogicId.id 
val name : string
val reprs : LogicId.id list
val compile : ACSL.Record.H.key -> LogicId.id
end)
val is_darray : LogicLang.pool -> Cil_types.typ -> int -> LogicLang.term -> LogicLang.pred
module IsArray: Register(Darray.Hashtbl)(sig
type key = ACSL.Darray.t 
type data = LogicId.id 
val name : string
val reprs : LogicId.id list
val compile : Cil_types.typ * int -> LogicId.id
end)
val has_ctype : Cil_types.typ -> LogicLang.term -> LogicLang.pred
val has_object : Ctypes.c_object -> LogicLang.term -> LogicLang.pred
module EqComp: Register(Cil_datatype.Compinfo.Hashtbl)(sig
type key = Cil_types.compinfo 
type data = LogicId.id 
val reprs : LogicId.id list
val name : string
val compile : ACSL.Record.H.key -> LogicId.id
end)
val eq_tarray : LogicLang.pool ->
Cil_types.typ ->
int option list -> LogicLang.term -> LogicLang.term -> LogicLang.pred
module EqArray: Register(Tarray.Hashtbl)(sig
type key = ACSL.Tarray.t 
type data = LogicId.id 
val reprs : LogicId.id list
val name : string
val compile : Cil_types.typ * int option list -> LogicId.id
end)
val eq_ctype : Cil_types.typ -> LogicLang.term -> LogicLang.term -> LogicLang.pred
val eq_object : Ctypes.c_object -> LogicLang.term -> LogicLang.term -> LogicLang.pred
val eq_logic_type : Cil_types.logic_type -> LogicLang.term -> LogicLang.term -> LogicLang.pred