R
↳Overlay and local confluence Check
R
↳OC
→TRS2
↳Dependency Pair Analysis
APP(app(plus, app(s, x)), y) -> APP(s, app(app(plus, x), y))
APP(app(plus, app(s, x)), y) -> APP(app(plus, x), y)
APP(app(plus, app(s, x)), y) -> APP(plus, x)
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(app(curry, g), x), y) -> APP(app(g, x), y)
APP(app(app(curry, g), x), y) -> APP(g, x)
INC -> APP(map, app(app(curry, plus), app(s, 0)))
INC -> APP(app(curry, plus), app(s, 0))
INC -> APP(curry, plus)
INC -> APP(s, 0)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
APP(app(plus, app(s, x)), y) -> APP(app(plus, x), y)
app(app(plus, 0), y) -> y
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), 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(app(curry, g), x), y) -> app(app(g, x), y)
inc -> app(map, app(app(curry, plus), app(s, 0)))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
...
→DP Problem 3
↳A-Transformation
→DP Problem 2
↳UsableRules
APP(app(plus, app(s, x)), y) -> APP(app(plus, x), y)
none
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
...
→DP Problem 4
↳Size-Change Principle
→DP Problem 2
↳UsableRules
PLUS(s(x), y) -> PLUS(x, y)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
APP(app(app(curry, g), x), y) -> APP(g, x)
APP(app(app(curry, g), x), y) -> APP(app(g, x), y)
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(plus, 0), y) -> y
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), 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(app(curry, g), x), y) -> app(app(g, x), y)
inc -> app(map, app(app(curry, plus), app(s, 0)))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 5
↳Polynomial Ordering
APP(app(app(curry, g), x), y) -> APP(g, x)
APP(app(app(curry, g), x), y) -> APP(app(g, x), y)
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), app(app(cons, x), xs)) -> app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), y))
app(app(plus, 0), y) -> y
app(app(map, f), nil) -> nil
app(app(app(curry, g), x), y) -> app(app(g, x), y)
innermost
APP(app(app(curry, g), x), y) -> APP(g, x)
APP(app(app(curry, g), x), y) -> APP(app(g, x), y)
APP(app(map, f), app(app(cons, x), xs)) -> APP(f, x)
app(app(map, f), app(app(cons, x), xs)) -> app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), y))
app(app(plus, 0), y) -> y
app(app(map, f), nil) -> nil
app(app(app(curry, g), x), y) -> app(app(g, x), y)
POL(plus) = 0 POL(0) = 0 POL(curry) = 1 POL(cons) = 0 POL(map) = 1 POL(nil) = 0 POL(s) = 0 POL(app(x1, x2)) = 1 + x1 + x1·x2 POL(APP(x1, x2)) = x1
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 6
↳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(app(cons, app(f, x)), app(app(map, f), xs))
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), y))
app(app(plus, 0), y) -> y
app(app(map, f), nil) -> nil
app(app(app(curry, g), x), y) -> app(app(g, x), y)
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 7
↳A-Transformation
APP(app(map, f), app(app(cons, x), xs)) -> APP(app(map, f), xs)
none
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 8
↳Size-Change Principle
MAP(f, cons(x, xs)) -> MAP(f, xs)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)