Simple Syntax

At the very beginning of terms we have the unstructured variables and atomic elements. The variables have already been defined as a kind of words. Atomic elements are now atoms, numbers, negative numbers and references. The names, the empty sets and the empty lists are now found among the atoms. Among the structured terms we will have compounds, lists and expressions:

term(N)    --> variable 
| atomic
| compound
| list
| expression(M) { M<=N }.

atomic --> atom
| number
| "-" number
| reference.

atom  --> name
| "{" "}"
| "[" "]".


X              % is a variable and thus a term
foobar         % is a name and thus a term
3.1415         % is a number and thus a term
-3 % is a negative number and thus a term
- 3 % is an expression, corresponds to -(3)

The grammatical production rules for terms can be viewed as stratified into levels. This is used later for parsing operator expressions. The levels range from 0 to 1200. Reading a term usually starts with level 1200. To disambiguate from operator expressions a negative number is only recognized when the minus ("-") directly precedes the first digit of the number.