R
↳Dependency Pair Analysis
APP(app(app(f, app(g, x)), app(s, 0)), y) -> APP(app(app(f, app(g, app(s, 0))), y), app(g, x))
APP(app(app(f, app(g, x)), app(s, 0)), y) -> APP(app(f, app(g, app(s, 0))), y)
APP(app(app(f, app(g, x)), app(s, 0)), y) -> APP(f, app(g, app(s, 0)))
APP(app(app(f, app(g, x)), app(s, 0)), y) -> APP(g, app(s, 0))
APP(g, app(s, x)) -> APP(s, app(g, x))
APP(g, app(s, x)) -> APP(g, x)
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
APP(g, app(s, x)) -> APP(g, x)
app(app(app(f, app(g, x)), app(s, 0)), y) -> app(app(app(f, app(g, app(s, 0))), y), app(g, x))
app(g, app(s, x)) -> app(s, app(g, x))
app(g, 0) -> 0
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 3
↳A-Transformation
→DP Problem 2
↳UsableRules
APP(g, app(s, x)) -> APP(g, x)
none
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 3
↳ATrans
...
→DP Problem 4
↳Size-Change Principle
→DP Problem 2
↳UsableRules
G(s(x)) -> G(x)
none
innermost
|
|
trivial
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
APP(app(app(f, app(g, x)), app(s, 0)), y) -> APP(app(app(f, app(g, app(s, 0))), y), app(g, x))
app(app(app(f, app(g, x)), app(s, 0)), y) -> app(app(app(f, app(g, app(s, 0))), y), app(g, x))
app(g, app(s, x)) -> app(s, app(g, x))
app(g, 0) -> 0
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳A-Transformation
APP(app(app(f, app(g, x)), app(s, 0)), y) -> APP(app(app(f, app(g, app(s, 0))), y), app(g, x))
app(g, 0) -> 0
app(g, app(s, x)) -> app(s, app(g, x))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 6
↳Narrowing Transformation
F(g(x), s(0), y) -> F(g(s(0)), y, g(x))
g(0) -> 0
g(s(x)) -> s(g(x))
innermost
one new Dependency Pair is created:
F(g(x), s(0), y) -> F(g(s(0)), y, g(x))
F(g(x), s(0), y) -> F(s(g(0)), y, g(x))