0 Prolog
↳1 PrologToPiTRSProof (⇐)
↳2 PiTRS
↳3 DependencyPairsProof (⇔)
↳4 PiDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 PiDP
↳8 UsableRulesProof (⇔)
↳9 PiDP
↳10 PiDPToQDPProof (⇐)
↳11 QDP
↳12 QDPSizeChangeProof (⇔)
↳13 TRUE
↳14 PiDP
↳15 UsableRulesProof (⇔)
↳16 PiDP
↳17 PiDPToQDPProof (⇐)
↳18 QDP
↳19 QDPSizeChangeProof (⇔)
↳20 TRUE
↳21 PiDP
↳22 UsableRulesProof (⇔)
↳23 PiDP
↳24 PiDPToQDPProof (⇐)
↳25 QDP
↳26 QDPSizeChangeProof (⇔)
↳27 TRUE
↳28 PiDP
↳29 UsableRulesProof (⇔)
↳30 PiDP
↳31 PiDPToQDPProof (⇔)
↳32 QDP
↳33 QDPSizeChangeProof (⇔)
↳34 TRUE
↳35 PiDP
↳36 UsableRulesProof (⇔)
↳37 PiDP
↳38 PiDPToQDPProof (⇐)
↳39 QDP
↳40 QDPSizeChangeProof (⇔)
↳41 TRUE
↳42 PrologToPiTRSProof (⇐)
↳43 PiTRS
↳44 DependencyPairsProof (⇔)
↳45 PiDP
↳46 DependencyGraphProof (⇔)
↳47 AND
↳48 PiDP
↳49 UsableRulesProof (⇔)
↳50 PiDP
↳51 PiDPToQDPProof (⇐)
↳52 QDP
↳53 QDPSizeChangeProof (⇔)
↳54 TRUE
↳55 PiDP
↳56 UsableRulesProof (⇔)
↳57 PiDP
↳58 PiDPToQDPProof (⇐)
↳59 QDP
↳60 QDPSizeChangeProof (⇔)
↳61 TRUE
↳62 PiDP
↳63 UsableRulesProof (⇔)
↳64 PiDP
↳65 PiDPToQDPProof (⇐)
↳66 QDP
↳67 QDPSizeChangeProof (⇔)
↳68 TRUE
↳69 PiDP
↳70 UsableRulesProof (⇔)
↳71 PiDP
↳72 PiDPToQDPProof (⇔)
↳73 QDP
↳74 QDPSizeChangeProof (⇔)
↳75 TRUE
↳76 PiDP
↳77 UsableRulesProof (⇔)
↳78 PiDP
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MYIS_IN_AG(Z, X) → U1_AG(Z, X, evaluate_in_ga(X, Z))
MYIS_IN_AG(Z, X) → EVALUATE_IN_GA(X, Z)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(X, X) → U11_GA(X, myinteger_in_g(X))
EVALUATE_IN_GA(X, X) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → U12_G(X, myinteger_in_g(X))
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U9_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_GA(X, Y, Z, mult_in_gga(X1, Y1, Z))
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → MULT_IN_GGA(X1, Y1, Z)
MULT_IN_GGA(s(X), Y, R) → U15_GGA(X, Y, R, mult_in_gga(X, Y, Z))
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → U16_GGA(X, Y, R, add_in_gga(Y, Z, R))
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → ADD_IN_GGA(Y, Z, R)
ADD_IN_GGA(s(X), Y, s(Z)) → U13_GGA(X, Y, Z, add_in_gga(X, Y, Z))
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U6_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_GA(X, Y, Z, sub_in_gga(X1, Y1, Z))
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → SUB_IN_GGA(X1, Y1, Z)
SUB_IN_GGA(s(X), s(Y), Z) → U14_GGA(X, Y, Z, sub_in_gga(X, Y, Z))
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U3_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_GA(X, Y, Z, add_in_gga(X1, Y1, Z))
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → ADD_IN_GGA(X1, Y1, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MYIS_IN_AG(Z, X) → U1_AG(Z, X, evaluate_in_ga(X, Z))
MYIS_IN_AG(Z, X) → EVALUATE_IN_GA(X, Z)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(X, X) → U11_GA(X, myinteger_in_g(X))
EVALUATE_IN_GA(X, X) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → U12_G(X, myinteger_in_g(X))
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U9_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_GA(X, Y, Z, mult_in_gga(X1, Y1, Z))
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → MULT_IN_GGA(X1, Y1, Z)
MULT_IN_GGA(s(X), Y, R) → U15_GGA(X, Y, R, mult_in_gga(X, Y, Z))
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → U16_GGA(X, Y, R, add_in_gga(Y, Z, R))
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → ADD_IN_GGA(Y, Z, R)
ADD_IN_GGA(s(X), Y, s(Z)) → U13_GGA(X, Y, Z, add_in_gga(X, Y, Z))
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U6_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_GA(X, Y, Z, sub_in_gga(X1, Y1, Z))
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → SUB_IN_GGA(X1, Y1, Z)
SUB_IN_GGA(s(X), s(Y), Z) → U14_GGA(X, Y, Z, sub_in_gga(X, Y, Z))
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U3_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_GA(X, Y, Z, add_in_gga(X1, Y1, Z))
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → ADD_IN_GGA(X1, Y1, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
SUB_IN_GGA(s(X), s(Y)) → SUB_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
ADD_IN_GGA(s(X), Y) → ADD_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
MULT_IN_GGA(s(X), Y) → MULT_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U2_GA(Y, evaluate_out_ga(X1)) → EVALUATE_IN_GA(Y)
EVALUATE_IN_GA(+(X, Y)) → U2_GA(Y, evaluate_in_ga(X))
EVALUATE_IN_GA(+(X, Y)) → EVALUATE_IN_GA(X)
EVALUATE_IN_GA(-(X, Y)) → U5_GA(Y, evaluate_in_ga(X))
U5_GA(Y, evaluate_out_ga(X1)) → EVALUATE_IN_GA(Y)
EVALUATE_IN_GA(-(X, Y)) → EVALUATE_IN_GA(X)
EVALUATE_IN_GA(*(X, Y)) → U8_GA(Y, evaluate_in_ga(X))
U8_GA(Y, evaluate_out_ga(X1)) → EVALUATE_IN_GA(Y)
EVALUATE_IN_GA(*(X, Y)) → EVALUATE_IN_GA(X)
evaluate_in_ga(+(X, Y)) → U2_ga(Y, evaluate_in_ga(X))
evaluate_in_ga(-(X, Y)) → U5_ga(Y, evaluate_in_ga(X))
evaluate_in_ga(*(X, Y)) → U8_ga(Y, evaluate_in_ga(X))
evaluate_in_ga(X) → U11_ga(X, myinteger_in_g(X))
U2_ga(Y, evaluate_out_ga(X1)) → U3_ga(X1, evaluate_in_ga(Y))
U5_ga(Y, evaluate_out_ga(X1)) → U6_ga(X1, evaluate_in_ga(Y))
U8_ga(Y, evaluate_out_ga(X1)) → U9_ga(X1, evaluate_in_ga(Y))
U11_ga(X, myinteger_out_g) → evaluate_out_ga(X)
U3_ga(X1, evaluate_out_ga(Y1)) → U4_ga(add_in_gga(X1, Y1))
U6_ga(X1, evaluate_out_ga(Y1)) → U7_ga(sub_in_gga(X1, Y1))
U9_ga(X1, evaluate_out_ga(Y1)) → U10_ga(mult_in_gga(X1, Y1))
myinteger_in_g(s(X)) → U12_g(myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g
U4_ga(add_out_gga(Z)) → evaluate_out_ga(Z)
U7_ga(sub_out_gga(Z)) → evaluate_out_ga(Z)
U10_ga(mult_out_gga(Z)) → evaluate_out_ga(Z)
U12_g(myinteger_out_g) → myinteger_out_g
add_in_gga(s(X), Y) → U13_gga(add_in_gga(X, Y))
add_in_gga(0, X) → add_out_gga(X)
sub_in_gga(s(X), s(Y)) → U14_gga(sub_in_gga(X, Y))
sub_in_gga(X, 0) → sub_out_gga(X)
mult_in_gga(s(X), Y) → U15_gga(Y, mult_in_gga(X, Y))
mult_in_gga(0, Y) → mult_out_gga(0)
U13_gga(add_out_gga(Z)) → add_out_gga(s(Z))
U14_gga(sub_out_gga(Z)) → sub_out_gga(Z)
U15_gga(Y, mult_out_gga(Z)) → U16_gga(add_in_gga(Y, Z))
U16_gga(add_out_gga(R)) → mult_out_gga(R)
evaluate_in_ga(x0)
U2_ga(x0, x1)
U5_ga(x0, x1)
U8_ga(x0, x1)
U11_ga(x0, x1)
U3_ga(x0, x1)
U6_ga(x0, x1)
U9_ga(x0, x1)
myinteger_in_g(x0)
U4_ga(x0)
U7_ga(x0)
U10_ga(x0)
U12_g(x0)
add_in_gga(x0, x1)
sub_in_gga(x0, x1)
mult_in_gga(x0, x1)
U13_gga(x0)
U14_gga(x0)
U15_gga(x0, x1)
U16_gga(x0)
From the DPs we obtained the following set of size-change graphs:
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MYIS_IN_AG(Z, X) → U1_AG(Z, X, evaluate_in_ga(X, Z))
MYIS_IN_AG(Z, X) → EVALUATE_IN_GA(X, Z)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(X, X) → U11_GA(X, myinteger_in_g(X))
EVALUATE_IN_GA(X, X) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → U12_G(X, myinteger_in_g(X))
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U9_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_GA(X, Y, Z, mult_in_gga(X1, Y1, Z))
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → MULT_IN_GGA(X1, Y1, Z)
MULT_IN_GGA(s(X), Y, R) → U15_GGA(X, Y, R, mult_in_gga(X, Y, Z))
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → U16_GGA(X, Y, R, add_in_gga(Y, Z, R))
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → ADD_IN_GGA(Y, Z, R)
ADD_IN_GGA(s(X), Y, s(Z)) → U13_GGA(X, Y, Z, add_in_gga(X, Y, Z))
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U6_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_GA(X, Y, Z, sub_in_gga(X1, Y1, Z))
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → SUB_IN_GGA(X1, Y1, Z)
SUB_IN_GGA(s(X), s(Y), Z) → U14_GGA(X, Y, Z, sub_in_gga(X, Y, Z))
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U3_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_GA(X, Y, Z, add_in_gga(X1, Y1, Z))
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → ADD_IN_GGA(X1, Y1, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MYIS_IN_AG(Z, X) → U1_AG(Z, X, evaluate_in_ga(X, Z))
MYIS_IN_AG(Z, X) → EVALUATE_IN_GA(X, Z)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(X, X) → U11_GA(X, myinteger_in_g(X))
EVALUATE_IN_GA(X, X) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → U12_G(X, myinteger_in_g(X))
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U9_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_GA(X, Y, Z, mult_in_gga(X1, Y1, Z))
U9_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → MULT_IN_GGA(X1, Y1, Z)
MULT_IN_GGA(s(X), Y, R) → U15_GGA(X, Y, R, mult_in_gga(X, Y, Z))
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → U16_GGA(X, Y, R, add_in_gga(Y, Z, R))
U15_GGA(X, Y, R, mult_out_gga(X, Y, Z)) → ADD_IN_GGA(Y, Z, R)
ADD_IN_GGA(s(X), Y, s(Z)) → U13_GGA(X, Y, Z, add_in_gga(X, Y, Z))
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U6_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_GA(X, Y, Z, sub_in_gga(X1, Y1, Z))
U6_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → SUB_IN_GGA(X1, Y1, Z)
SUB_IN_GGA(s(X), s(Y), Z) → U14_GGA(X, Y, Z, sub_in_gga(X, Y, Z))
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → U3_GA(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_GA(X, Y, Z, add_in_gga(X1, Y1, Z))
U3_GA(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → ADD_IN_GGA(X1, Y1, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
SUB_IN_GGA(s(X), s(Y), Z) → SUB_IN_GGA(X, Y, Z)
SUB_IN_GGA(s(X), s(Y)) → SUB_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
ADD_IN_GGA(s(X), Y, s(Z)) → ADD_IN_GGA(X, Y, Z)
ADD_IN_GGA(s(X), Y) → ADD_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MULT_IN_GGA(s(X), Y, R) → MULT_IN_GGA(X, Y, Z)
MULT_IN_GGA(s(X), Y) → MULT_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
MYINTEGER_IN_G(s(X)) → MYINTEGER_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
myis_in_ag(Z, X) → U1_ag(Z, X, evaluate_in_ga(X, Z))
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U1_ag(Z, X, evaluate_out_ga(X, Z)) → myis_out_ag(Z, X)
U2_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(+(X, Y), Z) → U2_GA(X, Y, Z, evaluate_in_ga(X, X1))
EVALUATE_IN_GA(+(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(-(X, Y), Z) → U5_GA(X, Y, Z, evaluate_in_ga(X, X1))
U5_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(-(X, Y), Z) → EVALUATE_IN_GA(X, X1)
EVALUATE_IN_GA(*(X, Y), Z) → U8_GA(X, Y, Z, evaluate_in_ga(X, X1))
U8_GA(X, Y, Z, evaluate_out_ga(X, X1)) → EVALUATE_IN_GA(Y, Y1)
EVALUATE_IN_GA(*(X, Y), Z) → EVALUATE_IN_GA(X, X1)
evaluate_in_ga(+(X, Y), Z) → U2_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(-(X, Y), Z) → U5_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(*(X, Y), Z) → U8_ga(X, Y, Z, evaluate_in_ga(X, X1))
evaluate_in_ga(X, X) → U11_ga(X, myinteger_in_g(X))
U2_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U3_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U5_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U6_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U8_ga(X, Y, Z, evaluate_out_ga(X, X1)) → U9_ga(X, Y, Z, X1, evaluate_in_ga(Y, Y1))
U11_ga(X, myinteger_out_g(X)) → evaluate_out_ga(X, X)
U3_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U4_ga(X, Y, Z, add_in_gga(X1, Y1, Z))
U6_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U7_ga(X, Y, Z, sub_in_gga(X1, Y1, Z))
U9_ga(X, Y, Z, X1, evaluate_out_ga(Y, Y1)) → U10_ga(X, Y, Z, mult_in_gga(X1, Y1, Z))
myinteger_in_g(s(X)) → U12_g(X, myinteger_in_g(X))
myinteger_in_g(0) → myinteger_out_g(0)
U4_ga(X, Y, Z, add_out_gga(X1, Y1, Z)) → evaluate_out_ga(+(X, Y), Z)
U7_ga(X, Y, Z, sub_out_gga(X1, Y1, Z)) → evaluate_out_ga(-(X, Y), Z)
U10_ga(X, Y, Z, mult_out_gga(X1, Y1, Z)) → evaluate_out_ga(*(X, Y), Z)
U12_g(X, myinteger_out_g(X)) → myinteger_out_g(s(X))
add_in_gga(s(X), Y, s(Z)) → U13_gga(X, Y, Z, add_in_gga(X, Y, Z))
add_in_gga(0, X, X) → add_out_gga(0, X, X)
sub_in_gga(s(X), s(Y), Z) → U14_gga(X, Y, Z, sub_in_gga(X, Y, Z))
sub_in_gga(X, 0, X) → sub_out_gga(X, 0, X)
mult_in_gga(s(X), Y, R) → U15_gga(X, Y, R, mult_in_gga(X, Y, Z))
mult_in_gga(0, Y, 0) → mult_out_gga(0, Y, 0)
U13_gga(X, Y, Z, add_out_gga(X, Y, Z)) → add_out_gga(s(X), Y, s(Z))
U14_gga(X, Y, Z, sub_out_gga(X, Y, Z)) → sub_out_gga(s(X), s(Y), Z)
U15_gga(X, Y, R, mult_out_gga(X, Y, Z)) → U16_gga(X, Y, R, add_in_gga(Y, Z, R))
U16_gga(X, Y, R, add_out_gga(Y, Z, R)) → mult_out_gga(s(X), Y, R)