Module Expr1.O


module O: sig .. end


Expressions


type ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t, 'b) t = (('a, [> 'a Env.typ ] as 'd, [> 'a Env.typdef ] as 'e, 'b, 'c) Env.O.t,
'b Expr0.t)
Env.value
type ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t, 'b) expr = ('a, ('a, [> 'a Env.typ ] as 'd, [> 'a Env.typdef ] as 'e, 'b, 'c) Env.O.t,
'b)
t
Type of general expressions
type ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], Cudd.Man.d, 'b) Env.O.t) dt = ('a,
('a, [> 'a Env.typ ] as 'c, [> 'a Env.typdef ] as 'd, Cudd.Man.d, 'b)
Env.O.t, Cudd.Man.d)
t
type ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], Cudd.Man.v, 'b) Env.O.t) vt = ('a,
('a, [> 'a Env.typ ] as 'c, [> 'a Env.typdef ] as 'd, Cudd.Man.v, 'b)
Env.O.t, Cudd.Man.v)
t

Boolean expressions


module Bool: sig .. end

Bounded integer expressions


module Bint: sig .. end

Enumerated expressions


module Benum: sig .. end

General expressions


val typ_of_expr : ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t, 'b) t ->
'a Env.typ
Type of an expression
val make : ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t ->
'd Expr0.t -> ('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) expr
val of_expr0 : ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t ->
'd Expr0.t -> ('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) expr
Creation from an expression without environment
val get_env : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t -> ('a, 'b, 'c, 'd, 'e) Env.O.t
val to_expr0 : ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t, 'b) t ->
'b Expr0.t
val extend_environment : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t ->
('a, 'b, 'c, 'd, 'e) Env.O.t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
val var : ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t ->
'a -> ('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
Expression representing the litteral var
val ite : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
Bool.t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
If-then-else operation
val eq : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) Bool.t
Equality operation
val substitute_by_var : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t ->
('a * 'a) list -> ('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
Variable renaming. The new variables should already have been declared
val substitute : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t ->
('a * ('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t) list ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
Parallel substitution of variables by expressions
val support : ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t, 'b) t ->
'a PSette.t
Support of the expression
val support_cond : ('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t, 'b) t ->
'b Cudd.Bdd.t
Return the support of an expression as a conjunction of the BDD identifiers involved in the expression
val cofactor : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) Bool.t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
Evaluate the expression. The BDD is assumed to be a cube
val restrict : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) Bool.t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
val tdrestrict : ('a, ('a, [> 'a Env.typ ] as 'b, [> 'a Env.typdef ] as 'c, 'd, 'e) Env.O.t,
'd)
t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) Bool.t ->
('a, ('a, 'b, 'c, 'd, 'e) Env.O.t, 'd) t
Simplify the expression knowing that the BDD is true. Generalizes cofactor.
val print : Format.formatter ->
('a, ('a, [> 'a Env.typ ], [> 'a Env.typdef ], 'b, 'c) Env.O.t, 'b) t ->
unit

List of expressions


module List: sig .. end