R
↳Overlay and local confluence Check
R
↳OC
→TRS2
↳Dependency Pair Analysis
REV1(X, cons(Y, L)) -> REV1(Y, L)
REV(cons(X, L)) -> REV1(X, L)
REV(cons(X, L)) -> REV2(X, L)
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
REV2(X, cons(Y, L)) -> REV(rev2(Y, L))
REV2(X, cons(Y, L)) -> REV2(Y, L)
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳Usable Rules (Innermost)
→DP Problem 2
↳Neg POLO
REV1(X, cons(Y, L)) -> REV1(Y, L)
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
innermost
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
...
→DP Problem 3
↳Size-Change Principle
→DP Problem 2
↳Neg POLO
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
↳Negative Polynomial Order
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(rev2(Y, L))
REV2(X, cons(Y, L)) -> REV(cons(X, rev(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)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
innermost
REV2(X, cons(Y, L)) -> REV2(Y, L)
REV2(X, cons(Y, L)) -> REV(rev2(Y, L))
REV(cons(X, L)) -> REV2(X, L)
rev1(0, nil) -> 0
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
rev(nil) -> nil
rev2(X, nil) -> nil
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
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( rev(x1) ) = x1
POL( rev1(x1, x2) ) = 0
POL( 0 ) = 0
POL( nil ) = 0
POL( s(x1) ) = 0
R
↳OC
→TRS2
↳DPs
→DP Problem 1
↳UsableRules
→DP Problem 2
↳Neg POLO
...
→DP Problem 4
↳Dependency Graph
REV2(X, cons(Y, L)) -> REV(cons(X, rev(rev2(Y, L))))
rev1(0, nil) -> 0
rev1(s(X), nil) -> s(X)
rev1(X, cons(Y, L)) -> rev1(Y, L)
rev(nil) -> nil
rev(cons(X, L)) -> cons(rev1(X, L), rev2(X, L))
rev2(X, nil) -> nil
rev2(X, cons(Y, L)) -> rev(cons(X, rev(rev2(Y, L))))
innermost