0 Prolog
↳1 PrologToPrologProblemTransformerProof (⇐)
↳2 Prolog
↳3 PrologToPiTRSProof (⇐)
↳4 PiTRS
↳5 DependencyPairsProof (⇔)
↳6 PiDP
↳7 DependencyGraphProof (⇔)
↳8 AND
↳9 PiDP
↳10 UsableRulesProof (⇔)
↳11 PiDP
↳12 PiDPToQDPProof (⇐)
↳13 QDP
↳14 NonTerminationProof (⇔)
↳15 NO
↳16 PiDP
↳17 UsableRulesProof (⇔)
↳18 PiDP
↳19 PiDPToQDPProof (⇐)
↳20 QDP
↳21 NonTerminationProof (⇔)
↳22 NO
↳23 PiDP
↳24 UsableRulesProof (⇔)
↳25 PiDP
↳26 PiDPToQDPProof (⇐)
↳27 QDP
↳28 QDPSizeChangeProof (⇔)
↳29 YES
↳30 PiDP
↳31 UsableRulesProof (⇔)
↳32 PiDP
↳33 PiDPToQDPProof (⇐)
↳34 QDP
↳35 QDPSizeChangeProof (⇔)
↳36 YES
↳37 PrologToPiTRSProof (⇐)
↳38 PiTRS
↳39 DependencyPairsProof (⇔)
↳40 PiDP
↳41 DependencyGraphProof (⇔)
↳42 AND
↳43 PiDP
↳44 UsableRulesProof (⇔)
↳45 PiDP
↳46 PiDPToQDPProof (⇐)
↳47 QDP
↳48 NonTerminationProof (⇔)
↳49 NO
↳50 PiDP
↳51 UsableRulesProof (⇔)
↳52 PiDP
↳53 PiDPToQDPProof (⇐)
↳54 QDP
↳55 NonTerminationProof (⇔)
↳56 NO
↳57 PiDP
↳58 UsableRulesProof (⇔)
↳59 PiDP
↳60 PiDPToQDPProof (⇐)
↳61 QDP
↳62 QDPSizeChangeProof (⇔)
↳63 YES
↳64 PiDP
↳65 UsableRulesProof (⇔)
↳66 PiDP
↳67 PiDPToQDPProof (⇐)
↳68 QDP
↳69 QDPSizeChangeProof (⇔)
↳70 YES
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))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
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))
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)
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))
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)
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))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
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))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
ADD52_IN_AAA → ADD52_IN_AAA
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
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))
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
ADD24_IN_AAA → ADD24_IN_AAA
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)
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))
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)
P22_IN_GAAA(T38) → MULT23_IN_GAA(T38)
MULT23_IN_GAA(s(T53)) → P22_IN_GAAA(T53)
From the DPs we obtained the following set of size-change graphs:
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
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))
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
FACTORIAL10_IN_GA(s(T20)) → FACTORIAL10_IN_GA(T20)
From the DPs we obtained the following set of size-change graphs:
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))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
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))
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)
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))
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)
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))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
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))
ADD52_IN_AAA(s(T127), T128, s(T130)) → ADD52_IN_AAA(T127, T128, T130)
ADD52_IN_AAA → ADD52_IN_AAA
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
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))
ADD24_IN_AAA(s(T70), T71, s(X170)) → ADD24_IN_AAA(T70, T71, X170)
ADD24_IN_AAA → ADD24_IN_AAA
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)
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))
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)
P22_IN_GAAA(T38) → MULT23_IN_GAA(T38)
MULT23_IN_GAA(s(T53)) → P22_IN_GAAA(T53)
From the DPs we obtained the following set of size-change graphs:
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
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))
FACTORIAL10_IN_GA(s(T20), X53) → FACTORIAL10_IN_GA(T20, X52)
FACTORIAL10_IN_GA(s(T20)) → FACTORIAL10_IN_GA(T20)
From the DPs we obtained the following set of size-change graphs: