R
↳Dependency Pair Analysis
APP(app(le, app(s, x)), app(s, y)) -> APP(app(le, x), y)
APP(app(le, app(s, x)), app(s, y)) -> APP(le, x)
APP(app(minus, x), y) -> APP(app(app(if, app(app(le, x), y)), x), y)
APP(app(minus, x), y) -> APP(app(if, app(app(le, x), y)), x)
APP(app(minus, x), y) -> APP(if, app(app(le, x), y))
APP(app(minus, x), y) -> APP(app(le, x), y)
APP(app(minus, x), y) -> APP(le, x)
APP(app(app(if, false), x), y) -> APP(s, app(app(minus, app(p, x)), y))
APP(app(app(if, false), x), y) -> APP(app(minus, app(p, x)), y)
APP(app(app(if, false), x), y) -> APP(minus, app(p, x))
APP(app(app(if, false), x), y) -> APP(p, x)
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
APP(app(le, app(s, x)), app(s, y)) -> APP(app(le, x), y)
app(p, 0) -> 0
app(p, app(s, x)) -> x
app(app(le, 0), y) -> true
app(app(le, app(s, x)), 0) -> false
app(app(le, app(s, x)), app(s, y)) -> app(app(le, x), y)
app(app(minus, x), y) -> app(app(app(if, app(app(le, x), y)), x), y)
app(app(app(if, true), x), y) -> 0
app(app(app(if, false), x), y) -> app(s, app(app(minus, app(p, x)), y))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 3
↳A-Transformation
→DP Problem 2
↳UsableRules
APP(app(le, app(s, x)), app(s, y)) -> APP(app(le, x), y)
none
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 3
↳ATrans
...
→DP Problem 4
↳Size-Change Principle
→DP Problem 2
↳UsableRules
LE(s(x), s(y)) -> LE(x, y)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
APP(app(app(if, false), x), y) -> APP(app(minus, app(p, x)), y)
APP(app(minus, x), y) -> APP(app(app(if, app(app(le, x), y)), x), y)
app(p, 0) -> 0
app(p, app(s, x)) -> x
app(app(le, 0), y) -> true
app(app(le, app(s, x)), 0) -> false
app(app(le, app(s, x)), app(s, y)) -> app(app(le, x), y)
app(app(minus, x), y) -> app(app(app(if, app(app(le, x), y)), x), y)
app(app(app(if, true), x), y) -> 0
app(app(app(if, false), x), y) -> app(s, app(app(minus, app(p, x)), y))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳A-Transformation
APP(app(app(if, false), x), y) -> APP(app(minus, app(p, x)), y)
APP(app(minus, x), y) -> APP(app(app(if, app(app(le, x), y)), x), y)
app(p, 0) -> 0
app(p, app(s, x)) -> x
app(app(le, 0), y) -> true
app(app(le, app(s, x)), 0) -> false
app(app(le, app(s, x)), app(s, y)) -> app(app(le, x), y)
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 6
↳Narrowing Transformation
IF(false, x, y) -> MINUS(p(x), y)
MINUS(x, y) -> IF(le(x, y), x, y)
p(0) -> 0
p(s(x)) -> x
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
innermost
three new Dependency Pairs are created:
MINUS(x, y) -> IF(le(x, y), x, y)
MINUS(0, y'') -> IF(true, 0, y'')
MINUS(s(x''), 0) -> IF(false, s(x''), 0)
MINUS(s(x''), s(y'')) -> IF(le(x'', y''), s(x''), s(y''))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 7
↳Narrowing Transformation
MINUS(s(x''), s(y'')) -> IF(le(x'', y''), s(x''), s(y''))
MINUS(s(x''), 0) -> IF(false, s(x''), 0)
IF(false, x, y) -> MINUS(p(x), y)
p(0) -> 0
p(s(x)) -> x
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
innermost
two new Dependency Pairs are created:
IF(false, x, y) -> MINUS(p(x), y)
IF(false, 0, y) -> MINUS(0, y)
IF(false, s(x''), y) -> MINUS(x'', y)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 8
↳Instantiation Transformation
MINUS(s(x''), 0) -> IF(false, s(x''), 0)
IF(false, s(x''), y) -> MINUS(x'', y)
MINUS(s(x''), s(y'')) -> IF(le(x'', y''), s(x''), s(y''))
p(0) -> 0
p(s(x)) -> x
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
innermost
two new Dependency Pairs are created:
IF(false, s(x''), y) -> MINUS(x'', y)
IF(false, s(x''''), 0) -> MINUS(x'''', 0)
IF(false, s(x''''), s(y'''')) -> MINUS(x'''', s(y''''))
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 9
↳Usable Rules (Innermost)
IF(false, s(x''''), 0) -> MINUS(x'''', 0)
MINUS(s(x''), 0) -> IF(false, s(x''), 0)
p(0) -> 0
p(s(x)) -> x
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 11
↳Size-Change Principle
IF(false, s(x''''), 0) -> MINUS(x'''', 0)
MINUS(s(x''), 0) -> IF(false, s(x''), 0)
none
innermost
|
|
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 10
↳Usable Rules (Innermost)
IF(false, s(x''''), s(y'''')) -> MINUS(x'''', s(y''''))
MINUS(s(x''), s(y'')) -> IF(le(x'', y''), s(x''), s(y''))
p(0) -> 0
p(s(x)) -> x
le(0, y) -> true
le(s(x), 0) -> false
le(s(x), s(y)) -> le(x, y)
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 12
↳Size-Change Principle
IF(false, s(x''''), s(y'''')) -> MINUS(x'''', s(y''''))
MINUS(s(x''), s(y'')) -> IF(le(x'', y''), s(x''), s(y''))
le(s(x), s(y)) -> le(x, y)
le(0, y) -> true
le(s(x), 0) -> false
innermost
|
|
|
|
trivial
s(x1) -> s(x1)