YES
0 QTRS
↳1 AAECC Innermost (⇔, 6 ms)
↳2 QTRS
↳3 DependencyPairsProof (⇔, 0 ms)
↳4 QDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 QDP
↳8 UsableRulesProof (⇔, 0 ms)
↳9 QDP
↳10 QReductionProof (⇔, 0 ms)
↳11 QDP
↳12 QDPSizeChangeProof (⇔, 0 ms)
↳13 YES
↳14 QDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 QDP
↳17 QReductionProof (⇔, 0 ms)
↳18 QDP
↳19 QDPSizeChangeProof (⇔, 0 ms)
↳20 YES
↳21 QDP
↳22 UsableRulesProof (⇔, 0 ms)
↳23 QDP
↳24 QReductionProof (⇔, 0 ms)
↳25 QDP
↳26 QDPSizeChangeProof (⇔, 0 ms)
↳27 YES
↳28 QDP
↳29 UsableRulesProof (⇔, 0 ms)
↳30 QDP
↳31 QReductionProof (⇔, 0 ms)
↳32 QDP
↳33 QDPSizeChangeProof (⇔, 0 ms)
↳34 YES
↳35 QDP
↳36 UsableRulesProof (⇔, 0 ms)
↳37 QDP
↳38 QReductionProof (⇔, 0 ms)
↳39 QDP
↳40 QDPSizeChangeProof (⇔, 0 ms)
↳41 YES
↳42 QDP
↳43 UsableRulesProof (⇔, 0 ms)
↳44 QDP
↳45 QReductionProof (⇔, 0 ms)
↳46 QDP
↳47 QDPSizeChangeProof (⇔, 0 ms)
↳48 YES
↳49 QDP
↳50 UsableRulesProof (⇔, 0 ms)
↳51 QDP
↳52 QReductionProof (⇔, 0 ms)
↳53 QDP
↳54 TransformationProof (⇔, 0 ms)
↳55 QDP
↳56 TransformationProof (⇔, 0 ms)
↳57 QDP
↳58 QDPQMonotonicMRRProof (⇔, 40 ms)
↳59 QDP
↳60 TransformationProof (⇔, 0 ms)
↳61 QDP
↳62 DependencyGraphProof (⇔, 0 ms)
↳63 QDP
↳64 TransformationProof (⇔, 0 ms)
↳65 QDP
↳66 TransformationProof (⇔, 0 ms)
↳67 QDP
↳68 TransformationProof (⇔, 0 ms)
↳69 QDP
↳70 DependencyGraphProof (⇔, 0 ms)
↳71 QDP
↳72 TransformationProof (⇔, 0 ms)
↳73 QDP
↳74 TransformationProof (⇔, 0 ms)
↳75 QDP
↳76 TransformationProof (⇔, 0 ms)
↳77 QDP
↳78 DependencyGraphProof (⇔, 0 ms)
↳79 QDP
↳80 TransformationProof (⇔, 0 ms)
↳81 QDP
↳82 TransformationProof (⇔, 0 ms)
↳83 QDP
↳84 DependencyGraphProof (⇔, 0 ms)
↳85 QDP
↳86 TransformationProof (⇔, 0 ms)
↳87 QDP
↳88 DependencyGraphProof (⇔, 0 ms)
↳89 QDP
↳90 TransformationProof (⇔, 0 ms)
↳91 QDP
↳92 TransformationProof (⇔, 0 ms)
↳93 QDP
↳94 TransformationProof (⇔, 0 ms)
↳95 QDP
↳96 TransformationProof (⇔, 0 ms)
↳97 QDP
↳98 TransformationProof (⇔, 0 ms)
↳99 QDP
↳100 DependencyGraphProof (⇔, 0 ms)
↳101 QDP
↳102 TransformationProof (⇔, 0 ms)
↳103 QDP
↳104 TransformationProof (⇔, 0 ms)
↳105 QDP
↳106 TransformationProof (⇔, 0 ms)
↳107 QDP
↳108 TransformationProof (⇔, 0 ms)
↳109 QDP
↳110 TransformationProof (⇔, 0 ms)
↳111 QDP
↳112 TransformationProof (⇔, 0 ms)
↳113 QDP
↳114 TransformationProof (⇔, 0 ms)
↳115 QDP
↳116 TransformationProof (⇔, 1 ms)
↳117 QDP
↳118 TransformationProof (⇔, 0 ms)
↳119 QDP
↳120 DependencyGraphProof (⇔, 0 ms)
↳121 QDP
↳122 TransformationProof (⇔, 0 ms)
↳123 QDP
↳124 TransformationProof (⇔, 0 ms)
↳125 QDP
↳126 TransformationProof (⇔, 0 ms)
↳127 QDP
↳128 TransformationProof (⇔, 0 ms)
↳129 QDP
↳130 UsableRulesProof (⇔, 0 ms)
↳131 QDP
↳132 QReductionProof (⇔, 0 ms)
↳133 QDP
↳134 TransformationProof (⇔, 0 ms)
↳135 QDP
↳136 TransformationProof (⇔, 0 ms)
↳137 QDP
↳138 UsableRulesProof (⇔, 0 ms)
↳139 QDP
↳140 QReductionProof (⇔, 0 ms)
↳141 QDP
↳142 TransformationProof (⇔, 0 ms)
↳143 QDP
↳144 DependencyGraphProof (⇔, 0 ms)
↳145 QDP
↳146 TransformationProof (⇔, 0 ms)
↳147 QDP
↳148 TransformationProof (⇔, 0 ms)
↳149 QDP
↳150 TransformationProof (⇔, 0 ms)
↳151 QDP
↳152 TransformationProof (⇔, 0 ms)
↳153 QDP
↳154 TransformationProof (⇔, 0 ms)
↳155 QDP
↳156 TransformationProof (⇔, 0 ms)
↳157 QDP
↳158 QDPSizeChangeProof (⇔, 0 ms)
↳159 YES
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(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(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))
sndsplit(s(n), cons(h, t)) → sndsplit(n, t)
POL(0) = 0
POL(IF_1(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(IF_2(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6 + x7
POL(IF_3(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(IF_4(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(IF_5(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(IF_6(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6 + x7
POL(IF_7(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(IF_8(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(IF_9(x1, x2, x3, x4, x5, x6, x7)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(RING(x1, x2, x3, x4, x5, x6)) = 2 + 2·x1 + x3 + 2·x5 + x6
POL(app(x1, x2)) = 2·x1 + x2
POL(cons(x1, x2)) = 1 + 2·x1 + x2
POL(empty(x1)) = 1
POL(f(x1, x2)) = 0
POL(false) = 0
POL(fstsplit(x1, x2)) = 1 + 2·x2
POL(head(x1)) = x1
POL(length(x1)) = 0
POL(leq(x1, x2)) = x2
POL(map_f(x1, x2)) = 0
POL(nil) = 0
POL(s(x1)) = x1
POL(sndsplit(x1, x2)) = x2
POL(tail(x1)) = x1
POL(three) = 0
POL(true) = 0
POL(two) = 2
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
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(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(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)))) → 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
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
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(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
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, 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, 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)))) → 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
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, 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, 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_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
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
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) → 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
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, 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, 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)))) → 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
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, 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, 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_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
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
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) → 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
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, 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)))) → 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
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
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, 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_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
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
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) → 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
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) → 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
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) → 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
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) → 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
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)) → 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
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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
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), 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_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_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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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), 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) → 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_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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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) → 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_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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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) → 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_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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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) → 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_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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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) → 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_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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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) → 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(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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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) → 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_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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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)) → 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))
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
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_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
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(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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
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), 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_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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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(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
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), 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) → 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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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) → 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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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) → 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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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) → 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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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) → 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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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)) → 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)))
IF_5(z0, cons(z1, z2), z3, z4, z5, z6, true) → RING(z0, z2, z3, z4, z5, z6)
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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
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_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
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(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(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 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(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(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
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, 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(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(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6) → IF_5(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6)
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), 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, nil, x6, true) → RING(x0, x2, x3, x4, nil, x6) → IF_5(x0, cons(x1, x2), x3, x4, nil, x6, true) → RING(x0, x2, x3, x4, nil, 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, x2), x3, x4, cons(y_4, y_5), x6, true) → RING(x0, x2, x3, x4, cons(y_4, y_5), 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)))
IF_9(z0, z1, z2, cons(z3, z4), z5, z6, true) → RING(z0, z1, z2, z4, z5, z6)
RING(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 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(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(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_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(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6)
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, nil, x6, true) → RING(x0, x2, x3, x4, nil, 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)
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
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, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, x4, x5, x6) → IF_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, x4, x5, x6)
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(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(x0, x1, nil, cons(x3, x4), x5, x6, true) → RING(x0, x1, nil, x4, x5, x6) → IF_9(x0, x1, nil, cons(x3, x4), x5, x6, true) → RING(x0, x1, nil, x4, x5, x6)
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, 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), nil, x6, true) → RING(x0, x1, x2, x4, nil, x6) → IF_9(x0, x1, x2, cons(x3, x4), nil, x6, true) → RING(x0, x1, x2, x4, nil, 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, x1, x2, cons(x3, x4), cons(y_4, y_5), x6, true) → RING(x0, x1, x2, x4, cons(y_4, y_5), 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(y0, y1, nil, y3, y4, y5) → IF_2(y0, y1, nil, y3, y4, y5, leq(y5, 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(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(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)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 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(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(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_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(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6)
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, nil, x6, true) → RING(x0, x2, x3, x4, nil, 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_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, x4, x5, x6)
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(x0, x1, nil, cons(x3, x4), x5, x6, true) → RING(x0, x1, nil, x4, x5, x6)
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), nil, x6, true) → RING(x0, x1, x2, x4, nil, 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)
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
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(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)))
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(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(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)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 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(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(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_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(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6)
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, nil, x6, true) → RING(x0, x2, x3, x4, nil, 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_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, x4, x5, x6)
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(x0, x1, nil, cons(x3, x4), x5, x6, true) → RING(x0, x1, nil, x4, x5, x6)
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), nil, x6, true) → RING(x0, x1, x2, x4, nil, 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)
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
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), cons(x2, x3), x4, x5, x6) → IF_2(x0, cons(y_1, y_2), cons(x2, x3), x4, x5, x6, leq(x6, s(length(x3)))) → RING(x0, cons(y_1, y_2), cons(x2, x3), x4, x5, x6) → IF_2(x0, cons(y_1, y_2), cons(x2, x3), x4, x5, x6, leq(x6, s(length(x3))))
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_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)
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)
RING(y0, y1, y2, y3, nil, y5) → IF_6(y0, y1, y2, y3, nil, y5, leq(y5, 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(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(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_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(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6)
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, nil, x6, true) → RING(x0, x2, x3, x4, nil, 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_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, x4, x5, x6)
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(x0, x1, nil, cons(x3, x4), x5, x6, true) → RING(x0, x1, nil, x4, x5, x6)
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), nil, x6, true) → RING(x0, x1, x2, x4, nil, 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)
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, cons(y_1, y_2), cons(x2, x3), x4, x5, x6) → IF_2(x0, cons(y_1, y_2), cons(x2, x3), x4, x5, x6, leq(x6, s(length(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
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(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)))
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)
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)
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(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(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_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(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6)
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, nil, x6, true) → RING(x0, x2, x3, x4, nil, 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_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, x4, x5, x6)
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(x0, x1, nil, cons(x3, x4), x5, x6, true) → RING(x0, x1, nil, x4, x5, x6)
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), nil, x6, true) → RING(x0, x1, x2, x4, nil, 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)
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, cons(y_1, y_2), cons(x2, x3), x4, x5, x6) → IF_2(x0, cons(y_1, y_2), cons(x2, x3), x4, x5, x6, leq(x6, s(length(x3))))
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
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), cons(x4, x5), x6) → IF_6(x0, x1, x2, cons(y_3, y_4), cons(x4, x5), x6, leq(x6, s(length(x5)))) → RING(x0, x1, x2, cons(y_3, y_4), cons(x4, x5), x6) → IF_6(x0, x1, x2, cons(y_3, y_4), cons(x4, x5), x6, leq(x6, s(length(x5))))
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_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)
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)
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)
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_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(x0, cons(x1, x2), nil, x4, x5, x6, true) → RING(x0, x2, nil, x4, x5, x6)
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, nil, x6, true) → RING(x0, x2, x3, x4, nil, 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_9(x0, cons(y_1, y_2), x2, cons(x3, x4), x5, x6, true) → RING(x0, cons(y_1, y_2), x2, x4, x5, x6)
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(x0, x1, nil, cons(x3, x4), x5, x6, true) → RING(x0, x1, nil, x4, x5, x6)
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), nil, x6, true) → RING(x0, x1, x2, x4, nil, 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)
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, cons(y_1, y_2), cons(x2, x3), x4, x5, x6) → IF_2(x0, cons(y_1, y_2), cons(x2, x3), x4, x5, x6, leq(x6, s(length(x3))))
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(x0, x1, x2, cons(y_3, y_4), cons(x4, x5), x6) → IF_6(x0, x1, x2, cons(y_3, y_4), cons(x4, x5), x6, leq(x6, s(length(x5))))
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
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))
From the DPs we obtained the following set of size-change graphs: