Using The System


Goal Independent Stage

In the main system page you should enter a prolog file name to be analyzed. You can optionally change the following parameters :


Defining Other Symbolic Norms

This can be done by entering the specifications of the desired norm in the text box. Specifying a norm is done by using the predicate defsize/2 :
defsize(Pattern, Size).

Where :
If there is a pattern in the program which there is no norm specified then the term size norm will be applied. The symbolic norm of a variable is always the variable itself. For this reason, a variable in the pattern argument means : "For all other non-variable terms".

For example the list-length norm can be defined as follows :

[defsize([X|Xs],1+size(Xs)),
 defsize([],0),
 defsize(X,0)].

Goal Dependent Stage

In the goal dependent stage you should enter an initial abstract goal. The abstraction is done by replacing the concrete arguments of the predicate by the abstract terms 'b' and 'f' which stand for bound and free arguments according to the chosen symbolic norm. (For example, an argument position is bound w.r.t term size if it is ground. If using the list length norm, 'b' indicates that the argument is a closed list).
The abstract query should be terminated with a dot.

The results of analyzing the query are :