Make.NF
Module signature for normal form computations.
module Atom : Domains_intf.ComparableType
Atomic variables cannot be decomposed further.
module Composite : Domains_intf.ComparableType
Composite variables are obtained through a combination of atomic variables (e.g. a multi-variate polynomial).
val fold_composite : (Atom.t -> 'a -> 'a) -> Composite.t -> 'a -> 'a
fold_composite f c acc
folds f
over all the atoms that make up c
.
type t =
| Constant of constant
A constant value.
*)| Atom of Atom.t * constant
An atomic variable with a constant offset.
*)| Composite of Composite.t * constant
A composite variable with a constant offset.
*)The type of normal forms.
val normal_form : AltErgoLib.Domains_intf.X.r -> t
normal_form e
computes the normal form of expression e
.