(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).

Query: minus(g,g,a)

(1) BuiltinConflictTransformerProof (EQUIVALENT 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).

Query: minus(g,g,a)

(3) PrologDeterminacyProcessorProof (EQUIVALENT transformation)

The root node satisfies the determinacy criterion.

(4) YES