Dear All,
We
are happy to announce a new edition of the Dogelog Player:
- Enhanced Core:
We provide internally unify_cyclic() which implements
Hopcroft & Karp (1971) algorithm and can deal with cyclic terms.
It is accessible via the built-in predicate (=)/2 and also used
by the Prolog interpreter for solving clauses. Similar there
is an enhanced (==)/2 available to the end-user.
- Enhanced library(tools):
The debugger is now cyclic term aware and uses a term factoring
based on a new same_term/2 before printing a goal. The display is
simply a conjunction Equation_1, .., Equation_n, Goal, where the
equations are necessary to break cycles. As before Prolog variables
are still printed by their serial number.
- Enhanced library(session):
The answer display is now cyclic term aware and uses the same
term factoring as the debugger. Answer substitutions and
cycle breaking equations are interspersed. We tried hard to not
break old features, such as fresh singleton variable names, fresh
multiton variable names and marked variables suppression.
Have Fun!