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 NonTerminationProof (⇔)
↳21 FALSE
↳22 PiDP
↳23 UsableRulesProof (⇔)
↳24 PiDP
↳25 PiDPToQDPProof (⇐)
↳26 QDP
↳27 QDPSizeChangeProof (⇔)
↳28 TRUE
↳29 PiDP
↳30 UsableRulesProof (⇔)
↳31 PiDP
↳32 PiDPToQDPProof (⇐)
↳33 QDP
↳34 QDPSizeChangeProof (⇔)
↳35 TRUE
↳36 PiDP
↳37 UsableRulesProof (⇔)
↳38 PiDP
↳39 PiDPToQDPProof (⇐)
↳40 QDP
↳41 Narrowing (⇐)
↳42 QDP
↳43 Narrowing (⇐)
↳44 QDP
↳45 Rewriting (⇔)
↳46 QDP
↳47 Narrowing (⇐)
↳48 QDP
↳49 Rewriting (⇔)
↳50 QDP
↳51 Rewriting (⇔)
↳52 QDP
↳53 Rewriting (⇔)
↳54 QDP
↳55 DependencyGraphProof (⇔)
↳56 QDP
↳57 Narrowing (⇐)
↳58 QDP
↳59 Rewriting (⇔)
↳60 QDP
↳61 ForwardInstantiation (⇔)
↳62 QDP
↳63 PiDP
↳64 UsableRulesProof (⇔)
↳65 PiDP
↳66 PrologToPiTRSProof (⇐)
↳67 PiTRS
↳68 DependencyPairsProof (⇔)
↳69 PiDP
↳70 DependencyGraphProof (⇔)
↳71 AND
↳72 PiDP
↳73 UsableRulesProof (⇔)
↳74 PiDP
↳75 PiDPToQDPProof (⇐)
↳76 QDP
↳77 Rewriting (⇔)
↳78 QDP
↳79 UsableRulesProof (⇔)
↳80 QDP
↳81 QReductionProof (⇔)
↳82 QDP
↳83 NonTerminationProof (⇔)
↳84 FALSE
↳85 PiDP
↳86 UsableRulesProof (⇔)
↳87 PiDP
↳88 PiDPToQDPProof (⇐)
↳89 QDP
↳90 QDPSizeChangeProof (⇔)
↳91 TRUE
↳92 PiDP
↳93 UsableRulesProof (⇔)
↳94 PiDP
↳95 PiDPToQDPProof (⇐)
↳96 QDP
↳97 QDPSizeChangeProof (⇔)
↳98 TRUE
↳99 PiDP
↳100 UsableRulesProof (⇔)
↳101 PiDP
↳102 PiDPToQDPProof (⇐)
↳103 QDP
↳104 Narrowing (⇐)
↳105 QDP
↳106 Narrowing (⇐)
↳107 QDP
↳108 Rewriting (⇔)
↳109 QDP
↳110 Narrowing (⇐)
↳111 QDP
↳112 Rewriting (⇔)
↳113 QDP
↳114 Rewriting (⇔)
↳115 QDP
↳116 Rewriting (⇔)
↳117 QDP
↳118 DependencyGraphProof (⇔)
↳119 QDP
↳120 Narrowing (⇐)
↳121 QDP
↳122 Rewriting (⇔)
↳123 QDP
↳124 ForwardInstantiation (⇔)
↳125 QDP
↳126 NonTerminationProof (⇔)
↳127 FALSE
↳128 PiDP
↳129 UsableRulesProof (⇔)
↳130 PiDP
↳131 PiDPToQDPProof (⇐)
↳132 QDP
↳133 UsableRulesReductionPairsProof (⇔)
↳134 QDP
↳135 Narrowing (⇐)
↳136 QDP
↳137 UsableRulesProof (⇔)
↳138 QDP
↳139 QReductionProof (⇔)
↳140 QDP
↳141 Instantiation (⇔)
↳142 QDP
↳143 NonTerminationProof (⇔)
↳144 FALSE
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VLCND_IN_G(N) → U1_G(N, vl_in_ga(N, Xs))
VLCND_IN_G(N) → VL_IN_GA(N, Xs)
VL_IN_GA(0, L) → U5_GA(L, eq_in_ag(L, []))
VL_IN_GA(0, L) → EQ_IN_AG(L, [])
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
VL_IN_GA(N, .(X2, Xs)) → P_IN_GA(N, P)
U6_GA(N, X2, Xs, p_out_ga(N, P)) → U7_GA(N, X2, Xs, vl_in_ga(P, Xs))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
U1_G(N, vl_out_ga(N, Xs)) → U2_G(N, select_in_aga(X1, Xs, Ys))
U1_G(N, vl_out_ga(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
U2_G(N, select_out_aga(X1, Xs, Ys)) → U3_G(N, vl_in_ag(M, Ys))
U2_G(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
VL_IN_AG(0, L) → U5_AG(L, eq_in_gg(L, []))
VL_IN_AG(0, L) → EQ_IN_GG(L, [])
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
VL_IN_AG(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AG(N, X2, Xs, p_out_aa(N, P)) → U7_AG(N, X2, Xs, vl_in_ag(P, Xs))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
U3_G(N, vl_out_ag(M, Ys)) → U4_G(N, vlcnd_in_a(M))
U3_G(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
VLCND_IN_A(N) → VL_IN_AA(N, Xs)
VL_IN_AA(0, L) → U5_AA(L, eq_in_ag(L, []))
VL_IN_AA(0, L) → EQ_IN_AG(L, [])
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
VL_IN_AA(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AA(N, X2, Xs, p_out_aa(N, P)) → U7_AA(N, X2, Xs, vl_in_aa(P, Xs))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U1_A(N, vl_out_aa(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
U3_A(N, vl_out_ag(M, Ys)) → U4_A(N, vlcnd_in_a(M))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VLCND_IN_G(N) → U1_G(N, vl_in_ga(N, Xs))
VLCND_IN_G(N) → VL_IN_GA(N, Xs)
VL_IN_GA(0, L) → U5_GA(L, eq_in_ag(L, []))
VL_IN_GA(0, L) → EQ_IN_AG(L, [])
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
VL_IN_GA(N, .(X2, Xs)) → P_IN_GA(N, P)
U6_GA(N, X2, Xs, p_out_ga(N, P)) → U7_GA(N, X2, Xs, vl_in_ga(P, Xs))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
U1_G(N, vl_out_ga(N, Xs)) → U2_G(N, select_in_aga(X1, Xs, Ys))
U1_G(N, vl_out_ga(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
U2_G(N, select_out_aga(X1, Xs, Ys)) → U3_G(N, vl_in_ag(M, Ys))
U2_G(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
VL_IN_AG(0, L) → U5_AG(L, eq_in_gg(L, []))
VL_IN_AG(0, L) → EQ_IN_GG(L, [])
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
VL_IN_AG(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AG(N, X2, Xs, p_out_aa(N, P)) → U7_AG(N, X2, Xs, vl_in_ag(P, Xs))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
U3_G(N, vl_out_ag(M, Ys)) → U4_G(N, vlcnd_in_a(M))
U3_G(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
VLCND_IN_A(N) → VL_IN_AA(N, Xs)
VL_IN_AA(0, L) → U5_AA(L, eq_in_ag(L, []))
VL_IN_AA(0, L) → EQ_IN_AG(L, [])
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
VL_IN_AA(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AA(N, X2, Xs, p_out_aa(N, P)) → U7_AA(N, X2, Xs, vl_in_aa(P, Xs))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U1_A(N, vl_out_aa(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
U3_A(N, vl_out_ag(M, Ys)) → U4_A(N, vlcnd_in_a(M))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
VL_IN_AA → U6_AA(p_in_aa)
U6_AA(p_out_aa) → VL_IN_AA
p_in_aa → p_out_aa
p_in_aa
VL_IN_AA → U6_AA(p_out_aa)
U6_AA(p_out_aa) → VL_IN_AA
VL_IN_AA → U6_AA(p_out_aa)
p_in_aa → p_out_aa
p_in_aa
U6_AA(p_out_aa) → VL_IN_AA
VL_IN_AA → U6_AA(p_out_aa)
p_in_aa
p_in_aa
U6_AA(p_out_aa) → VL_IN_AA
VL_IN_AA → U6_AA(p_out_aa)
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
VL_IN_AG(.(Xs)) → U6_AG(Xs, p_in_aa)
U6_AG(Xs, p_out_aa) → VL_IN_AG(Xs)
p_in_aa → p_out_aa
p_in_aa
From the DPs we obtained the following set of size-change graphs:
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
SELECT_IN_AGA(.(Xs)) → SELECT_IN_AGA(Xs)
From the DPs we obtained the following set of size-change graphs:
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
eq_in_ag(X, X) → eq_out_ag(X, X)
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_A(vl_out_aa(Xs)) → U2_A(select_in_aga(Xs))
U2_A(select_out_aga(Xs, Ys)) → U3_A(vl_in_ag(Ys))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(Xs, Ys)) → U3_A(vl_in_ag(Ys))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_in_aa))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_in_aa))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U5_aa(eq_in_ag([])))
VLCND_IN_A → U1_A(U6_aa(p_in_aa))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U5_aa(eq_in_ag([])))
VLCND_IN_A → U1_A(U6_aa(p_in_aa))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U5_aa(eq_out_ag([], [])))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U6_aa(p_in_aa))
VLCND_IN_A → U1_A(U5_aa(eq_out_ag([], [])))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U5_aa(eq_out_ag([], [])))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(vl_out_aa([]))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
VLCND_IN_A → U1_A(vl_out_aa([]))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U2_A(select_out_aga(y0, x0)) → U3_A(U5_ag(x0, eq_in_gg(x0, [])))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga(y0, [])) → U3_A(U5_ag([], eq_out_gg([], [])))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, [])) → U3_A(U5_ag([], eq_out_gg([], [])))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga(y0, [])) → U3_A(vl_out_ag([]))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(.(x0), x0))
U2_A(select_out_aga(y0, [])) → U3_A(vl_out_ag([]))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
U1_A(vl_out_aa(.(.(y_1)))) → U2_A(select_out_aga(.(.(y_1)), .(y_1)))
U1_A(vl_out_aa(.([]))) → U2_A(select_out_aga(.([]), []))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(x0, select_in_aga(x0)))
U3_A(vl_out_ag(Ys)) → VLCND_IN_A
U2_A(select_out_aga(y0, .(x0))) → U3_A(U6_ag(x0, p_out_aa))
U2_A(select_out_aga(y0, [])) → U3_A(vl_out_ag([]))
U1_A(vl_out_aa(.(.(y_1)))) → U2_A(select_out_aga(.(.(y_1)), .(y_1)))
U1_A(vl_out_aa(.([]))) → U2_A(select_out_aga(.([]), []))
select_in_aga(.(Xs)) → U8_aga(Xs, select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(.(Xs), Xs)
vl_in_ag(L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(Xs, select_out_aga(Xs, Ys)) → select_out_aga(.(Xs), .(Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(L)
U6_ag(Xs, p_out_aa) → U7_ag(Xs, vl_in_ag(Xs))
U5_aa(eq_out_ag(L, [])) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa → p_out_aa
U7_ag(Xs, vl_out_ag(Xs)) → vl_out_ag(.(Xs))
eq_in_ag(X) → eq_out_ag(X, X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0, x1)
U5_ag(x0, x1)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0, x1)
eq_in_ag(x0)
U7_aa(x0)
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VLCND_IN_G(N) → U1_G(N, vl_in_ga(N, Xs))
VLCND_IN_G(N) → VL_IN_GA(N, Xs)
VL_IN_GA(0, L) → U5_GA(L, eq_in_ag(L, []))
VL_IN_GA(0, L) → EQ_IN_AG(L, [])
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
VL_IN_GA(N, .(X2, Xs)) → P_IN_GA(N, P)
U6_GA(N, X2, Xs, p_out_ga(N, P)) → U7_GA(N, X2, Xs, vl_in_ga(P, Xs))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
U1_G(N, vl_out_ga(N, Xs)) → U2_G(N, select_in_aga(X1, Xs, Ys))
U1_G(N, vl_out_ga(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
U2_G(N, select_out_aga(X1, Xs, Ys)) → U3_G(N, vl_in_ag(M, Ys))
U2_G(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
VL_IN_AG(0, L) → U5_AG(L, eq_in_gg(L, []))
VL_IN_AG(0, L) → EQ_IN_GG(L, [])
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
VL_IN_AG(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AG(N, X2, Xs, p_out_aa(N, P)) → U7_AG(N, X2, Xs, vl_in_ag(P, Xs))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
U3_G(N, vl_out_ag(M, Ys)) → U4_G(N, vlcnd_in_a(M))
U3_G(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
VLCND_IN_A(N) → VL_IN_AA(N, Xs)
VL_IN_AA(0, L) → U5_AA(L, eq_in_ag(L, []))
VL_IN_AA(0, L) → EQ_IN_AG(L, [])
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
VL_IN_AA(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AA(N, X2, Xs, p_out_aa(N, P)) → U7_AA(N, X2, Xs, vl_in_aa(P, Xs))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U1_A(N, vl_out_aa(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
U3_A(N, vl_out_ag(M, Ys)) → U4_A(N, vlcnd_in_a(M))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VLCND_IN_G(N) → U1_G(N, vl_in_ga(N, Xs))
VLCND_IN_G(N) → VL_IN_GA(N, Xs)
VL_IN_GA(0, L) → U5_GA(L, eq_in_ag(L, []))
VL_IN_GA(0, L) → EQ_IN_AG(L, [])
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
VL_IN_GA(N, .(X2, Xs)) → P_IN_GA(N, P)
U6_GA(N, X2, Xs, p_out_ga(N, P)) → U7_GA(N, X2, Xs, vl_in_ga(P, Xs))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
U1_G(N, vl_out_ga(N, Xs)) → U2_G(N, select_in_aga(X1, Xs, Ys))
U1_G(N, vl_out_ga(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → U8_AGA(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
U2_G(N, select_out_aga(X1, Xs, Ys)) → U3_G(N, vl_in_ag(M, Ys))
U2_G(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
VL_IN_AG(0, L) → U5_AG(L, eq_in_gg(L, []))
VL_IN_AG(0, L) → EQ_IN_GG(L, [])
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
VL_IN_AG(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AG(N, X2, Xs, p_out_aa(N, P)) → U7_AG(N, X2, Xs, vl_in_ag(P, Xs))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
U3_G(N, vl_out_ag(M, Ys)) → U4_G(N, vlcnd_in_a(M))
U3_G(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
VLCND_IN_A(N) → VL_IN_AA(N, Xs)
VL_IN_AA(0, L) → U5_AA(L, eq_in_ag(L, []))
VL_IN_AA(0, L) → EQ_IN_AG(L, [])
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
VL_IN_AA(N, .(X2, Xs)) → P_IN_AA(N, P)
U6_AA(N, X2, Xs, p_out_aa(N, P)) → U7_AA(N, X2, Xs, vl_in_aa(P, Xs))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U1_A(N, vl_out_aa(N, Xs)) → SELECT_IN_AGA(X1, Xs, Ys)
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → VL_IN_AG(M, Ys)
U3_A(N, vl_out_ag(M, Ys)) → U4_A(N, vlcnd_in_a(M))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_AA(N, .(X2, Xs)) → U6_AA(N, X2, Xs, p_in_aa(N, P))
U6_AA(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AA(P, Xs)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
VL_IN_AA → U6_AA(p_in_aa)
U6_AA(p_out_aa) → VL_IN_AA
p_in_aa → p_out_aa
p_in_aa
VL_IN_AA → U6_AA(p_out_aa)
U6_AA(p_out_aa) → VL_IN_AA
VL_IN_AA → U6_AA(p_out_aa)
p_in_aa → p_out_aa
p_in_aa
U6_AA(p_out_aa) → VL_IN_AA
VL_IN_AA → U6_AA(p_out_aa)
p_in_aa
p_in_aa
U6_AA(p_out_aa) → VL_IN_AA
VL_IN_AA → U6_AA(p_out_aa)
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_AG(N, .(X2, Xs)) → U6_AG(N, X2, Xs, p_in_aa(N, P))
U6_AG(N, X2, Xs, p_out_aa(N, P)) → VL_IN_AG(P, Xs)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
VL_IN_AG(.(Xs)) → U6_AG(Xs, p_in_aa)
U6_AG(Xs, p_out_aa) → VL_IN_AG(Xs)
p_in_aa → p_out_aa
p_in_aa
From the DPs we obtained the following set of size-change graphs:
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
SELECT_IN_AGA(X, .(Y, Xs), .(Y, Ys)) → SELECT_IN_AGA(X, Xs, Ys)
SELECT_IN_AGA(.(Xs)) → SELECT_IN_AGA(Xs)
From the DPs we obtained the following set of size-change graphs:
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
U1_A(N, vl_out_aa(N, Xs)) → U2_A(N, select_in_aga(X1, Xs, Ys))
U2_A(N, select_out_aga(X1, Xs, Ys)) → U3_A(N, vl_in_ag(M, Ys))
U3_A(N, vl_out_ag(M, Ys)) → VLCND_IN_A(M)
VLCND_IN_A(N) → U1_A(N, vl_in_aa(N, Xs))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
eq_in_gg(X, X) → eq_out_gg(X, X)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
eq_in_ag(X, X) → eq_out_ag(X, X)
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_A(vl_out_aa(Xs)) → U2_A(select_in_aga(Xs))
U2_A(select_out_aga(Ys)) → U3_A(vl_in_ag(Ys))
U3_A(vl_out_ag) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga(Ys)) → U3_A(vl_in_ag(Ys))
U3_A(vl_out_ag) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_in_aa))
U3_A(vl_out_ag) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_in_aa))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
U3_A(vl_out_ag) → VLCND_IN_A
VLCND_IN_A → U1_A(vl_in_aa)
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U5_aa(eq_in_ag([])))
VLCND_IN_A → U1_A(U6_aa(p_in_aa))
U3_A(vl_out_ag) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U5_aa(eq_in_ag([])))
VLCND_IN_A → U1_A(U6_aa(p_in_aa))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U5_aa(eq_out_ag([])))
U3_A(vl_out_ag) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U6_aa(p_in_aa))
VLCND_IN_A → U1_A(U5_aa(eq_out_ag([])))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U3_A(vl_out_ag) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U5_aa(eq_out_ag([])))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(vl_out_aa([]))
U3_A(vl_out_ag) → VLCND_IN_A
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
VLCND_IN_A → U1_A(vl_out_aa([]))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U2_A(select_out_aga(x0)) → U3_A(U5_ag(eq_in_gg(x0, [])))
U3_A(vl_out_ag) → VLCND_IN_A
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga([])) → U3_A(U5_ag(eq_out_gg))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U3_A(vl_out_ag) → VLCND_IN_A
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga([])) → U3_A(U5_ag(eq_out_gg))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
U2_A(select_out_aga([])) → U3_A(vl_out_ag)
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U3_A(vl_out_ag) → VLCND_IN_A
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(select_out_aga(x0))
U2_A(select_out_aga([])) → U3_A(vl_out_ag)
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
U1_A(vl_out_aa(.(.(y_0)))) → U2_A(select_out_aga(.(y_0)))
U1_A(vl_out_aa(.([]))) → U2_A(select_out_aga([]))
VLCND_IN_A → U1_A(U6_aa(p_out_aa))
U1_A(vl_out_aa(.(x0))) → U2_A(U8_aga(select_in_aga(x0)))
U3_A(vl_out_ag) → VLCND_IN_A
U2_A(select_out_aga(.(x0))) → U3_A(U6_ag(x0, p_out_aa))
U2_A(select_out_aga([])) → U3_A(vl_out_ag)
U1_A(vl_out_aa(.(.(y_0)))) → U2_A(select_out_aga(.(y_0)))
U1_A(vl_out_aa(.([]))) → U2_A(select_out_aga([]))
select_in_aga(.(Xs)) → U8_aga(select_in_aga(Xs))
select_in_aga(.(Xs)) → select_out_aga(Xs)
vl_in_ag(L) → U5_ag(eq_in_gg(L, []))
vl_in_ag(.(Xs)) → U6_ag(Xs, p_in_aa)
vl_in_aa → U5_aa(eq_in_ag([]))
vl_in_aa → U6_aa(p_in_aa)
U8_aga(select_out_aga(Ys)) → select_out_aga(.(Ys))
U5_ag(eq_out_gg) → vl_out_ag
U6_ag(Xs, p_out_aa) → U7_ag(vl_in_ag(Xs))
U5_aa(eq_out_ag(L)) → vl_out_aa(L)
U6_aa(p_out_aa) → U7_aa(vl_in_aa)
eq_in_gg(X, X) → eq_out_gg
p_in_aa → p_out_aa
U7_ag(vl_out_ag) → vl_out_ag
eq_in_ag(X) → eq_out_ag(X)
U7_aa(vl_out_aa(Xs)) → vl_out_aa(.(Xs))
select_in_aga(x0)
vl_in_ag(x0)
vl_in_aa
U8_aga(x0)
U5_ag(x0)
U6_ag(x0, x1)
U5_aa(x0)
U6_aa(x0)
eq_in_gg(x0, x1)
p_in_aa
U7_ag(x0)
eq_in_ag(x0)
U7_aa(x0)
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
vlcnd_in_g(N) → U1_g(N, vl_in_ga(N, Xs))
vl_in_ga(0, L) → U5_ga(L, eq_in_ag(L, []))
eq_in_ag(X, X) → eq_out_ag(X, X)
U5_ga(L, eq_out_ag(L, [])) → vl_out_ga(0, L)
vl_in_ga(N, .(X2, Xs)) → U6_ga(N, X2, Xs, p_in_ga(N, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ga(N, X2, Xs, p_out_ga(N, P)) → U7_ga(N, X2, Xs, vl_in_ga(P, Xs))
U7_ga(N, X2, Xs, vl_out_ga(P, Xs)) → vl_out_ga(N, .(X2, Xs))
U1_g(N, vl_out_ga(N, Xs)) → U2_g(N, select_in_aga(X1, Xs, Ys))
select_in_aga(X, .(Y, Xs), .(Y, Ys)) → U8_aga(X, Y, Xs, Ys, select_in_aga(X, Xs, Ys))
select_in_aga(X, .(X, Xs), Xs) → select_out_aga(X, .(X, Xs), Xs)
U8_aga(X, Y, Xs, Ys, select_out_aga(X, Xs, Ys)) → select_out_aga(X, .(Y, Xs), .(Y, Ys))
U2_g(N, select_out_aga(X1, Xs, Ys)) → U3_g(N, vl_in_ag(M, Ys))
vl_in_ag(0, L) → U5_ag(L, eq_in_gg(L, []))
eq_in_gg(X, X) → eq_out_gg(X, X)
U5_ag(L, eq_out_gg(L, [])) → vl_out_ag(0, L)
vl_in_ag(N, .(X2, Xs)) → U6_ag(N, X2, Xs, p_in_aa(N, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U6_ag(N, X2, Xs, p_out_aa(N, P)) → U7_ag(N, X2, Xs, vl_in_ag(P, Xs))
U7_ag(N, X2, Xs, vl_out_ag(P, Xs)) → vl_out_ag(N, .(X2, Xs))
U3_g(N, vl_out_ag(M, Ys)) → U4_g(N, vlcnd_in_a(M))
vlcnd_in_a(N) → U1_a(N, vl_in_aa(N, Xs))
vl_in_aa(0, L) → U5_aa(L, eq_in_ag(L, []))
U5_aa(L, eq_out_ag(L, [])) → vl_out_aa(0, L)
vl_in_aa(N, .(X2, Xs)) → U6_aa(N, X2, Xs, p_in_aa(N, P))
U6_aa(N, X2, Xs, p_out_aa(N, P)) → U7_aa(N, X2, Xs, vl_in_aa(P, Xs))
U7_aa(N, X2, Xs, vl_out_aa(P, Xs)) → vl_out_aa(N, .(X2, Xs))
U1_a(N, vl_out_aa(N, Xs)) → U2_a(N, select_in_aga(X1, Xs, Ys))
U2_a(N, select_out_aga(X1, Xs, Ys)) → U3_a(N, vl_in_ag(M, Ys))
U3_a(N, vl_out_ag(M, Ys)) → U4_a(N, vlcnd_in_a(M))
vlcnd_in_a(0) → vlcnd_out_a(0)
U4_a(N, vlcnd_out_a(M)) → vlcnd_out_a(N)
U4_g(N, vlcnd_out_a(M)) → vlcnd_out_g(N)
vlcnd_in_g(0) → vlcnd_out_g(0)
VL_IN_GA(N, .(X2, Xs)) → U6_GA(N, X2, Xs, p_in_ga(N, P))
U6_GA(N, X2, Xs, p_out_ga(N, P)) → VL_IN_GA(P, Xs)
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
VL_IN_GA(N) → U6_GA(p_in_ga(N))
U6_GA(p_out_ga(P)) → VL_IN_GA(P)
p_in_ga(0) → p_out_ga(0)
p_in_ga(s(X)) → p_out_ga(X)
p_in_ga(x0)
Used ordering: POLO with Polynomial interpretation [POLO]:
p_in_ga(s(X)) → p_out_ga(X)
POL(0) = 0
POL(U6_GA(x1)) = x1
POL(VL_IN_GA(x1)) = x1
POL(p_in_ga(x1)) = x1
POL(p_out_ga(x1)) = 2·x1
POL(s(x1)) = 2·x1
VL_IN_GA(N) → U6_GA(p_in_ga(N))
U6_GA(p_out_ga(P)) → VL_IN_GA(P)
p_in_ga(0) → p_out_ga(0)
p_in_ga(x0)
VL_IN_GA(0) → U6_GA(p_out_ga(0))
U6_GA(p_out_ga(P)) → VL_IN_GA(P)
VL_IN_GA(0) → U6_GA(p_out_ga(0))
p_in_ga(0) → p_out_ga(0)
p_in_ga(x0)
U6_GA(p_out_ga(P)) → VL_IN_GA(P)
VL_IN_GA(0) → U6_GA(p_out_ga(0))
p_in_ga(x0)
p_in_ga(x0)
U6_GA(p_out_ga(P)) → VL_IN_GA(P)
VL_IN_GA(0) → U6_GA(p_out_ga(0))
U6_GA(p_out_ga(0)) → VL_IN_GA(0)
VL_IN_GA(0) → U6_GA(p_out_ga(0))
U6_GA(p_out_ga(0)) → VL_IN_GA(0)