R
↳Dependency Pair Analysis
APP(g, app(g, x)) -> APP(g, app(h, app(g, x)))
APP(g, app(g, x)) -> APP(h, app(g, x))
APP(h, app(h, x)) -> APP(h, app(app(f, app(h, x)), x))
APP(h, app(h, x)) -> APP(app(f, app(h, x)), x)
APP(h, app(h, x)) -> APP(f, app(h, x))
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
APP(h, app(h, x)) -> APP(app(f, app(h, x)), x)
APP(h, app(h, x)) -> APP(h, app(app(f, app(h, x)), x))
APP(g, app(g, x)) -> APP(h, app(g, x))
APP(g, app(g, x)) -> APP(g, app(h, app(g, x)))
app(g, app(h, app(g, x))) -> app(g, x)
app(g, app(g, x)) -> app(g, app(h, app(g, x)))
app(h, app(h, x)) -> app(h, app(app(f, app(h, x)), x))
no new Dependency Pairs are created.
APP(h, app(h, x)) -> APP(app(f, app(h, x)), x)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Remaining Obligation(s)
→DP Problem 3
↳Nar
...
→DP Problem 4
↳Remaining Obligation(s)
APP(h, app(h, x)) -> APP(h, app(app(f, app(h, x)), x))
app(g, app(h, app(g, x))) -> app(g, x)
app(g, app(g, x)) -> app(g, app(h, app(g, x)))
app(h, app(h, x)) -> app(h, app(app(f, app(h, x)), x))
APP(g, app(g, app(g, x''))) -> APP(g, app(h, app(g, app(h, app(g, x'')))))
APP(g, app(g, app(h, app(g, x'')))) -> APP(g, app(h, app(g, x'')))
app(g, app(h, app(g, x))) -> app(g, x)
app(g, app(g, x)) -> app(g, app(h, app(g, x)))
app(h, app(h, x)) -> app(h, app(app(f, app(h, x)), x))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Remaining
→DP Problem 3
↳Narrowing Transformation
APP(g, app(g, x)) -> APP(g, app(h, app(g, x)))
app(g, app(h, app(g, x))) -> app(g, x)
app(g, app(g, x)) -> app(g, app(h, app(g, x)))
app(h, app(h, x)) -> app(h, app(app(f, app(h, x)), x))
two new Dependency Pairs are created:
APP(g, app(g, x)) -> APP(g, app(h, app(g, x)))
APP(g, app(g, app(h, app(g, x'')))) -> APP(g, app(h, app(g, x'')))
APP(g, app(g, app(g, x''))) -> APP(g, app(h, app(g, app(h, app(g, x'')))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Remaining Obligation(s)
→DP Problem 3
↳Nar
...
→DP Problem 4
↳Remaining Obligation(s)
APP(h, app(h, x)) -> APP(h, app(app(f, app(h, x)), x))
app(g, app(h, app(g, x))) -> app(g, x)
app(g, app(g, x)) -> app(g, app(h, app(g, x)))
app(h, app(h, x)) -> app(h, app(app(f, app(h, x)), x))
APP(g, app(g, app(g, x''))) -> APP(g, app(h, app(g, app(h, app(g, x'')))))
APP(g, app(g, app(h, app(g, x'')))) -> APP(g, app(h, app(g, x'')))
app(g, app(h, app(g, x))) -> app(g, x)
app(g, app(g, x)) -> app(g, app(h, app(g, x)))
app(h, app(h, x)) -> app(h, app(app(f, app(h, x)), x))