Determinacy
of the query pattern
e(g)
w.r.t. the given
Prolog program
could successfully be
proven
:
0 Prolog
↳
1 PrologDeterminacyProcessorProof (⇔, 0 ms)
↳
2 YES
(0)
Obligation:
Clauses:
e
(
X
) :-
','
(
=
(
Y
,
.
(e,
.
(o,
Y
))),
c
(
Y
,
X
)).
c
(
.
(e,
X1
), 0).
c
(
.
(
X2
,
X
), s(
Y
)) :-
c
(
X
,
Y
).
Query: e(g)
(1) PrologDeterminacyProcessorProof (EQUIVALENT transformation)
The root node satisfies the determinacy criterion.
digraph dp_graph { node [outthreshold=100, inthreshold=100]; 1 [label="1: e(T1)\n\nT1 is ground", fontsize=16, style=filled, fillcolor=lightyellow, color=red]; 2 [label="2: e(T1), SCOPE: 1, CLAUSE: 0\n\nT1 is ground", fontsize=16, style=filled, fillcolor=lightyellow]; 3 [label="3: ','(=(X5, .(e, .(o, X5))), c(X5, T3))\n\nT3 is ground\nX5 is free", fontsize=16, style=filled, fillcolor=lightyellow]; 4 [label="4: \n\n", fontsize=16, style=filled, fillcolor=lightyellow]; 5 [label="CASE", fontsize=14, style = filled, fillcolor = lightcyan]; 1 -> 5 [arrowhead = none ]; 5 -> 2; 6 [label="ONLY EVAL with clause\ne(X4) :- ','(=(X5, .(e, .(o, X5))), c(X5, X4)).\nand substitutionT1 -> T3,\nX4 -> T3", fontsize=14, style = filled, fillcolor = lightblue]; 2 -> 6 [arrowhead = none ]; 6 -> 3; 7 [label="UNIFY-FAIL\nbecause of non-unification", fontsize=14, style = filled, fillcolor = lightgreen]; 3 -> 7 [arrowhead = none ]; 7 -> 4; }
(2)
YES