R
↳Overlay and local confluence Check
R
↳OC
→TRS2
↳Dependency Pair Analysis
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)
MAPF(pid, cons(h, t)) -> APP(f(pid, h), mapf(pid, t))
MAPF(pid, cons(h, t)) -> MAPF(pid, t)
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
PROCESS(store, m) -> LEQ(m, length(store))
PROCESS(store, m) -> LENGTH(store)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
IF1(store, m, true) -> EMPTY(fstsplit(m, store))
IF1(store, m, true) -> FSTSPLIT(m, store)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
IF1(store, m, false) -> EMPTY(fstsplit(m, app(mapf(self, nil), store)))
IF1(store, m, false) -> FSTSPLIT(m, app(mapf(self, nil), store))
IF1(store, m, false) -> APP(mapf(self, nil), store)
IF1(store, m, false) -> MAPF(self, nil)
IF2(store, m, false) -> PROCESS(app(mapf(self, nil), sndsplit(m, store)), m)
IF2(store, m, false) -> APP(mapf(self, nil), sndsplit(m, store))
IF2(store, m, false) -> MAPF(self, nil)
IF2(store, m, false) -> SNDSPLIT(m, store)
IF3(store, m, false) -> PROCESS(sndsplit(m, app(mapf(self, nil), store)), m)
IF3(store, m, false) -> SNDSPLIT(m, app(mapf(self, nil), store))
IF3(store, m, false) -> APP(mapf(self, nil), store)
IF3(store, m, false) -> MAPF(self, nil)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
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))
mapf(pid, nil) -> nil
mapf(pid, cons(h, t)) -> app(f(pid, h), mapf(pid, t))
process(store, m) -> if1(store, m, leq(m, length(store)))
if1(store, m, true) -> if2(store, m, empty(fstsplit(m, store)))
if1(store, m, false) -> if3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
if2(store, m, false) -> process(app(mapf(self, nil), sndsplit(m, store)), m)
if3(store, m, false) -> process(sndsplit(m, app(mapf(self, nil), store)), m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
...
→DP Problem 8
↳Size-Change Principle
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
FSTSPLIT(s(n), cons(h, t)) -> FSTSPLIT(n, t)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
s(x1) -> s(x1)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
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))
mapf(pid, nil) -> nil
mapf(pid, cons(h, t)) -> app(f(pid, h), mapf(pid, t))
process(store, m) -> if1(store, m, leq(m, length(store)))
if1(store, m, true) -> if2(store, m, empty(fstsplit(m, store)))
if1(store, m, false) -> if3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
if2(store, m, false) -> process(app(mapf(self, nil), sndsplit(m, store)), m)
if3(store, m, false) -> process(sndsplit(m, app(mapf(self, nil), store)), m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 9
↳Size-Change Principle
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
SNDSPLIT(s(n), cons(h, t)) -> SNDSPLIT(n, t)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
s(x1) -> s(x1)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳Usable Rules (Innermost)
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
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))
mapf(pid, nil) -> nil
mapf(pid, cons(h, t)) -> app(f(pid, h), mapf(pid, t))
process(store, m) -> if1(store, m, leq(m, length(store)))
if1(store, m, true) -> if2(store, m, empty(fstsplit(m, store)))
if1(store, m, false) -> if3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
if2(store, m, false) -> process(app(mapf(self, nil), sndsplit(m, store)), m)
if3(store, m, false) -> process(sndsplit(m, app(mapf(self, nil), store)), m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
...
→DP Problem 10
↳Size-Change Principle
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
LEQ(s(n), s(m)) -> LEQ(n, m)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳Usable Rules (Innermost)
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
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))
mapf(pid, nil) -> nil
mapf(pid, cons(h, t)) -> app(f(pid, h), mapf(pid, t))
process(store, m) -> if1(store, m, leq(m, length(store)))
if1(store, m, true) -> if2(store, m, empty(fstsplit(m, store)))
if1(store, m, false) -> if3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
if2(store, m, false) -> process(app(mapf(self, nil), sndsplit(m, store)), m)
if3(store, m, false) -> process(sndsplit(m, app(mapf(self, nil), store)), m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
...
→DP Problem 11
↳Size-Change Principle
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
LENGTH(cons(h, t)) -> LENGTH(t)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳Usable Rules (Innermost)
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
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))
mapf(pid, nil) -> nil
mapf(pid, cons(h, t)) -> app(f(pid, h), mapf(pid, t))
process(store, m) -> if1(store, m, leq(m, length(store)))
if1(store, m, true) -> if2(store, m, empty(fstsplit(m, store)))
if1(store, m, false) -> if3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
if2(store, m, false) -> process(app(mapf(self, nil), sndsplit(m, store)), m)
if3(store, m, false) -> process(sndsplit(m, app(mapf(self, nil), store)), m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
...
→DP Problem 12
↳Size-Change Principle
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
APP(cons(h, t), x) -> APP(t, x)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳Usable Rules (Innermost)
→DP Problem 7
↳UsableRules
MAPF(pid, cons(h, t)) -> MAPF(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))
mapf(pid, nil) -> nil
mapf(pid, cons(h, t)) -> app(f(pid, h), mapf(pid, t))
process(store, m) -> if1(store, m, leq(m, length(store)))
if1(store, m, true) -> if2(store, m, empty(fstsplit(m, store)))
if1(store, m, false) -> if3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
if2(store, m, false) -> process(app(mapf(self, nil), sndsplit(m, store)), m)
if3(store, m, false) -> process(sndsplit(m, app(mapf(self, nil), store)), m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
...
→DP Problem 13
↳Size-Change Principle
→DP Problem 7
↳UsableRules
MAPF(pid, cons(h, t)) -> MAPF(pid, t)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳Usable Rules (Innermost)
IF3(store, m, false) -> PROCESS(sndsplit(m, app(mapf(self, nil), store)), m)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
IF2(store, m, false) -> PROCESS(app(mapf(self, nil), sndsplit(m, store)), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
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))
mapf(pid, nil) -> nil
mapf(pid, cons(h, t)) -> app(f(pid, h), mapf(pid, t))
process(store, m) -> if1(store, m, leq(m, length(store)))
if1(store, m, true) -> if2(store, m, empty(fstsplit(m, store)))
if1(store, m, false) -> if3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
if2(store, m, false) -> process(app(mapf(self, nil), sndsplit(m, store)), m)
if3(store, m, false) -> process(sndsplit(m, app(mapf(self, nil), store)), m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 14
↳Rewriting Transformation
IF3(store, m, false) -> PROCESS(sndsplit(m, app(mapf(self, nil), store)), m)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
IF2(store, m, false) -> PROCESS(app(mapf(self, nil), sndsplit(m, store)), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
mapf(pid, nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
app(nil, x) -> x
app(cons(h, t), x) -> cons(h, app(t, x))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF3(store, m, false) -> PROCESS(sndsplit(m, app(mapf(self, nil), store)), m)
IF3(store, m, false) -> PROCESS(sndsplit(m, app(nil, store)), m)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 15
↳Rewriting Transformation
IF2(store, m, false) -> PROCESS(app(mapf(self, nil), sndsplit(m, store)), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF3(store, m, false) -> PROCESS(sndsplit(m, app(nil, store)), m)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
mapf(pid, nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
app(nil, x) -> x
app(cons(h, t), x) -> cons(h, app(t, x))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(mapf(self, nil), store))))
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(nil, store))))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 16
↳Rewriting Transformation
IF3(store, m, false) -> PROCESS(sndsplit(m, app(nil, store)), m)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(nil, store))))
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF2(store, m, false) -> PROCESS(app(mapf(self, nil), sndsplit(m, store)), m)
mapf(pid, nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
app(nil, x) -> x
app(cons(h, t), x) -> cons(h, app(t, x))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF2(store, m, false) -> PROCESS(app(mapf(self, nil), sndsplit(m, store)), m)
IF2(store, m, false) -> PROCESS(app(nil, sndsplit(m, store)), m)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 17
↳Rewriting Transformation
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(nil, store))))
IF2(store, m, false) -> PROCESS(app(nil, sndsplit(m, store)), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF3(store, m, false) -> PROCESS(sndsplit(m, app(nil, store)), m)
mapf(pid, nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
app(nil, x) -> x
app(cons(h, t), x) -> cons(h, app(t, x))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF3(store, m, false) -> PROCESS(sndsplit(m, app(nil, store)), m)
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 18
↳Rewriting Transformation
IF2(store, m, false) -> PROCESS(app(nil, sndsplit(m, store)), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(nil, store))))
mapf(pid, nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
app(nil, x) -> x
app(cons(h, t), x) -> cons(h, app(t, x))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, app(nil, store))))
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, store)))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 19
↳Rewriting Transformation
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, store)))
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF2(store, m, false) -> PROCESS(app(nil, sndsplit(m, store)), m)
mapf(pid, nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
app(nil, x) -> x
app(cons(h, t), x) -> cons(h, app(t, x))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF2(store, m, false) -> PROCESS(app(nil, sndsplit(m, store)), m)
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 20
↳Usable Rules (Innermost)
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, store)))
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
mapf(pid, nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
app(nil, x) -> x
app(cons(h, t), x) -> cons(h, app(t, x))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 21
↳Narrowing Transformation
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, store)))
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
three new Dependency Pairs are created:
IF1(store, m, false) -> IF3(store, m, empty(fstsplit(m, store)))
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), empty(cons(h', fstsplit(n', t'))))
IF1(store', 0, false) -> IF3(store', 0, empty(nil))
IF1(nil, s(n'), false) -> IF3(nil, s(n'), empty(nil))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 22
↳Rewriting Transformation
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), empty(cons(h', fstsplit(n', t'))))
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), empty(cons(h', fstsplit(n', t'))))
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 23
↳Narrowing Transformation
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
three new Dependency Pairs are created:
IF1(store, m, true) -> IF2(store, m, empty(fstsplit(m, store)))
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), empty(cons(h', fstsplit(n', t'))))
IF1(store', 0, true) -> IF2(store', 0, empty(nil))
IF1(nil, s(n'), true) -> IF2(nil, s(n'), empty(nil))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 24
↳Rewriting Transformation
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), empty(cons(h', fstsplit(n', t'))))
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), empty(cons(h', fstsplit(n', t'))))
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 25
↳Narrowing Transformation
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
three new Dependency Pairs are created:
PROCESS(store, m) -> IF1(store, m, leq(m, length(store)))
PROCESS(store', 0) -> IF1(store', 0, true)
PROCESS(cons(h', t'), m) -> IF1(cons(h', t'), m, leq(m, s(length(t'))))
PROCESS(nil, m) -> IF1(nil, m, leq(m, 0))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 26
↳Narrowing Transformation
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(cons(h', t'), m) -> IF1(cons(h', t'), m, leq(m, s(length(t'))))
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
three new Dependency Pairs are created:
IF2(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF2(store', 0, false) -> PROCESS(store', 0)
IF2(nil, s(n'), false) -> PROCESS(nil, s(n'))
IF2(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 27
↳Narrowing Transformation
IF2(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(cons(h', t'), m) -> IF1(cons(h', t'), m, leq(m, s(length(t'))))
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
three new Dependency Pairs are created:
IF3(store, m, false) -> PROCESS(sndsplit(m, store), m)
IF3(store', 0, false) -> PROCESS(store', 0)
IF3(nil, s(n'), false) -> PROCESS(nil, s(n'))
IF3(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 28
↳Instantiation Transformation
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
IF3(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(cons(h', t'), m) -> IF1(cons(h', t'), m, leq(m, s(length(t'))))
IF2(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
PROCESS(cons(h', t'), m) -> IF1(cons(h', t'), m, leq(m, s(length(t'))))
PROCESS(cons(h'', t''), s(n''')) -> IF1(cons(h'', t''), s(n'''), leq(s(n'''), s(length(t''))))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 29
↳Rewriting Transformation
IF3(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(cons(h'', t''), s(n''')) -> IF1(cons(h'', t''), s(n'''), leq(s(n'''), s(length(t''))))
IF2(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
one new Dependency Pair is created:
PROCESS(cons(h'', t''), s(n''')) -> IF1(cons(h'', t''), s(n'''), leq(s(n'''), s(length(t''))))
PROCESS(cons(h'', t''), s(n''')) -> IF1(cons(h'', t''), s(n'''), leq(n''', length(t'')))
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 30
↳Usable Rules (Innermost)
IF2(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(cons(h'', t''), s(n''')) -> IF1(cons(h'', t''), s(n'''), leq(n''', length(t'')))
IF3(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
empty(cons(h, t)) -> false
empty(nil) -> true
fstsplit(s(n), cons(h, t)) -> cons(h, fstsplit(n, t))
fstsplit(0, x) -> nil
fstsplit(s(n), nil) -> nil
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 31
↳Negative Polynomial Order
IF2(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(cons(h'', t''), s(n''')) -> IF1(cons(h'', t''), s(n'''), leq(n''', length(t'')))
IF3(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost
IF2(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
IF3(cons(h', t'), s(n'), false) -> PROCESS(sndsplit(n', t'), s(n'))
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
POL( IF2(x1, ..., x3) ) = x1
POL( cons(x1, x2) ) = x2 + 1
POL( PROCESS(x1, x2) ) = x1
POL( sndsplit(x1, x2) ) = x2
POL( IF3(x1, ..., x3) ) = x1
POL( IF1(x1, ..., x3) ) = x1
POL( nil ) = 0
POL( length(x1) ) = 0
POL( s(x1) ) = 0
POL( 0 ) = 0
POL( leq(x1, x2) ) = 0
POL( true ) = 0
POL( false ) = 0
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
→DP Problem 6
↳UsableRules
→DP Problem 7
↳UsableRules
...
→DP Problem 32
↳Dependency Graph
IF1(cons(h', t'), s(n'), true) -> IF2(cons(h', t'), s(n'), false)
IF1(cons(h', t'), s(n'), false) -> IF3(cons(h', t'), s(n'), false)
PROCESS(cons(h'', t''), s(n''')) -> IF1(cons(h'', t''), s(n'''), leq(n''', length(t'')))
sndsplit(0, x) -> x
sndsplit(s(n), nil) -> nil
sndsplit(s(n), cons(h, t)) -> sndsplit(n, t)
length(cons(h, t)) -> s(length(t))
length(nil) -> 0
leq(0, m) -> true
leq(s(n), 0) -> false
leq(s(n), s(m)) -> leq(n, m)
innermost