Library for constraint programming with arithmetic constraints over reals.
Author: Michael Hanus
Version: July 2023
| minimumFor
                  ::  (a -> Bool) -> (a -> CFloat) -> aComputes the minimum with respect to a given constraint. | 
| minimize
                  :: Data a => (a -> Bool) -> (a -> CFloat) -> a -> BoolMinimization constraint. | 
| maximumFor
                  ::  (a -> Bool) -> (a -> CFloat) -> aComputes the maximum with respect to a given constraint. | 
| maximize
                  :: Data a => (a -> Bool) -> (a -> CFloat) -> a -> BoolMaximization constraint. | 
Abstract type to represent floats used in constraints.
Constructors:
| 
                       Computes the minimum with respect to a given constraint. (minimumFor g f) evaluates to x if (g x) is satisfied and (f x) is minimal. The evaluation fails if such a minimal value does not exist. The evaluation suspends if it contains unbound non-local variables. | 
| 
                       Minimization constraint. (minimize g f x) is satisfied if (g x) is satisfied and (f x) is minimal. The evaluation suspends if it contains unbound non-local variables. | 
| 
                       Computes the maximum with respect to a given constraint. (maximumFor g f) evaluates to x if (g x) is satisfied and (f x) is maximal. The evaluation fails if such a maximal value does not exist. The evaluation suspends if it contains unbound non-local variables. |