MAYBE

Found an example we currently can't prove?
-> Consider contributing it to the benchmark set: https://mysolvertimesout.org/

proof of /hpcwork/ff862203/termcomp26/benchmarks/uTFwh.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

p(g,g)

w.r.t. the given Prolog program could not be shown:

(0) Prolog
(1) PrologToPiTRSProof [SOUND, 0 ms]
(2) PiTRS
    (3) DependencyPairsProof [EQUIVALENT, 0 ms]
    (4) PiDP
    (5) DependencyGraphProof [EQUIVALENT, 0 ms]
    (6) PiDP
    (7) UsableRulesProof [EQUIVALENT, 0 ms]
    (8) PiDP
    (9) PiDPToQDPProof [EQUIVALENT, 0 ms]
    (10) QDP
    (11) TransformationProof [EQUIVALENT, 0 ms]
    (12) QDP
    (13) TransformationProof [EQUIVALENT, 0 ms]
    (14) QDP
    (15) QDPOrderProof [EQUIVALENT, 40 ms]
    (16) QDP
    (17) NonTerminationLoopProof [COMPLETE, 0 ms]
    (18) NO
(19) PrologToPiTRSProof [SOUND, 0 ms]
(20) PiTRS
    (21) DependencyPairsProof [EQUIVALENT, 0 ms]
    (22) PiDP
    (23) DependencyGraphProof [EQUIVALENT, 0 ms]
    (24) PiDP
    (25) UsableRulesProof [EQUIVALENT, 0 ms]
    (26) PiDP
    (27) PiDPToQDPProof [EQUIVALENT, 0 ms]
    (28) QDP
    (29) TransformationProof [EQUIVALENT, 0 ms]
    (30) QDP
    (31) TransformationProof [EQUIVALENT, 0 ms]
    (32) QDP
    (33) QDPOrderProof [EQUIVALENT, 25 ms]
    (34) QDP
    (35) NonTerminationLoopProof [COMPLETE, 0 ms]
    (36) NO
(37) PrologToTRSTransformerProof [SOUND, 0 ms]
(38) QTRS
    (39) Overlay + Local Confluence [EQUIVALENT, 0 ms]
    (40) QTRS
    (41) DependencyPairsProof [EQUIVALENT, 0 ms]
    (42) QDP
    (43) DependencyGraphProof [EQUIVALENT, 0 ms]
    (44) QDP
    (45) UsableRulesProof [EQUIVALENT, 0 ms]
    (46) QDP
    (47) QReductionProof [EQUIVALENT, 0 ms]
    (48) QDP
    (49) TransformationProof [EQUIVALENT, 0 ms]
    (50) QDP
    (51) TransformationProof [EQUIVALENT, 0 ms]
    (52) QDP
    (53) QDPOrderProof [EQUIVALENT, 39 ms]
    (54) QDP
    (55) NonTerminationLoopProof [COMPLETE, 0 ms]
    (56) NO
(57) PrologToIRSwTTransformerProof [SOUND, 0 ms]
(58) IRSwT
    (59) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
    (60) IRSwT
    (61) IntTRSCompressionProof [EQUIVALENT, 27 ms]
    (62) IRSwT
    (63) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
    (64) IRSwT
    (65) IRSwTTerminationDigraphProof [EQUIVALENT, 6 ms]
    (66) IRSwT
    (67) IntTRSCompressionProof [EQUIVALENT, 2 ms]
    (68) IRSwT
    (69) IRSwTToIntTRSProof [SOUND, 6 ms]
    (70) IRSwT
    (71) IntTRSCompressionProof [EQUIVALENT, 0 ms]
    (72) IRSwT
(73) PrologToDTProblemTransformerProof [SOUND, 0 ms]
(74) TRIPLES
    (75) TriplesToPiDPProof [SOUND, 0 ms]
    (76) PiDP
    (77) DependencyGraphProof [EQUIVALENT, 0 ms]
    (78) PiDP
    (79) PiDPToQDPProof [EQUIVALENT, 0 ms]
    (80) QDP
    (81) TransformationProof [EQUIVALENT, 0 ms]
    (82) QDP
    (83) TransformationProof [EQUIVALENT, 0 ms]
    (84) QDP
    (85) TransformationProof [EQUIVALENT, 0 ms]
    (86) QDP


----------------------------------------

(0)
Obligation:
Clauses:

p(X, s(s(s(s(s(s(s(Y)))))))) :- p(X, s(s(Y))).
p(X, s(s(s(s(s(s(0))))))) :- p(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))).


Query: p(g,g)
----------------------------------------

(1) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

p_in_2: (b,b)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

The argument filtering Pi contains the following mapping:
p_in_gg(x1, x2)  =  p_in_gg(x1, x2)

s(x1)  =  s(x1)

U1_gg(x1, x2, x3)  =  U1_gg(x3)

0  =  0

U2_gg(x1, x2)  =  U2_gg(x2)

p_out_gg(x1, x2)  =  p_out_gg





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(2)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

The argument filtering Pi contains the following mapping:
p_in_gg(x1, x2)  =  p_in_gg(x1, x2)

s(x1)  =  s(x1)

U1_gg(x1, x2, x3)  =  U1_gg(x3)

0  =  0

U2_gg(x1, x2)  =  U2_gg(x2)

p_out_gg(x1, x2)  =  p_out_gg



----------------------------------------

(3) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> U1_GG(X, Y, p_in_gg(X, s(s(Y))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> U2_GG(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))

The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

The argument filtering Pi contains the following mapping:
p_in_gg(x1, x2)  =  p_in_gg(x1, x2)

s(x1)  =  s(x1)

U1_gg(x1, x2, x3)  =  U1_gg(x3)

0  =  0

U2_gg(x1, x2)  =  U2_gg(x2)

p_out_gg(x1, x2)  =  p_out_gg

P_IN_GG(x1, x2)  =  P_IN_GG(x1, x2)

U1_GG(x1, x2, x3)  =  U1_GG(x3)

U2_GG(x1, x2)  =  U2_GG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(4)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> U1_GG(X, Y, p_in_gg(X, s(s(Y))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> U2_GG(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))

The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

The argument filtering Pi contains the following mapping:
p_in_gg(x1, x2)  =  p_in_gg(x1, x2)

s(x1)  =  s(x1)

U1_gg(x1, x2, x3)  =  U1_gg(x3)

0  =  0

U2_gg(x1, x2)  =  U2_gg(x2)

p_out_gg(x1, x2)  =  p_out_gg

P_IN_GG(x1, x2)  =  P_IN_GG(x1, x2)

U1_GG(x1, x2, x3)  =  U1_GG(x3)

U2_GG(x1, x2)  =  U2_GG(x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(5) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 2 less nodes.
----------------------------------------

(6)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))

The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

The argument filtering Pi contains the following mapping:
p_in_gg(x1, x2)  =  p_in_gg(x1, x2)

s(x1)  =  s(x1)

U1_gg(x1, x2, x3)  =  U1_gg(x3)

0  =  0

U2_gg(x1, x2)  =  U2_gg(x2)

p_out_gg(x1, x2)  =  p_out_gg

P_IN_GG(x1, x2)  =  P_IN_GG(x1, x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(7) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(8)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(9) PiDPToQDPProof (EQUIVALENT)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(10)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(11) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y))) we obtained the following new rules [LPAR04]:

   (P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0))))))),P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0))))))))
   (P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1)))))))),P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1)))))))))


----------------------------------------

(12)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(13) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))) we obtained the following new rules [LPAR04]:

   (P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))),P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))
   (P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))),P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))


----------------------------------------

(14)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1))))))))
   P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(15) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
The remaining pairs can at least be oriented weakly.
Used ordering:  Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :

   <<<
 POL(P_IN_GG(x_1, x_2)) =  	[[0]] 	 +  	[[1, 0]] 	* 	x_1 	 +  	[[0, 0]] 	* 	x_2
>>>

   <<<
 POL(s(x_1)) =  	[[0], [0]] 	 +  	[[0, 1], [1, 0]] 	* 	x_1
>>>

   <<<
 POL(0) =  	[[0], [1]]
>>>


The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none


----------------------------------------

(16)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1))))))))
   P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(17) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) evaluates to  t =P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0)))))))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))
with rule P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) at position [] and matcher [y_1 / s(s(s(s(0))))]

P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
with rule P_IN_GG(x0', s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0', s(s(s(s(s(s(s(y_1)))))))) at position [] and matcher [x0' / s(s(s(s(s(s(s(s(0)))))))), y_1 / s(s(s(s(0))))]

P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0)))))))
with rule P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(18)
NO

----------------------------------------

(19) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

p_in_2: (b,b)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

Pi is empty.



Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(20)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

Pi is empty.

----------------------------------------

(21) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> U1_GG(X, Y, p_in_gg(X, s(s(Y))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> U2_GG(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))

The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(22)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> U1_GG(X, Y, p_in_gg(X, s(s(Y))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> U2_GG(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))

The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(23) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 2 less nodes.
----------------------------------------

(24)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))

The TRS R consists of the following rules:

   p_in_gg(X, s(s(s(s(s(s(s(Y)))))))) -> U1_gg(X, Y, p_in_gg(X, s(s(Y))))
   p_in_gg(X, s(s(s(s(s(s(0))))))) -> U2_gg(X, p_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))))
   U2_gg(X, p_out_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))) -> p_out_gg(X, s(s(s(s(s(s(0)))))))
   U1_gg(X, Y, p_out_gg(X, s(s(Y)))) -> p_out_gg(X, s(s(s(s(s(s(s(Y))))))))

Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(25) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(26)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(27) PiDPToQDPProof (EQUIVALENT)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(28)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y)))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(29) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule P_IN_GG(X, s(s(s(s(s(s(s(Y)))))))) -> P_IN_GG(X, s(s(Y))) we obtained the following new rules [LPAR04]:

   (P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0))))))),P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0))))))))
   (P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1)))))))),P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1)))))))))


----------------------------------------

(30)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(31) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule P_IN_GG(X, s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X))))))))) we obtained the following new rules [LPAR04]:

   (P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))),P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))
   (P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))),P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))


----------------------------------------

(32)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1))))))))
   P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(33) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   P_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
The remaining pairs can at least be oriented weakly.
Used ordering:  Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :

   <<<
 POL(P_IN_GG(x_1, x_2)) =  	[[0]] 	 +  	[[1, 0]] 	* 	x_1 	 +  	[[0, 0]] 	* 	x_2
>>>

   <<<
 POL(s(x_1)) =  	[[0], [0]] 	 +  	[[0, 1], [1, 0]] 	* 	x_1
>>>

   <<<
 POL(0) =  	[[0], [1]]
>>>


The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none


----------------------------------------

(34)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))
   P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(s(y_1))))))))
   P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(35) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) evaluates to  t =P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0)))))))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))
with rule P_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) at position [] and matcher [y_1 / s(s(s(s(0))))]

P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
with rule P_IN_GG(x0', s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> P_IN_GG(x0', s(s(s(s(s(s(s(y_1)))))))) at position [] and matcher [x0' / s(s(s(s(s(s(s(s(0)))))))), y_1 / s(s(s(s(0))))]

P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0)))))))
with rule P_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> P_IN_GG(x0, s(s(s(s(s(s(0)))))))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(36)
NO

----------------------------------------

(37) PrologToTRSTransformerProof (SOUND)
Transformed Prolog program to TRS.

{
    "root": 3,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(p X (s (s (s (s (s (s (s Y))))))))",
                "(p X (s (s Y)))"
            ],
            [
                "(p X (s (s (s (s (s (s (0))))))))",
                "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s X)))))))))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "3": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "4": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(p T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "7": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "8": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "81": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T17)))))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "82": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "64": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T11 (s (s T12)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T11",
                        "T12"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "65": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 3,
                "to": 4,
                "label": "CASE"
            },
            {
                "from": 4,
                "to": 7,
                "label": "PARALLEL"
            },
            {
                "from": 4,
                "to": 8,
                "label": "PARALLEL"
            },
            {
                "from": 7,
                "to": 64,
                "label": "EVAL with clause\np(X9, s(s(s(s(s(s(s(X10)))))))) :- p(X9, s(s(X10))).\nand substitutionT1 -> T11,\nX9 -> T11,\nX10 -> T12,\nT2 -> s(s(s(s(s(s(s(T12)))))))"
            },
            {
                "from": 7,
                "to": 65,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 8,
                "to": 81,
                "label": "EVAL with clause\np(X15, s(s(s(s(s(s(0))))))) :- p(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X15))))))))).\nand substitutionT1 -> T17,\nX15 -> T17,\nT2 -> s(s(s(s(s(s(0))))))"
            },
            {
                "from": 8,
                "to": 82,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 64,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> T11\nT2 -> s(s(T12))"
            },
            {
                "from": 81,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> s(s(s(s(s(s(s(s(0))))))))\nT2 -> s(s(s(s(s(s(s(s(T17))))))))"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(38)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f3_in(T11, s(s(s(s(s(s(s(T12)))))))) -> U1(f3_in(T11, s(s(T12))), T11, s(s(s(s(s(s(s(T12))))))))
   U1(f3_out1, T11, s(s(s(s(s(s(s(T12)))))))) -> f3_out1
   f3_in(T17, s(s(s(s(s(s(0))))))) -> U2(f3_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17))))))))), T17, s(s(s(s(s(s(0)))))))
   U2(f3_out1, T17, s(s(s(s(s(s(0))))))) -> f3_out1

Q is empty.

----------------------------------------

(39) Overlay + Local Confluence (EQUIVALENT)
The TRS is overlay and locally confluent. By [NOC] we can switch to innermost.
----------------------------------------

(40)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f3_in(T11, s(s(s(s(s(s(s(T12)))))))) -> U1(f3_in(T11, s(s(T12))), T11, s(s(s(s(s(s(s(T12))))))))
   U1(f3_out1, T11, s(s(s(s(s(s(s(T12)))))))) -> f3_out1
   f3_in(T17, s(s(s(s(s(s(0))))))) -> U2(f3_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17))))))))), T17, s(s(s(s(s(s(0)))))))
   U2(f3_out1, T17, s(s(s(s(s(s(0))))))) -> f3_out1

The set Q consists of the following terms:

   f3_in(x0, s(s(s(s(s(s(s(x1))))))))
   U1(f3_out1, x0, s(s(s(s(s(s(s(x1))))))))
   f3_in(x0, s(s(s(s(s(s(0)))))))
   U2(f3_out1, x0, s(s(s(s(s(s(0)))))))


----------------------------------------

(41) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
----------------------------------------

(42)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T11, s(s(s(s(s(s(s(T12)))))))) -> U1^1(f3_in(T11, s(s(T12))), T11, s(s(s(s(s(s(s(T12))))))))
   F3_IN(T11, s(s(s(s(s(s(s(T12)))))))) -> F3_IN(T11, s(s(T12)))
   F3_IN(T17, s(s(s(s(s(s(0))))))) -> U2^1(f3_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17))))))))), T17, s(s(s(s(s(s(0)))))))
   F3_IN(T17, s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17)))))))))

The TRS R consists of the following rules:

   f3_in(T11, s(s(s(s(s(s(s(T12)))))))) -> U1(f3_in(T11, s(s(T12))), T11, s(s(s(s(s(s(s(T12))))))))
   U1(f3_out1, T11, s(s(s(s(s(s(s(T12)))))))) -> f3_out1
   f3_in(T17, s(s(s(s(s(s(0))))))) -> U2(f3_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17))))))))), T17, s(s(s(s(s(s(0)))))))
   U2(f3_out1, T17, s(s(s(s(s(s(0))))))) -> f3_out1

The set Q consists of the following terms:

   f3_in(x0, s(s(s(s(s(s(s(x1))))))))
   U1(f3_out1, x0, s(s(s(s(s(s(s(x1))))))))
   f3_in(x0, s(s(s(s(s(s(0)))))))
   U2(f3_out1, x0, s(s(s(s(s(s(0)))))))

We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(43) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes.
----------------------------------------

(44)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T17, s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17)))))))))
   F3_IN(T11, s(s(s(s(s(s(s(T12)))))))) -> F3_IN(T11, s(s(T12)))

The TRS R consists of the following rules:

   f3_in(T11, s(s(s(s(s(s(s(T12)))))))) -> U1(f3_in(T11, s(s(T12))), T11, s(s(s(s(s(s(s(T12))))))))
   U1(f3_out1, T11, s(s(s(s(s(s(s(T12)))))))) -> f3_out1
   f3_in(T17, s(s(s(s(s(s(0))))))) -> U2(f3_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17))))))))), T17, s(s(s(s(s(s(0)))))))
   U2(f3_out1, T17, s(s(s(s(s(s(0))))))) -> f3_out1

The set Q consists of the following terms:

   f3_in(x0, s(s(s(s(s(s(s(x1))))))))
   U1(f3_out1, x0, s(s(s(s(s(s(s(x1))))))))
   f3_in(x0, s(s(s(s(s(s(0)))))))
   U2(f3_out1, x0, s(s(s(s(s(s(0)))))))

We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(45) UsableRulesProof (EQUIVALENT)
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(46)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T17, s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17)))))))))
   F3_IN(T11, s(s(s(s(s(s(s(T12)))))))) -> F3_IN(T11, s(s(T12)))

R is empty.
The set Q consists of the following terms:

   f3_in(x0, s(s(s(s(s(s(s(x1))))))))
   U1(f3_out1, x0, s(s(s(s(s(s(s(x1))))))))
   f3_in(x0, s(s(s(s(s(s(0)))))))
   U2(f3_out1, x0, s(s(s(s(s(s(0)))))))

We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(47) QReductionProof (EQUIVALENT)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

   f3_in(x0, s(s(s(s(s(s(s(x1))))))))
   U1(f3_out1, x0, s(s(s(s(s(s(s(x1))))))))
   f3_in(x0, s(s(s(s(s(s(0)))))))
   U2(f3_out1, x0, s(s(s(s(s(s(0)))))))


----------------------------------------

(48)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T17, s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17)))))))))
   F3_IN(T11, s(s(s(s(s(s(s(T12)))))))) -> F3_IN(T11, s(s(T12)))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(49) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule F3_IN(T11, s(s(s(s(s(s(s(T12)))))))) -> F3_IN(T11, s(s(T12))) we obtained the following new rules [LPAR04]:

   (F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> F3_IN(x0, s(s(s(s(s(s(0))))))),F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> F3_IN(x0, s(s(s(s(s(s(0))))))))
   (F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> F3_IN(x0, s(s(s(s(s(s(s(y_1)))))))),F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> F3_IN(x0, s(s(s(s(s(s(s(y_1)))))))))


----------------------------------------

(50)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(T17, s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17)))))))))
   F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> F3_IN(x0, s(s(s(s(s(s(0)))))))
   F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> F3_IN(x0, s(s(s(s(s(s(s(y_1))))))))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(51) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule F3_IN(T17, s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17))))))))) we obtained the following new rules [LPAR04]:

   (F3_IN(s(s(s(0))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))),F3_IN(s(s(s(0))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))
   (F3_IN(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))),F3_IN(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))


----------------------------------------

(52)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> F3_IN(x0, s(s(s(s(s(s(0)))))))
   F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> F3_IN(x0, s(s(s(s(s(s(s(y_1))))))))
   F3_IN(s(s(s(0))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   F3_IN(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(53) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   F3_IN(s(s(s(0))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
The remaining pairs can at least be oriented weakly.
Used ordering:  Matrix interpretation [MATRO] to (N^2, +, *, >=, >) :

   <<<
 POL(F3_IN(x_1, x_2)) =  	[[0]] 	 +  	[[1, 0]] 	* 	x_1 	 +  	[[0, 0]] 	* 	x_2
>>>

   <<<
 POL(s(x_1)) =  	[[0], [0]] 	 +  	[[0, 1], [1, 0]] 	* 	x_1
>>>

   <<<
 POL(0) =  	[[0], [1]]
>>>


The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none


----------------------------------------

(54)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> F3_IN(x0, s(s(s(s(s(s(0)))))))
   F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> F3_IN(x0, s(s(s(s(s(s(s(y_1))))))))
   F3_IN(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(55) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) evaluates to  t =F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0)))))))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))
with rule F3_IN(s(s(s(s(y_1)))), s(s(s(s(s(s(0))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) at position [] and matcher [y_1 / s(s(s(s(0))))]

F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
with rule F3_IN(x0', s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))) -> F3_IN(x0', s(s(s(s(s(s(s(y_1)))))))) at position [] and matcher [x0' / s(s(s(s(s(s(s(s(0)))))))), y_1 / s(s(s(s(0))))]

F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> F3_IN(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0)))))))
with rule F3_IN(x0, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> F3_IN(x0, s(s(s(s(s(s(0)))))))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(56)
NO

----------------------------------------

(57) PrologToIRSwTTransformerProof (SOUND)
Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert

{
    "root": 2,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(p X (s (s (s (s (s (s (s Y))))))))",
                "(p X (s (s Y)))"
            ],
            [
                "(p X (s (s (s (s (s (s (0))))))))",
                "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s X)))))))))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "11": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "88": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T17)))))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T17"],
                    "free": [],
                    "exprvars": []
                }
            },
            "89": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "2": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "6": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(p T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "70": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T11 (s (s T12)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T11",
                        "T12"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "71": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "10": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 2,
                "to": 6,
                "label": "CASE"
            },
            {
                "from": 6,
                "to": 10,
                "label": "PARALLEL"
            },
            {
                "from": 6,
                "to": 11,
                "label": "PARALLEL"
            },
            {
                "from": 10,
                "to": 70,
                "label": "EVAL with clause\np(X9, s(s(s(s(s(s(s(X10)))))))) :- p(X9, s(s(X10))).\nand substitutionT1 -> T11,\nX9 -> T11,\nX10 -> T12,\nT2 -> s(s(s(s(s(s(s(T12)))))))"
            },
            {
                "from": 10,
                "to": 71,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 11,
                "to": 88,
                "label": "EVAL with clause\np(X15, s(s(s(s(s(s(0))))))) :- p(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X15))))))))).\nand substitutionT1 -> T17,\nX15 -> T17,\nT2 -> s(s(s(s(s(s(0))))))"
            },
            {
                "from": 11,
                "to": 89,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 70,
                "to": 2,
                "label": "INSTANCE with matching:\nT1 -> T11\nT2 -> s(s(T12))"
            },
            {
                "from": 88,
                "to": 2,
                "label": "INSTANCE with matching:\nT1 -> s(s(s(s(s(s(s(s(0))))))))\nT2 -> s(s(s(s(s(s(s(s(T17))))))))"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(58)
Obligation:
Rules:
f2_out(T11, s(s(T12))) -> f70_out(T11, T12) :|: TRUE
f70_in(x, x1) -> f2_in(x, s(s(x1))) :|: TRUE
f6_out(T1, T2) -> f2_out(T1, T2) :|: TRUE
f2_in(x2, x3) -> f6_in(x2, x3) :|: TRUE
f70_out(x4, x5) -> f10_out(x4, s(s(s(s(s(s(s(x5)))))))) :|: TRUE
f71_out -> f10_out(x6, x7) :|: TRUE
f10_in(x8, s(s(s(s(s(s(s(x9)))))))) -> f70_in(x8, x9) :|: TRUE
f10_in(x10, x11) -> f71_in :|: TRUE
f11_out(x12, x13) -> f6_out(x12, x13) :|: TRUE
f10_out(x14, x15) -> f6_out(x14, x15) :|: TRUE
f6_in(x16, x17) -> f11_in(x16, x17) :|: TRUE
f6_in(x18, x19) -> f10_in(x18, x19) :|: TRUE
f2_out(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(T17))))))))) -> f88_out(T17) :|: TRUE
f88_in(x20) -> f2_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x20))))))))) :|: TRUE
f11_in(x21, s(s(s(s(s(s(0))))))) -> f88_in(x21) :|: TRUE
f88_out(x22) -> f11_out(x22, s(s(s(s(s(s(0))))))) :|: TRUE
f11_in(x23, x24) -> f89_in :|: TRUE
f89_out -> f11_out(x25, x26) :|: TRUE
Start term: f2_in(T1, T2)

----------------------------------------

(59) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f70_in(x, x1) -> f2_in(x, s(s(x1))) :|: TRUE
f2_in(x2, x3) -> f6_in(x2, x3) :|: TRUE
f10_in(x8, s(s(s(s(s(s(s(x9)))))))) -> f70_in(x8, x9) :|: TRUE
f6_in(x16, x17) -> f11_in(x16, x17) :|: TRUE
f6_in(x18, x19) -> f10_in(x18, x19) :|: TRUE
f88_in(x20) -> f2_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x20))))))))) :|: TRUE
f11_in(x21, s(s(s(s(s(s(0))))))) -> f88_in(x21) :|: TRUE


----------------------------------------

(60)
Obligation:
Rules:
f70_in(x, x1) -> f2_in(x, s(s(x1))) :|: TRUE
f2_in(x2, x3) -> f6_in(x2, x3) :|: TRUE
f10_in(x8, s(s(s(s(s(s(s(x9)))))))) -> f70_in(x8, x9) :|: TRUE
f6_in(x16, x17) -> f11_in(x16, x17) :|: TRUE
f6_in(x18, x19) -> f10_in(x18, x19) :|: TRUE
f88_in(x20) -> f2_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x20))))))))) :|: TRUE
f11_in(x21, s(s(s(s(s(s(0))))))) -> f88_in(x21) :|: TRUE

----------------------------------------

(61) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(62)
Obligation:
Rules:
f6_in(x16:0, s(s(s(s(s(s(cons_0))))))) -> f6_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x16:0))))))))) :|: TRUE && cons_0 = 0
f6_in(x18:0, s(s(s(s(s(s(s(x9:0)))))))) -> f6_in(x18:0, s(s(x9:0))) :|: TRUE

----------------------------------------

(63) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(64)
Obligation:
Rules:
f6_in(x16:0, s(s(s(s(s(s(cons_0))))))) -> f6_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x16:0))))))))) :|: TRUE && cons_0 = 0
f6_in(x18:0, s(s(s(s(s(s(s(x9:0)))))))) -> f6_in(x18:0, s(s(x9:0))) :|: TRUE

----------------------------------------

(65) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f6_in(x16:0, s(s(s(s(s(s(cons_0))))))) -> f6_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x16:0))))))))) :|: TRUE && cons_0 = 0
(2) f6_in(x18:0, s(s(s(s(s(s(s(x9:0)))))))) -> f6_in(x18:0, s(s(x9:0))) :|: TRUE

Arcs:
(1) -> (2)
(2) -> (1), (2)

This digraph is fully evaluated!
----------------------------------------

(66)
Obligation:

Termination digraph:
Nodes:
(1) f6_in(x16:0, s(s(s(s(s(s(cons_0))))))) -> f6_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x16:0))))))))) :|: TRUE && cons_0 = 0
(2) f6_in(x18:0, s(s(s(s(s(s(s(x9:0)))))))) -> f6_in(x18:0, s(s(x9:0))) :|: TRUE

Arcs:
(1) -> (2)
(2) -> (1), (2)

This digraph is fully evaluated!

----------------------------------------

(67) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(68)
Obligation:
Rules:
f6_in(x16:0:0, s(s(s(s(s(s(cons_0))))))) -> f6_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x16:0:0))))))))) :|: TRUE && cons_0 = 0
f6_in(x18:0:0, s(s(s(s(s(s(s(x9:0:0)))))))) -> f6_in(x18:0:0, s(s(x9:0:0))) :|: TRUE

----------------------------------------

(69) IRSwTToIntTRSProof (SOUND)
Applied path-length measure to transform intTRS with terms to intTRS.
----------------------------------------

(70)
Obligation:
Rules:
f6_in(x, s(s(s(s(s(s(cons_0))))))) -> f6_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x))))))))) :|: TRUE && cons_0 = 0
f6_in(x2, s(s(s(s(s(s(s(x3)))))))) -> f6_in(x2, s(s(x3))) :|: TRUE

----------------------------------------

(71) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(72)
Obligation:
Rules:
f6_in(x:0, s(s(s(s(s(s(cons_0))))))) -> f6_in(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(x:0))))))))) :|: TRUE && cons_0 = 0
f6_in(x2:0, s(s(s(s(s(s(s(x3:0)))))))) -> f6_in(x2:0, s(s(x3:0))) :|: TRUE

----------------------------------------

(73) PrologToDTProblemTransformerProof (SOUND)
Built DT problem from termination graph DT10.

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(p X (s (s (s (s (s (s (s Y))))))))",
                "(p X (s (s Y)))"
            ],
            [
                "(p X (s (s (s (s (s (s (0))))))))",
                "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s X)))))))))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "66": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(p T5 (s (s T6)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T5",
                        "T6"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "67": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(p T5 (s (s T6)))"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T5 (s (s (s (s (s (s (s T6))))))))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T5",
                        "T6"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "68": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T15 (s (s T16)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T15",
                        "T16"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "69": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "27": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(p T1 T2)",
                        "(p X3 (s (s (s (s (s (s (s X4))))))))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [
                        "X3",
                        "X4"
                    ],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p T1 T2)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "102": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T27)))))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T27"],
                    "free": [],
                    "exprvars": []
                }
            },
            "103": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "5": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(p T1 T2)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T1 T2)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T2"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "104": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 3,
                        "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T27)))))))))"
                    },
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T27)))))))))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T27"],
                    "free": [],
                    "exprvars": []
                }
            },
            "105": {
                "goal": [{
                    "clause": 0,
                    "scope": 3,
                    "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T27)))))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T27"],
                    "free": [],
                    "exprvars": []
                }
            },
            "90": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T23)))))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T23"],
                    "free": [],
                    "exprvars": []
                }
            },
            "106": {
                "goal": [{
                    "clause": 1,
                    "scope": 3,
                    "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s (s (s (s (s (s T27)))))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T27"],
                    "free": [],
                    "exprvars": []
                }
            },
            "91": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "107": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(p (s (s (s (s (s (s (s (s (0))))))))) (s (s (s T34))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T34"],
                    "free": [],
                    "exprvars": []
                }
            },
            "92": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(p T5 (s (s (s (s (s (s (s T6))))))))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T5",
                        "T6"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "108": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "93": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "61": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(p T5 (s (s T6)))"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(p T5 (s (s T6)))"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T5 (s (s (s (s (s (s (s T6))))))))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T5",
                        "T6"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "86": {
                "goal": [{
                    "clause": 1,
                    "scope": 2,
                    "term": "(p T5 (s (s T6)))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T5",
                        "T6"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "21": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(p T5 (s (s T6)))"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T5 (s (s (s (s (s (s (s T6))))))))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T5",
                        "T6"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "87": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(p T5 (s (s (s (s (s (s (s T6))))))))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T5",
                        "T6"
                    ],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 5,
                "label": "CASE"
            },
            {
                "from": 5,
                "to": 21,
                "label": "EVAL with clause\np(X3, s(s(s(s(s(s(s(X4)))))))) :- p(X3, s(s(X4))).\nand substitutionT1 -> T5,\nX3 -> T5,\nX4 -> T6,\nT2 -> s(s(s(s(s(s(s(T6)))))))"
            },
            {
                "from": 5,
                "to": 27,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 21,
                "to": 61,
                "label": "CASE"
            },
            {
                "from": 27,
                "to": 102,
                "label": "EVAL with clause\np(X26, s(s(s(s(s(s(0))))))) :- p(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X26))))))))).\nand substitutionT1 -> T27,\nX26 -> T27,\nT2 -> s(s(s(s(s(s(0))))))"
            },
            {
                "from": 27,
                "to": 103,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 61,
                "to": 66,
                "label": "PARALLEL"
            },
            {
                "from": 61,
                "to": 67,
                "label": "PARALLEL"
            },
            {
                "from": 66,
                "to": 68,
                "label": "EVAL with clause\np(X13, s(s(s(s(s(s(s(X14)))))))) :- p(X13, s(s(X14))).\nand substitutionT5 -> T15,\nX13 -> T15,\nX14 -> T16,\nT6 -> s(s(s(s(s(T16)))))"
            },
            {
                "from": 66,
                "to": 69,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 67,
                "to": 86,
                "label": "PARALLEL"
            },
            {
                "from": 67,
                "to": 87,
                "label": "PARALLEL"
            },
            {
                "from": 68,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> T15\nT2 -> s(s(T16))"
            },
            {
                "from": 86,
                "to": 90,
                "label": "EVAL with clause\np(X21, s(s(s(s(s(s(0))))))) :- p(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X21))))))))).\nand substitutionT5 -> T23,\nX21 -> T23,\nT6 -> s(s(s(s(0))))"
            },
            {
                "from": 86,
                "to": 91,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 87,
                "to": 92,
                "label": "FAILURE"
            },
            {
                "from": 90,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> s(s(s(s(s(s(s(s(0))))))))\nT2 -> s(s(s(s(s(s(s(s(T23))))))))"
            },
            {
                "from": 92,
                "to": 93,
                "label": "BACKTRACK\nfor clause: p(X, s(s(s(s(s(s(0))))))) :- p(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))because of non-unification"
            },
            {
                "from": 102,
                "to": 104,
                "label": "CASE"
            },
            {
                "from": 104,
                "to": 105,
                "label": "PARALLEL"
            },
            {
                "from": 104,
                "to": 106,
                "label": "PARALLEL"
            },
            {
                "from": 105,
                "to": 107,
                "label": "ONLY EVAL with clause\np(X39, s(s(s(s(s(s(s(X40)))))))) :- p(X39, s(s(X40))).\nand substitutionX39 -> s(s(s(s(s(s(s(s(0)))))))),\nT27 -> T34,\nX40 -> s(T34)"
            },
            {
                "from": 106,
                "to": 108,
                "label": "BACKTRACK\nfor clause: p(X, s(s(s(s(s(s(0))))))) :- p(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X)))))))))because of non-unification"
            },
            {
                "from": 107,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> s(s(s(s(s(s(s(s(0))))))))\nT2 -> s(s(s(T34)))"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(74)
Obligation:
Triples:

pA(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) :- pA(X1, s(s(X2))).
pA(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) :- pA(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1))))))))).
pA(X1, s(s(s(s(s(s(0))))))) :- pA(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1)))).

Clauses:

pcA(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) :- pcA(X1, s(s(X2))).
pcA(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) :- pcA(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1))))))))).
pcA(X1, s(s(s(s(s(s(0))))))) :- pcA(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1)))).

Afs:

pA(x1, x2)  =  pA(x1, x2)


----------------------------------------

(75) TriplesToPiDPProof (SOUND)
We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:

pA_in_2: (b,b)

Transforming TRIPLES into the following Term Rewriting System:

Pi DP problem:
The TRS P consists of the following rules:

   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> U1_GG(X1, X2, pA_in_gg(X1, s(s(X2))))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> PA_IN_GG(X1, s(s(X2)))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> U2_GG(X1, pA_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1))))))))))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1)))))))))
   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> U3_GG(X1, pA_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1)))))
   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1))))

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



----------------------------------------

(76)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> U1_GG(X1, X2, pA_in_gg(X1, s(s(X2))))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> PA_IN_GG(X1, s(s(X2)))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> U2_GG(X1, pA_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1))))))))))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1)))))))))
   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> U3_GG(X1, pA_in_gg(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1)))))
   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1))))

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(77) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 1 SCC with 3 less nodes.
----------------------------------------

(78)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1)))))))))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> PA_IN_GG(X1, s(s(X2)))
   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1))))

R is empty.
Pi is empty.
We have to consider all (P,R,Pi)-chains
----------------------------------------

(79) PiDPToQDPProof (EQUIVALENT)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(80)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1)))))))))
   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> PA_IN_GG(X1, s(s(X2)))
   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(81) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(X1))))))))) we obtained the following new rules [LPAR04]:

   (PA_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))),PA_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))
   (PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))),PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))


----------------------------------------

(82)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> PA_IN_GG(X1, s(s(X2)))
   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1))))
   PA_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))
   PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(83) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule PA_IN_GG(X1, s(s(s(s(s(s(s(s(s(s(s(s(X2))))))))))))) -> PA_IN_GG(X1, s(s(X2))) we obtained the following new rules [LPAR04]:

   (PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(0))))))),PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(0))))))))
   (PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))),PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))
   (PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))),PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))
   (PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))),PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))


----------------------------------------

(84)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1))))
   PA_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))
   PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(0)))))))
   PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))
   PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(85) TransformationProof (EQUIVALENT)
By forward instantiating [JAR06] the rule PA_IN_GG(X1, s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(X1)))) we obtained the following new rules [LPAR04]:

   (PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))),PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))))
   (PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))),PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))
   (PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))),PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))))
   (PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))))))),PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))))))))
   (PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))),PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))))


----------------------------------------

(86)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   PA_IN_GG(s(s(s(s(y_1)))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))
   PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0)))))))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(0)))))))
   PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))))))) -> PA_IN_GG(x0, s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))
   PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(s(y_0)))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))))))) -> PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   PA_IN_GG(s(s(s(0))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0)))))))
   PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(0))))))))))))
   PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))
   PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1))))))))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(y_1)))))))))))))))))))))))
   PA_IN_GG(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0)))))))))))))))))), s(s(s(s(s(s(0))))))) -> PA_IN_GG(s(s(s(s(s(s(s(s(0)))))))), s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(0))))))))))))))))))))))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.