7.98/3.01 YES 8.29/3.02 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 8.29/3.02 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 8.29/3.02 8.29/3.02 8.29/3.02 Termination w.r.t. Q of the given QTRS could be proven: 8.29/3.02 8.29/3.02 (0) QTRS 8.29/3.02 (1) QTRSToCSRProof [SOUND, 0 ms] 8.29/3.02 (2) CSR 8.29/3.02 (3) CSRRRRProof [EQUIVALENT, 99 ms] 8.29/3.02 (4) CSR 8.29/3.02 (5) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (6) CSR 8.29/3.02 (7) CSRRRRProof [EQUIVALENT, 11 ms] 8.29/3.02 (8) CSR 8.29/3.02 (9) CSRRRRProof [EQUIVALENT, 20 ms] 8.29/3.02 (10) CSR 8.29/3.02 (11) CSRRRRProof [EQUIVALENT, 11 ms] 8.29/3.02 (12) CSR 8.29/3.02 (13) CSRRRRProof [EQUIVALENT, 13 ms] 8.29/3.02 (14) CSR 8.29/3.02 (15) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (16) CSR 8.29/3.02 (17) CSRRRRProof [EQUIVALENT, 9 ms] 8.29/3.02 (18) CSR 8.29/3.02 (19) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (20) CSR 8.29/3.02 (21) CSRRRRProof [EQUIVALENT, 9 ms] 8.29/3.02 (22) CSR 8.29/3.02 (23) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (24) CSR 8.29/3.02 (25) CSRRRRProof [EQUIVALENT, 8 ms] 8.29/3.02 (26) CSR 8.29/3.02 (27) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (28) CSR 8.29/3.02 (29) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (30) CSR 8.29/3.02 (31) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (32) CSR 8.29/3.02 (33) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (34) CSR 8.29/3.02 (35) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (36) CSR 8.29/3.02 (37) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (38) CSR 8.29/3.02 (39) CSRRRRProof [EQUIVALENT, 7 ms] 8.29/3.02 (40) CSR 8.29/3.02 (41) CSRRRRProof [EQUIVALENT, 0 ms] 8.29/3.02 (42) CSR 8.29/3.02 (43) RisEmptyProof [EQUIVALENT, 0 ms] 8.29/3.02 (44) YES 8.29/3.02 8.29/3.02 8.29/3.02 ---------------------------------------- 8.29/3.02 8.29/3.02 (0) 8.29/3.02 Obligation: 8.29/3.02 Q restricted rewrite system: 8.29/3.02 The TRS R consists of the following rules: 8.29/3.02 8.29/3.02 active(__(__(X, Y), Z)) -> mark(__(X, __(Y, Z))) 8.29/3.02 active(__(X, nil)) -> mark(X) 8.29/3.02 active(__(nil, X)) -> mark(X) 8.29/3.02 active(U11(tt, V)) -> mark(U12(isNeList(V))) 8.29/3.02 active(U12(tt)) -> mark(tt) 8.29/3.02 active(U21(tt, V1, V2)) -> mark(U22(isList(V1), V2)) 8.29/3.02 active(U22(tt, V2)) -> mark(U23(isList(V2))) 8.29/3.02 active(U23(tt)) -> mark(tt) 8.29/3.02 active(U31(tt, V)) -> mark(U32(isQid(V))) 8.29/3.02 active(U32(tt)) -> mark(tt) 8.29/3.02 active(U41(tt, V1, V2)) -> mark(U42(isList(V1), V2)) 8.29/3.02 active(U42(tt, V2)) -> mark(U43(isNeList(V2))) 8.29/3.02 active(U43(tt)) -> mark(tt) 8.29/3.02 active(U51(tt, V1, V2)) -> mark(U52(isNeList(V1), V2)) 8.29/3.02 active(U52(tt, V2)) -> mark(U53(isList(V2))) 8.29/3.02 active(U53(tt)) -> mark(tt) 8.29/3.02 active(U61(tt, V)) -> mark(U62(isQid(V))) 8.29/3.03 active(U62(tt)) -> mark(tt) 8.29/3.03 active(U71(tt, V)) -> mark(U72(isNePal(V))) 8.29/3.03 active(U72(tt)) -> mark(tt) 8.29/3.03 active(and(tt, X)) -> mark(X) 8.29/3.03 active(isList(V)) -> mark(U11(isPalListKind(V), V)) 8.29/3.03 active(isList(nil)) -> mark(tt) 8.29/3.03 active(isList(__(V1, V2))) -> mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)) 8.29/3.03 active(isNeList(V)) -> mark(U31(isPalListKind(V), V)) 8.29/3.03 active(isNeList(__(V1, V2))) -> mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)) 8.29/3.03 active(isNeList(__(V1, V2))) -> mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)) 8.29/3.03 active(isNePal(V)) -> mark(U61(isPalListKind(V), V)) 8.29/3.03 active(isNePal(__(I, __(P, I)))) -> mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P)))) 8.29/3.03 active(isPal(V)) -> mark(U71(isPalListKind(V), V)) 8.29/3.03 active(isPal(nil)) -> mark(tt) 8.29/3.03 active(isPalListKind(a)) -> mark(tt) 8.29/3.03 active(isPalListKind(e)) -> mark(tt) 8.29/3.03 active(isPalListKind(i)) -> mark(tt) 8.29/3.03 active(isPalListKind(nil)) -> mark(tt) 8.29/3.03 active(isPalListKind(o)) -> mark(tt) 8.29/3.03 active(isPalListKind(u)) -> mark(tt) 8.29/3.03 active(isPalListKind(__(V1, V2))) -> mark(and(isPalListKind(V1), isPalListKind(V2))) 8.29/3.03 active(isQid(a)) -> mark(tt) 8.29/3.03 active(isQid(e)) -> mark(tt) 8.29/3.03 active(isQid(i)) -> mark(tt) 8.29/3.03 active(isQid(o)) -> mark(tt) 8.29/3.03 active(isQid(u)) -> mark(tt) 8.29/3.03 active(__(X1, X2)) -> __(active(X1), X2) 8.29/3.03 active(__(X1, X2)) -> __(X1, active(X2)) 8.29/3.03 active(U11(X1, X2)) -> U11(active(X1), X2) 8.29/3.03 active(U12(X)) -> U12(active(X)) 8.29/3.03 active(U21(X1, X2, X3)) -> U21(active(X1), X2, X3) 8.29/3.03 active(U22(X1, X2)) -> U22(active(X1), X2) 8.29/3.03 active(U23(X)) -> U23(active(X)) 8.29/3.03 active(U31(X1, X2)) -> U31(active(X1), X2) 8.29/3.03 active(U32(X)) -> U32(active(X)) 8.29/3.03 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 8.29/3.03 active(U42(X1, X2)) -> U42(active(X1), X2) 8.29/3.03 active(U43(X)) -> U43(active(X)) 8.29/3.03 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 8.29/3.03 active(U52(X1, X2)) -> U52(active(X1), X2) 8.29/3.03 active(U53(X)) -> U53(active(X)) 8.29/3.03 active(U61(X1, X2)) -> U61(active(X1), X2) 8.29/3.03 active(U62(X)) -> U62(active(X)) 8.29/3.03 active(U71(X1, X2)) -> U71(active(X1), X2) 8.29/3.03 active(U72(X)) -> U72(active(X)) 8.29/3.03 active(and(X1, X2)) -> and(active(X1), X2) 8.29/3.03 __(mark(X1), X2) -> mark(__(X1, X2)) 8.29/3.03 __(X1, mark(X2)) -> mark(__(X1, X2)) 8.29/3.03 U11(mark(X1), X2) -> mark(U11(X1, X2)) 8.29/3.03 U12(mark(X)) -> mark(U12(X)) 8.29/3.03 U21(mark(X1), X2, X3) -> mark(U21(X1, X2, X3)) 8.29/3.03 U22(mark(X1), X2) -> mark(U22(X1, X2)) 8.29/3.03 U23(mark(X)) -> mark(U23(X)) 8.29/3.03 U31(mark(X1), X2) -> mark(U31(X1, X2)) 8.29/3.03 U32(mark(X)) -> mark(U32(X)) 8.29/3.03 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 8.29/3.03 U42(mark(X1), X2) -> mark(U42(X1, X2)) 8.29/3.03 U43(mark(X)) -> mark(U43(X)) 8.29/3.03 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 8.29/3.03 U52(mark(X1), X2) -> mark(U52(X1, X2)) 8.29/3.03 U53(mark(X)) -> mark(U53(X)) 8.29/3.03 U61(mark(X1), X2) -> mark(U61(X1, X2)) 8.29/3.03 U62(mark(X)) -> mark(U62(X)) 8.29/3.03 U71(mark(X1), X2) -> mark(U71(X1, X2)) 8.29/3.03 U72(mark(X)) -> mark(U72(X)) 8.29/3.03 and(mark(X1), X2) -> mark(and(X1, X2)) 8.29/3.03 proper(__(X1, X2)) -> __(proper(X1), proper(X2)) 8.29/3.03 proper(nil) -> ok(nil) 8.29/3.03 proper(U11(X1, X2)) -> U11(proper(X1), proper(X2)) 8.29/3.03 proper(tt) -> ok(tt) 8.29/3.03 proper(U12(X)) -> U12(proper(X)) 8.29/3.03 proper(isNeList(X)) -> isNeList(proper(X)) 8.29/3.03 proper(U21(X1, X2, X3)) -> U21(proper(X1), proper(X2), proper(X3)) 8.29/3.03 proper(U22(X1, X2)) -> U22(proper(X1), proper(X2)) 8.29/3.03 proper(isList(X)) -> isList(proper(X)) 8.29/3.03 proper(U23(X)) -> U23(proper(X)) 8.29/3.03 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 8.29/3.03 proper(U32(X)) -> U32(proper(X)) 8.29/3.03 proper(isQid(X)) -> isQid(proper(X)) 8.29/3.03 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 8.29/3.03 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 8.29/3.03 proper(U43(X)) -> U43(proper(X)) 8.29/3.03 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 8.29/3.03 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 8.29/3.03 proper(U53(X)) -> U53(proper(X)) 8.29/3.03 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 8.29/3.03 proper(U62(X)) -> U62(proper(X)) 8.29/3.03 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 8.29/3.03 proper(U72(X)) -> U72(proper(X)) 8.29/3.03 proper(isNePal(X)) -> isNePal(proper(X)) 8.29/3.03 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 8.29/3.03 proper(isPalListKind(X)) -> isPalListKind(proper(X)) 8.29/3.03 proper(isPal(X)) -> isPal(proper(X)) 8.29/3.03 proper(a) -> ok(a) 8.29/3.03 proper(e) -> ok(e) 8.29/3.03 proper(i) -> ok(i) 8.29/3.03 proper(o) -> ok(o) 8.29/3.03 proper(u) -> ok(u) 8.29/3.03 __(ok(X1), ok(X2)) -> ok(__(X1, X2)) 8.29/3.03 U11(ok(X1), ok(X2)) -> ok(U11(X1, X2)) 8.29/3.03 U12(ok(X)) -> ok(U12(X)) 8.29/3.03 isNeList(ok(X)) -> ok(isNeList(X)) 8.29/3.03 U21(ok(X1), ok(X2), ok(X3)) -> ok(U21(X1, X2, X3)) 8.29/3.03 U22(ok(X1), ok(X2)) -> ok(U22(X1, X2)) 8.29/3.03 isList(ok(X)) -> ok(isList(X)) 8.29/3.03 U23(ok(X)) -> ok(U23(X)) 8.29/3.03 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 8.29/3.03 U32(ok(X)) -> ok(U32(X)) 8.29/3.03 isQid(ok(X)) -> ok(isQid(X)) 8.29/3.03 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 8.29/3.03 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 8.29/3.03 U43(ok(X)) -> ok(U43(X)) 8.29/3.03 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 8.29/3.03 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 8.29/3.03 U53(ok(X)) -> ok(U53(X)) 8.29/3.03 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 8.29/3.03 U62(ok(X)) -> ok(U62(X)) 8.29/3.03 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 8.29/3.03 U72(ok(X)) -> ok(U72(X)) 8.29/3.03 isNePal(ok(X)) -> ok(isNePal(X)) 8.29/3.03 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 8.29/3.03 isPalListKind(ok(X)) -> ok(isPalListKind(X)) 8.29/3.03 isPal(ok(X)) -> ok(isPal(X)) 8.29/3.03 top(mark(X)) -> top(proper(X)) 8.29/3.03 top(ok(X)) -> top(active(X)) 8.29/3.03 8.29/3.03 The set Q consists of the following terms: 8.29/3.03 8.29/3.03 active(isList(x0)) 8.29/3.03 active(isNeList(x0)) 8.29/3.03 active(isNePal(x0)) 8.29/3.03 active(isPal(x0)) 8.29/3.03 active(isPalListKind(a)) 8.29/3.03 active(isPalListKind(e)) 8.29/3.03 active(isPalListKind(i)) 8.29/3.03 active(isPalListKind(nil)) 8.29/3.03 active(isPalListKind(o)) 8.29/3.03 active(isPalListKind(u)) 8.29/3.03 active(isPalListKind(__(x0, x1))) 8.29/3.03 active(isQid(a)) 8.29/3.03 active(isQid(e)) 8.29/3.03 active(isQid(i)) 8.29/3.03 active(isQid(o)) 8.29/3.03 active(isQid(u)) 8.29/3.03 active(__(x0, x1)) 8.29/3.03 active(U11(x0, x1)) 8.29/3.03 active(U12(x0)) 8.29/3.03 active(U21(x0, x1, x2)) 8.29/3.03 active(U22(x0, x1)) 8.29/3.03 active(U23(x0)) 8.29/3.03 active(U31(x0, x1)) 8.29/3.03 active(U32(x0)) 8.29/3.03 active(U41(x0, x1, x2)) 8.29/3.03 active(U42(x0, x1)) 8.29/3.03 active(U43(x0)) 8.29/3.03 active(U51(x0, x1, x2)) 8.29/3.03 active(U52(x0, x1)) 8.29/3.03 active(U53(x0)) 8.29/3.03 active(U61(x0, x1)) 8.29/3.03 active(U62(x0)) 8.29/3.03 active(U71(x0, x1)) 8.29/3.03 active(U72(x0)) 8.29/3.03 active(and(x0, x1)) 8.29/3.03 __(mark(x0), x1) 8.29/3.03 __(x0, mark(x1)) 8.29/3.03 U11(mark(x0), x1) 8.29/3.03 U12(mark(x0)) 8.29/3.03 U21(mark(x0), x1, x2) 8.29/3.03 U22(mark(x0), x1) 8.29/3.03 U23(mark(x0)) 8.29/3.03 U31(mark(x0), x1) 8.29/3.03 U32(mark(x0)) 8.29/3.03 U41(mark(x0), x1, x2) 8.29/3.03 U42(mark(x0), x1) 8.29/3.03 U43(mark(x0)) 8.29/3.03 U51(mark(x0), x1, x2) 8.29/3.03 U52(mark(x0), x1) 8.29/3.03 U53(mark(x0)) 8.29/3.03 U61(mark(x0), x1) 8.29/3.03 U62(mark(x0)) 8.29/3.03 U71(mark(x0), x1) 8.29/3.03 U72(mark(x0)) 8.29/3.03 and(mark(x0), x1) 8.29/3.03 proper(__(x0, x1)) 8.29/3.03 proper(nil) 8.29/3.03 proper(U11(x0, x1)) 8.29/3.03 proper(tt) 8.29/3.03 proper(U12(x0)) 8.29/3.03 proper(isNeList(x0)) 8.29/3.03 proper(U21(x0, x1, x2)) 8.29/3.03 proper(U22(x0, x1)) 8.29/3.03 proper(isList(x0)) 8.29/3.03 proper(U23(x0)) 8.29/3.03 proper(U31(x0, x1)) 8.29/3.03 proper(U32(x0)) 8.29/3.03 proper(isQid(x0)) 8.29/3.03 proper(U41(x0, x1, x2)) 8.29/3.03 proper(U42(x0, x1)) 8.29/3.03 proper(U43(x0)) 8.29/3.03 proper(U51(x0, x1, x2)) 8.29/3.03 proper(U52(x0, x1)) 8.29/3.03 proper(U53(x0)) 8.29/3.03 proper(U61(x0, x1)) 8.29/3.03 proper(U62(x0)) 8.29/3.03 proper(U71(x0, x1)) 8.29/3.03 proper(U72(x0)) 8.29/3.03 proper(isNePal(x0)) 8.29/3.03 proper(and(x0, x1)) 8.29/3.03 proper(isPalListKind(x0)) 8.29/3.03 proper(isPal(x0)) 8.29/3.03 proper(a) 8.29/3.03 proper(e) 8.29/3.03 proper(i) 8.29/3.03 proper(o) 8.29/3.03 proper(u) 8.29/3.03 __(ok(x0), ok(x1)) 8.29/3.03 U11(ok(x0), ok(x1)) 8.29/3.03 U12(ok(x0)) 8.29/3.03 isNeList(ok(x0)) 8.29/3.03 U21(ok(x0), ok(x1), ok(x2)) 8.29/3.03 U22(ok(x0), ok(x1)) 8.29/3.03 isList(ok(x0)) 8.29/3.03 U23(ok(x0)) 8.29/3.03 U31(ok(x0), ok(x1)) 8.29/3.03 U32(ok(x0)) 8.29/3.03 isQid(ok(x0)) 8.29/3.03 U41(ok(x0), ok(x1), ok(x2)) 8.29/3.03 U42(ok(x0), ok(x1)) 8.29/3.03 U43(ok(x0)) 8.29/3.03 U51(ok(x0), ok(x1), ok(x2)) 8.29/3.03 U52(ok(x0), ok(x1)) 8.29/3.03 U53(ok(x0)) 8.29/3.03 U61(ok(x0), ok(x1)) 8.29/3.03 U62(ok(x0)) 8.29/3.03 U71(ok(x0), ok(x1)) 8.29/3.03 U72(ok(x0)) 8.29/3.03 isNePal(ok(x0)) 8.29/3.03 and(ok(x0), ok(x1)) 8.29/3.03 isPalListKind(ok(x0)) 8.29/3.03 isPal(ok(x0)) 8.29/3.03 top(mark(x0)) 8.29/3.03 top(ok(x0)) 8.29/3.03 8.29/3.03 8.29/3.03 ---------------------------------------- 8.29/3.03 8.29/3.03 (1) QTRSToCSRProof (SOUND) 8.29/3.03 The following Q TRS is given: Q restricted rewrite system: 8.29/3.03 The TRS R consists of the following rules: 8.29/3.03 8.29/3.03 active(__(__(X, Y), Z)) -> mark(__(X, __(Y, Z))) 8.29/3.03 active(__(X, nil)) -> mark(X) 8.29/3.03 active(__(nil, X)) -> mark(X) 8.29/3.03 active(U11(tt, V)) -> mark(U12(isNeList(V))) 8.29/3.03 active(U12(tt)) -> mark(tt) 8.29/3.03 active(U21(tt, V1, V2)) -> mark(U22(isList(V1), V2)) 8.29/3.03 active(U22(tt, V2)) -> mark(U23(isList(V2))) 8.29/3.03 active(U23(tt)) -> mark(tt) 8.29/3.03 active(U31(tt, V)) -> mark(U32(isQid(V))) 8.29/3.03 active(U32(tt)) -> mark(tt) 8.29/3.03 active(U41(tt, V1, V2)) -> mark(U42(isList(V1), V2)) 8.29/3.03 active(U42(tt, V2)) -> mark(U43(isNeList(V2))) 8.29/3.03 active(U43(tt)) -> mark(tt) 8.29/3.03 active(U51(tt, V1, V2)) -> mark(U52(isNeList(V1), V2)) 8.29/3.03 active(U52(tt, V2)) -> mark(U53(isList(V2))) 8.29/3.03 active(U53(tt)) -> mark(tt) 8.29/3.03 active(U61(tt, V)) -> mark(U62(isQid(V))) 8.29/3.03 active(U62(tt)) -> mark(tt) 8.29/3.03 active(U71(tt, V)) -> mark(U72(isNePal(V))) 8.29/3.03 active(U72(tt)) -> mark(tt) 8.29/3.03 active(and(tt, X)) -> mark(X) 8.29/3.03 active(isList(V)) -> mark(U11(isPalListKind(V), V)) 8.29/3.03 active(isList(nil)) -> mark(tt) 8.29/3.03 active(isList(__(V1, V2))) -> mark(U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)) 8.29/3.03 active(isNeList(V)) -> mark(U31(isPalListKind(V), V)) 8.29/3.03 active(isNeList(__(V1, V2))) -> mark(U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)) 8.29/3.03 active(isNeList(__(V1, V2))) -> mark(U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2)) 8.29/3.03 active(isNePal(V)) -> mark(U61(isPalListKind(V), V)) 8.29/3.03 active(isNePal(__(I, __(P, I)))) -> mark(and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P)))) 8.29/3.03 active(isPal(V)) -> mark(U71(isPalListKind(V), V)) 8.29/3.03 active(isPal(nil)) -> mark(tt) 8.29/3.03 active(isPalListKind(a)) -> mark(tt) 8.29/3.03 active(isPalListKind(e)) -> mark(tt) 8.29/3.03 active(isPalListKind(i)) -> mark(tt) 8.29/3.03 active(isPalListKind(nil)) -> mark(tt) 8.29/3.03 active(isPalListKind(o)) -> mark(tt) 8.29/3.03 active(isPalListKind(u)) -> mark(tt) 8.29/3.03 active(isPalListKind(__(V1, V2))) -> mark(and(isPalListKind(V1), isPalListKind(V2))) 8.29/3.03 active(isQid(a)) -> mark(tt) 8.29/3.03 active(isQid(e)) -> mark(tt) 8.29/3.03 active(isQid(i)) -> mark(tt) 8.29/3.03 active(isQid(o)) -> mark(tt) 8.29/3.03 active(isQid(u)) -> mark(tt) 8.29/3.03 active(__(X1, X2)) -> __(active(X1), X2) 8.29/3.03 active(__(X1, X2)) -> __(X1, active(X2)) 8.29/3.03 active(U11(X1, X2)) -> U11(active(X1), X2) 8.29/3.03 active(U12(X)) -> U12(active(X)) 8.29/3.03 active(U21(X1, X2, X3)) -> U21(active(X1), X2, X3) 8.29/3.03 active(U22(X1, X2)) -> U22(active(X1), X2) 8.29/3.03 active(U23(X)) -> U23(active(X)) 8.29/3.03 active(U31(X1, X2)) -> U31(active(X1), X2) 8.29/3.03 active(U32(X)) -> U32(active(X)) 8.29/3.03 active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3) 8.29/3.03 active(U42(X1, X2)) -> U42(active(X1), X2) 8.29/3.03 active(U43(X)) -> U43(active(X)) 8.29/3.03 active(U51(X1, X2, X3)) -> U51(active(X1), X2, X3) 8.29/3.03 active(U52(X1, X2)) -> U52(active(X1), X2) 8.29/3.03 active(U53(X)) -> U53(active(X)) 8.29/3.03 active(U61(X1, X2)) -> U61(active(X1), X2) 8.29/3.03 active(U62(X)) -> U62(active(X)) 8.29/3.03 active(U71(X1, X2)) -> U71(active(X1), X2) 8.29/3.03 active(U72(X)) -> U72(active(X)) 8.29/3.03 active(and(X1, X2)) -> and(active(X1), X2) 8.29/3.03 __(mark(X1), X2) -> mark(__(X1, X2)) 8.29/3.03 __(X1, mark(X2)) -> mark(__(X1, X2)) 8.29/3.03 U11(mark(X1), X2) -> mark(U11(X1, X2)) 8.29/3.03 U12(mark(X)) -> mark(U12(X)) 8.29/3.03 U21(mark(X1), X2, X3) -> mark(U21(X1, X2, X3)) 8.29/3.03 U22(mark(X1), X2) -> mark(U22(X1, X2)) 8.29/3.03 U23(mark(X)) -> mark(U23(X)) 8.29/3.03 U31(mark(X1), X2) -> mark(U31(X1, X2)) 8.29/3.03 U32(mark(X)) -> mark(U32(X)) 8.29/3.03 U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)) 8.29/3.03 U42(mark(X1), X2) -> mark(U42(X1, X2)) 8.29/3.03 U43(mark(X)) -> mark(U43(X)) 8.29/3.03 U51(mark(X1), X2, X3) -> mark(U51(X1, X2, X3)) 8.29/3.03 U52(mark(X1), X2) -> mark(U52(X1, X2)) 8.29/3.03 U53(mark(X)) -> mark(U53(X)) 8.29/3.03 U61(mark(X1), X2) -> mark(U61(X1, X2)) 8.29/3.03 U62(mark(X)) -> mark(U62(X)) 8.29/3.03 U71(mark(X1), X2) -> mark(U71(X1, X2)) 8.29/3.03 U72(mark(X)) -> mark(U72(X)) 8.29/3.03 and(mark(X1), X2) -> mark(and(X1, X2)) 8.29/3.03 proper(__(X1, X2)) -> __(proper(X1), proper(X2)) 8.29/3.03 proper(nil) -> ok(nil) 8.29/3.03 proper(U11(X1, X2)) -> U11(proper(X1), proper(X2)) 8.29/3.03 proper(tt) -> ok(tt) 8.29/3.03 proper(U12(X)) -> U12(proper(X)) 8.29/3.03 proper(isNeList(X)) -> isNeList(proper(X)) 8.29/3.03 proper(U21(X1, X2, X3)) -> U21(proper(X1), proper(X2), proper(X3)) 8.29/3.03 proper(U22(X1, X2)) -> U22(proper(X1), proper(X2)) 8.29/3.03 proper(isList(X)) -> isList(proper(X)) 8.29/3.03 proper(U23(X)) -> U23(proper(X)) 8.29/3.03 proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)) 8.29/3.03 proper(U32(X)) -> U32(proper(X)) 8.29/3.03 proper(isQid(X)) -> isQid(proper(X)) 8.29/3.03 proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)) 8.29/3.03 proper(U42(X1, X2)) -> U42(proper(X1), proper(X2)) 8.29/3.03 proper(U43(X)) -> U43(proper(X)) 8.29/3.03 proper(U51(X1, X2, X3)) -> U51(proper(X1), proper(X2), proper(X3)) 8.29/3.03 proper(U52(X1, X2)) -> U52(proper(X1), proper(X2)) 8.29/3.03 proper(U53(X)) -> U53(proper(X)) 8.29/3.03 proper(U61(X1, X2)) -> U61(proper(X1), proper(X2)) 8.29/3.03 proper(U62(X)) -> U62(proper(X)) 8.29/3.03 proper(U71(X1, X2)) -> U71(proper(X1), proper(X2)) 8.29/3.03 proper(U72(X)) -> U72(proper(X)) 8.29/3.03 proper(isNePal(X)) -> isNePal(proper(X)) 8.29/3.03 proper(and(X1, X2)) -> and(proper(X1), proper(X2)) 8.29/3.03 proper(isPalListKind(X)) -> isPalListKind(proper(X)) 8.29/3.03 proper(isPal(X)) -> isPal(proper(X)) 8.29/3.03 proper(a) -> ok(a) 8.29/3.03 proper(e) -> ok(e) 8.29/3.03 proper(i) -> ok(i) 8.29/3.03 proper(o) -> ok(o) 8.29/3.03 proper(u) -> ok(u) 8.29/3.03 __(ok(X1), ok(X2)) -> ok(__(X1, X2)) 8.29/3.03 U11(ok(X1), ok(X2)) -> ok(U11(X1, X2)) 8.29/3.03 U12(ok(X)) -> ok(U12(X)) 8.29/3.03 isNeList(ok(X)) -> ok(isNeList(X)) 8.29/3.03 U21(ok(X1), ok(X2), ok(X3)) -> ok(U21(X1, X2, X3)) 8.29/3.03 U22(ok(X1), ok(X2)) -> ok(U22(X1, X2)) 8.29/3.03 isList(ok(X)) -> ok(isList(X)) 8.29/3.03 U23(ok(X)) -> ok(U23(X)) 8.29/3.03 U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)) 8.29/3.03 U32(ok(X)) -> ok(U32(X)) 8.29/3.03 isQid(ok(X)) -> ok(isQid(X)) 8.29/3.03 U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)) 8.29/3.03 U42(ok(X1), ok(X2)) -> ok(U42(X1, X2)) 8.29/3.03 U43(ok(X)) -> ok(U43(X)) 8.29/3.03 U51(ok(X1), ok(X2), ok(X3)) -> ok(U51(X1, X2, X3)) 8.29/3.03 U52(ok(X1), ok(X2)) -> ok(U52(X1, X2)) 8.29/3.03 U53(ok(X)) -> ok(U53(X)) 8.29/3.03 U61(ok(X1), ok(X2)) -> ok(U61(X1, X2)) 8.29/3.03 U62(ok(X)) -> ok(U62(X)) 8.29/3.03 U71(ok(X1), ok(X2)) -> ok(U71(X1, X2)) 8.29/3.03 U72(ok(X)) -> ok(U72(X)) 8.29/3.03 isNePal(ok(X)) -> ok(isNePal(X)) 8.29/3.03 and(ok(X1), ok(X2)) -> ok(and(X1, X2)) 8.29/3.03 isPalListKind(ok(X)) -> ok(isPalListKind(X)) 8.29/3.03 isPal(ok(X)) -> ok(isPal(X)) 8.29/3.03 top(mark(X)) -> top(proper(X)) 8.29/3.03 top(ok(X)) -> top(active(X)) 8.29/3.03 8.29/3.03 The set Q consists of the following terms: 8.29/3.03 8.29/3.03 active(isList(x0)) 8.29/3.03 active(isNeList(x0)) 8.29/3.03 active(isNePal(x0)) 8.29/3.03 active(isPal(x0)) 8.29/3.03 active(isPalListKind(a)) 8.29/3.03 active(isPalListKind(e)) 8.29/3.03 active(isPalListKind(i)) 8.29/3.03 active(isPalListKind(nil)) 8.29/3.03 active(isPalListKind(o)) 8.29/3.03 active(isPalListKind(u)) 8.29/3.03 active(isPalListKind(__(x0, x1))) 8.29/3.03 active(isQid(a)) 8.29/3.03 active(isQid(e)) 8.29/3.03 active(isQid(i)) 8.29/3.03 active(isQid(o)) 8.29/3.03 active(isQid(u)) 8.29/3.03 active(__(x0, x1)) 8.29/3.03 active(U11(x0, x1)) 8.29/3.03 active(U12(x0)) 8.29/3.03 active(U21(x0, x1, x2)) 8.29/3.03 active(U22(x0, x1)) 8.29/3.03 active(U23(x0)) 8.29/3.03 active(U31(x0, x1)) 8.29/3.03 active(U32(x0)) 8.29/3.03 active(U41(x0, x1, x2)) 8.29/3.03 active(U42(x0, x1)) 8.29/3.03 active(U43(x0)) 8.29/3.03 active(U51(x0, x1, x2)) 8.29/3.03 active(U52(x0, x1)) 8.29/3.03 active(U53(x0)) 8.29/3.03 active(U61(x0, x1)) 8.29/3.03 active(U62(x0)) 8.29/3.03 active(U71(x0, x1)) 8.29/3.03 active(U72(x0)) 8.29/3.03 active(and(x0, x1)) 8.29/3.03 __(mark(x0), x1) 8.29/3.03 __(x0, mark(x1)) 8.29/3.03 U11(mark(x0), x1) 8.29/3.03 U12(mark(x0)) 8.29/3.03 U21(mark(x0), x1, x2) 8.29/3.03 U22(mark(x0), x1) 8.29/3.03 U23(mark(x0)) 8.29/3.03 U31(mark(x0), x1) 8.29/3.03 U32(mark(x0)) 8.29/3.03 U41(mark(x0), x1, x2) 8.29/3.03 U42(mark(x0), x1) 8.29/3.03 U43(mark(x0)) 8.29/3.03 U51(mark(x0), x1, x2) 8.29/3.03 U52(mark(x0), x1) 8.29/3.03 U53(mark(x0)) 8.29/3.03 U61(mark(x0), x1) 8.29/3.03 U62(mark(x0)) 8.29/3.03 U71(mark(x0), x1) 8.29/3.03 U72(mark(x0)) 8.29/3.03 and(mark(x0), x1) 8.29/3.03 proper(__(x0, x1)) 8.29/3.03 proper(nil) 8.29/3.03 proper(U11(x0, x1)) 8.29/3.03 proper(tt) 8.29/3.03 proper(U12(x0)) 8.29/3.03 proper(isNeList(x0)) 8.29/3.03 proper(U21(x0, x1, x2)) 8.29/3.03 proper(U22(x0, x1)) 8.29/3.03 proper(isList(x0)) 8.29/3.03 proper(U23(x0)) 8.29/3.03 proper(U31(x0, x1)) 8.29/3.03 proper(U32(x0)) 8.29/3.03 proper(isQid(x0)) 8.29/3.03 proper(U41(x0, x1, x2)) 8.29/3.03 proper(U42(x0, x1)) 8.29/3.03 proper(U43(x0)) 8.29/3.03 proper(U51(x0, x1, x2)) 8.29/3.03 proper(U52(x0, x1)) 8.29/3.03 proper(U53(x0)) 8.29/3.03 proper(U61(x0, x1)) 8.29/3.03 proper(U62(x0)) 8.29/3.03 proper(U71(x0, x1)) 8.29/3.03 proper(U72(x0)) 8.29/3.03 proper(isNePal(x0)) 8.29/3.03 proper(and(x0, x1)) 8.29/3.03 proper(isPalListKind(x0)) 8.29/3.03 proper(isPal(x0)) 8.29/3.03 proper(a) 8.29/3.03 proper(e) 8.29/3.03 proper(i) 8.29/3.03 proper(o) 8.29/3.03 proper(u) 8.29/3.03 __(ok(x0), ok(x1)) 8.29/3.03 U11(ok(x0), ok(x1)) 8.29/3.03 U12(ok(x0)) 8.29/3.03 isNeList(ok(x0)) 8.29/3.03 U21(ok(x0), ok(x1), ok(x2)) 8.29/3.03 U22(ok(x0), ok(x1)) 8.29/3.03 isList(ok(x0)) 8.29/3.03 U23(ok(x0)) 8.29/3.03 U31(ok(x0), ok(x1)) 8.29/3.03 U32(ok(x0)) 8.29/3.03 isQid(ok(x0)) 8.29/3.03 U41(ok(x0), ok(x1), ok(x2)) 8.29/3.03 U42(ok(x0), ok(x1)) 8.29/3.03 U43(ok(x0)) 8.29/3.03 U51(ok(x0), ok(x1), ok(x2)) 8.29/3.03 U52(ok(x0), ok(x1)) 8.29/3.03 U53(ok(x0)) 8.29/3.03 U61(ok(x0), ok(x1)) 8.29/3.03 U62(ok(x0)) 8.29/3.03 U71(ok(x0), ok(x1)) 8.29/3.03 U72(ok(x0)) 8.29/3.03 isNePal(ok(x0)) 8.29/3.03 and(ok(x0), ok(x1)) 8.29/3.03 isPalListKind(ok(x0)) 8.29/3.03 isPal(ok(x0)) 8.29/3.03 top(mark(x0)) 8.29/3.03 top(ok(x0)) 8.29/3.03 8.29/3.03 Special symbols used for the transformation (see [GM04]): 8.29/3.03 top: top_1, active: active_1, mark: mark_1, ok: ok_1, proper: proper_1 8.29/3.03 The replacement map contains the following entries: 8.29/3.03 8.29/3.03 __: {1, 2} 8.29/3.03 nil: empty set 8.29/3.03 U11: {1} 8.29/3.03 tt: empty set 8.29/3.03 U12: {1} 8.29/3.03 isNeList: empty set 8.29/3.03 U21: {1} 8.29/3.03 U22: {1} 8.29/3.03 isList: empty set 8.29/3.03 U23: {1} 8.29/3.03 U31: {1} 8.29/3.03 U32: {1} 8.29/3.03 isQid: empty set 8.29/3.03 U41: {1} 8.29/3.03 U42: {1} 8.29/3.03 U43: {1} 8.29/3.03 U51: {1} 8.29/3.03 U52: {1} 8.29/3.03 U53: {1} 8.29/3.03 U61: {1} 8.29/3.03 U62: {1} 8.29/3.03 U71: {1} 8.29/3.03 U72: {1} 8.29/3.03 isNePal: empty set 8.29/3.03 and: {1} 8.29/3.03 isPalListKind: empty set 8.29/3.03 isPal: empty set 8.29/3.03 a: empty set 8.29/3.03 e: empty set 8.29/3.03 i: empty set 8.29/3.03 o: empty set 8.29/3.03 u: empty set 8.29/3.03 The QTRS contained just a subset of rules created by the complete Giesl-Middeldorp transformation. Therefore, the inverse transformation is sound, but not necessarily complete. 8.29/3.03 ---------------------------------------- 8.29/3.03 8.29/3.03 (2) 8.29/3.03 Obligation: 8.29/3.03 Context-sensitive rewrite system: 8.29/3.03 The TRS R consists of the following rules: 8.29/3.03 8.29/3.03 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.03 __(X, nil) -> X 8.29/3.03 __(nil, X) -> X 8.29/3.03 U11(tt, V) -> U12(isNeList(V)) 8.29/3.03 U12(tt) -> tt 8.29/3.03 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.03 U22(tt, V2) -> U23(isList(V2)) 8.29/3.03 U23(tt) -> tt 8.29/3.03 U31(tt, V) -> U32(isQid(V)) 8.29/3.03 U32(tt) -> tt 8.29/3.03 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.03 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.03 U43(tt) -> tt 8.29/3.03 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.03 U52(tt, V2) -> U53(isList(V2)) 8.29/3.03 U53(tt) -> tt 8.29/3.03 U61(tt, V) -> U62(isQid(V)) 8.29/3.03 U62(tt) -> tt 8.29/3.03 U71(tt, V) -> U72(isNePal(V)) 8.29/3.03 U72(tt) -> tt 8.29/3.03 and(tt, X) -> X 8.29/3.03 isList(V) -> U11(isPalListKind(V), V) 8.29/3.03 isList(nil) -> tt 8.29/3.03 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.03 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.03 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 8.29/3.03 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.03 isPal(nil) -> tt 8.29/3.03 isPalListKind(a) -> tt 8.29/3.03 isPalListKind(e) -> tt 8.29/3.03 isPalListKind(i) -> tt 8.29/3.03 isPalListKind(nil) -> tt 8.29/3.03 isPalListKind(o) -> tt 8.29/3.03 isPalListKind(u) -> tt 8.29/3.03 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.03 isQid(a) -> tt 8.29/3.03 isQid(e) -> tt 8.29/3.03 isQid(i) -> tt 8.29/3.03 isQid(o) -> tt 8.29/3.03 isQid(u) -> tt 8.29/3.03 8.29/3.03 The replacement map contains the following entries: 8.29/3.03 8.29/3.03 __: {1, 2} 8.29/3.03 nil: empty set 8.29/3.03 U11: {1} 8.29/3.03 tt: empty set 8.29/3.03 U12: {1} 8.29/3.03 isNeList: empty set 8.29/3.03 U21: {1} 8.29/3.03 U22: {1} 8.29/3.03 isList: empty set 8.29/3.03 U23: {1} 8.29/3.03 U31: {1} 8.29/3.03 U32: {1} 8.29/3.03 isQid: empty set 8.29/3.03 U41: {1} 8.29/3.03 U42: {1} 8.29/3.03 U43: {1} 8.29/3.03 U51: {1} 8.29/3.03 U52: {1} 8.29/3.03 U53: {1} 8.29/3.03 U61: {1} 8.29/3.03 U62: {1} 8.29/3.03 U71: {1} 8.29/3.03 U72: {1} 8.29/3.03 isNePal: empty set 8.29/3.03 and: {1} 8.29/3.03 isPalListKind: empty set 8.29/3.03 isPal: empty set 8.29/3.03 a: empty set 8.29/3.03 e: empty set 8.29/3.03 i: empty set 8.29/3.03 o: empty set 8.29/3.03 u: empty set 8.29/3.03 8.29/3.03 ---------------------------------------- 8.29/3.03 8.29/3.03 (3) CSRRRRProof (EQUIVALENT) 8.29/3.03 The following CSR is given: Context-sensitive rewrite system: 8.29/3.03 The TRS R consists of the following rules: 8.29/3.03 8.29/3.03 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.03 __(X, nil) -> X 8.29/3.03 __(nil, X) -> X 8.29/3.03 U11(tt, V) -> U12(isNeList(V)) 8.29/3.03 U12(tt) -> tt 8.29/3.03 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.03 U22(tt, V2) -> U23(isList(V2)) 8.29/3.03 U23(tt) -> tt 8.29/3.03 U31(tt, V) -> U32(isQid(V)) 8.29/3.03 U32(tt) -> tt 8.29/3.03 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.03 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.03 U43(tt) -> tt 8.29/3.03 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.03 U52(tt, V2) -> U53(isList(V2)) 8.29/3.03 U53(tt) -> tt 8.29/3.03 U61(tt, V) -> U62(isQid(V)) 8.29/3.03 U62(tt) -> tt 8.29/3.03 U71(tt, V) -> U72(isNePal(V)) 8.29/3.03 U72(tt) -> tt 8.29/3.03 and(tt, X) -> X 8.29/3.03 isList(V) -> U11(isPalListKind(V), V) 8.29/3.03 isList(nil) -> tt 8.29/3.03 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.03 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.03 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 8.29/3.03 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.03 isPal(nil) -> tt 8.29/3.03 isPalListKind(a) -> tt 8.29/3.03 isPalListKind(e) -> tt 8.29/3.03 isPalListKind(i) -> tt 8.29/3.03 isPalListKind(nil) -> tt 8.29/3.03 isPalListKind(o) -> tt 8.29/3.03 isPalListKind(u) -> tt 8.29/3.03 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.03 isQid(a) -> tt 8.29/3.03 isQid(e) -> tt 8.29/3.03 isQid(i) -> tt 8.29/3.03 isQid(o) -> tt 8.29/3.03 isQid(u) -> tt 8.29/3.03 8.29/3.03 The replacement map contains the following entries: 8.29/3.03 8.29/3.03 __: {1, 2} 8.29/3.03 nil: empty set 8.29/3.03 U11: {1} 8.29/3.03 tt: empty set 8.29/3.03 U12: {1} 8.29/3.03 isNeList: empty set 8.29/3.03 U21: {1} 8.29/3.03 U22: {1} 8.29/3.03 isList: empty set 8.29/3.03 U23: {1} 8.29/3.03 U31: {1} 8.29/3.03 U32: {1} 8.29/3.03 isQid: empty set 8.29/3.03 U41: {1} 8.29/3.03 U42: {1} 8.29/3.03 U43: {1} 8.29/3.03 U51: {1} 8.29/3.03 U52: {1} 8.29/3.03 U53: {1} 8.29/3.03 U61: {1} 8.29/3.03 U62: {1} 8.29/3.03 U71: {1} 8.29/3.03 U72: {1} 8.29/3.03 isNePal: empty set 8.29/3.03 and: {1} 8.29/3.03 isPalListKind: empty set 8.29/3.03 isPal: empty set 8.29/3.03 a: empty set 8.29/3.03 e: empty set 8.29/3.03 i: empty set 8.29/3.03 o: empty set 8.29/3.03 u: empty set 8.29/3.03 Used ordering: 8.29/3.03 Polynomial interpretation [POLO]: 8.29/3.03 8.29/3.03 POL(U11(x_1, x_2)) = x_1 8.29/3.03 POL(U12(x_1)) = x_1 8.29/3.03 POL(U21(x_1, x_2, x_3)) = x_1 8.29/3.03 POL(U22(x_1, x_2)) = 2*x_1 8.29/3.03 POL(U23(x_1)) = 2*x_1 8.29/3.03 POL(U31(x_1, x_2)) = 2*x_1 8.29/3.03 POL(U32(x_1)) = 2*x_1 8.29/3.03 POL(U41(x_1, x_2, x_3)) = x_1 8.29/3.03 POL(U42(x_1, x_2)) = 2*x_1 8.29/3.03 POL(U43(x_1)) = 2*x_1 8.29/3.03 POL(U51(x_1, x_2, x_3)) = x_1 8.29/3.03 POL(U52(x_1, x_2)) = 2*x_1 8.29/3.03 POL(U53(x_1)) = 2*x_1 8.29/3.03 POL(U61(x_1, x_2)) = 2*x_1 8.29/3.03 POL(U62(x_1)) = 2*x_1 8.29/3.03 POL(U71(x_1, x_2)) = 2*x_1 8.29/3.03 POL(U72(x_1)) = 2*x_1 8.29/3.03 POL(__(x_1, x_2)) = x_1 + x_2 8.29/3.03 POL(a) = 0 8.29/3.03 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.03 POL(e) = 0 8.29/3.03 POL(i) = 0 8.29/3.03 POL(isList(x_1)) = 0 8.29/3.03 POL(isNeList(x_1)) = 0 8.29/3.03 POL(isNePal(x_1)) = 0 8.29/3.03 POL(isPal(x_1)) = 0 8.29/3.03 POL(isPalListKind(x_1)) = 0 8.29/3.03 POL(isQid(x_1)) = 0 8.29/3.03 POL(nil) = 1 8.29/3.03 POL(o) = 0 8.29/3.03 POL(tt) = 0 8.29/3.03 POL(u) = 0 8.29/3.03 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.03 8.29/3.03 __(X, nil) -> X 8.29/3.03 __(nil, X) -> X 8.29/3.03 8.29/3.03 8.29/3.03 8.29/3.03 8.29/3.03 ---------------------------------------- 8.29/3.03 8.29/3.03 (4) 8.29/3.03 Obligation: 8.29/3.03 Context-sensitive rewrite system: 8.29/3.03 The TRS R consists of the following rules: 8.29/3.03 8.29/3.03 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.03 U11(tt, V) -> U12(isNeList(V)) 8.29/3.03 U12(tt) -> tt 8.29/3.03 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.03 U22(tt, V2) -> U23(isList(V2)) 8.29/3.03 U23(tt) -> tt 8.29/3.03 U31(tt, V) -> U32(isQid(V)) 8.29/3.03 U32(tt) -> tt 8.29/3.03 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.03 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.03 U43(tt) -> tt 8.29/3.03 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.03 U52(tt, V2) -> U53(isList(V2)) 8.29/3.03 U53(tt) -> tt 8.29/3.03 U61(tt, V) -> U62(isQid(V)) 8.29/3.03 U62(tt) -> tt 8.29/3.03 U71(tt, V) -> U72(isNePal(V)) 8.29/3.03 U72(tt) -> tt 8.29/3.03 and(tt, X) -> X 8.29/3.03 isList(V) -> U11(isPalListKind(V), V) 8.29/3.03 isList(nil) -> tt 8.29/3.03 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.03 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.03 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 8.29/3.03 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.03 isPal(nil) -> tt 8.29/3.03 isPalListKind(a) -> tt 8.29/3.03 isPalListKind(e) -> tt 8.29/3.03 isPalListKind(i) -> tt 8.29/3.03 isPalListKind(nil) -> tt 8.29/3.03 isPalListKind(o) -> tt 8.29/3.03 isPalListKind(u) -> tt 8.29/3.03 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.03 isQid(a) -> tt 8.29/3.03 isQid(e) -> tt 8.29/3.03 isQid(i) -> tt 8.29/3.03 isQid(o) -> tt 8.29/3.03 isQid(u) -> tt 8.29/3.03 8.29/3.03 The replacement map contains the following entries: 8.29/3.03 8.29/3.03 __: {1, 2} 8.29/3.03 nil: empty set 8.29/3.03 U11: {1} 8.29/3.03 tt: empty set 8.29/3.03 U12: {1} 8.29/3.03 isNeList: empty set 8.29/3.03 U21: {1} 8.29/3.03 U22: {1} 8.29/3.03 isList: empty set 8.29/3.03 U23: {1} 8.29/3.03 U31: {1} 8.29/3.03 U32: {1} 8.29/3.03 isQid: empty set 8.29/3.03 U41: {1} 8.29/3.03 U42: {1} 8.29/3.03 U43: {1} 8.29/3.03 U51: {1} 8.29/3.03 U52: {1} 8.29/3.03 U53: {1} 8.29/3.03 U61: {1} 8.29/3.03 U62: {1} 8.29/3.03 U71: {1} 8.29/3.03 U72: {1} 8.29/3.03 isNePal: empty set 8.29/3.03 and: {1} 8.29/3.03 isPalListKind: empty set 8.29/3.03 isPal: empty set 8.29/3.03 a: empty set 8.29/3.03 e: empty set 8.29/3.03 i: empty set 8.29/3.03 o: empty set 8.29/3.03 u: empty set 8.29/3.03 8.29/3.03 ---------------------------------------- 8.29/3.03 8.29/3.03 (5) CSRRRRProof (EQUIVALENT) 8.29/3.03 The following CSR is given: Context-sensitive rewrite system: 8.29/3.03 The TRS R consists of the following rules: 8.29/3.03 8.29/3.03 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.03 U11(tt, V) -> U12(isNeList(V)) 8.29/3.03 U12(tt) -> tt 8.29/3.03 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.03 U22(tt, V2) -> U23(isList(V2)) 8.29/3.03 U23(tt) -> tt 8.29/3.03 U31(tt, V) -> U32(isQid(V)) 8.29/3.03 U32(tt) -> tt 8.29/3.03 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.03 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.03 U43(tt) -> tt 8.29/3.03 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.03 U52(tt, V2) -> U53(isList(V2)) 8.29/3.03 U53(tt) -> tt 8.29/3.03 U61(tt, V) -> U62(isQid(V)) 8.29/3.03 U62(tt) -> tt 8.29/3.03 U71(tt, V) -> U72(isNePal(V)) 8.29/3.03 U72(tt) -> tt 8.29/3.03 and(tt, X) -> X 8.29/3.03 isList(V) -> U11(isPalListKind(V), V) 8.29/3.03 isList(nil) -> tt 8.29/3.03 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.03 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.03 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 8.29/3.03 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.03 isPal(nil) -> tt 8.29/3.03 isPalListKind(a) -> tt 8.29/3.03 isPalListKind(e) -> tt 8.29/3.03 isPalListKind(i) -> tt 8.29/3.03 isPalListKind(nil) -> tt 8.29/3.03 isPalListKind(o) -> tt 8.29/3.03 isPalListKind(u) -> tt 8.29/3.03 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.03 isQid(a) -> tt 8.29/3.03 isQid(e) -> tt 8.29/3.03 isQid(i) -> tt 8.29/3.03 isQid(o) -> tt 8.29/3.03 isQid(u) -> tt 8.29/3.03 8.29/3.03 The replacement map contains the following entries: 8.29/3.03 8.29/3.03 __: {1, 2} 8.29/3.03 nil: empty set 8.29/3.03 U11: {1} 8.29/3.03 tt: empty set 8.29/3.03 U12: {1} 8.29/3.03 isNeList: empty set 8.29/3.03 U21: {1} 8.29/3.03 U22: {1} 8.29/3.03 isList: empty set 8.29/3.03 U23: {1} 8.29/3.03 U31: {1} 8.29/3.03 U32: {1} 8.29/3.03 isQid: empty set 8.29/3.03 U41: {1} 8.29/3.03 U42: {1} 8.29/3.03 U43: {1} 8.29/3.03 U51: {1} 8.29/3.03 U52: {1} 8.29/3.03 U53: {1} 8.29/3.03 U61: {1} 8.29/3.03 U62: {1} 8.29/3.03 U71: {1} 8.29/3.03 U72: {1} 8.29/3.03 isNePal: empty set 8.29/3.03 and: {1} 8.29/3.03 isPalListKind: empty set 8.29/3.03 isPal: empty set 8.29/3.03 a: empty set 8.29/3.03 e: empty set 8.29/3.03 i: empty set 8.29/3.03 o: empty set 8.29/3.03 u: empty set 8.29/3.03 Used ordering: 8.29/3.03 Polynomial interpretation [POLO]: 8.29/3.03 8.29/3.03 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.03 POL(U12(x_1)) = x_1 8.29/3.03 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.03 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.03 POL(U23(x_1)) = 1 + x_1 8.29/3.03 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.03 POL(U32(x_1)) = x_1 8.29/3.03 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.03 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.03 POL(U43(x_1)) = 1 + x_1 8.29/3.03 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.03 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.03 POL(U53(x_1)) = 1 + x_1 8.29/3.03 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.03 POL(U62(x_1)) = 1 + x_1 8.29/3.03 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.03 POL(U72(x_1)) = x_1 8.29/3.03 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.03 POL(a) = 0 8.29/3.03 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.03 POL(e) = 0 8.29/3.03 POL(i) = 1 8.29/3.03 POL(isList(x_1)) = x_1 8.29/3.03 POL(isNeList(x_1)) = x_1 8.29/3.03 POL(isNePal(x_1)) = 1 + x_1 8.29/3.03 POL(isPal(x_1)) = 1 + x_1 8.29/3.03 POL(isPalListKind(x_1)) = 0 8.29/3.03 POL(isQid(x_1)) = x_1 8.29/3.03 POL(nil) = 1 8.29/3.03 POL(o) = 1 8.29/3.03 POL(tt) = 0 8.29/3.03 POL(u) = 1 8.29/3.03 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.03 8.29/3.03 U23(tt) -> tt 8.29/3.03 U43(tt) -> tt 8.29/3.03 U53(tt) -> tt 8.29/3.03 U62(tt) -> tt 8.29/3.03 isList(nil) -> tt 8.29/3.03 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 8.29/3.03 isPal(nil) -> tt 8.29/3.03 isQid(i) -> tt 8.29/3.03 isQid(o) -> tt 8.29/3.03 isQid(u) -> tt 8.29/3.03 8.29/3.03 8.29/3.03 8.29/3.03 8.29/3.03 ---------------------------------------- 8.29/3.03 8.29/3.03 (6) 8.29/3.03 Obligation: 8.29/3.03 Context-sensitive rewrite system: 8.29/3.03 The TRS R consists of the following rules: 8.29/3.03 8.29/3.03 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.03 U11(tt, V) -> U12(isNeList(V)) 8.29/3.03 U12(tt) -> tt 8.29/3.03 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.03 U22(tt, V2) -> U23(isList(V2)) 8.29/3.03 U31(tt, V) -> U32(isQid(V)) 8.29/3.03 U32(tt) -> tt 8.29/3.03 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.03 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.03 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.03 U52(tt, V2) -> U53(isList(V2)) 8.29/3.03 U61(tt, V) -> U62(isQid(V)) 8.29/3.03 U71(tt, V) -> U72(isNePal(V)) 8.29/3.03 U72(tt) -> tt 8.29/3.03 and(tt, X) -> X 8.29/3.03 isList(V) -> U11(isPalListKind(V), V) 8.29/3.03 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.03 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.03 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.03 isPalListKind(a) -> tt 8.29/3.03 isPalListKind(e) -> tt 8.29/3.03 isPalListKind(i) -> tt 8.29/3.03 isPalListKind(nil) -> tt 8.29/3.03 isPalListKind(o) -> tt 8.29/3.03 isPalListKind(u) -> tt 8.29/3.03 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.03 isQid(a) -> tt 8.29/3.03 isQid(e) -> tt 8.29/3.03 8.29/3.03 The replacement map contains the following entries: 8.29/3.03 8.29/3.03 __: {1, 2} 8.29/3.03 nil: empty set 8.29/3.03 U11: {1} 8.29/3.03 tt: empty set 8.29/3.03 U12: {1} 8.29/3.03 isNeList: empty set 8.29/3.03 U21: {1} 8.29/3.03 U22: {1} 8.29/3.03 isList: empty set 8.29/3.03 U23: {1} 8.29/3.03 U31: {1} 8.29/3.03 U32: {1} 8.29/3.03 isQid: empty set 8.29/3.03 U41: {1} 8.29/3.03 U42: {1} 8.29/3.03 U43: {1} 8.29/3.03 U51: {1} 8.29/3.03 U52: {1} 8.29/3.03 U53: {1} 8.29/3.03 U61: {1} 8.29/3.03 U62: {1} 8.29/3.03 U71: {1} 8.29/3.03 U72: {1} 8.29/3.03 isNePal: empty set 8.29/3.03 and: {1} 8.29/3.03 isPalListKind: empty set 8.29/3.03 isPal: empty set 8.29/3.03 a: empty set 8.29/3.03 e: empty set 8.29/3.03 i: empty set 8.29/3.03 o: empty set 8.29/3.03 u: empty set 8.29/3.03 8.29/3.03 ---------------------------------------- 8.29/3.03 8.29/3.03 (7) CSRRRRProof (EQUIVALENT) 8.29/3.03 The following CSR is given: Context-sensitive rewrite system: 8.29/3.03 The TRS R consists of the following rules: 8.29/3.03 8.29/3.03 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.03 U11(tt, V) -> U12(isNeList(V)) 8.29/3.03 U12(tt) -> tt 8.29/3.03 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.03 U22(tt, V2) -> U23(isList(V2)) 8.29/3.03 U31(tt, V) -> U32(isQid(V)) 8.29/3.03 U32(tt) -> tt 8.29/3.03 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.03 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.03 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.03 U52(tt, V2) -> U53(isList(V2)) 8.29/3.03 U61(tt, V) -> U62(isQid(V)) 8.29/3.03 U71(tt, V) -> U72(isNePal(V)) 8.29/3.03 U72(tt) -> tt 8.29/3.03 and(tt, X) -> X 8.29/3.03 isList(V) -> U11(isPalListKind(V), V) 8.29/3.03 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.03 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.03 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.03 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.03 isPalListKind(a) -> tt 8.29/3.03 isPalListKind(e) -> tt 8.29/3.03 isPalListKind(i) -> tt 8.29/3.03 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 isQid(a) -> tt 8.29/3.04 isQid(e) -> tt 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U43: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 isPal: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U23(x_1)) = 1 + x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U43(x_1)) = 1 + x_1 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U53(x_1)) = 1 + x_1 8.29/3.04 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U62(x_1)) = 1 + x_1 8.29/3.04 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U72(x_1)) = x_1 8.29/3.04 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(a) = 0 8.29/3.04 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(e) = 1 8.29/3.04 POL(i) = 1 8.29/3.04 POL(isList(x_1)) = x_1 8.29/3.04 POL(isNeList(x_1)) = x_1 8.29/3.04 POL(isNePal(x_1)) = 1 + x_1 8.29/3.04 POL(isPal(x_1)) = 1 + x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = x_1 8.29/3.04 POL(nil) = 1 8.29/3.04 POL(o) = 1 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 1 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 isQid(e) -> tt 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (8) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 isQid(a) -> tt 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U43: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 isPal: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (9) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 isQid(a) -> tt 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U43: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 isPal: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = 2*x_1 8.29/3.04 POL(U12(x_1)) = 2*x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = x_1 8.29/3.04 POL(U22(x_1, x_2)) = x_1 8.29/3.04 POL(U23(x_1)) = 2*x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 2*x_1 8.29/3.04 POL(U42(x_1, x_2)) = x_1 8.29/3.04 POL(U43(x_1)) = 2*x_1 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 2*x_1 8.29/3.04 POL(U52(x_1, x_2)) = 2*x_1 8.29/3.04 POL(U53(x_1)) = 2*x_1 8.29/3.04 POL(U61(x_1, x_2)) = x_1 8.29/3.04 POL(U62(x_1)) = x_1 8.29/3.04 POL(U71(x_1, x_2)) = x_1 + 2*x_2 8.29/3.04 POL(U72(x_1)) = 2*x_1 8.29/3.04 POL(__(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(a) = 0 8.29/3.04 POL(and(x_1, x_2)) = 2*x_1 + 2*x_2 8.29/3.04 POL(e) = 2 8.29/3.04 POL(i) = 2 8.29/3.04 POL(isList(x_1)) = 0 8.29/3.04 POL(isNeList(x_1)) = 0 8.29/3.04 POL(isNePal(x_1)) = 0 8.29/3.04 POL(isPal(x_1)) = 1 + 2*x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = 0 8.29/3.04 POL(nil) = 2 8.29/3.04 POL(o) = 2 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 2 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 isPal(V) -> U71(isPalListKind(V), V) 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (10) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 isQid(a) -> tt 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U43: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (11) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 isQid(a) -> tt 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U43: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U23(x_1)) = 1 + x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U43(x_1)) = x_1 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U53(x_1)) = 1 + x_1 8.29/3.04 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U62(x_1)) = 1 + x_1 8.29/3.04 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U72(x_1)) = x_1 8.29/3.04 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(a) = 0 8.29/3.04 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(e) = 1 8.29/3.04 POL(i) = 1 8.29/3.04 POL(isList(x_1)) = x_1 8.29/3.04 POL(isNeList(x_1)) = x_1 8.29/3.04 POL(isNePal(x_1)) = 1 + x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = x_1 8.29/3.04 POL(nil) = 1 8.29/3.04 POL(o) = 1 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 1 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 U42(tt, V2) -> U43(isNeList(V2)) 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (12) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 isQid(a) -> tt 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (13) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 isQid(a) -> tt 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U23(x_1)) = 1 + x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U53(x_1)) = 1 + x_1 8.29/3.04 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U62(x_1)) = 1 + x_1 8.29/3.04 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U72(x_1)) = x_1 8.29/3.04 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(a) = 1 8.29/3.04 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(e) = 1 8.29/3.04 POL(i) = 1 8.29/3.04 POL(isList(x_1)) = x_1 8.29/3.04 POL(isNeList(x_1)) = x_1 8.29/3.04 POL(isNePal(x_1)) = 1 + x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = x_1 8.29/3.04 POL(nil) = 1 8.29/3.04 POL(o) = 1 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 1 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 isQid(a) -> tt 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (14) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (15) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U53: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U23(x_1)) = 1 + x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U53(x_1)) = x_1 8.29/3.04 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U62(x_1)) = 1 + x_1 8.29/3.04 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U72(x_1)) = x_1 8.29/3.04 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(a) = 1 8.29/3.04 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(e) = 1 8.29/3.04 POL(i) = 1 8.29/3.04 POL(isList(x_1)) = x_1 8.29/3.04 POL(isNeList(x_1)) = x_1 8.29/3.04 POL(isNePal(x_1)) = 1 + x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = x_1 8.29/3.04 POL(nil) = 1 8.29/3.04 POL(o) = 1 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 1 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 U52(tt, V2) -> U53(isList(V2)) 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (16) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (17) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 U62: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U23(x_1)) = 1 + x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U62(x_1)) = x_1 8.29/3.04 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U72(x_1)) = x_1 8.29/3.04 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(a) = 1 8.29/3.04 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(e) = 1 8.29/3.04 POL(i) = 1 8.29/3.04 POL(isList(x_1)) = x_1 8.29/3.04 POL(isNeList(x_1)) = x_1 8.29/3.04 POL(isNePal(x_1)) = 1 + x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = x_1 8.29/3.04 POL(nil) = 1 8.29/3.04 POL(o) = 1 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 1 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 U61(tt, V) -> U62(isQid(V)) 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (18) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (19) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 U71: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 2*x_1 8.29/3.04 POL(U22(x_1, x_2)) = x_1 8.29/3.04 POL(U23(x_1)) = 2*x_1 8.29/3.04 POL(U31(x_1, x_2)) = 2*x_1 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 2*x_1 8.29/3.04 POL(U42(x_1, x_2)) = 2*x_1 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 2*x_1 8.29/3.04 POL(U52(x_1, x_2)) = 2*x_1 8.29/3.04 POL(U61(x_1, x_2)) = 2*x_1 + x_2 8.29/3.04 POL(U71(x_1, x_2)) = 2 + x_1 + 2*x_2 8.29/3.04 POL(U72(x_1)) = 2*x_1 8.29/3.04 POL(__(x_1, x_2)) = 2 + 2*x_1 + x_2 8.29/3.04 POL(a) = 2 8.29/3.04 POL(and(x_1, x_2)) = x_1 + 2*x_2 8.29/3.04 POL(e) = 2 8.29/3.04 POL(i) = 2 8.29/3.04 POL(isList(x_1)) = 0 8.29/3.04 POL(isNeList(x_1)) = 0 8.29/3.04 POL(isNePal(x_1)) = x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = 0 8.29/3.04 POL(nil) = 2 8.29/3.04 POL(o) = 2 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 2 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 __(__(X, Y), Z) -> __(X, __(Y, Z)) 8.29/3.04 U71(tt, V) -> U72(isNePal(V)) 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (20) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (21) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 U72(tt) -> tt 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 U72: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U23(x_1)) = 1 + x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U72(x_1)) = 1 + x_1 8.29/3.04 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(a) = 1 8.29/3.04 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(e) = 1 8.29/3.04 POL(i) = 1 8.29/3.04 POL(isList(x_1)) = x_1 8.29/3.04 POL(isNeList(x_1)) = x_1 8.29/3.04 POL(isNePal(x_1)) = 1 + x_1 8.29/3.04 POL(isPalListKind(x_1)) = 0 8.29/3.04 POL(isQid(x_1)) = x_1 8.29/3.04 POL(nil) = 1 8.29/3.04 POL(o) = 1 8.29/3.04 POL(tt) = 0 8.29/3.04 POL(u) = 1 8.29/3.04 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.04 8.29/3.04 U72(tt) -> tt 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (22) 8.29/3.04 Obligation: 8.29/3.04 Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 8.29/3.04 ---------------------------------------- 8.29/3.04 8.29/3.04 (23) CSRRRRProof (EQUIVALENT) 8.29/3.04 The following CSR is given: Context-sensitive rewrite system: 8.29/3.04 The TRS R consists of the following rules: 8.29/3.04 8.29/3.04 U11(tt, V) -> U12(isNeList(V)) 8.29/3.04 U12(tt) -> tt 8.29/3.04 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.04 U22(tt, V2) -> U23(isList(V2)) 8.29/3.04 U31(tt, V) -> U32(isQid(V)) 8.29/3.04 U32(tt) -> tt 8.29/3.04 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.04 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.04 and(tt, X) -> X 8.29/3.04 isList(V) -> U11(isPalListKind(V), V) 8.29/3.04 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.04 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.04 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.04 isPalListKind(a) -> tt 8.29/3.04 isPalListKind(e) -> tt 8.29/3.04 isPalListKind(i) -> tt 8.29/3.04 isPalListKind(nil) -> tt 8.29/3.04 isPalListKind(o) -> tt 8.29/3.04 isPalListKind(u) -> tt 8.29/3.04 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.04 8.29/3.04 The replacement map contains the following entries: 8.29/3.04 8.29/3.04 __: {1, 2} 8.29/3.04 nil: empty set 8.29/3.04 U11: {1} 8.29/3.04 tt: empty set 8.29/3.04 U12: {1} 8.29/3.04 isNeList: empty set 8.29/3.04 U21: {1} 8.29/3.04 U22: {1} 8.29/3.04 isList: empty set 8.29/3.04 U23: {1} 8.29/3.04 U31: {1} 8.29/3.04 U32: {1} 8.29/3.04 isQid: empty set 8.29/3.04 U41: {1} 8.29/3.04 U42: {1} 8.29/3.04 U51: {1} 8.29/3.04 U52: {1} 8.29/3.04 U61: {1} 8.29/3.04 isNePal: empty set 8.29/3.04 and: {1} 8.29/3.04 isPalListKind: empty set 8.29/3.04 a: empty set 8.29/3.04 e: empty set 8.29/3.04 i: empty set 8.29/3.04 o: empty set 8.29/3.04 u: empty set 8.29/3.04 Used ordering: 8.29/3.04 Polynomial interpretation [POLO]: 8.29/3.04 8.29/3.04 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U12(x_1)) = x_1 8.29/3.04 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U23(x_1)) = 1 + x_1 8.29/3.04 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(U32(x_1)) = x_1 8.29/3.04 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.04 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(U61(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.04 POL(a) = 1 8.29/3.04 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.04 POL(e) = 1 8.29/3.04 POL(i) = 1 8.29/3.04 POL(isList(x_1)) = x_1 8.29/3.04 POL(isNeList(x_1)) = x_1 8.29/3.05 POL(isNePal(x_1)) = 1 + x_1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(isQid(x_1)) = x_1 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 isNePal(V) -> U61(isPalListKind(V), V) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (24) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U22(tt, V2) -> U23(isList(V2)) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U32(tt) -> tt 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U23: {1} 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 U52: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (25) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U22(tt, V2) -> U23(isList(V2)) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U32(tt) -> tt 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U23: {1} 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 U52: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U12(x_1)) = x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U23(x_1)) = 1 + x_1 8.29/3.05 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U32(x_1)) = x_1 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U52(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(a) = 1 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 1 8.29/3.05 POL(i) = 1 8.29/3.05 POL(isList(x_1)) = x_1 8.29/3.05 POL(isNeList(x_1)) = x_1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(isQid(x_1)) = x_1 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (26) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U22(tt, V2) -> U23(isList(V2)) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U32(tt) -> tt 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U23: {1} 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (27) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U22(tt, V2) -> U23(isList(V2)) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U32(tt) -> tt 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U23: {1} 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U12(x_1)) = x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U23(x_1)) = x_1 8.29/3.05 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U32(x_1)) = x_1 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(a) = 1 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 1 8.29/3.05 POL(i) = 1 8.29/3.05 POL(isList(x_1)) = x_1 8.29/3.05 POL(isNeList(x_1)) = x_1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(isQid(x_1)) = x_1 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 U22(tt, V2) -> U23(isList(V2)) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (28) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U32(tt) -> tt 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (29) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U32(tt) -> tt 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = 1 + x_1 8.29/3.05 POL(U12(x_1)) = x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 1 + x_1 8.29/3.05 POL(U22(x_1, x_2)) = x_1 8.29/3.05 POL(U31(x_1, x_2)) = 1 + x_1 8.29/3.05 POL(U32(x_1)) = 1 + x_1 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + x_1 8.29/3.05 POL(U42(x_1, x_2)) = x_1 8.29/3.05 POL(U51(x_1, x_2, x_3)) = 1 + x_1 8.29/3.05 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(a) = 1 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 1 8.29/3.05 POL(i) = 1 8.29/3.05 POL(isList(x_1)) = 1 8.29/3.05 POL(isNeList(x_1)) = 1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(isQid(x_1)) = 0 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 U32(tt) -> tt 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (30) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (31) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 U51: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U12(x_1)) = x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U32(x_1)) = x_1 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U51(x_1, x_2, x_3)) = x_1 + x_2 + x_3 8.29/3.05 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(a) = 1 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 1 8.29/3.05 POL(i) = 1 8.29/3.05 POL(isList(x_1)) = x_1 8.29/3.05 POL(isNeList(x_1)) = x_1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(isQid(x_1)) = x_1 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (32) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (33) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U12(x_1)) = x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U22(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U31(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U32(x_1)) = x_1 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U42(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(a) = 1 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 1 8.29/3.05 POL(i) = 1 8.29/3.05 POL(isList(x_1)) = 1 + x_1 8.29/3.05 POL(isNeList(x_1)) = 1 + x_1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(isQid(x_1)) = 1 + x_1 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (34) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (35) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U32: {1} 8.29/3.05 isQid: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U12(x_1)) = x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U22(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U31(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U32(x_1)) = x_1 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U42(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(a) = 1 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 1 8.29/3.05 POL(i) = 1 8.29/3.05 POL(isList(x_1)) = 1 + x_1 8.29/3.05 POL(isNeList(x_1)) = 1 + x_1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(isQid(x_1)) = x_1 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 U31(tt, V) -> U32(isQid(V)) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (36) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (37) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U31: {1} 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(U12(x_1)) = x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U22(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U31(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 8.29/3.05 POL(U42(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(__(x_1, x_2)) = 1 + x_1 + x_2 8.29/3.05 POL(a) = 1 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 1 8.29/3.05 POL(i) = 1 8.29/3.05 POL(isList(x_1)) = 1 + x_1 8.29/3.05 POL(isNeList(x_1)) = 1 + x_1 8.29/3.05 POL(isPalListKind(x_1)) = 0 8.29/3.05 POL(nil) = 1 8.29/3.05 POL(o) = 1 8.29/3.05 POL(tt) = 0 8.29/3.05 POL(u) = 1 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 isNeList(V) -> U31(isPalListKind(V), V) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (38) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (39) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 __: {1, 2} 8.29/3.05 nil: empty set 8.29/3.05 U11: {1} 8.29/3.05 tt: empty set 8.29/3.05 U12: {1} 8.29/3.05 isNeList: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 U41: {1} 8.29/3.05 U42: {1} 8.29/3.05 and: {1} 8.29/3.05 isPalListKind: empty set 8.29/3.05 a: empty set 8.29/3.05 e: empty set 8.29/3.05 i: empty set 8.29/3.05 o: empty set 8.29/3.05 u: empty set 8.29/3.05 Used ordering: 8.29/3.05 Polynomial interpretation [POLO]: 8.29/3.05 8.29/3.05 POL(U11(x_1, x_2)) = x_1 8.29/3.05 POL(U12(x_1)) = 1 + 2*x_1 8.29/3.05 POL(U21(x_1, x_2, x_3)) = 2*x_1 + 2*x_2 + 2*x_3 8.29/3.05 POL(U22(x_1, x_2)) = 2 + x_1 + 2*x_2 8.29/3.05 POL(U41(x_1, x_2, x_3)) = 1 + 2*x_1 + 2*x_2 + 2*x_3 8.29/3.05 POL(U42(x_1, x_2)) = x_1 + 2*x_2 8.29/3.05 POL(__(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 8.29/3.05 POL(a) = 2 8.29/3.05 POL(and(x_1, x_2)) = x_1 + x_2 8.29/3.05 POL(e) = 2 8.29/3.05 POL(i) = 2 8.29/3.05 POL(isList(x_1)) = 2 + 2*x_1 8.29/3.05 POL(isNeList(x_1)) = 0 8.29/3.05 POL(isPalListKind(x_1)) = 1 + 2*x_1 8.29/3.05 POL(nil) = 2 8.29/3.05 POL(o) = 2 8.29/3.05 POL(tt) = 2 8.29/3.05 POL(u) = 2 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 U11(tt, V) -> U12(isNeList(V)) 8.29/3.05 U12(tt) -> tt 8.29/3.05 U41(tt, V1, V2) -> U42(isList(V1), V2) 8.29/3.05 and(tt, X) -> X 8.29/3.05 isList(V) -> U11(isPalListKind(V), V) 8.29/3.05 isPalListKind(a) -> tt 8.29/3.05 isPalListKind(e) -> tt 8.29/3.05 isPalListKind(i) -> tt 8.29/3.05 isPalListKind(nil) -> tt 8.29/3.05 isPalListKind(o) -> tt 8.29/3.05 isPalListKind(u) -> tt 8.29/3.05 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (40) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 tt: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (41) CSRRRRProof (EQUIVALENT) 8.29/3.05 The following CSR is given: Context-sensitive rewrite system: 8.29/3.05 The TRS R consists of the following rules: 8.29/3.05 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 8.29/3.05 The replacement map contains the following entries: 8.29/3.05 8.29/3.05 tt: empty set 8.29/3.05 U21: {1} 8.29/3.05 U22: {1} 8.29/3.05 isList: empty set 8.29/3.05 Used ordering: 8.29/3.05 Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : 8.29/3.05 8.29/3.05 <<< 8.29/3.05 POL(U21(x_1, x_2, x_3)) = [[1]] + [[1, 1]] * x_1 + [[1, 1]] * x_2 + [[1, 1]] * x_3 8.29/3.05 >>> 8.29/3.05 8.29/3.05 <<< 8.29/3.05 POL(tt) = [[1], [1]] 8.29/3.05 >>> 8.29/3.05 8.29/3.05 <<< 8.29/3.05 POL(U22(x_1, x_2)) = [[1]] + [[1, 1]] * x_1 + [[1, 1]] * x_2 8.29/3.05 >>> 8.29/3.05 8.29/3.05 <<< 8.29/3.05 POL(isList(x_1)) = [[1], [0]] + [[1, 0], [0, 1]] * x_1 8.29/3.05 >>> 8.29/3.05 8.29/3.05 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 8.29/3.05 8.29/3.05 U21(tt, V1, V2) -> U22(isList(V1), V2) 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (42) 8.29/3.05 Obligation: 8.29/3.05 Context-sensitive rewrite system: 8.29/3.05 R is empty. 8.29/3.05 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (43) RisEmptyProof (EQUIVALENT) 8.29/3.05 The CSR R is empty. Hence, termination is trivially proven. 8.29/3.05 ---------------------------------------- 8.29/3.05 8.29/3.05 (44) 8.29/3.05 YES 8.29/3.08 EOF