7.25/2.61 YES 7.25/2.63 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 7.25/2.63 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 7.25/2.63 7.25/2.63 7.25/2.63 Termination of the given CSR could be proven: 7.25/2.63 7.25/2.63 (0) CSR 7.25/2.63 (1) CSRRRRProof [EQUIVALENT, 104 ms] 7.25/2.63 (2) CSR 7.25/2.63 (3) CSRRRRProof [EQUIVALENT, 14 ms] 7.25/2.63 (4) CSR 7.25/2.63 (5) CSRRRRProof [EQUIVALENT, 19 ms] 7.25/2.63 (6) CSR 7.25/2.63 (7) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (8) CSR 7.25/2.63 (9) CSRRRRProof [EQUIVALENT, 3 ms] 7.25/2.63 (10) CSR 7.25/2.63 (11) CSRRRRProof [EQUIVALENT, 20 ms] 7.25/2.63 (12) CSR 7.25/2.63 (13) CSRRRRProof [EQUIVALENT, 39 ms] 7.25/2.63 (14) CSR 7.25/2.63 (15) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (16) CSR 7.25/2.63 (17) CSRRRRProof [EQUIVALENT, 8 ms] 7.25/2.63 (18) CSR 7.25/2.63 (19) CSRRRRProof [EQUIVALENT, 14 ms] 7.25/2.63 (20) CSR 7.25/2.63 (21) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (22) CSR 7.25/2.63 (23) CSRRRRProof [EQUIVALENT, 8 ms] 7.25/2.63 (24) CSR 7.25/2.63 (25) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (26) CSR 7.25/2.63 (27) CSRRRRProof [EQUIVALENT, 8 ms] 7.25/2.63 (28) CSR 7.25/2.63 (29) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (30) CSR 7.25/2.63 (31) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (32) CSR 7.25/2.63 (33) CSRRRRProof [EQUIVALENT, 5 ms] 7.25/2.63 (34) CSR 7.25/2.63 (35) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (36) CSR 7.25/2.63 (37) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (38) CSR 7.25/2.63 (39) CSRRRRProof [EQUIVALENT, 0 ms] 7.25/2.63 (40) CSR 7.25/2.63 (41) RisEmptyProof [EQUIVALENT, 0 ms] 7.25/2.63 (42) YES 7.25/2.63 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (0) 7.25/2.63 Obligation: 7.25/2.63 Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 __(X, nil) -> X 7.25/2.63 __(nil, X) -> X 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U23(tt) -> tt 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U43(tt) -> tt 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U53(tt) -> tt 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U62(tt) -> tt 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(nil) -> tt 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPal(nil) -> tt 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 isQid(e) -> tt 7.25/2.63 isQid(i) -> tt 7.25/2.63 isQid(o) -> tt 7.25/2.63 isQid(u) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (1) CSRRRRProof (EQUIVALENT) 7.25/2.63 The following CSR is given: Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 __(X, nil) -> X 7.25/2.63 __(nil, X) -> X 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U23(tt) -> tt 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U43(tt) -> tt 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U53(tt) -> tt 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U62(tt) -> tt 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(nil) -> tt 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPal(nil) -> tt 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 isQid(e) -> tt 7.25/2.63 isQid(i) -> tt 7.25/2.63 isQid(o) -> tt 7.25/2.63 isQid(u) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 Used ordering: 7.25/2.63 Polynomial interpretation [POLO]: 7.25/2.63 7.25/2.63 POL(U11(x_1, x_2)) = x_1 7.25/2.63 POL(U12(x_1)) = x_1 7.25/2.63 POL(U21(x_1, x_2, x_3)) = x_1 7.25/2.63 POL(U22(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U23(x_1)) = 2*x_1 7.25/2.63 POL(U31(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U32(x_1)) = 2*x_1 7.25/2.63 POL(U41(x_1, x_2, x_3)) = x_1 7.25/2.63 POL(U42(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U43(x_1)) = 2*x_1 7.25/2.63 POL(U51(x_1, x_2, x_3)) = x_1 7.25/2.63 POL(U52(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U53(x_1)) = 2*x_1 7.25/2.63 POL(U61(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U62(x_1)) = 2*x_1 7.25/2.63 POL(U71(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U72(x_1)) = 2*x_1 7.25/2.63 POL(__(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(a) = 0 7.25/2.63 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(e) = 0 7.25/2.63 POL(i) = 0 7.25/2.63 POL(isList(x_1)) = 0 7.25/2.63 POL(isNeList(x_1)) = 0 7.25/2.63 POL(isNePal(x_1)) = 0 7.25/2.63 POL(isPal(x_1)) = 0 7.25/2.63 POL(isPalListKind(x_1)) = 0 7.25/2.63 POL(isQid(x_1)) = 0 7.25/2.63 POL(nil) = 1 7.25/2.63 POL(o) = 0 7.25/2.63 POL(tt) = 0 7.25/2.63 POL(u) = 0 7.25/2.63 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.63 7.25/2.63 __(X, nil) -> X 7.25/2.63 __(nil, X) -> X 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (2) 7.25/2.63 Obligation: 7.25/2.63 Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U23(tt) -> tt 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U43(tt) -> tt 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U53(tt) -> tt 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U62(tt) -> tt 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(nil) -> tt 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPal(nil) -> tt 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 isQid(e) -> tt 7.25/2.63 isQid(i) -> tt 7.25/2.63 isQid(o) -> tt 7.25/2.63 isQid(u) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (3) CSRRRRProof (EQUIVALENT) 7.25/2.63 The following CSR is given: Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U23(tt) -> tt 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U43(tt) -> tt 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U53(tt) -> tt 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U62(tt) -> tt 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(nil) -> tt 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPal(nil) -> tt 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 isQid(e) -> tt 7.25/2.63 isQid(i) -> tt 7.25/2.63 isQid(o) -> tt 7.25/2.63 isQid(u) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 Used ordering: 7.25/2.63 Polynomial interpretation [POLO]: 7.25/2.63 7.25/2.63 POL(U11(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(U12(x_1)) = x_1 7.25/2.63 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U23(x_1)) = 1 + x_1 7.25/2.63 POL(U31(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(U32(x_1)) = x_1 7.25/2.63 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U43(x_1)) = 1 + x_1 7.25/2.63 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U53(x_1)) = 1 + x_1 7.25/2.63 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U62(x_1)) = 1 + x_1 7.25/2.63 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U72(x_1)) = x_1 7.25/2.63 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(a) = 0 7.25/2.63 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(e) = 0 7.25/2.63 POL(i) = 1 7.25/2.63 POL(isList(x_1)) = x_1 7.25/2.63 POL(isNeList(x_1)) = x_1 7.25/2.63 POL(isNePal(x_1)) = 1 + x_1 7.25/2.63 POL(isPal(x_1)) = 1 + x_1 7.25/2.63 POL(isPalListKind(x_1)) = 0 7.25/2.63 POL(isQid(x_1)) = x_1 7.25/2.63 POL(nil) = 1 7.25/2.63 POL(o) = 1 7.25/2.63 POL(tt) = 0 7.25/2.63 POL(u) = 1 7.25/2.63 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.63 7.25/2.63 U23(tt) -> tt 7.25/2.63 U43(tt) -> tt 7.25/2.63 U53(tt) -> tt 7.25/2.63 U62(tt) -> tt 7.25/2.63 isList(nil) -> tt 7.25/2.63 isNePal(__(I, __(P, I))) -> and(and(isQid(I), isPalListKind(I)), and(isPal(P), isPalListKind(P))) 7.25/2.63 isPal(nil) -> tt 7.25/2.63 isQid(i) -> tt 7.25/2.63 isQid(o) -> tt 7.25/2.63 isQid(u) -> tt 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (4) 7.25/2.63 Obligation: 7.25/2.63 Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 isQid(e) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (5) CSRRRRProof (EQUIVALENT) 7.25/2.63 The following CSR is given: Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 isQid(e) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 Used ordering: 7.25/2.63 Polynomial interpretation [POLO]: 7.25/2.63 7.25/2.63 POL(U11(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(U12(x_1)) = x_1 7.25/2.63 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U23(x_1)) = 1 + x_1 7.25/2.63 POL(U31(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(U32(x_1)) = x_1 7.25/2.63 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U43(x_1)) = 1 + x_1 7.25/2.63 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U53(x_1)) = 1 + x_1 7.25/2.63 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U62(x_1)) = 1 + x_1 7.25/2.63 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U72(x_1)) = x_1 7.25/2.63 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(a) = 0 7.25/2.63 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(e) = 1 7.25/2.63 POL(i) = 1 7.25/2.63 POL(isList(x_1)) = x_1 7.25/2.63 POL(isNeList(x_1)) = x_1 7.25/2.63 POL(isNePal(x_1)) = 1 + x_1 7.25/2.63 POL(isPal(x_1)) = 1 + x_1 7.25/2.63 POL(isPalListKind(x_1)) = 0 7.25/2.63 POL(isQid(x_1)) = x_1 7.25/2.63 POL(nil) = 1 7.25/2.63 POL(o) = 1 7.25/2.63 POL(tt) = 0 7.25/2.63 POL(u) = 1 7.25/2.63 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.63 7.25/2.63 isQid(e) -> tt 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (6) 7.25/2.63 Obligation: 7.25/2.63 Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (7) CSRRRRProof (EQUIVALENT) 7.25/2.63 The following CSR is given: Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 isPal: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 Used ordering: 7.25/2.63 Polynomial interpretation [POLO]: 7.25/2.63 7.25/2.63 POL(U11(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U12(x_1)) = 2*x_1 7.25/2.63 POL(U21(x_1, x_2, x_3)) = x_1 7.25/2.63 POL(U22(x_1, x_2)) = x_1 7.25/2.63 POL(U23(x_1)) = 2*x_1 7.25/2.63 POL(U31(x_1, x_2)) = x_1 7.25/2.63 POL(U32(x_1)) = x_1 7.25/2.63 POL(U41(x_1, x_2, x_3)) = 2*x_1 7.25/2.63 POL(U42(x_1, x_2)) = x_1 7.25/2.63 POL(U43(x_1)) = 2*x_1 7.25/2.63 POL(U51(x_1, x_2, x_3)) = 2*x_1 7.25/2.63 POL(U52(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U53(x_1)) = 2*x_1 7.25/2.63 POL(U61(x_1, x_2)) = x_1 7.25/2.63 POL(U62(x_1)) = x_1 7.25/2.63 POL(U71(x_1, x_2)) = x_1 + 2*x_2 7.25/2.63 POL(U72(x_1)) = 2*x_1 7.25/2.63 POL(__(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(a) = 0 7.25/2.63 POL(and(x_1, x_2)) = 2*x_1 + 2*x_2 7.25/2.63 POL(e) = 2 7.25/2.63 POL(i) = 2 7.25/2.63 POL(isList(x_1)) = 0 7.25/2.63 POL(isNeList(x_1)) = 0 7.25/2.63 POL(isNePal(x_1)) = 0 7.25/2.63 POL(isPal(x_1)) = 1 + 2*x_1 7.25/2.63 POL(isPalListKind(x_1)) = 0 7.25/2.63 POL(isQid(x_1)) = 0 7.25/2.63 POL(nil) = 2 7.25/2.63 POL(o) = 2 7.25/2.63 POL(tt) = 0 7.25/2.63 POL(u) = 2 7.25/2.63 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.63 7.25/2.63 isPal(V) -> U71(isPalListKind(V), V) 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (8) 7.25/2.63 Obligation: 7.25/2.63 Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (9) CSRRRRProof (EQUIVALENT) 7.25/2.63 The following CSR is given: Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U43: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 Used ordering: 7.25/2.63 Polynomial interpretation [POLO]: 7.25/2.63 7.25/2.63 POL(U11(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(U12(x_1)) = x_1 7.25/2.63 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U23(x_1)) = 1 + x_1 7.25/2.63 POL(U31(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(U32(x_1)) = x_1 7.25/2.63 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U43(x_1)) = x_1 7.25/2.63 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.63 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U53(x_1)) = 1 + x_1 7.25/2.63 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U62(x_1)) = 1 + x_1 7.25/2.63 POL(U71(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(U72(x_1)) = x_1 7.25/2.63 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.63 POL(a) = 0 7.25/2.63 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.63 POL(e) = 1 7.25/2.63 POL(i) = 1 7.25/2.63 POL(isList(x_1)) = x_1 7.25/2.63 POL(isNeList(x_1)) = x_1 7.25/2.63 POL(isNePal(x_1)) = 1 + x_1 7.25/2.63 POL(isPalListKind(x_1)) = 0 7.25/2.63 POL(isQid(x_1)) = x_1 7.25/2.63 POL(nil) = 1 7.25/2.63 POL(o) = 1 7.25/2.63 POL(tt) = 0 7.25/2.63 POL(u) = 1 7.25/2.63 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.63 7.25/2.63 U42(tt, V2) -> U43(isNeList(V2)) 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (10) 7.25/2.63 Obligation: 7.25/2.63 Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (11) CSRRRRProof (EQUIVALENT) 7.25/2.63 The following CSR is given: Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.63 U31(tt, V) -> U32(isQid(V)) 7.25/2.63 U32(tt) -> tt 7.25/2.63 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.63 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.63 U52(tt, V2) -> U53(isList(V2)) 7.25/2.63 U61(tt, V) -> U62(isQid(V)) 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 U72(tt) -> tt 7.25/2.63 and(tt, X) -> X 7.25/2.63 isList(V) -> U11(isPalListKind(V), V) 7.25/2.63 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.63 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.63 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.63 isPalListKind(a) -> tt 7.25/2.63 isPalListKind(e) -> tt 7.25/2.63 isPalListKind(i) -> tt 7.25/2.63 isPalListKind(nil) -> tt 7.25/2.63 isPalListKind(o) -> tt 7.25/2.63 isPalListKind(u) -> tt 7.25/2.63 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.63 isQid(a) -> tt 7.25/2.63 7.25/2.63 The replacement map contains the following entries: 7.25/2.63 7.25/2.63 __: {1, 2} 7.25/2.63 nil: empty set 7.25/2.63 U11: {1} 7.25/2.63 tt: empty set 7.25/2.63 U12: {1} 7.25/2.63 isNeList: empty set 7.25/2.63 U21: {1} 7.25/2.63 U22: {1} 7.25/2.63 isList: empty set 7.25/2.63 U23: {1} 7.25/2.63 U31: {1} 7.25/2.63 U32: {1} 7.25/2.63 isQid: empty set 7.25/2.63 U41: {1} 7.25/2.63 U42: {1} 7.25/2.63 U51: {1} 7.25/2.63 U52: {1} 7.25/2.63 U53: {1} 7.25/2.63 U61: {1} 7.25/2.63 U62: {1} 7.25/2.63 U71: {1} 7.25/2.63 U72: {1} 7.25/2.63 isNePal: empty set 7.25/2.63 and: {1} 7.25/2.63 isPalListKind: empty set 7.25/2.63 a: empty set 7.25/2.63 e: empty set 7.25/2.63 i: empty set 7.25/2.63 o: empty set 7.25/2.63 u: empty set 7.25/2.63 Used ordering: 7.25/2.63 Polynomial interpretation [POLO]: 7.25/2.63 7.25/2.63 POL(U11(x_1, x_2)) = x_1 7.25/2.63 POL(U12(x_1)) = 2*x_1 7.25/2.63 POL(U21(x_1, x_2, x_3)) = x_1 7.25/2.63 POL(U22(x_1, x_2)) = x_1 7.25/2.63 POL(U23(x_1)) = x_1 7.25/2.63 POL(U31(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U32(x_1)) = x_1 7.25/2.63 POL(U41(x_1, x_2, x_3)) = 2*x_1 7.25/2.63 POL(U42(x_1, x_2)) = x_1 7.25/2.63 POL(U51(x_1, x_2, x_3)) = x_1 7.25/2.63 POL(U52(x_1, x_2)) = x_1 7.25/2.63 POL(U53(x_1)) = x_1 7.25/2.63 POL(U61(x_1, x_2)) = 2*x_1 7.25/2.63 POL(U62(x_1)) = x_1 7.25/2.63 POL(U71(x_1, x_2)) = 1 + x_1 + 2*x_2 7.25/2.63 POL(U72(x_1)) = 2*x_1 7.25/2.63 POL(__(x_1, x_2)) = 2*x_1 + x_2 7.25/2.63 POL(a) = 0 7.25/2.63 POL(and(x_1, x_2)) = x_1 + 2*x_2 7.25/2.63 POL(e) = 2 7.25/2.63 POL(i) = 2 7.25/2.63 POL(isList(x_1)) = 0 7.25/2.63 POL(isNeList(x_1)) = 0 7.25/2.63 POL(isNePal(x_1)) = x_1 7.25/2.63 POL(isPalListKind(x_1)) = 0 7.25/2.63 POL(isQid(x_1)) = 0 7.25/2.63 POL(nil) = 2 7.25/2.63 POL(o) = 2 7.25/2.63 POL(tt) = 0 7.25/2.63 POL(u) = 2 7.25/2.63 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.63 7.25/2.63 U71(tt, V) -> U72(isNePal(V)) 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 7.25/2.63 ---------------------------------------- 7.25/2.63 7.25/2.63 (12) 7.25/2.63 Obligation: 7.25/2.63 Context-sensitive rewrite system: 7.25/2.63 The TRS R consists of the following rules: 7.25/2.63 7.25/2.63 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.63 U11(tt, V) -> U12(isNeList(V)) 7.25/2.63 U12(tt) -> tt 7.25/2.63 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.63 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 U61(tt, V) -> U62(isQid(V)) 7.25/2.64 U72(tt) -> tt 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 isQid(a) -> tt 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 U61: {1} 7.25/2.64 U62: {1} 7.25/2.64 U72: {1} 7.25/2.64 isNePal: empty set 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (13) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 U61(tt, V) -> U62(isQid(V)) 7.25/2.64 U72(tt) -> tt 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 isQid(a) -> tt 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 U61: {1} 7.25/2.64 U62: {1} 7.25/2.64 U72: {1} 7.25/2.64 isNePal: empty set 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U22(x_1, x_2)) = x_1 7.25/2.64 POL(U23(x_1)) = x_1 7.25/2.64 POL(U31(x_1, x_2)) = 2*x_1 7.25/2.64 POL(U32(x_1)) = 2*x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 2*x_1 7.25/2.64 POL(U42(x_1, x_2)) = x_1 7.25/2.64 POL(U51(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U52(x_1, x_2)) = 2*x_1 7.25/2.64 POL(U53(x_1)) = 2*x_1 7.25/2.64 POL(U61(x_1, x_2)) = 2 + x_1 + 2*x_2 7.25/2.64 POL(U62(x_1)) = 2*x_1 7.25/2.64 POL(U72(x_1)) = 1 + x_1 7.25/2.64 POL(__(x_1, x_2)) = 2*x_1 + x_2 7.25/2.64 POL(a) = 0 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 2 7.25/2.64 POL(i) = 2 7.25/2.64 POL(isList(x_1)) = 0 7.25/2.64 POL(isNeList(x_1)) = 0 7.25/2.64 POL(isNePal(x_1)) = 2 + 2*x_1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = 0 7.25/2.64 POL(nil) = 2 7.25/2.64 POL(o) = 2 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 2 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 U61(tt, V) -> U62(isQid(V)) 7.25/2.64 U72(tt) -> tt 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (14) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 isQid(a) -> tt 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 U61: {1} 7.25/2.64 isNePal: empty set 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (15) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 isQid(a) -> tt 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 U61: {1} 7.25/2.64 isNePal: empty set 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U23(x_1)) = 1 + x_1 7.25/2.64 POL(U31(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U32(x_1)) = x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U53(x_1)) = 1 + x_1 7.25/2.64 POL(U61(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(a) = 1 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 1 7.25/2.64 POL(i) = 1 7.25/2.64 POL(isList(x_1)) = x_1 7.25/2.64 POL(isNeList(x_1)) = x_1 7.25/2.64 POL(isNePal(x_1)) = 1 + x_1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = x_1 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 1 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 1 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 isQid(a) -> tt 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (16) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 U61: {1} 7.25/2.64 isNePal: empty set 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (17) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 U61: {1} 7.25/2.64 isNePal: empty set 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U22(x_1, x_2)) = x_1 7.25/2.64 POL(U23(x_1)) = x_1 7.25/2.64 POL(U31(x_1, x_2)) = x_1 7.25/2.64 POL(U32(x_1)) = x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U42(x_1, x_2)) = x_1 7.25/2.64 POL(U51(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U52(x_1, x_2)) = x_1 7.25/2.64 POL(U53(x_1)) = x_1 7.25/2.64 POL(U61(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(a) = 1 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 1 7.25/2.64 POL(i) = 1 7.25/2.64 POL(isList(x_1)) = 0 7.25/2.64 POL(isNeList(x_1)) = 0 7.25/2.64 POL(isNePal(x_1)) = 1 + x_1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = 0 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 1 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 1 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 isNePal(V) -> U61(isPalListKind(V), V) 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (18) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (19) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 7.25/2.64 POL(U12(x_1)) = 2*x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U22(x_1, x_2)) = 2*x_1 7.25/2.64 POL(U23(x_1)) = 2*x_1 7.25/2.64 POL(U31(x_1, x_2)) = x_1 7.25/2.64 POL(U32(x_1)) = x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U42(x_1, x_2)) = x_1 7.25/2.64 POL(U51(x_1, x_2, x_3)) = x_1 7.25/2.64 POL(U52(x_1, x_2)) = 2*x_1 7.25/2.64 POL(U53(x_1)) = x_1 7.25/2.64 POL(__(x_1, x_2)) = 1 + 2*x_1 + x_2 7.25/2.64 POL(a) = 2 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 2 7.25/2.64 POL(i) = 2 7.25/2.64 POL(isList(x_1)) = 0 7.25/2.64 POL(isNeList(x_1)) = 0 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = 0 7.25/2.64 POL(nil) = 2 7.25/2.64 POL(o) = 2 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 2 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 __(__(X, Y), Z) -> __(X, __(Y, Z)) 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (20) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (21) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U23: {1} 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U23(x_1)) = x_1 7.25/2.64 POL(U31(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U32(x_1)) = x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U53(x_1)) = 1 + x_1 7.25/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(a) = 1 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 1 7.25/2.64 POL(i) = 1 7.25/2.64 POL(isList(x_1)) = x_1 7.25/2.64 POL(isNeList(x_1)) = x_1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = x_1 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 1 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 1 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 U22(tt, V2) -> U23(isList(V2)) 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (22) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (23) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 U53: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U22(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U31(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U32(x_1)) = x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U53(x_1)) = x_1 7.25/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(a) = 1 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 1 7.25/2.64 POL(i) = 1 7.25/2.64 POL(isList(x_1)) = x_1 7.25/2.64 POL(isNeList(x_1)) = x_1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = x_1 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 1 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 1 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 U52(tt, V2) -> U53(isList(V2)) 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (24) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (25) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U32(tt) -> tt 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = 1 + x_1 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = 1 + x_1 7.25/2.64 POL(U22(x_1, x_2)) = x_1 7.25/2.64 POL(U31(x_1, x_2)) = 1 + x_1 7.25/2.64 POL(U32(x_1)) = 1 + x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 1 + x_1 7.25/2.64 POL(U42(x_1, x_2)) = x_1 7.25/2.64 POL(U51(x_1, x_2, x_3)) = 1 + x_1 7.25/2.64 POL(U52(x_1, x_2)) = x_1 7.25/2.64 POL(__(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(a) = 1 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 1 7.25/2.64 POL(i) = 1 7.25/2.64 POL(isList(x_1)) = 1 7.25/2.64 POL(isNeList(x_1)) = 1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = 0 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 1 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 1 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 U32(tt) -> tt 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (26) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (27) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U32: {1} 7.25/2.64 isQid: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = 1 + x_1 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = 1 + x_1 7.25/2.64 POL(U22(x_1, x_2)) = x_1 7.25/2.64 POL(U31(x_1, x_2)) = 1 + x_1 7.25/2.64 POL(U32(x_1)) = x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 1 + x_1 7.25/2.64 POL(U42(x_1, x_2)) = x_1 7.25/2.64 POL(U51(x_1, x_2, x_3)) = 1 + x_1 7.25/2.64 POL(U52(x_1, x_2)) = x_1 7.25/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(a) = 1 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 1 7.25/2.64 POL(i) = 1 7.25/2.64 POL(isList(x_1)) = 1 7.25/2.64 POL(isNeList(x_1)) = 1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(isQid(x_1)) = 0 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 1 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 1 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 U31(tt, V) -> U32(isQid(V)) 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (28) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (29) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U31: {1} 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = 2 + 2*x_1 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = 2 + 2*x_1 7.25/2.64 POL(U22(x_1, x_2)) = x_1 7.25/2.64 POL(U31(x_1, x_2)) = 1 + 2*x_1 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 2 + 2*x_1 7.25/2.64 POL(U42(x_1, x_2)) = x_1 7.25/2.64 POL(U51(x_1, x_2, x_3)) = 2 + 2*x_1 7.25/2.64 POL(U52(x_1, x_2)) = x_1 7.25/2.64 POL(__(x_1, x_2)) = 2*x_1 + x_2 7.25/2.64 POL(a) = 2 7.25/2.64 POL(and(x_1, x_2)) = 2*x_1 + 2*x_2 7.25/2.64 POL(e) = 2 7.25/2.64 POL(i) = 2 7.25/2.64 POL(isList(x_1)) = 2 7.25/2.64 POL(isNeList(x_1)) = 2 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(nil) = 2 7.25/2.64 POL(o) = 2 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 2 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 isNeList(V) -> U31(isPalListKind(V), V) 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (30) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (31) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = x_1 + x_2 + x_3 7.25/2.64 POL(U22(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U41(x_1, x_2, x_3)) = x_1 + x_2 + x_3 7.25/2.64 POL(U42(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U51(x_1, x_2, x_3)) = x_1 + x_2 + x_3 7.25/2.64 POL(U52(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(a) = 1 7.25/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(e) = 1 7.25/2.64 POL(i) = 1 7.25/2.64 POL(isList(x_1)) = x_1 7.25/2.64 POL(isNeList(x_1)) = x_1 7.25/2.64 POL(isPalListKind(x_1)) = 0 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 1 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 1 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 isList(__(V1, V2)) -> U21(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U41(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 isNeList(__(V1, V2)) -> U51(and(isPalListKind(V1), isPalListKind(V2)), V1, V2) 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (32) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (33) CSRRRRProof (EQUIVALENT) 7.25/2.64 The following CSR is given: Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.25/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isList(V) -> U11(isPalListKind(V), V) 7.25/2.64 isPalListKind(a) -> tt 7.25/2.64 isPalListKind(e) -> tt 7.25/2.64 isPalListKind(i) -> tt 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 isPalListKind(o) -> tt 7.25/2.64 isPalListKind(u) -> tt 7.25/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.25/2.64 7.25/2.64 The replacement map contains the following entries: 7.25/2.64 7.25/2.64 __: {1, 2} 7.25/2.64 nil: empty set 7.25/2.64 U11: {1} 7.25/2.64 tt: empty set 7.25/2.64 U12: {1} 7.25/2.64 isNeList: empty set 7.25/2.64 U21: {1} 7.25/2.64 U22: {1} 7.25/2.64 isList: empty set 7.25/2.64 U41: {1} 7.25/2.64 U42: {1} 7.25/2.64 U51: {1} 7.25/2.64 U52: {1} 7.25/2.64 and: {1} 7.25/2.64 isPalListKind: empty set 7.25/2.64 a: empty set 7.25/2.64 e: empty set 7.25/2.64 i: empty set 7.25/2.64 o: empty set 7.25/2.64 u: empty set 7.25/2.64 Used ordering: 7.25/2.64 Polynomial interpretation [POLO]: 7.25/2.64 7.25/2.64 POL(U11(x_1, x_2)) = x_1 7.25/2.64 POL(U12(x_1)) = x_1 7.25/2.64 POL(U21(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U22(x_1, x_2)) = x_1 + x_2 7.25/2.64 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.25/2.64 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_3 7.25/2.64 POL(U52(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(a) = 0 7.25/2.64 POL(and(x_1, x_2)) = 1 + x_1 + x_2 7.25/2.64 POL(e) = 0 7.25/2.64 POL(i) = 0 7.25/2.64 POL(isList(x_1)) = x_1 7.25/2.64 POL(isNeList(x_1)) = 0 7.25/2.64 POL(isPalListKind(x_1)) = x_1 7.25/2.64 POL(nil) = 1 7.25/2.64 POL(o) = 0 7.25/2.64 POL(tt) = 0 7.25/2.64 POL(u) = 0 7.25/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.25/2.64 7.25/2.64 U21(tt, V1, V2) -> U22(isList(V1), V2) 7.25/2.64 and(tt, X) -> X 7.25/2.64 isPalListKind(nil) -> tt 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 7.25/2.64 ---------------------------------------- 7.25/2.64 7.25/2.64 (34) 7.25/2.64 Obligation: 7.25/2.64 Context-sensitive rewrite system: 7.25/2.64 The TRS R consists of the following rules: 7.25/2.64 7.25/2.64 U11(tt, V) -> U12(isNeList(V)) 7.25/2.64 U12(tt) -> tt 7.58/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.58/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.58/2.64 isList(V) -> U11(isPalListKind(V), V) 7.58/2.64 isPalListKind(a) -> tt 7.58/2.64 isPalListKind(e) -> tt 7.58/2.64 isPalListKind(i) -> tt 7.58/2.64 isPalListKind(o) -> tt 7.58/2.64 isPalListKind(u) -> tt 7.58/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.58/2.64 7.58/2.64 The replacement map contains the following entries: 7.58/2.64 7.58/2.64 __: {1, 2} 7.58/2.64 U11: {1} 7.58/2.64 tt: empty set 7.58/2.64 U12: {1} 7.58/2.64 isNeList: empty set 7.58/2.64 isList: empty set 7.58/2.64 U41: {1} 7.58/2.64 U42: {1} 7.58/2.64 U51: {1} 7.58/2.64 U52: {1} 7.58/2.64 and: {1} 7.58/2.64 isPalListKind: empty set 7.58/2.64 a: empty set 7.58/2.64 e: empty set 7.58/2.64 i: empty set 7.58/2.64 o: empty set 7.58/2.64 u: empty set 7.58/2.64 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (35) CSRRRRProof (EQUIVALENT) 7.58/2.64 The following CSR is given: Context-sensitive rewrite system: 7.58/2.64 The TRS R consists of the following rules: 7.58/2.64 7.58/2.64 U11(tt, V) -> U12(isNeList(V)) 7.58/2.64 U12(tt) -> tt 7.58/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.58/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.58/2.64 isList(V) -> U11(isPalListKind(V), V) 7.58/2.64 isPalListKind(a) -> tt 7.58/2.64 isPalListKind(e) -> tt 7.58/2.64 isPalListKind(i) -> tt 7.58/2.64 isPalListKind(o) -> tt 7.58/2.64 isPalListKind(u) -> tt 7.58/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.58/2.64 7.58/2.64 The replacement map contains the following entries: 7.58/2.64 7.58/2.64 __: {1, 2} 7.58/2.64 U11: {1} 7.58/2.64 tt: empty set 7.58/2.64 U12: {1} 7.58/2.64 isNeList: empty set 7.58/2.64 isList: empty set 7.58/2.64 U41: {1} 7.58/2.64 U42: {1} 7.58/2.64 U51: {1} 7.58/2.64 U52: {1} 7.58/2.64 and: {1} 7.58/2.64 isPalListKind: empty set 7.58/2.64 a: empty set 7.58/2.64 e: empty set 7.58/2.64 i: empty set 7.58/2.64 o: empty set 7.58/2.64 u: empty set 7.58/2.64 Used ordering: 7.58/2.64 Polynomial interpretation [POLO]: 7.58/2.64 7.58/2.64 POL(U11(x_1, x_2)) = 1 + x_1 7.58/2.64 POL(U12(x_1)) = 1 + x_1 7.58/2.64 POL(U41(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 7.58/2.64 POL(U42(x_1, x_2)) = 1 + x_1 + x_2 7.58/2.64 POL(U51(x_1, x_2, x_3)) = 1 + x_1 + x_3 7.58/2.64 POL(U52(x_1, x_2)) = x_1 + x_2 7.58/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.58/2.64 POL(a) = 1 7.58/2.64 POL(and(x_1, x_2)) = 1 + x_1 + x_2 7.58/2.64 POL(e) = 1 7.58/2.64 POL(i) = 1 7.58/2.64 POL(isList(x_1)) = 1 + x_1 7.58/2.64 POL(isNeList(x_1)) = 1 7.58/2.64 POL(isPalListKind(x_1)) = x_1 7.58/2.64 POL(o) = 1 7.58/2.64 POL(tt) = 1 7.58/2.64 POL(u) = 1 7.58/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.58/2.64 7.58/2.64 U12(tt) -> tt 7.58/2.64 U51(tt, V1, V2) -> U52(isNeList(V1), V2) 7.58/2.64 7.58/2.64 7.58/2.64 7.58/2.64 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (36) 7.58/2.64 Obligation: 7.58/2.64 Context-sensitive rewrite system: 7.58/2.64 The TRS R consists of the following rules: 7.58/2.64 7.58/2.64 U11(tt, V) -> U12(isNeList(V)) 7.58/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.58/2.64 isList(V) -> U11(isPalListKind(V), V) 7.58/2.64 isPalListKind(a) -> tt 7.58/2.64 isPalListKind(e) -> tt 7.58/2.64 isPalListKind(i) -> tt 7.58/2.64 isPalListKind(o) -> tt 7.58/2.64 isPalListKind(u) -> tt 7.58/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.58/2.64 7.58/2.64 The replacement map contains the following entries: 7.58/2.64 7.58/2.64 __: {1, 2} 7.58/2.64 U11: {1} 7.58/2.64 tt: empty set 7.58/2.64 U12: {1} 7.58/2.64 isNeList: empty set 7.58/2.64 isList: empty set 7.58/2.64 U41: {1} 7.58/2.64 U42: {1} 7.58/2.64 and: {1} 7.58/2.64 isPalListKind: empty set 7.58/2.64 a: empty set 7.58/2.64 e: empty set 7.58/2.64 i: empty set 7.58/2.64 o: empty set 7.58/2.64 u: empty set 7.58/2.64 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (37) CSRRRRProof (EQUIVALENT) 7.58/2.64 The following CSR is given: Context-sensitive rewrite system: 7.58/2.64 The TRS R consists of the following rules: 7.58/2.64 7.58/2.64 U11(tt, V) -> U12(isNeList(V)) 7.58/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.58/2.64 isList(V) -> U11(isPalListKind(V), V) 7.58/2.64 isPalListKind(a) -> tt 7.58/2.64 isPalListKind(e) -> tt 7.58/2.64 isPalListKind(i) -> tt 7.58/2.64 isPalListKind(o) -> tt 7.58/2.64 isPalListKind(u) -> tt 7.58/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.58/2.64 7.58/2.64 The replacement map contains the following entries: 7.58/2.64 7.58/2.64 __: {1, 2} 7.58/2.64 U11: {1} 7.58/2.64 tt: empty set 7.58/2.64 U12: {1} 7.58/2.64 isNeList: empty set 7.58/2.64 isList: empty set 7.58/2.64 U41: {1} 7.58/2.64 U42: {1} 7.58/2.64 and: {1} 7.58/2.64 isPalListKind: empty set 7.58/2.64 a: empty set 7.58/2.64 e: empty set 7.58/2.64 i: empty set 7.58/2.64 o: empty set 7.58/2.64 u: empty set 7.58/2.64 Used ordering: 7.58/2.64 Polynomial interpretation [POLO]: 7.58/2.64 7.58/2.64 POL(U11(x_1, x_2)) = x_1 7.58/2.64 POL(U12(x_1)) = x_1 7.58/2.64 POL(U41(x_1, x_2, x_3)) = x_1 + x_2 + x_3 7.58/2.64 POL(U42(x_1, x_2)) = x_1 + x_2 7.58/2.64 POL(__(x_1, x_2)) = 1 + x_1 + x_2 7.58/2.64 POL(a) = 1 7.58/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.58/2.64 POL(e) = 1 7.58/2.64 POL(i) = 1 7.58/2.64 POL(isList(x_1)) = 1 + x_1 7.58/2.64 POL(isNeList(x_1)) = 1 7.58/2.64 POL(isPalListKind(x_1)) = 1 + x_1 7.58/2.64 POL(o) = 1 7.58/2.64 POL(tt) = 1 7.58/2.64 POL(u) = 1 7.58/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.58/2.64 7.58/2.64 isPalListKind(a) -> tt 7.58/2.64 isPalListKind(e) -> tt 7.58/2.64 isPalListKind(i) -> tt 7.58/2.64 isPalListKind(o) -> tt 7.58/2.64 isPalListKind(u) -> tt 7.58/2.64 7.58/2.64 7.58/2.64 7.58/2.64 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (38) 7.58/2.64 Obligation: 7.58/2.64 Context-sensitive rewrite system: 7.58/2.64 The TRS R consists of the following rules: 7.58/2.64 7.58/2.64 U11(tt, V) -> U12(isNeList(V)) 7.58/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.58/2.64 isList(V) -> U11(isPalListKind(V), V) 7.58/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.58/2.64 7.58/2.64 The replacement map contains the following entries: 7.58/2.64 7.58/2.64 __: {1, 2} 7.58/2.64 U11: {1} 7.58/2.64 tt: empty set 7.58/2.64 U12: {1} 7.58/2.64 isNeList: empty set 7.58/2.64 isList: empty set 7.58/2.64 U41: {1} 7.58/2.64 U42: {1} 7.58/2.64 and: {1} 7.58/2.64 isPalListKind: empty set 7.58/2.64 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (39) CSRRRRProof (EQUIVALENT) 7.58/2.64 The following CSR is given: Context-sensitive rewrite system: 7.58/2.64 The TRS R consists of the following rules: 7.58/2.64 7.58/2.64 U11(tt, V) -> U12(isNeList(V)) 7.58/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.58/2.64 isList(V) -> U11(isPalListKind(V), V) 7.58/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.58/2.64 7.58/2.64 The replacement map contains the following entries: 7.58/2.64 7.58/2.64 __: {1, 2} 7.58/2.64 U11: {1} 7.58/2.64 tt: empty set 7.58/2.64 U12: {1} 7.58/2.64 isNeList: empty set 7.58/2.64 isList: empty set 7.58/2.64 U41: {1} 7.58/2.64 U42: {1} 7.58/2.64 and: {1} 7.58/2.64 isPalListKind: empty set 7.58/2.64 Used ordering: 7.58/2.64 Polynomial interpretation [POLO]: 7.58/2.64 7.58/2.64 POL(U11(x_1, x_2)) = x_1 7.58/2.64 POL(U12(x_1)) = 1 + 2*x_1 7.58/2.64 POL(U41(x_1, x_2, x_3)) = 2 + 2*x_1 + 2*x_2 + 2*x_3 7.58/2.64 POL(U42(x_1, x_2)) = 2 + x_1 + 2*x_2 7.58/2.64 POL(__(x_1, x_2)) = 2 + x_1 + 2*x_2 7.58/2.64 POL(and(x_1, x_2)) = x_1 + x_2 7.58/2.64 POL(isList(x_1)) = 2 + 2*x_1 7.58/2.64 POL(isNeList(x_1)) = 0 7.58/2.64 POL(isPalListKind(x_1)) = 1 + 2*x_1 7.58/2.64 POL(tt) = 2 7.58/2.64 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 7.58/2.64 7.58/2.64 U11(tt, V) -> U12(isNeList(V)) 7.58/2.64 U41(tt, V1, V2) -> U42(isList(V1), V2) 7.58/2.64 isList(V) -> U11(isPalListKind(V), V) 7.58/2.64 isPalListKind(__(V1, V2)) -> and(isPalListKind(V1), isPalListKind(V2)) 7.58/2.64 7.58/2.64 7.58/2.64 7.58/2.64 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (40) 7.58/2.64 Obligation: 7.58/2.64 Context-sensitive rewrite system: 7.58/2.64 R is empty. 7.58/2.64 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (41) RisEmptyProof (EQUIVALENT) 7.58/2.64 The CSR R is empty. Hence, termination is trivially proven. 7.58/2.64 ---------------------------------------- 7.58/2.64 7.58/2.64 (42) 7.58/2.64 YES 8.47/4.57 EOF