1:- module(interval, [interval/2, interval/3, op(150, xfx, ...)]).    2
    3:- multifile int_hook/4.    4:- multifile eval_hook/2.    5:- multifile mono/2.    6:- multifile interval_/3.    7:- multifile instantiate/2.    8
    9:- set_prolog_flag(float_overflow, infinity).   10:- set_prolog_flag(float_undefined, nan).   11:- set_prolog_flag(float_zero_div, infinity).   12
   13:- nb_setval(digits, 2).   14
   15:- consult([lib/interface, lib/core, lib/op]).
This module adds interval arithemtic to Prolog. An interval is represented as L...U, where L stands for the lower bound and U for the upper bound. If the upper bound is a negative number, it has to be written with an additional space, e.g., -3... -2, or in the infix notation, ...(-3, -2). The interval/2 parses and evaluates the arithemtic expression with such intervals to a result.
 interval(+A, ?Res)
Evalutes an expression to an interval. If the first argument is already an interval, no evaluation is performed. Supported operations:
Arguments:
A- is the expression to be evaluted.
Res- is the result.