|  | 
| Pred is neither a variable nor a predicate indicator |  | type_error(predicate_indicator, Pred) | 
|  | 
| Pred is a term Name/Arity and Arity is
neither a variable nor an integer |  | type_error(integer, Arity) | 
|  | 
| Pred is a term Name/Arity and Name is
neither a variable nor an atom |  | type_error(atom, Name) | 
|  | 
| Pred is a term Name/Arity and Arity is
an integer < 0 |  | domain_error(not_less_than_zero, Arity) | 
|  | 
| Pred is a term Name/Arity and Arity is
an integer > max_arity flag (section 6.22.1) |  | representation_error(max_arity) | 
|  | 
|  | 
| Pred is neither a variable nor a predicate indicator |  | type_error(predicate_indicator, Pred) | 
|  | 
| Pred is a term Name/Arity and Arity is
neither a variable nor an integer |  | type_error(integer, Arity) | 
|  | 
| Pred is a term Name/Arity and Name is
neither a variable nor an atom |  | type_error(atom, Name) | 
|  | 
| Pred is a term Name/Arity and Arity is
an integer < 0 |  | domain_error(not_less_than_zero, Arity) | 
|  | 
| Pred is a term Name/Arity and Arity is
an integer > max_arity flag (section 6.22.1) |  | representation_error(max_arity) | 
|  | 
| Property is neither a variable nor a predicate property
term |  | domain_error(predicate_property, Property) | 
|  | 
| Property = prolog_file(File) and File
is neither a variable nor an atom |  | type_error(atom, File) | 
|  | 
| Property = prolog_line(Line) and Line
is neither a variable nor an integer |  | type_error(integer, Line) | 
|  |