0 QTRS
↳1 AAECC Innermost (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 UsableRulesProof (⇔)
↳9 QDP
↳10 QReductionProof (⇔)
↳11 QDP
↳12 QDPSizeChangeProof (⇔)
↳13 TRUE
↳14 QDP
↳15 UsableRulesProof (⇔)
↳16 QDP
↳17 QReductionProof (⇔)
↳18 QDP
↳19 QDPSizeChangeProof (⇔)
↳20 TRUE
↳21 QDP
↳22 UsableRulesProof (⇔)
↳23 QDP
↳24 QReductionProof (⇔)
↳25 QDP
↳26 QDPSizeChangeProof (⇔)
↳27 TRUE
↳28 QDP
↳29 UsableRulesProof (⇔)
↳30 QDP
↳31 QReductionProof (⇔)
↳32 QDP
↳33 QDPSizeChangeProof (⇔)
↳34 TRUE
↳35 QDP
↳36 UsableRulesProof (⇔)
↳37 QDP
↳38 QReductionProof (⇔)
↳39 QDP
↳40 QDPSizeChangeProof (⇔)
↳41 TRUE
↳42 QDP
↳43 UsableRulesProof (⇔)
↳44 QDP
↳45 QReductionProof (⇔)
↳46 QDP
↳47 QDPSizeChangeProof (⇔)
↳48 TRUE
↳49 QDP
↳50 UsableRulesProof (⇔)
↳51 QDP
↳52 QReductionProof (⇔)
↳53 QDP
↳54 Narrowing (⇔)
↳55 QDP
↳56 Narrowing (⇔)
↳57 QDP
↳58 Narrowing (⇔)
↳59 QDP
↳60 DependencyGraphProof (⇔)
↳61 QDP
↳62 Rewriting (⇔)
↳63 QDP
↳64 Narrowing (⇔)
↳65 QDP
↳66 Narrowing (⇔)
↳67 QDP
↳68 DependencyGraphProof (⇔)
↳69 QDP
↳70 Rewriting (⇔)
↳71 QDP
↳72 Narrowing (⇔)
↳73 QDP
↳74 Narrowing (⇔)
↳75 QDP
↳76 DependencyGraphProof (⇔)
↳77 QDP
↳78 Rewriting (⇔)
↳79 QDP
↳80 Narrowing (⇔)
↳81 QDP
↳82 DependencyGraphProof (⇔)
↳83 QDP
↳84 Narrowing (⇔)
↳85 QDP
↳86 DependencyGraphProof (⇔)
↳87 QDP
↳88 Instantiation (⇔)
↳89 QDP
↳90 Rewriting (⇔)
↳91 QDP
↳92 Instantiation (⇔)
↳93 QDP
↳94 Rewriting (⇔)
↳95 QDP
↳96 Instantiation (⇔)
↳97 QDP
↳98 Rewriting (⇔)
↳99 QDP
↳100 Rewriting (⇔)
↳101 QDP
↳102 Instantiation (⇔)
↳103 QDP
↳104 Instantiation (⇔)
↳105 QDP
↳106 Rewriting (⇔)
↳107 QDP
↳108 Rewriting (⇔)
↳109 QDP
↳110 Rewriting (⇔)
↳111 QDP
↳112 Rewriting (⇔)
↳113 QDP
↳114 Rewriting (⇔)
↳115 QDP
↳116 Rewriting (⇔)
↳117 QDP
↳118 Instantiation (⇔)
↳119 QDP
↳120 Rewriting (⇔)
↳121 QDP
↳122 Rewriting (⇔)
↳123 QDP
↳124 Instantiation (⇔)
↳125 QDP
↳126 Instantiation (⇔)
↳127 QDP
↳128 Rewriting (⇔)
↳129 QDP
↳130 Rewriting (⇔)
↳131 QDP
↳132 UsableRulesProof (⇔)
↳133 QDP
↳134 QReductionProof (⇔)
↳135 QDP
↳136 Rewriting (⇔)
↳137 QDP
↳138 Rewriting (⇔)
↳139 QDP
↳140 UsableRulesProof (⇔)
↳141 QDP
↳142 QReductionProof (⇔)
↳143 QDP
↳144 Instantiation (⇔)
↳145 QDP
↳146 Rewriting (⇔)
↳147 QDP
↳148 ForwardInstantiation (⇔)
↳149 QDP
↳150 ForwardInstantiation (⇔)
↳151 QDP
↳152 ForwardInstantiation (⇔)
↳153 QDP
↳154 ForwardInstantiation (⇔)
↳155 QDP
↳156 ForwardInstantiation (⇔)
↳157 QDP
↳158 ForwardInstantiation (⇔)
↳159 QDP
↳160 QDPOrderProof (⇔)
↳161 QDP
↳162 DependencyGraphProof (⇔)
↳163 QDP
↳164 QDPOrderProof (⇔)
↳165 QDP
↳166 DependencyGraphProof (⇔)
↳167 QDP
↳168 QDPOrderProof (⇔)
↳169 QDP
↳170 DependencyGraphProof (⇔)
↳171 QDP
↳172 QDPOrderProof (⇔)
↳173 QDP
↳174 DependencyGraphProof (⇔)
↳175 QDP
↳176 UsableRulesProof (⇔)
↳177 QDP
↳178 QReductionProof (⇔)
↳179 QDP
↳180 QDPOrderProof (⇔)
↳181 QDP
↳182 DependencyGraphProof (⇔)
↳183 TRUE
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
FSTSPLIT(s(n), cons(h, t)) → FSTSPLIT(n, t)
SNDSPLIT(s(n), cons(h, t)) → SNDSPLIT(n, t)
LEQ(s(n), s(m)) → LEQ(n, m)
LENGTH(cons(h, t)) → LENGTH(t)
APP(cons(h, t), x) → APP(t, x)
MAP_F(pid, cons(h, t)) → APP(f(pid, h), map_f(pid, t))
MAP_F(pid, cons(h, t)) → MAP_F(pid, t)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
RING(st_1, in_2, st_2, in_3, st_3, m) → EMPTY(fstsplit(m, st_1))
RING(st_1, in_2, st_2, in_3, st_3, m) → FSTSPLIT(m, st_1)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → SNDSPLIT(m, st_1)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → FSTSPLIT(m, st_1)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
RING(st_1, in_2, st_2, in_3, st_3, m) → LEQ(m, length(st_2))
RING(st_1, in_2, st_2, in_3, st_3, m) → LENGTH(st_2)
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → EMPTY(fstsplit(m, st_2))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → FSTSPLIT(m, st_2)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → SNDSPLIT(m, st_2)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → FSTSPLIT(m, st_2)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → EMPTY(fstsplit(m, app(map_f(two, head(in_2)), st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → FSTSPLIT(m, app(map_f(two, head(in_2)), st_2))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → APP(map_f(two, head(in_2)), st_2)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → MAP_F(two, head(in_2))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → HEAD(in_2)
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → TAIL(in_2)
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → SNDSPLIT(m, app(map_f(two, head(in_2)), st_2))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → APP(map_f(two, head(in_2)), st_2)
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → MAP_F(two, head(in_2))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → HEAD(in_2)
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → FSTSPLIT(m, app(map_f(two, head(in_2)), st_2))
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
RING(st_1, in_2, st_2, in_3, st_3, m) → EMPTY(map_f(two, head(in_2)))
RING(st_1, in_2, st_2, in_3, st_3, m) → MAP_F(two, head(in_2))
RING(st_1, in_2, st_2, in_3, st_3, m) → HEAD(in_2)
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → TAIL(in_2)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
RING(st_1, in_2, st_2, in_3, st_3, m) → LEQ(m, length(st_3))
RING(st_1, in_2, st_2, in_3, st_3, m) → LENGTH(st_3)
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → EMPTY(fstsplit(m, st_3))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → FSTSPLIT(m, st_3)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → SNDSPLIT(m, st_3)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → EMPTY(fstsplit(m, app(map_f(three, head(in_3)), st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → FSTSPLIT(m, app(map_f(three, head(in_3)), st_3))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → APP(map_f(three, head(in_3)), st_3)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → MAP_F(three, head(in_3))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → HEAD(in_3)
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → TAIL(in_3)
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → SNDSPLIT(m, app(map_f(three, head(in_3)), st_3))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → APP(map_f(three, head(in_3)), st_3)
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → MAP_F(three, head(in_3))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → HEAD(in_3)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
RING(st_1, in_2, st_2, in_3, st_3, m) → EMPTY(map_f(three, head(in_3)))
RING(st_1, in_2, st_2, in_3, st_3, m) → MAP_F(three, head(in_3))
RING(st_1, in_2, st_2, in_3, st_3, m) → HEAD(in_3)
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → TAIL(in_3)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
APP(cons(h, t), x) → APP(t, x)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
APP(cons(h, t), x) → APP(t, x)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
APP(cons(h, t), x) → APP(t, x)
From the DPs we obtained the following set of size-change graphs:
MAP_F(pid, cons(h, t)) → MAP_F(pid, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
MAP_F(pid, cons(h, t)) → MAP_F(pid, t)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
MAP_F(pid, cons(h, t)) → MAP_F(pid, t)
From the DPs we obtained the following set of size-change graphs:
LENGTH(cons(h, t)) → LENGTH(t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
LENGTH(cons(h, t)) → LENGTH(t)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
LENGTH(cons(h, t)) → LENGTH(t)
From the DPs we obtained the following set of size-change graphs:
LEQ(s(n), s(m)) → LEQ(n, m)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
LEQ(s(n), s(m)) → LEQ(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
LEQ(s(n), s(m)) → LEQ(n, m)
From the DPs we obtained the following set of size-change graphs:
SNDSPLIT(s(n), cons(h, t)) → SNDSPLIT(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
SNDSPLIT(s(n), cons(h, t)) → SNDSPLIT(n, t)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
SNDSPLIT(s(n), cons(h, t)) → SNDSPLIT(n, t)
From the DPs we obtained the following set of size-change graphs:
FSTSPLIT(s(n), cons(h, t)) → FSTSPLIT(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
FSTSPLIT(s(n), cons(h, t)) → FSTSPLIT(n, t)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
FSTSPLIT(s(n), cons(h, t)) → FSTSPLIT(n, t)
From the DPs we obtained the following set of size-change graphs:
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
empty(nil) → true
empty(cons(h, t)) → false
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
length(nil) → 0
length(cons(h, t)) → s(length(t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
head(cons(h, t)) → h
tail(cons(h, t)) → t
ring(st_1, in_2, st_2, in_3, st_3, m) → if_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
if_1(st_1, in_2, st_2, in_3, st_3, m, false) → ring(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
if_2(st_1, in_2, st_2, in_3, st_3, m, true) → if_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
if_3(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
if_2(st_1, in_2, st_2, in_3, st_3, m, false) → if_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
if_4(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
if_5(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, tail(in_2), st_2, in_3, st_3, m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
if_6(st_1, in_2, st_2, in_3, st_3, m, true) → if_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
if_7(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
if_6(st_1, in_2, st_2, in_3, st_3, m, false) → if_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
if_8(st_1, in_2, st_2, in_3, st_3, m, false) → ring(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
ring(st_1, in_2, st_2, in_3, st_3, m) → if_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
if_9(st_1, in_2, st_2, in_3, st_3, m, true) → ring(st_1, in_2, st_2, tail(in_3), st_3, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
ring(x0, x1, x2, x3, x4, x5)
if_1(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, true)
if_3(x0, x1, x2, x3, x4, x5, false)
if_2(x0, x1, x2, x3, x4, x5, false)
if_4(x0, x1, x2, x3, x4, x5, false)
if_5(x0, x1, x2, x3, x4, x5, true)
if_6(x0, x1, x2, x3, x4, x5, true)
if_7(x0, x1, x2, x3, x4, x5, false)
if_6(x0, x1, x2, x3, x4, x5, false)
if_8(x0, x1, x2, x3, x4, x5, false)
if_9(x0, x1, x2, x3, x4, x5, true)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_5(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(two, head(in_2))))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_9(st_1, in_2, st_2, in_3, st_3, m, empty(map_f(three, head(in_3))))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_1(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1)))
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(x0, y1, y2, y3, y4, 0) → IF_1(x0, y1, y2, y3, y4, 0, empty(nil))
RING(nil, y1, y2, y3, y4, s(x0)) → IF_1(nil, y1, y2, y3, y4, s(x0), empty(nil))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), empty(cons(x1, fstsplit(x0, x2))))
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(x0, y1, y2, y3, y4, 0) → IF_1(x0, y1, y2, y3, y4, 0, empty(nil))
RING(nil, y1, y2, y3, y4, s(x0)) → IF_1(nil, y1, y2, y3, y4, s(x0), empty(nil))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), empty(cons(x1, fstsplit(x0, x2))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), empty(cons(x1, fstsplit(x0, x2))))
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_2(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_2)))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, y1, y2, y3, y4, 0) → IF_2(y0, y1, y2, y3, y4, 0, true)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(st_1, in_2, st_2, in_3, st_3, m, true) → IF_3(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_2)))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, y2, y3, y4, 0) → IF_2(y0, y1, y2, y3, y4, 0, true)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_2(y0, y1, x0, y3, y4, 0, true) → IF_3(y0, y1, x0, y3, y4, 0, empty(nil))
IF_2(y0, y1, nil, y3, y4, s(x0), true) → IF_3(y0, y1, nil, y3, y4, s(x0), empty(nil))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), empty(cons(x1, fstsplit(x0, x2))))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, y2, y3, y4, 0) → IF_2(y0, y1, y2, y3, y4, 0, true)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, x0, y3, y4, 0, true) → IF_3(y0, y1, x0, y3, y4, 0, empty(nil))
IF_2(y0, y1, nil, y3, y4, s(x0), true) → IF_3(y0, y1, nil, y3, y4, s(x0), empty(nil))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), empty(cons(x1, fstsplit(x0, x2))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), empty(cons(x1, fstsplit(x0, x2))))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(st_1, in_2, st_2, in_3, st_3, m) → IF_6(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_3)))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, y1, y2, y3, y4, 0) → IF_6(y0, y1, y2, y3, y4, 0, true)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(st_1, in_2, st_2, in_3, st_3, m, true) → IF_7(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3)))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, y4, 0) → IF_6(y0, y1, y2, y3, y4, 0, true)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_6(y0, y1, y2, y3, x0, 0, true) → IF_7(y0, y1, y2, y3, x0, 0, empty(nil))
IF_6(y0, y1, y2, y3, nil, s(x0), true) → IF_7(y0, y1, y2, y3, nil, s(x0), empty(nil))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), empty(cons(x1, fstsplit(x0, x2))))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, y4, 0) → IF_6(y0, y1, y2, y3, y4, 0, true)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, x0, 0, true) → IF_7(y0, y1, y2, y3, x0, 0, empty(nil))
IF_6(y0, y1, y2, y3, nil, s(x0), true) → IF_7(y0, y1, y2, y3, nil, s(x0), empty(nil))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), empty(cons(x1, fstsplit(x0, x2))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), empty(cons(x1, fstsplit(x0, x2))))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(st_1, in_2, st_2, in_3, st_3, m, false) → IF_4(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(two, head(in_2)), st_2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_2(y0, y1, y2, y3, y4, 0, false) → IF_4(y0, y1, y2, y3, y4, 0, empty(nil))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_2(y0, y1, y2, y3, y4, 0, false) → IF_4(y0, y1, y2, y3, y4, 0, empty(nil))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(st_1, in_2, st_2, in_3, st_3, m, false) → IF_8(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, app(map_f(three, head(in_3)), st_3))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_6(y0, y1, y2, y3, y4, 0, false) → IF_8(y0, y1, y2, y3, y4, 0, empty(nil))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_6(y0, y1, y2, y3, y4, 0, false) → IF_8(y0, y1, y2, y3, y4, 0, empty(nil))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
IF_5(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, tail(in_2), st_2, in_3, st_3, m)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, tail(cons(z1, z2)), z3, z4, z5, z6)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, tail(cons(z1, z2)), z3, z4, z5, z6)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
IF_9(st_1, in_2, st_2, in_3, st_3, m, true) → RING(st_1, in_2, st_2, tail(in_3), st_3, m)
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, tail(cons(z3, z4)), z5, z6)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, tail(cons(z3, z4)), z5, z6)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
IF_1(st_1, in_2, st_2, in_3, st_3, m, false) → RING(sndsplit(m, st_1), cons(fstsplit(m, st_1), in_2), st_2, in_3, st_3, m)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(s(z6), cons(z0, z1)), cons(fstsplit(s(z6), cons(z0, z1)), z2), z3, z4, z5, s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(s(z6), cons(z0, z1)), cons(fstsplit(s(z6), cons(z0, z1)), z2), z3, z4, z5, s(z6))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(fstsplit(s(z6), cons(z0, z1)), z2), z3, z4, z5, s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(fstsplit(s(z6), cons(z0, z1)), z2), z3, z4, z5, s(z6))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_2(y0, cons(x0, x1), y2, y3, y4, y5, false) → IF_4(y0, cons(x0, x1), y2, y3, y4, y5, empty(fstsplit(y5, app(map_f(two, x0), y2))))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
IF_4(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, tail(in_2), sndsplit(m, app(map_f(two, head(in_2)), st_2)), cons(fstsplit(m, app(map_f(two, head(in_2)), st_2)), in_3), st_3, m)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, tail(cons(z1, z2)), sndsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, tail(cons(z1, z2)), sndsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, tail(cons(z1, z2)), sndsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, tail(cons(z1, z2)), sndsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, tail(cons(z1, z2)), sndsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, head(cons(z1, z2))), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, head(cons(z1, z2))), cons(z3, z4))), z5), z6, z7)
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, sndsplit(m, st_2), cons(fstsplit(m, st_2), in_3), st_3, m)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(s(z6), cons(z2, z3)), cons(fstsplit(s(z6), cons(z2, z3)), z4), z5, s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(s(z6), cons(z2, z3)), cons(fstsplit(s(z6), cons(z2, z3)), z4), z5, s(z6))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(fstsplit(s(z6), cons(z2, z3)), z4), z5, s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(fstsplit(s(z6), cons(z2, z3)), z4), z5, s(z6))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_6(y0, y1, y2, cons(x0, x1), y4, y5, false) → IF_8(y0, y1, y2, cons(x0, x1), y4, y5, empty(fstsplit(y5, app(map_f(three, x0), y4))))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
IF_8(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, tail(in_3), sndsplit(m, app(map_f(three, head(in_3)), st_3)), m)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, tail(cons(z3, z4)), sndsplit(z5, app(map_f(three, head(cons(z3, z4))), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, tail(cons(z3, z4)), sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, tail(cons(z3, z4)), sndsplit(z5, app(map_f(three, head(cons(z3, z4))), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, tail(cons(z3, z4)), sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, head(cons(z3, z4))), nil)), z5)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, tail(cons(z3, z4)), sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, head(cons(z3, z4))), nil)), z5)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, head(cons(z3, z4))), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
tail(cons(h, t)) → t
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), 0) → false
leq(s(n), s(m)) → leq(n, m)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, head(cons(z3, z4))), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
tail(cons(x0, x1))
tail(cons(x0, x1))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, head(cons(z3, z4))), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, head(cons(z3, z4))), cons(z5, z6))), z7)
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
head(cons(h, t)) → h
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
head(cons(x0, x1))
head(cons(x0, x1))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(st_1, in_2, st_2, in_3, st_3, m, false) → RING(st_1, in_2, st_2, in_3, sndsplit(m, st_3), m)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(s(z6), cons(z4, z5)), s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(s(z6), cons(z4, z5)), s(z6))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 0))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 0))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
RING(y0, cons(x0, x1), y2, y3, y4, y5) → IF_5(y0, cons(x0, x1), y2, y3, y4, y5, empty(map_f(two, x0)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
RING(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6) → IF_5(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6) → IF_5(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6, empty(map_f(two, x1)))
RING(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7)) → IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7), empty(map_f(two, x1)))
RING(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6) → IF_5(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6) → IF_5(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6, empty(map_f(two, x1)))
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
RING(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6) → IF_5(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6) → IF_5(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6, empty(map_f(two, x1)))
RING(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7)) → IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7), empty(map_f(two, x1)))
RING(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6) → IF_5(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6) → IF_5(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6, empty(map_f(two, x1)))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
RING(y0, y1, y2, cons(x0, x1), y4, y5) → IF_9(y0, y1, y2, cons(x0, x1), y4, y5, empty(map_f(three, x0)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
RING(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6) → IF_5(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6) → IF_5(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6, empty(map_f(two, x1)))
RING(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7)) → IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7), empty(map_f(two, x1)))
RING(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6) → IF_5(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6) → IF_5(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6, empty(map_f(two, x1)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
RING(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6) → IF_5(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6) → IF_5(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6, empty(map_f(two, x1)))
RING(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7)) → IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7), empty(map_f(two, x1)))
RING(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6) → IF_5(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6) → IF_5(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6, empty(map_f(two, x1)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF_1(cons(z0, z1), z2, z3, z4, z5, s(z6), false) → RING(sndsplit(z6, z1), cons(cons(z0, fstsplit(z6, z1)), z2), z3, z4, z5, s(z6))
POL(0) = 0
POL(IF_1(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_2(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_3(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_4(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_5(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_6(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_7(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_8(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(IF_9(x1, x2, x3, x4, x5, x6, x7)) = x1
POL(RING(x1, x2, x3, x4, x5, x6)) = x1
POL(app(x1, x2)) = 0
POL(cons(x1, x2)) = 1 + x2
POL(empty(x1)) = 0
POL(f(x1, x2)) = 0
POL(false) = 0
POL(fstsplit(x1, x2)) = 0
POL(length(x1)) = 0
POL(leq(x1, x2)) = 0
POL(map_f(x1, x2)) = 0
POL(nil) = 0
POL(s(x1)) = 0
POL(sndsplit(x1, x2)) = x2
POL(three) = 0
POL(true) = 0
POL(two) = 0
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
sndsplit(s(n), nil) → nil
sndsplit(0, x) → x
RING(cons(x1, x2), y1, y2, y3, y4, s(x0)) → IF_1(cons(x1, x2), y1, y2, y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
RING(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6) → IF_5(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6) → IF_5(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6, empty(map_f(two, x1)))
RING(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7)) → IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7), empty(map_f(two, x1)))
RING(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6) → IF_5(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6) → IF_5(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6, empty(map_f(two, x1)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
RING(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6) → IF_5(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6, empty(map_f(two, x1)))
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
RING(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6) → IF_5(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6, empty(map_f(two, x1)))
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
RING(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7)) → IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7), empty(map_f(two, x1)))
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
RING(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6) → IF_5(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6, empty(map_f(two, x1)))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
RING(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6) → IF_5(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6, empty(map_f(two, x1)))
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF_4(z0, cons(z1, z2), nil, z3, z4, z5, false) → RING(z0, z2, sndsplit(z5, app(map_f(two, z1), nil)), cons(fstsplit(z5, app(map_f(two, z1), nil)), z3), z4, z5)
IF_5(x0, cons(x1, cons(y_1, y_2)), x3, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), x3, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), x5, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), x5, x6)
IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_6), true) → RING(cons(y_0, y_1), x2, x3, x4, x5, s(y_6))
IF_5(x0, cons(x1, x2), cons(y_2, y_3), x4, x5, x6, true) → RING(x0, x2, cons(y_2, y_3), x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), x6)
IF_5(x0, cons(x1, cons(y_1, y_2)), nil, x4, x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_5(x0, cons(x1, x2), x3, cons(y_3, y_4), nil, x6, true) → RING(x0, x2, x3, cons(y_3, y_4), nil, x6)
IF_4(z0, cons(z1, z2), cons(z3, z4), z5, z6, z7, false) → RING(z0, z2, sndsplit(z7, app(map_f(two, z1), cons(z3, z4))), cons(fstsplit(z7, app(map_f(two, z1), cons(z3, z4))), z5), z6, z7)
POL(0) = 0
POL(IF_2(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(IF_3(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(IF_4(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(IF_5(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(IF_6(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(IF_7(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(IF_8(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(IF_9(x1, x2, x3, x4, x5, x6, x7)) = x2
POL(RING(x1, x2, x3, x4, x5, x6)) = x2
POL(app(x1, x2)) = 0
POL(cons(x1, x2)) = 1 + x2
POL(empty(x1)) = 0
POL(f(x1, x2)) = 0
POL(false) = 0
POL(fstsplit(x1, x2)) = 0
POL(length(x1)) = 0
POL(leq(x1, x2)) = 0
POL(map_f(x1, x2)) = 0
POL(nil) = 0
POL(s(x1)) = 0
POL(sndsplit(x1, x2)) = 0
POL(three) = 0
POL(true) = 0
POL(two) = 0
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, cons(y_1, y_2), nil, x2, x3, x4) → IF_2(x0, cons(y_1, y_2), nil, x2, x3, x4, leq(x4, 0))
IF_2(z0, cons(x1, x2), nil, z2, z3, z4, false) → IF_4(z0, cons(x1, x2), nil, z2, z3, z4, empty(fstsplit(z4, app(map_f(two, x1), nil))))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
RING(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6) → IF_5(x0, cons(x1, cons(y_2, y_3)), x3, x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6) → IF_5(x0, cons(x1, x2), x3, cons(y_4, y_5), x5, x6, empty(map_f(two, x1)))
RING(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7)) → IF_5(cons(y_0, y_1), cons(x1, x2), x3, x4, x5, s(y_7), empty(map_f(two, x1)))
RING(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6) → IF_5(x0, cons(x1, x2), cons(y_3, y_4), x4, x5, x6, empty(map_f(two, x1)))
RING(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6) → IF_5(x0, cons(x1, x2), x3, x4, cons(y_5, y_6), x6, empty(map_f(two, x1)))
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
IF_2(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, false) → IF_4(z0, cons(x1, x2), cons(z2, z3), z4, z5, z6, empty(fstsplit(z6, app(map_f(two, x1), cons(z2, z3)))))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF_3(z0, z1, cons(z2, z3), z4, z5, s(z6), false) → RING(z0, z1, sndsplit(z6, z3), cons(cons(z2, fstsplit(z6, z3)), z4), z5, s(z6))
POL(0) = 0
POL(IF_2(x1, x2, x3, x4, x5, x6, x7)) = x3
POL(IF_3(x1, x2, x3, x4, x5, x6, x7)) = x3
POL(IF_6(x1, x2, x3, x4, x5, x6, x7)) = x3
POL(IF_7(x1, x2, x3, x4, x5, x6, x7)) = x3
POL(IF_8(x1, x2, x3, x4, x5, x6, x7)) = x3
POL(IF_9(x1, x2, x3, x4, x5, x6, x7)) = x3
POL(RING(x1, x2, x3, x4, x5, x6)) = x3
POL(app(x1, x2)) = 0
POL(cons(x1, x2)) = 1 + x2
POL(empty(x1)) = 0
POL(f(x1, x2)) = 0
POL(false) = 0
POL(fstsplit(x1, x2)) = 0
POL(length(x1)) = 0
POL(leq(x1, x2)) = 0
POL(map_f(x1, x2)) = 0
POL(nil) = 0
POL(s(x1)) = 0
POL(sndsplit(x1, x2)) = x2
POL(three) = 0
POL(true) = 0
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
sndsplit(s(n), nil) → nil
sndsplit(0, x) → x
IF_2(y0, y1, cons(x1, x2), y3, y4, s(x0), true) → IF_3(y0, y1, cons(x1, x2), y3, y4, s(x0), false)
RING(y0, y1, cons(x0, x1), y3, y4, y5) → IF_2(y0, y1, cons(x0, x1), y3, y4, y5, leq(y5, s(length(x1))))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF_8(z0, z1, z2, cons(z3, z4), nil, z5, false) → RING(z0, z1, z2, z4, sndsplit(z5, app(map_f(three, z3), nil)), z5)
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), x5, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), x5, x6)
IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_6), true) → RING(cons(y_0, y_1), x1, x2, x4, x5, s(y_6))
IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, true) → RING(x0, x1, cons(y_2, y_3), x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), x6)
IF_9(x0, cons(y_1, y_2), nil, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), nil, x4, x5, x6)
IF_9(x0, x1, x2, cons(x3, cons(y_3, y_4)), nil, x6, true) → RING(x0, x1, x2, cons(y_3, y_4), nil, x6)
IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, cons(y_2, y_3)), x2, x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_4, y_5)), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, cons(y_4, y_5), x5, x6)
IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_7), true) → RING(cons(y_0, y_1), cons(y_2, y_3), x2, x4, x5, s(y_7))
IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), cons(y_3, y_4), x4, x5, x6)
IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_5, y_6), x6, true) → RING(x0, cons(y_1, y_2), x2, x4, cons(y_5, y_6), x6)
IF_8(z0, z1, z2, cons(z3, z4), cons(z5, z6), z7, false) → RING(z0, z1, z2, z4, sndsplit(z7, app(map_f(three, z3), cons(z5, z6))), z7)
POL(0) = 0
POL(IF_6(x1, x2, x3, x4, x5, x6, x7)) = x4
POL(IF_7(x1, x2, x3, x4, x5, x6, x7)) = x4
POL(IF_8(x1, x2, x3, x4, x5, x6, x7)) = x4
POL(IF_9(x1, x2, x3, x4, x5, x6, x7)) = x4
POL(RING(x1, x2, x3, x4, x5, x6)) = x4
POL(app(x1, x2)) = 0
POL(cons(x1, x2)) = 1 + x2
POL(empty(x1)) = 0
POL(f(x1, x2)) = 0
POL(false) = 0
POL(fstsplit(x1, x2)) = 0
POL(length(x1)) = 0
POL(leq(x1, x2)) = 0
POL(map_f(x1, x2)) = 0
POL(nil) = 0
POL(s(x1)) = 0
POL(sndsplit(x1, x2)) = 0
POL(three) = 0
POL(true) = 0
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(x0, x1, x2, cons(y_3, y_4), nil, x4) → IF_6(x0, x1, x2, cons(y_3, y_4), nil, x4, leq(x4, 0))
IF_6(z0, z1, z2, cons(x3, x4), nil, z4, false) → IF_8(z0, z1, z2, cons(x3, x4), nil, z4, empty(fstsplit(z4, app(map_f(three, x3), nil))))
RING(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6) → IF_9(x0, x1, x2, cons(x3, cons(y_4, y_5)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7)) → IF_9(cons(y_0, y_1), x1, x2, cons(x3, x4), x5, s(y_7), empty(map_f(three, x3)))
RING(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6) → IF_9(x0, x1, cons(y_2, y_3), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6) → IF_9(x0, x1, x2, cons(x3, x4), cons(y_5, y_6), x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, cons(y_2, y_3)), x2, cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, cons(y_5, y_6)), x5, x6, empty(map_f(three, x3)))
RING(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8)) → IF_9(cons(y_0, y_1), cons(y_2, y_3), x2, cons(x3, x4), x5, s(y_8), empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6) → IF_9(x0, cons(y_1, y_2), cons(y_3, y_4), cons(x3, x4), x5, x6, empty(map_f(three, x3)))
RING(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), cons(y_6, y_7), x6, empty(map_f(three, x3)))
IF_6(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, false) → IF_8(z0, z1, z2, cons(x3, x4), cons(z4, z5), z6, empty(fstsplit(z6, app(map_f(three, x3), cons(z4, z5)))))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
map_f(pid, nil) → nil
map_f(pid, cons(h, t)) → app(f(pid, h), map_f(pid, t))
app(nil, x) → x
app(cons(h, t), x) → cons(h, app(t, x))
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x) → nil
fstsplit(s(n), nil) → nil
fstsplit(s(n), cons(h, t)) → cons(h, fstsplit(n, t))
empty(nil) → true
empty(cons(h, t)) → false
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
fstsplit(0, x0)
fstsplit(s(x0), nil)
fstsplit(s(x0), cons(x1, x2))
empty(nil)
empty(cons(x0, x1))
app(nil, x0)
app(cons(x0, x1), x2)
map_f(x0, nil)
map_f(x0, cons(x1, x2))
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
RING(y0, y1, y2, y3, cons(x0, x1), y5) → IF_6(y0, y1, y2, y3, cons(x0, x1), y5, leq(y5, s(length(x1))))
POL(0) = 0
POL(IF_6(x1, x2, x3, x4, x5, x6, x7)) = x5
POL(IF_7(x1, x2, x3, x4, x5, x6, x7)) = x5
POL(RING(x1, x2, x3, x4, x5, x6)) = 1 + x5
POL(cons(x1, x2)) = 1 + x2
POL(false) = 0
POL(length(x1)) = 0
POL(leq(x1, x2)) = 0
POL(nil) = 0
POL(s(x1)) = 0
POL(sndsplit(x1, x2)) = x2
POL(true) = 0
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
IF_6(y0, y1, y2, y3, cons(x1, x2), s(x0), true) → IF_7(y0, y1, y2, y3, cons(x1, x2), s(x0), false)
IF_7(z0, z1, z2, z3, cons(z4, z5), s(z6), false) → RING(z0, z1, z2, z3, sndsplit(z6, z5), s(z6))
length(nil) → 0
length(cons(h, t)) → s(length(t))
leq(0, m) → true
leq(s(n), s(m)) → leq(n, m)
leq(s(n), 0) → false
sndsplit(0, x) → x
sndsplit(s(n), nil) → nil
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
sndsplit(0, x0)
sndsplit(s(x0), nil)
sndsplit(s(x0), cons(x1, x2))
leq(0, x0)
leq(s(x0), 0)
leq(s(x0), s(x1))
length(nil)
length(cons(x0, x1))