Module type Dalton_sig.GROUND

module type GROUND = sig  end
The ground term algebra is specified by an implementation of the signature GROUND. It must defines datatypes for constant bounds, type constructors and row labels; and simultaneously operations on them. One may distinguish two categories of such operations: 1. Algebraic operations, which allows manipulating the mathematical properties of the provided objects, 2. Computational operations, which relate merely the internal representation of these objects and allow efficient algorithms (e.g. hashing, comparison, pretty-print...)

Constant bounds

The client must provide two sets of atomic constants, one for representing variables lower bounds and another one for upper bounds. These two sets must be equipped with a semi-lattice structure.

module Lb: sig  end
The module Lb specifies the set of constant lower bounds.
module Ub: sig  end
The module Ub specifies the set of constant upper bounds.
module Lub: sig  end
The module Lub provides functions relating lower and upper bounds.

Row labels

module Label: sig  end
The set of row labels is defined by the module Label.

Type constructors

module Type: sig  end
Type constructors are given by the module Type.