(0) Obligation:

Clauses:

mult(0, Y, 0).
mult(s(X), Y, Z) :- ','(mult(X, Y, Z1), add(Z1, Y, Z)).
add(0, Y, Y).
add(s(X), Y, s(Z)) :- add(X, Y, Z).

Queries:

mult(g,g,a).

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph.

(2) Obligation:

Clauses:

mult23(0, T40, 0).
mult23(s(T45), T46, X74) :- mult23(T45, T46, X73).
mult23(s(T45), T46, X74) :- ','(mult23(T45, T46, T49), add34(T49, T46, X74)).
add34(0, T58, T58).
add34(s(T63), T64, s(X101)) :- add34(T63, T64, X101).
add44(0, T78, T78).
add44(s(T85), T86, s(T88)) :- add44(T85, T86, T88).
mult1(0, T5, 0).
mult1(s(0), T24, T24).
mult1(s(s(T29)), T30, T12) :- mult23(T29, T30, X46).
mult1(s(s(T29)), T30, T12) :- ','(mult23(T29, T30, T33), add34(T33, T30, X47)).
mult1(s(s(T29)), T30, T12) :- ','(mult23(T29, T30, T33), ','(add34(T33, T30, T69), add44(T69, T30, T12))).

Queries:

mult1(g,g,a).

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
mult1_in: (b,b,f)
mult23_in: (b,b,f)
add34_in: (f,b,f)
add44_in: (b,b,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga(x1, x2)
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga(x1, x2)
U1_gga(x1, x2, x3, x4)  =  U1_gga(x1, x2, x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x2, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x2, x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x1, x2, x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

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

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga(x1, x2)
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga(x1, x2)
U1_gga(x1, x2, x3, x4)  =  U1_gga(x1, x2, x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x2, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x2, x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x1, x2, x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)

(5) DependencyPairsProof (EQUIVALENT transformation)

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

MULT1_IN_GGA(s(s(T29)), T30, T12) → U6_GGA(T29, T30, T12, mult23_in_gga(T29, T30, X46))
MULT1_IN_GGA(s(s(T29)), T30, T12) → MULT23_IN_GGA(T29, T30, X46)
MULT23_IN_GGA(s(T45), T46, X74) → U1_GGA(T45, T46, X74, mult23_in_gga(T45, T46, X73))
MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)
MULT23_IN_GGA(s(T45), T46, X74) → U2_GGA(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_GGA(T45, T46, X74, add34_in_aga(T49, T46, X74))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → ADD34_IN_AGA(T49, T46, X74)
ADD34_IN_AGA(s(T63), T64, s(X101)) → U4_AGA(T63, T64, X101, add34_in_aga(T63, T64, X101))
ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)
MULT1_IN_GGA(s(s(T29)), T30, T12) → U7_GGA(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_GGA(T29, T30, T12, add34_in_aga(T33, T30, X47))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → ADD34_IN_AGA(T33, T30, X47)
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_GGA(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_GGA(T29, T30, T12, add44_in_gga(T69, T30, T12))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → ADD44_IN_GGA(T69, T30, T12)
ADD44_IN_GGA(s(T85), T86, s(T88)) → U5_GGA(T85, T86, T88, add44_in_gga(T85, T86, T88))
ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga(x1, x2)
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga(x1, x2)
U1_gga(x1, x2, x3, x4)  =  U1_gga(x1, x2, x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x2, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x2, x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x1, x2, x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
MULT1_IN_GGA(x1, x2, x3)  =  MULT1_IN_GGA(x1, x2)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4)  =  U1_GGA(x1, x2, x4)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)
U4_AGA(x1, x2, x3, x4)  =  U4_AGA(x2, x4)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

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

(6) Obligation:

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

MULT1_IN_GGA(s(s(T29)), T30, T12) → U6_GGA(T29, T30, T12, mult23_in_gga(T29, T30, X46))
MULT1_IN_GGA(s(s(T29)), T30, T12) → MULT23_IN_GGA(T29, T30, X46)
MULT23_IN_GGA(s(T45), T46, X74) → U1_GGA(T45, T46, X74, mult23_in_gga(T45, T46, X73))
MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)
MULT23_IN_GGA(s(T45), T46, X74) → U2_GGA(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_GGA(T45, T46, X74, add34_in_aga(T49, T46, X74))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → ADD34_IN_AGA(T49, T46, X74)
ADD34_IN_AGA(s(T63), T64, s(X101)) → U4_AGA(T63, T64, X101, add34_in_aga(T63, T64, X101))
ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)
MULT1_IN_GGA(s(s(T29)), T30, T12) → U7_GGA(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_GGA(T29, T30, T12, add34_in_aga(T33, T30, X47))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → ADD34_IN_AGA(T33, T30, X47)
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_GGA(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_GGA(T29, T30, T12, add44_in_gga(T69, T30, T12))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → ADD44_IN_GGA(T69, T30, T12)
ADD44_IN_GGA(s(T85), T86, s(T88)) → U5_GGA(T85, T86, T88, add44_in_gga(T85, T86, T88))
ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga(x1, x2)
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga(x1, x2)
U1_gga(x1, x2, x3, x4)  =  U1_gga(x1, x2, x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x2, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x2, x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x1, x2, x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
MULT1_IN_GGA(x1, x2, x3)  =  MULT1_IN_GGA(x1, x2)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4)  =  U1_GGA(x1, x2, x4)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)
U4_AGA(x1, x2, x3, x4)  =  U4_AGA(x2, x4)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

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

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 14 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

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

ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga(x1, x2)
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga(x1, x2)
U1_gga(x1, x2, x3, x4)  =  U1_gga(x1, x2, x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x2, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x2, x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x1, x2, x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)

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

(10) UsableRulesProof (EQUIVALENT transformation)

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

(11) Obligation:

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

ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)

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

(12) PiDPToQDPProof (SOUND transformation)

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

(13) Obligation:

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

ADD44_IN_GGA(s(T85), T86) → ADD44_IN_GGA(T85, T86)

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

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • ADD44_IN_GGA(s(T85), T86) → ADD44_IN_GGA(T85, T86)
    The graph contains the following edges 1 > 1, 2 >= 2

(15) YES

(16) Obligation:

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

ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga(x1, x2)
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga(x1, x2)
U1_gga(x1, x2, x3, x4)  =  U1_gga(x1, x2, x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x2, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x2, x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x1, x2, x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)

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

(17) UsableRulesProof (EQUIVALENT transformation)

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

(18) Obligation:

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

ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)

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

(19) PiDPToQDPProof (SOUND transformation)

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

(20) Obligation:

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

ADD34_IN_AGA(T64) → ADD34_IN_AGA(T64)

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

(21) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = ADD34_IN_AGA(T64) evaluates to t =ADD34_IN_AGA(T64)

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




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from ADD34_IN_AGA(T64) to ADD34_IN_AGA(T64).



(22) NO

(23) Obligation:

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

MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga(x1, x2)
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga(x1, x2)
U1_gga(x1, x2, x3, x4)  =  U1_gga(x1, x2, x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x2, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x2, x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x1, x2, x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)

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

(24) UsableRulesProof (EQUIVALENT transformation)

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

(25) Obligation:

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

MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)

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

(26) PiDPToQDPProof (SOUND transformation)

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

(27) Obligation:

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

MULT23_IN_GGA(s(T45), T46) → MULT23_IN_GGA(T45, T46)

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

(28) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULT23_IN_GGA(s(T45), T46) → MULT23_IN_GGA(T45, T46)
    The graph contains the following edges 1 > 1, 2 >= 2

(29) YES

(30) PrologToPiTRSProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
mult1_in: (b,b,f)
mult23_in: (b,b,f)
add34_in: (f,b,f)
add44_in: (b,b,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga
U1_gga(x1, x2, x3, x4)  =  U1_gga(x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(31) Obligation:

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

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga
U1_gga(x1, x2, x3, x4)  =  U1_gga(x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)

(32) DependencyPairsProof (EQUIVALENT transformation)

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

MULT1_IN_GGA(s(s(T29)), T30, T12) → U6_GGA(T29, T30, T12, mult23_in_gga(T29, T30, X46))
MULT1_IN_GGA(s(s(T29)), T30, T12) → MULT23_IN_GGA(T29, T30, X46)
MULT23_IN_GGA(s(T45), T46, X74) → U1_GGA(T45, T46, X74, mult23_in_gga(T45, T46, X73))
MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)
MULT23_IN_GGA(s(T45), T46, X74) → U2_GGA(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_GGA(T45, T46, X74, add34_in_aga(T49, T46, X74))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → ADD34_IN_AGA(T49, T46, X74)
ADD34_IN_AGA(s(T63), T64, s(X101)) → U4_AGA(T63, T64, X101, add34_in_aga(T63, T64, X101))
ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)
MULT1_IN_GGA(s(s(T29)), T30, T12) → U7_GGA(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_GGA(T29, T30, T12, add34_in_aga(T33, T30, X47))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → ADD34_IN_AGA(T33, T30, X47)
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_GGA(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_GGA(T29, T30, T12, add44_in_gga(T69, T30, T12))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → ADD44_IN_GGA(T69, T30, T12)
ADD44_IN_GGA(s(T85), T86, s(T88)) → U5_GGA(T85, T86, T88, add44_in_gga(T85, T86, T88))
ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga
U1_gga(x1, x2, x3, x4)  =  U1_gga(x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
MULT1_IN_GGA(x1, x2, x3)  =  MULT1_IN_GGA(x1, x2)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x4)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4)  =  U1_GGA(x4)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x4)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)
U4_AGA(x1, x2, x3, x4)  =  U4_AGA(x4)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x2, x4)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x4)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x4)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x4)

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

(33) Obligation:

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

MULT1_IN_GGA(s(s(T29)), T30, T12) → U6_GGA(T29, T30, T12, mult23_in_gga(T29, T30, X46))
MULT1_IN_GGA(s(s(T29)), T30, T12) → MULT23_IN_GGA(T29, T30, X46)
MULT23_IN_GGA(s(T45), T46, X74) → U1_GGA(T45, T46, X74, mult23_in_gga(T45, T46, X73))
MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)
MULT23_IN_GGA(s(T45), T46, X74) → U2_GGA(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_GGA(T45, T46, X74, add34_in_aga(T49, T46, X74))
U2_GGA(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → ADD34_IN_AGA(T49, T46, X74)
ADD34_IN_AGA(s(T63), T64, s(X101)) → U4_AGA(T63, T64, X101, add34_in_aga(T63, T64, X101))
ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)
MULT1_IN_GGA(s(s(T29)), T30, T12) → U7_GGA(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_GGA(T29, T30, T12, add34_in_aga(T33, T30, X47))
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → ADD34_IN_AGA(T33, T30, X47)
U7_GGA(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_GGA(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_GGA(T29, T30, T12, add44_in_gga(T69, T30, T12))
U9_GGA(T29, T30, T12, add34_out_aga(T33, T30, T69)) → ADD44_IN_GGA(T69, T30, T12)
ADD44_IN_GGA(s(T85), T86, s(T88)) → U5_GGA(T85, T86, T88, add44_in_gga(T85, T86, T88))
ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga
U1_gga(x1, x2, x3, x4)  =  U1_gga(x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
MULT1_IN_GGA(x1, x2, x3)  =  MULT1_IN_GGA(x1, x2)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x4)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4)  =  U1_GGA(x4)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x4)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)
U4_AGA(x1, x2, x3, x4)  =  U4_AGA(x4)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x2, x4)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x4)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x4)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x4)

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

(34) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 14 less nodes.

(35) Complex Obligation (AND)

(36) Obligation:

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

ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga
U1_gga(x1, x2, x3, x4)  =  U1_gga(x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)

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

(37) UsableRulesProof (EQUIVALENT transformation)

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

(38) Obligation:

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

ADD44_IN_GGA(s(T85), T86, s(T88)) → ADD44_IN_GGA(T85, T86, T88)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
ADD44_IN_GGA(x1, x2, x3)  =  ADD44_IN_GGA(x1, x2)

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

(39) PiDPToQDPProof (SOUND transformation)

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

(40) Obligation:

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

ADD44_IN_GGA(s(T85), T86) → ADD44_IN_GGA(T85, T86)

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

(41) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • ADD44_IN_GGA(s(T85), T86) → ADD44_IN_GGA(T85, T86)
    The graph contains the following edges 1 > 1, 2 >= 2

(42) YES

(43) Obligation:

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

ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga
U1_gga(x1, x2, x3, x4)  =  U1_gga(x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)

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

(44) UsableRulesProof (EQUIVALENT transformation)

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

(45) Obligation:

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

ADD34_IN_AGA(s(T63), T64, s(X101)) → ADD34_IN_AGA(T63, T64, X101)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
ADD34_IN_AGA(x1, x2, x3)  =  ADD34_IN_AGA(x2)

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

(46) PiDPToQDPProof (SOUND transformation)

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

(47) Obligation:

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

ADD34_IN_AGA(T64) → ADD34_IN_AGA(T64)

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

(48) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = ADD34_IN_AGA(T64) evaluates to t =ADD34_IN_AGA(T64)

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




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from ADD34_IN_AGA(T64) to ADD34_IN_AGA(T64).



(49) NO

(50) Obligation:

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

MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)

The TRS R consists of the following rules:

mult1_in_gga(0, T5, 0) → mult1_out_gga(0, T5, 0)
mult1_in_gga(s(0), T24, T24) → mult1_out_gga(s(0), T24, T24)
mult1_in_gga(s(s(T29)), T30, T12) → U6_gga(T29, T30, T12, mult23_in_gga(T29, T30, X46))
mult23_in_gga(0, T40, 0) → mult23_out_gga(0, T40, 0)
mult23_in_gga(s(T45), T46, X74) → U1_gga(T45, T46, X74, mult23_in_gga(T45, T46, X73))
mult23_in_gga(s(T45), T46, X74) → U2_gga(T45, T46, X74, mult23_in_gga(T45, T46, T49))
U2_gga(T45, T46, X74, mult23_out_gga(T45, T46, T49)) → U3_gga(T45, T46, X74, add34_in_aga(T49, T46, X74))
add34_in_aga(0, T58, T58) → add34_out_aga(0, T58, T58)
add34_in_aga(s(T63), T64, s(X101)) → U4_aga(T63, T64, X101, add34_in_aga(T63, T64, X101))
U4_aga(T63, T64, X101, add34_out_aga(T63, T64, X101)) → add34_out_aga(s(T63), T64, s(X101))
U3_gga(T45, T46, X74, add34_out_aga(T49, T46, X74)) → mult23_out_gga(s(T45), T46, X74)
U1_gga(T45, T46, X74, mult23_out_gga(T45, T46, X73)) → mult23_out_gga(s(T45), T46, X74)
U6_gga(T29, T30, T12, mult23_out_gga(T29, T30, X46)) → mult1_out_gga(s(s(T29)), T30, T12)
mult1_in_gga(s(s(T29)), T30, T12) → U7_gga(T29, T30, T12, mult23_in_gga(T29, T30, T33))
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U8_gga(T29, T30, T12, add34_in_aga(T33, T30, X47))
U8_gga(T29, T30, T12, add34_out_aga(T33, T30, X47)) → mult1_out_gga(s(s(T29)), T30, T12)
U7_gga(T29, T30, T12, mult23_out_gga(T29, T30, T33)) → U9_gga(T29, T30, T12, add34_in_aga(T33, T30, T69))
U9_gga(T29, T30, T12, add34_out_aga(T33, T30, T69)) → U10_gga(T29, T30, T12, add44_in_gga(T69, T30, T12))
add44_in_gga(0, T78, T78) → add44_out_gga(0, T78, T78)
add44_in_gga(s(T85), T86, s(T88)) → U5_gga(T85, T86, T88, add44_in_gga(T85, T86, T88))
U5_gga(T85, T86, T88, add44_out_gga(T85, T86, T88)) → add44_out_gga(s(T85), T86, s(T88))
U10_gga(T29, T30, T12, add44_out_gga(T69, T30, T12)) → mult1_out_gga(s(s(T29)), T30, T12)

The argument filtering Pi contains the following mapping:
mult1_in_gga(x1, x2, x3)  =  mult1_in_gga(x1, x2)
0  =  0
mult1_out_gga(x1, x2, x3)  =  mult1_out_gga
s(x1)  =  s(x1)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x4)
mult23_in_gga(x1, x2, x3)  =  mult23_in_gga(x1, x2)
mult23_out_gga(x1, x2, x3)  =  mult23_out_gga
U1_gga(x1, x2, x3, x4)  =  U1_gga(x4)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x2, x4)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)
add34_in_aga(x1, x2, x3)  =  add34_in_aga(x2)
add34_out_aga(x1, x2, x3)  =  add34_out_aga(x1, x3)
U4_aga(x1, x2, x3, x4)  =  U4_aga(x4)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x2, x4)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x4)
U9_gga(x1, x2, x3, x4)  =  U9_gga(x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
add44_in_gga(x1, x2, x3)  =  add44_in_gga(x1, x2)
add44_out_gga(x1, x2, x3)  =  add44_out_gga(x3)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)

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

(51) UsableRulesProof (EQUIVALENT transformation)

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

(52) Obligation:

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

MULT23_IN_GGA(s(T45), T46, X74) → MULT23_IN_GGA(T45, T46, X73)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
MULT23_IN_GGA(x1, x2, x3)  =  MULT23_IN_GGA(x1, x2)

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

(53) PiDPToQDPProof (SOUND transformation)

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

(54) Obligation:

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

MULT23_IN_GGA(s(T45), T46) → MULT23_IN_GGA(T45, T46)

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

(55) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • MULT23_IN_GGA(s(T45), T46) → MULT23_IN_GGA(T45, T46)
    The graph contains the following edges 1 > 1, 2 >= 2

(56) YES