




Backward chaining rule bodies are defined as:
<body> ::= <clause>+
<clause> ::= (<goal> <-- <expression>*)
<goal> ::= (<rule-name> <term>*)
In each sub-clause of the rule, the goal must have the same arity (number of arguments). Within each 
<term>
 destructuring is allowed and variables are introduced by 
?
 (and 
?
 on its own denotes the anonymous variable which always matches). 
<expression>
 is as defined in Forward Chaining Syntax.