Libabsolute.DomainsThis module handle the domain environment, already equipped with some basic domains. You can add your own using the register_* functions, and combine them with the already defined ones.
module type B = sig ... endType of generic functors that lift a numeric domain to a boolean one
module type D1 = sig ... endType of domain combinator of arity 1 (e.g powerset)
module type D2 = sig ... endType of domain combinator of arity 2 (e.g products)
val register_numeric : string -> (module Signature.Numeric) -> unitregisters a numeric domain into the list of available abstract domains
val register_boolean : string -> (module B) -> unitregisters a boolean domain into the list of available abstract domains
val register_1 : string -> (module D1) -> unitregisters a domain combinator into the list of combinators of arity 1
val register_2 : string -> (module D2) -> unitregisters a domain combinator into the list of combinators of arity 2
val parse : string -> string -> (module Signature.Domain)builds the abstract domain corresponding to the name of the numeric representaion and boolean representation given in parameter. Domain application follows the syntax : "combinator(domain1,domain2)" where combinator has to be registered with the register_2 function (or be one of the predefined comibnator), and both domain1 and domain2 has to be registered. Useful to build a domain from a command line description
module BoxF : Signature.NumericBoxes with floatting point included bounds
module BoxS : Signature.NumericBoxes with floatting point included or excluded bounds
module ApronBox : Signature.NumericApron Boxes
module Poly : Signature.NumericApron Polyhedra
module Oct : Signature.NumericApron Octagons