R
↳Dependency Pair Analysis
APP(app(map, f), app(app(cons, x), xs)) -> APP(app(cons, app(f, x)), app(app(map, f), xs))
APP(app(map, f), app(app(cons, x), xs)) -> APP(cons, app(f, x))
APP(app(map, f), app(app(cons, x), xs)) -> APP(f, x)
APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs)
APP(app(minus, app(s, x)), app(s, y)) -> APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
APP(app(minus, app(s, x)), app(s, y)) -> APP(minus, app(p, app(s, x)))
APP(app(minus, app(s, x)), app(s, y)) -> APP(p, app(s, x))
APP(app(minus, app(s, x)), app(s, y)) -> APP(p, app(s, y))
APP(app(div, app(s, x)), app(s, y)) -> APP(s, app(app(div, app(app(minus, x), y)), app(s, y)))
APP(app(div, app(s, x)), app(s, y)) -> APP(app(div, app(app(minus, x), y)), app(s, y))
APP(app(div, app(s, x)), app(s, y)) -> APP(div, app(app(minus, x), y))
APP(app(div, app(s, x)), app(s, y)) -> APP(app(minus, x), y)
APP(app(div, app(s, x)), app(s, y)) -> APP(minus, x)
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
APP(app(minus, app(s, x)), app(s, y)) -> APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(app(map, f), nil) -> nil
app(app(map, f), app(app(cons, x), xs)) -> app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) -> x
app(app(minus, app(s, x)), app(s, y)) -> app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) -> x
app(app(div, 0), app(s, y)) -> 0
app(app(div, app(s, x)), app(s, y)) -> app(s, app(app(div, app(app(minus, x), y)), app(s, y)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 4
↳A-Transformation
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
APP(app(minus, app(s, x)), app(s, y)) -> APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) -> x
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 4
↳ATrans
...
→DP Problem 5
↳Modular Removal of Rules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
MINUS(s(x), s(y)) -> MINUS(p(s(x)), p(s(y)))
p(s(x)) -> x
innermost
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
p(s(x)) -> x
POL(MINUS(x1, x2)) = 1 + x1 + x2 POL(s(x1)) = 1 + x1 POL(p(x1)) = x1
p(s(x)) -> x
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 4
↳ATrans
...
→DP Problem 6
↳Dependency Graph
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
MINUS(s(x), s(y)) -> MINUS(p(s(x)), p(s(y)))
none
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
→DP Problem 3
↳UsableRules
APP(app(div, app(s, x)), app(s, y)) -> APP(app(div, app(app(minus, x), y)), app(s, y))
app(app(map, f), nil) -> nil
app(app(map, f), app(app(cons, x), xs)) -> app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) -> x
app(app(minus, app(s, x)), app(s, y)) -> app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) -> x
app(app(div, 0), app(s, y)) -> 0
app(app(div, app(s, x)), app(s, y)) -> app(s, app(app(div, app(app(minus, x), y)), app(s, y)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 7
↳A-Transformation
→DP Problem 3
↳UsableRules
APP(app(div, app(s, x)), app(s, y)) -> APP(app(div, app(app(minus, x), y)), app(s, y))
app(app(minus, x), 0) -> x
app(app(minus, app(s, x)), app(s, y)) -> app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) -> x
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 7
↳ATrans
...
→DP Problem 8
↳Negative Polynomial Order
→DP Problem 3
↳UsableRules
DIV(s(x), s(y)) -> DIV(minus(x, y), s(y))
minus(x, 0) -> x
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(x)) -> x
innermost
DIV(s(x), s(y)) -> DIV(minus(x, y), s(y))
minus(x, 0) -> x
p(s(x)) -> x
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
POL( DIV(x1, x2) ) = x1
POL( s(x1) ) = x1 + 1
POL( minus(x1, x2) ) = x1
POL( p(x1) ) = x1
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 7
↳ATrans
...
→DP Problem 9
↳Dependency Graph
→DP Problem 3
↳UsableRules
minus(x, 0) -> x
minus(s(x), s(y)) -> minus(p(s(x)), p(s(y)))
p(s(x)) -> x
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳Usable Rules (Innermost)
APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs)
APP(app(map, f), app(app(cons, x), xs)) -> APP(f, x)
app(app(map, f), nil) -> nil
app(app(map, f), app(app(cons, x), xs)) -> app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) -> x
app(app(minus, app(s, x)), app(s, y)) -> app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) -> x
app(app(div, 0), app(s, y)) -> 0
app(app(div, app(s, x)), app(s, y)) -> app(s, app(app(div, app(app(minus, x), y)), app(s, y)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 10
↳Size-Change Principle
APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs)
APP(app(map, f), app(app(cons, x), xs)) -> APP(f, x)
none
innermost
|
|
|
|
trivial
app(x1, x2) -> app(x1, x2)