3.15/1.45 YES 3.15/1.46 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 3.15/1.46 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.15/1.46 3.15/1.46 3.15/1.46 Termination of the given CSR could be proven: 3.15/1.46 3.15/1.46 (0) CSR 3.15/1.46 (1) CSRRRRProof [EQUIVALENT, 57 ms] 3.15/1.46 (2) CSR 3.15/1.46 (3) CSRRRRProof [EQUIVALENT, 0 ms] 3.15/1.46 (4) CSR 3.15/1.46 (5) CSRRRRProof [EQUIVALENT, 2 ms] 3.15/1.46 (6) CSR 3.15/1.46 (7) RisEmptyProof [EQUIVALENT, 0 ms] 3.15/1.46 (8) YES 3.15/1.46 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (0) 3.15/1.46 Obligation: 3.15/1.46 Context-sensitive rewrite system: 3.15/1.46 The TRS R consists of the following rules: 3.15/1.46 3.15/1.46 eq(0, 0) -> true 3.15/1.46 eq(s(X), s(Y)) -> eq(X, Y) 3.15/1.46 eq(X, Y) -> false 3.15/1.46 inf(X) -> cons(X, inf(s(X))) 3.15/1.46 take(0, X) -> nil 3.15/1.46 take(s(X), cons(Y, L)) -> cons(Y, take(X, L)) 3.15/1.46 length(nil) -> 0 3.15/1.46 length(cons(X, L)) -> s(length(L)) 3.15/1.46 3.15/1.46 The replacement map contains the following entries: 3.15/1.46 3.15/1.46 eq: empty set 3.15/1.46 0: empty set 3.15/1.46 true: empty set 3.15/1.46 s: empty set 3.15/1.46 false: empty set 3.15/1.46 inf: {1} 3.15/1.46 cons: empty set 3.15/1.46 take: {1, 2} 3.15/1.46 nil: empty set 3.15/1.46 length: {1} 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (1) CSRRRRProof (EQUIVALENT) 3.15/1.46 The following CSR is given: Context-sensitive rewrite system: 3.15/1.46 The TRS R consists of the following rules: 3.15/1.46 3.15/1.46 eq(0, 0) -> true 3.15/1.46 eq(s(X), s(Y)) -> eq(X, Y) 3.15/1.46 eq(X, Y) -> false 3.15/1.46 inf(X) -> cons(X, inf(s(X))) 3.15/1.46 take(0, X) -> nil 3.15/1.46 take(s(X), cons(Y, L)) -> cons(Y, take(X, L)) 3.15/1.46 length(nil) -> 0 3.15/1.46 length(cons(X, L)) -> s(length(L)) 3.15/1.46 3.15/1.46 The replacement map contains the following entries: 3.15/1.46 3.15/1.46 eq: empty set 3.15/1.46 0: empty set 3.15/1.46 true: empty set 3.15/1.46 s: empty set 3.15/1.46 false: empty set 3.15/1.46 inf: {1} 3.15/1.46 cons: empty set 3.15/1.46 take: {1, 2} 3.15/1.46 nil: empty set 3.15/1.46 length: {1} 3.15/1.46 Used ordering: 3.15/1.46 Polynomial interpretation [POLO]: 3.15/1.46 3.15/1.46 POL(0) = 1 3.15/1.46 POL(cons(x_1, x_2)) = 1 + x_1 3.15/1.46 POL(eq(x_1, x_2)) = 0 3.15/1.46 POL(false) = 0 3.15/1.46 POL(inf(x_1)) = 2 + x_1 3.15/1.46 POL(length(x_1)) = 2 + x_1 3.15/1.46 POL(nil) = 1 3.15/1.46 POL(s(x_1)) = 0 3.15/1.46 POL(take(x_1, x_2)) = 2*x_1 + 2*x_2 3.15/1.46 POL(true) = 0 3.15/1.46 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.15/1.46 3.15/1.46 inf(X) -> cons(X, inf(s(X))) 3.15/1.46 take(0, X) -> nil 3.15/1.46 take(s(X), cons(Y, L)) -> cons(Y, take(X, L)) 3.15/1.46 length(nil) -> 0 3.15/1.46 length(cons(X, L)) -> s(length(L)) 3.15/1.46 3.15/1.46 3.15/1.46 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (2) 3.15/1.46 Obligation: 3.15/1.46 Context-sensitive rewrite system: 3.15/1.46 The TRS R consists of the following rules: 3.15/1.46 3.15/1.46 eq(0, 0) -> true 3.15/1.46 eq(s(X), s(Y)) -> eq(X, Y) 3.15/1.46 eq(X, Y) -> false 3.15/1.46 3.15/1.46 The replacement map contains the following entries: 3.15/1.46 3.15/1.46 eq: empty set 3.15/1.46 0: empty set 3.15/1.46 true: empty set 3.15/1.46 s: empty set 3.15/1.46 false: empty set 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (3) CSRRRRProof (EQUIVALENT) 3.15/1.46 The following CSR is given: Context-sensitive rewrite system: 3.15/1.46 The TRS R consists of the following rules: 3.15/1.46 3.15/1.46 eq(0, 0) -> true 3.15/1.46 eq(s(X), s(Y)) -> eq(X, Y) 3.15/1.46 eq(X, Y) -> false 3.15/1.46 3.15/1.46 The replacement map contains the following entries: 3.15/1.46 3.15/1.46 eq: empty set 3.15/1.46 0: empty set 3.15/1.46 true: empty set 3.15/1.46 s: empty set 3.15/1.46 false: empty set 3.15/1.46 Used ordering: 3.15/1.46 Polynomial interpretation [POLO]: 3.15/1.46 3.15/1.46 POL(0) = 1 3.15/1.46 POL(eq(x_1, x_2)) = x_1 + x_2 3.15/1.46 POL(false) = 0 3.15/1.46 POL(s(x_1)) = 1 + x_1 3.15/1.46 POL(true) = 0 3.15/1.46 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.15/1.46 3.15/1.46 eq(0, 0) -> true 3.15/1.46 eq(s(X), s(Y)) -> eq(X, Y) 3.15/1.46 3.15/1.46 3.15/1.46 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (4) 3.15/1.46 Obligation: 3.15/1.46 Context-sensitive rewrite system: 3.15/1.46 The TRS R consists of the following rules: 3.15/1.46 3.15/1.46 eq(X, Y) -> false 3.15/1.46 3.15/1.46 The replacement map contains the following entries: 3.15/1.46 3.15/1.46 eq: empty set 3.15/1.46 false: empty set 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (5) CSRRRRProof (EQUIVALENT) 3.15/1.46 The following CSR is given: Context-sensitive rewrite system: 3.15/1.46 The TRS R consists of the following rules: 3.15/1.46 3.15/1.46 eq(X, Y) -> false 3.15/1.46 3.15/1.46 The replacement map contains the following entries: 3.15/1.46 3.15/1.46 eq: empty set 3.15/1.46 false: empty set 3.15/1.46 Used ordering: 3.15/1.46 Polynomial interpretation [POLO]: 3.15/1.46 3.15/1.46 POL(eq(x_1, x_2)) = 1 3.15/1.46 POL(false) = 0 3.15/1.46 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 3.15/1.46 3.15/1.46 eq(X, Y) -> false 3.15/1.46 3.15/1.46 3.15/1.46 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (6) 3.15/1.46 Obligation: 3.15/1.46 Context-sensitive rewrite system: 3.15/1.46 R is empty. 3.15/1.46 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (7) RisEmptyProof (EQUIVALENT) 3.15/1.46 The CSR R is empty. Hence, termination is trivially proven. 3.15/1.46 ---------------------------------------- 3.15/1.46 3.15/1.46 (8) 3.15/1.46 YES 3.15/1.49 EOF