/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRS Reverse [EQUIVALENT, 0 ms] (2) QTRS (3) QTRSRRRProof [EQUIVALENT, 25 ms] (4) QTRS (5) DependencyPairsProof [EQUIVALENT, 26 ms] (6) QDP (7) DependencyGraphProof [EQUIVALENT, 0 ms] (8) AND (9) QDP (10) UsableRulesProof [EQUIVALENT, 0 ms] (11) QDP (12) QDPOrderProof [EQUIVALENT, 22 ms] (13) QDP (14) QDPOrderProof [EQUIVALENT, 0 ms] (15) QDP (16) QDPOrderProof [EQUIVALENT, 504 ms] (17) QDP (18) PisEmptyProof [EQUIVALENT, 0 ms] (19) YES (20) QDP (21) UsableRulesProof [EQUIVALENT, 0 ms] (22) QDP (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] (24) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: log(s(x1)) -> s(log(half(s(x1)))) half(0(x1)) -> 0(s(s(half(x1)))) half(s(0(x1))) -> 0(x1) half(s(s(x1))) -> s(half(p(s(s(x1))))) half(half(s(s(s(s(x1)))))) -> s(s(half(half(x1)))) p(s(s(s(x1)))) -> s(p(s(s(x1)))) s(s(p(s(x1)))) -> s(s(x1)) 0(x1) -> x1 Q is empty. ---------------------------------------- (1) QTRS Reverse (EQUIVALENT) We applied the QTRS Reverse Processor [REVERSE]. ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) 0(half(x1)) -> half(s(s(0(x1)))) 0(s(half(x1))) -> 0(x1) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) 0(x1) -> x1 Q is empty. ---------------------------------------- (3) QTRSRRRProof (EQUIVALENT) Used ordering: Polynomial interpretation [POLO]: POL(0(x_1)) = 1 + x_1 POL(half(x_1)) = x_1 POL(log(x_1)) = x_1 POL(p(x_1)) = x_1 POL(s(x_1)) = x_1 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: 0(x1) -> x1 ---------------------------------------- (4) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) 0(half(x1)) -> half(s(s(0(x1)))) 0(s(half(x1))) -> 0(x1) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) Q is empty. ---------------------------------------- (5) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (6) Obligation: Q DP problem: The TRS P consists of the following rules: S(log(x1)) -> S(half(log(s(x1)))) S(log(x1)) -> S(x1) 0^1(half(x1)) -> S(s(0(x1))) 0^1(half(x1)) -> S(0(x1)) 0^1(half(x1)) -> 0^1(x1) 0^1(s(half(x1))) -> 0^1(x1) S(s(half(x1))) -> S(s(p(half(s(x1))))) S(s(half(x1))) -> S(p(half(s(x1)))) S(s(half(x1))) -> S(x1) S(s(s(s(half(half(x1)))))) -> S(s(x1)) S(s(s(s(half(half(x1)))))) -> S(x1) S(s(s(p(x1)))) -> S(s(p(s(x1)))) S(s(s(p(x1)))) -> S(p(s(x1))) S(s(s(p(x1)))) -> S(x1) The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) 0(half(x1)) -> half(s(s(0(x1)))) 0(s(half(x1))) -> 0(x1) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (7) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 6 less nodes. ---------------------------------------- (8) Complex Obligation (AND) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: S(s(half(x1))) -> S(x1) S(log(x1)) -> S(x1) S(s(s(s(half(half(x1)))))) -> S(s(x1)) S(s(s(s(half(half(x1)))))) -> S(x1) S(s(s(p(x1)))) -> S(s(p(s(x1)))) S(s(s(p(x1)))) -> S(x1) The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) 0(half(x1)) -> half(s(s(0(x1)))) 0(s(half(x1))) -> 0(x1) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: S(s(half(x1))) -> S(x1) S(log(x1)) -> S(x1) S(s(s(s(half(half(x1)))))) -> S(s(x1)) S(s(s(s(half(half(x1)))))) -> S(x1) S(s(s(p(x1)))) -> S(s(p(s(x1)))) S(s(s(p(x1)))) -> S(x1) The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) s(s(s(p(x1)))) -> s(s(p(s(x1)))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. S(log(x1)) -> S(x1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(S(x_1)) = x_1 POL(half(x_1)) = x_1 POL(log(x_1)) = 1 + x_1 POL(p(x_1)) = x_1 POL(s(x_1)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s(log(x1)) -> s(half(log(s(x1)))) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: S(s(half(x1))) -> S(x1) S(s(s(s(half(half(x1)))))) -> S(s(x1)) S(s(s(s(half(half(x1)))))) -> S(x1) S(s(s(p(x1)))) -> S(s(p(s(x1)))) S(s(s(p(x1)))) -> S(x1) The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) s(s(s(p(x1)))) -> s(s(p(s(x1)))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. S(s(half(x1))) -> S(x1) S(s(s(s(half(half(x1)))))) -> S(s(x1)) S(s(s(s(half(half(x1)))))) -> S(x1) S(s(s(p(x1)))) -> S(x1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( S_1(x_1) ) = 2x_1 + 2 POL( s_1(x_1) ) = x_1 + 2 POL( log_1(x_1) ) = max{0, -2} POL( half_1(x_1) ) = x_1 POL( p_1(x_1) ) = max{0, x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s(log(x1)) -> s(half(log(s(x1)))) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: S(s(s(p(x1)))) -> S(s(p(s(x1)))) The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) s(s(s(p(x1)))) -> s(s(p(s(x1)))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. S(s(s(p(x1)))) -> S(s(p(s(x1)))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(S(x_1)) = [[0A]] + [[-I, -I, 0A]] * x_1 >>> <<< POL(s(x_1)) = [[0A], [0A], [0A]] + [[0A, 1A, 0A], [1A, 0A, 0A], [-I, 0A, -I]] * x_1 >>> <<< POL(p(x_1)) = [[0A], [-I], [0A]] + [[0A, 0A, 0A], [-I, -I, 0A], [1A, 1A, 0A]] * x_1 >>> <<< POL(log(x_1)) = [[-I], [-I], [1A]] + [[0A, -I, 0A], [1A, -I, -I], [-I, 0A, -I]] * x_1 >>> <<< POL(half(x_1)) = [[0A], [0A], [-I]] + [[-I, -I, -I], [-I, -I, -I], [-I, -I, -I]] * x_1 >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s(log(x1)) -> s(half(log(s(x1)))) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) ---------------------------------------- (17) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) s(s(s(p(x1)))) -> s(s(p(s(x1)))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: 0^1(s(half(x1))) -> 0^1(x1) 0^1(half(x1)) -> 0^1(x1) The TRS R consists of the following rules: s(log(x1)) -> s(half(log(s(x1)))) 0(half(x1)) -> half(s(s(0(x1)))) 0(s(half(x1))) -> 0(x1) s(s(half(x1))) -> s(s(p(half(s(x1))))) s(s(s(s(half(half(x1)))))) -> half(half(s(s(x1)))) s(s(s(p(x1)))) -> s(s(p(s(x1)))) s(p(s(s(x1)))) -> s(s(x1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) UsableRulesProof (EQUIVALENT) We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: 0^1(s(half(x1))) -> 0^1(x1) 0^1(half(x1)) -> 0^1(x1) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *0^1(s(half(x1))) -> 0^1(x1) The graph contains the following edges 1 > 1 *0^1(half(x1)) -> 0^1(x1) The graph contains the following edges 1 > 1 ---------------------------------------- (24) YES