TIMEOUT
The TRS could not be proven terminating. The proof attempt took 60312 ms.
Problem 1 was processed with processor DependencyGraph (3985ms). | Problem 2 was processed with processor SubtermCriterion (4ms). | Problem 3 was processed with processor SubtermCriterion (2ms). | Problem 4 was processed with processor SubtermCriterion (1ms). | Problem 5 was processed with processor SubtermCriterion (1ms). | Problem 6 was processed with processor SubtermCriterion (4ms). | Problem 7 was processed with processor SubtermCriterion (1ms). | Problem 8 remains open; application of the following processors failed [SubtermCriterion (3ms), DependencyGraph (166ms), PolynomialLinearRange4iUR (10000ms), DependencyGraph (timeout), PolynomialLinearRange8NegiUR (30001ms), DependencyGraph (timeout), ReductionPairSAT (timeout)].
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_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)))) | |
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_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)))) | |
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_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_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#(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))) | |
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) | |
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_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)))) | 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_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_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) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, three, length, empty, false, head, cons, f, if_4, app, ring, if_5, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
ring#(st_1, in_2, st_2, in_3, st_3, m) | → | map_f#(two, head(in_2)) | if_8#(st_1, in_2, st_2, in_3, st_3, m, false) | → | map_f#(three, head(in_3)) | |
ring#(st_1, in_2, st_2, in_3, st_3, m) | → | empty#(fstsplit(m, st_1)) | if_8#(st_1, in_2, st_2, in_3, st_3, m, false) | → | tail#(in_3) | |
leq#(s(n), s(m)) | → | leq#(n, m) | 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_8#(st_1, in_2, st_2, in_3, st_3, m, false) | → | app#(map_f(three, head(in_3)), st_3) | if_9#(st_1, in_2, st_2, in_3, st_3, m, true) | → | tail#(in_3) | |
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_3#(st_1, in_2, st_2, in_3, st_3, m, false) | → | fstsplit#(m, 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) | → | 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_4#(st_1, in_2, st_2, in_3, st_3, m, false) | → | map_f#(two, head(in_2)) | |
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) | → | head#(in_3) | |
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)) | 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) | → | head#(in_2) | 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_4#(st_1, in_2, st_2, in_3, st_3, m, false) | → | sndsplit#(m, app(map_f(two, head(in_2)), st_2)) | 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_6#(st_1, in_2, st_2, in_3, st_3, m, true) | → | empty#(fstsplit(m, st_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_1#(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1))) | map_f#(pid, cons(h, t)) | → | app#(f(pid, h), map_f(pid, t)) | |
if_6#(st_1, in_2, st_2, in_3, st_3, m, false) | → | app#(map_f(three, head(in_3)), st_3) | 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, true) | → | if_7#(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3))) | if_4#(st_1, in_2, st_2, in_3, st_3, m, false) | → | tail#(in_2) | |
if_2#(st_1, in_2, st_2, in_3, st_3, m, true) | → | fstsplit#(m, st_2) | 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_2#(st_1, in_2, st_2, in_3, st_3, m, false) | → | map_f#(two, head(in_2)) | if_6#(st_1, in_2, st_2, in_3, st_3, m, false) | → | head#(in_3) | |
if_1#(st_1, in_2, st_2, in_3, st_3, m, false) | → | fstsplit#(m, st_1) | if_2#(st_1, in_2, st_2, in_3, st_3, m, false) | → | app#(map_f(two, head(in_2)), st_2) | |
sndsplit#(s(n), cons(h, t)) | → | sndsplit#(n, t) | map_f#(pid, cons(h, t)) | → | map_f#(pid, t) | |
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_3#(st_1, in_2, st_2, in_3, st_3, m, false) | → | sndsplit#(m, 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) | if_2#(st_1, in_2, st_2, in_3, st_3, m, true) | → | empty#(fstsplit(m, st_2)) | |
ring#(st_1, in_2, st_2, in_3, st_3, m) | → | fstsplit#(m, st_1) | if_6#(st_1, in_2, st_2, in_3, st_3, m, false) | → | map_f#(three, head(in_3)) | |
if_2#(st_1, in_2, st_2, in_3, st_3, m, false) | → | head#(in_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_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, true) | → | fstsplit#(m, st_3) | |
if_1#(st_1, in_2, st_2, in_3, st_3, m, false) | → | sndsplit#(m, st_1) | length#(cons(h, t)) | → | length#(t) | |
ring#(st_1, in_2, st_2, in_3, st_3, m) | → | leq#(m, length(st_3)) | if_4#(st_1, in_2, st_2, in_3, st_3, m, false) | → | head#(in_2) | |
if_5#(st_1, in_2, st_2, in_3, st_3, m, true) | → | tail#(in_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))) | |
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, 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)))) | |
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_4#(st_1, in_2, st_2, in_3, st_3, m, false) | → | app#(map_f(two, head(in_2)), st_2) | |
fstsplit#(s(n), cons(h, t)) | → | fstsplit#(n, t) | 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_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_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_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) | → | length#(st_3) | |
app#(cons(h, t), x) | → | app#(t, x) | ring#(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) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, empty, length, three, false, head, cons, if_4, f, if_5, ring, app, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
fstsplit#(s(n), cons(h, t)) → fstsplit#(n, t) |
length#(cons(h, t)) → length#(t) |
app#(cons(h, t), x) → app#(t, x) |
leq#(s(n), s(m)) → leq#(n, m) |
sndsplit#(s(n), cons(h, t)) → sndsplit#(n, t) |
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_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_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)))) | 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) → if_2#(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(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) |
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_1#(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_1))) |
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_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_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, true) → if_7#(st_1, in_2, st_2, in_3, st_3, m, empty(fstsplit(m, st_3))) |
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) → if_6#(st_1, in_2, st_2, in_3, st_3, m, leq(m, length(st_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_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) |
map_f#(pid, cons(h, t)) → map_f#(pid, t) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, empty, length, three, false, head, cons, if_4, f, if_5, ring, app, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
The following projection was used:
Thus, the following dependency pairs are removed:
leq#(s(n), s(m)) | → | leq#(n, m) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, empty, length, three, false, head, cons, if_4, f, if_5, ring, app, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
The following projection was used:
Thus, the following dependency pairs are removed:
sndsplit#(s(n), cons(h, t)) | → | sndsplit#(n, t) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, empty, length, three, false, head, cons, if_4, f, if_5, ring, app, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
The following projection was used:
Thus, the following dependency pairs are removed:
length#(cons(h, t)) | → | length#(t) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, empty, length, three, false, head, cons, if_4, f, if_5, ring, app, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
The following projection was used:
Thus, the following dependency pairs are removed:
map_f#(pid, cons(h, t)) | → | map_f#(pid, t) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, empty, length, three, false, head, cons, if_4, f, if_5, ring, app, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
The following projection was used:
Thus, the following dependency pairs are removed:
app#(cons(h, t), x) | → | app#(t, x) |
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) |
Termination of terms over the following signature is verified: fstsplit, sndsplit, empty, length, three, false, head, cons, if_4, f, if_5, ring, app, if_2, map_f, if_3, if_8, if_9, leq, if_6, if_7, true, tail, two, 0, s, if_1, nil
The following projection was used:
Thus, the following dependency pairs are removed:
fstsplit#(s(n), cons(h, t)) | → | fstsplit#(n, t) |