3.32/1.48 YES 3.32/1.49 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 3.32/1.49 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.32/1.49 3.32/1.49 3.32/1.49 Termination of the given CSR could be proven: 3.32/1.49 3.32/1.49 (0) CSR 3.32/1.49 (1) CSRRRRProof [EQUIVALENT, 76 ms] 3.32/1.49 (2) CSR 3.32/1.49 (3) CSRRRRProof [EQUIVALENT, 9 ms] 3.32/1.49 (4) CSR 3.32/1.49 (5) CSRRRRProof [EQUIVALENT, 0 ms] 3.32/1.49 (6) CSR 3.32/1.49 (7) CSRRRRProof [EQUIVALENT, 0 ms] 3.32/1.49 (8) CSR 3.32/1.49 (9) CSRRRRProof [EQUIVALENT, 0 ms] 3.32/1.49 (10) CSR 3.32/1.49 (11) RisEmptyProof [EQUIVALENT, 0 ms] 3.32/1.49 (12) YES 3.32/1.49 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (0) 3.32/1.49 Obligation: 3.32/1.49 Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 __(__(X, Y), Z) -> __(X, __(Y, Z)) 3.32/1.49 __(X, nil) -> X 3.32/1.49 __(nil, X) -> X 3.32/1.49 and(tt, X) -> X 3.32/1.49 isList(V) -> isNeList(V) 3.32/1.49 isList(nil) -> tt 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 isNeList(__(V1, V2)) -> and(isList(V1), isNeList(V2)) 3.32/1.49 isNeList(__(V1, V2)) -> and(isNeList(V1), isList(V2)) 3.32/1.49 isNePal(V) -> isQid(V) 3.32/1.49 isNePal(__(I, __(P, I))) -> and(isQid(I), isPal(P)) 3.32/1.49 isPal(V) -> isNePal(V) 3.32/1.49 isPal(nil) -> tt 3.32/1.49 isQid(a) -> tt 3.32/1.49 isQid(e) -> tt 3.32/1.49 isQid(i) -> tt 3.32/1.49 isQid(o) -> tt 3.32/1.49 isQid(u) -> tt 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 nil: empty set 3.32/1.49 and: {1} 3.32/1.49 tt: empty set 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 isNePal: empty set 3.32/1.49 isPal: empty set 3.32/1.49 a: empty set 3.32/1.49 e: empty set 3.32/1.49 i: empty set 3.32/1.49 o: empty set 3.32/1.49 u: empty set 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (1) CSRRRRProof (EQUIVALENT) 3.32/1.49 The following CSR is given: Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 __(__(X, Y), Z) -> __(X, __(Y, Z)) 3.32/1.49 __(X, nil) -> X 3.32/1.49 __(nil, X) -> X 3.32/1.49 and(tt, X) -> X 3.32/1.49 isList(V) -> isNeList(V) 3.32/1.49 isList(nil) -> tt 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 isNeList(__(V1, V2)) -> and(isList(V1), isNeList(V2)) 3.32/1.49 isNeList(__(V1, V2)) -> and(isNeList(V1), isList(V2)) 3.32/1.49 isNePal(V) -> isQid(V) 3.32/1.49 isNePal(__(I, __(P, I))) -> and(isQid(I), isPal(P)) 3.32/1.49 isPal(V) -> isNePal(V) 3.32/1.49 isPal(nil) -> tt 3.32/1.49 isQid(a) -> tt 3.32/1.49 isQid(e) -> tt 3.32/1.49 isQid(i) -> tt 3.32/1.49 isQid(o) -> tt 3.32/1.49 isQid(u) -> tt 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 nil: empty set 3.32/1.49 and: {1} 3.32/1.49 tt: empty set 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 isNePal: empty set 3.32/1.49 isPal: empty set 3.32/1.49 a: empty set 3.32/1.49 e: empty set 3.32/1.49 i: empty set 3.32/1.49 o: empty set 3.32/1.49 u: empty set 3.32/1.49 Used ordering: 3.32/1.49 Polynomial interpretation [POLO]: 3.32/1.49 3.32/1.49 POL(__(x_1, x_2)) = 2 + 2*x_1 + x_2 3.32/1.49 POL(a) = 2 3.32/1.49 POL(and(x_1, x_2)) = 2 + 2*x_1 + x_2 3.32/1.49 POL(e) = 2 3.32/1.49 POL(i) = 2 3.32/1.49 POL(isList(x_1)) = 1 + 2*x_1 3.32/1.49 POL(isNeList(x_1)) = 2*x_1 3.32/1.49 POL(isNePal(x_1)) = 2*x_1 3.32/1.49 POL(isPal(x_1)) = 1 + 2*x_1 3.32/1.49 POL(isQid(x_1)) = 2*x_1 3.32/1.49 POL(nil) = 2 3.32/1.49 POL(o) = 2 3.32/1.49 POL(tt) = 2 3.32/1.49 POL(u) = 2 3.32/1.49 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.32/1.49 3.32/1.49 __(__(X, Y), Z) -> __(X, __(Y, Z)) 3.32/1.49 __(X, nil) -> X 3.32/1.49 __(nil, X) -> X 3.32/1.49 and(tt, X) -> X 3.32/1.49 isList(V) -> isNeList(V) 3.32/1.49 isList(nil) -> tt 3.32/1.49 isNeList(__(V1, V2)) -> and(isNeList(V1), isList(V2)) 3.32/1.49 isNePal(__(I, __(P, I))) -> and(isQid(I), isPal(P)) 3.32/1.49 isPal(V) -> isNePal(V) 3.32/1.49 isPal(nil) -> tt 3.32/1.49 isQid(a) -> tt 3.32/1.49 isQid(e) -> tt 3.32/1.49 isQid(i) -> tt 3.32/1.49 isQid(o) -> tt 3.32/1.49 isQid(u) -> tt 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (2) 3.32/1.49 Obligation: 3.32/1.49 Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 isNeList(__(V1, V2)) -> and(isList(V1), isNeList(V2)) 3.32/1.49 isNePal(V) -> isQid(V) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 isNePal: empty set 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (3) CSRRRRProof (EQUIVALENT) 3.32/1.49 The following CSR is given: Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 isNeList(__(V1, V2)) -> and(isList(V1), isNeList(V2)) 3.32/1.49 isNePal(V) -> isQid(V) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 isNePal: empty set 3.32/1.49 Used ordering: 3.32/1.49 Polynomial interpretation [POLO]: 3.32/1.49 3.32/1.49 POL(__(x_1, x_2)) = 2*x_1 + x_2 3.32/1.49 POL(and(x_1, x_2)) = x_1 3.32/1.49 POL(isList(x_1)) = 2*x_1 3.32/1.49 POL(isNeList(x_1)) = 2*x_1 3.32/1.49 POL(isNePal(x_1)) = 1 + 2*x_1 3.32/1.49 POL(isQid(x_1)) = 2*x_1 3.32/1.49 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.32/1.49 3.32/1.49 isNePal(V) -> isQid(V) 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (4) 3.32/1.49 Obligation: 3.32/1.49 Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 isNeList(__(V1, V2)) -> and(isList(V1), isNeList(V2)) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (5) CSRRRRProof (EQUIVALENT) 3.32/1.49 The following CSR is given: Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 isNeList(__(V1, V2)) -> and(isList(V1), isNeList(V2)) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 Used ordering: 3.32/1.49 Polynomial interpretation [POLO]: 3.32/1.49 3.32/1.49 POL(__(x_1, x_2)) = x_1 + x_2 3.32/1.49 POL(and(x_1, x_2)) = x_1 3.32/1.49 POL(isList(x_1)) = 0 3.32/1.49 POL(isNeList(x_1)) = 1 3.32/1.49 POL(isQid(x_1)) = 1 3.32/1.49 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.32/1.49 3.32/1.49 isNeList(__(V1, V2)) -> and(isList(V1), isNeList(V2)) 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (6) 3.32/1.49 Obligation: 3.32/1.49 Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (7) CSRRRRProof (EQUIVALENT) 3.32/1.49 The following CSR is given: Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 isNeList: empty set 3.32/1.49 isQid: empty set 3.32/1.49 Used ordering: 3.32/1.49 Polynomial interpretation [POLO]: 3.32/1.49 3.32/1.49 POL(__(x_1, x_2)) = 2*x_1 + x_2 3.32/1.49 POL(and(x_1, x_2)) = x_1 3.32/1.49 POL(isList(x_1)) = 2*x_1 3.32/1.49 POL(isNeList(x_1)) = 1 + 2*x_1 3.32/1.49 POL(isQid(x_1)) = 2*x_1 3.32/1.49 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.32/1.49 3.32/1.49 isNeList(V) -> isQid(V) 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (8) 3.32/1.49 Obligation: 3.32/1.49 Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (9) CSRRRRProof (EQUIVALENT) 3.32/1.49 The following CSR is given: Context-sensitive rewrite system: 3.32/1.49 The TRS R consists of the following rules: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 3.32/1.49 The replacement map contains the following entries: 3.32/1.49 3.32/1.49 __: {1, 2} 3.32/1.49 and: {1} 3.32/1.49 isList: empty set 3.32/1.49 Used ordering: 3.32/1.49 Polynomial interpretation [POLO]: 3.32/1.49 3.32/1.49 POL(__(x_1, x_2)) = 1 + x_1 + x_2 3.32/1.49 POL(and(x_1, x_2)) = x_1 3.32/1.49 POL(isList(x_1)) = 1 + x_1 3.32/1.49 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.32/1.49 3.32/1.49 isList(__(V1, V2)) -> and(isList(V1), isList(V2)) 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (10) 3.32/1.49 Obligation: 3.32/1.49 Context-sensitive rewrite system: 3.32/1.49 R is empty. 3.32/1.49 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (11) RisEmptyProof (EQUIVALENT) 3.32/1.49 The CSR R is empty. Hence, termination is trivially proven. 3.32/1.49 ---------------------------------------- 3.32/1.49 3.32/1.49 (12) 3.32/1.49 YES 3.32/1.51 EOF