YES proof of Transformed_CSR_04_ExIntrod_GM01_iGM.trs # AProVE Commit ID: c69e44bd14796315568835c1ffa2502984884775 jera 20211004 unpublished Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) QTRSRRRProof [EQUIVALENT, 141 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) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) QDP (13) UsableRulesProof [EQUIVALENT, 0 ms] (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES (17) QDP (18) UsableRulesProof [EQUIVALENT, 0 ms] (19) QDP (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] (21) YES (22) QDP (23) UsableRulesProof [EQUIVALENT, 0 ms] (24) QDP (25) QDPSizeChangeProof [EQUIVALENT, 0 ms] (26) YES (27) QDP (28) UsableRulesProof [EQUIVALENT, 0 ms] (29) QDP (30) QDPSizeChangeProof [EQUIVALENT, 0 ms] (31) YES (32) QDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) QDP (35) QDPSizeChangeProof [EQUIVALENT, 0 ms] (36) YES (37) QDP (38) MRRProof [EQUIVALENT, 26 ms] (39) QDP (40) QDPOrderProof [EQUIVALENT, 69 ms] (41) QDP (42) DependencyGraphProof [EQUIVALENT, 0 ms] (43) QDP (44) QDPOrderProof [EQUIVALENT, 9 ms] (45) QDP (46) QDPOrderProof [EQUIVALENT, 0 ms] (47) QDP (48) QDPOrderProof [EQUIVALENT, 0 ms] (49) QDP (50) QDPOrderProof [EQUIVALENT, 0 ms] (51) QDP (52) DependencyGraphProof [EQUIVALENT, 0 ms] (53) TRUE ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(nil)) -> mark(nil) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(nats) -> mark(adx(zeros)) active(zeros) -> mark(cons(0, zeros)) active(head(cons(X, L))) -> mark(X) active(tail(cons(X, L))) -> mark(L) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. ---------------------------------------- (1) QTRSRRRProof (EQUIVALENT) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(active(x_1)) = x_1 POL(adx(x_1)) = 2*x_1 POL(cons(x_1, x_2)) = x_1 + 2*x_2 POL(head(x_1)) = 1 + 2*x_1 POL(incr(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(nats) = 1 POL(nil) = 1 POL(s(x_1)) = x_1 POL(tail(x_1)) = 2 + 2*x_1 POL(zeros) = 0 With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly: active(adx(nil)) -> mark(nil) active(nats) -> mark(adx(zeros)) active(head(cons(X, L))) -> mark(X) active(tail(cons(X, L))) -> mark(L) ---------------------------------------- (2) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) 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: ACTIVE(incr(nil)) -> MARK(nil) ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) ACTIVE(incr(cons(X, L))) -> CONS(s(X), incr(L)) ACTIVE(incr(cons(X, L))) -> S(X) ACTIVE(incr(cons(X, L))) -> INCR(L) ACTIVE(adx(cons(X, L))) -> MARK(incr(cons(X, adx(L)))) ACTIVE(adx(cons(X, L))) -> INCR(cons(X, adx(L))) ACTIVE(adx(cons(X, L))) -> CONS(X, adx(L)) ACTIVE(adx(cons(X, L))) -> ADX(L) ACTIVE(zeros) -> MARK(cons(0, zeros)) ACTIVE(zeros) -> CONS(0, zeros) MARK(incr(X)) -> ACTIVE(incr(mark(X))) MARK(incr(X)) -> INCR(mark(X)) MARK(incr(X)) -> MARK(X) MARK(nil) -> ACTIVE(nil) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(cons(X1, X2)) -> CONS(mark(X1), X2) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> S(mark(X)) MARK(s(X)) -> MARK(X) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(adx(X)) -> ADX(mark(X)) MARK(adx(X)) -> MARK(X) MARK(nats) -> ACTIVE(nats) MARK(zeros) -> ACTIVE(zeros) MARK(0) -> ACTIVE(0) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(head(X)) -> HEAD(mark(X)) MARK(head(X)) -> MARK(X) MARK(tail(X)) -> ACTIVE(tail(mark(X))) MARK(tail(X)) -> TAIL(mark(X)) MARK(tail(X)) -> MARK(X) INCR(mark(X)) -> INCR(X) INCR(active(X)) -> INCR(X) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(X1, mark(X2)) -> CONS(X1, X2) CONS(active(X1), X2) -> CONS(X1, X2) CONS(X1, active(X2)) -> CONS(X1, X2) S(mark(X)) -> S(X) S(active(X)) -> S(X) ADX(mark(X)) -> ADX(X) ADX(active(X)) -> ADX(X) HEAD(mark(X)) -> HEAD(X) HEAD(active(X)) -> HEAD(X) TAIL(mark(X)) -> TAIL(X) TAIL(active(X)) -> TAIL(X) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) 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 7 SCCs with 17 less nodes. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: TAIL(active(X)) -> TAIL(X) TAIL(mark(X)) -> TAIL(X) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) 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: TAIL(active(X)) -> TAIL(X) TAIL(mark(X)) -> TAIL(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) 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: *TAIL(active(X)) -> TAIL(X) The graph contains the following edges 1 > 1 *TAIL(mark(X)) -> TAIL(X) The graph contains the following edges 1 > 1 ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: HEAD(active(X)) -> HEAD(X) HEAD(mark(X)) -> HEAD(X) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) 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. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: HEAD(active(X)) -> HEAD(X) HEAD(mark(X)) -> HEAD(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) 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: *HEAD(active(X)) -> HEAD(X) The graph contains the following edges 1 > 1 *HEAD(mark(X)) -> HEAD(X) The graph contains the following edges 1 > 1 ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: ADX(active(X)) -> ADX(X) ADX(mark(X)) -> ADX(X) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) 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. ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: ADX(active(X)) -> ADX(X) ADX(mark(X)) -> ADX(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) 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: *ADX(active(X)) -> ADX(X) The graph contains the following edges 1 > 1 *ADX(mark(X)) -> ADX(X) The graph contains the following edges 1 > 1 ---------------------------------------- (21) YES ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) 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. ---------------------------------------- (24) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (25) 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: *S(active(X)) -> S(X) The graph contains the following edges 1 > 1 *S(mark(X)) -> S(X) The graph contains the following edges 1 > 1 ---------------------------------------- (26) YES ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: CONS(X1, mark(X2)) -> CONS(X1, X2) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(active(X1), X2) -> CONS(X1, X2) CONS(X1, active(X2)) -> CONS(X1, X2) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (28) 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. ---------------------------------------- (29) Obligation: Q DP problem: The TRS P consists of the following rules: CONS(X1, mark(X2)) -> CONS(X1, X2) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(active(X1), X2) -> CONS(X1, X2) CONS(X1, active(X2)) -> CONS(X1, X2) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (30) 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: *CONS(X1, mark(X2)) -> CONS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *CONS(mark(X1), X2) -> CONS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *CONS(active(X1), X2) -> CONS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *CONS(X1, active(X2)) -> CONS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (31) YES ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: INCR(active(X)) -> INCR(X) INCR(mark(X)) -> INCR(X) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) 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. ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: INCR(active(X)) -> INCR(X) INCR(mark(X)) -> INCR(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) 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: *INCR(active(X)) -> INCR(X) The graph contains the following edges 1 > 1 *INCR(mark(X)) -> INCR(X) The graph contains the following edges 1 > 1 ---------------------------------------- (36) YES ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> ACTIVE(incr(mark(X))) ACTIVE(adx(cons(X, L))) -> MARK(incr(cons(X, adx(L)))) MARK(incr(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> MARK(X) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(adx(X)) -> MARK(X) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(head(X)) -> MARK(X) MARK(tail(X)) -> ACTIVE(tail(mark(X))) MARK(tail(X)) -> MARK(X) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) 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: MARK(adx(X)) -> MARK(X) MARK(head(X)) -> MARK(X) MARK(tail(X)) -> MARK(X) Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = 1 + x_1 POL(MARK(x_1)) = 1 + x_1 POL(active(x_1)) = x_1 POL(adx(x_1)) = 1 + 2*x_1 POL(cons(x_1, x_2)) = 2*x_1 + x_2 POL(head(x_1)) = 1 + x_1 POL(incr(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(nats) = 2 POL(nil) = 1 POL(s(x_1)) = x_1 POL(tail(x_1)) = 1 + 2*x_1 POL(zeros) = 0 ---------------------------------------- (39) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> ACTIVE(incr(mark(X))) ACTIVE(adx(cons(X, L))) -> MARK(incr(cons(X, adx(L)))) MARK(incr(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> MARK(X) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(tail(X)) -> ACTIVE(tail(mark(X))) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (40) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(zeros) -> MARK(cons(0, zeros)) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = x1 incr(x1) = x1 cons(x1, x2) = x1 MARK(x1) = x1 s(x1) = x1 mark(x1) = x1 adx(x1) = x1 zeros = zeros 0 = 0 head(x1) = head tail(x1) = tail active(x1) = x1 nil = nil nats = nats Knuth-Bendix order [KBO] with precedence:trivial and weight map: tail=1 nats=2 0=2 head=2 zeros=3 nil=2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: s(active(X)) -> s(X) s(mark(X)) -> s(X) incr(active(X)) -> incr(X) incr(mark(X)) -> incr(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) mark(incr(X)) -> active(incr(mark(X))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(zeros) -> active(zeros) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(nil) -> active(nil) mark(nats) -> active(nats) mark(0) -> active(0) adx(active(X)) -> adx(X) adx(mark(X)) -> adx(X) head(active(X)) -> head(X) head(mark(X)) -> head(X) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) active(incr(nil)) -> mark(nil) ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> ACTIVE(incr(mark(X))) ACTIVE(adx(cons(X, L))) -> MARK(incr(cons(X, adx(L)))) MARK(incr(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> MARK(X) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(zeros) -> ACTIVE(zeros) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(tail(X)) -> ACTIVE(tail(mark(X))) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (42) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (43) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(incr(X)) -> ACTIVE(incr(mark(X))) ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) ACTIVE(adx(cons(X, L))) -> MARK(incr(cons(X, adx(L)))) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> MARK(X) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(tail(X)) -> ACTIVE(tail(mark(X))) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (44) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(adx(cons(X, L))) -> MARK(incr(cons(X, adx(L)))) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. MARK(x1) = x1 incr(x1) = x1 ACTIVE(x1) = x1 mark(x1) = x1 cons(x1, x2) = x1 s(x1) = x1 adx(x1) = adx(x1) head(x1) = head tail(x1) = tail active(x1) = x1 zeros = zeros 0 = 0 nil = nil nats = nats Knuth-Bendix order [KBO] with precedence:trivial and weight map: tail=1 nats=2 zeros=3 0=2 head=2 adx_1=1 nil=2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) mark(incr(X)) -> active(incr(mark(X))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(zeros) -> active(zeros) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(nil) -> active(nil) mark(nats) -> active(nats) mark(0) -> active(0) incr(active(X)) -> incr(X) incr(mark(X)) -> incr(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) adx(active(X)) -> adx(X) adx(mark(X)) -> adx(X) head(active(X)) -> head(X) head(mark(X)) -> head(X) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) active(incr(nil)) -> mark(nil) ---------------------------------------- (45) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(incr(X)) -> ACTIVE(incr(mark(X))) ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> MARK(X) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(tail(X)) -> ACTIVE(tail(mark(X))) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (46) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(cons(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. MARK(x1) = x1 incr(x1) = x1 ACTIVE(x1) = x1 mark(x1) = x1 cons(x1, x2) = cons(x1) s(x1) = x1 adx(x1) = x1 head(x1) = head tail(x1) = tail active(x1) = x1 zeros = zeros 0 = 0 nil = nil nats = nats Knuth-Bendix order [KBO] with precedence:trivial and weight map: tail=1 nats=2 zeros=4 0=2 head=2 cons_1=1 nil=2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) mark(incr(X)) -> active(incr(mark(X))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(zeros) -> active(zeros) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(nil) -> active(nil) mark(nats) -> active(nats) mark(0) -> active(0) incr(active(X)) -> incr(X) incr(mark(X)) -> incr(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) adx(active(X)) -> adx(X) adx(mark(X)) -> adx(X) head(active(X)) -> head(X) head(mark(X)) -> head(X) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) active(incr(nil)) -> mark(nil) ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(incr(X)) -> ACTIVE(incr(mark(X))) ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> MARK(X) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(tail(X)) -> ACTIVE(tail(mark(X))) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(s(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. MARK(x1) = x1 incr(x1) = x1 ACTIVE(x1) = x1 mark(x1) = x1 cons(x1, x2) = cons s(x1) = s(x1) adx(x1) = adx head(x1) = head tail(x1) = tail active(x1) = x1 zeros = zeros nil = nil nats = nats 0 = 0 Knuth-Bendix order [KBO] with precedence:trivial and weight map: s_1=1 tail=1 nats=2 zeros=3 head=2 0=2 cons=2 adx=3 nil=2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) mark(incr(X)) -> active(incr(mark(X))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(zeros) -> active(zeros) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(nil) -> active(nil) mark(nats) -> active(nats) mark(0) -> active(0) incr(active(X)) -> incr(X) incr(mark(X)) -> incr(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) adx(active(X)) -> adx(X) adx(mark(X)) -> adx(X) head(active(X)) -> head(X) head(mark(X)) -> head(X) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) active(incr(nil)) -> mark(nil) ---------------------------------------- (49) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(incr(X)) -> ACTIVE(incr(mark(X))) ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(tail(X)) -> ACTIVE(tail(mark(X))) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (50) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(incr(cons(X, L))) -> MARK(cons(s(X), incr(L))) MARK(incr(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. MARK(x1) = x1 incr(x1) = incr(x1) ACTIVE(x1) = x1 mark(x1) = x1 cons(x1, x2) = cons s(x1) = s adx(x1) = adx head(x1) = head tail(x1) = tail active(x1) = x1 zeros = zeros nil = nil nats = nats 0 = 0 Knuth-Bendix order [KBO] with precedence:trivial and weight map: s=1 tail=2 nats=2 zeros=3 head=2 0=2 cons=2 incr_1=1 adx=4 nil=2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) mark(incr(X)) -> active(incr(mark(X))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(zeros) -> active(zeros) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) mark(nil) -> active(nil) mark(nats) -> active(nats) mark(0) -> active(0) incr(active(X)) -> incr(X) incr(mark(X)) -> incr(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) adx(active(X)) -> adx(X) adx(mark(X)) -> adx(X) head(active(X)) -> head(X) head(mark(X)) -> head(X) tail(active(X)) -> tail(X) tail(mark(X)) -> tail(X) active(incr(nil)) -> mark(nil) ---------------------------------------- (51) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(incr(X)) -> ACTIVE(incr(mark(X))) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(adx(X)) -> ACTIVE(adx(mark(X))) MARK(head(X)) -> ACTIVE(head(mark(X))) MARK(tail(X)) -> ACTIVE(tail(mark(X))) The TRS R consists of the following rules: active(incr(nil)) -> mark(nil) active(incr(cons(X, L))) -> mark(cons(s(X), incr(L))) active(adx(cons(X, L))) -> mark(incr(cons(X, adx(L)))) active(zeros) -> mark(cons(0, zeros)) mark(incr(X)) -> active(incr(mark(X))) mark(nil) -> active(nil) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(adx(X)) -> active(adx(mark(X))) mark(nats) -> active(nats) mark(zeros) -> active(zeros) mark(0) -> active(0) mark(head(X)) -> active(head(mark(X))) mark(tail(X)) -> active(tail(mark(X))) incr(mark(X)) -> incr(X) incr(active(X)) -> incr(X) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) adx(mark(X)) -> adx(X) adx(active(X)) -> adx(X) head(mark(X)) -> head(X) head(active(X)) -> head(X) tail(mark(X)) -> tail(X) tail(active(X)) -> tail(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (52) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 6 less nodes. ---------------------------------------- (53) TRUE