/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/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, 71 ms] (2) QDP (3) DependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) QDP (6) UsableRulesProof [EQUIVALENT, 0 ms] (7) QDP (8) QDPSizeChangeProof [EQUIVALENT, 0 ms] (9) YES (10) QDP (11) UsableRulesProof [EQUIVALENT, 0 ms] (12) QDP (13) QDPSizeChangeProof [EQUIVALENT, 0 ms] (14) YES (15) QDP (16) UsableRulesProof [EQUIVALENT, 0 ms] (17) QDP (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] (19) YES (20) QDP (21) UsableRulesProof [EQUIVALENT, 0 ms] (22) QDP (23) QDPSizeChangeProof [EQUIVALENT, 0 ms] (24) YES (25) QDP (26) UsableRulesProof [EQUIVALENT, 0 ms] (27) QDP (28) QDPSizeChangeProof [EQUIVALENT, 0 ms] (29) YES (30) QDP (31) UsableRulesProof [EQUIVALENT, 0 ms] (32) QDP (33) QDPSizeChangeProof [EQUIVALENT, 0 ms] (34) YES (35) QDP (36) UsableRulesProof [EQUIVALENT, 0 ms] (37) QDP (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] (39) YES (40) QDP (41) UsableRulesProof [EQUIVALENT, 0 ms] (42) QDP (43) QDPSizeChangeProof [EQUIVALENT, 0 ms] (44) YES (45) QDP (46) UsableRulesProof [EQUIVALENT, 0 ms] (47) QDP (48) QDPSizeChangeProof [EQUIVALENT, 0 ms] (49) YES (50) QDP (51) UsableRulesProof [EQUIVALENT, 0 ms] (52) QDP (53) QDPSizeChangeProof [EQUIVALENT, 0 ms] (54) YES (55) QDP (56) UsableRulesProof [EQUIVALENT, 0 ms] (57) QDP (58) QDPSizeChangeProof [EQUIVALENT, 0 ms] (59) YES (60) QDP (61) UsableRulesProof [EQUIVALENT, 0 ms] (62) QDP (63) QDPSizeChangeProof [EQUIVALENT, 0 ms] (64) YES (65) QDP (66) UsableRulesProof [EQUIVALENT, 0 ms] (67) QDP (68) QDPSizeChangeProof [EQUIVALENT, 0 ms] (69) YES (70) QDP (71) QDPOrderProof [EQUIVALENT, 540 ms] (72) QDP (73) QDPOrderProof [EQUIVALENT, 735 ms] (74) QDP (75) QDPOrderProof [EQUIVALENT, 776 ms] (76) QDP (77) QDPOrderProof [EQUIVALENT, 672 ms] (78) QDP (79) QDPOrderProof [EQUIVALENT, 742 ms] (80) QDP (81) QDPOrderProof [EQUIVALENT, 323 ms] (82) QDP (83) QDPOrderProof [EQUIVALENT, 649 ms] (84) QDP (85) QDPOrderProof [EQUIVALENT, 431 ms] (86) QDP (87) QDPOrderProof [EQUIVALENT, 592 ms] (88) QDP (89) QDPOrderProof [EQUIVALENT, 637 ms] (90) QDP (91) QDPOrderProof [EQUIVALENT, 605 ms] (92) QDP (93) QDPOrderProof [EQUIVALENT, 724 ms] (94) QDP (95) QDPOrderProof [EQUIVALENT, 721 ms] (96) QDP (97) QDPOrderProof [EQUIVALENT, 593 ms] (98) QDP (99) QDPOrderProof [EQUIVALENT, 448 ms] (100) QDP (101) QDPOrderProof [EQUIVALENT, 376 ms] (102) QDP (103) QDPOrderProof [EQUIVALENT, 225 ms] (104) QDP (105) QDPOrderProof [EQUIVALENT, 599 ms] (106) QDP (107) QDPOrderProof [EQUIVALENT, 227 ms] (108) QDP (109) QDPOrderProof [EQUIVALENT, 193 ms] (110) QDP (111) QDPOrderProof [EQUIVALENT, 118 ms] (112) QDP (113) QDPOrderProof [EQUIVALENT, 228 ms] (114) QDP (115) QDPOrderProof [EQUIVALENT, 179 ms] (116) QDP (117) QDPOrderProof [EQUIVALENT, 173 ms] (118) QDP (119) QDPOrderProof [EQUIVALENT, 47 ms] (120) QDP (121) DependencyGraphProof [EQUIVALENT, 0 ms] (122) TRUE ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(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: ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(from(X)) -> CONS(X, from(s(X))) ACTIVE(from(X)) -> FROM(s(X)) ACTIVE(from(X)) -> S(X) ACTIVE(2ndspos(0, Z)) -> MARK(rnil) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> 2NDSPOS(s(N), cons2(X, Z)) ACTIVE(2ndspos(s(N), cons(X, Z))) -> CONS2(X, Z) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> RCONS(posrecip(Y), 2ndsneg(N, Z)) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> POSRECIP(Y) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> 2NDSNEG(N, Z) ACTIVE(2ndsneg(0, Z)) -> MARK(rnil) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> 2NDSNEG(s(N), cons2(X, Z)) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> CONS2(X, Z) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> RCONS(negrecip(Y), 2ndspos(N, Z)) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> NEGRECIP(Y) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> 2NDSPOS(N, Z) ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) ACTIVE(pi(X)) -> 2NDSPOS(X, from(0)) ACTIVE(pi(X)) -> FROM(0) ACTIVE(plus(0, Y)) -> MARK(Y) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) ACTIVE(plus(s(X), Y)) -> S(plus(X, Y)) ACTIVE(plus(s(X), Y)) -> PLUS(X, Y) ACTIVE(times(0, Y)) -> MARK(0) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) ACTIVE(times(s(X), Y)) -> PLUS(Y, times(X, Y)) ACTIVE(times(s(X), Y)) -> TIMES(X, Y) ACTIVE(square(X)) -> MARK(times(X, X)) ACTIVE(square(X)) -> TIMES(X, X) MARK(from(X)) -> ACTIVE(from(mark(X))) MARK(from(X)) -> FROM(mark(X)) MARK(from(X)) -> MARK(X) 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(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) MARK(2ndspos(X1, X2)) -> 2NDSPOS(mark(X1), mark(X2)) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) MARK(0) -> ACTIVE(0) MARK(rnil) -> ACTIVE(rnil) MARK(cons2(X1, X2)) -> ACTIVE(cons2(X1, mark(X2))) MARK(cons2(X1, X2)) -> CONS2(X1, mark(X2)) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> ACTIVE(rcons(mark(X1), mark(X2))) MARK(rcons(X1, X2)) -> RCONS(mark(X1), mark(X2)) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) MARK(posrecip(X)) -> ACTIVE(posrecip(mark(X))) MARK(posrecip(X)) -> POSRECIP(mark(X)) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) MARK(2ndsneg(X1, X2)) -> 2NDSNEG(mark(X1), mark(X2)) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) MARK(negrecip(X)) -> ACTIVE(negrecip(mark(X))) MARK(negrecip(X)) -> NEGRECIP(mark(X)) MARK(negrecip(X)) -> MARK(X) MARK(pi(X)) -> ACTIVE(pi(mark(X))) MARK(pi(X)) -> PI(mark(X)) MARK(pi(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> PLUS(mark(X1), mark(X2)) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> TIMES(mark(X1), mark(X2)) MARK(times(X1, X2)) -> MARK(X1) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) MARK(square(X)) -> SQUARE(mark(X)) MARK(square(X)) -> MARK(X) FROM(mark(X)) -> FROM(X) FROM(active(X)) -> FROM(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) 2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) CONS2(mark(X1), X2) -> CONS2(X1, X2) CONS2(X1, mark(X2)) -> CONS2(X1, X2) CONS2(active(X1), X2) -> CONS2(X1, X2) CONS2(X1, active(X2)) -> CONS2(X1, X2) RCONS(mark(X1), X2) -> RCONS(X1, X2) RCONS(X1, mark(X2)) -> RCONS(X1, X2) RCONS(active(X1), X2) -> RCONS(X1, X2) RCONS(X1, active(X2)) -> RCONS(X1, X2) POSRECIP(mark(X)) -> POSRECIP(X) POSRECIP(active(X)) -> POSRECIP(X) 2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) NEGRECIP(mark(X)) -> NEGRECIP(X) NEGRECIP(active(X)) -> NEGRECIP(X) PI(mark(X)) -> PI(X) PI(active(X)) -> PI(X) PLUS(mark(X1), X2) -> PLUS(X1, X2) PLUS(X1, mark(X2)) -> PLUS(X1, X2) PLUS(active(X1), X2) -> PLUS(X1, X2) PLUS(X1, active(X2)) -> PLUS(X1, X2) TIMES(mark(X1), X2) -> TIMES(X1, X2) TIMES(X1, mark(X2)) -> TIMES(X1, X2) TIMES(active(X1), X2) -> TIMES(X1, X2) TIMES(X1, active(X2)) -> TIMES(X1, X2) SQUARE(mark(X)) -> SQUARE(X) SQUARE(active(X)) -> SQUARE(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(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 14 SCCs with 38 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Q DP problem: The TRS P consists of the following rules: SQUARE(active(X)) -> SQUARE(X) SQUARE(mark(X)) -> SQUARE(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(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: SQUARE(active(X)) -> SQUARE(X) SQUARE(mark(X)) -> SQUARE(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) 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: *SQUARE(active(X)) -> SQUARE(X) The graph contains the following edges 1 > 1 *SQUARE(mark(X)) -> SQUARE(X) The graph contains the following edges 1 > 1 ---------------------------------------- (9) YES ---------------------------------------- (10) Obligation: Q DP problem: The TRS P consists of the following rules: TIMES(X1, mark(X2)) -> TIMES(X1, X2) TIMES(mark(X1), X2) -> TIMES(X1, X2) TIMES(active(X1), X2) -> TIMES(X1, X2) TIMES(X1, active(X2)) -> TIMES(X1, X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (11) 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. ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: TIMES(X1, mark(X2)) -> TIMES(X1, X2) TIMES(mark(X1), X2) -> TIMES(X1, X2) TIMES(active(X1), X2) -> TIMES(X1, X2) TIMES(X1, active(X2)) -> TIMES(X1, X2) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) 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: *TIMES(X1, mark(X2)) -> TIMES(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *TIMES(mark(X1), X2) -> TIMES(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *TIMES(active(X1), X2) -> TIMES(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *TIMES(X1, active(X2)) -> TIMES(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (14) YES ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: PLUS(X1, mark(X2)) -> PLUS(X1, X2) PLUS(mark(X1), X2) -> PLUS(X1, X2) PLUS(active(X1), X2) -> PLUS(X1, X2) PLUS(X1, active(X2)) -> PLUS(X1, X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) 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. ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: PLUS(X1, mark(X2)) -> PLUS(X1, X2) PLUS(mark(X1), X2) -> PLUS(X1, X2) PLUS(active(X1), X2) -> PLUS(X1, X2) PLUS(X1, active(X2)) -> PLUS(X1, X2) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) 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: *PLUS(X1, mark(X2)) -> PLUS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *PLUS(mark(X1), X2) -> PLUS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *PLUS(active(X1), X2) -> PLUS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *PLUS(X1, active(X2)) -> PLUS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (19) YES ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: PI(active(X)) -> PI(X) PI(mark(X)) -> PI(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) 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. ---------------------------------------- (22) Obligation: Q DP problem: The TRS P consists of the following rules: PI(active(X)) -> PI(X) PI(mark(X)) -> PI(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (23) 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: *PI(active(X)) -> PI(X) The graph contains the following edges 1 > 1 *PI(mark(X)) -> PI(X) The graph contains the following edges 1 > 1 ---------------------------------------- (24) YES ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: NEGRECIP(active(X)) -> NEGRECIP(X) NEGRECIP(mark(X)) -> NEGRECIP(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) 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. ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: NEGRECIP(active(X)) -> NEGRECIP(X) NEGRECIP(mark(X)) -> NEGRECIP(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (28) 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: *NEGRECIP(active(X)) -> NEGRECIP(X) The graph contains the following edges 1 > 1 *NEGRECIP(mark(X)) -> NEGRECIP(X) The graph contains the following edges 1 > 1 ---------------------------------------- (29) YES ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: 2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) 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. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: 2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) 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: *2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (34) YES ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: POSRECIP(active(X)) -> POSRECIP(X) POSRECIP(mark(X)) -> POSRECIP(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) 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. ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: POSRECIP(active(X)) -> POSRECIP(X) POSRECIP(mark(X)) -> POSRECIP(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) 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: *POSRECIP(active(X)) -> POSRECIP(X) The graph contains the following edges 1 > 1 *POSRECIP(mark(X)) -> POSRECIP(X) The graph contains the following edges 1 > 1 ---------------------------------------- (39) YES ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: RCONS(X1, mark(X2)) -> RCONS(X1, X2) RCONS(mark(X1), X2) -> RCONS(X1, X2) RCONS(active(X1), X2) -> RCONS(X1, X2) RCONS(X1, active(X2)) -> RCONS(X1, X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) 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. ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: RCONS(X1, mark(X2)) -> RCONS(X1, X2) RCONS(mark(X1), X2) -> RCONS(X1, X2) RCONS(active(X1), X2) -> RCONS(X1, X2) RCONS(X1, active(X2)) -> RCONS(X1, X2) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) 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: *RCONS(X1, mark(X2)) -> RCONS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *RCONS(mark(X1), X2) -> RCONS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *RCONS(active(X1), X2) -> RCONS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *RCONS(X1, active(X2)) -> RCONS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (44) YES ---------------------------------------- (45) Obligation: Q DP problem: The TRS P consists of the following rules: CONS2(X1, mark(X2)) -> CONS2(X1, X2) CONS2(mark(X1), X2) -> CONS2(X1, X2) CONS2(active(X1), X2) -> CONS2(X1, X2) CONS2(X1, active(X2)) -> CONS2(X1, X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (46) 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. ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: CONS2(X1, mark(X2)) -> CONS2(X1, X2) CONS2(mark(X1), X2) -> CONS2(X1, X2) CONS2(active(X1), X2) -> CONS2(X1, X2) CONS2(X1, active(X2)) -> CONS2(X1, X2) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) 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: *CONS2(X1, mark(X2)) -> CONS2(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *CONS2(mark(X1), X2) -> CONS2(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *CONS2(active(X1), X2) -> CONS2(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *CONS2(X1, active(X2)) -> CONS2(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (49) YES ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: 2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) 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. ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: 2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) 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: *2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (54) YES ---------------------------------------- (55) 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(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (56) 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. ---------------------------------------- (57) 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. ---------------------------------------- (58) 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 ---------------------------------------- (59) YES ---------------------------------------- (60) 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(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) 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. ---------------------------------------- (62) 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. ---------------------------------------- (63) 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 ---------------------------------------- (64) YES ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: FROM(active(X)) -> FROM(X) FROM(mark(X)) -> FROM(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (66) 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. ---------------------------------------- (67) Obligation: Q DP problem: The TRS P consists of the following rules: FROM(active(X)) -> FROM(X) FROM(mark(X)) -> FROM(X) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (68) 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: *FROM(active(X)) -> FROM(X) The graph contains the following edges 1 > 1 *FROM(mark(X)) -> FROM(X) The graph contains the following edges 1 > 1 ---------------------------------------- (69) YES ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) MARK(cons2(X1, X2)) -> ACTIVE(cons2(X1, mark(X2))) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> ACTIVE(rcons(mark(X1), mark(X2))) ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) MARK(posrecip(X)) -> ACTIVE(posrecip(mark(X))) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) MARK(negrecip(X)) -> ACTIVE(negrecip(mark(X))) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(pi(X)) -> ACTIVE(pi(mark(X))) ACTIVE(square(X)) -> MARK(times(X, X)) MARK(pi(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X1) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) MARK(square(X)) -> MARK(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(cons2(X1, X2)) -> ACTIVE(cons2(X1, mark(X2))) MARK(rcons(X1, X2)) -> ACTIVE(rcons(mark(X1), mark(X2))) MARK(posrecip(X)) -> ACTIVE(posrecip(mark(X))) MARK(negrecip(X)) -> ACTIVE(negrecip(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 1 POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 1} POL( 2ndspos_2(x_1, x_2) ) = 1 POL( cons_2(x_1, x_2) ) = max{0, -2} POL( cons2_2(x_1, x_2) ) = 0 POL( from_1(x_1) ) = 1 POL( negrecip_1(x_1) ) = 0 POL( pi_1(x_1) ) = 1 POL( plus_2(x_1, x_2) ) = 1 POL( posrecip_1(x_1) ) = max{0, -2} POL( rcons_2(x_1, x_2) ) = max{0, -2} POL( s_1(x_1) ) = max{0, -2} POL( square_1(x_1) ) = 1 POL( times_2(x_1, x_2) ) = 1 POL( mark_1(x_1) ) = max{0, -2} POL( active_1(x_1) ) = 2 POL( 0 ) = 0 POL( rnil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(pi(X)) -> ACTIVE(pi(mark(X))) ACTIVE(square(X)) -> MARK(times(X, X)) MARK(pi(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X1) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) MARK(square(X)) -> MARK(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(pi(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[1A]] + [[1A]] * x_1 >>> <<< POL(0) = [[1A]] >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(square(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(active(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) ---------------------------------------- (74) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(pi(X)) -> ACTIVE(pi(mark(X))) ACTIVE(square(X)) -> MARK(times(X, X)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X1) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) MARK(square(X)) -> MARK(X) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (75) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(square(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(0) = [[0A]] >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(times(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(square(x_1)) = [[1A]] + [[1A]] * x_1 >>> <<< POL(active(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(pi(X)) -> ACTIVE(pi(mark(X))) ACTIVE(square(X)) -> MARK(times(X, X)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X1) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (77) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(times(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(0) = [[0A]] >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(times(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(square(x_1)) = [[-I]] + [[1A]] * x_1 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) ---------------------------------------- (78) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(pi(X)) -> ACTIVE(pi(mark(X))) ACTIVE(square(X)) -> MARK(times(X, X)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[1A]] + [[1A]] * x_1 >>> <<< POL(0) = [[0A]] >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(square(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) ---------------------------------------- (80) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(pi(X)) -> ACTIVE(pi(mark(X))) ACTIVE(square(X)) -> MARK(times(X, X)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (81) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(pi(X)) -> ACTIVE(pi(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 2 POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( 2ndspos_2(x_1, x_2) ) = 2 POL( from_1(x_1) ) = 2 POL( pi_1(x_1) ) = 0 POL( plus_2(x_1, x_2) ) = 2 POL( square_1(x_1) ) = 2 POL( times_2(x_1, x_2) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2x_2 + 2 POL( s_1(x_1) ) = 0 POL( cons2_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( rcons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( posrecip_1(x_1) ) = max{0, x_1 - 2} POL( negrecip_1(x_1) ) = max{0, x_1 - 2} POL( 0 ) = 2 POL( rnil ) = 2 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: from(active(X)) -> from(X) from(mark(X)) -> from(X) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) ACTIVE(square(X)) -> MARK(times(X, X)) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(square(X)) -> MARK(times(X, X)) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[1A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[0A]] >>> <<< POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(square(x_1)) = [[2A]] + [[1A]] * x_1 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[0A]] + [[1A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(active(X)) -> square(X) square(mark(X)) -> square(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) ---------------------------------------- (84) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X2) MARK(square(X)) -> ACTIVE(square(mark(X))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (85) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(square(X)) -> ACTIVE(square(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 1 POL( ACTIVE_1(x_1) ) = x_1 POL( 2ndspos_2(x_1, x_2) ) = 1 POL( from_1(x_1) ) = 1 POL( plus_2(x_1, x_2) ) = 1 POL( square_1(x_1) ) = 0 POL( times_2(x_1, x_2) ) = 1 POL( mark_1(x_1) ) = 2x_1 + 2 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( cons2_2(x_1, x_2) ) = max{0, x_1 - 2} POL( rcons_2(x_1, x_2) ) = 2 POL( posrecip_1(x_1) ) = x_1 + 2 POL( negrecip_1(x_1) ) = 2 POL( pi_1(x_1) ) = max{0, -2} POL( 0 ) = 0 POL( rnil ) = 2 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: from(active(X)) -> from(X) from(mark(X)) -> from(X) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(from(X)) -> MARK(X) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(from(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[2A]] + [[1A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[1A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[2A]] >>> <<< POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[4A]] + [[0A]] * x_1 >>> <<< POL(square(x_1)) = [[0A]] + [[1A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (88) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) MARK(times(X1, X2)) -> MARK(X2) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (89) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(times(X1, X2)) -> MARK(X2) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[0A]] >>> <<< POL(times(x_1, x_2)) = [[1A]] + [[-I]] * x_1 + [[1A]] * x_2 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(square(x_1)) = [[2A]] + [[2A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (90) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X1) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (91) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(plus(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[0A]] >>> <<< POL(times(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(active(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[1A]] + [[1A]] * x_1 >>> <<< POL(square(x_1)) = [[2A]] + [[2A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (93) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(2ndspos(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[0A]] >>> <<< POL(times(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(active(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[2A]] + [[1A]] * x_1 >>> <<< POL(square(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (94) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> MARK(X2) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (95) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(2ndspos(X1, X2)) -> MARK(X2) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[1A]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[1A]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[2A]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[0A]] >>> <<< POL(times(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(active(x_1)) = [[0A]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[3A]] + [[1A]] * x_1 >>> <<< POL(square(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X1) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) MARK(2ndsneg(X1, X2)) -> MARK(X2) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(rcons(X1, X2)) -> MARK(X1) MARK(2ndsneg(X1, X2)) -> MARK(X2) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: <<< POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(from(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(s(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 >>> <<< POL(rcons(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 >>> <<< POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 >>> <<< POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(0) = [[0A]] >>> <<< POL(times(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 >>> <<< POL(active(x_1)) = [[-I]] + [[0A]] * x_1 >>> <<< POL(pi(x_1)) = [[2A]] + [[1A]] * x_1 >>> <<< POL(square(x_1)) = [[0A]] + [[1A]] * x_1 >>> <<< POL(rnil) = [[0A]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(cons2(X1, X2)) -> MARK(X2) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(posrecip(X)) -> MARK(X) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(cons2(X1, X2)) -> MARK(X2) MARK(posrecip(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = max{0, -2} POL( ACTIVE_1(x_1) ) = 2x_1 POL( 2ndspos_2(x_1, x_2) ) = max{0, -2} POL( from_1(x_1) ) = x_1 POL( plus_2(x_1, x_2) ) = 2x_2 POL( times_2(x_1, x_2) ) = max{0, -2} POL( mark_1(x_1) ) = x_1 POL( active_1(x_1) ) = x_1 POL( cons_2(x_1, x_2) ) = x_1 POL( s_1(x_1) ) = x_1 POL( cons2_2(x_1, x_2) ) = 2x_2 + 1 POL( rcons_2(x_1, x_2) ) = 2x_2 POL( posrecip_1(x_1) ) = x_1 + 2 POL( negrecip_1(x_1) ) = 2x_1 POL( pi_1(x_1) ) = x_1 + 2 POL( 0 ) = 0 POL( square_1(x_1) ) = 2x_1 + 2 POL( rnil ) = 0 POL( MARK_1(x_1) ) = 2x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(negrecip(X)) -> MARK(X) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) MARK(cons(X1, X2)) -> MARK(X1) MARK(negrecip(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = max{0, -2} POL( ACTIVE_1(x_1) ) = x_1 POL( 2ndspos_2(x_1, x_2) ) = 0 POL( from_1(x_1) ) = x_1 + 2 POL( plus_2(x_1, x_2) ) = 2x_2 POL( times_2(x_1, x_2) ) = 0 POL( mark_1(x_1) ) = x_1 POL( active_1(x_1) ) = x_1 POL( cons_2(x_1, x_2) ) = x_1 + 1 POL( s_1(x_1) ) = x_1 POL( cons2_2(x_1, x_2) ) = 2 POL( rcons_2(x_1, x_2) ) = 2x_2 POL( posrecip_1(x_1) ) = 2x_1 + 2 POL( negrecip_1(x_1) ) = x_1 + 2 POL( pi_1(x_1) ) = max{0, -2} POL( 0 ) = 0 POL( square_1(x_1) ) = x_1 + 2 POL( rnil ) = 0 POL( MARK_1(x_1) ) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (102) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(from(X)) -> ACTIVE(from(mark(X))) ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (103) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(from(X)) -> ACTIVE(from(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 1 POL( ACTIVE_1(x_1) ) = x_1 + 1 POL( 2ndspos_2(x_1, x_2) ) = 1 POL( from_1(x_1) ) = 0 POL( plus_2(x_1, x_2) ) = 1 POL( times_2(x_1, x_2) ) = 1 POL( mark_1(x_1) ) = 0 POL( active_1(x_1) ) = x_1 + 1 POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( s_1(x_1) ) = 2 POL( cons2_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( rcons_2(x_1, x_2) ) = 2 POL( posrecip_1(x_1) ) = 0 POL( negrecip_1(x_1) ) = 2 POL( pi_1(x_1) ) = 2 POL( 0 ) = 2 POL( square_1(x_1) ) = 2 POL( rnil ) = 1 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: from(active(X)) -> from(X) from(mark(X)) -> from(X) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(s(X)) -> MARK(X) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) MARK(rcons(X1, X2)) -> MARK(X2) ACTIVE(plus(0, Y)) -> MARK(Y) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> MARK(X2) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) 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) ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) ACTIVE(plus(0, Y)) -> MARK(Y) ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) MARK(plus(X1, X2)) -> MARK(X2) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = ACTIVE(x1) 2ndspos(x1, x2) = x1 s(x1) = s(x1) cons(x1, x2) = x1 MARK(x1) = MARK(x1) cons2(x1, x2) = x1 rcons(x1, x2) = x2 posrecip(x1) = posrecip(x1) 2ndsneg(x1, x2) = 2ndsneg(x1) mark(x1) = x1 negrecip(x1) = negrecip plus(x1, x2) = plus(x1, x2) 0 = 0 times(x1, x2) = times(x1, x2) active(x1) = x1 from(x1) = x1 pi(x1) = pi(x1) square(x1) = square(x1) rnil = rnil Recursive path order with status [RPO]. Quasi-Precedence: [ACTIVE_1, MARK_1, posrecip_1] > negrecip [ACTIVE_1, MARK_1, posrecip_1] > times_2 > plus_2 > [s_1, 2ndsneg_1] [ACTIVE_1, MARK_1, posrecip_1] > times_2 > 0 > rnil square_1 > times_2 > plus_2 > [s_1, 2ndsneg_1] square_1 > times_2 > 0 > rnil Status: ACTIVE_1: [1] s_1: [1] MARK_1: [1] posrecip_1: multiset status 2ndsneg_1: [1] negrecip: multiset status plus_2: multiset status 0: multiset status times_2: [1,2] pi_1: [1] square_1: multiset status rnil: multiset status 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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) from(active(X)) -> from(X) from(mark(X)) -> from(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) 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) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (106) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(rcons(X1, X2)) -> MARK(X2) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 2 POL( MARK_1(x_1) ) = 2 POL( 2ndspos_2(x_1, x_2) ) = 2 POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( active_1(x_1) ) = 2 POL( mark_1(x_1) ) = max{0, 2x_1 - 2} POL( plus_2(x_1, x_2) ) = 2 POL( times_2(x_1, x_2) ) = max{0, -2} POL( s_1(x_1) ) = x_1 + 2 POL( cons2_2(x_1, x_2) ) = 2 POL( rcons_2(x_1, x_2) ) = 2x_2 + 2 POL( posrecip_1(x_1) ) = 2 POL( from_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = x_2 + 2 POL( negrecip_1(x_1) ) = max{0, x_1 - 2} POL( pi_1(x_1) ) = max{0, x_1 - 2} POL( 0 ) = 0 POL( square_1(x_1) ) = max{0, x_1 - 1} POL( rnil ) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(rcons(X1, X2)) -> MARK(X2) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (109) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 2 POL( MARK_1(x_1) ) = 1 POL( 2ndspos_2(x_1, x_2) ) = 2 POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( mark_1(x_1) ) = max{0, 2x_1 - 2} POL( plus_2(x_1, x_2) ) = max{0, -2} POL( s_1(x_1) ) = 2x_1 + 2 POL( cons2_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( rcons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( posrecip_1(x_1) ) = max{0, x_1 - 2} POL( from_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( negrecip_1(x_1) ) = 2 POL( pi_1(x_1) ) = max{0, 2x_1 - 2} POL( 0 ) = 0 POL( times_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( square_1(x_1) ) = 2 POL( rnil ) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(rcons(X1, X2)) -> MARK(X2) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = x1 2ndspos(x1, x2) = 2ndspos MARK(x1) = x1 rcons(x1, x2) = x2 2ndsneg(x1, x2) = 2ndsneg mark(x1) = x1 active(x1) = x1 Knuth-Bendix order [KBO] with precedence:2ndspos > 2ndsneg and weight map: 2ndspos=1 2ndsneg=1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(rcons(X1, X2)) -> MARK(X2) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(rcons(X1, X2)) -> MARK(X2) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 0 POL( MARK_1(x_1) ) = max{0, 2x_1 - 1} POL( 2ndspos_2(x_1, x_2) ) = max{0, -2} POL( ACTIVE_1(x_1) ) = max{0, -2} POL( active_1(x_1) ) = 2 POL( mark_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( cons2_2(x_1, x_2) ) = x_1 + x_2 POL( from_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( rcons_2(x_1, x_2) ) = 2x_2 + 2 POL( posrecip_1(x_1) ) = 1 POL( negrecip_1(x_1) ) = 2 POL( pi_1(x_1) ) = max{0, -2} POL( 0 ) = 2 POL( plus_2(x_1, x_2) ) = 2 POL( times_2(x_1, x_2) ) = 2x_1 + 2 POL( square_1(x_1) ) = max{0, -2} POL( rnil ) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = x1 2ndspos(x1, x2) = 2ndspos(x2) cons(x1, x2) = cons MARK(x1) = x1 cons2(x1, x2) = cons2 mark(x1) = x1 2ndsneg(x1, x2) = 2ndsneg s(x1) = s active(x1) = x1 from(x1) = from rcons(x1, x2) = rcons pi(x1) = pi posrecip(x1) = posrecip plus(x1, x2) = x2 negrecip(x1) = negrecip times(x1, x2) = times square(x1) = square 0 = 0 rnil = rnil Knuth-Bendix order [KBO] with precedence:trivial and weight map: rnil=5 rcons=6 square=4 posrecip=2 times=3 cons2=4 s=1 negrecip=2 2ndspos_1=7 pi=14 0=2 cons=5 2ndsneg=8 from=6 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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) from(active(X)) -> from(X) from(mark(X)) -> from(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) 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) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (116) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( 2ndsneg_2(x_1, x_2) ) = 1 POL( ACTIVE_1(x_1) ) = x_1 POL( 2ndspos_2(x_1, x_2) ) = 0 POL( mark_1(x_1) ) = 2 POL( from_1(x_1) ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( s_1(x_1) ) = 2 POL( cons2_2(x_1, x_2) ) = x_2 POL( rcons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( posrecip_1(x_1) ) = 2 POL( negrecip_1(x_1) ) = 1 POL( pi_1(x_1) ) = 2 POL( 0 ) = 0 POL( plus_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( times_2(x_1, x_2) ) = max{0, x_2 - 2} POL( square_1(x_1) ) = 2 POL( rnil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) ---------------------------------------- (118) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (119) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = x1 2ndsneg(x1, x2) = 2ndsneg(x2) cons(x1, x2) = cons MARK(x1) = x1 cons2(x1, x2) = cons2 mark(x1) = x1 s(x1) = s active(x1) = x1 from(x1) = from 2ndspos(x1, x2) = 2ndspos rcons(x1, x2) = rcons pi(x1) = pi posrecip(x1) = posrecip plus(x1, x2) = x2 negrecip(x1) = negrecip times(x1, x2) = times square(x1) = square 0 = 0 rnil = rnil Knuth-Bendix order [KBO] with precedence:trivial and weight map: rnil=6 rcons=8 square=4 posrecip=2 times=3 cons2=5 s=1 negrecip=2 2ndspos=11 pi=12 0=2 cons=6 2ndsneg_1=7 from=7 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) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) mark(from(X)) -> active(from(mark(X))) active(from(X)) -> mark(cons(X, from(s(X)))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) mark(s(X)) -> active(s(mark(X))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) active(pi(X)) -> mark(2ndspos(X, from(0))) mark(posrecip(X)) -> active(posrecip(mark(X))) active(plus(0, Y)) -> mark(Y) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) mark(negrecip(X)) -> active(negrecip(mark(X))) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) mark(pi(X)) -> active(pi(mark(X))) active(square(X)) -> mark(times(X, X)) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) mark(0) -> active(0) mark(rnil) -> active(rnil) from(active(X)) -> from(X) from(mark(X)) -> from(X) active(2ndspos(0, Z)) -> mark(rnil) active(2ndsneg(0, Z)) -> mark(rnil) active(times(0, Y)) -> mark(0) 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) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) posrecip(active(X)) -> posrecip(X) posrecip(mark(X)) -> posrecip(X) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) negrecip(active(X)) -> negrecip(X) negrecip(mark(X)) -> negrecip(X) plus(X1, mark(X2)) -> plus(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) pi(active(X)) -> pi(X) pi(mark(X)) -> pi(X) square(active(X)) -> square(X) square(mark(X)) -> square(X) ---------------------------------------- (120) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) The TRS R consists of the following rules: active(from(X)) -> mark(cons(X, from(s(X)))) active(2ndspos(0, Z)) -> mark(rnil) active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) active(2ndsneg(0, Z)) -> mark(rnil) active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) active(pi(X)) -> mark(2ndspos(X, from(0))) active(plus(0, Y)) -> mark(Y) active(plus(s(X), Y)) -> mark(s(plus(X, Y))) active(times(0, Y)) -> mark(0) active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) active(square(X)) -> mark(times(X, X)) mark(from(X)) -> active(from(mark(X))) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) mark(0) -> active(0) mark(rnil) -> active(rnil) mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) mark(posrecip(X)) -> active(posrecip(mark(X))) mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) mark(negrecip(X)) -> active(negrecip(mark(X))) mark(pi(X)) -> active(pi(mark(X))) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) mark(square(X)) -> active(square(mark(X))) from(mark(X)) -> from(X) from(active(X)) -> from(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) 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) cons2(mark(X1), X2) -> cons2(X1, X2) cons2(X1, mark(X2)) -> cons2(X1, X2) cons2(active(X1), X2) -> cons2(X1, X2) cons2(X1, active(X2)) -> cons2(X1, X2) rcons(mark(X1), X2) -> rcons(X1, X2) rcons(X1, mark(X2)) -> rcons(X1, X2) rcons(active(X1), X2) -> rcons(X1, X2) rcons(X1, active(X2)) -> rcons(X1, X2) posrecip(mark(X)) -> posrecip(X) posrecip(active(X)) -> posrecip(X) 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) negrecip(mark(X)) -> negrecip(X) negrecip(active(X)) -> negrecip(X) pi(mark(X)) -> pi(X) pi(active(X)) -> pi(X) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) times(mark(X1), X2) -> times(X1, X2) times(X1, mark(X2)) -> times(X1, X2) times(active(X1), X2) -> times(X1, X2) times(X1, active(X2)) -> times(X1, X2) square(mark(X)) -> square(X) square(active(X)) -> square(X) Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (121) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node. ---------------------------------------- (122) TRUE