R
↳Dependency Pair Analysis
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(plus, app(app(times, x), app(app(plus, y), app(app(times, app(s, z)), 0)))), app(app(times, x), app(s, z)))
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(plus, app(app(times, x), app(app(plus, y), app(app(times, app(s, z)), 0))))
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(times, x), app(app(plus, y), app(app(times, app(s, z)), 0)))
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(plus, y), app(app(times, app(s, z)), 0))
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(times, app(s, z)), 0)
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(times, app(s, z))
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(times, x), app(s, z))
APP(app(times, x), app(s, y)) -> APP(app(plus, app(app(times, x), y)), x)
APP(app(times, x), app(s, y)) -> APP(plus, app(app(times, x), y))
APP(app(times, x), app(s, y)) -> APP(app(times, x), y)
APP(app(plus, x), app(s, y)) -> APP(s, app(app(plus, x), y))
APP(app(plus, x), app(s, y)) -> APP(app(plus, x), y)
R
↳DPs
→DP Problem 1
↳Size-Change Principle
→DP Problem 2
↳MRR
APP(app(plus, x), app(s, y)) -> APP(app(plus, x), y)
app(app(times, x), app(app(plus, y), app(s, z))) -> app(app(plus, app(app(times, x), app(app(plus, y), app(app(times, app(s, z)), 0)))), app(app(times, x), app(s, z)))
app(app(times, x), 0) -> 0
app(app(times, x), app(s, y)) -> app(app(plus, app(app(times, x), y)), x)
app(app(plus, x), 0) -> x
app(app(plus, x), app(s, y)) -> app(s, app(app(plus, x), y))
APP(app(plus, x), app(s, y)) -> APP(app(plus, x), y)
none
PLUS(x, s(y)) -> PLUS(x, y)
none
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳Modular Removal of Rules
APP(app(times, x), app(s, y)) -> APP(app(times, x), y)
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(times, x), app(s, z))
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(times, x), app(app(plus, y), app(app(times, app(s, z)), 0)))
app(app(times, x), app(app(plus, y), app(s, z))) -> app(app(plus, app(app(times, x), app(app(plus, y), app(app(times, app(s, z)), 0)))), app(app(times, x), app(s, z)))
app(app(times, x), 0) -> 0
app(app(times, x), app(s, y)) -> app(app(plus, app(app(times, x), y)), x)
app(app(plus, x), 0) -> x
app(app(plus, x), app(s, y)) -> app(s, app(app(plus, x), y))
APP(app(times, x), app(s, y)) -> APP(app(times, x), y)
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(times, x), app(s, z))
APP(app(times, x), app(app(plus, y), app(s, z))) -> APP(app(times, x), app(app(plus, y), app(app(times, app(s, z)), 0)))
app(app(plus, x), 0) -> x
app(app(plus, x), app(s, y)) -> app(s, app(app(plus, x), y))
app(app(times, x), 0) -> 0
TIMES(x, s(y)) -> TIMES(x, y)
TIMES(x, plus(y, s(z))) -> TIMES(x, s(z))
TIMES(x, plus(y, s(z))) -> TIMES(x, plus(y, times(s(z), 0)))
plus(x, 0) -> x
plus(x, s(y)) -> s(plus(x, y))
times(x, 0) -> 0
POL(TIMES(x1, x2)) = 1 + x1 + x2 POL(plus(x1, x2)) = x1 + x2 POL(0) = 0 POL(times(x1, x2)) = x1 + x2 POL(s(x1)) = x1
R
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳MRR
→DP Problem 3
↳Modular Removal of Rules
TIMES(x, s(y)) -> TIMES(x, y)
TIMES(x, plus(y, s(z))) -> TIMES(x, s(z))
TIMES(x, plus(y, s(z))) -> TIMES(x, plus(y, times(s(z), 0)))
plus(x, 0) -> x
plus(x, s(y)) -> s(plus(x, y))
times(x, 0) -> 0
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
plus(x, 0) -> x
plus(x, s(y)) -> s(plus(x, y))
times(x, 0) -> 0
POL(TIMES(x1, x2)) = 1 + x1 + x2 POL(plus(x1, x2)) = 1 + x1 + x2 POL(0) = 0 POL(times(x1, x2)) = x1 + x2 POL(s(x1)) = x1
TIMES(x, plus(y, s(z))) -> TIMES(x, s(z))
plus(x, 0) -> x
R
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳MRR
→DP Problem 3
↳MRR
...
→DP Problem 4
↳Modular Removal of Rules
TIMES(x, s(y)) -> TIMES(x, y)
TIMES(x, plus(y, s(z))) -> TIMES(x, plus(y, times(s(z), 0)))
plus(x, s(y)) -> s(plus(x, y))
times(x, 0) -> 0
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
plus(x, s(y)) -> s(plus(x, y))
times(x, 0) -> 0
POL(TIMES(x1, x2)) = 1 + x1 + x2 POL(plus(x1, x2)) = x1 + x2 POL(0) = 0 POL(times(x1, x2)) = x1 + x2 POL(s(x1)) = 1 + x1
TIMES(x, s(y)) -> TIMES(x, y)
R
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳MRR
→DP Problem 3
↳MRR
...
→DP Problem 5
↳Narrowing Transformation
TIMES(x, plus(y, s(z))) -> TIMES(x, plus(y, times(s(z), 0)))
plus(x, s(y)) -> s(plus(x, y))
times(x, 0) -> 0
one new Dependency Pair is created:
TIMES(x, plus(y, s(z))) -> TIMES(x, plus(y, times(s(z), 0)))
TIMES(x, plus(y, s(z'))) -> TIMES(x, plus(y, 0))