R
↳Dependency Pair Analysis
APP(cons(x, l), k) -> APP(l, k)
SUM(cons(x, cons(y, l))) -> SUM(cons(plus(x, y), l))
SUM(cons(x, cons(y, l))) -> PLUS(x, y)
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(x, cons(y, k)))))
SUM(app(l, cons(x, cons(y, k)))) -> APP(l, sum(cons(x, cons(y, k))))
SUM(app(l, cons(x, cons(y, k)))) -> SUM(cons(x, cons(y, k)))
SUM(plus(cons(0, x), cons(y, l))) -> PRED(sum(cons(s(x), cons(y, l))))
SUM(plus(cons(0, x), cons(y, l))) -> SUM(cons(s(x), cons(y, l)))
PLUS(s(x), y) -> PLUS(x, y)
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
APP(cons(x, l), k) -> APP(l, k)
app(nil, k) -> k
app(l, nil) -> l
app(cons(x, l), k) -> cons(x, app(l, k))
sum(cons(x, nil)) -> cons(x, nil)
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k)))))
sum(plus(cons(0, x), cons(y, l))) -> pred(sum(cons(s(x), cons(y, l))))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
pred(cons(s(x), nil)) -> cons(x, nil)
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 5
↳Size-Change Principle
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
APP(cons(x, l), k) -> APP(l, k)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
PLUS(s(x), y) -> PLUS(x, y)
app(nil, k) -> k
app(l, nil) -> l
app(cons(x, l), k) -> cons(x, app(l, k))
sum(cons(x, nil)) -> cons(x, nil)
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k)))))
sum(plus(cons(0, x), cons(y, l))) -> pred(sum(cons(s(x), cons(y, l))))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
pred(cons(s(x), nil)) -> cons(x, nil)
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 6
↳Size-Change Principle
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
PLUS(s(x), y) -> PLUS(x, y)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳Usable Rules (Innermost)
→DP Problem 4
↳UsableRules
SUM(cons(x, cons(y, l))) -> SUM(cons(plus(x, y), l))
app(nil, k) -> k
app(l, nil) -> l
app(cons(x, l), k) -> cons(x, app(l, k))
sum(cons(x, nil)) -> cons(x, nil)
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k)))))
sum(plus(cons(0, x), cons(y, l))) -> pred(sum(cons(s(x), cons(y, l))))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
pred(cons(s(x), nil)) -> cons(x, nil)
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 7
↳Modular Removal of Rules
→DP Problem 4
↳UsableRules
SUM(cons(x, cons(y, l))) -> SUM(cons(plus(x, y), l))
plus(s(x), y) -> s(plus(x, y))
plus(0, y) -> y
innermost
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
plus(s(x), y) -> s(plus(x, y))
plus(0, y) -> y
POL(plus(x1, x2)) = x1 + x2 POL(SUM(x1)) = 1 + x1 POL(0) = 1 POL(cons(x1, x2)) = x1 + x2 POL(s(x1)) = x1
plus(0, y) -> y
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 7
↳MRR
...
→DP Problem 8
↳Modular Removal of Rules
→DP Problem 4
↳UsableRules
SUM(cons(x, cons(y, l))) -> SUM(cons(plus(x, y), l))
plus(s(x), y) -> s(plus(x, y))
innermost
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
plus(s(x), y) -> s(plus(x, y))
POL(plus(x1, x2)) = x1 + x2 POL(SUM(x1)) = 1 + x1 POL(cons(x1, x2)) = 1 + x1 + x2 POL(s(x1)) = x1
SUM(cons(x, cons(y, l))) -> SUM(cons(plus(x, y), l))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳Usable Rules (Innermost)
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(x, cons(y, k)))))
app(nil, k) -> k
app(l, nil) -> l
app(cons(x, l), k) -> cons(x, app(l, k))
sum(cons(x, nil)) -> cons(x, nil)
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
sum(app(l, cons(x, cons(y, k)))) -> sum(app(l, sum(cons(x, cons(y, k)))))
sum(plus(cons(0, x), cons(y, l))) -> pred(sum(cons(s(x), cons(y, l))))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
pred(cons(s(x), nil)) -> cons(x, nil)
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 9
↳Rewriting Transformation
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(x, cons(y, k)))))
app(l, nil) -> l
sum(cons(x, nil)) -> cons(x, nil)
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
plus(s(x), y) -> s(plus(x, y))
plus(0, y) -> y
innermost
one new Dependency Pair is created:
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(x, cons(y, k)))))
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(plus(x, y), k))))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 9
↳Rw
...
→DP Problem 10
↳Modular Removal of Rules
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(plus(x, y), k))))
app(l, nil) -> l
sum(cons(x, nil)) -> cons(x, nil)
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
plus(s(x), y) -> s(plus(x, y))
plus(0, y) -> y
innermost
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
app(l, nil) -> l
sum(cons(x, nil)) -> cons(x, nil)
plus(s(x), y) -> s(plus(x, y))
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
plus(0, y) -> y
POL(plus(x1, x2)) = x1 + x2 POL(SUM(x1)) = 1 + x1 POL(0) = 1 POL(cons(x1, x2)) = x1 + x2 POL(nil) = 0 POL(sum(x1)) = x1 POL(s(x1)) = x1 POL(app(x1, x2)) = 1 + x1 + x2
The following rules can be deleted as the lhs is strictly greater than the corresponding rhs:
plus(0, y) -> y
app(l, nil) -> l
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 9
↳Rw
...
→DP Problem 11
↳Modular Removal of Rules
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(plus(x, y), k))))
sum(cons(x, nil)) -> cons(x, nil)
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
plus(s(x), y) -> s(plus(x, y))
innermost
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
sum(cons(x, nil)) -> cons(x, nil)
plus(s(x), y) -> s(plus(x, y))
sum(cons(x, cons(y, l))) -> sum(cons(plus(x, y), l))
POL(plus(x1, x2)) = x1 + x2 POL(SUM(x1)) = 1 + x1 POL(cons(x1, x2)) = 1 + x1 + x2 POL(nil) = 0 POL(sum(x1)) = x1 POL(s(x1)) = x1 POL(app(x1, x2)) = 1 + x1 + x2
SUM(app(l, cons(x, cons(y, k)))) -> SUM(app(l, sum(cons(plus(x, y), k))))
Innermost Termination of R successfully shown.
Duration:
0:00 minutes