(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)).

Query: factorial(g,a)

(1) PrologToPiTRSViaGraphTransformerProof (SOUND transformation)

Transformed Prolog program to (Pi-)TRS.

(2) Obligation:

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

factorialA_in_ga(s(s(T12)), T7) → U1_ga(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
pB_in_gaaa(T12, T14, X23, T7) → U9_gaaa(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
factorialD_in_ga(s(T20), X49) → U3_ga(T20, X49, pE_in_gaa(T20, X48, X49))
pE_in_gaa(T20, T22, X49) → U13_gaa(T20, T22, X49, factorialD_in_ga(T20, T22))
factorialD_in_ga(0, s(0)) → factorialD_out_ga(0, s(0))
U13_gaa(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_gaa(T20, T22, X49, multG_in_gga(T20, T22, X49))
multG_in_gga(T38, T39, X95) → U5_gga(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
pH_in_ggaa(T38, T39, T42, X95) → U15_ggaa(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
multL_in_gga(s(T53), T54, X128) → U8_gga(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
U8_gga(T53, T54, X128, pH_out_ggaa(T53, T54, X127, X128)) → multL_out_gga(s(T53), T54, X128)
multL_in_gga(0, T59, 0) → multL_out_gga(0, T59, 0)
U15_ggaa(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_ggaa(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
addF_in_gga(s(T70), T71, s(X160)) → U4_gga(T70, T71, X160, addF_in_gga(T70, T71, X160))
addF_in_gga(0, T76, T76) → addF_out_gga(0, T76, T76)
U4_gga(T70, T71, X160, addF_out_gga(T70, T71, X160)) → addF_out_gga(s(T70), T71, s(X160))
U16_ggaa(T38, T39, T42, X95, addF_out_gga(T39, T42, X95)) → pH_out_ggaa(T38, T39, T42, X95)
U5_gga(T38, T39, X95, pH_out_ggaa(T38, T39, X94, X95)) → multG_out_gga(T38, T39, X95)
U14_gaa(T20, T22, X49, multG_out_gga(T20, T22, X49)) → pE_out_gaa(T20, T22, X49)
U3_ga(T20, X49, pE_out_gaa(T20, X48, X49)) → factorialD_out_ga(s(T20), X49)
U9_gaaa(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_gaaa(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
pO_in_ggaa(T12, T14, T79, T7) → U11_ggaa(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
U11_ggaa(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_ggaa(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
multJ_in_gga(T103, T104, T106) → U7_gga(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
pK_in_ggaa(T103, T104, T109, T106) → U17_ggaa(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
U17_ggaa(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_ggaa(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
addI_in_gga(s(T127), T128, s(T130)) → U6_gga(T127, T128, T130, addI_in_gga(T127, T128, T130))
addI_in_gga(0, T136, T136) → addI_out_gga(0, T136, T136)
U6_gga(T127, T128, T130, addI_out_gga(T127, T128, T130)) → addI_out_gga(s(T127), T128, s(T130))
U18_ggaa(T103, T104, T109, T106, addI_out_gga(T104, T109, T106)) → pK_out_ggaa(T103, T104, T109, T106)
U7_gga(T103, T104, T106, pK_out_ggaa(T103, T104, X210, T106)) → multJ_out_gga(T103, T104, T106)
U12_ggaa(T12, T14, T79, T7, multJ_out_gga(T12, T79, T7)) → pO_out_ggaa(T12, T14, T79, T7)
U10_gaaa(T12, T14, X23, T7, pO_out_ggaa(T12, T14, X23, T7)) → pB_out_gaaa(T12, T14, X23, T7)
U1_ga(T12, T7, pB_out_gaaa(T12, X22, X23, T7)) → factorialA_out_ga(s(s(T12)), T7)
factorialA_in_ga(s(0), T145) → U2_ga(T145, pC_in_aa(X275, T145))
pC_in_aa(T146, T145) → U19_aa(T146, T145, multM_in_a(T146))
multM_in_a(0) → multM_out_a(0)
U19_aa(T146, T145, multM_out_a(T146)) → U20_aa(T146, T145, addN_in_ga(T146, T145))
addN_in_ga(T162, s(T162)) → addN_out_ga(T162, s(T162))
U20_aa(T146, T145, addN_out_ga(T146, T145)) → pC_out_aa(T146, T145)
U2_ga(T145, pC_out_aa(X275, T145)) → factorialA_out_ga(s(0), T145)
factorialA_in_ga(0, s(0)) → factorialA_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorialA_in_ga(x1, x2)  =  factorialA_in_ga(x1)
s(x1)  =  s(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pB_in_gaaa(x1, x2, x3, x4)  =  pB_in_gaaa(x1)
U9_gaaa(x1, x2, x3, x4, x5)  =  U9_gaaa(x1, x5)
factorialD_in_ga(x1, x2)  =  factorialD_in_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
pE_in_gaa(x1, x2, x3)  =  pE_in_gaa(x1)
U13_gaa(x1, x2, x3, x4)  =  U13_gaa(x1, x4)
0  =  0
factorialD_out_ga(x1, x2)  =  factorialD_out_ga(x1, x2)
U14_gaa(x1, x2, x3, x4)  =  U14_gaa(x1, x2, x4)
multG_in_gga(x1, x2, x3)  =  multG_in_gga(x1, x2)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
pH_in_ggaa(x1, x2, x3, x4)  =  pH_in_ggaa(x1, x2)
U15_ggaa(x1, x2, x3, x4, x5)  =  U15_ggaa(x1, x2, x5)
multL_in_gga(x1, x2, x3)  =  multL_in_gga(x1, x2)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
pH_out_ggaa(x1, x2, x3, x4)  =  pH_out_ggaa(x1, x2, x3, x4)
multL_out_gga(x1, x2, x3)  =  multL_out_gga(x1, x2, x3)
U16_ggaa(x1, x2, x3, x4, x5)  =  U16_ggaa(x1, x2, x3, x5)
addF_in_gga(x1, x2, x3)  =  addF_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4)  =  U4_gga(x1, x2, x4)
addF_out_gga(x1, x2, x3)  =  addF_out_gga(x1, x2, x3)
multG_out_gga(x1, x2, x3)  =  multG_out_gga(x1, x2, x3)
pE_out_gaa(x1, x2, x3)  =  pE_out_gaa(x1, x2, x3)
U10_gaaa(x1, x2, x3, x4, x5)  =  U10_gaaa(x1, x2, x5)
pO_in_ggaa(x1, x2, x3, x4)  =  pO_in_ggaa(x1, x2)
U11_ggaa(x1, x2, x3, x4, x5)  =  U11_ggaa(x1, x2, x5)
U12_ggaa(x1, x2, x3, x4, x5)  =  U12_ggaa(x1, x2, x3, x5)
multJ_in_gga(x1, x2, x3)  =  multJ_in_gga(x1, x2)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
pK_in_ggaa(x1, x2, x3, x4)  =  pK_in_ggaa(x1, x2)
U17_ggaa(x1, x2, x3, x4, x5)  =  U17_ggaa(x1, x2, x5)
U18_ggaa(x1, x2, x3, x4, x5)  =  U18_ggaa(x1, x2, x3, x5)
addI_in_gga(x1, x2, x3)  =  addI_in_gga(x1, x2)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
addI_out_gga(x1, x2, x3)  =  addI_out_gga(x1, x2, x3)
pK_out_ggaa(x1, x2, x3, x4)  =  pK_out_ggaa(x1, x2, x3, x4)
multJ_out_gga(x1, x2, x3)  =  multJ_out_gga(x1, x2, x3)
pO_out_ggaa(x1, x2, x3, x4)  =  pO_out_ggaa(x1, x2, x3, x4)
pB_out_gaaa(x1, x2, x3, x4)  =  pB_out_gaaa(x1, x2, x3, x4)
factorialA_out_ga(x1, x2)  =  factorialA_out_ga(x1, x2)
U2_ga(x1, x2)  =  U2_ga(x2)
pC_in_aa(x1, x2)  =  pC_in_aa
U19_aa(x1, x2, x3)  =  U19_aa(x3)
multM_in_a(x1)  =  multM_in_a
multM_out_a(x1)  =  multM_out_a(x1)
U20_aa(x1, x2, x3)  =  U20_aa(x1, x3)
addN_in_ga(x1, x2)  =  addN_in_ga(x1)
addN_out_ga(x1, x2)  =  addN_out_ga(x1, x2)
pC_out_aa(x1, x2)  =  pC_out_aa(x1, x2)

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

FACTORIALA_IN_GA(s(s(T12)), T7) → U1_GA(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
FACTORIALA_IN_GA(s(s(T12)), T7) → PB_IN_GAAA(T12, X22, X23, T7)
PB_IN_GAAA(T12, T14, X23, T7) → U9_GAAA(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
PB_IN_GAAA(T12, T14, X23, T7) → FACTORIALD_IN_GA(T12, T14)
FACTORIALD_IN_GA(s(T20), X49) → U3_GA(T20, X49, pE_in_gaa(T20, X48, X49))
FACTORIALD_IN_GA(s(T20), X49) → PE_IN_GAA(T20, X48, X49)
PE_IN_GAA(T20, T22, X49) → U13_GAA(T20, T22, X49, factorialD_in_ga(T20, T22))
PE_IN_GAA(T20, T22, X49) → FACTORIALD_IN_GA(T20, T22)
U13_GAA(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_GAA(T20, T22, X49, multG_in_gga(T20, T22, X49))
U13_GAA(T20, T22, X49, factorialD_out_ga(T20, T22)) → MULTG_IN_GGA(T20, T22, X49)
MULTG_IN_GGA(T38, T39, X95) → U5_GGA(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
MULTG_IN_GGA(T38, T39, X95) → PH_IN_GGAA(T38, T39, X94, X95)
PH_IN_GGAA(T38, T39, T42, X95) → U15_GGAA(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
PH_IN_GGAA(T38, T39, T42, X95) → MULTL_IN_GGA(T38, T39, T42)
MULTL_IN_GGA(s(T53), T54, X128) → U8_GGA(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
MULTL_IN_GGA(s(T53), T54, X128) → PH_IN_GGAA(T53, T54, X127, X128)
U15_GGAA(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_GGAA(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
U15_GGAA(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → ADDF_IN_GGA(T39, T42, X95)
ADDF_IN_GGA(s(T70), T71, s(X160)) → U4_GGA(T70, T71, X160, addF_in_gga(T70, T71, X160))
ADDF_IN_GGA(s(T70), T71, s(X160)) → ADDF_IN_GGA(T70, T71, X160)
U9_GAAA(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_GAAA(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
U9_GAAA(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → PO_IN_GGAA(T12, T14, X23, T7)
PO_IN_GGAA(T12, T14, T79, T7) → U11_GGAA(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
PO_IN_GGAA(T12, T14, T79, T7) → MULTG_IN_GGA(T12, T14, T79)
U11_GGAA(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_GGAA(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
U11_GGAA(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → MULTJ_IN_GGA(T12, T79, T7)
MULTJ_IN_GGA(T103, T104, T106) → U7_GGA(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
MULTJ_IN_GGA(T103, T104, T106) → PK_IN_GGAA(T103, T104, X210, T106)
PK_IN_GGAA(T103, T104, T109, T106) → U17_GGAA(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
PK_IN_GGAA(T103, T104, T109, T106) → MULTG_IN_GGA(T103, T104, T109)
U17_GGAA(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_GGAA(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
U17_GGAA(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → ADDI_IN_GGA(T104, T109, T106)
ADDI_IN_GGA(s(T127), T128, s(T130)) → U6_GGA(T127, T128, T130, addI_in_gga(T127, T128, T130))
ADDI_IN_GGA(s(T127), T128, s(T130)) → ADDI_IN_GGA(T127, T128, T130)
FACTORIALA_IN_GA(s(0), T145) → U2_GA(T145, pC_in_aa(X275, T145))
FACTORIALA_IN_GA(s(0), T145) → PC_IN_AA(X275, T145)
PC_IN_AA(T146, T145) → U19_AA(T146, T145, multM_in_a(T146))
PC_IN_AA(T146, T145) → MULTM_IN_A(T146)
U19_AA(T146, T145, multM_out_a(T146)) → U20_AA(T146, T145, addN_in_ga(T146, T145))
U19_AA(T146, T145, multM_out_a(T146)) → ADDN_IN_GA(T146, T145)

The TRS R consists of the following rules:

factorialA_in_ga(s(s(T12)), T7) → U1_ga(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
pB_in_gaaa(T12, T14, X23, T7) → U9_gaaa(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
factorialD_in_ga(s(T20), X49) → U3_ga(T20, X49, pE_in_gaa(T20, X48, X49))
pE_in_gaa(T20, T22, X49) → U13_gaa(T20, T22, X49, factorialD_in_ga(T20, T22))
factorialD_in_ga(0, s(0)) → factorialD_out_ga(0, s(0))
U13_gaa(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_gaa(T20, T22, X49, multG_in_gga(T20, T22, X49))
multG_in_gga(T38, T39, X95) → U5_gga(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
pH_in_ggaa(T38, T39, T42, X95) → U15_ggaa(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
multL_in_gga(s(T53), T54, X128) → U8_gga(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
U8_gga(T53, T54, X128, pH_out_ggaa(T53, T54, X127, X128)) → multL_out_gga(s(T53), T54, X128)
multL_in_gga(0, T59, 0) → multL_out_gga(0, T59, 0)
U15_ggaa(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_ggaa(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
addF_in_gga(s(T70), T71, s(X160)) → U4_gga(T70, T71, X160, addF_in_gga(T70, T71, X160))
addF_in_gga(0, T76, T76) → addF_out_gga(0, T76, T76)
U4_gga(T70, T71, X160, addF_out_gga(T70, T71, X160)) → addF_out_gga(s(T70), T71, s(X160))
U16_ggaa(T38, T39, T42, X95, addF_out_gga(T39, T42, X95)) → pH_out_ggaa(T38, T39, T42, X95)
U5_gga(T38, T39, X95, pH_out_ggaa(T38, T39, X94, X95)) → multG_out_gga(T38, T39, X95)
U14_gaa(T20, T22, X49, multG_out_gga(T20, T22, X49)) → pE_out_gaa(T20, T22, X49)
U3_ga(T20, X49, pE_out_gaa(T20, X48, X49)) → factorialD_out_ga(s(T20), X49)
U9_gaaa(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_gaaa(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
pO_in_ggaa(T12, T14, T79, T7) → U11_ggaa(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
U11_ggaa(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_ggaa(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
multJ_in_gga(T103, T104, T106) → U7_gga(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
pK_in_ggaa(T103, T104, T109, T106) → U17_ggaa(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
U17_ggaa(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_ggaa(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
addI_in_gga(s(T127), T128, s(T130)) → U6_gga(T127, T128, T130, addI_in_gga(T127, T128, T130))
addI_in_gga(0, T136, T136) → addI_out_gga(0, T136, T136)
U6_gga(T127, T128, T130, addI_out_gga(T127, T128, T130)) → addI_out_gga(s(T127), T128, s(T130))
U18_ggaa(T103, T104, T109, T106, addI_out_gga(T104, T109, T106)) → pK_out_ggaa(T103, T104, T109, T106)
U7_gga(T103, T104, T106, pK_out_ggaa(T103, T104, X210, T106)) → multJ_out_gga(T103, T104, T106)
U12_ggaa(T12, T14, T79, T7, multJ_out_gga(T12, T79, T7)) → pO_out_ggaa(T12, T14, T79, T7)
U10_gaaa(T12, T14, X23, T7, pO_out_ggaa(T12, T14, X23, T7)) → pB_out_gaaa(T12, T14, X23, T7)
U1_ga(T12, T7, pB_out_gaaa(T12, X22, X23, T7)) → factorialA_out_ga(s(s(T12)), T7)
factorialA_in_ga(s(0), T145) → U2_ga(T145, pC_in_aa(X275, T145))
pC_in_aa(T146, T145) → U19_aa(T146, T145, multM_in_a(T146))
multM_in_a(0) → multM_out_a(0)
U19_aa(T146, T145, multM_out_a(T146)) → U20_aa(T146, T145, addN_in_ga(T146, T145))
addN_in_ga(T162, s(T162)) → addN_out_ga(T162, s(T162))
U20_aa(T146, T145, addN_out_ga(T146, T145)) → pC_out_aa(T146, T145)
U2_ga(T145, pC_out_aa(X275, T145)) → factorialA_out_ga(s(0), T145)
factorialA_in_ga(0, s(0)) → factorialA_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorialA_in_ga(x1, x2)  =  factorialA_in_ga(x1)
s(x1)  =  s(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pB_in_gaaa(x1, x2, x3, x4)  =  pB_in_gaaa(x1)
U9_gaaa(x1, x2, x3, x4, x5)  =  U9_gaaa(x1, x5)
factorialD_in_ga(x1, x2)  =  factorialD_in_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
pE_in_gaa(x1, x2, x3)  =  pE_in_gaa(x1)
U13_gaa(x1, x2, x3, x4)  =  U13_gaa(x1, x4)
0  =  0
factorialD_out_ga(x1, x2)  =  factorialD_out_ga(x1, x2)
U14_gaa(x1, x2, x3, x4)  =  U14_gaa(x1, x2, x4)
multG_in_gga(x1, x2, x3)  =  multG_in_gga(x1, x2)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
pH_in_ggaa(x1, x2, x3, x4)  =  pH_in_ggaa(x1, x2)
U15_ggaa(x1, x2, x3, x4, x5)  =  U15_ggaa(x1, x2, x5)
multL_in_gga(x1, x2, x3)  =  multL_in_gga(x1, x2)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
pH_out_ggaa(x1, x2, x3, x4)  =  pH_out_ggaa(x1, x2, x3, x4)
multL_out_gga(x1, x2, x3)  =  multL_out_gga(x1, x2, x3)
U16_ggaa(x1, x2, x3, x4, x5)  =  U16_ggaa(x1, x2, x3, x5)
addF_in_gga(x1, x2, x3)  =  addF_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4)  =  U4_gga(x1, x2, x4)
addF_out_gga(x1, x2, x3)  =  addF_out_gga(x1, x2, x3)
multG_out_gga(x1, x2, x3)  =  multG_out_gga(x1, x2, x3)
pE_out_gaa(x1, x2, x3)  =  pE_out_gaa(x1, x2, x3)
U10_gaaa(x1, x2, x3, x4, x5)  =  U10_gaaa(x1, x2, x5)
pO_in_ggaa(x1, x2, x3, x4)  =  pO_in_ggaa(x1, x2)
U11_ggaa(x1, x2, x3, x4, x5)  =  U11_ggaa(x1, x2, x5)
U12_ggaa(x1, x2, x3, x4, x5)  =  U12_ggaa(x1, x2, x3, x5)
multJ_in_gga(x1, x2, x3)  =  multJ_in_gga(x1, x2)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
pK_in_ggaa(x1, x2, x3, x4)  =  pK_in_ggaa(x1, x2)
U17_ggaa(x1, x2, x3, x4, x5)  =  U17_ggaa(x1, x2, x5)
U18_ggaa(x1, x2, x3, x4, x5)  =  U18_ggaa(x1, x2, x3, x5)
addI_in_gga(x1, x2, x3)  =  addI_in_gga(x1, x2)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
addI_out_gga(x1, x2, x3)  =  addI_out_gga(x1, x2, x3)
pK_out_ggaa(x1, x2, x3, x4)  =  pK_out_ggaa(x1, x2, x3, x4)
multJ_out_gga(x1, x2, x3)  =  multJ_out_gga(x1, x2, x3)
pO_out_ggaa(x1, x2, x3, x4)  =  pO_out_ggaa(x1, x2, x3, x4)
pB_out_gaaa(x1, x2, x3, x4)  =  pB_out_gaaa(x1, x2, x3, x4)
factorialA_out_ga(x1, x2)  =  factorialA_out_ga(x1, x2)
U2_ga(x1, x2)  =  U2_ga(x2)
pC_in_aa(x1, x2)  =  pC_in_aa
U19_aa(x1, x2, x3)  =  U19_aa(x3)
multM_in_a(x1)  =  multM_in_a
multM_out_a(x1)  =  multM_out_a(x1)
U20_aa(x1, x2, x3)  =  U20_aa(x1, x3)
addN_in_ga(x1, x2)  =  addN_in_ga(x1)
addN_out_ga(x1, x2)  =  addN_out_ga(x1, x2)
pC_out_aa(x1, x2)  =  pC_out_aa(x1, x2)
FACTORIALA_IN_GA(x1, x2)  =  FACTORIALA_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
PB_IN_GAAA(x1, x2, x3, x4)  =  PB_IN_GAAA(x1)
U9_GAAA(x1, x2, x3, x4, x5)  =  U9_GAAA(x1, x5)
FACTORIALD_IN_GA(x1, x2)  =  FACTORIALD_IN_GA(x1)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
PE_IN_GAA(x1, x2, x3)  =  PE_IN_GAA(x1)
U13_GAA(x1, x2, x3, x4)  =  U13_GAA(x1, x4)
U14_GAA(x1, x2, x3, x4)  =  U14_GAA(x1, x2, x4)
MULTG_IN_GGA(x1, x2, x3)  =  MULTG_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)
PH_IN_GGAA(x1, x2, x3, x4)  =  PH_IN_GGAA(x1, x2)
U15_GGAA(x1, x2, x3, x4, x5)  =  U15_GGAA(x1, x2, x5)
MULTL_IN_GGA(x1, x2, x3)  =  MULTL_IN_GGA(x1, x2)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)
U16_GGAA(x1, x2, x3, x4, x5)  =  U16_GGAA(x1, x2, x3, x5)
ADDF_IN_GGA(x1, x2, x3)  =  ADDF_IN_GGA(x1, x2)
U4_GGA(x1, x2, x3, x4)  =  U4_GGA(x1, x2, x4)
U10_GAAA(x1, x2, x3, x4, x5)  =  U10_GAAA(x1, x2, x5)
PO_IN_GGAA(x1, x2, x3, x4)  =  PO_IN_GGAA(x1, x2)
U11_GGAA(x1, x2, x3, x4, x5)  =  U11_GGAA(x1, x2, x5)
U12_GGAA(x1, x2, x3, x4, x5)  =  U12_GGAA(x1, x2, x3, x5)
MULTJ_IN_GGA(x1, x2, x3)  =  MULTJ_IN_GGA(x1, x2)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)
PK_IN_GGAA(x1, x2, x3, x4)  =  PK_IN_GGAA(x1, x2)
U17_GGAA(x1, x2, x3, x4, x5)  =  U17_GGAA(x1, x2, x5)
U18_GGAA(x1, x2, x3, x4, x5)  =  U18_GGAA(x1, x2, x3, x5)
ADDI_IN_GGA(x1, x2, x3)  =  ADDI_IN_GGA(x1, x2)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
U2_GA(x1, x2)  =  U2_GA(x2)
PC_IN_AA(x1, x2)  =  PC_IN_AA
U19_AA(x1, x2, x3)  =  U19_AA(x3)
MULTM_IN_A(x1)  =  MULTM_IN_A
U20_AA(x1, x2, x3)  =  U20_AA(x1, x3)
ADDN_IN_GA(x1, x2)  =  ADDN_IN_GA(x1)

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

(4) Obligation:

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

FACTORIALA_IN_GA(s(s(T12)), T7) → U1_GA(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
FACTORIALA_IN_GA(s(s(T12)), T7) → PB_IN_GAAA(T12, X22, X23, T7)
PB_IN_GAAA(T12, T14, X23, T7) → U9_GAAA(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
PB_IN_GAAA(T12, T14, X23, T7) → FACTORIALD_IN_GA(T12, T14)
FACTORIALD_IN_GA(s(T20), X49) → U3_GA(T20, X49, pE_in_gaa(T20, X48, X49))
FACTORIALD_IN_GA(s(T20), X49) → PE_IN_GAA(T20, X48, X49)
PE_IN_GAA(T20, T22, X49) → U13_GAA(T20, T22, X49, factorialD_in_ga(T20, T22))
PE_IN_GAA(T20, T22, X49) → FACTORIALD_IN_GA(T20, T22)
U13_GAA(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_GAA(T20, T22, X49, multG_in_gga(T20, T22, X49))
U13_GAA(T20, T22, X49, factorialD_out_ga(T20, T22)) → MULTG_IN_GGA(T20, T22, X49)
MULTG_IN_GGA(T38, T39, X95) → U5_GGA(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
MULTG_IN_GGA(T38, T39, X95) → PH_IN_GGAA(T38, T39, X94, X95)
PH_IN_GGAA(T38, T39, T42, X95) → U15_GGAA(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
PH_IN_GGAA(T38, T39, T42, X95) → MULTL_IN_GGA(T38, T39, T42)
MULTL_IN_GGA(s(T53), T54, X128) → U8_GGA(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
MULTL_IN_GGA(s(T53), T54, X128) → PH_IN_GGAA(T53, T54, X127, X128)
U15_GGAA(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_GGAA(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
U15_GGAA(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → ADDF_IN_GGA(T39, T42, X95)
ADDF_IN_GGA(s(T70), T71, s(X160)) → U4_GGA(T70, T71, X160, addF_in_gga(T70, T71, X160))
ADDF_IN_GGA(s(T70), T71, s(X160)) → ADDF_IN_GGA(T70, T71, X160)
U9_GAAA(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_GAAA(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
U9_GAAA(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → PO_IN_GGAA(T12, T14, X23, T7)
PO_IN_GGAA(T12, T14, T79, T7) → U11_GGAA(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
PO_IN_GGAA(T12, T14, T79, T7) → MULTG_IN_GGA(T12, T14, T79)
U11_GGAA(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_GGAA(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
U11_GGAA(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → MULTJ_IN_GGA(T12, T79, T7)
MULTJ_IN_GGA(T103, T104, T106) → U7_GGA(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
MULTJ_IN_GGA(T103, T104, T106) → PK_IN_GGAA(T103, T104, X210, T106)
PK_IN_GGAA(T103, T104, T109, T106) → U17_GGAA(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
PK_IN_GGAA(T103, T104, T109, T106) → MULTG_IN_GGA(T103, T104, T109)
U17_GGAA(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_GGAA(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
U17_GGAA(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → ADDI_IN_GGA(T104, T109, T106)
ADDI_IN_GGA(s(T127), T128, s(T130)) → U6_GGA(T127, T128, T130, addI_in_gga(T127, T128, T130))
ADDI_IN_GGA(s(T127), T128, s(T130)) → ADDI_IN_GGA(T127, T128, T130)
FACTORIALA_IN_GA(s(0), T145) → U2_GA(T145, pC_in_aa(X275, T145))
FACTORIALA_IN_GA(s(0), T145) → PC_IN_AA(X275, T145)
PC_IN_AA(T146, T145) → U19_AA(T146, T145, multM_in_a(T146))
PC_IN_AA(T146, T145) → MULTM_IN_A(T146)
U19_AA(T146, T145, multM_out_a(T146)) → U20_AA(T146, T145, addN_in_ga(T146, T145))
U19_AA(T146, T145, multM_out_a(T146)) → ADDN_IN_GA(T146, T145)

The TRS R consists of the following rules:

factorialA_in_ga(s(s(T12)), T7) → U1_ga(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
pB_in_gaaa(T12, T14, X23, T7) → U9_gaaa(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
factorialD_in_ga(s(T20), X49) → U3_ga(T20, X49, pE_in_gaa(T20, X48, X49))
pE_in_gaa(T20, T22, X49) → U13_gaa(T20, T22, X49, factorialD_in_ga(T20, T22))
factorialD_in_ga(0, s(0)) → factorialD_out_ga(0, s(0))
U13_gaa(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_gaa(T20, T22, X49, multG_in_gga(T20, T22, X49))
multG_in_gga(T38, T39, X95) → U5_gga(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
pH_in_ggaa(T38, T39, T42, X95) → U15_ggaa(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
multL_in_gga(s(T53), T54, X128) → U8_gga(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
U8_gga(T53, T54, X128, pH_out_ggaa(T53, T54, X127, X128)) → multL_out_gga(s(T53), T54, X128)
multL_in_gga(0, T59, 0) → multL_out_gga(0, T59, 0)
U15_ggaa(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_ggaa(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
addF_in_gga(s(T70), T71, s(X160)) → U4_gga(T70, T71, X160, addF_in_gga(T70, T71, X160))
addF_in_gga(0, T76, T76) → addF_out_gga(0, T76, T76)
U4_gga(T70, T71, X160, addF_out_gga(T70, T71, X160)) → addF_out_gga(s(T70), T71, s(X160))
U16_ggaa(T38, T39, T42, X95, addF_out_gga(T39, T42, X95)) → pH_out_ggaa(T38, T39, T42, X95)
U5_gga(T38, T39, X95, pH_out_ggaa(T38, T39, X94, X95)) → multG_out_gga(T38, T39, X95)
U14_gaa(T20, T22, X49, multG_out_gga(T20, T22, X49)) → pE_out_gaa(T20, T22, X49)
U3_ga(T20, X49, pE_out_gaa(T20, X48, X49)) → factorialD_out_ga(s(T20), X49)
U9_gaaa(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_gaaa(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
pO_in_ggaa(T12, T14, T79, T7) → U11_ggaa(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
U11_ggaa(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_ggaa(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
multJ_in_gga(T103, T104, T106) → U7_gga(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
pK_in_ggaa(T103, T104, T109, T106) → U17_ggaa(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
U17_ggaa(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_ggaa(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
addI_in_gga(s(T127), T128, s(T130)) → U6_gga(T127, T128, T130, addI_in_gga(T127, T128, T130))
addI_in_gga(0, T136, T136) → addI_out_gga(0, T136, T136)
U6_gga(T127, T128, T130, addI_out_gga(T127, T128, T130)) → addI_out_gga(s(T127), T128, s(T130))
U18_ggaa(T103, T104, T109, T106, addI_out_gga(T104, T109, T106)) → pK_out_ggaa(T103, T104, T109, T106)
U7_gga(T103, T104, T106, pK_out_ggaa(T103, T104, X210, T106)) → multJ_out_gga(T103, T104, T106)
U12_ggaa(T12, T14, T79, T7, multJ_out_gga(T12, T79, T7)) → pO_out_ggaa(T12, T14, T79, T7)
U10_gaaa(T12, T14, X23, T7, pO_out_ggaa(T12, T14, X23, T7)) → pB_out_gaaa(T12, T14, X23, T7)
U1_ga(T12, T7, pB_out_gaaa(T12, X22, X23, T7)) → factorialA_out_ga(s(s(T12)), T7)
factorialA_in_ga(s(0), T145) → U2_ga(T145, pC_in_aa(X275, T145))
pC_in_aa(T146, T145) → U19_aa(T146, T145, multM_in_a(T146))
multM_in_a(0) → multM_out_a(0)
U19_aa(T146, T145, multM_out_a(T146)) → U20_aa(T146, T145, addN_in_ga(T146, T145))
addN_in_ga(T162, s(T162)) → addN_out_ga(T162, s(T162))
U20_aa(T146, T145, addN_out_ga(T146, T145)) → pC_out_aa(T146, T145)
U2_ga(T145, pC_out_aa(X275, T145)) → factorialA_out_ga(s(0), T145)
factorialA_in_ga(0, s(0)) → factorialA_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorialA_in_ga(x1, x2)  =  factorialA_in_ga(x1)
s(x1)  =  s(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pB_in_gaaa(x1, x2, x3, x4)  =  pB_in_gaaa(x1)
U9_gaaa(x1, x2, x3, x4, x5)  =  U9_gaaa(x1, x5)
factorialD_in_ga(x1, x2)  =  factorialD_in_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
pE_in_gaa(x1, x2, x3)  =  pE_in_gaa(x1)
U13_gaa(x1, x2, x3, x4)  =  U13_gaa(x1, x4)
0  =  0
factorialD_out_ga(x1, x2)  =  factorialD_out_ga(x1, x2)
U14_gaa(x1, x2, x3, x4)  =  U14_gaa(x1, x2, x4)
multG_in_gga(x1, x2, x3)  =  multG_in_gga(x1, x2)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
pH_in_ggaa(x1, x2, x3, x4)  =  pH_in_ggaa(x1, x2)
U15_ggaa(x1, x2, x3, x4, x5)  =  U15_ggaa(x1, x2, x5)
multL_in_gga(x1, x2, x3)  =  multL_in_gga(x1, x2)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
pH_out_ggaa(x1, x2, x3, x4)  =  pH_out_ggaa(x1, x2, x3, x4)
multL_out_gga(x1, x2, x3)  =  multL_out_gga(x1, x2, x3)
U16_ggaa(x1, x2, x3, x4, x5)  =  U16_ggaa(x1, x2, x3, x5)
addF_in_gga(x1, x2, x3)  =  addF_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4)  =  U4_gga(x1, x2, x4)
addF_out_gga(x1, x2, x3)  =  addF_out_gga(x1, x2, x3)
multG_out_gga(x1, x2, x3)  =  multG_out_gga(x1, x2, x3)
pE_out_gaa(x1, x2, x3)  =  pE_out_gaa(x1, x2, x3)
U10_gaaa(x1, x2, x3, x4, x5)  =  U10_gaaa(x1, x2, x5)
pO_in_ggaa(x1, x2, x3, x4)  =  pO_in_ggaa(x1, x2)
U11_ggaa(x1, x2, x3, x4, x5)  =  U11_ggaa(x1, x2, x5)
U12_ggaa(x1, x2, x3, x4, x5)  =  U12_ggaa(x1, x2, x3, x5)
multJ_in_gga(x1, x2, x3)  =  multJ_in_gga(x1, x2)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
pK_in_ggaa(x1, x2, x3, x4)  =  pK_in_ggaa(x1, x2)
U17_ggaa(x1, x2, x3, x4, x5)  =  U17_ggaa(x1, x2, x5)
U18_ggaa(x1, x2, x3, x4, x5)  =  U18_ggaa(x1, x2, x3, x5)
addI_in_gga(x1, x2, x3)  =  addI_in_gga(x1, x2)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
addI_out_gga(x1, x2, x3)  =  addI_out_gga(x1, x2, x3)
pK_out_ggaa(x1, x2, x3, x4)  =  pK_out_ggaa(x1, x2, x3, x4)
multJ_out_gga(x1, x2, x3)  =  multJ_out_gga(x1, x2, x3)
pO_out_ggaa(x1, x2, x3, x4)  =  pO_out_ggaa(x1, x2, x3, x4)
pB_out_gaaa(x1, x2, x3, x4)  =  pB_out_gaaa(x1, x2, x3, x4)
factorialA_out_ga(x1, x2)  =  factorialA_out_ga(x1, x2)
U2_ga(x1, x2)  =  U2_ga(x2)
pC_in_aa(x1, x2)  =  pC_in_aa
U19_aa(x1, x2, x3)  =  U19_aa(x3)
multM_in_a(x1)  =  multM_in_a
multM_out_a(x1)  =  multM_out_a(x1)
U20_aa(x1, x2, x3)  =  U20_aa(x1, x3)
addN_in_ga(x1, x2)  =  addN_in_ga(x1)
addN_out_ga(x1, x2)  =  addN_out_ga(x1, x2)
pC_out_aa(x1, x2)  =  pC_out_aa(x1, x2)
FACTORIALA_IN_GA(x1, x2)  =  FACTORIALA_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
PB_IN_GAAA(x1, x2, x3, x4)  =  PB_IN_GAAA(x1)
U9_GAAA(x1, x2, x3, x4, x5)  =  U9_GAAA(x1, x5)
FACTORIALD_IN_GA(x1, x2)  =  FACTORIALD_IN_GA(x1)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
PE_IN_GAA(x1, x2, x3)  =  PE_IN_GAA(x1)
U13_GAA(x1, x2, x3, x4)  =  U13_GAA(x1, x4)
U14_GAA(x1, x2, x3, x4)  =  U14_GAA(x1, x2, x4)
MULTG_IN_GGA(x1, x2, x3)  =  MULTG_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)
PH_IN_GGAA(x1, x2, x3, x4)  =  PH_IN_GGAA(x1, x2)
U15_GGAA(x1, x2, x3, x4, x5)  =  U15_GGAA(x1, x2, x5)
MULTL_IN_GGA(x1, x2, x3)  =  MULTL_IN_GGA(x1, x2)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)
U16_GGAA(x1, x2, x3, x4, x5)  =  U16_GGAA(x1, x2, x3, x5)
ADDF_IN_GGA(x1, x2, x3)  =  ADDF_IN_GGA(x1, x2)
U4_GGA(x1, x2, x3, x4)  =  U4_GGA(x1, x2, x4)
U10_GAAA(x1, x2, x3, x4, x5)  =  U10_GAAA(x1, x2, x5)
PO_IN_GGAA(x1, x2, x3, x4)  =  PO_IN_GGAA(x1, x2)
U11_GGAA(x1, x2, x3, x4, x5)  =  U11_GGAA(x1, x2, x5)
U12_GGAA(x1, x2, x3, x4, x5)  =  U12_GGAA(x1, x2, x3, x5)
MULTJ_IN_GGA(x1, x2, x3)  =  MULTJ_IN_GGA(x1, x2)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)
PK_IN_GGAA(x1, x2, x3, x4)  =  PK_IN_GGAA(x1, x2)
U17_GGAA(x1, x2, x3, x4, x5)  =  U17_GGAA(x1, x2, x5)
U18_GGAA(x1, x2, x3, x4, x5)  =  U18_GGAA(x1, x2, x3, x5)
ADDI_IN_GGA(x1, x2, x3)  =  ADDI_IN_GGA(x1, x2)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
U2_GA(x1, x2)  =  U2_GA(x2)
PC_IN_AA(x1, x2)  =  PC_IN_AA
U19_AA(x1, x2, x3)  =  U19_AA(x3)
MULTM_IN_A(x1)  =  MULTM_IN_A
U20_AA(x1, x2, x3)  =  U20_AA(x1, x3)
ADDN_IN_GA(x1, x2)  =  ADDN_IN_GA(x1)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

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

(6) Complex Obligation (AND)

(7) Obligation:

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

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

The TRS R consists of the following rules:

factorialA_in_ga(s(s(T12)), T7) → U1_ga(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
pB_in_gaaa(T12, T14, X23, T7) → U9_gaaa(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
factorialD_in_ga(s(T20), X49) → U3_ga(T20, X49, pE_in_gaa(T20, X48, X49))
pE_in_gaa(T20, T22, X49) → U13_gaa(T20, T22, X49, factorialD_in_ga(T20, T22))
factorialD_in_ga(0, s(0)) → factorialD_out_ga(0, s(0))
U13_gaa(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_gaa(T20, T22, X49, multG_in_gga(T20, T22, X49))
multG_in_gga(T38, T39, X95) → U5_gga(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
pH_in_ggaa(T38, T39, T42, X95) → U15_ggaa(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
multL_in_gga(s(T53), T54, X128) → U8_gga(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
U8_gga(T53, T54, X128, pH_out_ggaa(T53, T54, X127, X128)) → multL_out_gga(s(T53), T54, X128)
multL_in_gga(0, T59, 0) → multL_out_gga(0, T59, 0)
U15_ggaa(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_ggaa(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
addF_in_gga(s(T70), T71, s(X160)) → U4_gga(T70, T71, X160, addF_in_gga(T70, T71, X160))
addF_in_gga(0, T76, T76) → addF_out_gga(0, T76, T76)
U4_gga(T70, T71, X160, addF_out_gga(T70, T71, X160)) → addF_out_gga(s(T70), T71, s(X160))
U16_ggaa(T38, T39, T42, X95, addF_out_gga(T39, T42, X95)) → pH_out_ggaa(T38, T39, T42, X95)
U5_gga(T38, T39, X95, pH_out_ggaa(T38, T39, X94, X95)) → multG_out_gga(T38, T39, X95)
U14_gaa(T20, T22, X49, multG_out_gga(T20, T22, X49)) → pE_out_gaa(T20, T22, X49)
U3_ga(T20, X49, pE_out_gaa(T20, X48, X49)) → factorialD_out_ga(s(T20), X49)
U9_gaaa(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_gaaa(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
pO_in_ggaa(T12, T14, T79, T7) → U11_ggaa(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
U11_ggaa(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_ggaa(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
multJ_in_gga(T103, T104, T106) → U7_gga(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
pK_in_ggaa(T103, T104, T109, T106) → U17_ggaa(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
U17_ggaa(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_ggaa(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
addI_in_gga(s(T127), T128, s(T130)) → U6_gga(T127, T128, T130, addI_in_gga(T127, T128, T130))
addI_in_gga(0, T136, T136) → addI_out_gga(0, T136, T136)
U6_gga(T127, T128, T130, addI_out_gga(T127, T128, T130)) → addI_out_gga(s(T127), T128, s(T130))
U18_ggaa(T103, T104, T109, T106, addI_out_gga(T104, T109, T106)) → pK_out_ggaa(T103, T104, T109, T106)
U7_gga(T103, T104, T106, pK_out_ggaa(T103, T104, X210, T106)) → multJ_out_gga(T103, T104, T106)
U12_ggaa(T12, T14, T79, T7, multJ_out_gga(T12, T79, T7)) → pO_out_ggaa(T12, T14, T79, T7)
U10_gaaa(T12, T14, X23, T7, pO_out_ggaa(T12, T14, X23, T7)) → pB_out_gaaa(T12, T14, X23, T7)
U1_ga(T12, T7, pB_out_gaaa(T12, X22, X23, T7)) → factorialA_out_ga(s(s(T12)), T7)
factorialA_in_ga(s(0), T145) → U2_ga(T145, pC_in_aa(X275, T145))
pC_in_aa(T146, T145) → U19_aa(T146, T145, multM_in_a(T146))
multM_in_a(0) → multM_out_a(0)
U19_aa(T146, T145, multM_out_a(T146)) → U20_aa(T146, T145, addN_in_ga(T146, T145))
addN_in_ga(T162, s(T162)) → addN_out_ga(T162, s(T162))
U20_aa(T146, T145, addN_out_ga(T146, T145)) → pC_out_aa(T146, T145)
U2_ga(T145, pC_out_aa(X275, T145)) → factorialA_out_ga(s(0), T145)
factorialA_in_ga(0, s(0)) → factorialA_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorialA_in_ga(x1, x2)  =  factorialA_in_ga(x1)
s(x1)  =  s(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pB_in_gaaa(x1, x2, x3, x4)  =  pB_in_gaaa(x1)
U9_gaaa(x1, x2, x3, x4, x5)  =  U9_gaaa(x1, x5)
factorialD_in_ga(x1, x2)  =  factorialD_in_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
pE_in_gaa(x1, x2, x3)  =  pE_in_gaa(x1)
U13_gaa(x1, x2, x3, x4)  =  U13_gaa(x1, x4)
0  =  0
factorialD_out_ga(x1, x2)  =  factorialD_out_ga(x1, x2)
U14_gaa(x1, x2, x3, x4)  =  U14_gaa(x1, x2, x4)
multG_in_gga(x1, x2, x3)  =  multG_in_gga(x1, x2)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
pH_in_ggaa(x1, x2, x3, x4)  =  pH_in_ggaa(x1, x2)
U15_ggaa(x1, x2, x3, x4, x5)  =  U15_ggaa(x1, x2, x5)
multL_in_gga(x1, x2, x3)  =  multL_in_gga(x1, x2)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
pH_out_ggaa(x1, x2, x3, x4)  =  pH_out_ggaa(x1, x2, x3, x4)
multL_out_gga(x1, x2, x3)  =  multL_out_gga(x1, x2, x3)
U16_ggaa(x1, x2, x3, x4, x5)  =  U16_ggaa(x1, x2, x3, x5)
addF_in_gga(x1, x2, x3)  =  addF_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4)  =  U4_gga(x1, x2, x4)
addF_out_gga(x1, x2, x3)  =  addF_out_gga(x1, x2, x3)
multG_out_gga(x1, x2, x3)  =  multG_out_gga(x1, x2, x3)
pE_out_gaa(x1, x2, x3)  =  pE_out_gaa(x1, x2, x3)
U10_gaaa(x1, x2, x3, x4, x5)  =  U10_gaaa(x1, x2, x5)
pO_in_ggaa(x1, x2, x3, x4)  =  pO_in_ggaa(x1, x2)
U11_ggaa(x1, x2, x3, x4, x5)  =  U11_ggaa(x1, x2, x5)
U12_ggaa(x1, x2, x3, x4, x5)  =  U12_ggaa(x1, x2, x3, x5)
multJ_in_gga(x1, x2, x3)  =  multJ_in_gga(x1, x2)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
pK_in_ggaa(x1, x2, x3, x4)  =  pK_in_ggaa(x1, x2)
U17_ggaa(x1, x2, x3, x4, x5)  =  U17_ggaa(x1, x2, x5)
U18_ggaa(x1, x2, x3, x4, x5)  =  U18_ggaa(x1, x2, x3, x5)
addI_in_gga(x1, x2, x3)  =  addI_in_gga(x1, x2)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
addI_out_gga(x1, x2, x3)  =  addI_out_gga(x1, x2, x3)
pK_out_ggaa(x1, x2, x3, x4)  =  pK_out_ggaa(x1, x2, x3, x4)
multJ_out_gga(x1, x2, x3)  =  multJ_out_gga(x1, x2, x3)
pO_out_ggaa(x1, x2, x3, x4)  =  pO_out_ggaa(x1, x2, x3, x4)
pB_out_gaaa(x1, x2, x3, x4)  =  pB_out_gaaa(x1, x2, x3, x4)
factorialA_out_ga(x1, x2)  =  factorialA_out_ga(x1, x2)
U2_ga(x1, x2)  =  U2_ga(x2)
pC_in_aa(x1, x2)  =  pC_in_aa
U19_aa(x1, x2, x3)  =  U19_aa(x3)
multM_in_a(x1)  =  multM_in_a
multM_out_a(x1)  =  multM_out_a(x1)
U20_aa(x1, x2, x3)  =  U20_aa(x1, x3)
addN_in_ga(x1, x2)  =  addN_in_ga(x1)
addN_out_ga(x1, x2)  =  addN_out_ga(x1, x2)
pC_out_aa(x1, x2)  =  pC_out_aa(x1, x2)
ADDI_IN_GGA(x1, x2, x3)  =  ADDI_IN_GGA(x1, x2)

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

(8) UsableRulesProof (EQUIVALENT transformation)

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

(9) Obligation:

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

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

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

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

(10) PiDPToQDPProof (SOUND transformation)

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

(11) Obligation:

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

ADDI_IN_GGA(s(T127), T128) → ADDI_IN_GGA(T127, T128)

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

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

  • ADDI_IN_GGA(s(T127), T128) → ADDI_IN_GGA(T127, T128)
    The graph contains the following edges 1 > 1, 2 >= 2

(13) YES

(14) Obligation:

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

ADDF_IN_GGA(s(T70), T71, s(X160)) → ADDF_IN_GGA(T70, T71, X160)

The TRS R consists of the following rules:

factorialA_in_ga(s(s(T12)), T7) → U1_ga(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
pB_in_gaaa(T12, T14, X23, T7) → U9_gaaa(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
factorialD_in_ga(s(T20), X49) → U3_ga(T20, X49, pE_in_gaa(T20, X48, X49))
pE_in_gaa(T20, T22, X49) → U13_gaa(T20, T22, X49, factorialD_in_ga(T20, T22))
factorialD_in_ga(0, s(0)) → factorialD_out_ga(0, s(0))
U13_gaa(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_gaa(T20, T22, X49, multG_in_gga(T20, T22, X49))
multG_in_gga(T38, T39, X95) → U5_gga(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
pH_in_ggaa(T38, T39, T42, X95) → U15_ggaa(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
multL_in_gga(s(T53), T54, X128) → U8_gga(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
U8_gga(T53, T54, X128, pH_out_ggaa(T53, T54, X127, X128)) → multL_out_gga(s(T53), T54, X128)
multL_in_gga(0, T59, 0) → multL_out_gga(0, T59, 0)
U15_ggaa(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_ggaa(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
addF_in_gga(s(T70), T71, s(X160)) → U4_gga(T70, T71, X160, addF_in_gga(T70, T71, X160))
addF_in_gga(0, T76, T76) → addF_out_gga(0, T76, T76)
U4_gga(T70, T71, X160, addF_out_gga(T70, T71, X160)) → addF_out_gga(s(T70), T71, s(X160))
U16_ggaa(T38, T39, T42, X95, addF_out_gga(T39, T42, X95)) → pH_out_ggaa(T38, T39, T42, X95)
U5_gga(T38, T39, X95, pH_out_ggaa(T38, T39, X94, X95)) → multG_out_gga(T38, T39, X95)
U14_gaa(T20, T22, X49, multG_out_gga(T20, T22, X49)) → pE_out_gaa(T20, T22, X49)
U3_ga(T20, X49, pE_out_gaa(T20, X48, X49)) → factorialD_out_ga(s(T20), X49)
U9_gaaa(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_gaaa(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
pO_in_ggaa(T12, T14, T79, T7) → U11_ggaa(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
U11_ggaa(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_ggaa(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
multJ_in_gga(T103, T104, T106) → U7_gga(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
pK_in_ggaa(T103, T104, T109, T106) → U17_ggaa(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
U17_ggaa(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_ggaa(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
addI_in_gga(s(T127), T128, s(T130)) → U6_gga(T127, T128, T130, addI_in_gga(T127, T128, T130))
addI_in_gga(0, T136, T136) → addI_out_gga(0, T136, T136)
U6_gga(T127, T128, T130, addI_out_gga(T127, T128, T130)) → addI_out_gga(s(T127), T128, s(T130))
U18_ggaa(T103, T104, T109, T106, addI_out_gga(T104, T109, T106)) → pK_out_ggaa(T103, T104, T109, T106)
U7_gga(T103, T104, T106, pK_out_ggaa(T103, T104, X210, T106)) → multJ_out_gga(T103, T104, T106)
U12_ggaa(T12, T14, T79, T7, multJ_out_gga(T12, T79, T7)) → pO_out_ggaa(T12, T14, T79, T7)
U10_gaaa(T12, T14, X23, T7, pO_out_ggaa(T12, T14, X23, T7)) → pB_out_gaaa(T12, T14, X23, T7)
U1_ga(T12, T7, pB_out_gaaa(T12, X22, X23, T7)) → factorialA_out_ga(s(s(T12)), T7)
factorialA_in_ga(s(0), T145) → U2_ga(T145, pC_in_aa(X275, T145))
pC_in_aa(T146, T145) → U19_aa(T146, T145, multM_in_a(T146))
multM_in_a(0) → multM_out_a(0)
U19_aa(T146, T145, multM_out_a(T146)) → U20_aa(T146, T145, addN_in_ga(T146, T145))
addN_in_ga(T162, s(T162)) → addN_out_ga(T162, s(T162))
U20_aa(T146, T145, addN_out_ga(T146, T145)) → pC_out_aa(T146, T145)
U2_ga(T145, pC_out_aa(X275, T145)) → factorialA_out_ga(s(0), T145)
factorialA_in_ga(0, s(0)) → factorialA_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorialA_in_ga(x1, x2)  =  factorialA_in_ga(x1)
s(x1)  =  s(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pB_in_gaaa(x1, x2, x3, x4)  =  pB_in_gaaa(x1)
U9_gaaa(x1, x2, x3, x4, x5)  =  U9_gaaa(x1, x5)
factorialD_in_ga(x1, x2)  =  factorialD_in_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
pE_in_gaa(x1, x2, x3)  =  pE_in_gaa(x1)
U13_gaa(x1, x2, x3, x4)  =  U13_gaa(x1, x4)
0  =  0
factorialD_out_ga(x1, x2)  =  factorialD_out_ga(x1, x2)
U14_gaa(x1, x2, x3, x4)  =  U14_gaa(x1, x2, x4)
multG_in_gga(x1, x2, x3)  =  multG_in_gga(x1, x2)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
pH_in_ggaa(x1, x2, x3, x4)  =  pH_in_ggaa(x1, x2)
U15_ggaa(x1, x2, x3, x4, x5)  =  U15_ggaa(x1, x2, x5)
multL_in_gga(x1, x2, x3)  =  multL_in_gga(x1, x2)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
pH_out_ggaa(x1, x2, x3, x4)  =  pH_out_ggaa(x1, x2, x3, x4)
multL_out_gga(x1, x2, x3)  =  multL_out_gga(x1, x2, x3)
U16_ggaa(x1, x2, x3, x4, x5)  =  U16_ggaa(x1, x2, x3, x5)
addF_in_gga(x1, x2, x3)  =  addF_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4)  =  U4_gga(x1, x2, x4)
addF_out_gga(x1, x2, x3)  =  addF_out_gga(x1, x2, x3)
multG_out_gga(x1, x2, x3)  =  multG_out_gga(x1, x2, x3)
pE_out_gaa(x1, x2, x3)  =  pE_out_gaa(x1, x2, x3)
U10_gaaa(x1, x2, x3, x4, x5)  =  U10_gaaa(x1, x2, x5)
pO_in_ggaa(x1, x2, x3, x4)  =  pO_in_ggaa(x1, x2)
U11_ggaa(x1, x2, x3, x4, x5)  =  U11_ggaa(x1, x2, x5)
U12_ggaa(x1, x2, x3, x4, x5)  =  U12_ggaa(x1, x2, x3, x5)
multJ_in_gga(x1, x2, x3)  =  multJ_in_gga(x1, x2)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
pK_in_ggaa(x1, x2, x3, x4)  =  pK_in_ggaa(x1, x2)
U17_ggaa(x1, x2, x3, x4, x5)  =  U17_ggaa(x1, x2, x5)
U18_ggaa(x1, x2, x3, x4, x5)  =  U18_ggaa(x1, x2, x3, x5)
addI_in_gga(x1, x2, x3)  =  addI_in_gga(x1, x2)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
addI_out_gga(x1, x2, x3)  =  addI_out_gga(x1, x2, x3)
pK_out_ggaa(x1, x2, x3, x4)  =  pK_out_ggaa(x1, x2, x3, x4)
multJ_out_gga(x1, x2, x3)  =  multJ_out_gga(x1, x2, x3)
pO_out_ggaa(x1, x2, x3, x4)  =  pO_out_ggaa(x1, x2, x3, x4)
pB_out_gaaa(x1, x2, x3, x4)  =  pB_out_gaaa(x1, x2, x3, x4)
factorialA_out_ga(x1, x2)  =  factorialA_out_ga(x1, x2)
U2_ga(x1, x2)  =  U2_ga(x2)
pC_in_aa(x1, x2)  =  pC_in_aa
U19_aa(x1, x2, x3)  =  U19_aa(x3)
multM_in_a(x1)  =  multM_in_a
multM_out_a(x1)  =  multM_out_a(x1)
U20_aa(x1, x2, x3)  =  U20_aa(x1, x3)
addN_in_ga(x1, x2)  =  addN_in_ga(x1)
addN_out_ga(x1, x2)  =  addN_out_ga(x1, x2)
pC_out_aa(x1, x2)  =  pC_out_aa(x1, x2)
ADDF_IN_GGA(x1, x2, x3)  =  ADDF_IN_GGA(x1, x2)

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

(15) UsableRulesProof (EQUIVALENT transformation)

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

(16) Obligation:

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

ADDF_IN_GGA(s(T70), T71, s(X160)) → ADDF_IN_GGA(T70, T71, X160)

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

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

(17) PiDPToQDPProof (SOUND transformation)

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

(18) Obligation:

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

ADDF_IN_GGA(s(T70), T71) → ADDF_IN_GGA(T70, T71)

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

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

  • ADDF_IN_GGA(s(T70), T71) → ADDF_IN_GGA(T70, T71)
    The graph contains the following edges 1 > 1, 2 >= 2

(20) YES

(21) Obligation:

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

PH_IN_GGAA(T38, T39, T42, X95) → MULTL_IN_GGA(T38, T39, T42)
MULTL_IN_GGA(s(T53), T54, X128) → PH_IN_GGAA(T53, T54, X127, X128)

The TRS R consists of the following rules:

factorialA_in_ga(s(s(T12)), T7) → U1_ga(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
pB_in_gaaa(T12, T14, X23, T7) → U9_gaaa(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
factorialD_in_ga(s(T20), X49) → U3_ga(T20, X49, pE_in_gaa(T20, X48, X49))
pE_in_gaa(T20, T22, X49) → U13_gaa(T20, T22, X49, factorialD_in_ga(T20, T22))
factorialD_in_ga(0, s(0)) → factorialD_out_ga(0, s(0))
U13_gaa(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_gaa(T20, T22, X49, multG_in_gga(T20, T22, X49))
multG_in_gga(T38, T39, X95) → U5_gga(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
pH_in_ggaa(T38, T39, T42, X95) → U15_ggaa(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
multL_in_gga(s(T53), T54, X128) → U8_gga(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
U8_gga(T53, T54, X128, pH_out_ggaa(T53, T54, X127, X128)) → multL_out_gga(s(T53), T54, X128)
multL_in_gga(0, T59, 0) → multL_out_gga(0, T59, 0)
U15_ggaa(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_ggaa(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
addF_in_gga(s(T70), T71, s(X160)) → U4_gga(T70, T71, X160, addF_in_gga(T70, T71, X160))
addF_in_gga(0, T76, T76) → addF_out_gga(0, T76, T76)
U4_gga(T70, T71, X160, addF_out_gga(T70, T71, X160)) → addF_out_gga(s(T70), T71, s(X160))
U16_ggaa(T38, T39, T42, X95, addF_out_gga(T39, T42, X95)) → pH_out_ggaa(T38, T39, T42, X95)
U5_gga(T38, T39, X95, pH_out_ggaa(T38, T39, X94, X95)) → multG_out_gga(T38, T39, X95)
U14_gaa(T20, T22, X49, multG_out_gga(T20, T22, X49)) → pE_out_gaa(T20, T22, X49)
U3_ga(T20, X49, pE_out_gaa(T20, X48, X49)) → factorialD_out_ga(s(T20), X49)
U9_gaaa(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_gaaa(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
pO_in_ggaa(T12, T14, T79, T7) → U11_ggaa(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
U11_ggaa(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_ggaa(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
multJ_in_gga(T103, T104, T106) → U7_gga(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
pK_in_ggaa(T103, T104, T109, T106) → U17_ggaa(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
U17_ggaa(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_ggaa(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
addI_in_gga(s(T127), T128, s(T130)) → U6_gga(T127, T128, T130, addI_in_gga(T127, T128, T130))
addI_in_gga(0, T136, T136) → addI_out_gga(0, T136, T136)
U6_gga(T127, T128, T130, addI_out_gga(T127, T128, T130)) → addI_out_gga(s(T127), T128, s(T130))
U18_ggaa(T103, T104, T109, T106, addI_out_gga(T104, T109, T106)) → pK_out_ggaa(T103, T104, T109, T106)
U7_gga(T103, T104, T106, pK_out_ggaa(T103, T104, X210, T106)) → multJ_out_gga(T103, T104, T106)
U12_ggaa(T12, T14, T79, T7, multJ_out_gga(T12, T79, T7)) → pO_out_ggaa(T12, T14, T79, T7)
U10_gaaa(T12, T14, X23, T7, pO_out_ggaa(T12, T14, X23, T7)) → pB_out_gaaa(T12, T14, X23, T7)
U1_ga(T12, T7, pB_out_gaaa(T12, X22, X23, T7)) → factorialA_out_ga(s(s(T12)), T7)
factorialA_in_ga(s(0), T145) → U2_ga(T145, pC_in_aa(X275, T145))
pC_in_aa(T146, T145) → U19_aa(T146, T145, multM_in_a(T146))
multM_in_a(0) → multM_out_a(0)
U19_aa(T146, T145, multM_out_a(T146)) → U20_aa(T146, T145, addN_in_ga(T146, T145))
addN_in_ga(T162, s(T162)) → addN_out_ga(T162, s(T162))
U20_aa(T146, T145, addN_out_ga(T146, T145)) → pC_out_aa(T146, T145)
U2_ga(T145, pC_out_aa(X275, T145)) → factorialA_out_ga(s(0), T145)
factorialA_in_ga(0, s(0)) → factorialA_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorialA_in_ga(x1, x2)  =  factorialA_in_ga(x1)
s(x1)  =  s(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pB_in_gaaa(x1, x2, x3, x4)  =  pB_in_gaaa(x1)
U9_gaaa(x1, x2, x3, x4, x5)  =  U9_gaaa(x1, x5)
factorialD_in_ga(x1, x2)  =  factorialD_in_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
pE_in_gaa(x1, x2, x3)  =  pE_in_gaa(x1)
U13_gaa(x1, x2, x3, x4)  =  U13_gaa(x1, x4)
0  =  0
factorialD_out_ga(x1, x2)  =  factorialD_out_ga(x1, x2)
U14_gaa(x1, x2, x3, x4)  =  U14_gaa(x1, x2, x4)
multG_in_gga(x1, x2, x3)  =  multG_in_gga(x1, x2)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
pH_in_ggaa(x1, x2, x3, x4)  =  pH_in_ggaa(x1, x2)
U15_ggaa(x1, x2, x3, x4, x5)  =  U15_ggaa(x1, x2, x5)
multL_in_gga(x1, x2, x3)  =  multL_in_gga(x1, x2)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
pH_out_ggaa(x1, x2, x3, x4)  =  pH_out_ggaa(x1, x2, x3, x4)
multL_out_gga(x1, x2, x3)  =  multL_out_gga(x1, x2, x3)
U16_ggaa(x1, x2, x3, x4, x5)  =  U16_ggaa(x1, x2, x3, x5)
addF_in_gga(x1, x2, x3)  =  addF_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4)  =  U4_gga(x1, x2, x4)
addF_out_gga(x1, x2, x3)  =  addF_out_gga(x1, x2, x3)
multG_out_gga(x1, x2, x3)  =  multG_out_gga(x1, x2, x3)
pE_out_gaa(x1, x2, x3)  =  pE_out_gaa(x1, x2, x3)
U10_gaaa(x1, x2, x3, x4, x5)  =  U10_gaaa(x1, x2, x5)
pO_in_ggaa(x1, x2, x3, x4)  =  pO_in_ggaa(x1, x2)
U11_ggaa(x1, x2, x3, x4, x5)  =  U11_ggaa(x1, x2, x5)
U12_ggaa(x1, x2, x3, x4, x5)  =  U12_ggaa(x1, x2, x3, x5)
multJ_in_gga(x1, x2, x3)  =  multJ_in_gga(x1, x2)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
pK_in_ggaa(x1, x2, x3, x4)  =  pK_in_ggaa(x1, x2)
U17_ggaa(x1, x2, x3, x4, x5)  =  U17_ggaa(x1, x2, x5)
U18_ggaa(x1, x2, x3, x4, x5)  =  U18_ggaa(x1, x2, x3, x5)
addI_in_gga(x1, x2, x3)  =  addI_in_gga(x1, x2)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
addI_out_gga(x1, x2, x3)  =  addI_out_gga(x1, x2, x3)
pK_out_ggaa(x1, x2, x3, x4)  =  pK_out_ggaa(x1, x2, x3, x4)
multJ_out_gga(x1, x2, x3)  =  multJ_out_gga(x1, x2, x3)
pO_out_ggaa(x1, x2, x3, x4)  =  pO_out_ggaa(x1, x2, x3, x4)
pB_out_gaaa(x1, x2, x3, x4)  =  pB_out_gaaa(x1, x2, x3, x4)
factorialA_out_ga(x1, x2)  =  factorialA_out_ga(x1, x2)
U2_ga(x1, x2)  =  U2_ga(x2)
pC_in_aa(x1, x2)  =  pC_in_aa
U19_aa(x1, x2, x3)  =  U19_aa(x3)
multM_in_a(x1)  =  multM_in_a
multM_out_a(x1)  =  multM_out_a(x1)
U20_aa(x1, x2, x3)  =  U20_aa(x1, x3)
addN_in_ga(x1, x2)  =  addN_in_ga(x1)
addN_out_ga(x1, x2)  =  addN_out_ga(x1, x2)
pC_out_aa(x1, x2)  =  pC_out_aa(x1, x2)
PH_IN_GGAA(x1, x2, x3, x4)  =  PH_IN_GGAA(x1, x2)
MULTL_IN_GGA(x1, x2, x3)  =  MULTL_IN_GGA(x1, x2)

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

(22) UsableRulesProof (EQUIVALENT transformation)

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

(23) Obligation:

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

PH_IN_GGAA(T38, T39, T42, X95) → MULTL_IN_GGA(T38, T39, T42)
MULTL_IN_GGA(s(T53), T54, X128) → PH_IN_GGAA(T53, T54, X127, X128)

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

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

(24) PiDPToQDPProof (SOUND transformation)

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

(25) Obligation:

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

PH_IN_GGAA(T38, T39) → MULTL_IN_GGA(T38, T39)
MULTL_IN_GGA(s(T53), T54) → PH_IN_GGAA(T53, T54)

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

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

  • MULTL_IN_GGA(s(T53), T54) → PH_IN_GGAA(T53, T54)
    The graph contains the following edges 1 > 1, 2 >= 2

  • PH_IN_GGAA(T38, T39) → MULTL_IN_GGA(T38, T39)
    The graph contains the following edges 1 >= 1, 2 >= 2

(27) YES

(28) Obligation:

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

FACTORIALD_IN_GA(s(T20), X49) → PE_IN_GAA(T20, X48, X49)
PE_IN_GAA(T20, T22, X49) → FACTORIALD_IN_GA(T20, T22)

The TRS R consists of the following rules:

factorialA_in_ga(s(s(T12)), T7) → U1_ga(T12, T7, pB_in_gaaa(T12, X22, X23, T7))
pB_in_gaaa(T12, T14, X23, T7) → U9_gaaa(T12, T14, X23, T7, factorialD_in_ga(T12, T14))
factorialD_in_ga(s(T20), X49) → U3_ga(T20, X49, pE_in_gaa(T20, X48, X49))
pE_in_gaa(T20, T22, X49) → U13_gaa(T20, T22, X49, factorialD_in_ga(T20, T22))
factorialD_in_ga(0, s(0)) → factorialD_out_ga(0, s(0))
U13_gaa(T20, T22, X49, factorialD_out_ga(T20, T22)) → U14_gaa(T20, T22, X49, multG_in_gga(T20, T22, X49))
multG_in_gga(T38, T39, X95) → U5_gga(T38, T39, X95, pH_in_ggaa(T38, T39, X94, X95))
pH_in_ggaa(T38, T39, T42, X95) → U15_ggaa(T38, T39, T42, X95, multL_in_gga(T38, T39, T42))
multL_in_gga(s(T53), T54, X128) → U8_gga(T53, T54, X128, pH_in_ggaa(T53, T54, X127, X128))
U8_gga(T53, T54, X128, pH_out_ggaa(T53, T54, X127, X128)) → multL_out_gga(s(T53), T54, X128)
multL_in_gga(0, T59, 0) → multL_out_gga(0, T59, 0)
U15_ggaa(T38, T39, T42, X95, multL_out_gga(T38, T39, T42)) → U16_ggaa(T38, T39, T42, X95, addF_in_gga(T39, T42, X95))
addF_in_gga(s(T70), T71, s(X160)) → U4_gga(T70, T71, X160, addF_in_gga(T70, T71, X160))
addF_in_gga(0, T76, T76) → addF_out_gga(0, T76, T76)
U4_gga(T70, T71, X160, addF_out_gga(T70, T71, X160)) → addF_out_gga(s(T70), T71, s(X160))
U16_ggaa(T38, T39, T42, X95, addF_out_gga(T39, T42, X95)) → pH_out_ggaa(T38, T39, T42, X95)
U5_gga(T38, T39, X95, pH_out_ggaa(T38, T39, X94, X95)) → multG_out_gga(T38, T39, X95)
U14_gaa(T20, T22, X49, multG_out_gga(T20, T22, X49)) → pE_out_gaa(T20, T22, X49)
U3_ga(T20, X49, pE_out_gaa(T20, X48, X49)) → factorialD_out_ga(s(T20), X49)
U9_gaaa(T12, T14, X23, T7, factorialD_out_ga(T12, T14)) → U10_gaaa(T12, T14, X23, T7, pO_in_ggaa(T12, T14, X23, T7))
pO_in_ggaa(T12, T14, T79, T7) → U11_ggaa(T12, T14, T79, T7, multG_in_gga(T12, T14, T79))
U11_ggaa(T12, T14, T79, T7, multG_out_gga(T12, T14, T79)) → U12_ggaa(T12, T14, T79, T7, multJ_in_gga(T12, T79, T7))
multJ_in_gga(T103, T104, T106) → U7_gga(T103, T104, T106, pK_in_ggaa(T103, T104, X210, T106))
pK_in_ggaa(T103, T104, T109, T106) → U17_ggaa(T103, T104, T109, T106, multG_in_gga(T103, T104, T109))
U17_ggaa(T103, T104, T109, T106, multG_out_gga(T103, T104, T109)) → U18_ggaa(T103, T104, T109, T106, addI_in_gga(T104, T109, T106))
addI_in_gga(s(T127), T128, s(T130)) → U6_gga(T127, T128, T130, addI_in_gga(T127, T128, T130))
addI_in_gga(0, T136, T136) → addI_out_gga(0, T136, T136)
U6_gga(T127, T128, T130, addI_out_gga(T127, T128, T130)) → addI_out_gga(s(T127), T128, s(T130))
U18_ggaa(T103, T104, T109, T106, addI_out_gga(T104, T109, T106)) → pK_out_ggaa(T103, T104, T109, T106)
U7_gga(T103, T104, T106, pK_out_ggaa(T103, T104, X210, T106)) → multJ_out_gga(T103, T104, T106)
U12_ggaa(T12, T14, T79, T7, multJ_out_gga(T12, T79, T7)) → pO_out_ggaa(T12, T14, T79, T7)
U10_gaaa(T12, T14, X23, T7, pO_out_ggaa(T12, T14, X23, T7)) → pB_out_gaaa(T12, T14, X23, T7)
U1_ga(T12, T7, pB_out_gaaa(T12, X22, X23, T7)) → factorialA_out_ga(s(s(T12)), T7)
factorialA_in_ga(s(0), T145) → U2_ga(T145, pC_in_aa(X275, T145))
pC_in_aa(T146, T145) → U19_aa(T146, T145, multM_in_a(T146))
multM_in_a(0) → multM_out_a(0)
U19_aa(T146, T145, multM_out_a(T146)) → U20_aa(T146, T145, addN_in_ga(T146, T145))
addN_in_ga(T162, s(T162)) → addN_out_ga(T162, s(T162))
U20_aa(T146, T145, addN_out_ga(T146, T145)) → pC_out_aa(T146, T145)
U2_ga(T145, pC_out_aa(X275, T145)) → factorialA_out_ga(s(0), T145)
factorialA_in_ga(0, s(0)) → factorialA_out_ga(0, s(0))

The argument filtering Pi contains the following mapping:
factorialA_in_ga(x1, x2)  =  factorialA_in_ga(x1)
s(x1)  =  s(x1)
U1_ga(x1, x2, x3)  =  U1_ga(x1, x3)
pB_in_gaaa(x1, x2, x3, x4)  =  pB_in_gaaa(x1)
U9_gaaa(x1, x2, x3, x4, x5)  =  U9_gaaa(x1, x5)
factorialD_in_ga(x1, x2)  =  factorialD_in_ga(x1)
U3_ga(x1, x2, x3)  =  U3_ga(x1, x3)
pE_in_gaa(x1, x2, x3)  =  pE_in_gaa(x1)
U13_gaa(x1, x2, x3, x4)  =  U13_gaa(x1, x4)
0  =  0
factorialD_out_ga(x1, x2)  =  factorialD_out_ga(x1, x2)
U14_gaa(x1, x2, x3, x4)  =  U14_gaa(x1, x2, x4)
multG_in_gga(x1, x2, x3)  =  multG_in_gga(x1, x2)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
pH_in_ggaa(x1, x2, x3, x4)  =  pH_in_ggaa(x1, x2)
U15_ggaa(x1, x2, x3, x4, x5)  =  U15_ggaa(x1, x2, x5)
multL_in_gga(x1, x2, x3)  =  multL_in_gga(x1, x2)
U8_gga(x1, x2, x3, x4)  =  U8_gga(x1, x2, x4)
pH_out_ggaa(x1, x2, x3, x4)  =  pH_out_ggaa(x1, x2, x3, x4)
multL_out_gga(x1, x2, x3)  =  multL_out_gga(x1, x2, x3)
U16_ggaa(x1, x2, x3, x4, x5)  =  U16_ggaa(x1, x2, x3, x5)
addF_in_gga(x1, x2, x3)  =  addF_in_gga(x1, x2)
U4_gga(x1, x2, x3, x4)  =  U4_gga(x1, x2, x4)
addF_out_gga(x1, x2, x3)  =  addF_out_gga(x1, x2, x3)
multG_out_gga(x1, x2, x3)  =  multG_out_gga(x1, x2, x3)
pE_out_gaa(x1, x2, x3)  =  pE_out_gaa(x1, x2, x3)
U10_gaaa(x1, x2, x3, x4, x5)  =  U10_gaaa(x1, x2, x5)
pO_in_ggaa(x1, x2, x3, x4)  =  pO_in_ggaa(x1, x2)
U11_ggaa(x1, x2, x3, x4, x5)  =  U11_ggaa(x1, x2, x5)
U12_ggaa(x1, x2, x3, x4, x5)  =  U12_ggaa(x1, x2, x3, x5)
multJ_in_gga(x1, x2, x3)  =  multJ_in_gga(x1, x2)
U7_gga(x1, x2, x3, x4)  =  U7_gga(x1, x2, x4)
pK_in_ggaa(x1, x2, x3, x4)  =  pK_in_ggaa(x1, x2)
U17_ggaa(x1, x2, x3, x4, x5)  =  U17_ggaa(x1, x2, x5)
U18_ggaa(x1, x2, x3, x4, x5)  =  U18_ggaa(x1, x2, x3, x5)
addI_in_gga(x1, x2, x3)  =  addI_in_gga(x1, x2)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
addI_out_gga(x1, x2, x3)  =  addI_out_gga(x1, x2, x3)
pK_out_ggaa(x1, x2, x3, x4)  =  pK_out_ggaa(x1, x2, x3, x4)
multJ_out_gga(x1, x2, x3)  =  multJ_out_gga(x1, x2, x3)
pO_out_ggaa(x1, x2, x3, x4)  =  pO_out_ggaa(x1, x2, x3, x4)
pB_out_gaaa(x1, x2, x3, x4)  =  pB_out_gaaa(x1, x2, x3, x4)
factorialA_out_ga(x1, x2)  =  factorialA_out_ga(x1, x2)
U2_ga(x1, x2)  =  U2_ga(x2)
pC_in_aa(x1, x2)  =  pC_in_aa
U19_aa(x1, x2, x3)  =  U19_aa(x3)
multM_in_a(x1)  =  multM_in_a
multM_out_a(x1)  =  multM_out_a(x1)
U20_aa(x1, x2, x3)  =  U20_aa(x1, x3)
addN_in_ga(x1, x2)  =  addN_in_ga(x1)
addN_out_ga(x1, x2)  =  addN_out_ga(x1, x2)
pC_out_aa(x1, x2)  =  pC_out_aa(x1, x2)
FACTORIALD_IN_GA(x1, x2)  =  FACTORIALD_IN_GA(x1)
PE_IN_GAA(x1, x2, x3)  =  PE_IN_GAA(x1)

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

(29) UsableRulesProof (EQUIVALENT transformation)

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

(30) Obligation:

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

FACTORIALD_IN_GA(s(T20), X49) → PE_IN_GAA(T20, X48, X49)
PE_IN_GAA(T20, T22, X49) → FACTORIALD_IN_GA(T20, T22)

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

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

(31) PiDPToQDPProof (SOUND transformation)

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

(32) Obligation:

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

FACTORIALD_IN_GA(s(T20)) → PE_IN_GAA(T20)
PE_IN_GAA(T20) → FACTORIALD_IN_GA(T20)

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

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

  • PE_IN_GAA(T20) → FACTORIALD_IN_GA(T20)
    The graph contains the following edges 1 >= 1

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

(34) YES