YES
TRS
↳CSR to TRS Transformation
↳CSRtoTRS
U71(1,2)
U42(1)
U52(1)
U11(1)
U51(1,2)
U21(1,2)
U72(1)
isNePal(1)
isNeList(1)
U31(1)
(1, 2)
U22(1)
U81(1)
isPal(1)
U41(1,2)
U61(1)
isList(1)
isQid(1)
((X, Y), Z) -> (X, (Y, Z))
(X, nil) -> X
(nil, X) -> X
U11(tt) -> tt
U21(tt, V2) -> U22(isList(V2))
U22(tt) -> tt
U31(tt) -> tt
U41(tt, V2) -> U42(isNeList(V2))
U42(tt) -> tt
U51(tt, V2) -> U52(isList(V2))
U52(tt) -> tt
U61(tt) -> tt
U71(tt, P) -> U72(isPal(P))
U72(tt) -> tt
U81(tt) -> tt
isList(V) -> U11(isNeList(V))
isList(nil) -> tt
isList((V1, V2)) -> U21(isList(V1), V2)
isNeList(V) -> U31(isQid(V))
isNeList((V1, V2)) -> U41(isList(V1), V2)
isNeList((V1, V2)) -> U51(isNeList(V1), V2)
isNePal(V) -> U61(isQid(V))
isNePal((I, (P, I))) -> U71(isQid(I), P)
isPal(V) -> U81(isNePal(V))
isPal(nil) -> tt
isQid(a) -> tt
isQid(e) -> tt
isQid(i) -> tt
isQid(o) -> tt
isQid(u) -> tt
((X, Y), Z) -> (X, (Y, Z))
(X, nil) -> X
(nil, X) -> X
U11(tt) -> tt
U21(tt) -> U22(isList)
U22(tt) -> tt
isList -> U11(isNeList)
isList -> tt
isList -> U21(isList)
U31(tt) -> tt
U41(tt) -> U42(isNeList)
U42(tt) -> tt
isNeList -> U31(isQid)
isNeList -> U41(isList)
isNeList -> U51(isNeList)
U51(tt) -> U52(isList)
U52(tt) -> tt
U61(tt) -> tt
U71(tt) -> U72(isPal)
U72(tt) -> tt
isPal -> U81(isNePal)
isPal -> tt
U81(tt) -> tt
isQid -> tt
isNePal -> U61(isQid)
isNePal -> U71(isQid)
TRS
↳CSRtoTRS
→TRS1
↳Removing Redundant Rules
↳CSRtoTRS
((X, Y), Z) -> (X, (Y, Z))
(X, nil) -> X
(nil, X) -> X
was used.
POL(U71(x1)) = x1 POL(U31(x1)) = x1 POL(U42(x1)) = x1 POL(__(x1, x2)) = 1 + 2·x1 + x2 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(U22(x1)) = x1 POL(U81(x1)) = x1 POL(U51(x1)) = x1 POL(isPal) = 0 POL(U41(x1)) = x1 POL(U21(x1)) = x1 POL(tt) = 0 POL(nil) = 0 POL(U72(x1)) = x1 POL(U61(x1)) = x1 POL(isNePal) = 0 POL(isList) = 0 POL(isQid) = 0 POL(isNeList) = 0
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳Removing Redundant Rules
↳CSRtoTRS
U61(tt) -> tt
isPal -> tt
was used.
POL(U71(x1)) = 1 + x1 POL(U31(x1)) = x1 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(U22(x1)) = x1 POL(U81(x1)) = x1 POL(U51(x1)) = x1 POL(isPal) = 1 POL(U41(x1)) = x1 POL(U21(x1)) = x1 POL(tt) = 0 POL(U72(x1)) = x1 POL(U61(x1)) = 1 + x1 POL(isNePal) = 1 POL(isList) = 0 POL(isQid) = 0 POL(isNeList) = 0
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS3
↳Removing Redundant Rules
↳CSRtoTRS
isNePal -> U61(isQid)
was used.
POL(U71(x1)) = 1 + x1 POL(U31(x1)) = x1 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(U22(x1)) = x1 POL(U81(x1)) = x1 POL(U51(x1)) = x1 POL(isPal) = 1 POL(U41(x1)) = x1 POL(U21(x1)) = x1 POL(tt) = 0 POL(U72(x1)) = x1 POL(isNePal) = 1 POL(U61(x1)) = x1 POL(isList) = 0 POL(isNeList) = 0 POL(isQid) = 0
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS4
↳Dependency Pair Analysis
↳CSRtoTRS
ISPAL -> U81'(isNePal)
ISPAL -> ISNEPAL
ISNEPAL -> U71'(isQid)
ISNEPAL -> ISQID
U71'(tt) -> U72'(isPal)
U71'(tt) -> ISPAL
U51'(tt) -> U52'(isList)
U51'(tt) -> ISLIST
ISLIST -> U11'(isNeList)
ISLIST -> ISNELIST
ISLIST -> U21'(isList)
ISLIST -> ISLIST
ISNELIST -> U31'(isQid)
ISNELIST -> ISQID
ISNELIST -> U41'(isList)
ISNELIST -> ISLIST
ISNELIST -> U51'(isNeList)
ISNELIST -> ISNELIST
U21'(tt) -> U22'(isList)
U21'(tt) -> ISLIST
U41'(tt) -> U42'(isNeList)
U41'(tt) -> ISNELIST
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 1
↳Modular Removal of Rules
↳CSRtoTRS
U71'(tt) -> ISPAL
ISNEPAL -> U71'(isQid)
ISPAL -> ISNEPAL
U42(tt) -> tt
isQid -> tt
U11(tt) -> tt
isPal -> U81(isNePal)
U81(tt) -> tt
isNePal -> U71(isQid)
U52(tt) -> tt
U71(tt) -> U72(isPal)
U72(tt) -> tt
U51(tt) -> U52(isList)
isList -> U11(isNeList)
isList -> U21(isList)
isList -> tt
isNeList -> U31(isQid)
isNeList -> U41(isList)
isNeList -> U51(isNeList)
U31(tt) -> tt
U21(tt) -> U22(isList)
U22(tt) -> tt
U41(tt) -> U42(isNeList)
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
isQid -> tt
POL(ISPAL) = 0 POL(U71'(x1)) = x1 POL(ISNEPAL) = 0 POL(tt) = 0 POL(isQid) = 0
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 3
↳Non-Overlappingness Check
↳CSRtoTRS
U71'(tt) -> ISPAL
ISNEPAL -> U71'(isQid)
ISPAL -> ISNEPAL
isQid -> tt
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 4
↳Rewriting Transformation
↳CSRtoTRS
U71'(tt) -> ISPAL
ISNEPAL -> U71'(isQid)
ISPAL -> ISNEPAL
isQid -> tt
innermost
one new Dependency Pair is created:
ISNEPAL -> U71'(isQid)
ISNEPAL -> U71'(tt)
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 5
↳Usable Rules (Innermost)
↳CSRtoTRS
ISNEPAL -> U71'(tt)
ISPAL -> ISNEPAL
U71'(tt) -> ISPAL
isQid -> tt
innermost
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 6
↳Non Termination
↳CSRtoTRS
ISNEPAL -> U71'(tt)
ISPAL -> ISNEPAL
U71'(tt) -> ISPAL
none
innermost
ISNEPAL -> U71'(tt)
ISPAL -> ISNEPAL
U71'(tt) -> ISPAL
TRS
↳CSRtoTRS
↳CSR to TRS Transformation
U71(1,2)
U42(1)
U52(1)
U11(1)
U51(1,2)
U21(1,2)
U72(1)
isNePal(1)
isNeList(1)
U31(1)
(1, 2)
U22(1)
U81(1)
isPal(1)
U41(1,2)
U61(1)
isList(1)
isQid(1)
((X, Y), Z) -> (X, (Y, Z))
(X, nil) -> X
(nil, X) -> X
U11(tt) -> tt
U21(tt, V2) -> U22(isList(V2))
U22(tt) -> tt
U31(tt) -> tt
U41(tt, V2) -> U42(isNeList(V2))
U42(tt) -> tt
U51(tt, V2) -> U52(isList(V2))
U52(tt) -> tt
U61(tt) -> tt
U71(tt, P) -> U72(isPal(P))
U72(tt) -> tt
U81(tt) -> tt
isList(V) -> U11(isNeList(V))
isList(nil) -> tt
isList((V1, V2)) -> U21(isList(V1), V2)
isNeList(V) -> U31(isQid(V))
isNeList((V1, V2)) -> U41(isList(V1), V2)
isNeList((V1, V2)) -> U51(isNeList(V1), V2)
isNePal(V) -> U61(isQid(V))
isNePal((I, (P, I))) -> U71(isQid(I), P)
isPal(V) -> U81(isNePal(V))
isPal(nil) -> tt
isQid(a) -> tt
isQid(e) -> tt
isQid(i) -> tt
isQid(o) -> tt
isQid(u) -> tt
((X, Y), Z) -> (X, (Y, Z))
(X, nil) -> X
(nil, X) -> X
(x0, x1) -> (x0, x1)
nil -> nil
U11(tt) -> tt
U21(tt, V2) -> U22(isList(a(V2)))
U22(tt) -> tt
isList(V) -> U11(isNeList(a(V)))
isList(nil) -> tt
isList((V1, V2)) -> U21(isList(a(V1)), a(V2))
a(i) -> i
a(e) -> e
a((x0, x1)) -> (x0, x1)
a(o) -> o
a(nil) -> nil
a(a) -> a
a(u) -> u
U31(tt) -> tt
U41(tt, V2) -> U42(isNeList(a(V2)))
U42(tt) -> tt
isNeList(V) -> U31(isQid(a(V)))
isNeList((V1, V2)) -> U41(isList(a(V1)), a(V2))
isNeList((V1, V2)) -> U51(isNeList(a(V1)), a(V2))
U51(tt, V2) -> U52(isList(a(V2)))
U52(tt) -> tt
U61(tt) -> tt
U71(tt, P) -> U72(isPal(a(P)))
U72(tt) -> tt
isPal(V) -> U81(isNePal(a(V)))
isPal(nil) -> tt
U81(tt) -> tt
isQid(a) -> tt
isQid(e) -> tt
isQid(i) -> tt
isQid(o) -> tt
isQid(u) -> tt
isNePal(V) -> U61(isQid(a(V)))
isNePal((I, (P, I))) -> U71(isQid(a(I)), a(P))
i -> i
e -> e
o -> o
a -> a
u -> u
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳Removing Redundant Rules
((X, Y), Z) -> (X, (Y, Z))
(X, nil) -> X
(nil, X) -> X
isList((V1, V2)) -> U21(isList(a(V1)), a(V2))
isNeList((V1, V2)) -> U41(isList(a(V1)), a(V2))
isNeList((V1, V2)) -> U51(isNeList(a(V1)), a(V2))
isNePal((I, (P, I))) -> U71(isQid(a(I)), a(P))
was used.
POL(U71(x1, x2)) = x1 + x2 POL(i) = 0 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(_i_) = 0 POL(U51(x1, x2)) = x1 + x2 POL(*a*(x1)) = x1 POL(U21(x1, x2)) = x1 + x2 POL(nil) = 0 POL(U72(x1)) = x1 POL(isNePal(x1)) = x1 POL(_o_) = 0 POL(isNeList(x1)) = x1 POL(____(x1, x2)) = 1 + 2·x1 + x2 POL(U31(x1)) = x1 POL(e) = 0 POL(__(x1, x2)) = 1 + 2·x1 + x2 POL(_u_) = 0 POL(U22(x1)) = x1 POL(u) = 0 POL(U81(x1)) = x1 POL(_e_) = 0 POL(_nil_) = 0 POL(isPal(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(o) = 0 POL(tt) = 0 POL(U61(x1)) = x1 POL(a) = 0 POL(isList(x1)) = x1 POL(isQid(x1)) = x1 POL(_a_) = 0
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳RRRPolo
→TRS6
↳Removing Redundant Rules
isQid(e) -> tt
was used.
POL(U71(x1, x2)) = x1 + x2 POL(i) = 0 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(_i_) = 0 POL(U51(x1, x2)) = x1 + x2 POL(*a*(x1)) = x1 POL(U21(x1, x2)) = x1 + x2 POL(nil) = 0 POL(U72(x1)) = x1 POL(isNePal(x1)) = x1 POL(_o_) = 0 POL(isNeList(x1)) = x1 POL(____(x1, x2)) = x1 + x2 POL(U31(x1)) = x1 POL(e) = 1 POL(__(x1, x2)) = x1 + x2 POL(_u_) = 0 POL(U22(x1)) = x1 POL(u) = 0 POL(U81(x1)) = x1 POL(_e_) = 1 POL(_nil_) = 0 POL(isPal(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(o) = 0 POL(tt) = 0 POL(U61(x1)) = x1 POL(a) = 0 POL(isList(x1)) = x1 POL(isQid(x1)) = x1 POL(_a_) = 0
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳RRRPolo
→TRS6
↳RRRPolo
...
→TRS7
↳Removing Redundant Rules
isQid(u) -> tt
was used.
POL(U71(x1, x2)) = x1 + x2 POL(i) = 0 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(_i_) = 0 POL(U51(x1, x2)) = x1 + x2 POL(*a*(x1)) = x1 POL(U21(x1, x2)) = x1 + x2 POL(nil) = 0 POL(U72(x1)) = x1 POL(isNePal(x1)) = x1 POL(_o_) = 0 POL(isNeList(x1)) = x1 POL(____(x1, x2)) = x1 + x2 POL(U31(x1)) = x1 POL(e) = 0 POL(__(x1, x2)) = x1 + x2 POL(_u_) = 1 POL(U22(x1)) = x1 POL(u) = 1 POL(U81(x1)) = x1 POL(_e_) = 0 POL(_nil_) = 0 POL(isPal(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(o) = 0 POL(tt) = 0 POL(U61(x1)) = x1 POL(a) = 0 POL(isList(x1)) = x1 POL(isQid(x1)) = x1 POL(_a_) = 0
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳RRRPolo
→TRS6
↳RRRPolo
...
→TRS8
↳Removing Redundant Rules
isList(V) -> U11(isNeList(a(V)))
isList(nil) -> tt
was used.
POL(U71(x1, x2)) = x1 + x2 POL(i) = 0 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(_i_) = 0 POL(U51(x1, x2)) = 1 + x1 + x2 POL(*a*(x1)) = x1 POL(U21(x1, x2)) = 1 + x1 + x2 POL(nil) = 0 POL(U72(x1)) = x1 POL(isNePal(x1)) = x1 POL(_o_) = 0 POL(isNeList(x1)) = x1 POL(____(x1, x2)) = x1 + x2 POL(U31(x1)) = x1 POL(e) = 0 POL(__(x1, x2)) = x1 + x2 POL(_u_) = 0 POL(U22(x1)) = x1 POL(u) = 0 POL(U81(x1)) = x1 POL(_e_) = 0 POL(_nil_) = 0 POL(isPal(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(o) = 0 POL(tt) = 0 POL(U61(x1)) = x1 POL(a) = 0 POL(isList(x1)) = 1 + x1 POL(isQid(x1)) = x1 POL(_a_) = 0
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳RRRPolo
→TRS6
↳RRRPolo
...
→TRS9
↳Removing Redundant Rules
U61(tt) -> tt
isPal(nil) -> tt
was used.
POL(U71(x1, x2)) = 1 + x1 + x2 POL(i) = 0 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(U11(x1)) = x1 POL(_i_) = 0 POL(U51(x1, x2)) = x1 + x2 POL(*a*(x1)) = x1 POL(U21(x1, x2)) = x1 + x2 POL(nil) = 0 POL(U72(x1)) = x1 POL(isNePal(x1)) = 1 + x1 POL(_o_) = 0 POL(isNeList(x1)) = x1 POL(____(x1, x2)) = x1 + x2 POL(U31(x1)) = x1 POL(e) = 0 POL(__(x1, x2)) = x1 + x2 POL(_u_) = 0 POL(u) = 0 POL(U22(x1)) = x1 POL(U81(x1)) = x1 POL(_e_) = 0 POL(_nil_) = 0 POL(isPal(x1)) = 1 + x1 POL(U41(x1, x2)) = x1 + x2 POL(o) = 0 POL(tt) = 0 POL(U61(x1)) = 1 + x1 POL(a) = 0 POL(isList(x1)) = x1 POL(isQid(x1)) = x1 POL(_a_) = 0
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳RRRPolo
→TRS6
↳RRRPolo
...
→TRS10
↳Removing Redundant Rules
U52(tt) -> tt
was used.
POL(U71(x1, x2)) = x1 + x2 POL(i) = 0 POL(U42(x1)) = x1 POL(U52(x1)) = 1 + x1 POL(U11(x1)) = x1 POL(_i_) = 0 POL(U51(x1, x2)) = 1 + x1 + x2 POL(*a*(x1)) = x1 POL(U21(x1, x2)) = x1 + x2 POL(nil) = 0 POL(U72(x1)) = x1 POL(isNePal(x1)) = x1 POL(_o_) = 0 POL(isNeList(x1)) = x1 POL(____(x1, x2)) = x1 + x2 POL(U31(x1)) = x1 POL(e) = 0 POL(__(x1, x2)) = x1 + x2 POL(_u_) = 0 POL(u) = 0 POL(U22(x1)) = x1 POL(U81(x1)) = x1 POL(_e_) = 0 POL(_nil_) = 0 POL(isPal(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(tt) = 0 POL(o) = 0 POL(U61(x1)) = x1 POL(isList(x1)) = x1 POL(a) = 0 POL(isQid(x1)) = x1 POL(_a_) = 0
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳RRRPolo
→TRS6
↳RRRPolo
...
→TRS11
↳Overlay and local confluence Check
TRS
↳CSRtoTRS
↳CSRtoTRS
→TRS5
↳RRRPolo
→TRS6
↳RRRPolo
...
→TRS12
↳Dependency Pair Analysis
A(i) -> I
A(e) -> E
A(a) -> A
A(u) -> U
A(nil) -> NIL
A((x0, x1)) -> '(x0, x1)
A(o) -> O
ISPAL(V) -> U81'(isNePal(a(V)))
ISPAL(V) -> ISNEPAL(a(V))
ISPAL(V) -> A(V)
ISNEPAL(V) -> ISQID(a(V))
ISNEPAL(V) -> A(V)
U21'(tt, V2) -> U22'(isList(a(V2)))
U21'(tt, V2) -> A(V2)
ISNELIST(V) -> U31'(isQid(a(V)))
ISNELIST(V) -> ISQID(a(V))
ISNELIST(V) -> A(V)
U71'(tt, P) -> U72'(isPal(a(P)))
U71'(tt, P) -> ISPAL(a(P))
U71'(tt, P) -> A(P)
U41'(tt, V2) -> U42'(isNeList(a(V2)))
U41'(tt, V2) -> ISNELIST(a(V2))
U41'(tt, V2) -> A(V2)
U51'(tt, V2) -> A(V2)