YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) DependencyPairsProof [EQUIVALENT, 26 ms] (2) QDP (3) DependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) QDP (6) UsableRulesProof [EQUIVALENT, 0 ms] (7) QDP (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] (9) YES (10) QDP (11) UsableRulesProof [EQUIVALENT, 0 ms] (12) QDP (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] (14) YES (15) QDP (16) UsableRulesProof [EQUIVALENT, 0 ms] (17) QDP (18) MRRProof [EQUIVALENT, 28 ms] (19) QDP (20) MNOCProof [EQUIVALENT, 0 ms] (21) QDP (22) UsableRulesProof [EQUIVALENT, 0 ms] (23) QDP (24) QDPOrderProof [EQUIVALENT, 18 ms] (25) QDP (26) PisEmptyProof [EQUIVALENT, 0 ms] (27) YES (28) QDP (29) UsableRulesProof [EQUIVALENT, 0 ms] (30) QDP (31) MRRProof [EQUIVALENT, 36 ms] (32) QDP (33) MNOCProof [EQUIVALENT, 0 ms] (34) QDP (35) UsableRulesProof [EQUIVALENT, 0 ms] (36) QDP (37) QDPOrderProof [EQUIVALENT, 106 ms] (38) QDP (39) DependencyGraphProof [EQUIVALENT, 0 ms] (40) TRUE ---------------------------------------- (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) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (2) Obligation: Q DP problem: The TRS P consists of the following rules: P(0(x1)) -> 0^1(s(s(p(x1)))) P(0(x1)) -> P(x1) P(p(s(x1))) -> P(x1) F(s(x1)) -> G(s(x1)) G(x1) -> I(s(half(x1))) G(x1) -> HALF(x1) I(x1) -> F(p(x1)) I(x1) -> P(x1) HALF(0(x1)) -> 0^1(s(s(half(x1)))) HALF(0(x1)) -> HALF(x1) HALF(s(s(x1))) -> HALF(p(p(s(s(x1))))) HALF(s(s(x1))) -> P(p(s(s(x1)))) HALF(s(s(x1))) -> P(s(s(x1))) RD(0(x1)) -> 0^1(0(0(0(0(0(rd(x1))))))) RD(0(x1)) -> 0^1(0(0(0(0(rd(x1)))))) RD(0(x1)) -> 0^1(0(0(0(rd(x1))))) RD(0(x1)) -> 0^1(0(0(rd(x1)))) RD(0(x1)) -> 0^1(0(rd(x1))) RD(0(x1)) -> 0^1(rd(x1)) RD(0(x1)) -> RD(x1) 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. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (3) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 12 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Q DP problem: The TRS P consists of the following rules: RD(0(x1)) -> RD(x1) 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. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (6) 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. ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: RD(0(x1)) -> RD(x1) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) 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: *RD(0(x1)) -> RD(x1) The graph contains the following edges 1 > 1 ---------------------------------------- (9) YES ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: P(p(s(x1))) -> P(x1) P(0(x1)) -> P(x1) 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. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (11) 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. ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: P(p(s(x1))) -> P(x1) P(0(x1)) -> P(x1) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) 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: *P(p(s(x1))) -> P(x1) The graph contains the following edges 1 > 1 *P(0(x1)) -> P(x1) The graph contains the following edges 1 > 1 ---------------------------------------- (14) YES ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: HALF(s(s(x1))) -> HALF(p(p(s(s(x1))))) HALF(0(x1)) -> HALF(x1) 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. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) 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. ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: HALF(s(s(x1))) -> HALF(p(p(s(s(x1))))) HALF(0(x1)) -> HALF(x1) The TRS R consists of the following rules: p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) p(p(s(x1))) -> p(x1) 0(x1) -> x1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented dependency pairs: HALF(0(x1)) -> HALF(x1) Strictly oriented rules of the TRS R: 0(x1) -> x1 Used ordering: Polynomial interpretation [POLO]: POL(0(x_1)) = 2 + 2*x_1 POL(HALF(x_1)) = x_1 POL(p(x_1)) = x_1 POL(s(x_1)) = x_1 ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: HALF(s(s(x1))) -> HALF(p(p(s(s(x1))))) The TRS R consists of the following rules: p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) p(p(s(x1))) -> p(x1) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: HALF(s(s(x1))) -> HALF(p(p(s(s(x1))))) The TRS R consists of the following rules: p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) p(p(s(x1))) -> p(x1) The set Q consists of the following terms: p(s(x0)) p(0(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: HALF(s(s(x1))) -> HALF(p(p(s(s(x1))))) The TRS R consists of the following rules: p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) The set Q consists of the following terms: p(s(x0)) p(0(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. HALF(s(s(x1))) -> HALF(p(p(s(s(x1))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( HALF_1(x_1) ) = 2x_1 + 2 POL( p_1(x_1) ) = max{0, x_1 - 2} POL( s_1(x_1) ) = 2x_1 + 2 POL( 0_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) ---------------------------------------- (25) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) The set Q consists of the following terms: p(s(x0)) p(0(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: I(x1) -> F(p(x1)) F(s(x1)) -> G(s(x1)) G(x1) -> I(s(half(x1))) 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. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) 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. ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: I(x1) -> F(p(x1)) F(s(x1)) -> G(s(x1)) G(x1) -> I(s(half(x1))) The TRS R consists of the following rules: half(0(x1)) -> 0(s(s(half(x1)))) half(s(s(x1))) -> s(half(p(p(s(s(x1)))))) p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) p(p(s(x1))) -> p(x1) 0(x1) -> x1 Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) MRRProof (EQUIVALENT) By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. Strictly oriented rules of the TRS R: 0(x1) -> x1 Used ordering: Polynomial interpretation [POLO]: POL(0(x_1)) = 2 + x_1 POL(F(x_1)) = x_1 POL(G(x_1)) = x_1 POL(I(x_1)) = x_1 POL(half(x_1)) = x_1 POL(p(x_1)) = x_1 POL(s(x_1)) = x_1 ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: I(x1) -> F(p(x1)) F(s(x1)) -> G(s(x1)) G(x1) -> I(s(half(x1))) The TRS R consists of the following rules: half(0(x1)) -> 0(s(s(half(x1)))) half(s(s(x1))) -> s(half(p(p(s(s(x1)))))) p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) p(p(s(x1))) -> p(x1) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) MNOCProof (EQUIVALENT) We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R. ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: I(x1) -> F(p(x1)) F(s(x1)) -> G(s(x1)) G(x1) -> I(s(half(x1))) The TRS R consists of the following rules: half(0(x1)) -> 0(s(s(half(x1)))) half(s(s(x1))) -> s(half(p(p(s(s(x1)))))) p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) p(p(s(x1))) -> p(x1) The set Q consists of the following terms: half(0(x0)) half(s(s(x0))) p(s(x0)) p(0(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: I(x1) -> F(p(x1)) F(s(x1)) -> G(s(x1)) G(x1) -> I(s(half(x1))) The TRS R consists of the following rules: half(0(x1)) -> 0(s(s(half(x1)))) half(s(s(x1))) -> s(half(p(p(s(s(x1)))))) p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) The set Q consists of the following terms: half(0(x0)) half(s(s(x0))) p(s(x0)) p(0(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. F(s(x1)) -> G(s(x1)) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(I(x_1)) = [[0A]] + [[-I, 0A, 0A]] * x_1 >>> <<< POL(F(x_1)) = [[0A]] + [[0A, 0A, 0A]] * x_1 >>> <<< POL(p(x_1)) = [[0A], [-I], [0A]] + [[-I, 0A, 0A], [-I, 0A, -I], [-I, 0A, -I]] * x_1 >>> <<< POL(s(x_1)) = [[1A], [0A], [0A]] + [[1A, 1A, 1A], [-I, 0A, 0A], [0A, 0A, 0A]] * x_1 >>> <<< POL(G(x_1)) = [[0A]] + [[-I, 0A, 0A]] * x_1 >>> <<< POL(half(x_1)) = [[0A], [-I], [-I]] + [[-I, 0A, 0A], [-I, 0A, 0A], [-I, 0A, 0A]] * x_1 >>> <<< POL(0(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: p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) half(0(x1)) -> 0(s(s(half(x1)))) half(s(s(x1))) -> s(half(p(p(s(s(x1)))))) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: I(x1) -> F(p(x1)) G(x1) -> I(s(half(x1))) The TRS R consists of the following rules: half(0(x1)) -> 0(s(s(half(x1)))) half(s(s(x1))) -> s(half(p(p(s(s(x1)))))) p(s(x1)) -> x1 p(0(x1)) -> 0(s(s(p(x1)))) The set Q consists of the following terms: half(0(x0)) half(s(s(x0))) p(s(x0)) p(0(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes. ---------------------------------------- (40) TRUE