on termination

Andrew J Bromage ajb@spamcop.net
Fri, 9 May 2003 12:38:10 +1000


G'day all.

On Thu, May 08, 2003 at 08:15:11PM +1000, Peter Gammie wrote:

> Utility? Absolutely none. ;-)

Not true.  The Mercury group did this analysis for a reason, namely,
that the transformation:

	p :- q, r.

	becomes

	p :- r, q.

preserves static semantics in a declarative logic language, however
it does not preserve operational semantics unless r always terminates. 

I suppose this is somewhat analogous to strictness analysis or other
analyses designed to preserve full laziness in Haskell.

Cheers,
Andrew Bromage