(0) Obligation:

Clauses:

isNat(s(X)) :- isNat(X).
isNat(0).
notEq(s(X), s(Y)) :- notEq(X, Y).
notEq(s(X), 0).
notEq(0, s(X)).
lt(s(X), s(Y)) :- lt(X, Y).
lt(0, s(Y)).
gt(s(X), s(Y)) :- gt(X, Y).
gt(s(X), 0).
le(s(X), s(Y)) :- le(X, Y).
le(0, s(Y)).
le(0, 0).
even(s(X)) :- odd(X).
even(0).
odd(s(X)) :- even(X).
odd(s(0)).
add(s(X), Y, s(Z)) :- add(X, Y, Z).
add(0, X, X).
mult(s(X), Y, R) :- ','(mult(X, Y, Z), add(Y, Z, R)).
mult(0, Y, 0).
factorial(s(X), R) :- ','(factorial(X, Y), mult(s(X), Y, R)).
factorial(0, s(0)).

Queries:

factorial(g,a).

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph.

(2) Obligation:

Clauses:

factorial10(s(T20), X53) :- factorial10(T20, X52).
factorial10(s(T20), X53) :- ','(factorial10(T20, T22), mult18(T20, T22, X53)).
factorial10(0, s(0)).
p22(T38, T39, X100, X101) :- mult23(T38, T39, X100).
p22(T38, T39, T42, X101) :- ','(mult23(T38, T39, T42), add24(T39, T42, X101)).
add24(s(T70), T71, s(X170)) :- add24(T70, T71, X170).
add24(0, T76, T76).
mult18(T38, T39, X101) :- p22(T38, T39, X100, X101).
add52(s(T127), T128, s(T130)) :- add52(T127, T128, T130).
add52(0, T136, T136).
mult23(s(T53), T54, X134) :- p22(T53, T54, X133, X134).
mult23(0, T59, 0).
mult70(0).
factorial1(s(s(T12)), T7) :- factorial10(T12, X24).
factorial1(s(s(T12)), T7) :- ','(factorial10(T12, T14), mult18(T12, T14, X25)).
factorial1(s(s(T103)), T106) :- ','(factorial10(T103, T14), ','(mult18(T103, T14, T104), mult18(T103, T104, X224))).
factorial1(s(s(T103)), T106) :- ','(factorial10(T103, T14), ','(mult18(T103, T14, T104), ','(mult18(T103, T104, T109), add52(T104, T109, T106)))).
factorial1(s(0), T147) :- mult70(X303).
factorial1(s(0), s(T167)) :- mult70(T167).
factorial1(0, s(0)).

Queries:

factorial1(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:
factorial1_in: (b,f)
factorial10_in: (b,f)
mult18_in: (b,f,f)
p22_in: (b,f,f,f)
mult23_in: (b,f,f)
add24_in: (f,f,f)
add52_in: (f,f,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

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

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)

(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:

FACTORIAL1_IN_GA(s(s(T12)), T7) → U11_GA(T12, T7, factorial10_in_ga(T12, X24))
FACTORIAL1_IN_GA(s(s(T12)), T7) → FACTORIAL10_IN_GA(T12, X24)
FACTORIAL10_IN_GA(s(T20), X53) → U1_GA(T20, X53, factorial10_in_ga(T20, X52))
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
FACTORIAL10_IN_GA(s(T20), X53) → U2_GA(T20, X53, factorial10_in_ga(T20, T22))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → U3_GA(T20, X53, mult18_in_gaa(T20, T22, X53))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → MULT18_IN_GAA(T20, T22, X53)
MULT18_IN_GAA(T38, T39, X101) → U8_GAA(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
MULT18_IN_GAA(T38, T39, X101) → P22_IN_GAAA(T38, T39, X100, X101)
P22_IN_GAAA(T38, T39, X100, X101) → U4_GAAA(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → U10_GAA(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)
P22_IN_GAAA(T38, T39, T42, X101) → U5_GAAA(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_GAAA(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → ADD24_IN_AAA(T39, T42, X101)
ADD24_IN_AAA(s(T70), T71, s(X170)) → U7_AAA(T70, T71, X170, add24_in_aaa(T70, T71, X170))
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
FACTORIAL1_IN_GA(s(s(T12)), T7) → U12_GA(T12, T7, factorial10_in_ga(T12, T14))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → U13_GA(T12, T7, mult18_in_gaa(T12, T14, X25))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → MULT18_IN_GAA(T12, T14, X25)
FACTORIAL1_IN_GA(s(s(T103)), T106) → U14_GA(T103, T106, factorial10_in_ga(T103, T14))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → U15_GA(T103, T106, mult18_in_gaa(T103, T14, T104))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → MULT18_IN_GAA(T103, T14, T104)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_GA(T103, T106, mult18_in_gaa(T103, T104, X224))
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → MULT18_IN_GAA(T103, T104, X224)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_GA(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_GA(T103, T106, add52_in_aaa(T104, T109, T106))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → ADD52_IN_AAA(T104, T109, T106)
ADD52_IN_AAA(s(T127), T128, s(T130)) → U9_AAA(T127, T128, T130, add52_in_aaa(T127, T128, T130))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
FACTORIAL1_IN_GA(s(0), T147) → U19_GA(T147, mult70_in_a(X303))
FACTORIAL1_IN_GA(s(0), T147) → MULT70_IN_A(X303)
FACTORIAL1_IN_GA(s(0), s(T167)) → U20_GA(T167, mult70_in_a(T167))
FACTORIAL1_IN_GA(s(0), s(T167)) → MULT70_IN_A(T167)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
FACTORIAL1_IN_GA(x1, x2)  =  FACTORIAL1_IN_GA(x1)
U11_GA(x1, x2, x3)  =  U11_GA(x3)
FACTORIAL10_IN_GA(x1, x2)  =  FACTORIAL10_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x3)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
U3_GA(x1, x2, x3)  =  U3_GA(x3)
MULT18_IN_GAA(x1, x2, x3)  =  MULT18_IN_GAA(x1)
U8_GAA(x1, x2, x3, x4)  =  U8_GAA(x4)
P22_IN_GAAA(x1, x2, x3, x4)  =  P22_IN_GAAA(x1)
U4_GAAA(x1, x2, x3, x4, x5)  =  U4_GAAA(x5)
MULT23_IN_GAA(x1, x2, x3)  =  MULT23_IN_GAA(x1)
U10_GAA(x1, x2, x3, x4)  =  U10_GAA(x4)
U5_GAAA(x1, x2, x3, x4, x5)  =  U5_GAAA(x5)
U6_GAAA(x1, x2, x3, x4, x5)  =  U6_GAAA(x5)
ADD24_IN_AAA(x1, x2, x3)  =  ADD24_IN_AAA
U7_AAA(x1, x2, x3, x4)  =  U7_AAA(x4)
U12_GA(x1, x2, x3)  =  U12_GA(x1, x3)
U13_GA(x1, x2, x3)  =  U13_GA(x3)
U14_GA(x1, x2, x3)  =  U14_GA(x1, x3)
U15_GA(x1, x2, x3)  =  U15_GA(x1, x3)
U16_GA(x1, x2, x3)  =  U16_GA(x3)
U17_GA(x1, x2, x3, x4)  =  U17_GA(x4)
U18_GA(x1, x2, x3)  =  U18_GA(x3)
ADD52_IN_AAA(x1, x2, x3)  =  ADD52_IN_AAA
U9_AAA(x1, x2, x3, x4)  =  U9_AAA(x4)
U19_GA(x1, x2)  =  U19_GA(x2)
MULT70_IN_A(x1)  =  MULT70_IN_A
U20_GA(x1, x2)  =  U20_GA(x2)

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

(6) Obligation:

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

FACTORIAL1_IN_GA(s(s(T12)), T7) → U11_GA(T12, T7, factorial10_in_ga(T12, X24))
FACTORIAL1_IN_GA(s(s(T12)), T7) → FACTORIAL10_IN_GA(T12, X24)
FACTORIAL10_IN_GA(s(T20), X53) → U1_GA(T20, X53, factorial10_in_ga(T20, X52))
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
FACTORIAL10_IN_GA(s(T20), X53) → U2_GA(T20, X53, factorial10_in_ga(T20, T22))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → U3_GA(T20, X53, mult18_in_gaa(T20, T22, X53))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → MULT18_IN_GAA(T20, T22, X53)
MULT18_IN_GAA(T38, T39, X101) → U8_GAA(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
MULT18_IN_GAA(T38, T39, X101) → P22_IN_GAAA(T38, T39, X100, X101)
P22_IN_GAAA(T38, T39, X100, X101) → U4_GAAA(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → U10_GAA(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)
P22_IN_GAAA(T38, T39, T42, X101) → U5_GAAA(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_GAAA(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → ADD24_IN_AAA(T39, T42, X101)
ADD24_IN_AAA(s(T70), T71, s(X170)) → U7_AAA(T70, T71, X170, add24_in_aaa(T70, T71, X170))
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
FACTORIAL1_IN_GA(s(s(T12)), T7) → U12_GA(T12, T7, factorial10_in_ga(T12, T14))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → U13_GA(T12, T7, mult18_in_gaa(T12, T14, X25))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → MULT18_IN_GAA(T12, T14, X25)
FACTORIAL1_IN_GA(s(s(T103)), T106) → U14_GA(T103, T106, factorial10_in_ga(T103, T14))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → U15_GA(T103, T106, mult18_in_gaa(T103, T14, T104))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → MULT18_IN_GAA(T103, T14, T104)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_GA(T103, T106, mult18_in_gaa(T103, T104, X224))
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → MULT18_IN_GAA(T103, T104, X224)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_GA(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_GA(T103, T106, add52_in_aaa(T104, T109, T106))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → ADD52_IN_AAA(T104, T109, T106)
ADD52_IN_AAA(s(T127), T128, s(T130)) → U9_AAA(T127, T128, T130, add52_in_aaa(T127, T128, T130))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
FACTORIAL1_IN_GA(s(0), T147) → U19_GA(T147, mult70_in_a(X303))
FACTORIAL1_IN_GA(s(0), T147) → MULT70_IN_A(X303)
FACTORIAL1_IN_GA(s(0), s(T167)) → U20_GA(T167, mult70_in_a(T167))
FACTORIAL1_IN_GA(s(0), s(T167)) → MULT70_IN_A(T167)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
FACTORIAL1_IN_GA(x1, x2)  =  FACTORIAL1_IN_GA(x1)
U11_GA(x1, x2, x3)  =  U11_GA(x3)
FACTORIAL10_IN_GA(x1, x2)  =  FACTORIAL10_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x3)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
U3_GA(x1, x2, x3)  =  U3_GA(x3)
MULT18_IN_GAA(x1, x2, x3)  =  MULT18_IN_GAA(x1)
U8_GAA(x1, x2, x3, x4)  =  U8_GAA(x4)
P22_IN_GAAA(x1, x2, x3, x4)  =  P22_IN_GAAA(x1)
U4_GAAA(x1, x2, x3, x4, x5)  =  U4_GAAA(x5)
MULT23_IN_GAA(x1, x2, x3)  =  MULT23_IN_GAA(x1)
U10_GAA(x1, x2, x3, x4)  =  U10_GAA(x4)
U5_GAAA(x1, x2, x3, x4, x5)  =  U5_GAAA(x5)
U6_GAAA(x1, x2, x3, x4, x5)  =  U6_GAAA(x5)
ADD24_IN_AAA(x1, x2, x3)  =  ADD24_IN_AAA
U7_AAA(x1, x2, x3, x4)  =  U7_AAA(x4)
U12_GA(x1, x2, x3)  =  U12_GA(x1, x3)
U13_GA(x1, x2, x3)  =  U13_GA(x3)
U14_GA(x1, x2, x3)  =  U14_GA(x1, x3)
U15_GA(x1, x2, x3)  =  U15_GA(x1, x3)
U16_GA(x1, x2, x3)  =  U16_GA(x3)
U17_GA(x1, x2, x3, x4)  =  U17_GA(x4)
U18_GA(x1, x2, x3)  =  U18_GA(x3)
ADD52_IN_AAA(x1, x2, x3)  =  ADD52_IN_AAA
U9_AAA(x1, x2, x3, x4)  =  U9_AAA(x4)
U19_GA(x1, x2)  =  U19_GA(x2)
MULT70_IN_A(x1)  =  MULT70_IN_A
U20_GA(x1, x2)  =  U20_GA(x2)

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

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 30 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

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

ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
ADD52_IN_AAA(x1, x2, x3)  =  ADD52_IN_AAA

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:

ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)

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

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:

ADD52_IN_AAAADD52_IN_AAA

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

(14) 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 = ADD52_IN_AAA evaluates to t =ADD52_IN_AAA

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 ADD52_IN_AAA to ADD52_IN_AAA.



(15) NO

(16) Obligation:

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

ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
ADD24_IN_AAA(x1, x2, x3)  =  ADD24_IN_AAA

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:

ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)

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

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:

ADD24_IN_AAAADD24_IN_AAA

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 = ADD24_IN_AAA evaluates to t =ADD24_IN_AAA

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




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from ADD24_IN_AAA to ADD24_IN_AAA.



(22) NO

(23) Obligation:

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

P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
P22_IN_GAAA(x1, x2, x3, x4)  =  P22_IN_GAAA(x1)
MULT23_IN_GAA(x1, x2, x3)  =  MULT23_IN_GAA(x1)

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:

P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)

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

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:

P22_IN_GAAA(T38) → MULT23_IN_GAA(T38)
MULT23_IN_GAA(s(T53)) → P22_IN_GAAA(T53)

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_GAA(s(T53)) → P22_IN_GAAA(T53)
    The graph contains the following edges 1 > 1

  • P22_IN_GAAA(T38) → MULT23_IN_GAA(T38)
    The graph contains the following edges 1 >= 1

(29) YES

(30) Obligation:

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

FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga
U3_ga(x1, x2, x3)  =  U3_ga(x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa
factorial1_out_ga(x1, x2)  =  factorial1_out_ga
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x4)
U18_ga(x1, x2, x3)  =  U18_ga(x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
FACTORIAL10_IN_GA(x1, x2)  =  FACTORIAL10_IN_GA(x1)

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

(31) UsableRulesProof (EQUIVALENT transformation)

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

(32) Obligation:

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

FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)

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

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

(33) PiDPToQDPProof (SOUND transformation)

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

(34) Obligation:

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

FACTORIAL10_IN_GA(s(T20)) → FACTORIAL10_IN_GA(T20)

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

(35) 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:

  • FACTORIAL10_IN_GA(s(T20)) → FACTORIAL10_IN_GA(T20)
    The graph contains the following edges 1 > 1

(36) YES

(37) PrologToPiTRSProof (SOUND transformation)

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

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(38) Obligation:

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

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)

(39) 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:

FACTORIAL1_IN_GA(s(s(T12)), T7) → U11_GA(T12, T7, factorial10_in_ga(T12, X24))
FACTORIAL1_IN_GA(s(s(T12)), T7) → FACTORIAL10_IN_GA(T12, X24)
FACTORIAL10_IN_GA(s(T20), X53) → U1_GA(T20, X53, factorial10_in_ga(T20, X52))
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
FACTORIAL10_IN_GA(s(T20), X53) → U2_GA(T20, X53, factorial10_in_ga(T20, T22))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → U3_GA(T20, X53, mult18_in_gaa(T20, T22, X53))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → MULT18_IN_GAA(T20, T22, X53)
MULT18_IN_GAA(T38, T39, X101) → U8_GAA(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
MULT18_IN_GAA(T38, T39, X101) → P22_IN_GAAA(T38, T39, X100, X101)
P22_IN_GAAA(T38, T39, X100, X101) → U4_GAAA(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → U10_GAA(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)
P22_IN_GAAA(T38, T39, T42, X101) → U5_GAAA(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_GAAA(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → ADD24_IN_AAA(T39, T42, X101)
ADD24_IN_AAA(s(T70), T71, s(X170)) → U7_AAA(T70, T71, X170, add24_in_aaa(T70, T71, X170))
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
FACTORIAL1_IN_GA(s(s(T12)), T7) → U12_GA(T12, T7, factorial10_in_ga(T12, T14))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → U13_GA(T12, T7, mult18_in_gaa(T12, T14, X25))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → MULT18_IN_GAA(T12, T14, X25)
FACTORIAL1_IN_GA(s(s(T103)), T106) → U14_GA(T103, T106, factorial10_in_ga(T103, T14))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → U15_GA(T103, T106, mult18_in_gaa(T103, T14, T104))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → MULT18_IN_GAA(T103, T14, T104)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_GA(T103, T106, mult18_in_gaa(T103, T104, X224))
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → MULT18_IN_GAA(T103, T104, X224)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_GA(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_GA(T103, T106, add52_in_aaa(T104, T109, T106))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → ADD52_IN_AAA(T104, T109, T106)
ADD52_IN_AAA(s(T127), T128, s(T130)) → U9_AAA(T127, T128, T130, add52_in_aaa(T127, T128, T130))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
FACTORIAL1_IN_GA(s(0), T147) → U19_GA(T147, mult70_in_a(X303))
FACTORIAL1_IN_GA(s(0), T147) → MULT70_IN_A(X303)
FACTORIAL1_IN_GA(s(0), s(T167)) → U20_GA(T167, mult70_in_a(T167))
FACTORIAL1_IN_GA(s(0), s(T167)) → MULT70_IN_A(T167)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
FACTORIAL1_IN_GA(x1, x2)  =  FACTORIAL1_IN_GA(x1)
U11_GA(x1, x2, x3)  =  U11_GA(x1, x3)
FACTORIAL10_IN_GA(x1, x2)  =  FACTORIAL10_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
MULT18_IN_GAA(x1, x2, x3)  =  MULT18_IN_GAA(x1)
U8_GAA(x1, x2, x3, x4)  =  U8_GAA(x1, x4)
P22_IN_GAAA(x1, x2, x3, x4)  =  P22_IN_GAAA(x1)
U4_GAAA(x1, x2, x3, x4, x5)  =  U4_GAAA(x1, x5)
MULT23_IN_GAA(x1, x2, x3)  =  MULT23_IN_GAA(x1)
U10_GAA(x1, x2, x3, x4)  =  U10_GAA(x1, x4)
U5_GAAA(x1, x2, x3, x4, x5)  =  U5_GAAA(x1, x5)
U6_GAAA(x1, x2, x3, x4, x5)  =  U6_GAAA(x1, x5)
ADD24_IN_AAA(x1, x2, x3)  =  ADD24_IN_AAA
U7_AAA(x1, x2, x3, x4)  =  U7_AAA(x4)
U12_GA(x1, x2, x3)  =  U12_GA(x1, x3)
U13_GA(x1, x2, x3)  =  U13_GA(x1, x3)
U14_GA(x1, x2, x3)  =  U14_GA(x1, x3)
U15_GA(x1, x2, x3)  =  U15_GA(x1, x3)
U16_GA(x1, x2, x3)  =  U16_GA(x1, x3)
U17_GA(x1, x2, x3, x4)  =  U17_GA(x1, x4)
U18_GA(x1, x2, x3)  =  U18_GA(x1, x3)
ADD52_IN_AAA(x1, x2, x3)  =  ADD52_IN_AAA
U9_AAA(x1, x2, x3, x4)  =  U9_AAA(x4)
U19_GA(x1, x2)  =  U19_GA(x2)
MULT70_IN_A(x1)  =  MULT70_IN_A
U20_GA(x1, x2)  =  U20_GA(x2)

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

(40) Obligation:

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

FACTORIAL1_IN_GA(s(s(T12)), T7) → U11_GA(T12, T7, factorial10_in_ga(T12, X24))
FACTORIAL1_IN_GA(s(s(T12)), T7) → FACTORIAL10_IN_GA(T12, X24)
FACTORIAL10_IN_GA(s(T20), X53) → U1_GA(T20, X53, factorial10_in_ga(T20, X52))
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
FACTORIAL10_IN_GA(s(T20), X53) → U2_GA(T20, X53, factorial10_in_ga(T20, T22))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → U3_GA(T20, X53, mult18_in_gaa(T20, T22, X53))
U2_GA(T20, X53, factorial10_out_ga(T20, T22)) → MULT18_IN_GAA(T20, T22, X53)
MULT18_IN_GAA(T38, T39, X101) → U8_GAA(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
MULT18_IN_GAA(T38, T39, X101) → P22_IN_GAAA(T38, T39, X100, X101)
P22_IN_GAAA(T38, T39, X100, X101) → U4_GAAA(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → U10_GAA(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)
P22_IN_GAAA(T38, T39, T42, X101) → U5_GAAA(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_GAAA(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
U5_GAAA(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → ADD24_IN_AAA(T39, T42, X101)
ADD24_IN_AAA(s(T70), T71, s(X170)) → U7_AAA(T70, T71, X170, add24_in_aaa(T70, T71, X170))
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
FACTORIAL1_IN_GA(s(s(T12)), T7) → U12_GA(T12, T7, factorial10_in_ga(T12, T14))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → U13_GA(T12, T7, mult18_in_gaa(T12, T14, X25))
U12_GA(T12, T7, factorial10_out_ga(T12, T14)) → MULT18_IN_GAA(T12, T14, X25)
FACTORIAL1_IN_GA(s(s(T103)), T106) → U14_GA(T103, T106, factorial10_in_ga(T103, T14))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → U15_GA(T103, T106, mult18_in_gaa(T103, T14, T104))
U14_GA(T103, T106, factorial10_out_ga(T103, T14)) → MULT18_IN_GAA(T103, T14, T104)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_GA(T103, T106, mult18_in_gaa(T103, T104, X224))
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → MULT18_IN_GAA(T103, T104, X224)
U15_GA(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_GA(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_GA(T103, T106, add52_in_aaa(T104, T109, T106))
U17_GA(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → ADD52_IN_AAA(T104, T109, T106)
ADD52_IN_AAA(s(T127), T128, s(T130)) → U9_AAA(T127, T128, T130, add52_in_aaa(T127, T128, T130))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
FACTORIAL1_IN_GA(s(0), T147) → U19_GA(T147, mult70_in_a(X303))
FACTORIAL1_IN_GA(s(0), T147) → MULT70_IN_A(X303)
FACTORIAL1_IN_GA(s(0), s(T167)) → U20_GA(T167, mult70_in_a(T167))
FACTORIAL1_IN_GA(s(0), s(T167)) → MULT70_IN_A(T167)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
FACTORIAL1_IN_GA(x1, x2)  =  FACTORIAL1_IN_GA(x1)
U11_GA(x1, x2, x3)  =  U11_GA(x1, x3)
FACTORIAL10_IN_GA(x1, x2)  =  FACTORIAL10_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
MULT18_IN_GAA(x1, x2, x3)  =  MULT18_IN_GAA(x1)
U8_GAA(x1, x2, x3, x4)  =  U8_GAA(x1, x4)
P22_IN_GAAA(x1, x2, x3, x4)  =  P22_IN_GAAA(x1)
U4_GAAA(x1, x2, x3, x4, x5)  =  U4_GAAA(x1, x5)
MULT23_IN_GAA(x1, x2, x3)  =  MULT23_IN_GAA(x1)
U10_GAA(x1, x2, x3, x4)  =  U10_GAA(x1, x4)
U5_GAAA(x1, x2, x3, x4, x5)  =  U5_GAAA(x1, x5)
U6_GAAA(x1, x2, x3, x4, x5)  =  U6_GAAA(x1, x5)
ADD24_IN_AAA(x1, x2, x3)  =  ADD24_IN_AAA
U7_AAA(x1, x2, x3, x4)  =  U7_AAA(x4)
U12_GA(x1, x2, x3)  =  U12_GA(x1, x3)
U13_GA(x1, x2, x3)  =  U13_GA(x1, x3)
U14_GA(x1, x2, x3)  =  U14_GA(x1, x3)
U15_GA(x1, x2, x3)  =  U15_GA(x1, x3)
U16_GA(x1, x2, x3)  =  U16_GA(x1, x3)
U17_GA(x1, x2, x3, x4)  =  U17_GA(x1, x4)
U18_GA(x1, x2, x3)  =  U18_GA(x1, x3)
ADD52_IN_AAA(x1, x2, x3)  =  ADD52_IN_AAA
U9_AAA(x1, x2, x3, x4)  =  U9_AAA(x4)
U19_GA(x1, x2)  =  U19_GA(x2)
MULT70_IN_A(x1)  =  MULT70_IN_A
U20_GA(x1, x2)  =  U20_GA(x2)

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

(41) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 30 less nodes.

(42) Complex Obligation (AND)

(43) Obligation:

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

ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
ADD52_IN_AAA(x1, x2, x3)  =  ADD52_IN_AAA

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:

ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)

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

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:

ADD52_IN_AAAADD52_IN_AAA

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 = ADD52_IN_AAA evaluates to t =ADD52_IN_AAA

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




Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from ADD52_IN_AAA to ADD52_IN_AAA.



(49) NO

(50) Obligation:

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

ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
ADD24_IN_AAA(x1, x2, x3)  =  ADD24_IN_AAA

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:

ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)

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

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:

ADD24_IN_AAAADD24_IN_AAA

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

(55) 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 = ADD24_IN_AAA evaluates to t =ADD24_IN_AAA

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 ADD24_IN_AAA to ADD24_IN_AAA.



(56) NO

(57) Obligation:

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

P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
P22_IN_GAAA(x1, x2, x3, x4)  =  P22_IN_GAAA(x1)
MULT23_IN_GAA(x1, x2, x3)  =  MULT23_IN_GAA(x1)

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

(58) UsableRulesProof (EQUIVALENT transformation)

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

(59) Obligation:

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

P22_IN_GAAA(T38, T39, X100, X101) → MULT23_IN_GAA(T38, T39, X100)
MULT23_IN_GAA(s(T53), T54, X134) → P22_IN_GAAA(T53, T54, X133, X134)

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

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

(60) PiDPToQDPProof (SOUND transformation)

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

(61) Obligation:

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

P22_IN_GAAA(T38) → MULT23_IN_GAA(T38)
MULT23_IN_GAA(s(T53)) → P22_IN_GAAA(T53)

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

(62) 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_GAA(s(T53)) → P22_IN_GAAA(T53)
    The graph contains the following edges 1 > 1

  • P22_IN_GAAA(T38) → MULT23_IN_GAA(T38)
    The graph contains the following edges 1 >= 1

(63) YES

(64) Obligation:

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

FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)

The TRS R consists of the following rules:

factorial1_in_ga(s(s(T12)), T7) → U11_ga(T12, T7, factorial10_in_ga(T12, X24))
factorial10_in_ga(s(T20), X53) → U1_ga(T20, X53, factorial10_in_ga(T20, X52))
factorial10_in_ga(s(T20), X53) → U2_ga(T20, X53, factorial10_in_ga(T20, T22))
factorial10_in_ga(0, s(0)) → factorial10_out_ga(0, s(0))
U2_ga(T20, X53, factorial10_out_ga(T20, T22)) → U3_ga(T20, X53, mult18_in_gaa(T20, T22, X53))
mult18_in_gaa(T38, T39, X101) → U8_gaa(T38, T39, X101, p22_in_gaaa(T38, T39, X100, X101))
p22_in_gaaa(T38, T39, X100, X101) → U4_gaaa(T38, T39, X100, X101, mult23_in_gaa(T38, T39, X100))
mult23_in_gaa(s(T53), T54, X134) → U10_gaa(T53, T54, X134, p22_in_gaaa(T53, T54, X133, X134))
p22_in_gaaa(T38, T39, T42, X101) → U5_gaaa(T38, T39, T42, X101, mult23_in_gaa(T38, T39, T42))
mult23_in_gaa(0, T59, 0) → mult23_out_gaa(0, T59, 0)
U5_gaaa(T38, T39, T42, X101, mult23_out_gaa(T38, T39, T42)) → U6_gaaa(T38, T39, T42, X101, add24_in_aaa(T39, T42, X101))
add24_in_aaa(s(T70), T71, s(X170)) → U7_aaa(T70, T71, X170, add24_in_aaa(T70, T71, X170))
add24_in_aaa(0, T76, T76) → add24_out_aaa(0, T76, T76)
U7_aaa(T70, T71, X170, add24_out_aaa(T70, T71, X170)) → add24_out_aaa(s(T70), T71, s(X170))
U6_gaaa(T38, T39, T42, X101, add24_out_aaa(T39, T42, X101)) → p22_out_gaaa(T38, T39, T42, X101)
U10_gaa(T53, T54, X134, p22_out_gaaa(T53, T54, X133, X134)) → mult23_out_gaa(s(T53), T54, X134)
U4_gaaa(T38, T39, X100, X101, mult23_out_gaa(T38, T39, X100)) → p22_out_gaaa(T38, T39, X100, X101)
U8_gaa(T38, T39, X101, p22_out_gaaa(T38, T39, X100, X101)) → mult18_out_gaa(T38, T39, X101)
U3_ga(T20, X53, mult18_out_gaa(T20, T22, X53)) → factorial10_out_ga(s(T20), X53)
U1_ga(T20, X53, factorial10_out_ga(T20, X52)) → factorial10_out_ga(s(T20), X53)
U11_ga(T12, T7, factorial10_out_ga(T12, X24)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T12)), T7) → U12_ga(T12, T7, factorial10_in_ga(T12, T14))
U12_ga(T12, T7, factorial10_out_ga(T12, T14)) → U13_ga(T12, T7, mult18_in_gaa(T12, T14, X25))
U13_ga(T12, T7, mult18_out_gaa(T12, T14, X25)) → factorial1_out_ga(s(s(T12)), T7)
factorial1_in_ga(s(s(T103)), T106) → U14_ga(T103, T106, factorial10_in_ga(T103, T14))
U14_ga(T103, T106, factorial10_out_ga(T103, T14)) → U15_ga(T103, T106, mult18_in_gaa(T103, T14, T104))
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U16_ga(T103, T106, mult18_in_gaa(T103, T104, X224))
U16_ga(T103, T106, mult18_out_gaa(T103, T104, X224)) → factorial1_out_ga(s(s(T103)), T106)
U15_ga(T103, T106, mult18_out_gaa(T103, T14, T104)) → U17_ga(T103, T106, T104, mult18_in_gaa(T103, T104, T109))
U17_ga(T103, T106, T104, mult18_out_gaa(T103, T104, T109)) → U18_ga(T103, T106, add52_in_aaa(T104, T109, T106))
add52_in_aaa(s(T127), T128, s(T130)) → U9_aaa(T127, T128, T130, add52_in_aaa(T127, T128, T130))
add52_in_aaa(0, T136, T136) → add52_out_aaa(0, T136, T136)
U9_aaa(T127, T128, T130, add52_out_aaa(T127, T128, T130)) → add52_out_aaa(s(T127), T128, s(T130))
U18_ga(T103, T106, add52_out_aaa(T104, T109, T106)) → factorial1_out_ga(s(s(T103)), T106)
factorial1_in_ga(s(0), T147) → U19_ga(T147, mult70_in_a(X303))
mult70_in_a(0) → mult70_out_a(0)
U19_ga(T147, mult70_out_a(X303)) → factorial1_out_ga(s(0), T147)
factorial1_in_ga(s(0), s(T167)) → U20_ga(T167, mult70_in_a(T167))
U20_ga(T167, mult70_out_a(T167)) → factorial1_out_ga(s(0), s(T167))
factorial1_in_ga(0, s(0)) → factorial1_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorial1_in_ga(x1, x2)  =  factorial1_in_ga(x1)
s(x1)  =  s(x1)
U11_ga(x1, x2, x3)  =  U11_ga(x1, x3)
factorial10_in_ga(x1, x2)  =  factorial10_in_ga(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
U2_ga(x1, x2, x3)  =  U2_ga(x1, x3)
0  =  0
factorial10_out_ga(x1, x2)  =  factorial10_out_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
mult18_in_gaa(x1, x2, x3)  =  mult18_in_gaa(x1)
U8_gaa(x1, x2, x3, x4)  =  U8_gaa(x1, x4)
p22_in_gaaa(x1, x2, x3, x4)  =  p22_in_gaaa(x1)
U4_gaaa(x1, x2, x3, x4, x5)  =  U4_gaaa(x1, x5)
mult23_in_gaa(x1, x2, x3)  =  mult23_in_gaa(x1)
U10_gaa(x1, x2, x3, x4)  =  U10_gaa(x1, x4)
U5_gaaa(x1, x2, x3, x4, x5)  =  U5_gaaa(x1, x5)
mult23_out_gaa(x1, x2, x3)  =  mult23_out_gaa(x1)
U6_gaaa(x1, x2, x3, x4, x5)  =  U6_gaaa(x1, x5)
p22_out_gaaa(x1, x2, x3, x4)  =  p22_out_gaaa(x1)
add24_in_aaa(x1, x2, x3)  =  add24_in_aaa
U7_aaa(x1, x2, x3, x4)  =  U7_aaa(x4)
add24_out_aaa(x1, x2, x3)  =  add24_out_aaa(x1)
mult18_out_gaa(x1, x2, x3)  =  mult18_out_gaa(x1)
factorial1_out_ga(x1, x2)  =  factorial1_out_ga(x1)
U12_ga(x1, x2, x3)  =  U12_ga(x1, x3)
U13_ga(x1, x2, x3)  =  U13_ga(x1, x3)
U14_ga(x1, x2, x3)  =  U14_ga(x1, x3)
U15_ga(x1, x2, x3)  =  U15_ga(x1, x3)
U16_ga(x1, x2, x3)  =  U16_ga(x1, x3)
U17_ga(x1, x2, x3, x4)  =  U17_ga(x1, x4)
U18_ga(x1, x2, x3)  =  U18_ga(x1, x3)
add52_in_aaa(x1, x2, x3)  =  add52_in_aaa
U9_aaa(x1, x2, x3, x4)  =  U9_aaa(x4)
add52_out_aaa(x1, x2, x3)  =  add52_out_aaa(x1)
U19_ga(x1, x2)  =  U19_ga(x2)
mult70_in_a(x1)  =  mult70_in_a
mult70_out_a(x1)  =  mult70_out_a(x1)
U20_ga(x1, x2)  =  U20_ga(x2)
FACTORIAL10_IN_GA(x1, x2)  =  FACTORIAL10_IN_GA(x1)

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

(65) UsableRulesProof (EQUIVALENT transformation)

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

(66) Obligation:

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

FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)

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

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

(67) PiDPToQDPProof (SOUND transformation)

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

(68) Obligation:

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

FACTORIAL10_IN_GA(s(T20)) → FACTORIAL10_IN_GA(T20)

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

(69) 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:

  • FACTORIAL10_IN_GA(s(T20)) → FACTORIAL10_IN_GA(T20)
    The graph contains the following edges 1 > 1

(70) YES