/* numeri2.pro */
/* cerca se primo numero divisore di secondo */
/* prova con GOAL */
/* divide(5,20)...TRUE */
/* divide(5,8)....FALSE*/
/* intero(7)......TRUE */
/* intero(4.7)....FALSE */


domains
 numero = real
predicates
 intero(numero)
 divide(numero,numero)
clauses
 intero(0).
 intero(X) if
   X>0,
   Y=X-1,
   intero(Y).
 divide(A,B) if
   Z=B/A,
   intero(Z).


/* confronta numeri reali */
/* numeri.pro */
/* prova a porre a GOAL obbiettivo */
/* minore(X,Y)...maggiore(X,Y)..uguale(X,Y) */
/* minore(5,3)..*/

domains
 numero = real
predicates
 minore(numero,numero)
 maggiore(numero,numero)
 uguale(numero,numero)
clauses
 minore(4,6).
 maggiore(8,2).
 uguale(5,5).
   
ritorna