/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.xml /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 mhark 20210624 unpublished Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRS Reverse [EQUIVALENT, 0 ms] (2) QTRS (3) DependencyPairsProof [EQUIVALENT, 16 ms] (4) QDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) QDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) QDP (10) MNOCProof [EQUIVALENT, 0 ms] (11) QDP (12) DependencyGraphProof [EQUIVALENT, 0 ms] (13) QDP (14) QDPOrderProof [EQUIVALENT, 159 ms] (15) QDP (16) QDPOrderProof [EQUIVALENT, 164 ms] (17) QDP (18) QDPOrderProof [EQUIVALENT, 38 ms] (19) QDP (20) PisEmptyProof [EQUIVALENT, 0 ms] (21) YES (22) QDP (23) QDPOrderProof [EQUIVALENT, 34 ms] (24) QDP (25) UsableRulesProof [EQUIVALENT, 0 ms] (26) QDP (27) QDPSizeChangeProof [EQUIVALENT, 0 ms] (28) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: p(0(x1)) -> 0(s(s(p(x1)))) p(s(x1)) -> x1 p(p(s(x1))) -> p(x1) f(s(x1)) -> g(s(x1)) g(x1) -> i(s(half(x1))) i(x1) -> f(p(x1)) half(0(x1)) -> 0(s(s(half(x1)))) half(s(s(x1))) -> s(half(p(p(s(s(x1)))))) 0(x1) -> x1 rd(0(x1)) -> 0(0(0(0(0(0(rd(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: 0(p(x1)) -> p(s(s(0(x1)))) s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) 0(half(x1)) -> half(s(s(0(x1)))) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) 0(x1) -> x1 0(rd(x1)) -> rd(0(0(0(0(0(0(x1))))))) Q is empty. ---------------------------------------- (3) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (4) Obligation: Q DP problem: The TRS P consists of the following rules: 0^1(p(x1)) -> S(s(0(x1))) 0^1(p(x1)) -> S(0(x1)) 0^1(p(x1)) -> 0^1(x1) S(f(x1)) -> S(g(x1)) S(f(x1)) -> G(x1) G(x1) -> S(i(x1)) G(x1) -> I(x1) 0^1(half(x1)) -> S(s(0(x1))) 0^1(half(x1)) -> S(0(x1)) 0^1(half(x1)) -> 0^1(x1) S(s(half(x1))) -> S(s(p(p(half(s(x1)))))) S(s(half(x1))) -> S(p(p(half(s(x1))))) S(s(half(x1))) -> S(x1) 0^1(rd(x1)) -> 0^1(0(0(0(0(0(x1)))))) 0^1(rd(x1)) -> 0^1(0(0(0(0(x1))))) 0^1(rd(x1)) -> 0^1(0(0(0(x1)))) 0^1(rd(x1)) -> 0^1(0(0(x1))) 0^1(rd(x1)) -> 0^1(0(x1)) 0^1(rd(x1)) -> 0^1(x1) The TRS R consists of the following rules: 0(p(x1)) -> p(s(s(0(x1)))) s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) 0(half(x1)) -> half(s(s(0(x1)))) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) 0(x1) -> x1 0(rd(x1)) -> rd(0(0(0(0(0(0(x1))))))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (5) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 6 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: S(f(x1)) -> G(x1) G(x1) -> S(i(x1)) S(f(x1)) -> S(g(x1)) S(s(half(x1))) -> S(s(p(p(half(s(x1)))))) S(s(half(x1))) -> S(x1) The TRS R consists of the following rules: 0(p(x1)) -> p(s(s(0(x1)))) s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) 0(half(x1)) -> half(s(s(0(x1)))) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) 0(x1) -> x1 0(rd(x1)) -> rd(0(0(0(0(0(0(x1))))))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) 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. ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: S(f(x1)) -> G(x1) G(x1) -> S(i(x1)) S(f(x1)) -> S(g(x1)) S(s(half(x1))) -> S(s(p(p(half(s(x1)))))) S(s(half(x1))) -> S(x1) The TRS R consists of the following rules: s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: S(f(x1)) -> G(x1) G(x1) -> S(i(x1)) S(f(x1)) -> S(g(x1)) S(s(half(x1))) -> S(s(p(p(half(s(x1)))))) S(s(half(x1))) -> S(x1) The TRS R consists of the following rules: s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) The set Q consists of the following terms: s(p(x0)) s(s(half(x0))) s(f(x0)) g(x0) i(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: S(s(half(x1))) -> S(s(p(p(half(s(x1)))))) S(f(x1)) -> S(g(x1)) S(s(half(x1))) -> S(x1) The TRS R consists of the following rules: s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) The set Q consists of the following terms: s(p(x0)) s(s(half(x0))) s(f(x0)) g(x0) i(x0) 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(s(p(p(half(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]] + [[0A, -I, 0A]] * x_1 >>> <<< POL(s(x_1)) = [[0A], [-I], [0A]] + [[-I, 0A, 0A], [0A, 0A, 0A], [-I, 0A, 0A]] * x_1 >>> <<< POL(half(x_1)) = [[0A], [0A], [1A]] + [[-I, -I, -I], [-I, -I, -I], [0A, 0A, 0A]] * x_1 >>> <<< POL(p(x_1)) = [[0A], [0A], [0A]] + [[0A, 0A, -I], [0A, -I, 0A], [0A, -I, -I]] * x_1 >>> <<< POL(f(x_1)) = [[1A], [1A], [0A]] + [[0A, -I, -I], [-I, 0A, -I], [0A, 0A, -I]] * x_1 >>> <<< POL(g(x_1)) = [[0A], [0A], [1A]] + [[0A, 0A, -I], [0A, 0A, -I], [0A, 0A, -I]] * x_1 >>> <<< POL(i(x_1)) = [[1A], [1A], [1A]] + [[0A, 0A, -I], [0A, 0A, -I], [0A, 0A, -I]] * x_1 >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(f(x1)) -> s(g(x1)) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: S(f(x1)) -> S(g(x1)) S(s(half(x1))) -> S(x1) The TRS R consists of the following rules: s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) The set Q consists of the following terms: s(p(x0)) s(s(half(x0))) s(f(x0)) g(x0) i(x0) 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(half(x1))) -> 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]] + [[0A, 0A, 0A]] * x_1 >>> <<< POL(f(x_1)) = [[0A], [0A], [-I]] + [[-I, -I, 0A], [-I, -I, 0A], [-I, -I, 0A]] * x_1 >>> <<< POL(g(x_1)) = [[0A], [0A], [0A]] + [[-I, -I, 0A], [-I, -I, 0A], [-I, -I, 0A]] * x_1 >>> <<< POL(s(x_1)) = [[0A], [-I], [-I]] + [[0A, 0A, 0A], [0A, 1A, 0A], [0A, 0A, 0A]] * x_1 >>> <<< POL(half(x_1)) = [[0A], [0A], [0A]] + [[0A, 0A, 0A], [0A, 0A, 0A], [0A, -I, 0A]] * x_1 >>> <<< POL(i(x_1)) = [[0A], [-I], [0A]] + [[-I, -I, 0A], [-I, -I, -I], [-I, -I, 0A]] * x_1 >>> <<< POL(p(x_1)) = [[0A], [-I], [0A]] + [[0A, 0A, 0A], [-I, -I, -I], [0A, 0A, 0A]] * x_1 >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: g(x1) -> half(s(i(x1))) s(f(x1)) -> s(g(x1)) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) i(x1) -> p(f(x1)) s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: S(f(x1)) -> S(g(x1)) The TRS R consists of the following rules: s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) The set Q consists of the following terms: s(p(x0)) s(s(half(x0))) s(f(x0)) g(x0) i(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. S(f(x1)) -> S(g(x1)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( S_1(x_1) ) = max{0, 2x_1 - 2} POL( g_1(x_1) ) = 0 POL( half_1(x_1) ) = max{0, -2} POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( i_1(x_1) ) = 0 POL( f_1(x_1) ) = x_1 + 2 POL( p_1(x_1) ) = max{0, 2x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: g(x1) -> half(s(i(x1))) ---------------------------------------- (19) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) The set Q consists of the following terms: s(p(x0)) s(s(half(x0))) s(f(x0)) g(x0) i(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: 0^1(half(x1)) -> 0^1(x1) 0^1(p(x1)) -> 0^1(x1) 0^1(rd(x1)) -> 0^1(0(0(0(0(0(x1)))))) 0^1(rd(x1)) -> 0^1(0(0(0(0(x1))))) 0^1(rd(x1)) -> 0^1(0(0(0(x1)))) 0^1(rd(x1)) -> 0^1(0(0(x1))) 0^1(rd(x1)) -> 0^1(0(x1)) 0^1(rd(x1)) -> 0^1(x1) The TRS R consists of the following rules: 0(p(x1)) -> p(s(s(0(x1)))) s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) 0(half(x1)) -> half(s(s(0(x1)))) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) 0(x1) -> x1 0(rd(x1)) -> rd(0(0(0(0(0(0(x1))))))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. 0^1(rd(x1)) -> 0^1(0(0(0(0(0(x1)))))) 0^1(rd(x1)) -> 0^1(0(0(0(0(x1))))) 0^1(rd(x1)) -> 0^1(0(0(0(x1)))) 0^1(rd(x1)) -> 0^1(0(0(x1))) 0^1(rd(x1)) -> 0^1(0(x1)) 0^1(rd(x1)) -> 0^1(x1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0(x_1)) = x_1 POL(0^1(x_1)) = x_1 POL(f(x_1)) = 1 + x_1 POL(g(x_1)) = 1 + x_1 POL(half(x_1)) = x_1 POL(i(x_1)) = 1 + x_1 POL(p(x_1)) = x_1 POL(rd(x_1)) = 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: 0(p(x1)) -> p(s(s(0(x1)))) 0(half(x1)) -> half(s(s(0(x1)))) 0(x1) -> x1 0(rd(x1)) -> rd(0(0(0(0(0(0(x1))))))) s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: 0^1(half(x1)) -> 0^1(x1) 0^1(p(x1)) -> 0^1(x1) The TRS R consists of the following rules: 0(p(x1)) -> p(s(s(0(x1)))) s(p(x1)) -> x1 s(p(p(x1))) -> p(x1) s(f(x1)) -> s(g(x1)) g(x1) -> half(s(i(x1))) i(x1) -> p(f(x1)) 0(half(x1)) -> half(s(s(0(x1)))) s(s(half(x1))) -> s(s(p(p(half(s(x1)))))) 0(x1) -> x1 0(rd(x1)) -> rd(0(0(0(0(0(0(x1))))))) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) 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. ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: 0^1(half(x1)) -> 0^1(x1) 0^1(p(x1)) -> 0^1(x1) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) 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(half(x1)) -> 0^1(x1) The graph contains the following edges 1 > 1 *0^1(p(x1)) -> 0^1(x1) The graph contains the following edges 1 > 1 ---------------------------------------- (28) YES