Run Sicstus Prolog on the SGI using the following (convenient as a #bin/sh file...) exec /home/usr2/bin/sp -r /home/usr2/bin/spdump "$@" ------------------------------ If you prefer to use a more readable "not", include the following 2 lines in your program: ?- op(900,fy,not). not P :- \+ P. This 'not' works like '\+'. ------------------------------ Sicstus Prolog and MacProlog requires that you initially identify all predicates that you will assert or retract within your program using a "dynamic declaration. For example, if you are asserting and retracting "known(Fact)", then the top of your program should have the statement: ?- dynamic known/1. Sicstus will give errors if you don't do this initially. -------------------------------- SICstus prolog requires you to do a "ttyflush" call whenever you want to see your output on the screen. You don't need to do this if you print a new line character (nl), but you wil lneed to if you print a prompt and want to enter input after the prompt. The easiest solution is to write a write predicate that always flushes itself. For example, writeF(X) :- write(X), ttyflush, !. Then, use writeF on anything you print to the screen. -------------------------------- Don't use 'abolish' in the Merritt Native shell (or any other). It removes all information about predicates, including dynamic status. Instead of abolish, use 'retractall'.