(0) Obligation:

Clauses:

minus(X, Y, Z) :- ','(f(X, 0), ','(!, =(Z, 0))).
f(X, Y) :- ','(!, =(X, Y)).
f(X, Y) :- f(X, Y).
=(X, X).

Queries:

minus(g,g,a).

(1) BuiltinConflictTransformerProof (SOUND transformation)

Renamed defined predicates conflicting with built-in predicates [PROLOG].

(2) Obligation:

Clauses:

minus(X, Y, Z) :- ','(f(X, 0), ','(!, user_defined_=(Z, 0))).
f(X, Y) :- ','(!, user_defined_=(X, Y)).
f(X, Y) :- f(X, Y).
user_defined_=(X, X).

Queries:

minus(g,g,a).

(3) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(4) Obligation:

Triples:


Clauses:


Afs:

(5) TPisEmptyProof (EQUIVALENT transformation)

There are no more dependency triples. Hence, the dependency triple problem trivially terminates.

(6) YES