% The syntactic kernel of Prolog
pred {goal :- goal}. % e.g., used in assert((head:-body))
pred {goal,goal}. % , = conjunction
pred {goal;goal}. % ; = disjunction
pred {goal->goal}. % -> = if-then
pred !.
pred \+ goal.
pred not(goal).
type list(T) --> [] ; [ T | list(T) ].
pred @T = @T.
pred @T == @T.
pred_neg @T1 \== @T2.
% control
pred abort.
pred false.
pred true.
pred fail.
pred succeed.
pred ensure_loaded(top).