1% Simple illustration of the use multiple-recall to guess
    2% 	constants
    3% To run do the following:
    4%	a. Load Aleph
    5%	b. read_all(ineq).
    6%	c. sat(1).
    7%	d. reduce.

?- sat(1),reduce(A). */

   11:- use_module(library(aleph)).   12:- if(current_predicate(use_rendering/1)).   13:- use_rendering(prolog).   14:- endif.   15:- aleph.   16
   17:- modeh(1,p(+number)).   18:- modeb(*,gteq(+number,#number)).
   19
   20:- determination(p/1,gteq/2).   21
   22:-begin_bg.   23% definition to use during normal evaluation
   24gteq(X,Value):-
   25	number(X), number(Value), !,
   26        X >= Value.
   27% definition to use during construction of bottom clause
   28gteq(X,Y):-
   29	number(X), var(Y), !,
   30	guess(X,Y).
   31
   32guess(X,Y):- 
   33	Y is X.
   34guess(X,Y):- 
   35	Y is 2*X.
   36guess(X,Y):- 
   37	Y is 3*X.
   38
   39:-end_bg.   40:-begin_in_pos.   41
   42p(3).
   43p(5).
   44p(8).
   45p(9).
   46p(10).
   47
   48:-end_in_pos.   49:-begin_in_neg.   50p(1).
   51p(2).
   52p(4).
   53p(6).
   54
   55:-end_in_neg.