R
↳Dependency Pair Analysis
APP(rev, app(app(cons, x), l)) -> APP(app(cons, app(app(rev1, x), l)), app(app(rev2, x), l))
APP(rev, app(app(cons, x), l)) -> APP(cons, app(app(rev1, x), l))
APP(rev, app(app(cons, x), l)) -> APP(app(rev1, x), l)
APP(rev, app(app(cons, x), l)) -> APP(rev1, x)
APP(rev, app(app(cons, x), l)) -> APP(app(rev2, x), l)
APP(rev, app(app(cons, x), l)) -> APP(rev2, x)
APP(app(rev1, x), app(app(cons, y), l)) -> APP(app(rev1, y), l)
APP(app(rev1, x), app(app(cons, y), l)) -> APP(rev1, y)
APP(app(rev2, x), app(app(cons, y), l)) -> APP(rev, app(app(cons, x), app(app(rev2, y), l)))
APP(app(rev2, x), app(app(cons, y), l)) -> APP(app(cons, x), app(app(rev2, y), l))
APP(app(rev2, x), app(app(cons, y), l)) -> APP(cons, x)
APP(app(rev2, x), app(app(cons, y), l)) -> APP(app(rev2, y), l)
APP(app(rev2, x), app(app(cons, y), l)) -> APP(rev2, y)
R
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
APP(app(rev1, x), app(app(cons, y), l)) -> APP(app(rev1, y), l)
app(rev, nil) -> nil
app(rev, app(app(cons, x), l)) -> app(app(cons, app(app(rev1, x), l)), app(app(rev2, x), l))
app(app(rev1, 0), nil) -> 0
app(app(rev1, app(s, x)), nil) -> app(s, x)
app(app(rev1, x), app(app(cons, y), l)) -> app(app(rev1, y), l)
app(app(rev2, x), nil) -> nil
app(app(rev2, x), app(app(cons, y), l)) -> app(rev, app(app(cons, x), app(app(rev2, y), l)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 3
↳A-Transformation
→DP Problem 2
↳UsableRules
APP(app(rev1, x), app(app(cons, y), l)) -> APP(app(rev1, y), l)
none
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 3
↳ATrans
...
→DP Problem 4
↳Size-Change Principle
→DP Problem 2
↳UsableRules
REV1(x, cons(y, l)) -> REV1(y, l)
none
innermost
|
|
trivial
cons(x1, x2) -> cons(x1, x2)
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
APP(app(rev2, x), app(app(cons, y), l)) -> APP(app(rev2, y), l)
APP(app(rev2, x), app(app(cons, y), l)) -> APP(rev, app(app(cons, x), app(app(rev2, y), l)))
APP(rev, app(app(cons, x), l)) -> APP(app(rev2, x), l)
app(rev, nil) -> nil
app(rev, app(app(cons, x), l)) -> app(app(cons, app(app(rev1, x), l)), app(app(rev2, x), l))
app(app(rev1, 0), nil) -> 0
app(app(rev1, app(s, x)), nil) -> app(s, x)
app(app(rev1, x), app(app(cons, y), l)) -> app(app(rev1, y), l)
app(app(rev2, x), nil) -> nil
app(app(rev2, x), app(app(cons, y), l)) -> app(rev, app(app(cons, x), app(app(rev2, y), l)))
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳A-Transformation
APP(app(rev2, x), app(app(cons, y), l)) -> APP(app(rev2, y), l)
APP(app(rev2, x), app(app(cons, y), l)) -> APP(rev, app(app(cons, x), app(app(rev2, y), l)))
APP(rev, app(app(cons, x), l)) -> APP(app(rev2, x), l)
app(app(rev2, x), app(app(cons, y), l)) -> app(rev, app(app(cons, x), app(app(rev2, y), l)))
app(app(rev1, 0), nil) -> 0
app(app(rev1, x), app(app(cons, y), l)) -> app(app(rev1, y), l)
app(rev, app(app(cons, x), l)) -> app(app(cons, app(app(rev1, x), l)), app(app(rev2, x), l))
app(app(rev1, app(s, x)), nil) -> app(s, x)
app(app(rev2, x), nil) -> nil
innermost
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 6
↳Negative Polynomial Order
REV2(x, cons(y, l)) -> REV2(y, l)
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
REV(cons(x, l)) -> REV2(x, l)
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
rev2(x, nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(x, cons(y, l)) -> rev1(y, l)
rev1(s(x), nil) -> s(x)
innermost
REV2(x, cons(y, l)) -> REV2(y, l)
REV(cons(x, l)) -> REV2(x, l)
rev1(0, nil) -> 0
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
rev2(x, nil) -> nil
rev1(s(x), nil) -> s(x)
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(x, cons(y, l)) -> rev1(y, l)
POL( REV2(x1, x2) ) = x2
POL( cons(x1, x2) ) = x2 + 1
POL( REV(x1) ) = x1
POL( rev2(x1, x2) ) = x2
POL( rev1(x1, x2) ) = 0
POL( 0 ) = 0
POL( rev(x1) ) = x1
POL( nil ) = 0
POL( s(x1) ) = 0
R
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
→DP Problem 5
↳ATrans
...
→DP Problem 7
↳Dependency Graph
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
rev2(x, nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(x, cons(y, l)) -> rev1(y, l)
rev1(s(x), nil) -> s(x)
innermost