Module ArithDD


module ArithDD: sig .. end
Operations

module Add: Mtbdd.S  with type leaf = Arith.expr
type t = (Arith.expr, Add.t) CondDD.ddexpr 
val of_expr : [> `Arith of t ] -> t
val to_expr : t -> [> `Arith of t ]
val to_add : #CondDD.db -> t -> Add.t
Operations
val var : #CondDD.db -> Var.t -> t
val cst : Mpqf.t -> t
val add : #CondDD.db -> t -> t -> t
val mul : #CondDD.db -> t -> t -> t
val sub : #CondDD.db -> t -> t -> t
val div : #CondDD.db -> t -> t -> t
val gmod : #CondDD.db -> t -> t -> t
val other : #CondDD.db -> Var.t -> t list -> t
val negate : #CondDD.db -> t -> t
val ite : #CondDD.db -> Bdd.t -> t -> t -> t
val condition : #CondDD.db -> Arith.Condition.typ -> t -> Bdd.t
Tests
val supeq : #CondDD.db -> t -> Bdd.t
val sup : #CondDD.db -> t -> Bdd.t
val eq : #CondDD.db -> t -> Bdd.t
val cofactor : t -> Bdd.t -> t
val tdrestrict : t -> Bdd.t -> t
val support_cond : #CondDD.db -> t -> Bdd.t
val support_leaf : #CondDD.db -> t -> Var.Set.t
val substitute_expr : #CondDD.db -> Arith.expr -> [> `Arith of t ] Var.Map.t -> t
val substitute_cond : #CondDD.db ->
Arith.Condition.t -> [> `Arith of t ] Var.Map.t -> Bdd.t
val print : #CondDD.db -> Format.formatter -> t -> unit