EVAL_TACbossLib.EVAL_TAC : tactic
Evaluate a goal deductively.
Applying EVAL_TAC to a goal A ?- g results
in EVAL being applied to g to obtain
|- g = g'. This theorem is used to transform the goal to
A ?- g'.
The notion of evaluation is based around rules for replacing
constants by their (equational) definitions. Thus EVAL_TAC
is currently suited to evaluation of expressions that look like
functional programs. Evaluation of inductive relations is not currently
supported.
Shouldn’t fail, but may diverge.
EVAL_TAC reduces the goal
?- P (REVERSE (FLAT [[x; y]; [a; b; c; d]])) to the
goal
?- P [d; c; b; a; y; x]
The main problem with EVAL_TAC is knowing when it will
terminate. One typical cause of non-termination is that a constant in
the goal has not been added to the_compset. Another is that
a test in a conditional in the expression may involve a variable.
Symbolic evaluation.