R
↳Overlay and local confluence Check
R
↳OC
→TRS2
↳Dependency Pair Analysis
APP(app(sub, app(s, x)), app(s, y)) -> APP(app(sub, x), y)
APP(app(sub, app(s, x)), app(s, y)) -> APP(sub, x)
APP(app(gtr, app(s, x)), app(s, y)) -> APP(app(gtr, x), y)
APP(app(gtr, app(s, x)), app(s, y)) -> APP(gtr, x)
APP(app(d, app(s, x)), app(s, y)) -> APP(app(app(if, app(app(gtr, x), y)), false), app(app(d, app(s, x)), app(app(sub, y), x)))
APP(app(d, app(s, x)), app(s, y)) -> APP(app(if, app(app(gtr, x), y)), false)
APP(app(d, app(s, x)), app(s, y)) -> APP(if, app(app(gtr, x), y))
APP(app(d, app(s, x)), app(s, y)) -> APP(app(gtr, x), y)
APP(app(d, app(s, x)), app(s, y)) -> APP(gtr, x)
APP(app(d, app(s, x)), app(s, y)) -> APP(app(d, app(s, x)), app(app(sub, y), x))
APP(app(d, app(s, x)), app(s, y)) -> APP(app(sub, y), x)
APP(app(d, app(s, x)), app(s, y)) -> APP(sub, y)
APP(len, app(app(cons, x), xs)) -> APP(s, app(len, xs))
APP(len, app(app(cons, x), xs)) -> APP(len, xs)
APP(app(filter, p), app(app(cons, x), xs)) -> APP(app(app(if, app(p, x)), app(app(cons, x), app(app(filter, p), xs))), app(app(filter, p), xs))
APP(app(filter, p), app(app(cons, x), xs)) -> APP(app(if, app(p, x)), app(app(cons, x), app(app(filter, p), xs)))
APP(app(filter, p), app(app(cons, x), xs)) -> APP(if, app(p, x))
APP(app(filter, p), app(app(cons, x), xs)) -> APP(p, x)
APP(app(filter, p), app(app(cons, x), xs)) -> APP(app(cons, x), app(app(filter, p), xs))
APP(app(filter, p), app(app(cons, x), xs)) -> APP(app(filter, p), xs)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
APP(app(sub, app(s, x)), app(s, y)) -> APP(app(sub, x), y)
app(app(app(if, true), xs), ys) -> xs
app(app(app(if, false), xs), ys) -> ys
app(app(sub, x), 0) -> x
app(app(sub, app(s, x)), app(s, y)) -> app(app(sub, x), y)
app(app(gtr, 0), y) -> false
app(app(gtr, app(s, x)), 0) -> true
app(app(gtr, app(s, x)), app(s, y)) -> app(app(gtr, x), y)
app(app(d, x), 0) -> true
app(app(d, app(s, x)), app(s, y)) -> app(app(app(if, app(app(gtr, x), y)), false), app(app(d, app(s, x)), app(app(sub, y), x)))
app(len, nil) -> 0
app(len, app(app(cons, x), xs)) -> app(s, app(len, xs))
app(app(filter, p), nil) -> nil
app(app(filter, p), app(app(cons, x), xs)) -> app(app(app(if, app(p, x)), app(app(cons, x), app(app(filter, p), xs))), app(app(filter, p), xs))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
...
→DP Problem 6
↳A-Transformation
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
APP(app(sub, app(s, x)), app(s, y)) -> APP(app(sub, x), y)
none
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
...
→DP Problem 7
↳Size-Change Principle
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
SUB(s(x), s(y)) -> SUB(x, y)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
APP(app(gtr, app(s, x)), app(s, y)) -> APP(app(gtr, x), y)
app(app(app(if, true), xs), ys) -> xs
app(app(app(if, false), xs), ys) -> ys
app(app(sub, x), 0) -> x
app(app(sub, app(s, x)), app(s, y)) -> app(app(sub, x), y)
app(app(gtr, 0), y) -> false
app(app(gtr, app(s, x)), 0) -> true
app(app(gtr, app(s, x)), app(s, y)) -> app(app(gtr, x), y)
app(app(d, x), 0) -> true
app(app(d, app(s, x)), app(s, y)) -> app(app(app(if, app(app(gtr, x), y)), false), app(app(d, app(s, x)), app(app(sub, y), x)))
app(len, nil) -> 0
app(len, app(app(cons, x), xs)) -> app(s, app(len, xs))
app(app(filter, p), nil) -> nil
app(app(filter, p), app(app(cons, x), xs)) -> app(app(app(if, app(p, x)), app(app(cons, x), app(app(filter, p), xs))), app(app(filter, p), xs))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 8
↳A-Transformation
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
APP(app(gtr, app(s, x)), app(s, y)) -> APP(app(gtr, x), y)
none
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 9
↳Size-Change Principle
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
GTR(s(x), s(y)) -> GTR(x, y)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳Usable Rules (Innermost)
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
APP(len, app(app(cons, x), xs)) -> APP(len, xs)
app(app(app(if, true), xs), ys) -> xs
app(app(app(if, false), xs), ys) -> ys
app(app(sub, x), 0) -> x
app(app(sub, app(s, x)), app(s, y)) -> app(app(sub, x), y)
app(app(gtr, 0), y) -> false
app(app(gtr, app(s, x)), 0) -> true
app(app(gtr, app(s, x)), app(s, y)) -> app(app(gtr, x), y)
app(app(d, x), 0) -> true
app(app(d, app(s, x)), app(s, y)) -> app(app(app(if, app(app(gtr, x), y)), false), app(app(d, app(s, x)), app(app(sub, y), x)))
app(len, nil) -> 0
app(len, app(app(cons, x), xs)) -> app(s, app(len, xs))
app(app(filter, p), nil) -> nil
app(app(filter, p), app(app(cons, x), xs)) -> app(app(app(if, app(p, x)), app(app(cons, x), app(app(filter, p), xs))), app(app(filter, p), xs))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
...
→DP Problem 10
↳A-Transformation
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
APP(len, app(app(cons, x), xs)) -> APP(len, xs)
none
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
...
→DP Problem 11
↳Size-Change Principle
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
LEN(cons(x, xs)) -> LEN(xs)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳Usable Rules (Innermost)
→DP Problem 5
↳UsableRules
APP(app(d, app(s, x)), app(s, y)) -> APP(app(d, app(s, x)), app(app(sub, y), x))
app(app(app(if, true), xs), ys) -> xs
app(app(app(if, false), xs), ys) -> ys
app(app(sub, x), 0) -> x
app(app(sub, app(s, x)), app(s, y)) -> app(app(sub, x), y)
app(app(gtr, 0), y) -> false
app(app(gtr, app(s, x)), 0) -> true
app(app(gtr, app(s, x)), app(s, y)) -> app(app(gtr, x), y)
app(app(d, x), 0) -> true
app(app(d, app(s, x)), app(s, y)) -> app(app(app(if, app(app(gtr, x), y)), false), app(app(d, app(s, x)), app(app(sub, y), x)))
app(len, nil) -> 0
app(len, app(app(cons, x), xs)) -> app(s, app(len, xs))
app(app(filter, p), nil) -> nil
app(app(filter, p), app(app(cons, x), xs)) -> app(app(app(if, app(p, x)), app(app(cons, x), app(app(filter, p), xs))), app(app(filter, p), xs))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
...
→DP Problem 12
↳A-Transformation
→DP Problem 5
↳UsableRules
APP(app(d, app(s, x)), app(s, y)) -> APP(app(d, app(s, x)), app(app(sub, y), x))
app(app(sub, x), 0) -> x
app(app(sub, app(s, x)), app(s, y)) -> app(app(sub, x), y)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
...
→DP Problem 13
↳Negative Polynomial Order
→DP Problem 5
↳UsableRules
D(s(x), s(y)) -> D(s(x), sub(y, x))
sub(x, 0) -> x
sub(s(x), s(y)) -> sub(x, y)
innermost
D(s(x), s(y)) -> D(s(x), sub(y, x))
sub(s(x), s(y)) -> sub(x, y)
sub(x, 0) -> x
POL( D(x1, x2) ) = x2
POL( s(x1) ) = x1 + 1
POL( sub(x1, x2) ) = x1
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
...
→DP Problem 14
↳Dependency Graph
→DP Problem 5
↳UsableRules
sub(x, 0) -> x
sub(s(x), s(y)) -> sub(x, y)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳Usable Rules (Innermost)
APP(app(filter, p), app(app(cons, x), xs)) -> APP(app(filter, p), xs)
APP(app(filter, p), app(app(cons, x), xs)) -> APP(p, x)
app(app(app(if, true), xs), ys) -> xs
app(app(app(if, false), xs), ys) -> ys
app(app(sub, x), 0) -> x
app(app(sub, app(s, x)), app(s, y)) -> app(app(sub, x), y)
app(app(gtr, 0), y) -> false
app(app(gtr, app(s, x)), 0) -> true
app(app(gtr, app(s, x)), app(s, y)) -> app(app(gtr, x), y)
app(app(d, x), 0) -> true
app(app(d, app(s, x)), app(s, y)) -> app(app(app(if, app(app(gtr, x), y)), false), app(app(d, app(s, x)), app(app(sub, y), x)))
app(len, nil) -> 0
app(len, app(app(cons, x), xs)) -> app(s, app(len, xs))
app(app(filter, p), nil) -> nil
app(app(filter, p), app(app(cons, x), xs)) -> app(app(app(if, app(p, x)), app(app(cons, x), app(app(filter, p), xs))), app(app(filter, p), xs))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 3
↳UsableRules
→DP Problem 4
↳UsableRules
→DP Problem 5
↳UsableRules
...
→DP Problem 15
↳Size-Change Principle
APP(app(filter, p), app(app(cons, x), xs)) -> APP(app(filter, p), xs)
APP(app(filter, p), app(app(cons, x), xs)) -> APP(p, x)
none
innermost
|
|
|
|
trivial
app(x1, x2) -> app(x1, x2)