Package-level declarations
Types
ISO call/1: call(G) :- must_be_executable(G), G. -- checks it.unibo.tuprolog.solve.stdlib.primitive.EnsureExecutable before proving G as a fresh, opaque-to-cut goal (a cut inside G only cuts choice points created while proving G itself, since call/1 becomes its own frame on the execution-context stack).
ISO catch/3: catch(Goal, Catcher, Recovery) :- Goal. -- the body just proves Goal; the actual catch/recovery behaviour is not implemented here but in StateException, which climbs the execution-context stack looking for a currently-executing goal shaped like this one whose Catcher unifies with a raised exception, and if so proves Recovery instead.
ISO conjunction ','/2: (A, B) :- A, B., i.e. the body is the tuple (A, B) itself, which toGoals unfolds back into the sequential goal stream A then B. Included in StateRuleSelection's transparentToCut set, so a cut occurring in A or B still cuts the enclosing clause's choice points, not some choice point local to this rule.
ISO cut '!'/0. This RuleWrapper only registers the !/0 signature as a defined predicate (its default, unused, body is just true): StateRuleSelection recognises ! via its own isCut() check before it ever reaches ordinary rule resolution, and performs the actual pruning of the choice-point queue directly.
ISO negation-as-failure '\+'/1, encoded as the two clauses of the classic Prolog idiom \+ X :- must_be_executable(X), call(X), !, fail. \+ X :- true.: Fail tries X, and if it succeeds at all, cuts (via it.unibo.tuprolog.solve.stdlib.magic.MagicCut, since an ordinary ! here would only be transparent up to this clause, not back to the caller that invoked \+) and fails; Success is only ever reached, via backtracking into the second clause, when Fail's X had no solution at all. Both implementations are registered together (see it.unibo.tuprolog.solve.classic.stdlib.DefaultBuiltins) so that ordinary clause selection on \+/1 finds exactly these two clauses, in order.