Module type Fix.SOLVER

type variable
type property
type valuation = variable -> property

A valuation is a mapping of variables to properties.

type rhs = valuation -> property

A right-hand side, when supplied with a valuation that gives meaning to its free variables, evaluates to a property. More precisely, a right-hand side is a monotone function of valuations to properties.

type equations = variable -> rhs

A system of equations is a mapping of variables to right-hand sides.

val lfp : equations -> valuation

When lfp is applied to a system of equations eqs, it performs no actual computation. It produces a valuation, get, which represents the least solution of the system of equations. The actual fixed point computation takes place, on demand, when get is applied.