Module Domains_constraints_constraint_propagation.Make

Parameters

module Constraints : Constraints.Constraints_sig.Constraints with type Condition.t = Cudd.Man.d Cudd.Bdd.t

Signature

include Constraint_domains_sig.Domain_S with module Constraints = Constraints and module Query.Boolean_Lattice = B.Boolean_Lattice and module Query.Integer_Lattice = B.Integer_Lattice and module Query.Binary_Lattice = B.Binary_Lattice
module Constraints = Constraints
val name : string
type t
val equal : t -> t -> bool
val top : t
module Query : sig ... end
val integer_empty : t -> integer -> t
val boolean_empty : t -> boolean -> t
val binary_empty : size:int -> t -> binary -> t
val integer_unknown : t -> integer -> t
val boolean_unknown : t -> boolean -> t
val binary_unknown : size:int -> t -> binary -> t
val assume : t -> boolean -> t option
module Domain_Arity : sig ... end
val boolean_pretty : t -> Stdlib.Format.formatter -> boolean -> unit
val integer_pretty : t -> Stdlib.Format.formatter -> integer -> unit
val binary_pretty : size:int -> t -> Stdlib.Format.formatter -> binary -> unit
val pretty : Stdlib.Format.formatter -> t -> unit
val fixpoint_open : unit -> unit
val fixpoint_step : lvl:int -> t -> actuals:Constraints.any Immutable_array.t -> t -> args:Constraints.any Immutable_array.t -> t -> finals:Constraints.any Immutable_array.t -> bool * (close:bool -> Constraints.any Immutable_array.t -> t)