/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: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) AAECC Innermost [EQUIVALENT, 0 ms] (2) QTRS (3) DependencyPairsProof [EQUIVALENT, 0 ms] (4) QDP (5) DependencyGraphProof [EQUIVALENT, 0 ms] (6) AND (7) QDP (8) UsableRulesProof [EQUIVALENT, 0 ms] (9) QDP (10) QReductionProof [EQUIVALENT, 0 ms] (11) QDP (12) QDPSizeChangeProof [EQUIVALENT, 0 ms] (13) YES (14) QDP (15) UsableRulesProof [EQUIVALENT, 0 ms] (16) QDP (17) QReductionProof [EQUIVALENT, 0 ms] (18) QDP (19) NonInfProof [EQUIVALENT, 12 ms] (20) QDP (21) QDPOrderProof [EQUIVALENT, 0 ms] (22) QDP (23) DependencyGraphProof [EQUIVALENT, 0 ms] (24) TRUE ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: cond1(true, x, y) -> cond2(gr(x, y), x, y) cond2(true, x, y) -> cond1(gr(x, 0), y, y) cond2(false, x, y) -> cond1(gr(x, 0), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x Q is empty. ---------------------------------------- (1) AAECC Innermost (EQUIVALENT) We have applied [NOC,AAECCNOC] to switch to innermost. The TRS R 1 is gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x The TRS R 2 is cond1(true, x, y) -> cond2(gr(x, y), x, y) cond2(true, x, y) -> cond1(gr(x, 0), y, y) cond2(false, x, y) -> cond1(gr(x, 0), p(x), y) The signature Sigma is {cond1_3, cond2_3} ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: cond1(true, x, y) -> cond2(gr(x, y), x, y) cond2(true, x, y) -> cond1(gr(x, 0), y, y) cond2(false, x, y) -> cond1(gr(x, 0), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x The set Q consists of the following terms: cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) ---------------------------------------- (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: COND1(true, x, y) -> COND2(gr(x, y), x, y) COND1(true, x, y) -> GR(x, y) COND2(true, x, y) -> COND1(gr(x, 0), y, y) COND2(true, x, y) -> GR(x, 0) COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) COND2(false, x, y) -> GR(x, 0) COND2(false, x, y) -> P(x) GR(s(x), s(y)) -> GR(x, y) The TRS R consists of the following rules: cond1(true, x, y) -> cond2(gr(x, y), x, y) cond2(true, x, y) -> cond1(gr(x, 0), y, y) cond2(false, x, y) -> cond1(gr(x, 0), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x The set Q consists of the following terms: cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) 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 4 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: GR(s(x), s(y)) -> GR(x, y) The TRS R consists of the following rules: cond1(true, x, y) -> cond2(gr(x, y), x, y) cond2(true, x, y) -> cond1(gr(x, 0), y, y) cond2(false, x, y) -> cond1(gr(x, 0), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x The set Q consists of the following terms: cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) 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. ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: GR(s(x), s(y)) -> GR(x, y) R is empty. The set Q consists of the following terms: cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: GR(s(x), s(y)) -> GR(x, y) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) 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: *GR(s(x), s(y)) -> GR(x, y) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (13) YES ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: COND2(true, x, y) -> COND1(gr(x, 0), y, y) COND1(true, x, y) -> COND2(gr(x, y), x, y) COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) The TRS R consists of the following rules: cond1(true, x, y) -> cond2(gr(x, y), x, y) cond2(true, x, y) -> cond1(gr(x, 0), y, y) cond2(false, x, y) -> cond1(gr(x, 0), p(x), y) gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x The set Q consists of the following terms: cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) 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. ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: COND2(true, x, y) -> COND1(gr(x, 0), y, y) COND1(true, x, y) -> COND2(gr(x, y), x, y) COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) The TRS R consists of the following rules: gr(0, x) -> false gr(s(x), 0) -> true p(0) -> 0 p(s(x)) -> x gr(s(x), s(y)) -> gr(x, y) The set Q consists of the following terms: cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cond1(true, x0, x1) cond2(true, x0, x1) cond2(false, x0, x1) ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: COND2(true, x, y) -> COND1(gr(x, 0), y, y) COND1(true, x, y) -> COND2(gr(x, y), x, y) COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) The TRS R consists of the following rules: gr(0, x) -> false gr(s(x), 0) -> true p(0) -> 0 p(s(x)) -> x gr(s(x), s(y)) -> gr(x, y) The set Q consists of the following terms: gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) NonInfProof (EQUIVALENT) The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps: Note that final constraints are written in bold face. For Pair COND2(true, x, y) -> COND1(gr(x, 0), y, y) the following chains were created: *We consider the chain COND1(true, x2, x3) -> COND2(gr(x2, x3), x2, x3), COND2(true, x4, x5) -> COND1(gr(x4, 0), x5, x5) which results in the following constraint: (1) (COND2(gr(x2, x3), x2, x3)=COND2(true, x4, x5) ==> COND2(true, x4, x5)_>=_COND1(gr(x4, 0), x5, x5)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (gr(x2, x3)=true ==> COND2(true, x2, x3)_>=_COND1(gr(x2, 0), x3, x3)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on gr(x2, x3)=true which results in the following new constraints: (3) (true=true ==> COND2(true, s(x27), 0)_>=_COND1(gr(s(x27), 0), 0, 0)) (4) (gr(x29, x28)=true & (gr(x29, x28)=true ==> COND2(true, x29, x28)_>=_COND1(gr(x29, 0), x28, x28)) ==> COND2(true, s(x29), s(x28))_>=_COND1(gr(s(x29), 0), s(x28), s(x28))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (COND2(true, s(x27), 0)_>=_COND1(gr(s(x27), 0), 0, 0)) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (gr(x29, x28)=true ==> COND2(true, x29, x28)_>=_COND1(gr(x29, 0), x28, x28)) with sigma = [ ] which results in the following new constraint: (6) (COND2(true, x29, x28)_>=_COND1(gr(x29, 0), x28, x28) ==> COND2(true, s(x29), s(x28))_>=_COND1(gr(s(x29), 0), s(x28), s(x28))) For Pair COND1(true, x, y) -> COND2(gr(x, y), x, y) the following chains were created: *We consider the chain COND2(true, x8, x9) -> COND1(gr(x8, 0), x9, x9), COND1(true, x10, x11) -> COND2(gr(x10, x11), x10, x11) which results in the following constraint: (1) (COND1(gr(x8, 0), x9, x9)=COND1(true, x10, x11) ==> COND1(true, x10, x11)_>=_COND2(gr(x10, x11), x10, x11)) We simplified constraint (1) using rules (I), (II), (III), (VII) which results in the following new constraint: (2) (0=x30 & gr(x8, x30)=true ==> COND1(true, x9, x9)_>=_COND2(gr(x9, x9), x9, x9)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on gr(x8, x30)=true which results in the following new constraints: (3) (true=true & 0=0 ==> COND1(true, x9, x9)_>=_COND2(gr(x9, x9), x9, x9)) (4) (gr(x34, x33)=true & 0=s(x33) & (\/x35:gr(x34, x33)=true & 0=x33 ==> COND1(true, x35, x35)_>=_COND2(gr(x35, x35), x35, x35)) ==> COND1(true, x9, x9)_>=_COND2(gr(x9, x9), x9, x9)) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (COND1(true, x9, x9)_>=_COND2(gr(x9, x9), x9, x9)) We solved constraint (4) using rules (I), (II). *We consider the chain COND2(false, x14, x15) -> COND1(gr(x14, 0), p(x14), x15), COND1(true, x16, x17) -> COND2(gr(x16, x17), x16, x17) which results in the following constraint: (1) (COND1(gr(x14, 0), p(x14), x15)=COND1(true, x16, x17) ==> COND1(true, x16, x17)_>=_COND2(gr(x16, x17), x16, x17)) We simplified constraint (1) using rules (I), (II), (III), (VII) which results in the following new constraint: (2) (0=x36 & gr(x14, x36)=true & p(x14)=x16 ==> COND1(true, x16, x15)_>=_COND2(gr(x16, x15), x16, x15)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on gr(x14, x36)=true which results in the following new constraints: (3) (true=true & 0=0 & p(s(x38))=x16 ==> COND1(true, x16, x15)_>=_COND2(gr(x16, x15), x16, x15)) (4) (gr(x40, x39)=true & 0=s(x39) & p(s(x40))=x16 & (\/x41,x42:gr(x40, x39)=true & 0=x39 & p(x40)=x41 ==> COND1(true, x41, x42)_>=_COND2(gr(x41, x42), x41, x42)) ==> COND1(true, x16, x15)_>=_COND2(gr(x16, x15), x16, x15)) We simplified constraint (3) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (5) (COND1(true, x16, x15)_>=_COND2(gr(x16, x15), x16, x15)) We solved constraint (4) using rules (I), (II). For Pair COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) the following chains were created: *We consider the chain COND1(true, x20, x21) -> COND2(gr(x20, x21), x20, x21), COND2(false, x22, x23) -> COND1(gr(x22, 0), p(x22), x23) which results in the following constraint: (1) (COND2(gr(x20, x21), x20, x21)=COND2(false, x22, x23) ==> COND2(false, x22, x23)_>=_COND1(gr(x22, 0), p(x22), x23)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (gr(x20, x21)=false ==> COND2(false, x20, x21)_>=_COND1(gr(x20, 0), p(x20), x21)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on gr(x20, x21)=false which results in the following new constraints: (3) (false=false ==> COND2(false, 0, x44)_>=_COND1(gr(0, 0), p(0), x44)) (4) (gr(x47, x46)=false & (gr(x47, x46)=false ==> COND2(false, x47, x46)_>=_COND1(gr(x47, 0), p(x47), x46)) ==> COND2(false, s(x47), s(x46))_>=_COND1(gr(s(x47), 0), p(s(x47)), s(x46))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (COND2(false, 0, x44)_>=_COND1(gr(0, 0), p(0), x44)) We simplified constraint (4) using rule (VI) where we applied the induction hypothesis (gr(x47, x46)=false ==> COND2(false, x47, x46)_>=_COND1(gr(x47, 0), p(x47), x46)) with sigma = [ ] which results in the following new constraint: (6) (COND2(false, x47, x46)_>=_COND1(gr(x47, 0), p(x47), x46) ==> COND2(false, s(x47), s(x46))_>=_COND1(gr(s(x47), 0), p(s(x47)), s(x46))) To summarize, we get the following constraints P__>=_ for the following pairs. *COND2(true, x, y) -> COND1(gr(x, 0), y, y) *(COND2(true, s(x27), 0)_>=_COND1(gr(s(x27), 0), 0, 0)) *(COND2(true, x29, x28)_>=_COND1(gr(x29, 0), x28, x28) ==> COND2(true, s(x29), s(x28))_>=_COND1(gr(s(x29), 0), s(x28), s(x28))) *COND1(true, x, y) -> COND2(gr(x, y), x, y) *(COND1(true, x9, x9)_>=_COND2(gr(x9, x9), x9, x9)) *(COND1(true, x16, x15)_>=_COND2(gr(x16, x15), x16, x15)) *COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) *(COND2(false, 0, x44)_>=_COND1(gr(0, 0), p(0), x44)) *(COND2(false, x47, x46)_>=_COND1(gr(x47, 0), p(x47), x46) ==> COND2(false, s(x47), s(x46))_>=_COND1(gr(s(x47), 0), p(s(x47)), s(x46))) The constraints for P_> respective P_bound are constructed from P__>=_ where we just replace every occurence of "t _>=_ s" in P__>=_ by "t > s" respective "t _>=_ c". Here c stands for the fresh constant used for P_bound. Using the following integer polynomial ordering the resulting constraints can be solved Polynomial interpretation [NONINF]: POL(0) = 0 POL(COND1(x_1, x_2, x_3)) = -1 + x_2 - x_3 POL(COND2(x_1, x_2, x_3)) = -1 + x_1 + x_2 - x_3 POL(c) = -1 POL(false) = 0 POL(gr(x_1, x_2)) = 0 POL(p(x_1)) = x_1 POL(s(x_1)) = 1 + x_1 POL(true) = 0 The following pairs are in P_>: COND2(true, x, y) -> COND1(gr(x, 0), y, y) The following pairs are in P_bound: COND2(true, x, y) -> COND1(gr(x, 0), y, y) The following rules are usable: gr(0, x) -> false gr(s(x), 0) -> true gr(s(x), s(y)) -> gr(x, y) p(0) -> 0 p(s(x)) -> x ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: COND1(true, x, y) -> COND2(gr(x, y), x, y) COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) The TRS R consists of the following rules: gr(0, x) -> false gr(s(x), 0) -> true p(0) -> 0 p(s(x)) -> x gr(s(x), s(y)) -> gr(x, y) The set Q consists of the following terms: gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. COND2(false, x, y) -> COND1(gr(x, 0), p(x), y) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO,RATPOLO]: POL(0) = 0 POL(COND1(x_1, x_2, x_3)) = x_1 + x_2 POL(COND2(x_1, x_2, x_3)) = [1] + [1/2]x_2 POL(false) = 0 POL(gr(x_1, x_2)) = [1/4]x_1 POL(p(x_1)) = [1/4]x_1 POL(s(x_1)) = [4] + [4]x_1 POL(true) = [1] The value of delta used in the strict ordering is 1. The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: gr(0, x) -> false gr(s(x), 0) -> true p(0) -> 0 p(s(x)) -> x ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: COND1(true, x, y) -> COND2(gr(x, y), x, y) The TRS R consists of the following rules: gr(0, x) -> false gr(s(x), 0) -> true p(0) -> 0 p(s(x)) -> x gr(s(x), s(y)) -> gr(x, y) The set Q consists of the following terms: gr(0, x0) gr(s(x0), 0) gr(s(x0), s(x1)) p(0) p(s(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node. ---------------------------------------- (24) TRUE