YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 unpublished dirty Termination of the given ETRS could be proven: (0) ETRS (1) EquationalDependencyPairsProof [EQUIVALENT, 0 ms] (2) EDP (3) EDependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) EDP (6) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (7) EDP (8) EUsableRulesReductionPairsProof [EQUIVALENT, 6 ms] (9) EDP (10) PisEmptyProof [EQUIVALENT, 0 ms] (11) YES (12) EDP (13) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] (14) EDP (15) EUsableRulesReductionPairsProof [EQUIVALENT, 0 ms] (16) EDP (17) PisEmptyProof [EQUIVALENT, 0 ms] (18) YES (19) EDP (20) EDPPoloProof [EQUIVALENT, 0 ms] (21) EDP (22) PisEmptyProof [EQUIVALENT, 0 ms] (23) YES ---------------------------------------- (0) Obligation: Equational rewrite system: The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) ---------------------------------------- (1) EquationalDependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,DA_STEIN] we result in the following initial EDP problem: The TRS P consists of the following rules: LE(s(x), s(y)) -> LE(x, y) MINUS(x, s(y)) -> PRED(minus(x, y)) MINUS(x, s(y)) -> MINUS(x, y) GCD(s(x), s(y)) -> IF_GCD(le(y, x), s(x), s(y)) GCD(s(x), s(y)) -> LE(y, x) IF_GCD(true, s(x), s(y)) -> GCD(minus(x, y), s(y)) IF_GCD(true, s(x), s(y)) -> MINUS(x, y) IF_GCD(false, s(x), s(y)) -> GCD(minus(y, x), s(x)) IF_GCD(false, s(x), s(y)) -> MINUS(y, x) The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) The set E# consists of the following equations: GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (2) Obligation: The TRS P consists of the following rules: LE(s(x), s(y)) -> LE(x, y) MINUS(x, s(y)) -> PRED(minus(x, y)) MINUS(x, s(y)) -> MINUS(x, y) GCD(s(x), s(y)) -> IF_GCD(le(y, x), s(x), s(y)) GCD(s(x), s(y)) -> LE(y, x) IF_GCD(true, s(x), s(y)) -> GCD(minus(x, y), s(y)) IF_GCD(true, s(x), s(y)) -> MINUS(x, y) IF_GCD(false, s(x), s(y)) -> GCD(minus(y, x), s(x)) IF_GCD(false, s(x), s(y)) -> MINUS(y, x) The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) The set E# consists of the following equations: GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (3) EDependencyGraphProof (EQUIVALENT) The approximation of the Equational Dependency Graph [DA_STEIN] contains 3 SCCs with 4 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: The TRS P consists of the following rules: MINUS(x, s(y)) -> MINUS(x, y) The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) The set E# consists of the following equations: GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (6) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: GCD(x, y) == GCD(y, x) ---------------------------------------- (7) Obligation: The TRS P consists of the following rules: MINUS(x, s(y)) -> MINUS(x, y) The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (8) EUsableRulesReductionPairsProof (EQUIVALENT) By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: MINUS(x, s(y)) -> MINUS(x, y) The following rules are removed from R: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The following equations are removed from E: gcd(x, y) == gcd(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(MINUS(x_1, x_2)) = x_1 + 3*x_2 POL(s(x_1)) = 3*x_1 ---------------------------------------- (9) Obligation: P is empty. R is empty. E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (10) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,E#,R,E) chain. ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: The TRS P consists of the following rules: LE(s(x), s(y)) -> LE(x, y) The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) The set E# consists of the following equations: GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (13) ESharpUsableEquationsProof (EQUIVALENT) We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: GCD(x, y) == GCD(y, x) ---------------------------------------- (14) Obligation: The TRS P consists of the following rules: LE(s(x), s(y)) -> LE(x, y) The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (15) EUsableRulesReductionPairsProof (EQUIVALENT) By using the improved usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding improved usable rules can be oriented non-strictly, the improved usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and improved usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. The following dependency pairs can be deleted: LE(s(x), s(y)) -> LE(x, y) The following rules are removed from R: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The following equations are removed from E: gcd(x, y) == gcd(y, x) Used ordering: POLO with Polynomial interpretation [POLO]: POL(LE(x_1, x_2)) = 3*x_1 + 3*x_2 POL(s(x_1)) = x_1 ---------------------------------------- (16) Obligation: P is empty. R is empty. E is empty. E# is empty. We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (17) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,E#,R,E) chain. ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: The TRS P consists of the following rules: IF_GCD(false, s(x), s(y)) -> GCD(minus(y, x), s(x)) GCD(s(x), s(y)) -> IF_GCD(le(y, x), s(x), s(y)) IF_GCD(true, s(x), s(y)) -> GCD(minus(x, y), s(y)) The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) The set E# consists of the following equations: GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (20) EDPPoloProof (EQUIVALENT) We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. All Dependency Pairs of this DP problem can be strictly oriented. IF_GCD(false, s(x), s(y)) -> GCD(minus(y, x), s(x)) GCD(s(x), s(y)) -> IF_GCD(le(y, x), s(x), s(y)) IF_GCD(true, s(x), s(y)) -> GCD(minus(x, y), s(y)) With the implicit AFS we had to orient the following set of usable rules of R non-strictly. minus(x, s(y)) -> pred(minus(x, y)) minus(x, 0) -> x pred(s(x)) -> x We had to orient the following equations of E# equivalently. GCD(x, y) == GCD(y, x) With the implicit AFS there is no usable equation of E. Used ordering: POLO with Polynomial interpretation [POLO]: POL(0) = 0 POL(GCD(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 POL(IF_GCD(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(false) = 0 POL(le(x_1, x_2)) = 0 POL(minus(x_1, x_2)) = x_1 POL(pred(x_1)) = x_1 POL(s(x_1)) = 2 + x_1 POL(true) = 0 ---------------------------------------- (21) Obligation: P is empty. The TRS R consists of the following rules: le(0, y) -> true le(s(x), 0) -> false le(s(x), s(y)) -> le(x, y) pred(s(x)) -> x minus(x, 0) -> x minus(x, s(y)) -> pred(minus(x, y)) gcd(0, y) -> y gcd(s(x), 0) -> s(x) gcd(s(x), s(y)) -> if_gcd(le(y, x), s(x), s(y)) if_gcd(true, s(x), s(y)) -> gcd(minus(x, y), s(y)) if_gcd(false, s(x), s(y)) -> gcd(minus(y, x), s(x)) The set E consists of the following equations: gcd(x, y) == gcd(y, x) The set E# consists of the following equations: GCD(x, y) == GCD(y, x) We have to consider all minimal (P,E#,R,E)-chains ---------------------------------------- (22) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,E#,R,E) chain. ---------------------------------------- (23) YES