2.86/1.34 YES 2.86/1.35 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 2.86/1.35 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 2.86/1.35 2.86/1.35 2.86/1.35 Termination of the given CSR could be proven: 2.86/1.35 2.86/1.35 (0) CSR 2.86/1.35 (1) CSRRRRProof [EQUIVALENT, 63 ms] 2.86/1.35 (2) CSR 2.86/1.35 (3) RisEmptyProof [EQUIVALENT, 0 ms] 2.86/1.35 (4) YES 2.86/1.35 2.86/1.35 2.86/1.35 ---------------------------------------- 2.86/1.35 2.86/1.35 (0) 2.86/1.35 Obligation: 2.86/1.35 Context-sensitive rewrite system: 2.86/1.35 The TRS R consists of the following rules: 2.86/1.35 2.86/1.35 fst(0, Z) -> nil 2.86/1.35 fst(s(X), cons(Y, Z)) -> cons(Y, fst(X, Z)) 2.86/1.35 from(X) -> cons(X, from(s(X))) 2.86/1.35 add(0, X) -> X 2.86/1.35 add(s(X), Y) -> s(add(X, Y)) 2.86/1.35 len(nil) -> 0 2.86/1.35 len(cons(X, Z)) -> s(len(Z)) 2.86/1.35 2.86/1.35 The replacement map contains the following entries: 2.86/1.35 2.86/1.35 fst: {1, 2} 2.86/1.35 0: empty set 2.86/1.35 nil: empty set 2.86/1.35 s: empty set 2.86/1.35 cons: {1} 2.86/1.35 from: {1} 2.86/1.35 add: {1, 2} 2.86/1.35 len: {1} 2.86/1.35 2.86/1.35 ---------------------------------------- 2.86/1.35 2.86/1.35 (1) CSRRRRProof (EQUIVALENT) 2.86/1.35 The following CSR is given: Context-sensitive rewrite system: 2.86/1.35 The TRS R consists of the following rules: 2.86/1.35 2.86/1.35 fst(0, Z) -> nil 2.86/1.35 fst(s(X), cons(Y, Z)) -> cons(Y, fst(X, Z)) 2.86/1.35 from(X) -> cons(X, from(s(X))) 2.86/1.35 add(0, X) -> X 2.86/1.35 add(s(X), Y) -> s(add(X, Y)) 2.86/1.35 len(nil) -> 0 2.86/1.35 len(cons(X, Z)) -> s(len(Z)) 2.86/1.35 2.86/1.35 The replacement map contains the following entries: 2.86/1.35 2.86/1.35 fst: {1, 2} 2.86/1.35 0: empty set 2.86/1.35 nil: empty set 2.86/1.35 s: empty set 2.86/1.35 cons: {1} 2.86/1.35 from: {1} 2.86/1.35 add: {1, 2} 2.86/1.35 len: {1} 2.86/1.35 Used ordering: 2.86/1.35 Polynomial interpretation [POLO]: 2.86/1.35 2.86/1.35 POL(0) = 2 2.86/1.35 POL(add(x_1, x_2)) = 1 + x_1 + 2*x_2 2.86/1.35 POL(cons(x_1, x_2)) = 1 + 2*x_1 2.86/1.35 POL(from(x_1)) = 2 + 2*x_1 2.86/1.35 POL(fst(x_1, x_2)) = 2*x_1 + 2*x_2 2.86/1.35 POL(len(x_1)) = 2 + x_1 2.86/1.35 POL(nil) = 2 2.86/1.35 POL(s(x_1)) = 0 2.86/1.35 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 2.86/1.35 2.86/1.35 fst(0, Z) -> nil 2.86/1.35 fst(s(X), cons(Y, Z)) -> cons(Y, fst(X, Z)) 2.86/1.35 from(X) -> cons(X, from(s(X))) 2.86/1.35 add(0, X) -> X 2.86/1.35 add(s(X), Y) -> s(add(X, Y)) 2.86/1.35 len(nil) -> 0 2.86/1.35 len(cons(X, Z)) -> s(len(Z)) 2.86/1.35 2.86/1.35 2.86/1.35 2.86/1.35 2.86/1.35 ---------------------------------------- 2.86/1.35 2.86/1.35 (2) 2.86/1.35 Obligation: 2.86/1.35 Context-sensitive rewrite system: 2.86/1.35 R is empty. 2.86/1.35 2.86/1.35 ---------------------------------------- 2.86/1.35 2.86/1.35 (3) RisEmptyProof (EQUIVALENT) 2.86/1.35 The CSR R is empty. Hence, termination is trivially proven. 2.86/1.35 ---------------------------------------- 2.86/1.35 2.86/1.35 (4) 2.86/1.35 YES 3.16/1.38 EOF