6.72/2.64 YES 6.72/2.65 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 6.72/2.65 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 6.72/2.65 6.72/2.65 6.72/2.65 Termination w.r.t. Q of the given QTRS could be proven: 6.72/2.65 6.72/2.65 (0) QTRS 6.72/2.65 (1) DependencyPairsProof [EQUIVALENT, 0 ms] 6.72/2.65 (2) QDP 6.72/2.65 (3) DependencyGraphProof [EQUIVALENT, 0 ms] 6.72/2.65 (4) AND 6.72/2.65 (5) QDP 6.72/2.65 (6) UsableRulesProof [EQUIVALENT, 0 ms] 6.72/2.65 (7) QDP 6.72/2.65 (8) QReductionProof [EQUIVALENT, 0 ms] 6.72/2.65 (9) QDP 6.72/2.65 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.72/2.65 (11) YES 6.72/2.65 (12) QDP 6.72/2.65 (13) UsableRulesProof [EQUIVALENT, 0 ms] 6.72/2.65 (14) QDP 6.72/2.65 (15) QReductionProof [EQUIVALENT, 0 ms] 6.72/2.65 (16) QDP 6.72/2.65 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.72/2.65 (18) YES 6.72/2.65 (19) QDP 6.72/2.65 (20) UsableRulesProof [EQUIVALENT, 0 ms] 6.72/2.65 (21) QDP 6.72/2.65 (22) QReductionProof [EQUIVALENT, 0 ms] 6.72/2.65 (23) QDP 6.72/2.65 (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.72/2.65 (25) YES 6.72/2.65 (26) QDP 6.72/2.65 (27) UsableRulesProof [EQUIVALENT, 0 ms] 6.72/2.65 (28) QDP 6.72/2.65 (29) QReductionProof [EQUIVALENT, 0 ms] 6.72/2.65 (30) QDP 6.72/2.65 (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.72/2.65 (32) YES 6.72/2.65 (33) QDP 6.72/2.65 (34) MRRProof [EQUIVALENT, 54 ms] 6.72/2.65 (35) QDP 6.72/2.65 (36) QDPOrderProof [EQUIVALENT, 94 ms] 6.72/2.65 (37) QDP 6.72/2.65 (38) DependencyGraphProof [EQUIVALENT, 0 ms] 6.72/2.65 (39) AND 6.72/2.65 (40) QDP 6.72/2.65 (41) TransformationProof [EQUIVALENT, 0 ms] 6.72/2.65 (42) QDP 6.72/2.65 (43) QDPOrderProof [EQUIVALENT, 0 ms] 6.72/2.65 (44) QDP 6.72/2.65 (45) PisEmptyProof [EQUIVALENT, 0 ms] 6.72/2.65 (46) YES 6.72/2.65 (47) QDP 6.72/2.65 (48) UsableRulesProof [EQUIVALENT, 0 ms] 6.72/2.65 (49) QDP 6.72/2.65 (50) QReductionProof [EQUIVALENT, 0 ms] 6.72/2.65 (51) QDP 6.72/2.65 (52) QDPSizeChangeProof [EQUIVALENT, 0 ms] 6.72/2.65 (53) YES 6.72/2.65 6.72/2.65 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (0) 6.72/2.65 Obligation: 6.72/2.65 Q restricted rewrite system: 6.72/2.65 The TRS R consists of the following rules: 6.72/2.65 6.72/2.65 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.65 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.65 active(p(s(0))) -> mark(0) 6.72/2.65 mark(f(X)) -> active(f(mark(X))) 6.72/2.65 mark(0) -> active(0) 6.72/2.65 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.65 mark(s(X)) -> active(s(mark(X))) 6.72/2.65 mark(p(X)) -> active(p(mark(X))) 6.72/2.65 f(mark(X)) -> f(X) 6.72/2.65 f(active(X)) -> f(X) 6.72/2.65 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.65 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.65 s(mark(X)) -> s(X) 6.72/2.65 s(active(X)) -> s(X) 6.72/2.65 p(mark(X)) -> p(X) 6.72/2.65 p(active(X)) -> p(X) 6.72/2.65 6.72/2.65 The set Q consists of the following terms: 6.72/2.65 6.72/2.65 active(f(0)) 6.72/2.65 active(f(s(0))) 6.72/2.65 active(p(s(0))) 6.72/2.65 mark(f(x0)) 6.72/2.65 mark(0) 6.72/2.65 mark(cons(x0, x1)) 6.72/2.65 mark(s(x0)) 6.72/2.65 mark(p(x0)) 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.65 s(active(x0)) 6.72/2.65 p(mark(x0)) 6.72/2.65 p(active(x0)) 6.72/2.65 6.72/2.65 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (1) DependencyPairsProof (EQUIVALENT) 6.72/2.65 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (2) 6.72/2.65 Obligation: 6.72/2.65 Q DP problem: 6.72/2.65 The TRS P consists of the following rules: 6.72/2.65 6.72/2.65 ACTIVE(f(0)) -> MARK(cons(0, f(s(0)))) 6.72/2.65 ACTIVE(f(0)) -> CONS(0, f(s(0))) 6.72/2.65 ACTIVE(f(0)) -> F(s(0)) 6.72/2.65 ACTIVE(f(0)) -> S(0) 6.72/2.65 ACTIVE(f(s(0))) -> MARK(f(p(s(0)))) 6.72/2.65 ACTIVE(f(s(0))) -> F(p(s(0))) 6.72/2.65 ACTIVE(f(s(0))) -> P(s(0)) 6.72/2.65 ACTIVE(p(s(0))) -> MARK(0) 6.72/2.65 MARK(f(X)) -> ACTIVE(f(mark(X))) 6.72/2.65 MARK(f(X)) -> F(mark(X)) 6.72/2.65 MARK(f(X)) -> MARK(X) 6.72/2.65 MARK(0) -> ACTIVE(0) 6.72/2.65 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 6.72/2.65 MARK(cons(X1, X2)) -> CONS(mark(X1), X2) 6.72/2.65 MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.65 MARK(s(X)) -> ACTIVE(s(mark(X))) 6.72/2.65 MARK(s(X)) -> S(mark(X)) 6.72/2.65 MARK(s(X)) -> MARK(X) 6.72/2.65 MARK(p(X)) -> ACTIVE(p(mark(X))) 6.72/2.65 MARK(p(X)) -> P(mark(X)) 6.72/2.65 MARK(p(X)) -> MARK(X) 6.72/2.65 F(mark(X)) -> F(X) 6.72/2.65 F(active(X)) -> F(X) 6.72/2.65 CONS(mark(X1), X2) -> CONS(X1, X2) 6.72/2.65 CONS(X1, mark(X2)) -> CONS(X1, X2) 6.72/2.65 CONS(active(X1), X2) -> CONS(X1, X2) 6.72/2.65 CONS(X1, active(X2)) -> CONS(X1, X2) 6.72/2.65 S(mark(X)) -> S(X) 6.72/2.65 S(active(X)) -> S(X) 6.72/2.65 P(mark(X)) -> P(X) 6.72/2.65 P(active(X)) -> P(X) 6.72/2.65 6.72/2.65 The TRS R consists of the following rules: 6.72/2.65 6.72/2.65 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.65 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.65 active(p(s(0))) -> mark(0) 6.72/2.65 mark(f(X)) -> active(f(mark(X))) 6.72/2.65 mark(0) -> active(0) 6.72/2.65 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.65 mark(s(X)) -> active(s(mark(X))) 6.72/2.65 mark(p(X)) -> active(p(mark(X))) 6.72/2.65 f(mark(X)) -> f(X) 6.72/2.65 f(active(X)) -> f(X) 6.72/2.65 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.65 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.65 s(mark(X)) -> s(X) 6.72/2.65 s(active(X)) -> s(X) 6.72/2.65 p(mark(X)) -> p(X) 6.72/2.65 p(active(X)) -> p(X) 6.72/2.65 6.72/2.65 The set Q consists of the following terms: 6.72/2.65 6.72/2.65 active(f(0)) 6.72/2.65 active(f(s(0))) 6.72/2.65 active(p(s(0))) 6.72/2.65 mark(f(x0)) 6.72/2.65 mark(0) 6.72/2.65 mark(cons(x0, x1)) 6.72/2.65 mark(s(x0)) 6.72/2.65 mark(p(x0)) 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.65 s(active(x0)) 6.72/2.65 p(mark(x0)) 6.72/2.65 p(active(x0)) 6.72/2.65 6.72/2.65 We have to consider all minimal (P,Q,R)-chains. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (3) DependencyGraphProof (EQUIVALENT) 6.72/2.65 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 5 SCCs with 11 less nodes. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (4) 6.72/2.65 Complex Obligation (AND) 6.72/2.65 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (5) 6.72/2.65 Obligation: 6.72/2.65 Q DP problem: 6.72/2.65 The TRS P consists of the following rules: 6.72/2.65 6.72/2.65 P(active(X)) -> P(X) 6.72/2.65 P(mark(X)) -> P(X) 6.72/2.65 6.72/2.65 The TRS R consists of the following rules: 6.72/2.65 6.72/2.65 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.65 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.65 active(p(s(0))) -> mark(0) 6.72/2.65 mark(f(X)) -> active(f(mark(X))) 6.72/2.65 mark(0) -> active(0) 6.72/2.65 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.65 mark(s(X)) -> active(s(mark(X))) 6.72/2.65 mark(p(X)) -> active(p(mark(X))) 6.72/2.65 f(mark(X)) -> f(X) 6.72/2.65 f(active(X)) -> f(X) 6.72/2.65 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.65 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.65 s(mark(X)) -> s(X) 6.72/2.65 s(active(X)) -> s(X) 6.72/2.65 p(mark(X)) -> p(X) 6.72/2.65 p(active(X)) -> p(X) 6.72/2.65 6.72/2.65 The set Q consists of the following terms: 6.72/2.65 6.72/2.65 active(f(0)) 6.72/2.65 active(f(s(0))) 6.72/2.65 active(p(s(0))) 6.72/2.65 mark(f(x0)) 6.72/2.65 mark(0) 6.72/2.65 mark(cons(x0, x1)) 6.72/2.65 mark(s(x0)) 6.72/2.65 mark(p(x0)) 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.65 s(active(x0)) 6.72/2.65 p(mark(x0)) 6.72/2.65 p(active(x0)) 6.72/2.65 6.72/2.65 We have to consider all minimal (P,Q,R)-chains. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (6) UsableRulesProof (EQUIVALENT) 6.72/2.65 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. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (7) 6.72/2.65 Obligation: 6.72/2.65 Q DP problem: 6.72/2.65 The TRS P consists of the following rules: 6.72/2.65 6.72/2.65 P(active(X)) -> P(X) 6.72/2.65 P(mark(X)) -> P(X) 6.72/2.65 6.72/2.65 R is empty. 6.72/2.65 The set Q consists of the following terms: 6.72/2.65 6.72/2.65 active(f(0)) 6.72/2.65 active(f(s(0))) 6.72/2.65 active(p(s(0))) 6.72/2.65 mark(f(x0)) 6.72/2.65 mark(0) 6.72/2.65 mark(cons(x0, x1)) 6.72/2.65 mark(s(x0)) 6.72/2.65 mark(p(x0)) 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.65 s(active(x0)) 6.72/2.65 p(mark(x0)) 6.72/2.65 p(active(x0)) 6.72/2.65 6.72/2.65 We have to consider all minimal (P,Q,R)-chains. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (8) QReductionProof (EQUIVALENT) 6.72/2.65 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.72/2.65 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.65 s(active(x0)) 6.72/2.65 p(mark(x0)) 6.72/2.65 p(active(x0)) 6.72/2.65 6.72/2.65 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (9) 6.72/2.65 Obligation: 6.72/2.65 Q DP problem: 6.72/2.65 The TRS P consists of the following rules: 6.72/2.65 6.72/2.65 P(active(X)) -> P(X) 6.72/2.65 P(mark(X)) -> P(X) 6.72/2.65 6.72/2.65 R is empty. 6.72/2.65 The set Q consists of the following terms: 6.72/2.65 6.72/2.65 active(f(0)) 6.72/2.65 active(f(s(0))) 6.72/2.65 active(p(s(0))) 6.72/2.65 mark(f(x0)) 6.72/2.65 mark(0) 6.72/2.65 mark(cons(x0, x1)) 6.72/2.65 mark(s(x0)) 6.72/2.65 mark(p(x0)) 6.72/2.65 6.72/2.65 We have to consider all minimal (P,Q,R)-chains. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (10) QDPSizeChangeProof (EQUIVALENT) 6.72/2.65 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. 6.72/2.65 6.72/2.65 From the DPs we obtained the following set of size-change graphs: 6.72/2.65 *P(active(X)) -> P(X) 6.72/2.65 The graph contains the following edges 1 > 1 6.72/2.65 6.72/2.65 6.72/2.65 *P(mark(X)) -> P(X) 6.72/2.65 The graph contains the following edges 1 > 1 6.72/2.65 6.72/2.65 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (11) 6.72/2.65 YES 6.72/2.65 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (12) 6.72/2.65 Obligation: 6.72/2.65 Q DP problem: 6.72/2.65 The TRS P consists of the following rules: 6.72/2.65 6.72/2.65 S(active(X)) -> S(X) 6.72/2.65 S(mark(X)) -> S(X) 6.72/2.65 6.72/2.65 The TRS R consists of the following rules: 6.72/2.65 6.72/2.65 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.65 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.65 active(p(s(0))) -> mark(0) 6.72/2.65 mark(f(X)) -> active(f(mark(X))) 6.72/2.65 mark(0) -> active(0) 6.72/2.65 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.65 mark(s(X)) -> active(s(mark(X))) 6.72/2.65 mark(p(X)) -> active(p(mark(X))) 6.72/2.65 f(mark(X)) -> f(X) 6.72/2.65 f(active(X)) -> f(X) 6.72/2.65 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.65 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.65 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.65 s(mark(X)) -> s(X) 6.72/2.65 s(active(X)) -> s(X) 6.72/2.65 p(mark(X)) -> p(X) 6.72/2.65 p(active(X)) -> p(X) 6.72/2.65 6.72/2.65 The set Q consists of the following terms: 6.72/2.65 6.72/2.65 active(f(0)) 6.72/2.65 active(f(s(0))) 6.72/2.65 active(p(s(0))) 6.72/2.65 mark(f(x0)) 6.72/2.65 mark(0) 6.72/2.65 mark(cons(x0, x1)) 6.72/2.65 mark(s(x0)) 6.72/2.65 mark(p(x0)) 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.65 s(active(x0)) 6.72/2.65 p(mark(x0)) 6.72/2.65 p(active(x0)) 6.72/2.65 6.72/2.65 We have to consider all minimal (P,Q,R)-chains. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (13) UsableRulesProof (EQUIVALENT) 6.72/2.65 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. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (14) 6.72/2.65 Obligation: 6.72/2.65 Q DP problem: 6.72/2.65 The TRS P consists of the following rules: 6.72/2.65 6.72/2.65 S(active(X)) -> S(X) 6.72/2.65 S(mark(X)) -> S(X) 6.72/2.65 6.72/2.65 R is empty. 6.72/2.65 The set Q consists of the following terms: 6.72/2.65 6.72/2.65 active(f(0)) 6.72/2.65 active(f(s(0))) 6.72/2.65 active(p(s(0))) 6.72/2.65 mark(f(x0)) 6.72/2.65 mark(0) 6.72/2.65 mark(cons(x0, x1)) 6.72/2.65 mark(s(x0)) 6.72/2.65 mark(p(x0)) 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.65 s(active(x0)) 6.72/2.65 p(mark(x0)) 6.72/2.65 p(active(x0)) 6.72/2.65 6.72/2.65 We have to consider all minimal (P,Q,R)-chains. 6.72/2.65 ---------------------------------------- 6.72/2.65 6.72/2.65 (15) QReductionProof (EQUIVALENT) 6.72/2.65 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.72/2.65 6.72/2.65 f(mark(x0)) 6.72/2.65 f(active(x0)) 6.72/2.65 cons(mark(x0), x1) 6.72/2.65 cons(x0, mark(x1)) 6.72/2.65 cons(active(x0), x1) 6.72/2.65 cons(x0, active(x1)) 6.72/2.65 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (16) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 S(active(X)) -> S(X) 6.72/2.66 S(mark(X)) -> S(X) 6.72/2.66 6.72/2.66 R is empty. 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (17) QDPSizeChangeProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 6.72/2.66 From the DPs we obtained the following set of size-change graphs: 6.72/2.66 *S(active(X)) -> S(X) 6.72/2.66 The graph contains the following edges 1 > 1 6.72/2.66 6.72/2.66 6.72/2.66 *S(mark(X)) -> S(X) 6.72/2.66 The graph contains the following edges 1 > 1 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (18) 6.72/2.66 YES 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (19) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 CONS(X1, mark(X2)) -> CONS(X1, X2) 6.72/2.66 CONS(mark(X1), X2) -> CONS(X1, X2) 6.72/2.66 CONS(active(X1), X2) -> CONS(X1, X2) 6.72/2.66 CONS(X1, active(X2)) -> CONS(X1, X2) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (20) UsableRulesProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (21) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 CONS(X1, mark(X2)) -> CONS(X1, X2) 6.72/2.66 CONS(mark(X1), X2) -> CONS(X1, X2) 6.72/2.66 CONS(active(X1), X2) -> CONS(X1, X2) 6.72/2.66 CONS(X1, active(X2)) -> CONS(X1, X2) 6.72/2.66 6.72/2.66 R is empty. 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (22) QReductionProof (EQUIVALENT) 6.72/2.66 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.72/2.66 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (23) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 CONS(X1, mark(X2)) -> CONS(X1, X2) 6.72/2.66 CONS(mark(X1), X2) -> CONS(X1, X2) 6.72/2.66 CONS(active(X1), X2) -> CONS(X1, X2) 6.72/2.66 CONS(X1, active(X2)) -> CONS(X1, X2) 6.72/2.66 6.72/2.66 R is empty. 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (24) QDPSizeChangeProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 6.72/2.66 From the DPs we obtained the following set of size-change graphs: 6.72/2.66 *CONS(X1, mark(X2)) -> CONS(X1, X2) 6.72/2.66 The graph contains the following edges 1 >= 1, 2 > 2 6.72/2.66 6.72/2.66 6.72/2.66 *CONS(mark(X1), X2) -> CONS(X1, X2) 6.72/2.66 The graph contains the following edges 1 > 1, 2 >= 2 6.72/2.66 6.72/2.66 6.72/2.66 *CONS(active(X1), X2) -> CONS(X1, X2) 6.72/2.66 The graph contains the following edges 1 > 1, 2 >= 2 6.72/2.66 6.72/2.66 6.72/2.66 *CONS(X1, active(X2)) -> CONS(X1, X2) 6.72/2.66 The graph contains the following edges 1 >= 1, 2 > 2 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (25) 6.72/2.66 YES 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (26) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 F(active(X)) -> F(X) 6.72/2.66 F(mark(X)) -> F(X) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (27) UsableRulesProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (28) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 F(active(X)) -> F(X) 6.72/2.66 F(mark(X)) -> F(X) 6.72/2.66 6.72/2.66 R is empty. 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (29) QReductionProof (EQUIVALENT) 6.72/2.66 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.72/2.66 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (30) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 F(active(X)) -> F(X) 6.72/2.66 F(mark(X)) -> F(X) 6.72/2.66 6.72/2.66 R is empty. 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (31) QDPSizeChangeProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 6.72/2.66 From the DPs we obtained the following set of size-change graphs: 6.72/2.66 *F(active(X)) -> F(X) 6.72/2.66 The graph contains the following edges 1 > 1 6.72/2.66 6.72/2.66 6.72/2.66 *F(mark(X)) -> F(X) 6.72/2.66 The graph contains the following edges 1 > 1 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (32) 6.72/2.66 YES 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (33) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 6.72/2.66 ACTIVE(f(0)) -> MARK(cons(0, f(s(0)))) 6.72/2.66 MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.66 MARK(f(X)) -> ACTIVE(f(mark(X))) 6.72/2.66 ACTIVE(f(s(0))) -> MARK(f(p(s(0)))) 6.72/2.66 MARK(f(X)) -> MARK(X) 6.72/2.66 MARK(s(X)) -> ACTIVE(s(mark(X))) 6.72/2.66 MARK(s(X)) -> MARK(X) 6.72/2.66 MARK(p(X)) -> ACTIVE(p(mark(X))) 6.72/2.66 MARK(p(X)) -> MARK(X) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (34) MRRProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 6.72/2.66 Strictly oriented dependency pairs: 6.72/2.66 6.72/2.66 MARK(f(X)) -> MARK(X) 6.72/2.66 6.72/2.66 6.72/2.66 Used ordering: Polynomial interpretation [POLO]: 6.72/2.66 6.72/2.66 POL(0) = 0 6.72/2.66 POL(ACTIVE(x_1)) = x_1 6.72/2.66 POL(MARK(x_1)) = x_1 6.72/2.66 POL(active(x_1)) = x_1 6.72/2.66 POL(cons(x_1, x_2)) = x_1 + x_2 6.72/2.66 POL(f(x_1)) = 2 + 2*x_1 6.72/2.66 POL(mark(x_1)) = x_1 6.72/2.66 POL(p(x_1)) = x_1 6.72/2.66 POL(s(x_1)) = x_1 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (35) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 6.72/2.66 ACTIVE(f(0)) -> MARK(cons(0, f(s(0)))) 6.72/2.66 MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.66 MARK(f(X)) -> ACTIVE(f(mark(X))) 6.72/2.66 ACTIVE(f(s(0))) -> MARK(f(p(s(0)))) 6.72/2.66 MARK(s(X)) -> ACTIVE(s(mark(X))) 6.72/2.66 MARK(s(X)) -> MARK(X) 6.72/2.66 MARK(p(X)) -> ACTIVE(p(mark(X))) 6.72/2.66 MARK(p(X)) -> MARK(X) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (36) QDPOrderProof (EQUIVALENT) 6.72/2.66 We use the reduction pair processor [LPAR04,JAR06]. 6.72/2.66 6.72/2.66 6.72/2.66 The following pairs can be oriented strictly and are deleted. 6.72/2.66 6.72/2.66 ACTIVE(f(0)) -> MARK(cons(0, f(s(0)))) 6.72/2.66 The remaining pairs can at least be oriented weakly. 6.72/2.66 Used ordering: Combined order from the following AFS and order. 6.72/2.66 MARK(x1) = x1 6.72/2.66 6.72/2.66 cons(x1, x2) = x1 6.72/2.66 6.72/2.66 ACTIVE(x1) = x1 6.72/2.66 6.72/2.66 mark(x1) = x1 6.72/2.66 6.72/2.66 f(x1) = f 6.72/2.66 6.72/2.66 0 = 0 6.72/2.66 6.72/2.66 s(x1) = x1 6.72/2.66 6.72/2.66 p(x1) = x1 6.72/2.66 6.72/2.66 active(x1) = x1 6.72/2.66 6.72/2.66 6.72/2.66 Knuth-Bendix order [KBO] with precedence:f > 0 6.72/2.66 6.72/2.66 and weight map: 6.72/2.66 6.72/2.66 0=1 6.72/2.66 f=1 6.72/2.66 6.72/2.66 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 6.72/2.66 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (37) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 6.72/2.66 MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.66 MARK(f(X)) -> ACTIVE(f(mark(X))) 6.72/2.66 ACTIVE(f(s(0))) -> MARK(f(p(s(0)))) 6.72/2.66 MARK(s(X)) -> ACTIVE(s(mark(X))) 6.72/2.66 MARK(s(X)) -> MARK(X) 6.72/2.66 MARK(p(X)) -> ACTIVE(p(mark(X))) 6.72/2.66 MARK(p(X)) -> MARK(X) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (38) DependencyGraphProof (EQUIVALENT) 6.72/2.66 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 3 less nodes. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (39) 6.72/2.66 Complex Obligation (AND) 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (40) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 ACTIVE(f(s(0))) -> MARK(f(p(s(0)))) 6.72/2.66 MARK(f(X)) -> ACTIVE(f(mark(X))) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (41) TransformationProof (EQUIVALENT) 6.72/2.66 By instantiating [LPAR04] the rule MARK(f(X)) -> ACTIVE(f(mark(X))) we obtained the following new rules [LPAR04]: 6.72/2.66 6.72/2.66 (MARK(f(p(s(0)))) -> ACTIVE(f(mark(p(s(0))))),MARK(f(p(s(0)))) -> ACTIVE(f(mark(p(s(0)))))) 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (42) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 ACTIVE(f(s(0))) -> MARK(f(p(s(0)))) 6.72/2.66 MARK(f(p(s(0)))) -> ACTIVE(f(mark(p(s(0))))) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (43) QDPOrderProof (EQUIVALENT) 6.72/2.66 We use the reduction pair processor [LPAR04,JAR06]. 6.72/2.66 6.72/2.66 6.72/2.66 The following pairs can be oriented strictly and are deleted. 6.72/2.66 6.72/2.66 ACTIVE(f(s(0))) -> MARK(f(p(s(0)))) 6.72/2.66 MARK(f(p(s(0)))) -> ACTIVE(f(mark(p(s(0))))) 6.72/2.66 The remaining pairs can at least be oriented weakly. 6.72/2.66 Used ordering: Combined order from the following AFS and order. 6.72/2.66 ACTIVE(x1) = x1 6.72/2.66 6.72/2.66 f(x1) = x1 6.72/2.66 6.72/2.66 s(x1) = s 6.72/2.66 6.72/2.66 MARK(x1) = MARK 6.72/2.66 6.72/2.66 p(x1) = p 6.72/2.66 6.72/2.66 mark(x1) = x1 6.72/2.66 6.72/2.66 active(x1) = x1 6.72/2.66 6.72/2.66 cons(x1, x2) = cons 6.72/2.66 6.72/2.66 0 = 0 6.72/2.66 6.72/2.66 6.72/2.66 Knuth-Bendix order [KBO] with precedence:s > MARK > p > 0 > cons 6.72/2.66 6.72/2.66 and weight map: 6.72/2.66 6.72/2.66 s=1 6.72/2.66 0=1 6.72/2.66 p=1 6.72/2.66 cons=1 6.72/2.66 MARK=1 6.72/2.66 6.72/2.66 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 6.72/2.66 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (44) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 P is empty. 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (45) PisEmptyProof (EQUIVALENT) 6.72/2.66 The TRS P is empty. Hence, there is no (P,Q,R) chain. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (46) 6.72/2.66 YES 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (47) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 MARK(s(X)) -> MARK(X) 6.72/2.66 MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.66 MARK(p(X)) -> MARK(X) 6.72/2.66 6.72/2.66 The TRS R consists of the following rules: 6.72/2.66 6.72/2.66 active(f(0)) -> mark(cons(0, f(s(0)))) 6.72/2.66 active(f(s(0))) -> mark(f(p(s(0)))) 6.72/2.66 active(p(s(0))) -> mark(0) 6.72/2.66 mark(f(X)) -> active(f(mark(X))) 6.72/2.66 mark(0) -> active(0) 6.72/2.66 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 6.72/2.66 mark(s(X)) -> active(s(mark(X))) 6.72/2.66 mark(p(X)) -> active(p(mark(X))) 6.72/2.66 f(mark(X)) -> f(X) 6.72/2.66 f(active(X)) -> f(X) 6.72/2.66 cons(mark(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, mark(X2)) -> cons(X1, X2) 6.72/2.66 cons(active(X1), X2) -> cons(X1, X2) 6.72/2.66 cons(X1, active(X2)) -> cons(X1, X2) 6.72/2.66 s(mark(X)) -> s(X) 6.72/2.66 s(active(X)) -> s(X) 6.72/2.66 p(mark(X)) -> p(X) 6.72/2.66 p(active(X)) -> p(X) 6.72/2.66 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (48) UsableRulesProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (49) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 MARK(s(X)) -> MARK(X) 6.72/2.66 MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.66 MARK(p(X)) -> MARK(X) 6.72/2.66 6.72/2.66 R is empty. 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (50) QReductionProof (EQUIVALENT) 6.72/2.66 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 6.72/2.66 6.72/2.66 active(f(0)) 6.72/2.66 active(f(s(0))) 6.72/2.66 active(p(s(0))) 6.72/2.66 mark(f(x0)) 6.72/2.66 mark(0) 6.72/2.66 mark(cons(x0, x1)) 6.72/2.66 mark(s(x0)) 6.72/2.66 mark(p(x0)) 6.72/2.66 f(mark(x0)) 6.72/2.66 f(active(x0)) 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (51) 6.72/2.66 Obligation: 6.72/2.66 Q DP problem: 6.72/2.66 The TRS P consists of the following rules: 6.72/2.66 6.72/2.66 MARK(s(X)) -> MARK(X) 6.72/2.66 MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.66 MARK(p(X)) -> MARK(X) 6.72/2.66 6.72/2.66 R is empty. 6.72/2.66 The set Q consists of the following terms: 6.72/2.66 6.72/2.66 cons(mark(x0), x1) 6.72/2.66 cons(x0, mark(x1)) 6.72/2.66 cons(active(x0), x1) 6.72/2.66 cons(x0, active(x1)) 6.72/2.66 s(mark(x0)) 6.72/2.66 s(active(x0)) 6.72/2.66 p(mark(x0)) 6.72/2.66 p(active(x0)) 6.72/2.66 6.72/2.66 We have to consider all minimal (P,Q,R)-chains. 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (52) QDPSizeChangeProof (EQUIVALENT) 6.72/2.66 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. 6.72/2.66 6.72/2.66 From the DPs we obtained the following set of size-change graphs: 6.72/2.66 *MARK(s(X)) -> MARK(X) 6.72/2.66 The graph contains the following edges 1 > 1 6.72/2.66 6.72/2.66 6.72/2.66 *MARK(cons(X1, X2)) -> MARK(X1) 6.72/2.66 The graph contains the following edges 1 > 1 6.72/2.66 6.72/2.66 6.72/2.66 *MARK(p(X)) -> MARK(X) 6.72/2.66 The graph contains the following edges 1 > 1 6.72/2.66 6.72/2.66 6.72/2.66 ---------------------------------------- 6.72/2.66 6.72/2.66 (53) 6.72/2.66 YES 7.01/2.70 EOF