3.32/1.59 YES 3.32/1.60 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 3.32/1.60 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 3.32/1.60 3.32/1.60 3.32/1.60 Termination of the given CSR could be proven: 3.32/1.60 3.32/1.60 (0) CSR 3.32/1.60 (1) CSDependencyPairsProof [EQUIVALENT, 0 ms] 3.32/1.60 (2) QCSDP 3.32/1.60 (3) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 3.32/1.60 (4) AND 3.32/1.60 (5) QCSDP 3.32/1.60 (6) QCSDPSubtermProof [EQUIVALENT, 0 ms] 3.32/1.60 (7) QCSDP 3.32/1.60 (8) PIsEmptyProof [EQUIVALENT, 0 ms] 3.32/1.60 (9) YES 3.32/1.60 (10) QCSDP 3.32/1.60 (11) QCSDPSubtermProof [EQUIVALENT, 0 ms] 3.32/1.60 (12) QCSDP 3.32/1.60 (13) PIsEmptyProof [EQUIVALENT, 0 ms] 3.32/1.60 (14) YES 3.32/1.60 (15) QCSDP 3.32/1.60 (16) QCSDPSubtermProof [EQUIVALENT, 0 ms] 3.32/1.60 (17) QCSDP 3.32/1.60 (18) PIsEmptyProof [EQUIVALENT, 0 ms] 3.32/1.60 (19) YES 3.32/1.60 (20) QCSDP 3.32/1.60 (21) QCSDPSubtermProof [EQUIVALENT, 0 ms] 3.32/1.60 (22) QCSDP 3.32/1.60 (23) PIsEmptyProof [EQUIVALENT, 0 ms] 3.32/1.60 (24) YES 3.32/1.60 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (0) 3.32/1.60 Obligation: 3.32/1.60 Context-sensitive rewrite system: 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 The replacement map contains the following entries: 3.32/1.60 3.32/1.60 terms: {1} 3.32/1.60 cons: {1} 3.32/1.60 recip: {1} 3.32/1.60 sqr: {1} 3.32/1.60 s: {1} 3.32/1.60 0: empty set 3.32/1.60 add: {1, 2} 3.32/1.60 dbl: {1} 3.32/1.60 first: {1, 2} 3.32/1.60 nil: empty set 3.32/1.60 half: {1} 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (1) CSDependencyPairsProof (EQUIVALENT) 3.32/1.60 Using Improved CS-DPs [LPAR08] we result in the following initial Q-CSDP problem. 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (2) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1, SQR_1, TERMS_1, ADD_2, DBL_1, HALF_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The ordinary context-sensitive dependency pairs DP_o are: 3.32/1.60 TERMS(N) -> SQR(N) 3.32/1.60 SQR(s(X)) -> ADD(sqr(X), dbl(X)) 3.32/1.60 SQR(s(X)) -> SQR(X) 3.32/1.60 SQR(s(X)) -> DBL(X) 3.32/1.60 DBL(s(X)) -> DBL(X) 3.32/1.60 ADD(s(X), Y) -> ADD(X, Y) 3.32/1.60 HALF(s(s(X))) -> HALF(X) 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (3) QCSDependencyGraphProof (EQUIVALENT) 3.32/1.60 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 4 SCCs with 3 less nodes. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (4) 3.32/1.60 Complex Obligation (AND) 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (5) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1, HALF_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 3.32/1.60 HALF(s(s(X))) -> HALF(X) 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (6) QCSDPSubtermProof (EQUIVALENT) 3.32/1.60 We use the subterm processor [DA_EMMES]. 3.32/1.60 3.32/1.60 3.32/1.60 The following pairs can be oriented strictly and are deleted. 3.32/1.60 3.32/1.60 HALF(s(s(X))) -> HALF(X) 3.32/1.60 The remaining pairs can at least be oriented weakly. 3.32/1.60 none 3.32/1.60 Used ordering: Combined order from the following AFS and order. 3.32/1.60 HALF(x1) = x1 3.32/1.60 3.32/1.60 3.32/1.60 Subterm Order 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (7) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 none 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (8) PIsEmptyProof (EQUIVALENT) 3.32/1.60 The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (9) 3.32/1.60 YES 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (10) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1, DBL_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 3.32/1.60 DBL(s(X)) -> DBL(X) 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (11) QCSDPSubtermProof (EQUIVALENT) 3.32/1.60 We use the subterm processor [DA_EMMES]. 3.32/1.60 3.32/1.60 3.32/1.60 The following pairs can be oriented strictly and are deleted. 3.32/1.60 3.32/1.60 DBL(s(X)) -> DBL(X) 3.32/1.60 The remaining pairs can at least be oriented weakly. 3.32/1.60 none 3.32/1.60 Used ordering: Combined order from the following AFS and order. 3.32/1.60 DBL(x1) = x1 3.32/1.60 3.32/1.60 3.32/1.60 Subterm Order 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (12) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 none 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (13) PIsEmptyProof (EQUIVALENT) 3.32/1.60 The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (14) 3.32/1.60 YES 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (15) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1, ADD_2} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 3.32/1.60 ADD(s(X), Y) -> ADD(X, Y) 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (16) QCSDPSubtermProof (EQUIVALENT) 3.32/1.60 We use the subterm processor [DA_EMMES]. 3.32/1.60 3.32/1.60 3.32/1.60 The following pairs can be oriented strictly and are deleted. 3.32/1.60 3.32/1.60 ADD(s(X), Y) -> ADD(X, Y) 3.32/1.60 The remaining pairs can at least be oriented weakly. 3.32/1.60 none 3.32/1.60 Used ordering: Combined order from the following AFS and order. 3.32/1.60 ADD(x1, x2) = x1 3.32/1.60 3.32/1.60 3.32/1.60 Subterm Order 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (17) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 none 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (18) PIsEmptyProof (EQUIVALENT) 3.32/1.60 The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (19) 3.32/1.60 YES 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (20) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1, SQR_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 3.32/1.60 SQR(s(X)) -> SQR(X) 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (21) QCSDPSubtermProof (EQUIVALENT) 3.32/1.60 We use the subterm processor [DA_EMMES]. 3.32/1.60 3.32/1.60 3.32/1.60 The following pairs can be oriented strictly and are deleted. 3.32/1.60 3.32/1.60 SQR(s(X)) -> SQR(X) 3.32/1.60 The remaining pairs can at least be oriented weakly. 3.32/1.60 none 3.32/1.60 Used ordering: Combined order from the following AFS and order. 3.32/1.60 SQR(x1) = x1 3.32/1.60 3.32/1.60 3.32/1.60 Subterm Order 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (22) 3.32/1.60 Obligation: 3.32/1.60 Q-restricted context-sensitive dependency pair problem: 3.32/1.60 The symbols in {terms_1, recip_1, sqr_1, s_1, add_2, dbl_1, first_2, half_1} are replacing on all positions. 3.32/1.60 For all symbols f in {cons_2} we have mu(f) = {1}. 3.32/1.60 3.32/1.60 The TRS P consists of the following rules: 3.32/1.60 none 3.32/1.60 3.32/1.60 The TRS R consists of the following rules: 3.32/1.60 3.32/1.60 terms(N) -> cons(recip(sqr(N)), terms(s(N))) 3.32/1.60 sqr(0) -> 0 3.32/1.60 sqr(s(X)) -> s(add(sqr(X), dbl(X))) 3.32/1.60 dbl(0) -> 0 3.32/1.60 dbl(s(X)) -> s(s(dbl(X))) 3.32/1.60 add(0, X) -> X 3.32/1.60 add(s(X), Y) -> s(add(X, Y)) 3.32/1.60 first(0, X) -> nil 3.32/1.60 first(s(X), cons(Y, Z)) -> cons(Y, first(X, Z)) 3.32/1.60 half(0) -> 0 3.32/1.60 half(s(0)) -> 0 3.32/1.60 half(s(s(X))) -> s(half(X)) 3.32/1.60 half(dbl(X)) -> X 3.32/1.60 3.32/1.60 Q is empty. 3.32/1.60 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (23) PIsEmptyProof (EQUIVALENT) 3.32/1.60 The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. 3.32/1.60 ---------------------------------------- 3.32/1.60 3.32/1.60 (24) 3.32/1.60 YES 3.32/1.64 EOF