prove P and Q
prove P or Q
call P in module M
if P succeeds, prove Q; if not, prove R
if P succeeds, prove Q; if not, fail
cut any choices taken in the current procedure
\+ :P ISO
goal P is not provable
?X ^ :P
there exists an X such that P is provable (used in
block :P declaration
declaration that predicates specified by P should block until sufficiently instantiated
execute P or
Executes the procedure call Goal. When Goal succeeds determinately, is cut, fails, or raises an exception, Cleanup is executed.
Executes the procedure call Goal. Vars is unified with the list of new variables created during the call that remain unbound and have blocked goals or attributes attached to them.
+Iterators do :Body
executes Body iteratively according to Iterators
fail (start backtracking)
Blocks Goal until
for each solution of P that succeeds, prove Q; if none, prove R
Find the first solution, if any, of goal P.
same as true
succeed repeatedly on backtracking
block Goal until Cond holds