R
↳Overlay and local confluence Check
R
↳OC
→TRS2
↳Dependency Pair Analysis
REV(cons(x, l)) -> REV1(x, l)
REV(cons(x, l)) -> REV2(x, l)
REV1(x, cons(y, l)) -> REV1(y, l)
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
REV2(x, cons(y, l)) -> REV2(y, l)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳UsableRules
REV1(x, cons(y, l)) -> REV1(y, l)
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
...
→DP Problem 3
↳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
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Usable Rules (Innermost)
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)
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 4
↳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)
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(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))
innermost
REV2(x, cons(y, l)) -> REV2(y, l)
REV(cons(x, l)) -> REV2(x, l)
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(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))
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( s(x1) ) = 0
POL( rev(x1) ) = x1
POL( nil ) = 0
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳UsableRules
...
→DP Problem 5
↳Dependency Graph
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(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))
innermost