R
↳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(app(curry, f), x), y) -> APP(app(f, x), y)
APP(app(app(curry, f), x), y) -> APP(f, x)
ADD -> APP(curry, plus)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
APP(app(app(curry, f), x), y) -> APP(f, x)
APP(app(app(curry, f), x), y) -> APP(app(f, x), y)
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(app(curry, f), x), y) -> app(app(f, x), y)
add -> app(curry, plus)
innermost
two new Dependency Pairs are created:
APP(app(app(curry, f), x), y) -> APP(f, x)
APP(app(app(curry, app(app(curry, f''), x'')), x0), y) -> APP(app(app(curry, f''), x''), x0)
APP(app(app(curry, app(plus, app(s, x''))), x0), y) -> APP(app(plus, app(s, x'')), x0)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Argument Filtering and Ordering
APP(app(app(curry, app(plus, app(s, x''))), x0), y) -> APP(app(plus, app(s, x'')), x0)
APP(app(app(curry, app(app(curry, f''), x'')), x0), y) -> APP(app(app(curry, f''), x''), x0)
APP(app(plus, app(s, x)), y) -> APP(app(plus, x), y)
APP(app(app(curry, f), x), y) -> APP(app(f, x), y)
app(app(plus, 0), y) -> y
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), y))
app(app(app(curry, f), x), y) -> app(app(f, x), y)
add -> app(curry, plus)
innermost
APP(app(app(curry, app(plus, app(s, x''))), x0), y) -> APP(app(plus, app(s, x'')), x0)
APP(app(app(curry, app(app(curry, f''), x'')), x0), y) -> APP(app(app(curry, f''), x''), x0)
APP(app(plus, app(s, x)), y) -> APP(app(plus, x), y)
APP(app(app(curry, f), x), y) -> APP(app(f, x), y)
app(app(plus, 0), y) -> y
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), y))
app(app(app(curry, f), x), y) -> app(app(f, x), y)
trivial
APP(x1, x2) -> APP(x1, x2)
app(x1, x2) -> app(x1, x2)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳AFS
...
→DP Problem 3
↳Dependency Graph
app(app(plus, 0), y) -> y
app(app(plus, app(s, x)), y) -> app(s, app(app(plus, x), y))
app(app(app(curry, f), x), y) -> app(app(f, x), y)
add -> app(curry, plus)
innermost