/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) DependencyPairsProof [EQUIVALENT, 0 ms] (2) QDP (3) DependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) QDP (6) UsableRulesProof [EQUIVALENT, 0 ms] (7) QDP (8) MRRProof [EQUIVALENT, 47 ms] (9) QDP (10) DependencyGraphProof [EQUIVALENT, 0 ms] (11) QDP (12) UsableRulesProof [EQUIVALENT, 0 ms] (13) QDP (14) MRRProof [EQUIVALENT, 0 ms] (15) QDP (16) PisEmptyProof [EQUIVALENT, 0 ms] (17) YES (18) QDP (19) UsableRulesProof [EQUIVALENT, 0 ms] (20) QDP (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] (22) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C foldB(t, 0) -> t foldB(t, s(n)) -> f(foldB(t, n), B) foldC(t, 0) -> t foldC(t, s(n)) -> f(foldC(t, n), C) f(t, x) -> f'(t, g(x)) f'(triple(a, b, c), C) -> triple(a, b, s(c)) f'(triple(a, b, c), B) -> f(triple(a, b, c), A) f'(triple(a, b, c), A) -> f''(foldB(triple(s(a), 0, c), b)) f''(triple(a, b, c)) -> foldC(triple(a, b, 0), c) fold(t, x, 0) -> t fold(t, x, s(n)) -> f(fold(t, x, n), x) 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: FOLDB(t, s(n)) -> F(foldB(t, n), B) FOLDB(t, s(n)) -> FOLDB(t, n) FOLDC(t, s(n)) -> F(foldC(t, n), C) FOLDC(t, s(n)) -> FOLDC(t, n) F(t, x) -> F'(t, g(x)) F(t, x) -> G(x) F'(triple(a, b, c), B) -> F(triple(a, b, c), A) F'(triple(a, b, c), A) -> F''(foldB(triple(s(a), 0, c), b)) F'(triple(a, b, c), A) -> FOLDB(triple(s(a), 0, c), b) F''(triple(a, b, c)) -> FOLDC(triple(a, b, 0), c) FOLD(t, x, s(n)) -> F(fold(t, x, n), x) FOLD(t, x, s(n)) -> FOLD(t, x, n) The TRS R consists of the following rules: g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C foldB(t, 0) -> t foldB(t, s(n)) -> f(foldB(t, n), B) foldC(t, 0) -> t foldC(t, s(n)) -> f(foldC(t, n), C) f(t, x) -> f'(t, g(x)) f'(triple(a, b, c), C) -> triple(a, b, s(c)) f'(triple(a, b, c), B) -> f(triple(a, b, c), A) f'(triple(a, b, c), A) -> f''(foldB(triple(s(a), 0, c), b)) f''(triple(a, b, c)) -> foldC(triple(a, b, 0), c) fold(t, x, 0) -> t fold(t, x, s(n)) -> f(fold(t, x, n), x) 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 2 SCCs with 2 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Q DP problem: The TRS P consists of the following rules: F(t, x) -> F'(t, g(x)) F'(triple(a, b, c), B) -> F(triple(a, b, c), A) F'(triple(a, b, c), A) -> F''(foldB(triple(s(a), 0, c), b)) F''(triple(a, b, c)) -> FOLDC(triple(a, b, 0), c) FOLDC(t, s(n)) -> F(foldC(t, n), C) FOLDC(t, s(n)) -> FOLDC(t, n) F'(triple(a, b, c), A) -> FOLDB(triple(s(a), 0, c), b) FOLDB(t, s(n)) -> F(foldB(t, n), B) FOLDB(t, s(n)) -> FOLDB(t, n) The TRS R consists of the following rules: g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C foldB(t, 0) -> t foldB(t, s(n)) -> f(foldB(t, n), B) foldC(t, 0) -> t foldC(t, s(n)) -> f(foldC(t, n), C) f(t, x) -> f'(t, g(x)) f'(triple(a, b, c), C) -> triple(a, b, s(c)) f'(triple(a, b, c), B) -> f(triple(a, b, c), A) f'(triple(a, b, c), A) -> f''(foldB(triple(s(a), 0, c), b)) f''(triple(a, b, c)) -> foldC(triple(a, b, 0), c) fold(t, x, 0) -> t fold(t, x, s(n)) -> f(fold(t, x, n), x) 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: F(t, x) -> F'(t, g(x)) F'(triple(a, b, c), B) -> F(triple(a, b, c), A) F'(triple(a, b, c), A) -> F''(foldB(triple(s(a), 0, c), b)) F''(triple(a, b, c)) -> FOLDC(triple(a, b, 0), c) FOLDC(t, s(n)) -> F(foldC(t, n), C) FOLDC(t, s(n)) -> FOLDC(t, n) F'(triple(a, b, c), A) -> FOLDB(triple(s(a), 0, c), b) FOLDB(t, s(n)) -> F(foldB(t, n), B) FOLDB(t, s(n)) -> FOLDB(t, n) The TRS R consists of the following rules: foldB(t, 0) -> t foldB(t, s(n)) -> f(foldB(t, n), B) foldC(t, s(n)) -> f(foldC(t, n), C) f(t, x) -> f'(t, g(x)) f'(triple(a, b, c), B) -> f(triple(a, b, c), A) f'(triple(a, b, c), A) -> f''(foldB(triple(s(a), 0, c), b)) f''(triple(a, b, c)) -> foldC(triple(a, b, 0), c) foldC(t, 0) -> t g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C f'(triple(a, b, c), C) -> triple(a, b, s(c)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) 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: F''(triple(a, b, c)) -> FOLDC(triple(a, b, 0), c) FOLDC(t, s(n)) -> FOLDC(t, n) F'(triple(a, b, c), A) -> FOLDB(triple(s(a), 0, c), b) FOLDB(t, s(n)) -> F(foldB(t, n), B) FOLDB(t, s(n)) -> FOLDB(t, n) Strictly oriented rules of the TRS R: f'(triple(a, b, c), A) -> f''(foldB(triple(s(a), 0, c), b)) f''(triple(a, b, c)) -> foldC(triple(a, b, 0), c) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(A) = 2 POL(B) = 2 POL(C) = 2 POL(F(x_1, x_2)) = x_1 + 2*x_2 POL(F'(x_1, x_2)) = x_1 + 2*x_2 POL(F''(x_1)) = 2 + x_1 POL(FOLDB(x_1, x_2)) = 1 + x_1 + 2*x_2 POL(FOLDC(x_1, x_2)) = x_1 + 2*x_2 POL(f(x_1, x_2)) = x_1 + 2*x_2 POL(f'(x_1, x_2)) = x_1 + 2*x_2 POL(f''(x_1)) = 1 + x_1 POL(foldB(x_1, x_2)) = x_1 + 2*x_2 POL(foldC(x_1, x_2)) = x_1 + 2*x_2 POL(g(x_1)) = x_1 POL(s(x_1)) = 2 + x_1 POL(triple(x_1, x_2, x_3)) = x_1 + 2*x_2 + 2*x_3 ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: F(t, x) -> F'(t, g(x)) F'(triple(a, b, c), B) -> F(triple(a, b, c), A) F'(triple(a, b, c), A) -> F''(foldB(triple(s(a), 0, c), b)) FOLDC(t, s(n)) -> F(foldC(t, n), C) The TRS R consists of the following rules: foldB(t, 0) -> t foldB(t, s(n)) -> f(foldB(t, n), B) foldC(t, s(n)) -> f(foldC(t, n), C) f(t, x) -> f'(t, g(x)) f'(triple(a, b, c), B) -> f(triple(a, b, c), A) foldC(t, 0) -> t g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C f'(triple(a, b, c), C) -> triple(a, b, s(c)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (11) Obligation: Q DP problem: The TRS P consists of the following rules: F'(triple(a, b, c), B) -> F(triple(a, b, c), A) F(t, x) -> F'(t, g(x)) The TRS R consists of the following rules: foldB(t, 0) -> t foldB(t, s(n)) -> f(foldB(t, n), B) foldC(t, s(n)) -> f(foldC(t, n), C) f(t, x) -> f'(t, g(x)) f'(triple(a, b, c), B) -> f(triple(a, b, c), A) foldC(t, 0) -> t g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C f'(triple(a, b, c), C) -> triple(a, b, s(c)) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (12) 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. ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: F'(triple(a, b, c), B) -> F(triple(a, b, c), A) F(t, x) -> F'(t, g(x)) The TRS R consists of the following rules: g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) 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: F'(triple(a, b, c), B) -> F(triple(a, b, c), A) F(t, x) -> F'(t, g(x)) Strictly oriented rules of the TRS R: g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C Used ordering: Knuth-Bendix order [KBO] with precedence:g_1 > F_2 > triple_3 > F'_2 > C > B > A and weight map: A=1 B=2 C=2 g_1=0 F'_2=0 F_2=0 triple_3=0 The variable weight is 1 ---------------------------------------- (15) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (17) YES ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: FOLD(t, x, s(n)) -> FOLD(t, x, n) The TRS R consists of the following rules: g(A) -> A g(B) -> A g(B) -> B g(C) -> A g(C) -> B g(C) -> C foldB(t, 0) -> t foldB(t, s(n)) -> f(foldB(t, n), B) foldC(t, 0) -> t foldC(t, s(n)) -> f(foldC(t, n), C) f(t, x) -> f'(t, g(x)) f'(triple(a, b, c), C) -> triple(a, b, s(c)) f'(triple(a, b, c), B) -> f(triple(a, b, c), A) f'(triple(a, b, c), A) -> f''(foldB(triple(s(a), 0, c), b)) f''(triple(a, b, c)) -> foldC(triple(a, b, 0), c) fold(t, x, 0) -> t fold(t, x, s(n)) -> f(fold(t, x, n), x) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) 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. ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: FOLD(t, x, s(n)) -> FOLD(t, x, n) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) 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: *FOLD(t, x, s(n)) -> FOLD(t, x, n) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (22) YES