R
↳Dependency Pair Analysis
EQ(s(X), s(Y)) -> EQ(X, Y)
RM(N, add(M, X)) -> IFRM(eq(N, M), N, add(M, X))
RM(N, add(M, X)) -> EQ(N, M)
IFRM(true, N, add(M, X)) -> RM(N, X)
IFRM(false, N, add(M, X)) -> RM(N, X)
PURGE(add(N, X)) -> PURGE(rm(N, X))
PURGE(add(N, X)) -> RM(N, X)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
EQ(s(X), s(Y)) -> EQ(X, Y)
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
one new Dependency Pair is created:
EQ(s(X), s(Y)) -> EQ(X, Y)
EQ(s(s(X'')), s(s(Y''))) -> EQ(s(X''), s(Y''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 4
↳Forward Instantiation Transformation
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
EQ(s(s(X'')), s(s(Y''))) -> EQ(s(X''), s(Y''))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
one new Dependency Pair is created:
EQ(s(s(X'')), s(s(Y''))) -> EQ(s(X''), s(Y''))
EQ(s(s(s(X''''))), s(s(s(Y'''')))) -> EQ(s(s(X'''')), s(s(Y'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 4
↳FwdInst
...
→DP Problem 5
↳Argument Filtering and Ordering
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
EQ(s(s(s(X''''))), s(s(s(Y'''')))) -> EQ(s(s(X'''')), s(s(Y'''')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
EQ(s(s(s(X''''))), s(s(s(Y'''')))) -> EQ(s(s(X'''')), s(s(Y'''')))
trivial
EQ(x1, x2) -> EQ(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 4
↳FwdInst
...
→DP Problem 6
↳Dependency Graph
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Narrowing Transformation
→DP Problem 3
↳Nar
IFRM(false, N, add(M, X)) -> RM(N, X)
IFRM(true, N, add(M, X)) -> RM(N, X)
RM(N, add(M, X)) -> IFRM(eq(N, M), N, add(M, X))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
four new Dependency Pairs are created:
RM(N, add(M, X)) -> IFRM(eq(N, M), N, add(M, X))
RM(0, add(0, X)) -> IFRM(true, 0, add(0, X))
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
RM(s(X''), add(s(Y'), X)) -> IFRM(eq(X'', Y'), s(X''), add(s(Y'), X))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Narrowing Transformation
→DP Problem 3
↳Nar
RM(s(X''), add(s(Y'), X)) -> IFRM(eq(X'', Y'), s(X''), add(s(Y'), X))
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
IFRM(true, N, add(M, X)) -> RM(N, X)
RM(0, add(0, X)) -> IFRM(true, 0, add(0, X))
IFRM(false, N, add(M, X)) -> RM(N, X)
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
four new Dependency Pairs are created:
RM(s(X''), add(s(Y'), X)) -> IFRM(eq(X'', Y'), s(X''), add(s(Y'), X))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 8
↳Instantiation Transformation
→DP Problem 3
↳Nar
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
IFRM(true, N, add(M, X)) -> RM(N, X)
RM(0, add(0, X)) -> IFRM(true, 0, add(0, X))
IFRM(false, N, add(M, X)) -> RM(N, X)
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
three new Dependency Pairs are created:
IFRM(true, N, add(M, X)) -> RM(N, X)
IFRM(true, 0, add(0, X'')) -> RM(0, X'')
IFRM(true, s(0), add(s(0), X'')) -> RM(s(0), X'')
IFRM(true, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 9
↳Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(true, s(0), add(s(0), X'')) -> RM(s(0), X'')
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
IFRM(true, 0, add(0, X'')) -> RM(0, X'')
RM(0, add(0, X)) -> IFRM(true, 0, add(0, X))
IFRM(false, N, add(M, X)) -> RM(N, X)
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
five new Dependency Pairs are created:
IFRM(false, N, add(M, X)) -> RM(N, X)
IFRM(false, 0, add(s(X''''), X'')) -> RM(0, X'')
IFRM(false, s(X''''), add(0, X'')) -> RM(s(X''''), X'')
IFRM(false, s(0), add(s(s(X''''')), X'')) -> RM(s(0), X'')
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 10
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(false, s(0), add(s(s(X''''')), X'')) -> RM(s(0), X'')
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(true, s(0), add(s(0), X'')) -> RM(s(0), X'')
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(X''''), add(0, X'')) -> RM(s(X''''), X'')
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
IFRM(true, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
three new Dependency Pairs are created:
IFRM(true, s(0), add(s(0), X'')) -> RM(s(0), X'')
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 12
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(false, s(0), add(s(s(X''''')), X'')) -> RM(s(0), X'')
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(X''''), add(0, X'')) -> RM(s(X''''), X'')
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
three new Dependency Pairs are created:
IFRM(true, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 14
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(false, s(0), add(s(s(X''''')), X'')) -> RM(s(0), X'')
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(X''''), add(0, X'')) -> RM(s(X''''), X'')
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
five new Dependency Pairs are created:
IFRM(false, s(X''''), add(0, X'')) -> RM(s(X''''), X'')
IFRM(false, s(X'''''), add(0, add(0, X'0))) -> RM(s(X'''''), add(0, X'0))
IFRM(false, s(0), add(0, add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(0), add(0, add(s(s(X'''''')), X'''))) -> RM(s(0), add(s(s(X'''''')), X'''))
IFRM(false, s(s(X'''''')), add(0, add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(false, s(s(X'''''')), add(0, add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 16
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
IFRM(false, s(s(X'''''')), add(0, add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(false, s(s(X'''''')), add(0, add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(false, s(0), add(0, add(s(s(X'''''')), X'''))) -> RM(s(0), add(s(s(X'''''')), X'''))
IFRM(false, s(0), add(s(s(X''''')), X'')) -> RM(s(0), X'')
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(0), add(0, add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(X'''''), add(0, add(0, X'0))) -> RM(s(X'''''), add(0, X'0))
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
five new Dependency Pairs are created:
RM(s(X''), add(0, X)) -> IFRM(false, s(X''), add(0, X))
RM(s(X'''), add(0, add(0, X'0''))) -> IFRM(false, s(X'''), add(0, add(0, X'0'')))
RM(s(0), add(0, add(s(0), X'''''))) -> IFRM(false, s(0), add(0, add(s(0), X''''')))
RM(s(0), add(0, add(s(s(X'''''''')), X'''''))) -> IFRM(false, s(0), add(0, add(s(s(X'''''''')), X''''')))
RM(s(s(X'''''''')), add(0, add(s(0), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(0), X''''')))
RM(s(s(X'''''''')), add(0, add(s(s(Y'''''')), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(s(Y'''''')), X''''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 18
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
IFRM(false, s(s(X'''''')), add(0, add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
RM(s(s(X'''''''')), add(0, add(s(s(Y'''''')), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(s(Y'''''')), X''''')))
IFRM(false, s(s(X'''''')), add(0, add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X'''''''')), add(0, add(s(0), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(0), X''''')))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(0), add(s(s(X''''')), X'')) -> RM(s(0), X'')
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(false, s(0), add(0, add(s(s(X'''''')), X'''))) -> RM(s(0), add(s(s(X'''''')), X'''))
RM(s(0), add(0, add(s(s(X'''''''')), X'''''))) -> IFRM(false, s(0), add(0, add(s(s(X'''''''')), X''''')))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(0), add(0, add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(0, add(s(0), X'''''))) -> IFRM(false, s(0), add(0, add(s(0), X''''')))
IFRM(false, s(X'''''), add(0, add(0, X'0))) -> RM(s(X'''''), add(0, X'0))
RM(s(X'''), add(0, add(0, X'0''))) -> IFRM(false, s(X'''), add(0, add(0, X'0'')))
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
five new Dependency Pairs are created:
IFRM(false, s(0), add(s(s(X''''')), X'')) -> RM(s(0), X'')
IFRM(false, s(0), add(s(s(X''''')), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(0, X'0'''')))) -> RM(s(0), add(0, add(0, X'0'''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(0), X''''''')))) -> RM(s(0), add(0, add(s(0), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(s(X'''''''''')), X''''''')))) -> RM(s(0), add(0, add(s(s(X'''''''''')), X''''''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 20
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
IFRM(false, s(s(X'''''')), add(0, add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
RM(s(s(X'''''''')), add(0, add(s(s(Y'''''')), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(s(Y'''''')), X''''')))
IFRM(false, s(s(X'''''')), add(0, add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X'''''''')), add(0, add(s(0), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(0), X''''')))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(s(X'''''''''')), X''''''')))) -> RM(s(0), add(0, add(s(s(X'''''''''')), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(0), X''''''')))) -> RM(s(0), add(0, add(s(0), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(0, X'0'''')))) -> RM(s(0), add(0, add(0, X'0'''')))
IFRM(false, s(0), add(s(s(X''''')), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(false, s(0), add(0, add(s(s(X'''''')), X'''))) -> RM(s(0), add(s(s(X'''''')), X'''))
RM(s(0), add(0, add(s(s(X'''''''')), X'''''))) -> IFRM(false, s(0), add(0, add(s(s(X'''''''')), X''''')))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(0), add(0, add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(0, add(s(0), X'''''))) -> IFRM(false, s(0), add(0, add(s(0), X''''')))
IFRM(false, s(X'''''), add(0, add(0, X'0))) -> RM(s(X'''''), add(0, X'0))
RM(s(X'''), add(0, add(0, X'0''))) -> IFRM(false, s(X'''), add(0, add(0, X'0'')))
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
five new Dependency Pairs are created:
IFRM(false, s(s(X''''')), add(s(0), X'')) -> RM(s(s(X''''')), X'')
IFRM(false, s(s(X'''''')), add(s(0), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(false, s(s(X'''''')), add(s(0), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X'''''')), add(s(0), add(0, add(0, X'0'''')))) -> RM(s(s(X'''''')), add(0, add(0, X'0'''')))
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(0), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(0), X'''''''')))
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(s(Y'''''''')), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(s(Y'''''''')), X'''''''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 21
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(s(Y'''''''')), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(s(Y'''''''')), X'''''''')))
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(0), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(0), X'''''''')))
IFRM(false, s(s(X'''''')), add(s(0), add(0, add(0, X'0'''')))) -> RM(s(s(X'''''')), add(0, add(0, X'0'''')))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
IFRM(false, s(s(X'''''')), add(0, add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
RM(s(s(X'''''''')), add(0, add(s(s(Y'''''')), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(s(Y'''''')), X''''')))
IFRM(false, s(s(X'''''')), add(0, add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X'''''''')), add(0, add(s(0), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(0), X''''')))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(s(X'''''''''')), X''''''')))) -> RM(s(0), add(0, add(s(s(X'''''''''')), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(0), X''''''')))) -> RM(s(0), add(0, add(s(0), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(0, X'0'''')))) -> RM(s(0), add(0, add(0, X'0'''')))
IFRM(false, s(0), add(s(s(X''''')), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(false, s(0), add(0, add(s(s(X'''''')), X'''))) -> RM(s(0), add(s(s(X'''''')), X'''))
RM(s(0), add(0, add(s(s(X'''''''')), X'''''))) -> IFRM(false, s(0), add(0, add(s(s(X'''''''')), X''''')))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(0), add(0, add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(0, add(s(0), X'''''))) -> IFRM(false, s(0), add(0, add(s(0), X''''')))
IFRM(false, s(X'''''), add(0, add(0, X'0))) -> RM(s(X'''''), add(0, X'0))
RM(s(X'''), add(0, add(0, X'0''))) -> IFRM(false, s(X'''), add(0, add(0, X'0'')))
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(false, s(s(X'''''')), add(s(0), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X'''''')), add(s(0), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
five new Dependency Pairs are created:
IFRM(false, s(s(X''''')), add(s(s(Y'''')), X'')) -> RM(s(s(X''''')), X'')
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(0, add(0, X'0'''')))) -> RM(s(s(X'''''')), add(0, add(0, X'0'''')))
IFRM(false, s(s(X''''''')), add(s(s(Y'''')), add(0, add(s(0), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(0), X'''''''')))
IFRM(false, s(s(X''''''')), add(s(s(Y'''')), add(0, add(s(s(Y'''''''')), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(s(Y'''''''')), X'''''''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 22
↳Argument Filtering and Ordering
→DP Problem 3
↳Nar
IFRM(false, s(s(X''''''')), add(s(s(Y'''')), add(0, add(s(s(Y'''''''')), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(s(Y'''''''')), X'''''''')))
IFRM(false, s(s(X''''''')), add(s(s(Y'''')), add(0, add(s(0), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(0), X'''''''')))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(0, add(0, X'0'''')))) -> RM(s(s(X'''''')), add(0, add(0, X'0'''')))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(0), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(0), X'''''''')))
IFRM(false, s(s(X'''''')), add(s(0), add(0, add(0, X'0'''')))) -> RM(s(s(X'''''')), add(0, add(0, X'0'''')))
IFRM(false, s(s(X'''''')), add(s(0), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X'''''')), add(s(0), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(false, s(s(X'''''')), add(0, add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X'''''''')), add(0, add(s(0), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(0), X''''')))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(s(X'''''''''')), X''''''')))) -> RM(s(0), add(0, add(s(s(X'''''''''')), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(0), X''''''')))) -> RM(s(0), add(0, add(s(0), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(0, X'0'''')))) -> RM(s(0), add(0, add(0, X'0'''')))
IFRM(false, s(0), add(s(s(X''''')), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(false, s(0), add(0, add(s(s(X'''''')), X'''))) -> RM(s(0), add(s(s(X'''''')), X'''))
RM(s(0), add(0, add(s(s(X'''''''')), X'''''))) -> IFRM(false, s(0), add(0, add(s(s(X'''''''')), X''''')))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(0), add(0, add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(0, add(s(0), X'''''))) -> IFRM(false, s(0), add(0, add(s(0), X''''')))
IFRM(false, s(X'''''), add(0, add(0, X'0))) -> RM(s(X'''''), add(0, X'0))
RM(s(X'''), add(0, add(0, X'0''))) -> IFRM(false, s(X'''), add(0, add(0, X'0'')))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(false, s(s(X'''''')), add(0, add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
RM(s(s(X'''''''')), add(0, add(s(s(Y'''''')), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(s(Y'''''')), X''''')))
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(s(Y'''''''')), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(s(Y'''''''')), X'''''''')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
IFRM(false, s(s(X''''''')), add(s(s(Y'''')), add(0, add(s(s(Y'''''''')), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(s(Y'''''''')), X'''''''')))
IFRM(false, s(s(X''''''')), add(s(s(Y'''')), add(0, add(s(0), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(0), X'''''''')))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(0, add(0, X'0'''')))) -> RM(s(s(X'''''')), add(0, add(0, X'0'''')))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(0), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(0), X'''''''')))
IFRM(false, s(s(X'''''')), add(s(0), add(0, add(0, X'0'''')))) -> RM(s(s(X'''''')), add(0, add(0, X'0'''')))
IFRM(false, s(s(X'''''')), add(s(0), add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
IFRM(false, s(s(X'''''')), add(s(0), add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X''')), add(s(0), X)) -> IFRM(false, s(s(X''')), add(s(0), X))
IFRM(false, s(s(X'''''')), add(0, add(s(0), X'''))) -> RM(s(s(X'''''')), add(s(0), X'''))
RM(s(s(X'''''''')), add(0, add(s(0), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(0), X''''')))
IFRM(true, s(0), add(s(0), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(true, s(0), add(s(0), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(s(X'''''''''')), X''''''')))) -> RM(s(0), add(0, add(s(s(X'''''''''')), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(s(0), X''''''')))) -> RM(s(0), add(0, add(s(0), X''''''')))
IFRM(false, s(0), add(s(s(X''''')), add(0, add(0, X'0'''')))) -> RM(s(0), add(0, add(0, X'0'''')))
IFRM(false, s(0), add(s(s(X''''')), add(s(s(X''''')), X'''))) -> RM(s(0), add(s(s(X''''')), X'''))
IFRM(false, s(0), add(s(s(X''''')), add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(s(s(X''')), X)) -> IFRM(false, s(0), add(s(s(X''')), X))
IFRM(false, s(0), add(0, add(s(s(X'''''')), X'''))) -> RM(s(0), add(s(s(X'''''')), X'''))
RM(s(0), add(0, add(s(s(X'''''''')), X'''''))) -> IFRM(false, s(0), add(0, add(s(s(X'''''''')), X''''')))
IFRM(true, s(0), add(s(0), add(0, X'0))) -> RM(s(0), add(0, X'0))
RM(s(0), add(s(0), X)) -> IFRM(true, s(0), add(s(0), X))
IFRM(false, s(0), add(0, add(s(0), X'''))) -> RM(s(0), add(s(0), X'''))
RM(s(0), add(0, add(s(0), X'''''))) -> IFRM(false, s(0), add(0, add(s(0), X''''')))
IFRM(false, s(X'''''), add(0, add(0, X'0))) -> RM(s(X'''''), add(0, X'0))
RM(s(X'''), add(0, add(0, X'0''))) -> IFRM(false, s(X'''), add(0, add(0, X'0'')))
IFRM(true, s(s(X'''''')), add(s(s(Y'''')), add(0, X'0))) -> RM(s(s(X'''''')), add(0, X'0))
RM(s(s(X''')), add(s(s(Y'')), X)) -> IFRM(eq(X''', Y''), s(s(X''')), add(s(s(Y'')), X))
IFRM(false, s(s(X'''''')), add(0, add(s(s(Y'''')), X'''))) -> RM(s(s(X'''''')), add(s(s(Y'''')), X'''))
RM(s(s(X'''''''')), add(0, add(s(s(Y'''''')), X'''''))) -> IFRM(false, s(s(X'''''''')), add(0, add(s(s(Y'''''')), X''''')))
IFRM(false, s(s(X''''''')), add(s(0), add(0, add(s(s(Y'''''''')), X'''''''')))) -> RM(s(s(X''''''')), add(0, add(s(s(Y'''''''')), X'''''''')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
add > {eq, false, s} > true
add > {RM, IFRM}
RM(x1, x2) -> RM(x1, x2)
IFRM(x1, x2, x3) -> IFRM(x1, x2, x3)
s(x1) -> s
add(x1, x2) -> add(x1, x2)
eq(x1, x2) -> eq
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 11
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, 0, add(0, X'')) -> RM(0, X'')
RM(0, add(0, X)) -> IFRM(true, 0, add(0, X))
IFRM(false, 0, add(s(X''''), X'')) -> RM(0, X'')
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
two new Dependency Pairs are created:
IFRM(true, 0, add(0, X'')) -> RM(0, X'')
IFRM(true, 0, add(0, add(0, X'''))) -> RM(0, add(0, X'''))
IFRM(true, 0, add(0, add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 13
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(false, 0, add(s(X''''), X'')) -> RM(0, X'')
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
IFRM(true, 0, add(0, add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
IFRM(true, 0, add(0, add(0, X'''))) -> RM(0, add(0, X'''))
RM(0, add(0, X)) -> IFRM(true, 0, add(0, X))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
two new Dependency Pairs are created:
RM(0, add(0, X)) -> IFRM(true, 0, add(0, X))
RM(0, add(0, add(0, X'''''))) -> IFRM(true, 0, add(0, add(0, X''''')))
RM(0, add(0, add(s(X''''''), X'0''))) -> IFRM(true, 0, add(0, add(s(X''''''), X'0'')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 15
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(true, 0, add(0, add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
RM(0, add(0, add(s(X''''''), X'0''))) -> IFRM(true, 0, add(0, add(s(X''''''), X'0'')))
IFRM(true, 0, add(0, add(0, X'''))) -> RM(0, add(0, X'''))
RM(0, add(0, add(0, X'''''))) -> IFRM(true, 0, add(0, add(0, X''''')))
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
IFRM(false, 0, add(s(X''''), X'')) -> RM(0, X'')
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
three new Dependency Pairs are created:
IFRM(false, 0, add(s(X''''), X'')) -> RM(0, X'')
IFRM(false, 0, add(s(X''''), add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
IFRM(false, 0, add(s(X''''), add(0, add(0, X''''''')))) -> RM(0, add(0, add(0, X''''''')))
IFRM(false, 0, add(s(X''''), add(0, add(s(X''''''''), X'0'''')))) -> RM(0, add(0, add(s(X''''''''), X'0'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 17
↳Forward Instantiation Transformation
→DP Problem 3
↳Nar
IFRM(false, 0, add(s(X''''), add(0, add(s(X''''''''), X'0'''')))) -> RM(0, add(0, add(s(X''''''''), X'0'''')))
RM(0, add(0, add(s(X''''''), X'0''))) -> IFRM(true, 0, add(0, add(s(X''''''), X'0'')))
IFRM(true, 0, add(0, add(0, X'''))) -> RM(0, add(0, X'''))
RM(0, add(0, add(0, X'''''))) -> IFRM(true, 0, add(0, add(0, X''''')))
IFRM(false, 0, add(s(X''''), add(0, add(0, X''''''')))) -> RM(0, add(0, add(0, X''''''')))
IFRM(false, 0, add(s(X''''), add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
IFRM(true, 0, add(0, add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
three new Dependency Pairs are created:
RM(0, add(s(X''), X)) -> IFRM(false, 0, add(s(X''), X))
RM(0, add(s(X'''), add(s(X'''''''), X'0''))) -> IFRM(false, 0, add(s(X'''), add(s(X'''''''), X'0'')))
RM(0, add(s(X'''), add(0, add(0, X''''''''')))) -> IFRM(false, 0, add(s(X'''), add(0, add(0, X'''''''''))))
RM(0, add(s(X'''), add(0, add(s(X''''''''''), X'0'''''')))) -> IFRM(false, 0, add(s(X'''), add(0, add(s(X''''''''''), X'0''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 19
↳Argument Filtering and Ordering
→DP Problem 3
↳Nar
RM(0, add(s(X'''), add(0, add(s(X''''''''''), X'0'''''')))) -> IFRM(false, 0, add(s(X'''), add(0, add(s(X''''''''''), X'0''''''))))
IFRM(true, 0, add(0, add(0, X'''))) -> RM(0, add(0, X'''))
RM(0, add(0, add(0, X'''''))) -> IFRM(true, 0, add(0, add(0, X''''')))
IFRM(false, 0, add(s(X''''), add(0, add(0, X''''''')))) -> RM(0, add(0, add(0, X''''''')))
RM(0, add(s(X'''), add(0, add(0, X''''''''')))) -> IFRM(false, 0, add(s(X'''), add(0, add(0, X'''''''''))))
IFRM(false, 0, add(s(X''''), add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
RM(0, add(s(X'''), add(s(X'''''''), X'0''))) -> IFRM(false, 0, add(s(X'''), add(s(X'''''''), X'0'')))
IFRM(true, 0, add(0, add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
RM(0, add(0, add(s(X''''''), X'0''))) -> IFRM(true, 0, add(0, add(s(X''''''), X'0'')))
IFRM(false, 0, add(s(X''''), add(0, add(s(X''''''''), X'0'''')))) -> RM(0, add(0, add(s(X''''''''), X'0'''')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
RM(0, add(s(X'''), add(0, add(s(X''''''''''), X'0'''''')))) -> IFRM(false, 0, add(s(X'''), add(0, add(s(X''''''''''), X'0''''''))))
IFRM(true, 0, add(0, add(0, X'''))) -> RM(0, add(0, X'''))
RM(0, add(0, add(0, X'''''))) -> IFRM(true, 0, add(0, add(0, X''''')))
IFRM(false, 0, add(s(X''''), add(0, add(0, X''''''')))) -> RM(0, add(0, add(0, X''''''')))
RM(0, add(s(X'''), add(0, add(0, X''''''''')))) -> IFRM(false, 0, add(s(X'''), add(0, add(0, X'''''''''))))
IFRM(false, 0, add(s(X''''), add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
RM(0, add(s(X'''), add(s(X'''''''), X'0''))) -> IFRM(false, 0, add(s(X'''), add(s(X'''''''), X'0'')))
IFRM(true, 0, add(0, add(s(X''''), X'0))) -> RM(0, add(s(X''''), X'0))
RM(0, add(0, add(s(X''''''), X'0''))) -> IFRM(true, 0, add(0, add(s(X''''''), X'0'')))
IFRM(false, 0, add(s(X''''), add(0, add(s(X''''''''), X'0'''')))) -> RM(0, add(0, add(s(X''''''''), X'0'''')))
{add, false} > RM > IFRM
s > 0 > true
IFRM(x1, x2, x3) -> IFRM(x1, x2, x3)
RM(x1, x2) -> RM(x1, x2)
add(x1, x2) -> add(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 7
↳Nar
...
→DP Problem 23
↳Dependency Graph
→DP Problem 3
↳Nar
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 3
↳Narrowing Transformation
PURGE(add(N, X)) -> PURGE(rm(N, X))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
two new Dependency Pairs are created:
PURGE(add(N, X)) -> PURGE(rm(N, X))
PURGE(add(N'', nil)) -> PURGE(nil)
PURGE(add(N'', add(M', X''))) -> PURGE(ifrm(eq(N'', M'), N'', add(M', X'')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
→DP Problem 25
↳Narrowing Transformation
PURGE(add(N'', add(M', X''))) -> PURGE(ifrm(eq(N'', M'), N'', add(M', X'')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
four new Dependency Pairs are created:
PURGE(add(N'', add(M', X''))) -> PURGE(ifrm(eq(N'', M'), N'', add(M', X'')))
PURGE(add(0, add(0, X''))) -> PURGE(ifrm(true, 0, add(0, X'')))
PURGE(add(0, add(s(X'), X''))) -> PURGE(ifrm(false, 0, add(s(X'), X'')))
PURGE(add(s(X'), add(0, X''))) -> PURGE(ifrm(false, s(X'), add(0, X'')))
PURGE(add(s(X'), add(s(Y'), X''))) -> PURGE(ifrm(eq(X', Y'), s(X'), add(s(Y'), X'')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
→DP Problem 25
↳Nar
...
→DP Problem 26
↳Rewriting Transformation
PURGE(add(s(X'), add(s(Y'), X''))) -> PURGE(ifrm(eq(X', Y'), s(X'), add(s(Y'), X'')))
PURGE(add(s(X'), add(0, X''))) -> PURGE(ifrm(false, s(X'), add(0, X'')))
PURGE(add(0, add(s(X'), X''))) -> PURGE(ifrm(false, 0, add(s(X'), X'')))
PURGE(add(0, add(0, X''))) -> PURGE(ifrm(true, 0, add(0, X'')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
one new Dependency Pair is created:
PURGE(add(0, add(0, X''))) -> PURGE(ifrm(true, 0, add(0, X'')))
PURGE(add(0, add(0, X''))) -> PURGE(rm(0, X''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
→DP Problem 25
↳Nar
...
→DP Problem 27
↳Rewriting Transformation
PURGE(add(0, add(0, X''))) -> PURGE(rm(0, X''))
PURGE(add(s(X'), add(0, X''))) -> PURGE(ifrm(false, s(X'), add(0, X'')))
PURGE(add(0, add(s(X'), X''))) -> PURGE(ifrm(false, 0, add(s(X'), X'')))
PURGE(add(s(X'), add(s(Y'), X''))) -> PURGE(ifrm(eq(X', Y'), s(X'), add(s(Y'), X'')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
one new Dependency Pair is created:
PURGE(add(0, add(s(X'), X''))) -> PURGE(ifrm(false, 0, add(s(X'), X'')))
PURGE(add(0, add(s(X'), X''))) -> PURGE(add(s(X'), rm(0, X'')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
→DP Problem 25
↳Nar
...
→DP Problem 28
↳Rewriting Transformation
PURGE(add(0, add(s(X'), X''))) -> PURGE(add(s(X'), rm(0, X'')))
PURGE(add(s(X'), add(s(Y'), X''))) -> PURGE(ifrm(eq(X', Y'), s(X'), add(s(Y'), X'')))
PURGE(add(s(X'), add(0, X''))) -> PURGE(ifrm(false, s(X'), add(0, X'')))
PURGE(add(0, add(0, X''))) -> PURGE(rm(0, X''))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
one new Dependency Pair is created:
PURGE(add(s(X'), add(0, X''))) -> PURGE(ifrm(false, s(X'), add(0, X'')))
PURGE(add(s(X'), add(0, X''))) -> PURGE(add(0, rm(s(X'), X'')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
→DP Problem 25
↳Nar
...
→DP Problem 29
↳Argument Filtering and Ordering
PURGE(add(s(X'), add(0, X''))) -> PURGE(add(0, rm(s(X'), X'')))
PURGE(add(0, add(0, X''))) -> PURGE(rm(0, X''))
PURGE(add(s(X'), add(s(Y'), X''))) -> PURGE(ifrm(eq(X', Y'), s(X'), add(s(Y'), X'')))
PURGE(add(0, add(s(X'), X''))) -> PURGE(add(s(X'), rm(0, X'')))
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost
PURGE(add(s(X'), add(0, X''))) -> PURGE(add(0, rm(s(X'), X'')))
PURGE(add(0, add(0, X''))) -> PURGE(rm(0, X''))
PURGE(add(s(X'), add(s(Y'), X''))) -> PURGE(ifrm(eq(X', Y'), s(X'), add(s(Y'), X'')))
PURGE(add(0, add(s(X'), X''))) -> PURGE(add(s(X'), rm(0, X'')))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
trivial
PURGE(x1) -> PURGE(x1)
add(x1, x2) -> add(x1, x2)
s(x1) -> s(x1)
rm(x1, x2) -> x2
ifrm(x1, x2, x3) -> x3
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Nar
→DP Problem 3
↳Nar
→DP Problem 25
↳Nar
...
→DP Problem 30
↳Dependency Graph
eq(0, 0) -> true
eq(0, s(X)) -> false
eq(s(X), 0) -> false
eq(s(X), s(Y)) -> eq(X, Y)
rm(N, nil) -> nil
rm(N, add(M, X)) -> ifrm(eq(N, M), N, add(M, X))
ifrm(true, N, add(M, X)) -> rm(N, X)
ifrm(false, N, add(M, X)) -> add(M, rm(N, X))
purge(nil) -> nil
purge(add(N, X)) -> add(N, purge(rm(N, X)))
innermost