0 Prolog
↳1 CutEliminatorProof (⇐)
↳2 Prolog
↳3 PrologToPiTRSProof (⇐)
↳4 PiTRS
↳5 DependencyPairsProof (⇔)
↳6 PiDP
↳7 DependencyGraphProof (⇔)
↳8 AND
↳9 PiDP
↳10 UsableRulesProof (⇔)
↳11 PiDP
↳12 PiDPToQDPProof (⇐)
↳13 QDP
↳14 Rewriting (⇔)
↳15 QDP
↳16 UsableRulesProof (⇔)
↳17 QDP
↳18 QReductionProof (⇔)
↳19 QDP
↳20 Rewriting (⇔)
↳21 QDP
↳22 UsableRulesProof (⇔)
↳23 QDP
↳24 QReductionProof (⇔)
↳25 QDP
↳26 NonTerminationProof (⇔)
↳27 FALSE
↳28 PiDP
↳29 UsableRulesProof (⇔)
↳30 PiDP
↳31 PiDPToQDPProof (⇐)
↳32 QDP
↳33 Narrowing (⇐)
↳34 QDP
↳35 Rewriting (⇔)
↳36 QDP
↳37 Rewriting (⇔)
↳38 QDP
↳39 Rewriting (⇔)
↳40 QDP
↳41 Narrowing (⇐)
↳42 QDP
↳43 Rewriting (⇔)
↳44 QDP
↳45 Rewriting (⇔)
↳46 QDP
↳47 Rewriting (⇔)
↳48 QDP
↳49 NonTerminationProof (⇔)
↳50 FALSE
↳51 PiDP
↳52 UsableRulesProof (⇔)
↳53 PiDP
↳54 PiDPToQDPProof (⇐)
↳55 QDP
↳56 Narrowing (⇐)
↳57 QDP
↳58 UsableRulesProof (⇔)
↳59 QDP
↳60 QReductionProof (⇔)
↳61 QDP
↳62 Narrowing (⇐)
↳63 QDP
↳64 UsableRulesProof (⇔)
↳65 QDP
↳66 QReductionProof (⇔)
↳67 QDP
↳68 QDPOrderProof (⇔)
↳69 QDP
↳70 DependencyGraphProof (⇔)
↳71 QDP
↳72 Instantiation (⇔)
↳73 QDP
↳74 Instantiation (⇔)
↳75 QDP
↳76 NonTerminationProof (⇔)
↳77 FALSE
↳78 PrologToPiTRSProof (⇐)
↳79 PiTRS
↳80 DependencyPairsProof (⇔)
↳81 PiDP
↳82 DependencyGraphProof (⇔)
↳83 AND
↳84 PiDP
↳85 UsableRulesProof (⇔)
↳86 PiDP
↳87 PiDPToQDPProof (⇐)
↳88 QDP
↳89 Rewriting (⇔)
↳90 QDP
↳91 UsableRulesProof (⇔)
↳92 QDP
↳93 QReductionProof (⇔)
↳94 QDP
↳95 Rewriting (⇔)
↳96 QDP
↳97 UsableRulesProof (⇔)
↳98 QDP
↳99 QReductionProof (⇔)
↳100 QDP
↳101 NonTerminationProof (⇔)
↳102 FALSE
↳103 PiDP
↳104 UsableRulesProof (⇔)
↳105 PiDP
↳106 PiDPToQDPProof (⇐)
↳107 QDP
↳108 Narrowing (⇐)
↳109 QDP
↳110 Rewriting (⇔)
↳111 QDP
↳112 Rewriting (⇔)
↳113 QDP
↳114 Rewriting (⇔)
↳115 QDP
↳116 Narrowing (⇐)
↳117 QDP
↳118 Rewriting (⇔)
↳119 QDP
↳120 Rewriting (⇔)
↳121 QDP
↳122 Rewriting (⇔)
↳123 QDP
↳124 NonTerminationProof (⇔)
↳125 FALSE
↳126 PiDP
↳127 UsableRulesProof (⇔)
↳128 PiDP
↳129 PiDPToQDPProof (⇐)
↳130 QDP
↳131 UsableRulesReductionPairsProof (⇔)
↳132 QDP
↳133 Narrowing (⇐)
↳134 QDP
↳135 UsableRulesProof (⇔)
↳136 QDP
↳137 QReductionProof (⇔)
↳138 QDP
↳139 Narrowing (⇐)
↳140 QDP
↳141 UsableRulesProof (⇔)
↳142 QDP
↳143 QReductionProof (⇔)
↳144 QDP
↳145 Instantiation (⇔)
↳146 QDP
↳147 NonTerminationProof (⇔)
↳148 FALSE
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → U1_GG(U, V, W, Z, app_in_gga(U, V, U1))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → APP_IN_GGA(U, V, U1)
APP_IN_GGA(nil, Y, Z) → U4_GGA(Y, Z, eq_in_ga(Y, Z))
APP_IN_GGA(nil, Y, Z) → EQ_IN_GA(Y, Z)
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
APP_IN_GGA(X, Y, cons(U, Z)) → HEAD_IN_GA(X, U)
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → TAIL_IN_GA(X, V)
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → APP_IN_GGA(W, Z, W1)
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → APP_IN_AAA(U, V, U1)
APP_IN_AAA(nil, Y, Z) → U4_AAA(Y, Z, eq_in_aa(Y, Z))
APP_IN_AAA(nil, Y, Z) → EQ_IN_AA(Y, Z)
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
APP_IN_AAA(X, Y, cons(U, Z)) → HEAD_IN_AA(X, U)
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → TAIL_IN_AA(X, V)
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → APP_IN_AAA(W, Z, W1)
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → U1_GG(U, V, W, Z, app_in_gga(U, V, U1))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → APP_IN_GGA(U, V, U1)
APP_IN_GGA(nil, Y, Z) → U4_GGA(Y, Z, eq_in_ga(Y, Z))
APP_IN_GGA(nil, Y, Z) → EQ_IN_GA(Y, Z)
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
APP_IN_GGA(X, Y, cons(U, Z)) → HEAD_IN_GA(X, U)
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → TAIL_IN_GA(X, V)
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → APP_IN_GGA(W, Z, W1)
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → APP_IN_AAA(U, V, U1)
APP_IN_AAA(nil, Y, Z) → U4_AAA(Y, Z, eq_in_aa(Y, Z))
APP_IN_AAA(nil, Y, Z) → EQ_IN_AA(Y, Z)
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
APP_IN_AAA(X, Y, cons(U, Z)) → HEAD_IN_AA(X, U)
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → TAIL_IN_AA(X, V)
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → APP_IN_AAA(W, Z, W1)
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
APP_IN_AAA → U5_AAA(head_in_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
head_in_aa → head_out_aa
tail_in_aa → tail_out_aa
head_in_aa
tail_in_aa
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
head_in_aa → head_out_aa
tail_in_aa → tail_out_aa
head_in_aa
tail_in_aa
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
tail_in_aa → tail_out_aa
head_in_aa
tail_in_aa
head_in_aa
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
tail_in_aa → tail_out_aa
tail_in_aa
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
tail_in_aa → tail_out_aa
tail_in_aa
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
tail_in_aa
tail_in_aa
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
eq_in_aa(X, X) → eq_out_aa(X, X)
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_AA(app_out_aaa) → U2_AA(app_in_aaa)
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_in_aa))
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_in_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_in_aa))
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_in_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_in_aa))
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_out_aa))
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_in_aa))
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_in_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_in_aa))
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_in_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_in_aa))
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_out_aa))
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(app_out_aaa)
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_out_aa))
LESSLEAVES_IN_AA → U1_AA(app_out_aaa)
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
APP_IN_GGA(X, Y) → U5_GGA(X, Y, head_in_ga(X))
U5_GGA(X, Y, head_out_ga(X)) → U6_GGA(X, Y, tail_in_ga(X))
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
head_in_ga([]) → head_out_ga([])
head_in_ga(.(X, X4)) → head_out_ga(.(X, X4))
tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X5, X)) → tail_out_ga(.(X5, X), X)
head_in_ga(x0)
tail_in_ga(x0)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
U5_GGA(X, Y, head_out_ga(X)) → U6_GGA(X, Y, tail_in_ga(X))
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
head_in_ga([]) → head_out_ga([])
head_in_ga(.(X, X4)) → head_out_ga(.(X, X4))
tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X5, X)) → tail_out_ga(.(X5, X), X)
head_in_ga(x0)
tail_in_ga(x0)
U5_GGA(X, Y, head_out_ga(X)) → U6_GGA(X, Y, tail_in_ga(X))
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X5, X)) → tail_out_ga(.(X5, X), X)
head_in_ga(x0)
tail_in_ga(x0)
head_in_ga(x0)
U5_GGA(X, Y, head_out_ga(X)) → U6_GGA(X, Y, tail_in_ga(X))
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X5, X)) → tail_out_ga(.(X5, X), X)
tail_in_ga(x0)
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1))) → U6_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1))) → U6_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))
tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X5, X)) → tail_out_ga(.(X5, X), X)
tail_in_ga(x0)
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1))) → U6_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))
tail_in_ga(x0)
tail_in_ga(x0)
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1))) → U6_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1))) → U6_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))
POL(.(x1, x2)) = 1 + x2
POL(APP_IN_GGA(x1, x2)) = x1
POL(U5_GGA(x1, x2, x3)) = x3
POL(U6_GGA(x1, x2, x3)) = x3
POL([]) = 0
POL(head_out_ga(x1)) = x1
POL(tail_out_ga(x1, x2)) = x2
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
APP_IN_GGA(.(x0, x1), y1) → U5_GGA(.(x0, x1), y1, head_out_ga(.(x0, x1)))
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
U6_GGA(X, Y, tail_out_ga(X, V)) → APP_IN_GGA(V, Y)
U6_GGA([], z0, tail_out_ga([], [])) → APP_IN_GGA([], z0)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
U6_GGA([], z0, tail_out_ga([], [])) → APP_IN_GGA([], z0)
U6_GGA([], z0, tail_out_ga([], [])) → APP_IN_GGA([], z0)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga([]))
U5_GGA([], y1, head_out_ga([])) → U6_GGA([], y1, tail_out_ga([], []))
U6_GGA([], z0, tail_out_ga([], [])) → APP_IN_GGA([], z0)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → U1_GG(U, V, W, Z, app_in_gga(U, V, U1))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → APP_IN_GGA(U, V, U1)
APP_IN_GGA(nil, Y, Z) → U4_GGA(Y, Z, eq_in_ga(Y, Z))
APP_IN_GGA(nil, Y, Z) → EQ_IN_GA(Y, Z)
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
APP_IN_GGA(X, Y, cons(U, Z)) → HEAD_IN_GA(X, U)
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → TAIL_IN_GA(X, V)
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → APP_IN_GGA(W, Z, W1)
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → APP_IN_AAA(U, V, U1)
APP_IN_AAA(nil, Y, Z) → U4_AAA(Y, Z, eq_in_aa(Y, Z))
APP_IN_AAA(nil, Y, Z) → EQ_IN_AA(Y, Z)
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
APP_IN_AAA(X, Y, cons(U, Z)) → HEAD_IN_AA(X, U)
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → TAIL_IN_AA(X, V)
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → APP_IN_AAA(W, Z, W1)
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → U1_GG(U, V, W, Z, app_in_gga(U, V, U1))
LESSLEAVES_IN_GG(cons(U, V), cons(W, Z)) → APP_IN_GGA(U, V, U1)
APP_IN_GGA(nil, Y, Z) → U4_GGA(Y, Z, eq_in_ga(Y, Z))
APP_IN_GGA(nil, Y, Z) → EQ_IN_GA(Y, Z)
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
APP_IN_GGA(X, Y, cons(U, Z)) → HEAD_IN_GA(X, U)
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → TAIL_IN_GA(X, V)
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → U7_GGA(X, Y, U, Z, app_in_gga(V, Y, Z))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → U2_GG(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U1_GG(U, V, W, Z, app_out_gga(U, V, U1)) → APP_IN_GGA(W, Z, W1)
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_GG(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_GG(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → APP_IN_AAA(U, V, U1)
APP_IN_AAA(nil, Y, Z) → U4_AAA(Y, Z, eq_in_aa(Y, Z))
APP_IN_AAA(nil, Y, Z) → EQ_IN_AA(Y, Z)
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
APP_IN_AAA(X, Y, cons(U, Z)) → HEAD_IN_AA(X, U)
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → TAIL_IN_AA(X, V)
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → U7_AAA(X, Y, U, Z, app_in_aaa(V, Y, Z))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → APP_IN_AAA(W, Z, W1)
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_AA(U, V, W, Z, lessleaves_in_aa(U1, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
APP_IN_AAA(X, Y, cons(U, Z)) → U5_AAA(X, Y, U, Z, head_in_aa(X, U))
U5_AAA(X, Y, U, Z, head_out_aa(X, U)) → U6_AAA(X, Y, U, Z, tail_in_aa(X, V))
U6_AAA(X, Y, U, Z, tail_out_aa(X, V)) → APP_IN_AAA(V, Y, Z)
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
APP_IN_AAA → U5_AAA(head_in_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
head_in_aa → head_out_aa
tail_in_aa → tail_out_aa
head_in_aa
tail_in_aa
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
head_in_aa → head_out_aa
tail_in_aa → tail_out_aa
head_in_aa
tail_in_aa
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
tail_in_aa → tail_out_aa
head_in_aa
tail_in_aa
head_in_aa
U5_AAA(head_out_aa) → U6_AAA(tail_in_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
tail_in_aa → tail_out_aa
tail_in_aa
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
tail_in_aa → tail_out_aa
tail_in_aa
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
tail_in_aa
tail_in_aa
U6_AAA(tail_out_aa) → APP_IN_AAA
APP_IN_AAA → U5_AAA(head_out_aa)
U5_AAA(head_out_aa) → U6_AAA(tail_out_aa)
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
U1_AA(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_AA(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_AA(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → LESSLEAVES_IN_AA(U1, W1)
LESSLEAVES_IN_AA(cons(U, V), cons(W, Z)) → U1_AA(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
eq_in_aa(X, X) → eq_out_aa(X, X)
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_AA(app_out_aaa) → U2_AA(app_in_aaa)
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_in_aa))
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_in_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_in_aa))
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_in_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_in_aa))
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U4_aaa(eq_out_aa))
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
LESSLEAVES_IN_AA → U1_AA(app_in_aaa)
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_in_aa))
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_in_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_in_aa))
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_in_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_in_aa))
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_out_aa))
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U4_aaa(eq_out_aa))
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_out_aa))
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
LESSLEAVES_IN_AA → U1_AA(app_out_aaa)
U2_AA(app_out_aaa) → LESSLEAVES_IN_AA
U1_AA(app_out_aaa) → U2_AA(U5_aaa(head_out_aa))
U1_AA(app_out_aaa) → U2_AA(app_out_aaa)
LESSLEAVES_IN_AA → U1_AA(U5_aaa(head_out_aa))
LESSLEAVES_IN_AA → U1_AA(app_out_aaa)
app_in_aaa → U4_aaa(eq_in_aa)
app_in_aaa → U5_aaa(head_in_aa)
U4_aaa(eq_out_aa) → app_out_aaa
U5_aaa(head_out_aa) → U6_aaa(tail_in_aa)
eq_in_aa → eq_out_aa
head_in_aa → head_out_aa
U6_aaa(tail_out_aa) → U7_aaa(app_in_aaa)
tail_in_aa → tail_out_aa
U7_aaa(app_out_aaa) → app_out_aaa
app_in_aaa
U4_aaa(x0)
U5_aaa(x0)
eq_in_aa
head_in_aa
U6_aaa(x0)
tail_in_aa
U7_aaa(x0)
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
lessleaves_in_gg(nil, cons(X1, X2)) → lessleaves_out_gg(nil, cons(X1, X2))
lessleaves_in_gg(cons(U, V), cons(W, Z)) → U1_gg(U, V, W, Z, app_in_gga(U, V, U1))
app_in_gga(nil, Y, Z) → U4_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U4_gga(Y, Z, eq_out_ga(Y, Z)) → app_out_gga(nil, Y, Z)
app_in_gga(X, Y, cons(U, Z)) → U5_gga(X, Y, U, Z, head_in_ga(X, U))
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
U5_gga(X, Y, U, Z, head_out_ga(X, U)) → U6_gga(X, Y, U, Z, tail_in_ga(X, V))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
U6_gga(X, Y, U, Z, tail_out_ga(X, V)) → U7_gga(X, Y, U, Z, app_in_gga(V, Y, Z))
U7_gga(X, Y, U, Z, app_out_gga(V, Y, Z)) → app_out_gga(X, Y, cons(U, Z))
U1_gg(U, V, W, Z, app_out_gga(U, V, U1)) → U2_gg(U, V, W, Z, U1, app_in_gga(W, Z, W1))
U2_gg(U, V, W, Z, U1, app_out_gga(W, Z, W1)) → U3_gg(U, V, W, Z, lessleaves_in_aa(U1, W1))
lessleaves_in_aa(nil, cons(X1, X2)) → lessleaves_out_aa(nil, cons(X1, X2))
lessleaves_in_aa(cons(U, V), cons(W, Z)) → U1_aa(U, V, W, Z, app_in_aaa(U, V, U1))
app_in_aaa(nil, Y, Z) → U4_aaa(Y, Z, eq_in_aa(Y, Z))
eq_in_aa(X, X) → eq_out_aa(X, X)
U4_aaa(Y, Z, eq_out_aa(Y, Z)) → app_out_aaa(nil, Y, Z)
app_in_aaa(X, Y, cons(U, Z)) → U5_aaa(X, Y, U, Z, head_in_aa(X, U))
head_in_aa([], X3) → head_out_aa([], X3)
head_in_aa(.(X, X4), X) → head_out_aa(.(X, X4), X)
U5_aaa(X, Y, U, Z, head_out_aa(X, U)) → U6_aaa(X, Y, U, Z, tail_in_aa(X, V))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X5, X), X) → tail_out_aa(.(X5, X), X)
U6_aaa(X, Y, U, Z, tail_out_aa(X, V)) → U7_aaa(X, Y, U, Z, app_in_aaa(V, Y, Z))
U7_aaa(X, Y, U, Z, app_out_aaa(V, Y, Z)) → app_out_aaa(X, Y, cons(U, Z))
U1_aa(U, V, W, Z, app_out_aaa(U, V, U1)) → U2_aa(U, V, W, Z, U1, app_in_aaa(W, Z, W1))
U2_aa(U, V, W, Z, U1, app_out_aaa(W, Z, W1)) → U3_aa(U, V, W, Z, lessleaves_in_aa(U1, W1))
U3_aa(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_aa(cons(U, V), cons(W, Z))
U3_gg(U, V, W, Z, lessleaves_out_aa(U1, W1)) → lessleaves_out_gg(cons(U, V), cons(W, Z))
APP_IN_GGA(X, Y, cons(U, Z)) → U5_GGA(X, Y, U, Z, head_in_ga(X, U))
U5_GGA(X, Y, U, Z, head_out_ga(X, U)) → U6_GGA(X, Y, U, Z, tail_in_ga(X, V))
U6_GGA(X, Y, U, Z, tail_out_ga(X, V)) → APP_IN_GGA(V, Y, Z)
head_in_ga([], X3) → head_out_ga([], X3)
head_in_ga(.(X, X4), X) → head_out_ga(.(X, X4), X)
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X5, X), X) → tail_out_ga(.(X5, X), X)
APP_IN_GGA(X, Y) → U5_GGA(X, Y, head_in_ga(X))
U5_GGA(X, Y, head_out_ga) → U6_GGA(Y, tail_in_ga(X))
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
head_in_ga([]) → head_out_ga
head_in_ga(.(X, X4)) → head_out_ga
tail_in_ga([]) → tail_out_ga([])
tail_in_ga(.(X5, X)) → tail_out_ga(X)
head_in_ga(x0)
tail_in_ga(x0)
Used ordering: POLO with Polynomial interpretation [POLO]:
tail_in_ga(.(X5, X)) → tail_out_ga(X)
head_in_ga(.(X, X4)) → head_out_ga
POL(.(x1, x2)) = 1 + x1 + 2·x2
POL(APP_IN_GGA(x1, x2)) = 2·x1 + x2
POL(U5_GGA(x1, x2, x3)) = x1 + x2 + x3
POL(U6_GGA(x1, x2)) = x1 + x2
POL([]) = 0
POL(head_in_ga(x1)) = x1
POL(head_out_ga) = 0
POL(tail_in_ga(x1)) = x1
POL(tail_out_ga(x1)) = 2·x1
APP_IN_GGA(X, Y) → U5_GGA(X, Y, head_in_ga(X))
U5_GGA(X, Y, head_out_ga) → U6_GGA(Y, tail_in_ga(X))
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
tail_in_ga([]) → tail_out_ga([])
head_in_ga([]) → head_out_ga
head_in_ga(x0)
tail_in_ga(x0)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
U5_GGA(X, Y, head_out_ga) → U6_GGA(Y, tail_in_ga(X))
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
tail_in_ga([]) → tail_out_ga([])
head_in_ga([]) → head_out_ga
head_in_ga(x0)
tail_in_ga(x0)
U5_GGA(X, Y, head_out_ga) → U6_GGA(Y, tail_in_ga(X))
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
tail_in_ga([]) → tail_out_ga([])
head_in_ga(x0)
tail_in_ga(x0)
head_in_ga(x0)
U5_GGA(X, Y, head_out_ga) → U6_GGA(Y, tail_in_ga(X))
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
tail_in_ga([]) → tail_out_ga([])
tail_in_ga(x0)
U5_GGA([], y1, head_out_ga) → U6_GGA(y1, tail_out_ga([]))
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
U5_GGA([], y1, head_out_ga) → U6_GGA(y1, tail_out_ga([]))
tail_in_ga([]) → tail_out_ga([])
tail_in_ga(x0)
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
U5_GGA([], y1, head_out_ga) → U6_GGA(y1, tail_out_ga([]))
tail_in_ga(x0)
tail_in_ga(x0)
U6_GGA(Y, tail_out_ga(V)) → APP_IN_GGA(V, Y)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
U5_GGA([], y1, head_out_ga) → U6_GGA(y1, tail_out_ga([]))
U6_GGA(z0, tail_out_ga([])) → APP_IN_GGA([], z0)
APP_IN_GGA([], y1) → U5_GGA([], y1, head_out_ga)
U5_GGA([], y1, head_out_ga) → U6_GGA(y1, tail_out_ga([]))
U6_GGA(z0, tail_out_ga([])) → APP_IN_GGA([], z0)