#### 4.8.10 Summary of Predicates

`atom(`+T`)   `ISO
term T is an atom
`atomic(`+T`)   `ISO
term T is an atom or a number
`callable(`+T`)`
T is an atom or a compound term
`compound(`+T`)   `ISO
T is a compound term
`db_reference(`+X`)   `since release 4.1
X is a db_reference
`float(`+N`)   `ISO
N is a floating-point number
`ground(`+T`)`
term T is a nonvar, and all substructures are nonvar
`integer(`+T`)   `ISO
term T is an integer
`mutable(`+X`)`
X is a mutable term
`nonvar(`+T`)   `ISO
term T is one of atom, number, compound (that is, T is instantiated)
`number(`+N`)   `ISO
N is an integer or a float
`simple(`+T`)`
T is not a compound term; it is either atomic or a var
`var(`+T`)   `ISO
term T is a variable (that is, T is uninstantiated)

`compare(`-C`,`+X`,`+Y`)`
C is the result of comparing terms X and Y
+X` == `+Y`   `ISO
terms X and Y are strictly identical
+X` \== `+Y`   `ISO
terms X and Y are not strictly identical
+X` @< `+Y`   `ISO
term X precedes term Y in standard order for terms
+X` @>= `+Y`   `ISO
term X follows or is identical to term Y in standard order for terms
+X` @> `+Y`   `ISO
term X follows term Y in standard order for terms
+X` @=< `+Y`   `ISO
term X precedes or is identical to term Y in standard order for terms

?T` =.. `?L`   `ISO
the functor and arguments of term T comprise the list L
?X` = `?Y`   `ISO
terms X and Y are unified
+X` \= `+Y`   `ISO
terms X and Y no not unify
`?=(`+X`,`+Y`)`
X and Y are either strictly identical or don't unify
`acyclic_term(`+T`)   `since release 4.3, ISO
term T is a finite (acyclic) term
`arg(`+N`,`+T`,`-A`)   `ISO
the Nth argument of term T is A
`atom_chars(`?A`,`?L`)   `ISO
A is the atom containing the character atoms in list L
`atom_codes(`?A`,`?L`)   `ISO
A is the atom containing the characters in code-list L
`atom_concat(`?Atom1`,`?Atom2`,`?Atom12`)   `ISO
Atom Atom1 concatenated with Atom2 gives Atom12.
`atom_length(`+Atom`,`-Length`)   `ISO
Length is the number of characters of the atom Atom.
`char_code(`?Char`,`?Code`)   `ISO
Code is the character code of the one-char atom Char.
`copy_term(`+T`,`-C`)   `ISO
C is a copy of T in which all variables have been replaced by new variables
`copy_term(`+T`,`-C`,`-G`)`
C is a copy of T in which all variables have been replaced by new variables, and G is a goal for reinstating any attributes in C
`create_mutable(`+Datum`,`-Mutable`)`
Mutable is a new mutable term with current value Datum.
`dif(`+X`,`+Y`)`
X and Y are constrained to be different.
`frozen(`+Var`,`-Goal`)`
The goal Goal is blocked on the variable Var.
`functor(`?T`,`?F`,`?N`)   `ISO
the principal functor of term T has name F and arity N
`get_mutable(`-Datum`,`+Mutable`)`
The current value of the mutable term Mutable is Datum.
`name(`?A`,`?L`)`
the code-list of atom or number A is L
`number_chars(`?N`,`?L`)   `ISO
N is the numeric representation of list of character atoms L
`number_codes(`?N`,`?L`)   `ISO
N is the numeric representation of code-list L
`numbervars(`+T`,`+M`,`-N`)`
number the variables in term T from M to N-1
`sub_atom(`+Atom`,`?Before`,`?Length`,`?After`,`?SubAtom`)   `ISO
The characters of SubAtom form a sublist of the characters of Atom, such that the number of characters preceding SubAtom is Before, the number of characters after SubAtom is After, and the length of SubAtom is Length.
`subsumes_term(General,Specific)   `since release 4.3, ISO
Specific is an instance of General
`term_variables(`+Term`,`-Variables`)   `since release 4.3, ISO
Variables is the set of variables that occur in Term
`unify_with_occurs_check(`?X`,`?Y`)   `ISO
True if X and Y unify to a finite (acyclic) term.

?T` =.. `?L`   `ISO
the functor and arguments of term T comprise the list L
`append(`?A`,`?B`,`?C`)`
the list C is the concatenation of lists A and B
`keysort(`+L`,`-S`)`
the list L sorted by key yields S
`length(`?L`,`?N`)`
the length of list L is N
`member(`?X`,`?L`)`
X is a member of L
`memberchk(`+X`,`+L`)`
X is a member of L
`nonmember(`+X`,`+L`)`
X is not a member of L
`sort(`+L`,`-S`)`
sorting the list L into order yields S

Send feedback on this subject.