Frama-C API - Multiplicative
include Frama_c_kernel.Datatype.S
include Frama_c_kernel.Datatype.S_no_copy
val datatype_descr : t Frama_c_kernel.Descr.tDatatype descriptor.
val packed_descr : Frama_c_kernel.Structural_descr.packPacked version of the descriptor.
val reprs : t listList of representants of the descriptor.
val hash : t -> intHash function: same spec than Hashtbl.hash.
val pretty : Stdlib.Format.formatter -> t -> unitPretty print each value in an user-friendly way.
val mem_project : (Frama_c_kernel.Project_skeleton.t -> bool) -> t -> boolmem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.
The field over which the abstraction is defined.
module Scalar = Scalartype scalar = Scalar.tThe monad used to encode context dependent computations.
module Computation = Computationtype 'a computation = 'a Computation.tConstants and constructors.
val zero : tval one : tThe call singleton r returns the abstract representation of the singleton subset containing r.
The call between l r returns the abstract representation of the subset containing all scalars between l and u included.
Lattice structure.
val top : tval narrow : t -> t -> t Frama_c_kernel.Lattice_bounds.or_bottomProjection into an interval.
The lower and upper functions are provided as convenience.
val bounds : t -> scalar Frama_c_kernel.Field.boundsArithmetic operations.
val neg : t computation -> t computationval sqrt : t computation -> t computationval (+) : t computation -> t computation -> t computationval (-) : t computation -> t computation -> t computationval (*) : t computation -> t computation -> t computationval (/) : t computation -> t computation -> t computationBackward reductions.
val backward_left_less_than : left:t -> right:t -> t Frama_c_kernel.Lattice_bounds.or_bottomThe call backward_left_less_than ~left ~right returns a reduced abstraction of left based on the assumption that left <= right. If the assumption is wrong because no concrete element of left can possibly be less than any concrete element of right, the function must return `Bottom.
val backward_left_greater_than : left:t -> right:t -> t Frama_c_kernel.Lattice_bounds.or_bottomThe call backward_left_greater_than ~left ~right returns a reduced abstraction of left based on the assumption that left >= right. If the assumption is wrong because no concrete element of left can possibly be greater than any concrete element of right, the function must return `Bottom.
