134.25/45.88 YES 134.57/45.90 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 134.57/45.90 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 134.57/45.90 134.57/45.90 134.57/45.90 Termination w.r.t. Q of the given QTRS could be proven: 134.57/45.90 134.57/45.90 (0) QTRS 134.57/45.90 (1) DependencyPairsProof [EQUIVALENT, 166 ms] 134.57/45.90 (2) QDP 134.57/45.90 (3) DependencyGraphProof [EQUIVALENT, 0 ms] 134.57/45.90 (4) AND 134.57/45.90 (5) QDP 134.57/45.90 (6) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (7) QDP 134.57/45.90 (8) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (9) QDP 134.57/45.90 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (11) YES 134.57/45.90 (12) QDP 134.57/45.90 (13) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (14) QDP 134.57/45.90 (15) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (16) QDP 134.57/45.90 (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (18) YES 134.57/45.90 (19) QDP 134.57/45.90 (20) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (21) QDP 134.57/45.90 (22) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (23) QDP 134.57/45.90 (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (25) YES 134.57/45.90 (26) QDP 134.57/45.90 (27) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (28) QDP 134.57/45.90 (29) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (30) QDP 134.57/45.90 (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (32) YES 134.57/45.90 (33) QDP 134.57/45.90 (34) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (35) QDP 134.57/45.90 (36) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (37) QDP 134.57/45.90 (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (39) YES 134.57/45.90 (40) QDP 134.57/45.90 (41) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (42) QDP 134.57/45.90 (43) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (44) QDP 134.57/45.90 (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (46) YES 134.57/45.90 (47) QDP 134.57/45.90 (48) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (49) QDP 134.57/45.90 (50) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (51) QDP 134.57/45.90 (52) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (53) YES 134.57/45.90 (54) QDP 134.57/45.90 (55) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (56) QDP 134.57/45.90 (57) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (58) QDP 134.57/45.90 (59) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (60) YES 134.57/45.90 (61) QDP 134.57/45.90 (62) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (63) QDP 134.57/45.90 (64) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (65) QDP 134.57/45.90 (66) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (67) YES 134.57/45.90 (68) QDP 134.57/45.90 (69) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (70) QDP 134.57/45.90 (71) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (72) QDP 134.57/45.90 (73) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (74) YES 134.57/45.90 (75) QDP 134.57/45.90 (76) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (77) QDP 134.57/45.90 (78) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (79) QDP 134.57/45.90 (80) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (81) YES 134.57/45.90 (82) QDP 134.57/45.90 (83) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (84) QDP 134.57/45.90 (85) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (86) QDP 134.57/45.90 (87) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (88) YES 134.57/45.90 (89) QDP 134.57/45.90 (90) UsableRulesProof [EQUIVALENT, 0 ms] 134.57/45.90 (91) QDP 134.57/45.90 (92) QReductionProof [EQUIVALENT, 0 ms] 134.57/45.90 (93) QDP 134.57/45.90 (94) QDPSizeChangeProof [EQUIVALENT, 0 ms] 134.57/45.90 (95) YES 134.57/45.90 (96) QDP 134.57/45.90 (97) QDPQMonotonicMRRProof [EQUIVALENT, 446 ms] 134.57/45.90 (98) QDP 134.57/45.90 (99) QDPOrderProof [EQUIVALENT, 388 ms] 134.57/45.90 (100) QDP 134.57/45.90 (101) QDPOrderProof [EQUIVALENT, 760 ms] 134.57/45.90 (102) QDP 134.57/45.90 (103) QDPOrderProof [EQUIVALENT, 673 ms] 134.57/45.90 (104) QDP 134.57/45.90 (105) QDPOrderProof [EQUIVALENT, 662 ms] 134.57/45.90 (106) QDP 134.57/45.90 (107) QDPQMonotonicMRRProof [EQUIVALENT, 190 ms] 134.57/45.90 (108) QDP 134.57/45.90 (109) QDPOrderProof [EQUIVALENT, 635 ms] 134.57/45.90 (110) QDP 134.57/45.90 (111) QDPOrderProof [EQUIVALENT, 595 ms] 134.57/45.90 (112) QDP 134.57/45.90 (113) QDPQMonotonicMRRProof [EQUIVALENT, 192 ms] 134.57/45.90 (114) QDP 134.57/45.90 (115) QDPOrderProof [EQUIVALENT, 627 ms] 134.57/45.90 (116) QDP 134.57/45.90 (117) QDPOrderProof [EQUIVALENT, 727 ms] 134.57/45.90 (118) QDP 134.57/45.90 (119) QDPOrderProof [EQUIVALENT, 585 ms] 134.57/45.90 (120) QDP 134.57/45.90 (121) QDPOrderProof [EQUIVALENT, 621 ms] 134.57/45.90 (122) QDP 134.57/45.90 (123) QDPOrderProof [EQUIVALENT, 575 ms] 134.57/45.90 (124) QDP 134.57/45.90 (125) QDPOrderProof [EQUIVALENT, 683 ms] 134.57/45.90 (126) QDP 134.57/45.90 (127) QDPOrderProof [EQUIVALENT, 593 ms] 134.57/45.90 (128) QDP 134.57/45.90 (129) QDPOrderProof [EQUIVALENT, 593 ms] 134.57/45.90 (130) QDP 134.57/45.90 (131) QDPOrderProof [EQUIVALENT, 622 ms] 134.57/45.90 (132) QDP 134.57/45.90 (133) DependencyGraphProof [EQUIVALENT, 0 ms] 134.57/45.90 (134) QDP 134.57/45.90 (135) QDPQMonotonicMRRProof [EQUIVALENT, 108 ms] 134.57/45.90 (136) QDP 134.57/45.90 (137) QDPQMonotonicMRRProof [EQUIVALENT, 108 ms] 134.57/45.90 (138) QDP 134.57/45.90 (139) QDPQMonotonicMRRProof [EQUIVALENT, 163 ms] 134.57/45.90 (140) QDP 134.57/45.90 (141) QDPOrderProof [EQUIVALENT, 651 ms] 134.57/45.90 (142) QDP 134.57/45.90 (143) DependencyGraphProof [EQUIVALENT, 0 ms] 134.57/45.90 (144) QDP 134.57/45.90 (145) QDPQMonotonicMRRProof [EQUIVALENT, 62 ms] 134.57/45.90 (146) QDP 134.57/45.90 (147) PisEmptyProof [EQUIVALENT, 0 ms] 134.57/45.90 (148) YES 134.57/45.90 134.57/45.90 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (0) 134.57/45.90 Obligation: 134.57/45.90 Q restricted rewrite system: 134.57/45.90 The TRS R consists of the following rules: 134.57/45.90 134.57/45.90 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.90 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.90 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.90 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.90 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.90 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.90 active(plus(0, Y)) -> mark(Y) 134.57/45.90 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.90 active(times(0, Y)) -> mark(0) 134.57/45.90 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.90 active(square(X)) -> mark(times(X, X)) 134.57/45.90 mark(from(X)) -> active(from(mark(X))) 134.57/45.90 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.90 mark(s(X)) -> active(s(mark(X))) 134.57/45.90 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.90 mark(0) -> active(0) 134.57/45.90 mark(rnil) -> active(rnil) 134.57/45.90 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.90 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.90 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.90 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.90 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.90 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.90 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.90 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.90 mark(square(X)) -> active(square(mark(X))) 134.57/45.90 from(mark(X)) -> from(X) 134.57/45.90 from(active(X)) -> from(X) 134.57/45.90 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.90 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.90 s(mark(X)) -> s(X) 134.57/45.90 s(active(X)) -> s(X) 134.57/45.90 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.90 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.90 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.90 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.90 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.90 posrecip(mark(X)) -> posrecip(X) 134.57/45.90 posrecip(active(X)) -> posrecip(X) 134.57/45.90 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 negrecip(mark(X)) -> negrecip(X) 134.57/45.90 negrecip(active(X)) -> negrecip(X) 134.57/45.90 pi(mark(X)) -> pi(X) 134.57/45.90 pi(active(X)) -> pi(X) 134.57/45.90 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.90 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.90 times(mark(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.90 times(active(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, active(X2)) -> times(X1, X2) 134.57/45.90 square(mark(X)) -> square(X) 134.57/45.90 square(active(X)) -> square(X) 134.57/45.90 134.57/45.90 The set Q consists of the following terms: 134.57/45.90 134.57/45.90 active(from(x0)) 134.57/45.90 active(2ndspos(0, x0)) 134.57/45.90 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(2ndsneg(0, x0)) 134.57/45.90 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(pi(x0)) 134.57/45.90 active(plus(0, x0)) 134.57/45.90 active(plus(s(x0), x1)) 134.57/45.90 active(times(0, x0)) 134.57/45.90 active(times(s(x0), x1)) 134.57/45.90 active(square(x0)) 134.57/45.90 mark(from(x0)) 134.57/45.90 mark(cons(x0, x1)) 134.57/45.90 mark(s(x0)) 134.57/45.90 mark(2ndspos(x0, x1)) 134.57/45.90 mark(0) 134.57/45.90 mark(rnil) 134.57/45.90 mark(cons2(x0, x1)) 134.57/45.90 mark(rcons(x0, x1)) 134.57/45.90 mark(posrecip(x0)) 134.57/45.90 mark(2ndsneg(x0, x1)) 134.57/45.90 mark(negrecip(x0)) 134.57/45.90 mark(pi(x0)) 134.57/45.90 mark(plus(x0, x1)) 134.57/45.90 mark(times(x0, x1)) 134.57/45.90 mark(square(x0)) 134.57/45.90 from(mark(x0)) 134.57/45.90 from(active(x0)) 134.57/45.90 cons(mark(x0), x1) 134.57/45.90 cons(x0, mark(x1)) 134.57/45.90 cons(active(x0), x1) 134.57/45.90 cons(x0, active(x1)) 134.57/45.90 s(mark(x0)) 134.57/45.90 s(active(x0)) 134.57/45.90 2ndspos(mark(x0), x1) 134.57/45.90 2ndspos(x0, mark(x1)) 134.57/45.90 2ndspos(active(x0), x1) 134.57/45.90 2ndspos(x0, active(x1)) 134.57/45.90 cons2(mark(x0), x1) 134.57/45.90 cons2(x0, mark(x1)) 134.57/45.90 cons2(active(x0), x1) 134.57/45.90 cons2(x0, active(x1)) 134.57/45.90 rcons(mark(x0), x1) 134.57/45.90 rcons(x0, mark(x1)) 134.57/45.90 rcons(active(x0), x1) 134.57/45.90 rcons(x0, active(x1)) 134.57/45.90 posrecip(mark(x0)) 134.57/45.90 posrecip(active(x0)) 134.57/45.90 2ndsneg(mark(x0), x1) 134.57/45.90 2ndsneg(x0, mark(x1)) 134.57/45.90 2ndsneg(active(x0), x1) 134.57/45.90 2ndsneg(x0, active(x1)) 134.57/45.90 negrecip(mark(x0)) 134.57/45.90 negrecip(active(x0)) 134.57/45.90 pi(mark(x0)) 134.57/45.90 pi(active(x0)) 134.57/45.90 plus(mark(x0), x1) 134.57/45.90 plus(x0, mark(x1)) 134.57/45.90 plus(active(x0), x1) 134.57/45.90 plus(x0, active(x1)) 134.57/45.90 times(mark(x0), x1) 134.57/45.90 times(x0, mark(x1)) 134.57/45.90 times(active(x0), x1) 134.57/45.90 times(x0, active(x1)) 134.57/45.90 square(mark(x0)) 134.57/45.90 square(active(x0)) 134.57/45.90 134.57/45.90 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (1) DependencyPairsProof (EQUIVALENT) 134.57/45.90 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (2) 134.57/45.90 Obligation: 134.57/45.90 Q DP problem: 134.57/45.90 The TRS P consists of the following rules: 134.57/45.90 134.57/45.90 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.90 ACTIVE(from(X)) -> CONS(X, from(s(X))) 134.57/45.90 ACTIVE(from(X)) -> FROM(s(X)) 134.57/45.90 ACTIVE(from(X)) -> S(X) 134.57/45.90 ACTIVE(2ndspos(0, Z)) -> MARK(rnil) 134.57/45.90 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.90 ACTIVE(2ndspos(s(N), cons(X, Z))) -> 2NDSPOS(s(N), cons2(X, Z)) 134.57/45.90 ACTIVE(2ndspos(s(N), cons(X, Z))) -> CONS2(X, Z) 134.57/45.90 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.90 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> RCONS(posrecip(Y), 2ndsneg(N, Z)) 134.57/45.90 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> POSRECIP(Y) 134.57/45.90 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> 2NDSNEG(N, Z) 134.57/45.90 ACTIVE(2ndsneg(0, Z)) -> MARK(rnil) 134.57/45.90 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.90 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> 2NDSNEG(s(N), cons2(X, Z)) 134.57/45.90 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> CONS2(X, Z) 134.57/45.90 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.90 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> RCONS(negrecip(Y), 2ndspos(N, Z)) 134.57/45.90 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> NEGRECIP(Y) 134.57/45.90 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> 2NDSPOS(N, Z) 134.57/45.90 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.90 ACTIVE(pi(X)) -> 2NDSPOS(X, from(0)) 134.57/45.90 ACTIVE(pi(X)) -> FROM(0) 134.57/45.90 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.90 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.90 ACTIVE(plus(s(X), Y)) -> S(plus(X, Y)) 134.57/45.90 ACTIVE(plus(s(X), Y)) -> PLUS(X, Y) 134.57/45.90 ACTIVE(times(0, Y)) -> MARK(0) 134.57/45.90 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.90 ACTIVE(times(s(X), Y)) -> PLUS(Y, times(X, Y)) 134.57/45.90 ACTIVE(times(s(X), Y)) -> TIMES(X, Y) 134.57/45.90 ACTIVE(square(X)) -> MARK(times(X, X)) 134.57/45.90 ACTIVE(square(X)) -> TIMES(X, X) 134.57/45.90 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.90 MARK(from(X)) -> FROM(mark(X)) 134.57/45.90 MARK(from(X)) -> MARK(X) 134.57/45.90 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 134.57/45.90 MARK(cons(X1, X2)) -> CONS(mark(X1), X2) 134.57/45.90 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.90 MARK(s(X)) -> ACTIVE(s(mark(X))) 134.57/45.90 MARK(s(X)) -> S(mark(X)) 134.57/45.90 MARK(s(X)) -> MARK(X) 134.57/45.90 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.90 MARK(2ndspos(X1, X2)) -> 2NDSPOS(mark(X1), mark(X2)) 134.57/45.90 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.90 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.90 MARK(0) -> ACTIVE(0) 134.57/45.90 MARK(rnil) -> ACTIVE(rnil) 134.57/45.90 MARK(cons2(X1, X2)) -> ACTIVE(cons2(X1, mark(X2))) 134.57/45.90 MARK(cons2(X1, X2)) -> CONS2(X1, mark(X2)) 134.57/45.90 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.90 MARK(rcons(X1, X2)) -> ACTIVE(rcons(mark(X1), mark(X2))) 134.57/45.90 MARK(rcons(X1, X2)) -> RCONS(mark(X1), mark(X2)) 134.57/45.90 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.90 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.90 MARK(posrecip(X)) -> ACTIVE(posrecip(mark(X))) 134.57/45.90 MARK(posrecip(X)) -> POSRECIP(mark(X)) 134.57/45.90 MARK(posrecip(X)) -> MARK(X) 134.57/45.90 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.90 MARK(2ndsneg(X1, X2)) -> 2NDSNEG(mark(X1), mark(X2)) 134.57/45.90 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.90 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.90 MARK(negrecip(X)) -> ACTIVE(negrecip(mark(X))) 134.57/45.90 MARK(negrecip(X)) -> NEGRECIP(mark(X)) 134.57/45.90 MARK(negrecip(X)) -> MARK(X) 134.57/45.90 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.90 MARK(pi(X)) -> PI(mark(X)) 134.57/45.90 MARK(pi(X)) -> MARK(X) 134.57/45.90 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.90 MARK(plus(X1, X2)) -> PLUS(mark(X1), mark(X2)) 134.57/45.90 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.90 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.90 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.90 MARK(times(X1, X2)) -> TIMES(mark(X1), mark(X2)) 134.57/45.90 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.90 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.90 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.90 MARK(square(X)) -> SQUARE(mark(X)) 134.57/45.90 MARK(square(X)) -> MARK(X) 134.57/45.90 FROM(mark(X)) -> FROM(X) 134.57/45.90 FROM(active(X)) -> FROM(X) 134.57/45.90 CONS(mark(X1), X2) -> CONS(X1, X2) 134.57/45.90 CONS(X1, mark(X2)) -> CONS(X1, X2) 134.57/45.90 CONS(active(X1), X2) -> CONS(X1, X2) 134.57/45.90 CONS(X1, active(X2)) -> CONS(X1, X2) 134.57/45.90 S(mark(X)) -> S(X) 134.57/45.90 S(active(X)) -> S(X) 134.57/45.90 2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.90 2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 134.57/45.90 2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.90 2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) 134.57/45.90 CONS2(mark(X1), X2) -> CONS2(X1, X2) 134.57/45.90 CONS2(X1, mark(X2)) -> CONS2(X1, X2) 134.57/45.90 CONS2(active(X1), X2) -> CONS2(X1, X2) 134.57/45.90 CONS2(X1, active(X2)) -> CONS2(X1, X2) 134.57/45.90 RCONS(mark(X1), X2) -> RCONS(X1, X2) 134.57/45.90 RCONS(X1, mark(X2)) -> RCONS(X1, X2) 134.57/45.90 RCONS(active(X1), X2) -> RCONS(X1, X2) 134.57/45.90 RCONS(X1, active(X2)) -> RCONS(X1, X2) 134.57/45.90 POSRECIP(mark(X)) -> POSRECIP(X) 134.57/45.90 POSRECIP(active(X)) -> POSRECIP(X) 134.57/45.90 2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.90 2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 134.57/45.90 2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.90 2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) 134.57/45.90 NEGRECIP(mark(X)) -> NEGRECIP(X) 134.57/45.90 NEGRECIP(active(X)) -> NEGRECIP(X) 134.57/45.90 PI(mark(X)) -> PI(X) 134.57/45.90 PI(active(X)) -> PI(X) 134.57/45.90 PLUS(mark(X1), X2) -> PLUS(X1, X2) 134.57/45.90 PLUS(X1, mark(X2)) -> PLUS(X1, X2) 134.57/45.90 PLUS(active(X1), X2) -> PLUS(X1, X2) 134.57/45.90 PLUS(X1, active(X2)) -> PLUS(X1, X2) 134.57/45.90 TIMES(mark(X1), X2) -> TIMES(X1, X2) 134.57/45.90 TIMES(X1, mark(X2)) -> TIMES(X1, X2) 134.57/45.90 TIMES(active(X1), X2) -> TIMES(X1, X2) 134.57/45.90 TIMES(X1, active(X2)) -> TIMES(X1, X2) 134.57/45.90 SQUARE(mark(X)) -> SQUARE(X) 134.57/45.90 SQUARE(active(X)) -> SQUARE(X) 134.57/45.90 134.57/45.90 The TRS R consists of the following rules: 134.57/45.90 134.57/45.90 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.90 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.90 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.90 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.90 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.90 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.90 active(plus(0, Y)) -> mark(Y) 134.57/45.90 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.90 active(times(0, Y)) -> mark(0) 134.57/45.90 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.90 active(square(X)) -> mark(times(X, X)) 134.57/45.90 mark(from(X)) -> active(from(mark(X))) 134.57/45.90 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.90 mark(s(X)) -> active(s(mark(X))) 134.57/45.90 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.90 mark(0) -> active(0) 134.57/45.90 mark(rnil) -> active(rnil) 134.57/45.90 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.90 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.90 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.90 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.90 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.90 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.90 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.90 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.90 mark(square(X)) -> active(square(mark(X))) 134.57/45.90 from(mark(X)) -> from(X) 134.57/45.90 from(active(X)) -> from(X) 134.57/45.90 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.90 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.90 s(mark(X)) -> s(X) 134.57/45.90 s(active(X)) -> s(X) 134.57/45.90 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.90 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.90 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.90 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.90 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.90 posrecip(mark(X)) -> posrecip(X) 134.57/45.90 posrecip(active(X)) -> posrecip(X) 134.57/45.90 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 negrecip(mark(X)) -> negrecip(X) 134.57/45.90 negrecip(active(X)) -> negrecip(X) 134.57/45.90 pi(mark(X)) -> pi(X) 134.57/45.90 pi(active(X)) -> pi(X) 134.57/45.90 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.90 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.90 times(mark(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.90 times(active(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, active(X2)) -> times(X1, X2) 134.57/45.90 square(mark(X)) -> square(X) 134.57/45.90 square(active(X)) -> square(X) 134.57/45.90 134.57/45.90 The set Q consists of the following terms: 134.57/45.90 134.57/45.90 active(from(x0)) 134.57/45.90 active(2ndspos(0, x0)) 134.57/45.90 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(2ndsneg(0, x0)) 134.57/45.90 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(pi(x0)) 134.57/45.90 active(plus(0, x0)) 134.57/45.90 active(plus(s(x0), x1)) 134.57/45.90 active(times(0, x0)) 134.57/45.90 active(times(s(x0), x1)) 134.57/45.90 active(square(x0)) 134.57/45.90 mark(from(x0)) 134.57/45.90 mark(cons(x0, x1)) 134.57/45.90 mark(s(x0)) 134.57/45.90 mark(2ndspos(x0, x1)) 134.57/45.90 mark(0) 134.57/45.90 mark(rnil) 134.57/45.90 mark(cons2(x0, x1)) 134.57/45.90 mark(rcons(x0, x1)) 134.57/45.90 mark(posrecip(x0)) 134.57/45.90 mark(2ndsneg(x0, x1)) 134.57/45.90 mark(negrecip(x0)) 134.57/45.90 mark(pi(x0)) 134.57/45.90 mark(plus(x0, x1)) 134.57/45.90 mark(times(x0, x1)) 134.57/45.90 mark(square(x0)) 134.57/45.90 from(mark(x0)) 134.57/45.90 from(active(x0)) 134.57/45.90 cons(mark(x0), x1) 134.57/45.90 cons(x0, mark(x1)) 134.57/45.90 cons(active(x0), x1) 134.57/45.90 cons(x0, active(x1)) 134.57/45.90 s(mark(x0)) 134.57/45.90 s(active(x0)) 134.57/45.90 2ndspos(mark(x0), x1) 134.57/45.90 2ndspos(x0, mark(x1)) 134.57/45.90 2ndspos(active(x0), x1) 134.57/45.90 2ndspos(x0, active(x1)) 134.57/45.90 cons2(mark(x0), x1) 134.57/45.90 cons2(x0, mark(x1)) 134.57/45.90 cons2(active(x0), x1) 134.57/45.90 cons2(x0, active(x1)) 134.57/45.90 rcons(mark(x0), x1) 134.57/45.90 rcons(x0, mark(x1)) 134.57/45.90 rcons(active(x0), x1) 134.57/45.90 rcons(x0, active(x1)) 134.57/45.90 posrecip(mark(x0)) 134.57/45.90 posrecip(active(x0)) 134.57/45.90 2ndsneg(mark(x0), x1) 134.57/45.90 2ndsneg(x0, mark(x1)) 134.57/45.90 2ndsneg(active(x0), x1) 134.57/45.90 2ndsneg(x0, active(x1)) 134.57/45.90 negrecip(mark(x0)) 134.57/45.90 negrecip(active(x0)) 134.57/45.90 pi(mark(x0)) 134.57/45.90 pi(active(x0)) 134.57/45.90 plus(mark(x0), x1) 134.57/45.90 plus(x0, mark(x1)) 134.57/45.90 plus(active(x0), x1) 134.57/45.90 plus(x0, active(x1)) 134.57/45.90 times(mark(x0), x1) 134.57/45.90 times(x0, mark(x1)) 134.57/45.90 times(active(x0), x1) 134.57/45.90 times(x0, active(x1)) 134.57/45.90 square(mark(x0)) 134.57/45.90 square(active(x0)) 134.57/45.90 134.57/45.90 We have to consider all minimal (P,Q,R)-chains. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (3) DependencyGraphProof (EQUIVALENT) 134.57/45.90 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 14 SCCs with 38 less nodes. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (4) 134.57/45.90 Complex Obligation (AND) 134.57/45.90 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (5) 134.57/45.90 Obligation: 134.57/45.90 Q DP problem: 134.57/45.90 The TRS P consists of the following rules: 134.57/45.90 134.57/45.90 SQUARE(active(X)) -> SQUARE(X) 134.57/45.90 SQUARE(mark(X)) -> SQUARE(X) 134.57/45.90 134.57/45.90 The TRS R consists of the following rules: 134.57/45.90 134.57/45.90 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.90 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.90 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.90 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.90 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.90 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.90 active(plus(0, Y)) -> mark(Y) 134.57/45.90 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.90 active(times(0, Y)) -> mark(0) 134.57/45.90 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.90 active(square(X)) -> mark(times(X, X)) 134.57/45.90 mark(from(X)) -> active(from(mark(X))) 134.57/45.90 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.90 mark(s(X)) -> active(s(mark(X))) 134.57/45.90 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.90 mark(0) -> active(0) 134.57/45.90 mark(rnil) -> active(rnil) 134.57/45.90 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.90 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.90 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.90 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.90 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.90 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.90 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.90 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.90 mark(square(X)) -> active(square(mark(X))) 134.57/45.90 from(mark(X)) -> from(X) 134.57/45.90 from(active(X)) -> from(X) 134.57/45.90 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.90 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.90 s(mark(X)) -> s(X) 134.57/45.90 s(active(X)) -> s(X) 134.57/45.90 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.90 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.90 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.90 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.90 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.90 posrecip(mark(X)) -> posrecip(X) 134.57/45.90 posrecip(active(X)) -> posrecip(X) 134.57/45.90 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 negrecip(mark(X)) -> negrecip(X) 134.57/45.90 negrecip(active(X)) -> negrecip(X) 134.57/45.90 pi(mark(X)) -> pi(X) 134.57/45.90 pi(active(X)) -> pi(X) 134.57/45.90 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.90 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.90 times(mark(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.90 times(active(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, active(X2)) -> times(X1, X2) 134.57/45.90 square(mark(X)) -> square(X) 134.57/45.90 square(active(X)) -> square(X) 134.57/45.90 134.57/45.90 The set Q consists of the following terms: 134.57/45.90 134.57/45.90 active(from(x0)) 134.57/45.90 active(2ndspos(0, x0)) 134.57/45.90 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(2ndsneg(0, x0)) 134.57/45.90 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(pi(x0)) 134.57/45.90 active(plus(0, x0)) 134.57/45.90 active(plus(s(x0), x1)) 134.57/45.90 active(times(0, x0)) 134.57/45.90 active(times(s(x0), x1)) 134.57/45.90 active(square(x0)) 134.57/45.90 mark(from(x0)) 134.57/45.90 mark(cons(x0, x1)) 134.57/45.90 mark(s(x0)) 134.57/45.90 mark(2ndspos(x0, x1)) 134.57/45.90 mark(0) 134.57/45.90 mark(rnil) 134.57/45.90 mark(cons2(x0, x1)) 134.57/45.90 mark(rcons(x0, x1)) 134.57/45.90 mark(posrecip(x0)) 134.57/45.90 mark(2ndsneg(x0, x1)) 134.57/45.90 mark(negrecip(x0)) 134.57/45.90 mark(pi(x0)) 134.57/45.90 mark(plus(x0, x1)) 134.57/45.90 mark(times(x0, x1)) 134.57/45.90 mark(square(x0)) 134.57/45.90 from(mark(x0)) 134.57/45.90 from(active(x0)) 134.57/45.90 cons(mark(x0), x1) 134.57/45.90 cons(x0, mark(x1)) 134.57/45.90 cons(active(x0), x1) 134.57/45.90 cons(x0, active(x1)) 134.57/45.90 s(mark(x0)) 134.57/45.90 s(active(x0)) 134.57/45.90 2ndspos(mark(x0), x1) 134.57/45.90 2ndspos(x0, mark(x1)) 134.57/45.90 2ndspos(active(x0), x1) 134.57/45.90 2ndspos(x0, active(x1)) 134.57/45.90 cons2(mark(x0), x1) 134.57/45.90 cons2(x0, mark(x1)) 134.57/45.90 cons2(active(x0), x1) 134.57/45.90 cons2(x0, active(x1)) 134.57/45.90 rcons(mark(x0), x1) 134.57/45.90 rcons(x0, mark(x1)) 134.57/45.90 rcons(active(x0), x1) 134.57/45.90 rcons(x0, active(x1)) 134.57/45.90 posrecip(mark(x0)) 134.57/45.90 posrecip(active(x0)) 134.57/45.90 2ndsneg(mark(x0), x1) 134.57/45.90 2ndsneg(x0, mark(x1)) 134.57/45.90 2ndsneg(active(x0), x1) 134.57/45.90 2ndsneg(x0, active(x1)) 134.57/45.90 negrecip(mark(x0)) 134.57/45.90 negrecip(active(x0)) 134.57/45.90 pi(mark(x0)) 134.57/45.90 pi(active(x0)) 134.57/45.90 plus(mark(x0), x1) 134.57/45.90 plus(x0, mark(x1)) 134.57/45.90 plus(active(x0), x1) 134.57/45.90 plus(x0, active(x1)) 134.57/45.90 times(mark(x0), x1) 134.57/45.90 times(x0, mark(x1)) 134.57/45.90 times(active(x0), x1) 134.57/45.90 times(x0, active(x1)) 134.57/45.90 square(mark(x0)) 134.57/45.90 square(active(x0)) 134.57/45.90 134.57/45.90 We have to consider all minimal (P,Q,R)-chains. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (6) UsableRulesProof (EQUIVALENT) 134.57/45.90 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (7) 134.57/45.90 Obligation: 134.57/45.90 Q DP problem: 134.57/45.90 The TRS P consists of the following rules: 134.57/45.90 134.57/45.90 SQUARE(active(X)) -> SQUARE(X) 134.57/45.90 SQUARE(mark(X)) -> SQUARE(X) 134.57/45.90 134.57/45.90 R is empty. 134.57/45.90 The set Q consists of the following terms: 134.57/45.90 134.57/45.90 active(from(x0)) 134.57/45.90 active(2ndspos(0, x0)) 134.57/45.90 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(2ndsneg(0, x0)) 134.57/45.90 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(pi(x0)) 134.57/45.90 active(plus(0, x0)) 134.57/45.90 active(plus(s(x0), x1)) 134.57/45.90 active(times(0, x0)) 134.57/45.90 active(times(s(x0), x1)) 134.57/45.90 active(square(x0)) 134.57/45.90 mark(from(x0)) 134.57/45.90 mark(cons(x0, x1)) 134.57/45.90 mark(s(x0)) 134.57/45.90 mark(2ndspos(x0, x1)) 134.57/45.90 mark(0) 134.57/45.90 mark(rnil) 134.57/45.90 mark(cons2(x0, x1)) 134.57/45.90 mark(rcons(x0, x1)) 134.57/45.90 mark(posrecip(x0)) 134.57/45.90 mark(2ndsneg(x0, x1)) 134.57/45.90 mark(negrecip(x0)) 134.57/45.90 mark(pi(x0)) 134.57/45.90 mark(plus(x0, x1)) 134.57/45.90 mark(times(x0, x1)) 134.57/45.90 mark(square(x0)) 134.57/45.90 from(mark(x0)) 134.57/45.90 from(active(x0)) 134.57/45.90 cons(mark(x0), x1) 134.57/45.90 cons(x0, mark(x1)) 134.57/45.90 cons(active(x0), x1) 134.57/45.90 cons(x0, active(x1)) 134.57/45.90 s(mark(x0)) 134.57/45.90 s(active(x0)) 134.57/45.90 2ndspos(mark(x0), x1) 134.57/45.90 2ndspos(x0, mark(x1)) 134.57/45.90 2ndspos(active(x0), x1) 134.57/45.90 2ndspos(x0, active(x1)) 134.57/45.90 cons2(mark(x0), x1) 134.57/45.90 cons2(x0, mark(x1)) 134.57/45.90 cons2(active(x0), x1) 134.57/45.90 cons2(x0, active(x1)) 134.57/45.90 rcons(mark(x0), x1) 134.57/45.90 rcons(x0, mark(x1)) 134.57/45.90 rcons(active(x0), x1) 134.57/45.90 rcons(x0, active(x1)) 134.57/45.90 posrecip(mark(x0)) 134.57/45.90 posrecip(active(x0)) 134.57/45.90 2ndsneg(mark(x0), x1) 134.57/45.90 2ndsneg(x0, mark(x1)) 134.57/45.90 2ndsneg(active(x0), x1) 134.57/45.90 2ndsneg(x0, active(x1)) 134.57/45.90 negrecip(mark(x0)) 134.57/45.90 negrecip(active(x0)) 134.57/45.90 pi(mark(x0)) 134.57/45.90 pi(active(x0)) 134.57/45.90 plus(mark(x0), x1) 134.57/45.90 plus(x0, mark(x1)) 134.57/45.90 plus(active(x0), x1) 134.57/45.90 plus(x0, active(x1)) 134.57/45.90 times(mark(x0), x1) 134.57/45.90 times(x0, mark(x1)) 134.57/45.90 times(active(x0), x1) 134.57/45.90 times(x0, active(x1)) 134.57/45.90 square(mark(x0)) 134.57/45.90 square(active(x0)) 134.57/45.90 134.57/45.90 We have to consider all minimal (P,Q,R)-chains. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (8) QReductionProof (EQUIVALENT) 134.57/45.90 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.90 134.57/45.90 from(mark(x0)) 134.57/45.90 from(active(x0)) 134.57/45.90 cons(mark(x0), x1) 134.57/45.90 cons(x0, mark(x1)) 134.57/45.90 cons(active(x0), x1) 134.57/45.90 cons(x0, active(x1)) 134.57/45.90 s(mark(x0)) 134.57/45.90 s(active(x0)) 134.57/45.90 2ndspos(mark(x0), x1) 134.57/45.90 2ndspos(x0, mark(x1)) 134.57/45.90 2ndspos(active(x0), x1) 134.57/45.90 2ndspos(x0, active(x1)) 134.57/45.90 cons2(mark(x0), x1) 134.57/45.90 cons2(x0, mark(x1)) 134.57/45.90 cons2(active(x0), x1) 134.57/45.90 cons2(x0, active(x1)) 134.57/45.90 rcons(mark(x0), x1) 134.57/45.90 rcons(x0, mark(x1)) 134.57/45.90 rcons(active(x0), x1) 134.57/45.90 rcons(x0, active(x1)) 134.57/45.90 posrecip(mark(x0)) 134.57/45.90 posrecip(active(x0)) 134.57/45.90 2ndsneg(mark(x0), x1) 134.57/45.90 2ndsneg(x0, mark(x1)) 134.57/45.90 2ndsneg(active(x0), x1) 134.57/45.90 2ndsneg(x0, active(x1)) 134.57/45.90 negrecip(mark(x0)) 134.57/45.90 negrecip(active(x0)) 134.57/45.90 pi(mark(x0)) 134.57/45.90 pi(active(x0)) 134.57/45.90 plus(mark(x0), x1) 134.57/45.90 plus(x0, mark(x1)) 134.57/45.90 plus(active(x0), x1) 134.57/45.90 plus(x0, active(x1)) 134.57/45.90 times(mark(x0), x1) 134.57/45.90 times(x0, mark(x1)) 134.57/45.90 times(active(x0), x1) 134.57/45.90 times(x0, active(x1)) 134.57/45.90 square(mark(x0)) 134.57/45.90 square(active(x0)) 134.57/45.90 134.57/45.90 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (9) 134.57/45.90 Obligation: 134.57/45.90 Q DP problem: 134.57/45.90 The TRS P consists of the following rules: 134.57/45.90 134.57/45.90 SQUARE(active(X)) -> SQUARE(X) 134.57/45.90 SQUARE(mark(X)) -> SQUARE(X) 134.57/45.90 134.57/45.90 R is empty. 134.57/45.90 The set Q consists of the following terms: 134.57/45.90 134.57/45.90 active(from(x0)) 134.57/45.90 active(2ndspos(0, x0)) 134.57/45.90 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(2ndsneg(0, x0)) 134.57/45.90 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(pi(x0)) 134.57/45.90 active(plus(0, x0)) 134.57/45.90 active(plus(s(x0), x1)) 134.57/45.90 active(times(0, x0)) 134.57/45.90 active(times(s(x0), x1)) 134.57/45.90 active(square(x0)) 134.57/45.90 mark(from(x0)) 134.57/45.90 mark(cons(x0, x1)) 134.57/45.90 mark(s(x0)) 134.57/45.90 mark(2ndspos(x0, x1)) 134.57/45.90 mark(0) 134.57/45.90 mark(rnil) 134.57/45.90 mark(cons2(x0, x1)) 134.57/45.90 mark(rcons(x0, x1)) 134.57/45.90 mark(posrecip(x0)) 134.57/45.90 mark(2ndsneg(x0, x1)) 134.57/45.90 mark(negrecip(x0)) 134.57/45.90 mark(pi(x0)) 134.57/45.90 mark(plus(x0, x1)) 134.57/45.90 mark(times(x0, x1)) 134.57/45.90 mark(square(x0)) 134.57/45.90 134.57/45.90 We have to consider all minimal (P,Q,R)-chains. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (10) QDPSizeChangeProof (EQUIVALENT) 134.57/45.90 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. 134.57/45.90 134.57/45.90 From the DPs we obtained the following set of size-change graphs: 134.57/45.90 *SQUARE(active(X)) -> SQUARE(X) 134.57/45.90 The graph contains the following edges 1 > 1 134.57/45.90 134.57/45.90 134.57/45.90 *SQUARE(mark(X)) -> SQUARE(X) 134.57/45.90 The graph contains the following edges 1 > 1 134.57/45.90 134.57/45.90 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (11) 134.57/45.90 YES 134.57/45.90 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (12) 134.57/45.90 Obligation: 134.57/45.90 Q DP problem: 134.57/45.90 The TRS P consists of the following rules: 134.57/45.90 134.57/45.90 TIMES(X1, mark(X2)) -> TIMES(X1, X2) 134.57/45.90 TIMES(mark(X1), X2) -> TIMES(X1, X2) 134.57/45.90 TIMES(active(X1), X2) -> TIMES(X1, X2) 134.57/45.90 TIMES(X1, active(X2)) -> TIMES(X1, X2) 134.57/45.90 134.57/45.90 The TRS R consists of the following rules: 134.57/45.90 134.57/45.90 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.90 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.90 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.90 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.90 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.90 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.90 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.90 active(plus(0, Y)) -> mark(Y) 134.57/45.90 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.90 active(times(0, Y)) -> mark(0) 134.57/45.90 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.90 active(square(X)) -> mark(times(X, X)) 134.57/45.90 mark(from(X)) -> active(from(mark(X))) 134.57/45.90 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.90 mark(s(X)) -> active(s(mark(X))) 134.57/45.90 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.90 mark(0) -> active(0) 134.57/45.90 mark(rnil) -> active(rnil) 134.57/45.90 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.90 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.90 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.90 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.90 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.90 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.90 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.90 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.90 mark(square(X)) -> active(square(mark(X))) 134.57/45.90 from(mark(X)) -> from(X) 134.57/45.90 from(active(X)) -> from(X) 134.57/45.90 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.90 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.90 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.90 s(mark(X)) -> s(X) 134.57/45.90 s(active(X)) -> s(X) 134.57/45.90 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.90 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.90 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.90 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.90 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.90 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.90 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.90 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.90 posrecip(mark(X)) -> posrecip(X) 134.57/45.90 posrecip(active(X)) -> posrecip(X) 134.57/45.90 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.90 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.90 negrecip(mark(X)) -> negrecip(X) 134.57/45.90 negrecip(active(X)) -> negrecip(X) 134.57/45.90 pi(mark(X)) -> pi(X) 134.57/45.90 pi(active(X)) -> pi(X) 134.57/45.90 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.90 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.90 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.90 times(mark(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.90 times(active(X1), X2) -> times(X1, X2) 134.57/45.90 times(X1, active(X2)) -> times(X1, X2) 134.57/45.90 square(mark(X)) -> square(X) 134.57/45.90 square(active(X)) -> square(X) 134.57/45.90 134.57/45.90 The set Q consists of the following terms: 134.57/45.90 134.57/45.90 active(from(x0)) 134.57/45.90 active(2ndspos(0, x0)) 134.57/45.90 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(2ndsneg(0, x0)) 134.57/45.90 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(pi(x0)) 134.57/45.90 active(plus(0, x0)) 134.57/45.90 active(plus(s(x0), x1)) 134.57/45.90 active(times(0, x0)) 134.57/45.90 active(times(s(x0), x1)) 134.57/45.90 active(square(x0)) 134.57/45.90 mark(from(x0)) 134.57/45.90 mark(cons(x0, x1)) 134.57/45.90 mark(s(x0)) 134.57/45.90 mark(2ndspos(x0, x1)) 134.57/45.90 mark(0) 134.57/45.90 mark(rnil) 134.57/45.90 mark(cons2(x0, x1)) 134.57/45.90 mark(rcons(x0, x1)) 134.57/45.90 mark(posrecip(x0)) 134.57/45.90 mark(2ndsneg(x0, x1)) 134.57/45.90 mark(negrecip(x0)) 134.57/45.90 mark(pi(x0)) 134.57/45.90 mark(plus(x0, x1)) 134.57/45.90 mark(times(x0, x1)) 134.57/45.90 mark(square(x0)) 134.57/45.90 from(mark(x0)) 134.57/45.90 from(active(x0)) 134.57/45.90 cons(mark(x0), x1) 134.57/45.90 cons(x0, mark(x1)) 134.57/45.90 cons(active(x0), x1) 134.57/45.90 cons(x0, active(x1)) 134.57/45.90 s(mark(x0)) 134.57/45.90 s(active(x0)) 134.57/45.90 2ndspos(mark(x0), x1) 134.57/45.90 2ndspos(x0, mark(x1)) 134.57/45.90 2ndspos(active(x0), x1) 134.57/45.90 2ndspos(x0, active(x1)) 134.57/45.90 cons2(mark(x0), x1) 134.57/45.90 cons2(x0, mark(x1)) 134.57/45.90 cons2(active(x0), x1) 134.57/45.90 cons2(x0, active(x1)) 134.57/45.90 rcons(mark(x0), x1) 134.57/45.90 rcons(x0, mark(x1)) 134.57/45.90 rcons(active(x0), x1) 134.57/45.90 rcons(x0, active(x1)) 134.57/45.90 posrecip(mark(x0)) 134.57/45.90 posrecip(active(x0)) 134.57/45.90 2ndsneg(mark(x0), x1) 134.57/45.90 2ndsneg(x0, mark(x1)) 134.57/45.90 2ndsneg(active(x0), x1) 134.57/45.90 2ndsneg(x0, active(x1)) 134.57/45.90 negrecip(mark(x0)) 134.57/45.90 negrecip(active(x0)) 134.57/45.90 pi(mark(x0)) 134.57/45.90 pi(active(x0)) 134.57/45.90 plus(mark(x0), x1) 134.57/45.90 plus(x0, mark(x1)) 134.57/45.90 plus(active(x0), x1) 134.57/45.90 plus(x0, active(x1)) 134.57/45.90 times(mark(x0), x1) 134.57/45.90 times(x0, mark(x1)) 134.57/45.90 times(active(x0), x1) 134.57/45.90 times(x0, active(x1)) 134.57/45.90 square(mark(x0)) 134.57/45.90 square(active(x0)) 134.57/45.90 134.57/45.90 We have to consider all minimal (P,Q,R)-chains. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (13) UsableRulesProof (EQUIVALENT) 134.57/45.90 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.90 ---------------------------------------- 134.57/45.90 134.57/45.90 (14) 134.57/45.90 Obligation: 134.57/45.90 Q DP problem: 134.57/45.90 The TRS P consists of the following rules: 134.57/45.90 134.57/45.90 TIMES(X1, mark(X2)) -> TIMES(X1, X2) 134.57/45.90 TIMES(mark(X1), X2) -> TIMES(X1, X2) 134.57/45.90 TIMES(active(X1), X2) -> TIMES(X1, X2) 134.57/45.90 TIMES(X1, active(X2)) -> TIMES(X1, X2) 134.57/45.90 134.57/45.90 R is empty. 134.57/45.90 The set Q consists of the following terms: 134.57/45.90 134.57/45.90 active(from(x0)) 134.57/45.90 active(2ndspos(0, x0)) 134.57/45.90 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(2ndsneg(0, x0)) 134.57/45.90 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.90 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.90 active(pi(x0)) 134.57/45.90 active(plus(0, x0)) 134.57/45.90 active(plus(s(x0), x1)) 134.57/45.90 active(times(0, x0)) 134.57/45.90 active(times(s(x0), x1)) 134.57/45.90 active(square(x0)) 134.57/45.90 mark(from(x0)) 134.57/45.90 mark(cons(x0, x1)) 134.57/45.90 mark(s(x0)) 134.57/45.90 mark(2ndspos(x0, x1)) 134.57/45.91 mark(0) 134.57/45.91 mark(rnil) 134.57/45.91 mark(cons2(x0, x1)) 134.57/45.91 mark(rcons(x0, x1)) 134.57/45.91 mark(posrecip(x0)) 134.57/45.91 mark(2ndsneg(x0, x1)) 134.57/45.91 mark(negrecip(x0)) 134.57/45.91 mark(pi(x0)) 134.57/45.91 mark(plus(x0, x1)) 134.57/45.91 mark(times(x0, x1)) 134.57/45.91 mark(square(x0)) 134.57/45.91 from(mark(x0)) 134.57/45.91 from(active(x0)) 134.57/45.91 cons(mark(x0), x1) 134.57/45.91 cons(x0, mark(x1)) 134.57/45.91 cons(active(x0), x1) 134.57/45.91 cons(x0, active(x1)) 134.57/45.91 s(mark(x0)) 134.57/45.91 s(active(x0)) 134.57/45.91 2ndspos(mark(x0), x1) 134.57/45.91 2ndspos(x0, mark(x1)) 134.57/45.91 2ndspos(active(x0), x1) 134.57/45.91 2ndspos(x0, active(x1)) 134.57/45.91 cons2(mark(x0), x1) 134.57/45.91 cons2(x0, mark(x1)) 134.57/45.91 cons2(active(x0), x1) 134.57/45.91 cons2(x0, active(x1)) 134.57/45.91 rcons(mark(x0), x1) 134.57/45.91 rcons(x0, mark(x1)) 134.57/45.91 rcons(active(x0), x1) 134.57/45.91 rcons(x0, active(x1)) 134.57/45.91 posrecip(mark(x0)) 134.57/45.91 posrecip(active(x0)) 134.57/45.91 2ndsneg(mark(x0), x1) 134.57/45.91 2ndsneg(x0, mark(x1)) 134.57/45.91 2ndsneg(active(x0), x1) 134.57/45.91 2ndsneg(x0, active(x1)) 134.57/45.91 negrecip(mark(x0)) 134.57/45.91 negrecip(active(x0)) 134.57/45.91 pi(mark(x0)) 134.57/45.91 pi(active(x0)) 134.57/45.91 plus(mark(x0), x1) 134.57/45.91 plus(x0, mark(x1)) 134.57/45.91 plus(active(x0), x1) 134.57/45.91 plus(x0, active(x1)) 134.57/45.91 times(mark(x0), x1) 134.57/45.91 times(x0, mark(x1)) 134.57/45.91 times(active(x0), x1) 134.57/45.91 times(x0, active(x1)) 134.57/45.91 square(mark(x0)) 134.57/45.91 square(active(x0)) 134.57/45.91 134.57/45.91 We have to consider all minimal (P,Q,R)-chains. 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (15) QReductionProof (EQUIVALENT) 134.57/45.91 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.91 134.57/45.91 from(mark(x0)) 134.57/45.91 from(active(x0)) 134.57/45.91 cons(mark(x0), x1) 134.57/45.91 cons(x0, mark(x1)) 134.57/45.91 cons(active(x0), x1) 134.57/45.91 cons(x0, active(x1)) 134.57/45.91 s(mark(x0)) 134.57/45.91 s(active(x0)) 134.57/45.91 2ndspos(mark(x0), x1) 134.57/45.91 2ndspos(x0, mark(x1)) 134.57/45.91 2ndspos(active(x0), x1) 134.57/45.91 2ndspos(x0, active(x1)) 134.57/45.91 cons2(mark(x0), x1) 134.57/45.91 cons2(x0, mark(x1)) 134.57/45.91 cons2(active(x0), x1) 134.57/45.91 cons2(x0, active(x1)) 134.57/45.91 rcons(mark(x0), x1) 134.57/45.91 rcons(x0, mark(x1)) 134.57/45.91 rcons(active(x0), x1) 134.57/45.91 rcons(x0, active(x1)) 134.57/45.91 posrecip(mark(x0)) 134.57/45.91 posrecip(active(x0)) 134.57/45.91 2ndsneg(mark(x0), x1) 134.57/45.91 2ndsneg(x0, mark(x1)) 134.57/45.91 2ndsneg(active(x0), x1) 134.57/45.91 2ndsneg(x0, active(x1)) 134.57/45.91 negrecip(mark(x0)) 134.57/45.91 negrecip(active(x0)) 134.57/45.91 pi(mark(x0)) 134.57/45.91 pi(active(x0)) 134.57/45.91 plus(mark(x0), x1) 134.57/45.91 plus(x0, mark(x1)) 134.57/45.91 plus(active(x0), x1) 134.57/45.91 plus(x0, active(x1)) 134.57/45.91 times(mark(x0), x1) 134.57/45.91 times(x0, mark(x1)) 134.57/45.91 times(active(x0), x1) 134.57/45.91 times(x0, active(x1)) 134.57/45.91 square(mark(x0)) 134.57/45.91 square(active(x0)) 134.57/45.91 134.57/45.91 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (16) 134.57/45.91 Obligation: 134.57/45.91 Q DP problem: 134.57/45.91 The TRS P consists of the following rules: 134.57/45.91 134.57/45.91 TIMES(X1, mark(X2)) -> TIMES(X1, X2) 134.57/45.91 TIMES(mark(X1), X2) -> TIMES(X1, X2) 134.57/45.91 TIMES(active(X1), X2) -> TIMES(X1, X2) 134.57/45.91 TIMES(X1, active(X2)) -> TIMES(X1, X2) 134.57/45.91 134.57/45.91 R is empty. 134.57/45.91 The set Q consists of the following terms: 134.57/45.91 134.57/45.91 active(from(x0)) 134.57/45.91 active(2ndspos(0, x0)) 134.57/45.91 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(2ndsneg(0, x0)) 134.57/45.91 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(pi(x0)) 134.57/45.91 active(plus(0, x0)) 134.57/45.91 active(plus(s(x0), x1)) 134.57/45.91 active(times(0, x0)) 134.57/45.91 active(times(s(x0), x1)) 134.57/45.91 active(square(x0)) 134.57/45.91 mark(from(x0)) 134.57/45.91 mark(cons(x0, x1)) 134.57/45.91 mark(s(x0)) 134.57/45.91 mark(2ndspos(x0, x1)) 134.57/45.91 mark(0) 134.57/45.91 mark(rnil) 134.57/45.91 mark(cons2(x0, x1)) 134.57/45.91 mark(rcons(x0, x1)) 134.57/45.91 mark(posrecip(x0)) 134.57/45.91 mark(2ndsneg(x0, x1)) 134.57/45.91 mark(negrecip(x0)) 134.57/45.91 mark(pi(x0)) 134.57/45.91 mark(plus(x0, x1)) 134.57/45.91 mark(times(x0, x1)) 134.57/45.91 mark(square(x0)) 134.57/45.91 134.57/45.91 We have to consider all minimal (P,Q,R)-chains. 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (17) QDPSizeChangeProof (EQUIVALENT) 134.57/45.91 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. 134.57/45.91 134.57/45.91 From the DPs we obtained the following set of size-change graphs: 134.57/45.91 *TIMES(X1, mark(X2)) -> TIMES(X1, X2) 134.57/45.91 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.91 134.57/45.91 134.57/45.91 *TIMES(mark(X1), X2) -> TIMES(X1, X2) 134.57/45.91 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.91 134.57/45.91 134.57/45.91 *TIMES(active(X1), X2) -> TIMES(X1, X2) 134.57/45.91 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.91 134.57/45.91 134.57/45.91 *TIMES(X1, active(X2)) -> TIMES(X1, X2) 134.57/45.91 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.91 134.57/45.91 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (18) 134.57/45.91 YES 134.57/45.91 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (19) 134.57/45.91 Obligation: 134.57/45.91 Q DP problem: 134.57/45.91 The TRS P consists of the following rules: 134.57/45.91 134.57/45.91 PLUS(X1, mark(X2)) -> PLUS(X1, X2) 134.57/45.91 PLUS(mark(X1), X2) -> PLUS(X1, X2) 134.57/45.91 PLUS(active(X1), X2) -> PLUS(X1, X2) 134.57/45.91 PLUS(X1, active(X2)) -> PLUS(X1, X2) 134.57/45.91 134.57/45.91 The TRS R consists of the following rules: 134.57/45.91 134.57/45.91 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.91 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.91 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.91 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.91 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.91 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.91 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.91 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.91 active(plus(0, Y)) -> mark(Y) 134.57/45.91 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.91 active(times(0, Y)) -> mark(0) 134.57/45.91 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.91 active(square(X)) -> mark(times(X, X)) 134.57/45.91 mark(from(X)) -> active(from(mark(X))) 134.57/45.91 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.91 mark(s(X)) -> active(s(mark(X))) 134.57/45.91 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.91 mark(0) -> active(0) 134.57/45.91 mark(rnil) -> active(rnil) 134.57/45.91 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.91 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.91 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.91 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.91 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.91 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.91 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.91 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.91 mark(square(X)) -> active(square(mark(X))) 134.57/45.91 from(mark(X)) -> from(X) 134.57/45.91 from(active(X)) -> from(X) 134.57/45.91 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.91 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.91 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.91 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.91 s(mark(X)) -> s(X) 134.57/45.91 s(active(X)) -> s(X) 134.57/45.91 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.91 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.91 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.91 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.91 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.91 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.91 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.91 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.91 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.91 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.91 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.91 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.91 posrecip(mark(X)) -> posrecip(X) 134.57/45.91 posrecip(active(X)) -> posrecip(X) 134.57/45.91 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.91 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.91 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.91 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.91 negrecip(mark(X)) -> negrecip(X) 134.57/45.91 negrecip(active(X)) -> negrecip(X) 134.57/45.91 pi(mark(X)) -> pi(X) 134.57/45.91 pi(active(X)) -> pi(X) 134.57/45.91 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.91 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.91 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.91 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.91 times(mark(X1), X2) -> times(X1, X2) 134.57/45.91 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.91 times(active(X1), X2) -> times(X1, X2) 134.57/45.91 times(X1, active(X2)) -> times(X1, X2) 134.57/45.91 square(mark(X)) -> square(X) 134.57/45.91 square(active(X)) -> square(X) 134.57/45.91 134.57/45.91 The set Q consists of the following terms: 134.57/45.91 134.57/45.91 active(from(x0)) 134.57/45.91 active(2ndspos(0, x0)) 134.57/45.91 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(2ndsneg(0, x0)) 134.57/45.91 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(pi(x0)) 134.57/45.91 active(plus(0, x0)) 134.57/45.91 active(plus(s(x0), x1)) 134.57/45.91 active(times(0, x0)) 134.57/45.91 active(times(s(x0), x1)) 134.57/45.91 active(square(x0)) 134.57/45.91 mark(from(x0)) 134.57/45.91 mark(cons(x0, x1)) 134.57/45.91 mark(s(x0)) 134.57/45.91 mark(2ndspos(x0, x1)) 134.57/45.91 mark(0) 134.57/45.91 mark(rnil) 134.57/45.91 mark(cons2(x0, x1)) 134.57/45.91 mark(rcons(x0, x1)) 134.57/45.91 mark(posrecip(x0)) 134.57/45.91 mark(2ndsneg(x0, x1)) 134.57/45.91 mark(negrecip(x0)) 134.57/45.91 mark(pi(x0)) 134.57/45.91 mark(plus(x0, x1)) 134.57/45.91 mark(times(x0, x1)) 134.57/45.91 mark(square(x0)) 134.57/45.91 from(mark(x0)) 134.57/45.91 from(active(x0)) 134.57/45.91 cons(mark(x0), x1) 134.57/45.91 cons(x0, mark(x1)) 134.57/45.91 cons(active(x0), x1) 134.57/45.91 cons(x0, active(x1)) 134.57/45.91 s(mark(x0)) 134.57/45.91 s(active(x0)) 134.57/45.91 2ndspos(mark(x0), x1) 134.57/45.91 2ndspos(x0, mark(x1)) 134.57/45.91 2ndspos(active(x0), x1) 134.57/45.91 2ndspos(x0, active(x1)) 134.57/45.91 cons2(mark(x0), x1) 134.57/45.91 cons2(x0, mark(x1)) 134.57/45.91 cons2(active(x0), x1) 134.57/45.91 cons2(x0, active(x1)) 134.57/45.91 rcons(mark(x0), x1) 134.57/45.91 rcons(x0, mark(x1)) 134.57/45.91 rcons(active(x0), x1) 134.57/45.91 rcons(x0, active(x1)) 134.57/45.91 posrecip(mark(x0)) 134.57/45.91 posrecip(active(x0)) 134.57/45.91 2ndsneg(mark(x0), x1) 134.57/45.91 2ndsneg(x0, mark(x1)) 134.57/45.91 2ndsneg(active(x0), x1) 134.57/45.91 2ndsneg(x0, active(x1)) 134.57/45.91 negrecip(mark(x0)) 134.57/45.91 negrecip(active(x0)) 134.57/45.91 pi(mark(x0)) 134.57/45.91 pi(active(x0)) 134.57/45.91 plus(mark(x0), x1) 134.57/45.91 plus(x0, mark(x1)) 134.57/45.91 plus(active(x0), x1) 134.57/45.91 plus(x0, active(x1)) 134.57/45.91 times(mark(x0), x1) 134.57/45.91 times(x0, mark(x1)) 134.57/45.91 times(active(x0), x1) 134.57/45.91 times(x0, active(x1)) 134.57/45.91 square(mark(x0)) 134.57/45.91 square(active(x0)) 134.57/45.91 134.57/45.91 We have to consider all minimal (P,Q,R)-chains. 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (20) UsableRulesProof (EQUIVALENT) 134.57/45.91 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (21) 134.57/45.91 Obligation: 134.57/45.91 Q DP problem: 134.57/45.91 The TRS P consists of the following rules: 134.57/45.91 134.57/45.91 PLUS(X1, mark(X2)) -> PLUS(X1, X2) 134.57/45.91 PLUS(mark(X1), X2) -> PLUS(X1, X2) 134.57/45.91 PLUS(active(X1), X2) -> PLUS(X1, X2) 134.57/45.91 PLUS(X1, active(X2)) -> PLUS(X1, X2) 134.57/45.91 134.57/45.91 R is empty. 134.57/45.91 The set Q consists of the following terms: 134.57/45.91 134.57/45.91 active(from(x0)) 134.57/45.91 active(2ndspos(0, x0)) 134.57/45.91 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(2ndsneg(0, x0)) 134.57/45.91 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(pi(x0)) 134.57/45.91 active(plus(0, x0)) 134.57/45.91 active(plus(s(x0), x1)) 134.57/45.91 active(times(0, x0)) 134.57/45.91 active(times(s(x0), x1)) 134.57/45.91 active(square(x0)) 134.57/45.91 mark(from(x0)) 134.57/45.91 mark(cons(x0, x1)) 134.57/45.91 mark(s(x0)) 134.57/45.91 mark(2ndspos(x0, x1)) 134.57/45.91 mark(0) 134.57/45.91 mark(rnil) 134.57/45.91 mark(cons2(x0, x1)) 134.57/45.91 mark(rcons(x0, x1)) 134.57/45.91 mark(posrecip(x0)) 134.57/45.91 mark(2ndsneg(x0, x1)) 134.57/45.91 mark(negrecip(x0)) 134.57/45.91 mark(pi(x0)) 134.57/45.91 mark(plus(x0, x1)) 134.57/45.91 mark(times(x0, x1)) 134.57/45.91 mark(square(x0)) 134.57/45.91 from(mark(x0)) 134.57/45.91 from(active(x0)) 134.57/45.91 cons(mark(x0), x1) 134.57/45.91 cons(x0, mark(x1)) 134.57/45.91 cons(active(x0), x1) 134.57/45.91 cons(x0, active(x1)) 134.57/45.91 s(mark(x0)) 134.57/45.91 s(active(x0)) 134.57/45.91 2ndspos(mark(x0), x1) 134.57/45.91 2ndspos(x0, mark(x1)) 134.57/45.91 2ndspos(active(x0), x1) 134.57/45.91 2ndspos(x0, active(x1)) 134.57/45.91 cons2(mark(x0), x1) 134.57/45.91 cons2(x0, mark(x1)) 134.57/45.91 cons2(active(x0), x1) 134.57/45.91 cons2(x0, active(x1)) 134.57/45.91 rcons(mark(x0), x1) 134.57/45.91 rcons(x0, mark(x1)) 134.57/45.91 rcons(active(x0), x1) 134.57/45.91 rcons(x0, active(x1)) 134.57/45.91 posrecip(mark(x0)) 134.57/45.91 posrecip(active(x0)) 134.57/45.91 2ndsneg(mark(x0), x1) 134.57/45.91 2ndsneg(x0, mark(x1)) 134.57/45.91 2ndsneg(active(x0), x1) 134.57/45.91 2ndsneg(x0, active(x1)) 134.57/45.91 negrecip(mark(x0)) 134.57/45.91 negrecip(active(x0)) 134.57/45.91 pi(mark(x0)) 134.57/45.91 pi(active(x0)) 134.57/45.91 plus(mark(x0), x1) 134.57/45.91 plus(x0, mark(x1)) 134.57/45.91 plus(active(x0), x1) 134.57/45.91 plus(x0, active(x1)) 134.57/45.91 times(mark(x0), x1) 134.57/45.91 times(x0, mark(x1)) 134.57/45.91 times(active(x0), x1) 134.57/45.91 times(x0, active(x1)) 134.57/45.91 square(mark(x0)) 134.57/45.91 square(active(x0)) 134.57/45.91 134.57/45.91 We have to consider all minimal (P,Q,R)-chains. 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (22) QReductionProof (EQUIVALENT) 134.57/45.91 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.91 134.57/45.91 from(mark(x0)) 134.57/45.91 from(active(x0)) 134.57/45.91 cons(mark(x0), x1) 134.57/45.91 cons(x0, mark(x1)) 134.57/45.91 cons(active(x0), x1) 134.57/45.91 cons(x0, active(x1)) 134.57/45.91 s(mark(x0)) 134.57/45.91 s(active(x0)) 134.57/45.91 2ndspos(mark(x0), x1) 134.57/45.91 2ndspos(x0, mark(x1)) 134.57/45.91 2ndspos(active(x0), x1) 134.57/45.91 2ndspos(x0, active(x1)) 134.57/45.91 cons2(mark(x0), x1) 134.57/45.91 cons2(x0, mark(x1)) 134.57/45.91 cons2(active(x0), x1) 134.57/45.91 cons2(x0, active(x1)) 134.57/45.91 rcons(mark(x0), x1) 134.57/45.91 rcons(x0, mark(x1)) 134.57/45.91 rcons(active(x0), x1) 134.57/45.91 rcons(x0, active(x1)) 134.57/45.91 posrecip(mark(x0)) 134.57/45.91 posrecip(active(x0)) 134.57/45.91 2ndsneg(mark(x0), x1) 134.57/45.91 2ndsneg(x0, mark(x1)) 134.57/45.91 2ndsneg(active(x0), x1) 134.57/45.91 2ndsneg(x0, active(x1)) 134.57/45.91 negrecip(mark(x0)) 134.57/45.91 negrecip(active(x0)) 134.57/45.91 pi(mark(x0)) 134.57/45.91 pi(active(x0)) 134.57/45.91 plus(mark(x0), x1) 134.57/45.91 plus(x0, mark(x1)) 134.57/45.91 plus(active(x0), x1) 134.57/45.91 plus(x0, active(x1)) 134.57/45.91 times(mark(x0), x1) 134.57/45.91 times(x0, mark(x1)) 134.57/45.91 times(active(x0), x1) 134.57/45.91 times(x0, active(x1)) 134.57/45.91 square(mark(x0)) 134.57/45.91 square(active(x0)) 134.57/45.91 134.57/45.91 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (23) 134.57/45.91 Obligation: 134.57/45.91 Q DP problem: 134.57/45.91 The TRS P consists of the following rules: 134.57/45.91 134.57/45.91 PLUS(X1, mark(X2)) -> PLUS(X1, X2) 134.57/45.91 PLUS(mark(X1), X2) -> PLUS(X1, X2) 134.57/45.91 PLUS(active(X1), X2) -> PLUS(X1, X2) 134.57/45.91 PLUS(X1, active(X2)) -> PLUS(X1, X2) 134.57/45.91 134.57/45.91 R is empty. 134.57/45.91 The set Q consists of the following terms: 134.57/45.91 134.57/45.91 active(from(x0)) 134.57/45.91 active(2ndspos(0, x0)) 134.57/45.91 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(2ndsneg(0, x0)) 134.57/45.91 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(pi(x0)) 134.57/45.91 active(plus(0, x0)) 134.57/45.91 active(plus(s(x0), x1)) 134.57/45.91 active(times(0, x0)) 134.57/45.91 active(times(s(x0), x1)) 134.57/45.91 active(square(x0)) 134.57/45.91 mark(from(x0)) 134.57/45.91 mark(cons(x0, x1)) 134.57/45.91 mark(s(x0)) 134.57/45.91 mark(2ndspos(x0, x1)) 134.57/45.91 mark(0) 134.57/45.91 mark(rnil) 134.57/45.91 mark(cons2(x0, x1)) 134.57/45.91 mark(rcons(x0, x1)) 134.57/45.91 mark(posrecip(x0)) 134.57/45.91 mark(2ndsneg(x0, x1)) 134.57/45.91 mark(negrecip(x0)) 134.57/45.91 mark(pi(x0)) 134.57/45.91 mark(plus(x0, x1)) 134.57/45.91 mark(times(x0, x1)) 134.57/45.91 mark(square(x0)) 134.57/45.91 134.57/45.91 We have to consider all minimal (P,Q,R)-chains. 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (24) QDPSizeChangeProof (EQUIVALENT) 134.57/45.91 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. 134.57/45.91 134.57/45.91 From the DPs we obtained the following set of size-change graphs: 134.57/45.91 *PLUS(X1, mark(X2)) -> PLUS(X1, X2) 134.57/45.91 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.91 134.57/45.91 134.57/45.91 *PLUS(mark(X1), X2) -> PLUS(X1, X2) 134.57/45.91 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.91 134.57/45.91 134.57/45.91 *PLUS(active(X1), X2) -> PLUS(X1, X2) 134.57/45.91 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.91 134.57/45.91 134.57/45.91 *PLUS(X1, active(X2)) -> PLUS(X1, X2) 134.57/45.91 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.91 134.57/45.91 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (25) 134.57/45.91 YES 134.57/45.91 134.57/45.91 ---------------------------------------- 134.57/45.91 134.57/45.91 (26) 134.57/45.91 Obligation: 134.57/45.91 Q DP problem: 134.57/45.91 The TRS P consists of the following rules: 134.57/45.91 134.57/45.91 PI(active(X)) -> PI(X) 134.57/45.91 PI(mark(X)) -> PI(X) 134.57/45.91 134.57/45.91 The TRS R consists of the following rules: 134.57/45.91 134.57/45.91 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.91 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.91 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.91 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.91 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.91 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.91 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.91 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.91 active(plus(0, Y)) -> mark(Y) 134.57/45.91 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.91 active(times(0, Y)) -> mark(0) 134.57/45.91 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.91 active(square(X)) -> mark(times(X, X)) 134.57/45.91 mark(from(X)) -> active(from(mark(X))) 134.57/45.91 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.91 mark(s(X)) -> active(s(mark(X))) 134.57/45.91 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.91 mark(0) -> active(0) 134.57/45.91 mark(rnil) -> active(rnil) 134.57/45.91 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.91 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.91 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.91 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.91 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.91 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.91 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.91 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.91 mark(square(X)) -> active(square(mark(X))) 134.57/45.91 from(mark(X)) -> from(X) 134.57/45.91 from(active(X)) -> from(X) 134.57/45.91 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.91 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.91 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.91 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.91 s(mark(X)) -> s(X) 134.57/45.91 s(active(X)) -> s(X) 134.57/45.91 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.91 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.91 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.91 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.91 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.91 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.91 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.91 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.91 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.91 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.91 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.91 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.91 posrecip(mark(X)) -> posrecip(X) 134.57/45.91 posrecip(active(X)) -> posrecip(X) 134.57/45.91 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.91 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.91 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.91 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.91 negrecip(mark(X)) -> negrecip(X) 134.57/45.91 negrecip(active(X)) -> negrecip(X) 134.57/45.91 pi(mark(X)) -> pi(X) 134.57/45.91 pi(active(X)) -> pi(X) 134.57/45.91 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.91 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.91 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.91 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.91 times(mark(X1), X2) -> times(X1, X2) 134.57/45.91 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.91 times(active(X1), X2) -> times(X1, X2) 134.57/45.91 times(X1, active(X2)) -> times(X1, X2) 134.57/45.91 square(mark(X)) -> square(X) 134.57/45.91 square(active(X)) -> square(X) 134.57/45.91 134.57/45.91 The set Q consists of the following terms: 134.57/45.91 134.57/45.91 active(from(x0)) 134.57/45.91 active(2ndspos(0, x0)) 134.57/45.91 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(2ndsneg(0, x0)) 134.57/45.91 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.91 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.91 active(pi(x0)) 134.57/45.91 active(plus(0, x0)) 134.57/45.91 active(plus(s(x0), x1)) 134.57/45.91 active(times(0, x0)) 134.57/45.91 active(times(s(x0), x1)) 134.57/45.91 active(square(x0)) 134.57/45.91 mark(from(x0)) 134.57/45.91 mark(cons(x0, x1)) 134.57/45.91 mark(s(x0)) 134.57/45.91 mark(2ndspos(x0, x1)) 134.57/45.91 mark(0) 134.57/45.91 mark(rnil) 134.57/45.91 mark(cons2(x0, x1)) 134.57/45.91 mark(rcons(x0, x1)) 134.57/45.91 mark(posrecip(x0)) 134.57/45.91 mark(2ndsneg(x0, x1)) 134.57/45.91 mark(negrecip(x0)) 134.57/45.91 mark(pi(x0)) 134.57/45.91 mark(plus(x0, x1)) 134.57/45.91 mark(times(x0, x1)) 134.57/45.91 mark(square(x0)) 134.57/45.91 from(mark(x0)) 134.57/45.91 from(active(x0)) 134.57/45.91 cons(mark(x0), x1) 134.57/45.91 cons(x0, mark(x1)) 134.57/45.91 cons(active(x0), x1) 134.57/45.91 cons(x0, active(x1)) 134.57/45.91 s(mark(x0)) 134.57/45.91 s(active(x0)) 134.57/45.91 2ndspos(mark(x0), x1) 134.57/45.91 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (27) UsableRulesProof (EQUIVALENT) 134.57/45.92 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (28) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 PI(active(X)) -> PI(X) 134.57/45.92 PI(mark(X)) -> PI(X) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (29) QReductionProof (EQUIVALENT) 134.57/45.92 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.92 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (30) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 PI(active(X)) -> PI(X) 134.57/45.92 PI(mark(X)) -> PI(X) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (31) QDPSizeChangeProof (EQUIVALENT) 134.57/45.92 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. 134.57/45.92 134.57/45.92 From the DPs we obtained the following set of size-change graphs: 134.57/45.92 *PI(active(X)) -> PI(X) 134.57/45.92 The graph contains the following edges 1 > 1 134.57/45.92 134.57/45.92 134.57/45.92 *PI(mark(X)) -> PI(X) 134.57/45.92 The graph contains the following edges 1 > 1 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (32) 134.57/45.92 YES 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (33) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 NEGRECIP(active(X)) -> NEGRECIP(X) 134.57/45.92 NEGRECIP(mark(X)) -> NEGRECIP(X) 134.57/45.92 134.57/45.92 The TRS R consists of the following rules: 134.57/45.92 134.57/45.92 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.92 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.92 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.92 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.92 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.92 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.92 active(plus(0, Y)) -> mark(Y) 134.57/45.92 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.92 active(times(0, Y)) -> mark(0) 134.57/45.92 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.92 active(square(X)) -> mark(times(X, X)) 134.57/45.92 mark(from(X)) -> active(from(mark(X))) 134.57/45.92 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.92 mark(s(X)) -> active(s(mark(X))) 134.57/45.92 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.92 mark(0) -> active(0) 134.57/45.92 mark(rnil) -> active(rnil) 134.57/45.92 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.92 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.92 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.92 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.92 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.92 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.92 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.92 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.92 mark(square(X)) -> active(square(mark(X))) 134.57/45.92 from(mark(X)) -> from(X) 134.57/45.92 from(active(X)) -> from(X) 134.57/45.92 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.92 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.92 s(mark(X)) -> s(X) 134.57/45.92 s(active(X)) -> s(X) 134.57/45.92 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.92 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.92 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.92 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.92 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.92 posrecip(mark(X)) -> posrecip(X) 134.57/45.92 posrecip(active(X)) -> posrecip(X) 134.57/45.92 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 negrecip(mark(X)) -> negrecip(X) 134.57/45.92 negrecip(active(X)) -> negrecip(X) 134.57/45.92 pi(mark(X)) -> pi(X) 134.57/45.92 pi(active(X)) -> pi(X) 134.57/45.92 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.92 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.92 times(mark(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.92 times(active(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, active(X2)) -> times(X1, X2) 134.57/45.92 square(mark(X)) -> square(X) 134.57/45.92 square(active(X)) -> square(X) 134.57/45.92 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (34) UsableRulesProof (EQUIVALENT) 134.57/45.92 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (35) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 NEGRECIP(active(X)) -> NEGRECIP(X) 134.57/45.92 NEGRECIP(mark(X)) -> NEGRECIP(X) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (36) QReductionProof (EQUIVALENT) 134.57/45.92 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.92 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (37) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 NEGRECIP(active(X)) -> NEGRECIP(X) 134.57/45.92 NEGRECIP(mark(X)) -> NEGRECIP(X) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (38) QDPSizeChangeProof (EQUIVALENT) 134.57/45.92 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. 134.57/45.92 134.57/45.92 From the DPs we obtained the following set of size-change graphs: 134.57/45.92 *NEGRECIP(active(X)) -> NEGRECIP(X) 134.57/45.92 The graph contains the following edges 1 > 1 134.57/45.92 134.57/45.92 134.57/45.92 *NEGRECIP(mark(X)) -> NEGRECIP(X) 134.57/45.92 The graph contains the following edges 1 > 1 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (39) 134.57/45.92 YES 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (40) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 134.57/45.92 The TRS R consists of the following rules: 134.57/45.92 134.57/45.92 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.92 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.92 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.92 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.92 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.92 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.92 active(plus(0, Y)) -> mark(Y) 134.57/45.92 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.92 active(times(0, Y)) -> mark(0) 134.57/45.92 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.92 active(square(X)) -> mark(times(X, X)) 134.57/45.92 mark(from(X)) -> active(from(mark(X))) 134.57/45.92 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.92 mark(s(X)) -> active(s(mark(X))) 134.57/45.92 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.92 mark(0) -> active(0) 134.57/45.92 mark(rnil) -> active(rnil) 134.57/45.92 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.92 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.92 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.92 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.92 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.92 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.92 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.92 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.92 mark(square(X)) -> active(square(mark(X))) 134.57/45.92 from(mark(X)) -> from(X) 134.57/45.92 from(active(X)) -> from(X) 134.57/45.92 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.92 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.92 s(mark(X)) -> s(X) 134.57/45.92 s(active(X)) -> s(X) 134.57/45.92 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.92 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.92 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.92 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.92 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.92 posrecip(mark(X)) -> posrecip(X) 134.57/45.92 posrecip(active(X)) -> posrecip(X) 134.57/45.92 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 negrecip(mark(X)) -> negrecip(X) 134.57/45.92 negrecip(active(X)) -> negrecip(X) 134.57/45.92 pi(mark(X)) -> pi(X) 134.57/45.92 pi(active(X)) -> pi(X) 134.57/45.92 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.92 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.92 times(mark(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.92 times(active(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, active(X2)) -> times(X1, X2) 134.57/45.92 square(mark(X)) -> square(X) 134.57/45.92 square(active(X)) -> square(X) 134.57/45.92 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (41) UsableRulesProof (EQUIVALENT) 134.57/45.92 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (42) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (43) QReductionProof (EQUIVALENT) 134.57/45.92 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.92 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (44) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (45) QDPSizeChangeProof (EQUIVALENT) 134.57/45.92 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. 134.57/45.92 134.57/45.92 From the DPs we obtained the following set of size-change graphs: 134.57/45.92 *2NDSNEG(X1, mark(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.92 134.57/45.92 134.57/45.92 *2NDSNEG(mark(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.92 134.57/45.92 134.57/45.92 *2NDSNEG(active(X1), X2) -> 2NDSNEG(X1, X2) 134.57/45.92 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.92 134.57/45.92 134.57/45.92 *2NDSNEG(X1, active(X2)) -> 2NDSNEG(X1, X2) 134.57/45.92 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (46) 134.57/45.92 YES 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (47) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 POSRECIP(active(X)) -> POSRECIP(X) 134.57/45.92 POSRECIP(mark(X)) -> POSRECIP(X) 134.57/45.92 134.57/45.92 The TRS R consists of the following rules: 134.57/45.92 134.57/45.92 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.92 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.92 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.92 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.92 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.92 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.92 active(plus(0, Y)) -> mark(Y) 134.57/45.92 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.92 active(times(0, Y)) -> mark(0) 134.57/45.92 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.92 active(square(X)) -> mark(times(X, X)) 134.57/45.92 mark(from(X)) -> active(from(mark(X))) 134.57/45.92 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.92 mark(s(X)) -> active(s(mark(X))) 134.57/45.92 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.92 mark(0) -> active(0) 134.57/45.92 mark(rnil) -> active(rnil) 134.57/45.92 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.92 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.92 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.92 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.92 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.92 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.92 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.92 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.92 mark(square(X)) -> active(square(mark(X))) 134.57/45.92 from(mark(X)) -> from(X) 134.57/45.92 from(active(X)) -> from(X) 134.57/45.92 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.92 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.92 s(mark(X)) -> s(X) 134.57/45.92 s(active(X)) -> s(X) 134.57/45.92 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.92 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.92 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.92 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.92 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.92 posrecip(mark(X)) -> posrecip(X) 134.57/45.92 posrecip(active(X)) -> posrecip(X) 134.57/45.92 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 negrecip(mark(X)) -> negrecip(X) 134.57/45.92 negrecip(active(X)) -> negrecip(X) 134.57/45.92 pi(mark(X)) -> pi(X) 134.57/45.92 pi(active(X)) -> pi(X) 134.57/45.92 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.92 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.92 times(mark(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.92 times(active(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, active(X2)) -> times(X1, X2) 134.57/45.92 square(mark(X)) -> square(X) 134.57/45.92 square(active(X)) -> square(X) 134.57/45.92 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (48) UsableRulesProof (EQUIVALENT) 134.57/45.92 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (49) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 POSRECIP(active(X)) -> POSRECIP(X) 134.57/45.92 POSRECIP(mark(X)) -> POSRECIP(X) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (50) QReductionProof (EQUIVALENT) 134.57/45.92 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.92 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (51) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 POSRECIP(active(X)) -> POSRECIP(X) 134.57/45.92 POSRECIP(mark(X)) -> POSRECIP(X) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (52) QDPSizeChangeProof (EQUIVALENT) 134.57/45.92 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. 134.57/45.92 134.57/45.92 From the DPs we obtained the following set of size-change graphs: 134.57/45.92 *POSRECIP(active(X)) -> POSRECIP(X) 134.57/45.92 The graph contains the following edges 1 > 1 134.57/45.92 134.57/45.92 134.57/45.92 *POSRECIP(mark(X)) -> POSRECIP(X) 134.57/45.92 The graph contains the following edges 1 > 1 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (53) 134.57/45.92 YES 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (54) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 RCONS(X1, mark(X2)) -> RCONS(X1, X2) 134.57/45.92 RCONS(mark(X1), X2) -> RCONS(X1, X2) 134.57/45.92 RCONS(active(X1), X2) -> RCONS(X1, X2) 134.57/45.92 RCONS(X1, active(X2)) -> RCONS(X1, X2) 134.57/45.92 134.57/45.92 The TRS R consists of the following rules: 134.57/45.92 134.57/45.92 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.92 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.92 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.92 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.92 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.92 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.92 active(plus(0, Y)) -> mark(Y) 134.57/45.92 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.92 active(times(0, Y)) -> mark(0) 134.57/45.92 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.92 active(square(X)) -> mark(times(X, X)) 134.57/45.92 mark(from(X)) -> active(from(mark(X))) 134.57/45.92 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.92 mark(s(X)) -> active(s(mark(X))) 134.57/45.92 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.92 mark(0) -> active(0) 134.57/45.92 mark(rnil) -> active(rnil) 134.57/45.92 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.92 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.92 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.92 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.92 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.92 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.92 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.92 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.92 mark(square(X)) -> active(square(mark(X))) 134.57/45.92 from(mark(X)) -> from(X) 134.57/45.92 from(active(X)) -> from(X) 134.57/45.92 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.92 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.92 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.92 s(mark(X)) -> s(X) 134.57/45.92 s(active(X)) -> s(X) 134.57/45.92 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.92 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.92 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.92 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.92 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.92 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.92 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.92 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.92 posrecip(mark(X)) -> posrecip(X) 134.57/45.92 posrecip(active(X)) -> posrecip(X) 134.57/45.92 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.92 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.92 negrecip(mark(X)) -> negrecip(X) 134.57/45.92 negrecip(active(X)) -> negrecip(X) 134.57/45.92 pi(mark(X)) -> pi(X) 134.57/45.92 pi(active(X)) -> pi(X) 134.57/45.92 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.92 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.92 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.92 times(mark(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.92 times(active(X1), X2) -> times(X1, X2) 134.57/45.92 times(X1, active(X2)) -> times(X1, X2) 134.57/45.92 square(mark(X)) -> square(X) 134.57/45.92 square(active(X)) -> square(X) 134.57/45.92 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (55) UsableRulesProof (EQUIVALENT) 134.57/45.92 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (56) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 RCONS(X1, mark(X2)) -> RCONS(X1, X2) 134.57/45.92 RCONS(mark(X1), X2) -> RCONS(X1, X2) 134.57/45.92 RCONS(active(X1), X2) -> RCONS(X1, X2) 134.57/45.92 RCONS(X1, active(X2)) -> RCONS(X1, X2) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (57) QReductionProof (EQUIVALENT) 134.57/45.92 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.92 134.57/45.92 from(mark(x0)) 134.57/45.92 from(active(x0)) 134.57/45.92 cons(mark(x0), x1) 134.57/45.92 cons(x0, mark(x1)) 134.57/45.92 cons(active(x0), x1) 134.57/45.92 cons(x0, active(x1)) 134.57/45.92 s(mark(x0)) 134.57/45.92 s(active(x0)) 134.57/45.92 2ndspos(mark(x0), x1) 134.57/45.92 2ndspos(x0, mark(x1)) 134.57/45.92 2ndspos(active(x0), x1) 134.57/45.92 2ndspos(x0, active(x1)) 134.57/45.92 cons2(mark(x0), x1) 134.57/45.92 cons2(x0, mark(x1)) 134.57/45.92 cons2(active(x0), x1) 134.57/45.92 cons2(x0, active(x1)) 134.57/45.92 rcons(mark(x0), x1) 134.57/45.92 rcons(x0, mark(x1)) 134.57/45.92 rcons(active(x0), x1) 134.57/45.92 rcons(x0, active(x1)) 134.57/45.92 posrecip(mark(x0)) 134.57/45.92 posrecip(active(x0)) 134.57/45.92 2ndsneg(mark(x0), x1) 134.57/45.92 2ndsneg(x0, mark(x1)) 134.57/45.92 2ndsneg(active(x0), x1) 134.57/45.92 2ndsneg(x0, active(x1)) 134.57/45.92 negrecip(mark(x0)) 134.57/45.92 negrecip(active(x0)) 134.57/45.92 pi(mark(x0)) 134.57/45.92 pi(active(x0)) 134.57/45.92 plus(mark(x0), x1) 134.57/45.92 plus(x0, mark(x1)) 134.57/45.92 plus(active(x0), x1) 134.57/45.92 plus(x0, active(x1)) 134.57/45.92 times(mark(x0), x1) 134.57/45.92 times(x0, mark(x1)) 134.57/45.92 times(active(x0), x1) 134.57/45.92 times(x0, active(x1)) 134.57/45.92 square(mark(x0)) 134.57/45.92 square(active(x0)) 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (58) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 RCONS(X1, mark(X2)) -> RCONS(X1, X2) 134.57/45.92 RCONS(mark(X1), X2) -> RCONS(X1, X2) 134.57/45.92 RCONS(active(X1), X2) -> RCONS(X1, X2) 134.57/45.92 RCONS(X1, active(X2)) -> RCONS(X1, X2) 134.57/45.92 134.57/45.92 R is empty. 134.57/45.92 The set Q consists of the following terms: 134.57/45.92 134.57/45.92 active(from(x0)) 134.57/45.92 active(2ndspos(0, x0)) 134.57/45.92 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(2ndsneg(0, x0)) 134.57/45.92 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.92 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.92 active(pi(x0)) 134.57/45.92 active(plus(0, x0)) 134.57/45.92 active(plus(s(x0), x1)) 134.57/45.92 active(times(0, x0)) 134.57/45.92 active(times(s(x0), x1)) 134.57/45.92 active(square(x0)) 134.57/45.92 mark(from(x0)) 134.57/45.92 mark(cons(x0, x1)) 134.57/45.92 mark(s(x0)) 134.57/45.92 mark(2ndspos(x0, x1)) 134.57/45.92 mark(0) 134.57/45.92 mark(rnil) 134.57/45.92 mark(cons2(x0, x1)) 134.57/45.92 mark(rcons(x0, x1)) 134.57/45.92 mark(posrecip(x0)) 134.57/45.92 mark(2ndsneg(x0, x1)) 134.57/45.92 mark(negrecip(x0)) 134.57/45.92 mark(pi(x0)) 134.57/45.92 mark(plus(x0, x1)) 134.57/45.92 mark(times(x0, x1)) 134.57/45.92 mark(square(x0)) 134.57/45.92 134.57/45.92 We have to consider all minimal (P,Q,R)-chains. 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (59) QDPSizeChangeProof (EQUIVALENT) 134.57/45.92 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. 134.57/45.92 134.57/45.92 From the DPs we obtained the following set of size-change graphs: 134.57/45.92 *RCONS(X1, mark(X2)) -> RCONS(X1, X2) 134.57/45.92 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.92 134.57/45.92 134.57/45.92 *RCONS(mark(X1), X2) -> RCONS(X1, X2) 134.57/45.92 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.92 134.57/45.92 134.57/45.92 *RCONS(active(X1), X2) -> RCONS(X1, X2) 134.57/45.92 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.92 134.57/45.92 134.57/45.92 *RCONS(X1, active(X2)) -> RCONS(X1, X2) 134.57/45.92 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.92 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (60) 134.57/45.92 YES 134.57/45.92 134.57/45.92 ---------------------------------------- 134.57/45.92 134.57/45.92 (61) 134.57/45.92 Obligation: 134.57/45.92 Q DP problem: 134.57/45.92 The TRS P consists of the following rules: 134.57/45.92 134.57/45.92 CONS2(X1, mark(X2)) -> CONS2(X1, X2) 134.57/45.92 CONS2(mark(X1), X2) -> CONS2(X1, X2) 134.57/45.92 CONS2(active(X1), X2) -> CONS2(X1, X2) 134.57/45.92 CONS2(X1, active(X2)) -> CONS2(X1, X2) 134.57/45.92 134.57/45.92 The TRS R consists of the following rules: 134.57/45.92 134.57/45.92 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.92 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.92 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.92 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.92 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.92 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.92 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.92 active(plus(0, Y)) -> mark(Y) 134.57/45.92 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.92 active(times(0, Y)) -> mark(0) 134.57/45.92 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.92 active(square(X)) -> mark(times(X, X)) 134.57/45.92 mark(from(X)) -> active(from(mark(X))) 134.57/45.92 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.92 mark(s(X)) -> active(s(mark(X))) 134.57/45.92 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.92 mark(0) -> active(0) 134.57/45.92 mark(rnil) -> active(rnil) 134.57/45.92 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.92 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.92 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.92 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.92 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.92 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.92 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.92 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.93 mark(square(X)) -> active(square(mark(X))) 134.57/45.93 from(mark(X)) -> from(X) 134.57/45.93 from(active(X)) -> from(X) 134.57/45.93 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.93 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.93 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.93 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.93 s(mark(X)) -> s(X) 134.57/45.93 s(active(X)) -> s(X) 134.57/45.93 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.93 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.93 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.93 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.93 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.93 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.93 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.93 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.93 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.93 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.93 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.93 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.93 posrecip(mark(X)) -> posrecip(X) 134.57/45.93 posrecip(active(X)) -> posrecip(X) 134.57/45.93 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.93 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.93 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.93 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.93 negrecip(mark(X)) -> negrecip(X) 134.57/45.93 negrecip(active(X)) -> negrecip(X) 134.57/45.93 pi(mark(X)) -> pi(X) 134.57/45.93 pi(active(X)) -> pi(X) 134.57/45.93 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.93 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.93 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.93 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.93 times(mark(X1), X2) -> times(X1, X2) 134.57/45.93 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.93 times(active(X1), X2) -> times(X1, X2) 134.57/45.93 times(X1, active(X2)) -> times(X1, X2) 134.57/45.93 square(mark(X)) -> square(X) 134.57/45.93 square(active(X)) -> square(X) 134.57/45.93 134.57/45.93 The set Q consists of the following terms: 134.57/45.93 134.57/45.93 active(from(x0)) 134.57/45.93 active(2ndspos(0, x0)) 134.57/45.93 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.93 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.93 active(2ndsneg(0, x0)) 134.57/45.93 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.93 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.93 active(pi(x0)) 134.57/45.93 active(plus(0, x0)) 134.57/45.93 active(plus(s(x0), x1)) 134.57/45.93 active(times(0, x0)) 134.57/45.93 active(times(s(x0), x1)) 134.57/45.93 active(square(x0)) 134.57/45.93 mark(from(x0)) 134.57/45.93 mark(cons(x0, x1)) 134.57/45.93 mark(s(x0)) 134.57/45.93 mark(2ndspos(x0, x1)) 134.57/45.93 mark(0) 134.57/45.93 mark(rnil) 134.57/45.93 mark(cons2(x0, x1)) 134.57/45.93 mark(rcons(x0, x1)) 134.57/45.93 mark(posrecip(x0)) 134.57/45.93 mark(2ndsneg(x0, x1)) 134.57/45.93 mark(negrecip(x0)) 134.57/45.93 mark(pi(x0)) 134.57/45.93 mark(plus(x0, x1)) 134.57/45.93 mark(times(x0, x1)) 134.57/45.93 mark(square(x0)) 134.57/45.93 from(mark(x0)) 134.57/45.93 from(active(x0)) 134.57/45.93 cons(mark(x0), x1) 134.57/45.93 cons(x0, mark(x1)) 134.57/45.93 cons(active(x0), x1) 134.57/45.93 cons(x0, active(x1)) 134.57/45.93 s(mark(x0)) 134.57/45.93 s(active(x0)) 134.57/45.93 2ndspos(mark(x0), x1) 134.57/45.93 2ndspos(x0, mark(x1)) 134.57/45.93 2ndspos(active(x0), x1) 134.57/45.93 2ndspos(x0, active(x1)) 134.57/45.93 cons2(mark(x0), x1) 134.57/45.93 cons2(x0, mark(x1)) 134.57/45.93 cons2(active(x0), x1) 134.57/45.93 cons2(x0, active(x1)) 134.57/45.93 rcons(mark(x0), x1) 134.57/45.93 rcons(x0, mark(x1)) 134.57/45.93 rcons(active(x0), x1) 134.57/45.93 rcons(x0, active(x1)) 134.57/45.93 posrecip(mark(x0)) 134.57/45.93 posrecip(active(x0)) 134.57/45.93 2ndsneg(mark(x0), x1) 134.57/45.93 2ndsneg(x0, mark(x1)) 134.57/45.93 2ndsneg(active(x0), x1) 134.57/45.93 2ndsneg(x0, active(x1)) 134.57/45.93 negrecip(mark(x0)) 134.57/45.93 negrecip(active(x0)) 134.57/45.93 pi(mark(x0)) 134.57/45.93 pi(active(x0)) 134.57/45.93 plus(mark(x0), x1) 134.57/45.93 plus(x0, mark(x1)) 134.57/45.93 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (62) UsableRulesProof (EQUIVALENT) 134.57/45.94 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (63) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 CONS2(X1, mark(X2)) -> CONS2(X1, X2) 134.57/45.94 CONS2(mark(X1), X2) -> CONS2(X1, X2) 134.57/45.94 CONS2(active(X1), X2) -> CONS2(X1, X2) 134.57/45.94 CONS2(X1, active(X2)) -> CONS2(X1, X2) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (64) QReductionProof (EQUIVALENT) 134.57/45.94 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.94 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (65) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 CONS2(X1, mark(X2)) -> CONS2(X1, X2) 134.57/45.94 CONS2(mark(X1), X2) -> CONS2(X1, X2) 134.57/45.94 CONS2(active(X1), X2) -> CONS2(X1, X2) 134.57/45.94 CONS2(X1, active(X2)) -> CONS2(X1, X2) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (66) QDPSizeChangeProof (EQUIVALENT) 134.57/45.94 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. 134.57/45.94 134.57/45.94 From the DPs we obtained the following set of size-change graphs: 134.57/45.94 *CONS2(X1, mark(X2)) -> CONS2(X1, X2) 134.57/45.94 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.94 134.57/45.94 134.57/45.94 *CONS2(mark(X1), X2) -> CONS2(X1, X2) 134.57/45.94 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.94 134.57/45.94 134.57/45.94 *CONS2(active(X1), X2) -> CONS2(X1, X2) 134.57/45.94 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.94 134.57/45.94 134.57/45.94 *CONS2(X1, active(X2)) -> CONS2(X1, X2) 134.57/45.94 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (67) 134.57/45.94 YES 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (68) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 134.57/45.94 The TRS R consists of the following rules: 134.57/45.94 134.57/45.94 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.94 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.94 active(plus(0, Y)) -> mark(Y) 134.57/45.94 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.94 active(times(0, Y)) -> mark(0) 134.57/45.94 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.94 active(square(X)) -> mark(times(X, X)) 134.57/45.94 mark(from(X)) -> active(from(mark(X))) 134.57/45.94 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.94 mark(s(X)) -> active(s(mark(X))) 134.57/45.94 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.94 mark(0) -> active(0) 134.57/45.94 mark(rnil) -> active(rnil) 134.57/45.94 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.94 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.94 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.94 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.94 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.94 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.94 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.94 mark(square(X)) -> active(square(mark(X))) 134.57/45.94 from(mark(X)) -> from(X) 134.57/45.94 from(active(X)) -> from(X) 134.57/45.94 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.94 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.94 s(mark(X)) -> s(X) 134.57/45.94 s(active(X)) -> s(X) 134.57/45.94 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.94 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.94 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.94 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.94 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.94 posrecip(mark(X)) -> posrecip(X) 134.57/45.94 posrecip(active(X)) -> posrecip(X) 134.57/45.94 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 negrecip(mark(X)) -> negrecip(X) 134.57/45.94 negrecip(active(X)) -> negrecip(X) 134.57/45.94 pi(mark(X)) -> pi(X) 134.57/45.94 pi(active(X)) -> pi(X) 134.57/45.94 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.94 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.94 times(mark(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.94 times(active(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, active(X2)) -> times(X1, X2) 134.57/45.94 square(mark(X)) -> square(X) 134.57/45.94 square(active(X)) -> square(X) 134.57/45.94 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (69) UsableRulesProof (EQUIVALENT) 134.57/45.94 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (70) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (71) QReductionProof (EQUIVALENT) 134.57/45.94 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.94 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (72) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (73) QDPSizeChangeProof (EQUIVALENT) 134.57/45.94 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. 134.57/45.94 134.57/45.94 From the DPs we obtained the following set of size-change graphs: 134.57/45.94 *2NDSPOS(X1, mark(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.94 134.57/45.94 134.57/45.94 *2NDSPOS(mark(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.94 134.57/45.94 134.57/45.94 *2NDSPOS(active(X1), X2) -> 2NDSPOS(X1, X2) 134.57/45.94 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.94 134.57/45.94 134.57/45.94 *2NDSPOS(X1, active(X2)) -> 2NDSPOS(X1, X2) 134.57/45.94 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (74) 134.57/45.94 YES 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (75) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 S(active(X)) -> S(X) 134.57/45.94 S(mark(X)) -> S(X) 134.57/45.94 134.57/45.94 The TRS R consists of the following rules: 134.57/45.94 134.57/45.94 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.94 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.94 active(plus(0, Y)) -> mark(Y) 134.57/45.94 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.94 active(times(0, Y)) -> mark(0) 134.57/45.94 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.94 active(square(X)) -> mark(times(X, X)) 134.57/45.94 mark(from(X)) -> active(from(mark(X))) 134.57/45.94 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.94 mark(s(X)) -> active(s(mark(X))) 134.57/45.94 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.94 mark(0) -> active(0) 134.57/45.94 mark(rnil) -> active(rnil) 134.57/45.94 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.94 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.94 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.94 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.94 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.94 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.94 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.94 mark(square(X)) -> active(square(mark(X))) 134.57/45.94 from(mark(X)) -> from(X) 134.57/45.94 from(active(X)) -> from(X) 134.57/45.94 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.94 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.94 s(mark(X)) -> s(X) 134.57/45.94 s(active(X)) -> s(X) 134.57/45.94 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.94 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.94 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.94 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.94 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.94 posrecip(mark(X)) -> posrecip(X) 134.57/45.94 posrecip(active(X)) -> posrecip(X) 134.57/45.94 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 negrecip(mark(X)) -> negrecip(X) 134.57/45.94 negrecip(active(X)) -> negrecip(X) 134.57/45.94 pi(mark(X)) -> pi(X) 134.57/45.94 pi(active(X)) -> pi(X) 134.57/45.94 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.94 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.94 times(mark(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.94 times(active(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, active(X2)) -> times(X1, X2) 134.57/45.94 square(mark(X)) -> square(X) 134.57/45.94 square(active(X)) -> square(X) 134.57/45.94 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (76) UsableRulesProof (EQUIVALENT) 134.57/45.94 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (77) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 S(active(X)) -> S(X) 134.57/45.94 S(mark(X)) -> S(X) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (78) QReductionProof (EQUIVALENT) 134.57/45.94 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.94 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (79) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 S(active(X)) -> S(X) 134.57/45.94 S(mark(X)) -> S(X) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (80) QDPSizeChangeProof (EQUIVALENT) 134.57/45.94 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. 134.57/45.94 134.57/45.94 From the DPs we obtained the following set of size-change graphs: 134.57/45.94 *S(active(X)) -> S(X) 134.57/45.94 The graph contains the following edges 1 > 1 134.57/45.94 134.57/45.94 134.57/45.94 *S(mark(X)) -> S(X) 134.57/45.94 The graph contains the following edges 1 > 1 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (81) 134.57/45.94 YES 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (82) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 CONS(X1, mark(X2)) -> CONS(X1, X2) 134.57/45.94 CONS(mark(X1), X2) -> CONS(X1, X2) 134.57/45.94 CONS(active(X1), X2) -> CONS(X1, X2) 134.57/45.94 CONS(X1, active(X2)) -> CONS(X1, X2) 134.57/45.94 134.57/45.94 The TRS R consists of the following rules: 134.57/45.94 134.57/45.94 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.94 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.94 active(plus(0, Y)) -> mark(Y) 134.57/45.94 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.94 active(times(0, Y)) -> mark(0) 134.57/45.94 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.94 active(square(X)) -> mark(times(X, X)) 134.57/45.94 mark(from(X)) -> active(from(mark(X))) 134.57/45.94 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.94 mark(s(X)) -> active(s(mark(X))) 134.57/45.94 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.94 mark(0) -> active(0) 134.57/45.94 mark(rnil) -> active(rnil) 134.57/45.94 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.94 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.94 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.94 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.94 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.94 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.94 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.94 mark(square(X)) -> active(square(mark(X))) 134.57/45.94 from(mark(X)) -> from(X) 134.57/45.94 from(active(X)) -> from(X) 134.57/45.94 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.94 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.94 s(mark(X)) -> s(X) 134.57/45.94 s(active(X)) -> s(X) 134.57/45.94 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.94 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.94 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.94 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.94 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.94 posrecip(mark(X)) -> posrecip(X) 134.57/45.94 posrecip(active(X)) -> posrecip(X) 134.57/45.94 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 negrecip(mark(X)) -> negrecip(X) 134.57/45.94 negrecip(active(X)) -> negrecip(X) 134.57/45.94 pi(mark(X)) -> pi(X) 134.57/45.94 pi(active(X)) -> pi(X) 134.57/45.94 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.94 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.94 times(mark(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.94 times(active(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, active(X2)) -> times(X1, X2) 134.57/45.94 square(mark(X)) -> square(X) 134.57/45.94 square(active(X)) -> square(X) 134.57/45.94 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (83) UsableRulesProof (EQUIVALENT) 134.57/45.94 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (84) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 CONS(X1, mark(X2)) -> CONS(X1, X2) 134.57/45.94 CONS(mark(X1), X2) -> CONS(X1, X2) 134.57/45.94 CONS(active(X1), X2) -> CONS(X1, X2) 134.57/45.94 CONS(X1, active(X2)) -> CONS(X1, X2) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (85) QReductionProof (EQUIVALENT) 134.57/45.94 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.94 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (86) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 CONS(X1, mark(X2)) -> CONS(X1, X2) 134.57/45.94 CONS(mark(X1), X2) -> CONS(X1, X2) 134.57/45.94 CONS(active(X1), X2) -> CONS(X1, X2) 134.57/45.94 CONS(X1, active(X2)) -> CONS(X1, X2) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (87) QDPSizeChangeProof (EQUIVALENT) 134.57/45.94 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. 134.57/45.94 134.57/45.94 From the DPs we obtained the following set of size-change graphs: 134.57/45.94 *CONS(X1, mark(X2)) -> CONS(X1, X2) 134.57/45.94 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.94 134.57/45.94 134.57/45.94 *CONS(mark(X1), X2) -> CONS(X1, X2) 134.57/45.94 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.94 134.57/45.94 134.57/45.94 *CONS(active(X1), X2) -> CONS(X1, X2) 134.57/45.94 The graph contains the following edges 1 > 1, 2 >= 2 134.57/45.94 134.57/45.94 134.57/45.94 *CONS(X1, active(X2)) -> CONS(X1, X2) 134.57/45.94 The graph contains the following edges 1 >= 1, 2 > 2 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (88) 134.57/45.94 YES 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (89) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 FROM(active(X)) -> FROM(X) 134.57/45.94 FROM(mark(X)) -> FROM(X) 134.57/45.94 134.57/45.94 The TRS R consists of the following rules: 134.57/45.94 134.57/45.94 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.94 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.94 active(plus(0, Y)) -> mark(Y) 134.57/45.94 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.94 active(times(0, Y)) -> mark(0) 134.57/45.94 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.94 active(square(X)) -> mark(times(X, X)) 134.57/45.94 mark(from(X)) -> active(from(mark(X))) 134.57/45.94 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.94 mark(s(X)) -> active(s(mark(X))) 134.57/45.94 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.94 mark(0) -> active(0) 134.57/45.94 mark(rnil) -> active(rnil) 134.57/45.94 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.94 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.94 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.94 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.94 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.94 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.94 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.94 mark(square(X)) -> active(square(mark(X))) 134.57/45.94 from(mark(X)) -> from(X) 134.57/45.94 from(active(X)) -> from(X) 134.57/45.94 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.94 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.94 s(mark(X)) -> s(X) 134.57/45.94 s(active(X)) -> s(X) 134.57/45.94 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.94 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.94 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.94 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.94 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.94 posrecip(mark(X)) -> posrecip(X) 134.57/45.94 posrecip(active(X)) -> posrecip(X) 134.57/45.94 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 negrecip(mark(X)) -> negrecip(X) 134.57/45.94 negrecip(active(X)) -> negrecip(X) 134.57/45.94 pi(mark(X)) -> pi(X) 134.57/45.94 pi(active(X)) -> pi(X) 134.57/45.94 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.94 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.94 times(mark(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.94 times(active(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, active(X2)) -> times(X1, X2) 134.57/45.94 square(mark(X)) -> square(X) 134.57/45.94 square(active(X)) -> square(X) 134.57/45.94 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (90) UsableRulesProof (EQUIVALENT) 134.57/45.94 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (91) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 FROM(active(X)) -> FROM(X) 134.57/45.94 FROM(mark(X)) -> FROM(X) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (92) QReductionProof (EQUIVALENT) 134.57/45.94 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 134.57/45.94 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (93) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 FROM(active(X)) -> FROM(X) 134.57/45.94 FROM(mark(X)) -> FROM(X) 134.57/45.94 134.57/45.94 R is empty. 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (94) QDPSizeChangeProof (EQUIVALENT) 134.57/45.94 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. 134.57/45.94 134.57/45.94 From the DPs we obtained the following set of size-change graphs: 134.57/45.94 *FROM(active(X)) -> FROM(X) 134.57/45.94 The graph contains the following edges 1 > 1 134.57/45.94 134.57/45.94 134.57/45.94 *FROM(mark(X)) -> FROM(X) 134.57/45.94 The graph contains the following edges 1 > 1 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (95) 134.57/45.94 YES 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (96) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 134.57/45.94 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.94 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.94 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.94 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 MARK(rcons(X1, X2)) -> ACTIVE(rcons(mark(X1), mark(X2))) 134.57/45.94 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(from(X)) -> MARK(X) 134.57/45.94 MARK(s(X)) -> ACTIVE(s(mark(X))) 134.57/45.94 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.94 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(s(X)) -> MARK(X) 134.57/45.94 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(cons2(X1, X2)) -> ACTIVE(cons2(X1, mark(X2))) 134.57/45.94 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.94 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(posrecip(X)) -> ACTIVE(posrecip(mark(X))) 134.57/45.94 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.94 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.94 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.94 ACTIVE(square(X)) -> MARK(times(X, X)) 134.57/45.94 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.94 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(posrecip(X)) -> MARK(X) 134.57/45.94 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(negrecip(X)) -> ACTIVE(negrecip(mark(X))) 134.57/45.94 MARK(negrecip(X)) -> MARK(X) 134.57/45.94 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.94 MARK(pi(X)) -> MARK(X) 134.57/45.94 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.94 MARK(square(X)) -> MARK(X) 134.57/45.94 134.57/45.94 The TRS R consists of the following rules: 134.57/45.94 134.57/45.94 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.94 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.94 active(plus(0, Y)) -> mark(Y) 134.57/45.94 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.94 active(times(0, Y)) -> mark(0) 134.57/45.94 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.94 active(square(X)) -> mark(times(X, X)) 134.57/45.94 mark(from(X)) -> active(from(mark(X))) 134.57/45.94 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.94 mark(s(X)) -> active(s(mark(X))) 134.57/45.94 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.94 mark(0) -> active(0) 134.57/45.94 mark(rnil) -> active(rnil) 134.57/45.94 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.94 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.94 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.94 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.94 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.94 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.94 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.94 mark(square(X)) -> active(square(mark(X))) 134.57/45.94 from(mark(X)) -> from(X) 134.57/45.94 from(active(X)) -> from(X) 134.57/45.94 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.94 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.94 s(mark(X)) -> s(X) 134.57/45.94 s(active(X)) -> s(X) 134.57/45.94 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.94 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.94 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.94 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.94 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.94 posrecip(mark(X)) -> posrecip(X) 134.57/45.94 posrecip(active(X)) -> posrecip(X) 134.57/45.94 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 negrecip(mark(X)) -> negrecip(X) 134.57/45.94 negrecip(active(X)) -> negrecip(X) 134.57/45.94 pi(mark(X)) -> pi(X) 134.57/45.94 pi(active(X)) -> pi(X) 134.57/45.94 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.94 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.94 times(mark(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.94 times(active(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, active(X2)) -> times(X1, X2) 134.57/45.94 square(mark(X)) -> square(X) 134.57/45.94 square(active(X)) -> square(X) 134.57/45.94 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (97) QDPQMonotonicMRRProof (EQUIVALENT) 134.57/45.94 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 134.57/45.94 134.57/45.94 Strictly oriented dependency pairs: 134.57/45.94 134.57/45.94 MARK(rcons(X1, X2)) -> ACTIVE(rcons(mark(X1), mark(X2))) 134.57/45.94 MARK(s(X)) -> ACTIVE(s(mark(X))) 134.57/45.94 MARK(cons2(X1, X2)) -> ACTIVE(cons2(X1, mark(X2))) 134.57/45.94 MARK(negrecip(X)) -> ACTIVE(negrecip(mark(X))) 134.57/45.94 134.57/45.94 134.57/45.94 Used ordering: Polynomial interpretation [POLO]: 134.57/45.94 134.57/45.94 POL(0) = 0 134.57/45.94 POL(2ndsneg(x_1, x_2)) = 1 134.57/45.94 POL(2ndspos(x_1, x_2)) = 1 134.57/45.94 POL(ACTIVE(x_1)) = x_1 134.57/45.94 POL(MARK(x_1)) = 1 134.57/45.94 POL(active(x_1)) = 0 134.57/45.94 POL(cons(x_1, x_2)) = 1 134.57/45.94 POL(cons2(x_1, x_2)) = 0 134.57/45.94 POL(from(x_1)) = 1 134.57/45.94 POL(mark(x_1)) = 0 134.57/45.94 POL(negrecip(x_1)) = 0 134.57/45.94 POL(pi(x_1)) = 1 134.57/45.94 POL(plus(x_1, x_2)) = 1 134.57/45.94 POL(posrecip(x_1)) = 1 134.57/45.94 POL(rcons(x_1, x_2)) = 0 134.57/45.94 POL(rnil) = 0 134.57/45.94 POL(s(x_1)) = 0 134.57/45.94 POL(square(x_1)) = 1 134.57/45.94 POL(times(x_1, x_2)) = 1 134.57/45.94 134.57/45.94 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (98) 134.57/45.94 Obligation: 134.57/45.94 Q DP problem: 134.57/45.94 The TRS P consists of the following rules: 134.57/45.94 134.57/45.94 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 134.57/45.94 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.94 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.94 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.94 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(from(X)) -> MARK(X) 134.57/45.94 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.94 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(s(X)) -> MARK(X) 134.57/45.94 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.94 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.94 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(posrecip(X)) -> ACTIVE(posrecip(mark(X))) 134.57/45.94 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.94 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.94 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.94 ACTIVE(square(X)) -> MARK(times(X, X)) 134.57/45.94 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.94 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(posrecip(X)) -> MARK(X) 134.57/45.94 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(negrecip(X)) -> MARK(X) 134.57/45.94 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.94 MARK(pi(X)) -> MARK(X) 134.57/45.94 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.94 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.94 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.94 MARK(square(X)) -> MARK(X) 134.57/45.94 134.57/45.94 The TRS R consists of the following rules: 134.57/45.94 134.57/45.94 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.94 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.94 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.94 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.94 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.94 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.94 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.94 active(plus(0, Y)) -> mark(Y) 134.57/45.94 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.94 active(times(0, Y)) -> mark(0) 134.57/45.94 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.94 active(square(X)) -> mark(times(X, X)) 134.57/45.94 mark(from(X)) -> active(from(mark(X))) 134.57/45.94 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.94 mark(s(X)) -> active(s(mark(X))) 134.57/45.94 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.94 mark(0) -> active(0) 134.57/45.94 mark(rnil) -> active(rnil) 134.57/45.94 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.94 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.94 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.94 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.94 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.94 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.94 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.94 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.94 mark(square(X)) -> active(square(mark(X))) 134.57/45.94 from(mark(X)) -> from(X) 134.57/45.94 from(active(X)) -> from(X) 134.57/45.94 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.94 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.94 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.94 s(mark(X)) -> s(X) 134.57/45.94 s(active(X)) -> s(X) 134.57/45.94 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.94 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.94 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.94 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.94 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.94 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.94 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.94 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.94 posrecip(mark(X)) -> posrecip(X) 134.57/45.94 posrecip(active(X)) -> posrecip(X) 134.57/45.94 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.94 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.94 negrecip(mark(X)) -> negrecip(X) 134.57/45.94 negrecip(active(X)) -> negrecip(X) 134.57/45.94 pi(mark(X)) -> pi(X) 134.57/45.94 pi(active(X)) -> pi(X) 134.57/45.94 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.94 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.94 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.94 times(mark(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.94 times(active(X1), X2) -> times(X1, X2) 134.57/45.94 times(X1, active(X2)) -> times(X1, X2) 134.57/45.94 square(mark(X)) -> square(X) 134.57/45.94 square(active(X)) -> square(X) 134.57/45.94 134.57/45.94 The set Q consists of the following terms: 134.57/45.94 134.57/45.94 active(from(x0)) 134.57/45.94 active(2ndspos(0, x0)) 134.57/45.94 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(2ndsneg(0, x0)) 134.57/45.94 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.94 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.94 active(pi(x0)) 134.57/45.94 active(plus(0, x0)) 134.57/45.94 active(plus(s(x0), x1)) 134.57/45.94 active(times(0, x0)) 134.57/45.94 active(times(s(x0), x1)) 134.57/45.94 active(square(x0)) 134.57/45.94 mark(from(x0)) 134.57/45.94 mark(cons(x0, x1)) 134.57/45.94 mark(s(x0)) 134.57/45.94 mark(2ndspos(x0, x1)) 134.57/45.94 mark(0) 134.57/45.94 mark(rnil) 134.57/45.94 mark(cons2(x0, x1)) 134.57/45.94 mark(rcons(x0, x1)) 134.57/45.94 mark(posrecip(x0)) 134.57/45.94 mark(2ndsneg(x0, x1)) 134.57/45.94 mark(negrecip(x0)) 134.57/45.94 mark(pi(x0)) 134.57/45.94 mark(plus(x0, x1)) 134.57/45.94 mark(times(x0, x1)) 134.57/45.94 mark(square(x0)) 134.57/45.94 from(mark(x0)) 134.57/45.94 from(active(x0)) 134.57/45.94 cons(mark(x0), x1) 134.57/45.94 cons(x0, mark(x1)) 134.57/45.94 cons(active(x0), x1) 134.57/45.94 cons(x0, active(x1)) 134.57/45.94 s(mark(x0)) 134.57/45.94 s(active(x0)) 134.57/45.94 2ndspos(mark(x0), x1) 134.57/45.94 2ndspos(x0, mark(x1)) 134.57/45.94 2ndspos(active(x0), x1) 134.57/45.94 2ndspos(x0, active(x1)) 134.57/45.94 cons2(mark(x0), x1) 134.57/45.94 cons2(x0, mark(x1)) 134.57/45.94 cons2(active(x0), x1) 134.57/45.94 cons2(x0, active(x1)) 134.57/45.94 rcons(mark(x0), x1) 134.57/45.94 rcons(x0, mark(x1)) 134.57/45.94 rcons(active(x0), x1) 134.57/45.94 rcons(x0, active(x1)) 134.57/45.94 posrecip(mark(x0)) 134.57/45.94 posrecip(active(x0)) 134.57/45.94 2ndsneg(mark(x0), x1) 134.57/45.94 2ndsneg(x0, mark(x1)) 134.57/45.94 2ndsneg(active(x0), x1) 134.57/45.94 2ndsneg(x0, active(x1)) 134.57/45.94 negrecip(mark(x0)) 134.57/45.94 negrecip(active(x0)) 134.57/45.94 pi(mark(x0)) 134.57/45.94 pi(active(x0)) 134.57/45.94 plus(mark(x0), x1) 134.57/45.94 plus(x0, mark(x1)) 134.57/45.94 plus(active(x0), x1) 134.57/45.94 plus(x0, active(x1)) 134.57/45.94 times(mark(x0), x1) 134.57/45.94 times(x0, mark(x1)) 134.57/45.94 times(active(x0), x1) 134.57/45.94 times(x0, active(x1)) 134.57/45.94 square(mark(x0)) 134.57/45.94 square(active(x0)) 134.57/45.94 134.57/45.94 We have to consider all minimal (P,Q,R)-chains. 134.57/45.94 ---------------------------------------- 134.57/45.94 134.57/45.94 (99) QDPOrderProof (EQUIVALENT) 134.57/45.94 We use the reduction pair processor [LPAR04,JAR06]. 134.57/45.94 134.57/45.94 134.57/45.94 The following pairs can be oriented strictly and are deleted. 134.57/45.94 134.57/45.94 MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) 134.57/45.94 MARK(posrecip(X)) -> ACTIVE(posrecip(mark(X))) 134.57/45.94 The remaining pairs can at least be oriented weakly. 134.57/45.94 Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: 134.57/45.94 134.57/45.94 POL( 2ndsneg_2(x_1, x_2) ) = 2 134.57/45.94 POL( ACTIVE_1(x_1) ) = x_1 134.57/45.94 POL( 2ndspos_2(x_1, x_2) ) = 2 134.57/45.94 POL( cons_2(x_1, x_2) ) = max{0, -2} 134.57/45.94 POL( from_1(x_1) ) = 2 134.57/45.94 POL( pi_1(x_1) ) = 2 134.57/45.94 POL( plus_2(x_1, x_2) ) = 2 134.57/45.94 POL( posrecip_1(x_1) ) = 1 134.57/45.94 POL( square_1(x_1) ) = 2 134.57/45.94 POL( times_2(x_1, x_2) ) = 2 134.57/45.94 POL( mark_1(x_1) ) = 2 134.57/45.94 POL( active_1(x_1) ) = x_1 + 2 134.57/45.94 POL( s_1(x_1) ) = 2 134.57/45.94 POL( cons2_2(x_1, x_2) ) = max{0, x_1 - 2} 134.57/45.94 POL( rcons_2(x_1, x_2) ) = 2x_1 + 2 134.57/45.94 POL( negrecip_1(x_1) ) = 2 134.57/45.94 POL( 0 ) = 1 134.57/45.94 POL( rnil ) = 0 134.57/45.94 POL( MARK_1(x_1) ) = 2 134.57/45.94 134.57/45.94 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.57/45.95 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 134.57/45.95 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (100) 134.57/45.95 Obligation: 134.57/45.95 Q DP problem: 134.57/45.95 The TRS P consists of the following rules: 134.57/45.95 134.57/45.95 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.95 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> MARK(X) 134.57/45.95 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(s(X)) -> MARK(X) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.95 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.95 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.95 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(square(X)) -> MARK(times(X, X)) 134.57/45.95 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(posrecip(X)) -> MARK(X) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(negrecip(X)) -> MARK(X) 134.57/45.95 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.95 MARK(pi(X)) -> MARK(X) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.95 MARK(square(X)) -> MARK(X) 134.57/45.95 134.57/45.95 The TRS R consists of the following rules: 134.57/45.95 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 134.57/45.95 The set Q consists of the following terms: 134.57/45.95 134.57/45.95 active(from(x0)) 134.57/45.95 active(2ndspos(0, x0)) 134.57/45.95 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(2ndsneg(0, x0)) 134.57/45.95 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(pi(x0)) 134.57/45.95 active(plus(0, x0)) 134.57/45.95 active(plus(s(x0), x1)) 134.57/45.95 active(times(0, x0)) 134.57/45.95 active(times(s(x0), x1)) 134.57/45.95 active(square(x0)) 134.57/45.95 mark(from(x0)) 134.57/45.95 mark(cons(x0, x1)) 134.57/45.95 mark(s(x0)) 134.57/45.95 mark(2ndspos(x0, x1)) 134.57/45.95 mark(0) 134.57/45.95 mark(rnil) 134.57/45.95 mark(cons2(x0, x1)) 134.57/45.95 mark(rcons(x0, x1)) 134.57/45.95 mark(posrecip(x0)) 134.57/45.95 mark(2ndsneg(x0, x1)) 134.57/45.95 mark(negrecip(x0)) 134.57/45.95 mark(pi(x0)) 134.57/45.95 mark(plus(x0, x1)) 134.57/45.95 mark(times(x0, x1)) 134.57/45.95 mark(square(x0)) 134.57/45.95 from(mark(x0)) 134.57/45.95 from(active(x0)) 134.57/45.95 cons(mark(x0), x1) 134.57/45.95 cons(x0, mark(x1)) 134.57/45.95 cons(active(x0), x1) 134.57/45.95 cons(x0, active(x1)) 134.57/45.95 s(mark(x0)) 134.57/45.95 s(active(x0)) 134.57/45.95 2ndspos(mark(x0), x1) 134.57/45.95 2ndspos(x0, mark(x1)) 134.57/45.95 2ndspos(active(x0), x1) 134.57/45.95 2ndspos(x0, active(x1)) 134.57/45.95 cons2(mark(x0), x1) 134.57/45.95 cons2(x0, mark(x1)) 134.57/45.95 cons2(active(x0), x1) 134.57/45.95 cons2(x0, active(x1)) 134.57/45.95 rcons(mark(x0), x1) 134.57/45.95 rcons(x0, mark(x1)) 134.57/45.95 rcons(active(x0), x1) 134.57/45.95 rcons(x0, active(x1)) 134.57/45.95 posrecip(mark(x0)) 134.57/45.95 posrecip(active(x0)) 134.57/45.95 2ndsneg(mark(x0), x1) 134.57/45.95 2ndsneg(x0, mark(x1)) 134.57/45.95 2ndsneg(active(x0), x1) 134.57/45.95 2ndsneg(x0, active(x1)) 134.57/45.95 negrecip(mark(x0)) 134.57/45.95 negrecip(active(x0)) 134.57/45.95 pi(mark(x0)) 134.57/45.95 pi(active(x0)) 134.57/45.95 plus(mark(x0), x1) 134.57/45.95 plus(x0, mark(x1)) 134.57/45.95 plus(active(x0), x1) 134.57/45.95 plus(x0, active(x1)) 134.57/45.95 times(mark(x0), x1) 134.57/45.95 times(x0, mark(x1)) 134.57/45.95 times(active(x0), x1) 134.57/45.95 times(x0, active(x1)) 134.57/45.95 square(mark(x0)) 134.57/45.95 square(active(x0)) 134.57/45.95 134.57/45.95 We have to consider all minimal (P,Q,R)-chains. 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (101) QDPOrderProof (EQUIVALENT) 134.57/45.95 We use the reduction pair processor [LPAR04,JAR06]. 134.57/45.95 134.57/45.95 134.57/45.95 The following pairs can be oriented strictly and are deleted. 134.57/45.95 134.57/45.95 MARK(square(X)) -> MARK(X) 134.57/45.95 The remaining pairs can at least be oriented weakly. 134.57/45.95 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons2(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(pi(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(0) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(times(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(square(x_1)) = [[1A]] + [[1A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(active(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rnil) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 134.57/45.95 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.57/45.95 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 134.57/45.95 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (102) 134.57/45.95 Obligation: 134.57/45.95 Q DP problem: 134.57/45.95 The TRS P consists of the following rules: 134.57/45.95 134.57/45.95 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.95 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> MARK(X) 134.57/45.95 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(s(X)) -> MARK(X) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.95 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.95 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.95 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(square(X)) -> MARK(times(X, X)) 134.57/45.95 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(posrecip(X)) -> MARK(X) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(negrecip(X)) -> MARK(X) 134.57/45.95 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.95 MARK(pi(X)) -> MARK(X) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.95 134.57/45.95 The TRS R consists of the following rules: 134.57/45.95 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 134.57/45.95 The set Q consists of the following terms: 134.57/45.95 134.57/45.95 active(from(x0)) 134.57/45.95 active(2ndspos(0, x0)) 134.57/45.95 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(2ndsneg(0, x0)) 134.57/45.95 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(pi(x0)) 134.57/45.95 active(plus(0, x0)) 134.57/45.95 active(plus(s(x0), x1)) 134.57/45.95 active(times(0, x0)) 134.57/45.95 active(times(s(x0), x1)) 134.57/45.95 active(square(x0)) 134.57/45.95 mark(from(x0)) 134.57/45.95 mark(cons(x0, x1)) 134.57/45.95 mark(s(x0)) 134.57/45.95 mark(2ndspos(x0, x1)) 134.57/45.95 mark(0) 134.57/45.95 mark(rnil) 134.57/45.95 mark(cons2(x0, x1)) 134.57/45.95 mark(rcons(x0, x1)) 134.57/45.95 mark(posrecip(x0)) 134.57/45.95 mark(2ndsneg(x0, x1)) 134.57/45.95 mark(negrecip(x0)) 134.57/45.95 mark(pi(x0)) 134.57/45.95 mark(plus(x0, x1)) 134.57/45.95 mark(times(x0, x1)) 134.57/45.95 mark(square(x0)) 134.57/45.95 from(mark(x0)) 134.57/45.95 from(active(x0)) 134.57/45.95 cons(mark(x0), x1) 134.57/45.95 cons(x0, mark(x1)) 134.57/45.95 cons(active(x0), x1) 134.57/45.95 cons(x0, active(x1)) 134.57/45.95 s(mark(x0)) 134.57/45.95 s(active(x0)) 134.57/45.95 2ndspos(mark(x0), x1) 134.57/45.95 2ndspos(x0, mark(x1)) 134.57/45.95 2ndspos(active(x0), x1) 134.57/45.95 2ndspos(x0, active(x1)) 134.57/45.95 cons2(mark(x0), x1) 134.57/45.95 cons2(x0, mark(x1)) 134.57/45.95 cons2(active(x0), x1) 134.57/45.95 cons2(x0, active(x1)) 134.57/45.95 rcons(mark(x0), x1) 134.57/45.95 rcons(x0, mark(x1)) 134.57/45.95 rcons(active(x0), x1) 134.57/45.95 rcons(x0, active(x1)) 134.57/45.95 posrecip(mark(x0)) 134.57/45.95 posrecip(active(x0)) 134.57/45.95 2ndsneg(mark(x0), x1) 134.57/45.95 2ndsneg(x0, mark(x1)) 134.57/45.95 2ndsneg(active(x0), x1) 134.57/45.95 2ndsneg(x0, active(x1)) 134.57/45.95 negrecip(mark(x0)) 134.57/45.95 negrecip(active(x0)) 134.57/45.95 pi(mark(x0)) 134.57/45.95 pi(active(x0)) 134.57/45.95 plus(mark(x0), x1) 134.57/45.95 plus(x0, mark(x1)) 134.57/45.95 plus(active(x0), x1) 134.57/45.95 plus(x0, active(x1)) 134.57/45.95 times(mark(x0), x1) 134.57/45.95 times(x0, mark(x1)) 134.57/45.95 times(active(x0), x1) 134.57/45.95 times(x0, active(x1)) 134.57/45.95 square(mark(x0)) 134.57/45.95 square(active(x0)) 134.57/45.95 134.57/45.95 We have to consider all minimal (P,Q,R)-chains. 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (103) QDPOrderProof (EQUIVALENT) 134.57/45.95 We use the reduction pair processor [LPAR04,JAR06]. 134.57/45.95 134.57/45.95 134.57/45.95 The following pairs can be oriented strictly and are deleted. 134.57/45.95 134.57/45.95 MARK(pi(X)) -> MARK(X) 134.57/45.95 The remaining pairs can at least be oriented weakly. 134.57/45.95 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndspos(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(pi(x_1)) = [[1A]] + [[1A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(0) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rnil) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 134.57/45.95 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.57/45.95 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 134.57/45.95 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (104) 134.57/45.95 Obligation: 134.57/45.95 Q DP problem: 134.57/45.95 The TRS P consists of the following rules: 134.57/45.95 134.57/45.95 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.95 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> MARK(X) 134.57/45.95 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(s(X)) -> MARK(X) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.95 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.95 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.95 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(square(X)) -> MARK(times(X, X)) 134.57/45.95 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(posrecip(X)) -> MARK(X) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(negrecip(X)) -> MARK(X) 134.57/45.95 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.95 134.57/45.95 The TRS R consists of the following rules: 134.57/45.95 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 134.57/45.95 The set Q consists of the following terms: 134.57/45.95 134.57/45.95 active(from(x0)) 134.57/45.95 active(2ndspos(0, x0)) 134.57/45.95 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(2ndsneg(0, x0)) 134.57/45.95 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(pi(x0)) 134.57/45.95 active(plus(0, x0)) 134.57/45.95 active(plus(s(x0), x1)) 134.57/45.95 active(times(0, x0)) 134.57/45.95 active(times(s(x0), x1)) 134.57/45.95 active(square(x0)) 134.57/45.95 mark(from(x0)) 134.57/45.95 mark(cons(x0, x1)) 134.57/45.95 mark(s(x0)) 134.57/45.95 mark(2ndspos(x0, x1)) 134.57/45.95 mark(0) 134.57/45.95 mark(rnil) 134.57/45.95 mark(cons2(x0, x1)) 134.57/45.95 mark(rcons(x0, x1)) 134.57/45.95 mark(posrecip(x0)) 134.57/45.95 mark(2ndsneg(x0, x1)) 134.57/45.95 mark(negrecip(x0)) 134.57/45.95 mark(pi(x0)) 134.57/45.95 mark(plus(x0, x1)) 134.57/45.95 mark(times(x0, x1)) 134.57/45.95 mark(square(x0)) 134.57/45.95 from(mark(x0)) 134.57/45.95 from(active(x0)) 134.57/45.95 cons(mark(x0), x1) 134.57/45.95 cons(x0, mark(x1)) 134.57/45.95 cons(active(x0), x1) 134.57/45.95 cons(x0, active(x1)) 134.57/45.95 s(mark(x0)) 134.57/45.95 s(active(x0)) 134.57/45.95 2ndspos(mark(x0), x1) 134.57/45.95 2ndspos(x0, mark(x1)) 134.57/45.95 2ndspos(active(x0), x1) 134.57/45.95 2ndspos(x0, active(x1)) 134.57/45.95 cons2(mark(x0), x1) 134.57/45.95 cons2(x0, mark(x1)) 134.57/45.95 cons2(active(x0), x1) 134.57/45.95 cons2(x0, active(x1)) 134.57/45.95 rcons(mark(x0), x1) 134.57/45.95 rcons(x0, mark(x1)) 134.57/45.95 rcons(active(x0), x1) 134.57/45.95 rcons(x0, active(x1)) 134.57/45.95 posrecip(mark(x0)) 134.57/45.95 posrecip(active(x0)) 134.57/45.95 2ndsneg(mark(x0), x1) 134.57/45.95 2ndsneg(x0, mark(x1)) 134.57/45.95 2ndsneg(active(x0), x1) 134.57/45.95 2ndsneg(x0, active(x1)) 134.57/45.95 negrecip(mark(x0)) 134.57/45.95 negrecip(active(x0)) 134.57/45.95 pi(mark(x0)) 134.57/45.95 pi(active(x0)) 134.57/45.95 plus(mark(x0), x1) 134.57/45.95 plus(x0, mark(x1)) 134.57/45.95 plus(active(x0), x1) 134.57/45.95 plus(x0, active(x1)) 134.57/45.95 times(mark(x0), x1) 134.57/45.95 times(x0, mark(x1)) 134.57/45.95 times(active(x0), x1) 134.57/45.95 times(x0, active(x1)) 134.57/45.95 square(mark(x0)) 134.57/45.95 square(active(x0)) 134.57/45.95 134.57/45.95 We have to consider all minimal (P,Q,R)-chains. 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (105) QDPOrderProof (EQUIVALENT) 134.57/45.95 We use the reduction pair processor [LPAR04,JAR06]. 134.57/45.95 134.57/45.95 134.57/45.95 The following pairs can be oriented strictly and are deleted. 134.57/45.95 134.57/45.95 ACTIVE(square(X)) -> MARK(times(X, X)) 134.57/45.95 The remaining pairs can at least be oriented weakly. 134.57/45.95 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(ACTIVE(x_1)) = [[1A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(pi(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(0) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(square(x_1)) = [[2A]] + [[1A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(active(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rnil) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 134.57/45.95 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.57/45.95 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 134.57/45.95 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (106) 134.57/45.95 Obligation: 134.57/45.95 Q DP problem: 134.57/45.95 The TRS P consists of the following rules: 134.57/45.95 134.57/45.95 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.95 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> MARK(X) 134.57/45.95 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(s(X)) -> MARK(X) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.95 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.95 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.95 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(posrecip(X)) -> MARK(X) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(negrecip(X)) -> MARK(X) 134.57/45.95 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.95 134.57/45.95 The TRS R consists of the following rules: 134.57/45.95 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 134.57/45.95 The set Q consists of the following terms: 134.57/45.95 134.57/45.95 active(from(x0)) 134.57/45.95 active(2ndspos(0, x0)) 134.57/45.95 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(2ndsneg(0, x0)) 134.57/45.95 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(pi(x0)) 134.57/45.95 active(plus(0, x0)) 134.57/45.95 active(plus(s(x0), x1)) 134.57/45.95 active(times(0, x0)) 134.57/45.95 active(times(s(x0), x1)) 134.57/45.95 active(square(x0)) 134.57/45.95 mark(from(x0)) 134.57/45.95 mark(cons(x0, x1)) 134.57/45.95 mark(s(x0)) 134.57/45.95 mark(2ndspos(x0, x1)) 134.57/45.95 mark(0) 134.57/45.95 mark(rnil) 134.57/45.95 mark(cons2(x0, x1)) 134.57/45.95 mark(rcons(x0, x1)) 134.57/45.95 mark(posrecip(x0)) 134.57/45.95 mark(2ndsneg(x0, x1)) 134.57/45.95 mark(negrecip(x0)) 134.57/45.95 mark(pi(x0)) 134.57/45.95 mark(plus(x0, x1)) 134.57/45.95 mark(times(x0, x1)) 134.57/45.95 mark(square(x0)) 134.57/45.95 from(mark(x0)) 134.57/45.95 from(active(x0)) 134.57/45.95 cons(mark(x0), x1) 134.57/45.95 cons(x0, mark(x1)) 134.57/45.95 cons(active(x0), x1) 134.57/45.95 cons(x0, active(x1)) 134.57/45.95 s(mark(x0)) 134.57/45.95 s(active(x0)) 134.57/45.95 2ndspos(mark(x0), x1) 134.57/45.95 2ndspos(x0, mark(x1)) 134.57/45.95 2ndspos(active(x0), x1) 134.57/45.95 2ndspos(x0, active(x1)) 134.57/45.95 cons2(mark(x0), x1) 134.57/45.95 cons2(x0, mark(x1)) 134.57/45.95 cons2(active(x0), x1) 134.57/45.95 cons2(x0, active(x1)) 134.57/45.95 rcons(mark(x0), x1) 134.57/45.95 rcons(x0, mark(x1)) 134.57/45.95 rcons(active(x0), x1) 134.57/45.95 rcons(x0, active(x1)) 134.57/45.95 posrecip(mark(x0)) 134.57/45.95 posrecip(active(x0)) 134.57/45.95 2ndsneg(mark(x0), x1) 134.57/45.95 2ndsneg(x0, mark(x1)) 134.57/45.95 2ndsneg(active(x0), x1) 134.57/45.95 2ndsneg(x0, active(x1)) 134.57/45.95 negrecip(mark(x0)) 134.57/45.95 negrecip(active(x0)) 134.57/45.95 pi(mark(x0)) 134.57/45.95 pi(active(x0)) 134.57/45.95 plus(mark(x0), x1) 134.57/45.95 plus(x0, mark(x1)) 134.57/45.95 plus(active(x0), x1) 134.57/45.95 plus(x0, active(x1)) 134.57/45.95 times(mark(x0), x1) 134.57/45.95 times(x0, mark(x1)) 134.57/45.95 times(active(x0), x1) 134.57/45.95 times(x0, active(x1)) 134.57/45.95 square(mark(x0)) 134.57/45.95 square(active(x0)) 134.57/45.95 134.57/45.95 We have to consider all minimal (P,Q,R)-chains. 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (107) QDPQMonotonicMRRProof (EQUIVALENT) 134.57/45.95 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 134.57/45.95 134.57/45.95 Strictly oriented dependency pairs: 134.57/45.95 134.57/45.95 MARK(square(X)) -> ACTIVE(square(mark(X))) 134.57/45.95 134.57/45.95 134.57/45.95 Used ordering: Polynomial interpretation [POLO]: 134.57/45.95 134.57/45.95 POL(0) = 0 134.57/45.95 POL(2ndsneg(x_1, x_2)) = 1 134.57/45.95 POL(2ndspos(x_1, x_2)) = 1 134.57/45.95 POL(ACTIVE(x_1)) = 2*x_1 134.57/45.95 POL(MARK(x_1)) = 2 134.57/45.95 POL(active(x_1)) = 0 134.57/45.95 POL(cons(x_1, x_2)) = 0 134.57/45.95 POL(cons2(x_1, x_2)) = 0 134.57/45.95 POL(from(x_1)) = 1 134.57/45.95 POL(mark(x_1)) = 0 134.57/45.95 POL(negrecip(x_1)) = 0 134.57/45.95 POL(pi(x_1)) = 1 134.57/45.95 POL(plus(x_1, x_2)) = 1 134.57/45.95 POL(posrecip(x_1)) = 0 134.57/45.95 POL(rcons(x_1, x_2)) = 0 134.57/45.95 POL(rnil) = 0 134.57/45.95 POL(s(x_1)) = 0 134.57/45.95 POL(square(x_1)) = 0 134.57/45.95 POL(times(x_1, x_2)) = 1 134.57/45.95 134.57/45.95 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (108) 134.57/45.95 Obligation: 134.57/45.95 Q DP problem: 134.57/45.95 The TRS P consists of the following rules: 134.57/45.95 134.57/45.95 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.95 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> MARK(X) 134.57/45.95 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(s(X)) -> MARK(X) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.95 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.95 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.95 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(posrecip(X)) -> MARK(X) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(negrecip(X)) -> MARK(X) 134.57/45.95 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.95 134.57/45.95 The TRS R consists of the following rules: 134.57/45.95 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 134.57/45.95 The set Q consists of the following terms: 134.57/45.95 134.57/45.95 active(from(x0)) 134.57/45.95 active(2ndspos(0, x0)) 134.57/45.95 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(2ndsneg(0, x0)) 134.57/45.95 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(pi(x0)) 134.57/45.95 active(plus(0, x0)) 134.57/45.95 active(plus(s(x0), x1)) 134.57/45.95 active(times(0, x0)) 134.57/45.95 active(times(s(x0), x1)) 134.57/45.95 active(square(x0)) 134.57/45.95 mark(from(x0)) 134.57/45.95 mark(cons(x0, x1)) 134.57/45.95 mark(s(x0)) 134.57/45.95 mark(2ndspos(x0, x1)) 134.57/45.95 mark(0) 134.57/45.95 mark(rnil) 134.57/45.95 mark(cons2(x0, x1)) 134.57/45.95 mark(rcons(x0, x1)) 134.57/45.95 mark(posrecip(x0)) 134.57/45.95 mark(2ndsneg(x0, x1)) 134.57/45.95 mark(negrecip(x0)) 134.57/45.95 mark(pi(x0)) 134.57/45.95 mark(plus(x0, x1)) 134.57/45.95 mark(times(x0, x1)) 134.57/45.95 mark(square(x0)) 134.57/45.95 from(mark(x0)) 134.57/45.95 from(active(x0)) 134.57/45.95 cons(mark(x0), x1) 134.57/45.95 cons(x0, mark(x1)) 134.57/45.95 cons(active(x0), x1) 134.57/45.95 cons(x0, active(x1)) 134.57/45.95 s(mark(x0)) 134.57/45.95 s(active(x0)) 134.57/45.95 2ndspos(mark(x0), x1) 134.57/45.95 2ndspos(x0, mark(x1)) 134.57/45.95 2ndspos(active(x0), x1) 134.57/45.95 2ndspos(x0, active(x1)) 134.57/45.95 cons2(mark(x0), x1) 134.57/45.95 cons2(x0, mark(x1)) 134.57/45.95 cons2(active(x0), x1) 134.57/45.95 cons2(x0, active(x1)) 134.57/45.95 rcons(mark(x0), x1) 134.57/45.95 rcons(x0, mark(x1)) 134.57/45.95 rcons(active(x0), x1) 134.57/45.95 rcons(x0, active(x1)) 134.57/45.95 posrecip(mark(x0)) 134.57/45.95 posrecip(active(x0)) 134.57/45.95 2ndsneg(mark(x0), x1) 134.57/45.95 2ndsneg(x0, mark(x1)) 134.57/45.95 2ndsneg(active(x0), x1) 134.57/45.95 2ndsneg(x0, active(x1)) 134.57/45.95 negrecip(mark(x0)) 134.57/45.95 negrecip(active(x0)) 134.57/45.95 pi(mark(x0)) 134.57/45.95 pi(active(x0)) 134.57/45.95 plus(mark(x0), x1) 134.57/45.95 plus(x0, mark(x1)) 134.57/45.95 plus(active(x0), x1) 134.57/45.95 plus(x0, active(x1)) 134.57/45.95 times(mark(x0), x1) 134.57/45.95 times(x0, mark(x1)) 134.57/45.95 times(active(x0), x1) 134.57/45.95 times(x0, active(x1)) 134.57/45.95 square(mark(x0)) 134.57/45.95 square(active(x0)) 134.57/45.95 134.57/45.95 We have to consider all minimal (P,Q,R)-chains. 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (109) QDPOrderProof (EQUIVALENT) 134.57/45.95 We use the reduction pair processor [LPAR04,JAR06]. 134.57/45.95 134.57/45.95 134.57/45.95 The following pairs can be oriented strictly and are deleted. 134.57/45.95 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X1) 134.57/45.95 The remaining pairs can at least be oriented weakly. 134.57/45.95 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(ACTIVE(x_1)) = [[2A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(from(x_1)) = [[5A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(MARK(x_1)) = [[2A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(s(x_1)) = [[2A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndspos(x_1, x_2)) = [[4A]] + [[2A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndsneg(x_1, x_2)) = [[2A]] + [[2A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(pi(x_1)) = [[5A]] + [[2A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(0) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(active(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(square(x_1)) = [[1A]] + [[1A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rnil) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 134.57/45.95 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.57/45.95 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 134.57/45.95 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (110) 134.57/45.95 Obligation: 134.57/45.95 Q DP problem: 134.57/45.95 The TRS P consists of the following rules: 134.57/45.95 134.57/45.95 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.95 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> MARK(X) 134.57/45.95 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.95 MARK(s(X)) -> MARK(X) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.95 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.95 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.95 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(posrecip(X)) -> MARK(X) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(negrecip(X)) -> MARK(X) 134.57/45.95 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.95 134.57/45.95 The TRS R consists of the following rules: 134.57/45.95 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 134.57/45.95 The set Q consists of the following terms: 134.57/45.95 134.57/45.95 active(from(x0)) 134.57/45.95 active(2ndspos(0, x0)) 134.57/45.95 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(2ndsneg(0, x0)) 134.57/45.95 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(pi(x0)) 134.57/45.95 active(plus(0, x0)) 134.57/45.95 active(plus(s(x0), x1)) 134.57/45.95 active(times(0, x0)) 134.57/45.95 active(times(s(x0), x1)) 134.57/45.95 active(square(x0)) 134.57/45.95 mark(from(x0)) 134.57/45.95 mark(cons(x0, x1)) 134.57/45.95 mark(s(x0)) 134.57/45.95 mark(2ndspos(x0, x1)) 134.57/45.95 mark(0) 134.57/45.95 mark(rnil) 134.57/45.95 mark(cons2(x0, x1)) 134.57/45.95 mark(rcons(x0, x1)) 134.57/45.95 mark(posrecip(x0)) 134.57/45.95 mark(2ndsneg(x0, x1)) 134.57/45.95 mark(negrecip(x0)) 134.57/45.95 mark(pi(x0)) 134.57/45.95 mark(plus(x0, x1)) 134.57/45.95 mark(times(x0, x1)) 134.57/45.95 mark(square(x0)) 134.57/45.95 from(mark(x0)) 134.57/45.95 from(active(x0)) 134.57/45.95 cons(mark(x0), x1) 134.57/45.95 cons(x0, mark(x1)) 134.57/45.95 cons(active(x0), x1) 134.57/45.95 cons(x0, active(x1)) 134.57/45.95 s(mark(x0)) 134.57/45.95 s(active(x0)) 134.57/45.95 2ndspos(mark(x0), x1) 134.57/45.95 2ndspos(x0, mark(x1)) 134.57/45.95 2ndspos(active(x0), x1) 134.57/45.95 2ndspos(x0, active(x1)) 134.57/45.95 cons2(mark(x0), x1) 134.57/45.95 cons2(x0, mark(x1)) 134.57/45.95 cons2(active(x0), x1) 134.57/45.95 cons2(x0, active(x1)) 134.57/45.95 rcons(mark(x0), x1) 134.57/45.95 rcons(x0, mark(x1)) 134.57/45.95 rcons(active(x0), x1) 134.57/45.95 rcons(x0, active(x1)) 134.57/45.95 posrecip(mark(x0)) 134.57/45.95 posrecip(active(x0)) 134.57/45.95 2ndsneg(mark(x0), x1) 134.57/45.95 2ndsneg(x0, mark(x1)) 134.57/45.95 2ndsneg(active(x0), x1) 134.57/45.95 2ndsneg(x0, active(x1)) 134.57/45.95 negrecip(mark(x0)) 134.57/45.95 negrecip(active(x0)) 134.57/45.95 pi(mark(x0)) 134.57/45.95 pi(active(x0)) 134.57/45.95 plus(mark(x0), x1) 134.57/45.95 plus(x0, mark(x1)) 134.57/45.95 plus(active(x0), x1) 134.57/45.95 plus(x0, active(x1)) 134.57/45.95 times(mark(x0), x1) 134.57/45.95 times(x0, mark(x1)) 134.57/45.95 times(active(x0), x1) 134.57/45.95 times(x0, active(x1)) 134.57/45.95 square(mark(x0)) 134.57/45.95 square(active(x0)) 134.57/45.95 134.57/45.95 We have to consider all minimal (P,Q,R)-chains. 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (111) QDPOrderProof (EQUIVALENT) 134.57/45.95 We use the reduction pair processor [LPAR04,JAR06]. 134.57/45.95 134.57/45.95 134.57/45.95 The following pairs can be oriented strictly and are deleted. 134.57/45.95 134.57/45.95 ACTIVE(pi(X)) -> MARK(2ndspos(X, from(0))) 134.57/45.95 The remaining pairs can at least be oriented weakly. 134.57/45.95 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(from(x_1)) = [[-I]] + [[1A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(cons2(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(pi(x_1)) = [[3A]] + [[1A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(0) = [[1A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(square(x_1)) = [[-I]] + [[1A]] * x_1 134.57/45.95 >>> 134.57/45.95 134.57/45.95 <<< 134.57/45.95 POL(rnil) = [[0A]] 134.57/45.95 >>> 134.57/45.95 134.57/45.95 134.57/45.95 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.57/45.95 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 134.57/45.95 134.57/45.95 ---------------------------------------- 134.57/45.95 134.57/45.95 (112) 134.57/45.95 Obligation: 134.57/45.95 Q DP problem: 134.57/45.95 The TRS P consists of the following rules: 134.57/45.95 134.57/45.95 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.95 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(from(X)) -> MARK(X) 134.57/45.95 MARK(s(X)) -> MARK(X) 134.57/45.95 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.95 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.95 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.95 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.95 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(posrecip(X)) -> MARK(X) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(negrecip(X)) -> MARK(X) 134.57/45.95 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.95 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.95 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.95 134.57/45.95 The TRS R consists of the following rules: 134.57/45.95 134.57/45.95 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.95 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.95 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.95 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.95 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.95 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.95 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.95 active(plus(0, Y)) -> mark(Y) 134.57/45.95 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.95 active(times(0, Y)) -> mark(0) 134.57/45.95 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.95 active(square(X)) -> mark(times(X, X)) 134.57/45.95 mark(from(X)) -> active(from(mark(X))) 134.57/45.95 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.95 mark(s(X)) -> active(s(mark(X))) 134.57/45.95 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.95 mark(0) -> active(0) 134.57/45.95 mark(rnil) -> active(rnil) 134.57/45.95 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.95 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.95 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.95 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.95 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.95 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.95 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.95 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.95 mark(square(X)) -> active(square(mark(X))) 134.57/45.95 from(mark(X)) -> from(X) 134.57/45.95 from(active(X)) -> from(X) 134.57/45.95 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.95 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.95 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.95 s(mark(X)) -> s(X) 134.57/45.95 s(active(X)) -> s(X) 134.57/45.95 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.95 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.95 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.95 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.95 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.95 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.95 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.95 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.95 posrecip(mark(X)) -> posrecip(X) 134.57/45.95 posrecip(active(X)) -> posrecip(X) 134.57/45.95 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.95 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.95 negrecip(mark(X)) -> negrecip(X) 134.57/45.95 negrecip(active(X)) -> negrecip(X) 134.57/45.95 pi(mark(X)) -> pi(X) 134.57/45.95 pi(active(X)) -> pi(X) 134.57/45.95 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.95 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.95 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.95 times(mark(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.95 times(active(X1), X2) -> times(X1, X2) 134.57/45.95 times(X1, active(X2)) -> times(X1, X2) 134.57/45.95 square(mark(X)) -> square(X) 134.57/45.95 square(active(X)) -> square(X) 134.57/45.95 134.57/45.95 The set Q consists of the following terms: 134.57/45.95 134.57/45.95 active(from(x0)) 134.57/45.95 active(2ndspos(0, x0)) 134.57/45.95 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(2ndsneg(0, x0)) 134.57/45.95 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.95 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.95 active(pi(x0)) 134.57/45.95 active(plus(0, x0)) 134.57/45.95 active(plus(s(x0), x1)) 134.57/45.96 active(times(0, x0)) 134.57/45.96 active(times(s(x0), x1)) 134.57/45.96 active(square(x0)) 134.57/45.96 mark(from(x0)) 134.57/45.96 mark(cons(x0, x1)) 134.57/45.96 mark(s(x0)) 134.57/45.96 mark(2ndspos(x0, x1)) 134.57/45.96 mark(0) 134.57/45.96 mark(rnil) 134.57/45.96 mark(cons2(x0, x1)) 134.57/45.96 mark(rcons(x0, x1)) 134.57/45.96 mark(posrecip(x0)) 134.57/45.96 mark(2ndsneg(x0, x1)) 134.57/45.96 mark(negrecip(x0)) 134.57/45.96 mark(pi(x0)) 134.57/45.96 mark(plus(x0, x1)) 134.57/45.96 mark(times(x0, x1)) 134.57/45.96 mark(square(x0)) 134.57/45.96 from(mark(x0)) 134.57/45.96 from(active(x0)) 134.57/45.96 cons(mark(x0), x1) 134.57/45.96 cons(x0, mark(x1)) 134.57/45.96 cons(active(x0), x1) 134.57/45.96 cons(x0, active(x1)) 134.57/45.96 s(mark(x0)) 134.57/45.96 s(active(x0)) 134.57/45.96 2ndspos(mark(x0), x1) 134.57/45.96 2ndspos(x0, mark(x1)) 134.57/45.96 2ndspos(active(x0), x1) 134.57/45.96 2ndspos(x0, active(x1)) 134.57/45.96 cons2(mark(x0), x1) 134.57/45.96 cons2(x0, mark(x1)) 134.57/45.96 cons2(active(x0), x1) 134.57/45.96 cons2(x0, active(x1)) 134.57/45.96 rcons(mark(x0), x1) 134.57/45.96 rcons(x0, mark(x1)) 134.57/45.96 rcons(active(x0), x1) 134.57/45.96 rcons(x0, active(x1)) 134.57/45.96 posrecip(mark(x0)) 134.57/45.96 posrecip(active(x0)) 134.57/45.96 2ndsneg(mark(x0), x1) 134.57/45.96 2ndsneg(x0, mark(x1)) 134.57/45.96 2ndsneg(active(x0), x1) 134.57/45.96 2ndsneg(x0, active(x1)) 134.57/45.96 negrecip(mark(x0)) 134.57/45.96 negrecip(active(x0)) 134.57/45.96 pi(mark(x0)) 134.57/45.96 pi(active(x0)) 134.57/45.96 plus(mark(x0), x1) 134.57/45.96 plus(x0, mark(x1)) 134.57/45.96 plus(active(x0), x1) 134.57/45.96 plus(x0, active(x1)) 134.57/45.96 times(mark(x0), x1) 134.57/45.96 times(x0, mark(x1)) 134.57/45.96 times(active(x0), x1) 134.57/45.96 times(x0, active(x1)) 134.57/45.96 square(mark(x0)) 134.57/45.96 square(active(x0)) 134.57/45.96 134.57/45.96 We have to consider all minimal (P,Q,R)-chains. 134.57/45.96 ---------------------------------------- 134.57/45.96 134.57/45.96 (113) QDPQMonotonicMRRProof (EQUIVALENT) 134.57/45.96 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 134.57/45.96 134.57/45.96 Strictly oriented dependency pairs: 134.57/45.96 134.57/45.96 MARK(pi(X)) -> ACTIVE(pi(mark(X))) 134.57/45.96 134.57/45.96 134.57/45.96 Used ordering: Polynomial interpretation [POLO]: 134.57/45.96 134.57/45.96 POL(0) = 0 134.57/45.96 POL(2ndsneg(x_1, x_2)) = 1 134.57/45.96 POL(2ndspos(x_1, x_2)) = 1 134.57/45.96 POL(ACTIVE(x_1)) = x_1 134.57/45.96 POL(MARK(x_1)) = 1 134.57/45.96 POL(active(x_1)) = 0 134.57/45.96 POL(cons(x_1, x_2)) = 0 134.57/45.96 POL(cons2(x_1, x_2)) = 0 134.57/45.96 POL(from(x_1)) = 1 134.57/45.96 POL(mark(x_1)) = 0 134.57/45.96 POL(negrecip(x_1)) = 0 134.57/45.96 POL(pi(x_1)) = 0 134.57/45.96 POL(plus(x_1, x_2)) = 1 134.57/45.96 POL(posrecip(x_1)) = 0 134.57/45.96 POL(rcons(x_1, x_2)) = 0 134.57/45.96 POL(rnil) = 0 134.57/45.96 POL(s(x_1)) = 0 134.57/45.96 POL(square(x_1)) = 0 134.57/45.96 POL(times(x_1, x_2)) = 1 134.57/45.96 134.57/45.96 134.57/45.96 ---------------------------------------- 134.57/45.96 134.57/45.96 (114) 134.57/45.96 Obligation: 134.57/45.96 Q DP problem: 134.57/45.96 The TRS P consists of the following rules: 134.57/45.96 134.57/45.96 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.57/45.96 MARK(cons(X1, X2)) -> MARK(X1) 134.57/45.96 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.57/45.96 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.57/45.96 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.57/45.96 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.96 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.57/45.96 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.57/45.96 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.96 MARK(rcons(X1, X2)) -> MARK(X1) 134.57/45.96 MARK(from(X)) -> MARK(X) 134.57/45.96 MARK(s(X)) -> MARK(X) 134.57/45.96 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.57/45.96 ACTIVE(plus(0, Y)) -> MARK(Y) 134.57/45.96 MARK(cons2(X1, X2)) -> MARK(X2) 134.57/45.96 MARK(rcons(X1, X2)) -> MARK(X2) 134.57/45.96 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.57/45.96 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.57/45.96 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.57/45.96 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.57/45.96 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.96 MARK(posrecip(X)) -> MARK(X) 134.57/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.57/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.57/45.96 MARK(negrecip(X)) -> MARK(X) 134.57/45.96 MARK(plus(X1, X2)) -> MARK(X1) 134.57/45.96 MARK(plus(X1, X2)) -> MARK(X2) 134.57/45.96 MARK(times(X1, X2)) -> MARK(X2) 134.57/45.96 134.57/45.96 The TRS R consists of the following rules: 134.57/45.96 134.57/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.96 active(plus(0, Y)) -> mark(Y) 134.57/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.96 active(times(0, Y)) -> mark(0) 134.57/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.96 active(square(X)) -> mark(times(X, X)) 134.57/45.96 mark(from(X)) -> active(from(mark(X))) 134.57/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.96 mark(s(X)) -> active(s(mark(X))) 134.57/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.96 mark(0) -> active(0) 134.57/45.96 mark(rnil) -> active(rnil) 134.57/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.96 mark(square(X)) -> active(square(mark(X))) 134.57/45.96 from(mark(X)) -> from(X) 134.57/45.96 from(active(X)) -> from(X) 134.57/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.96 s(mark(X)) -> s(X) 134.57/45.96 s(active(X)) -> s(X) 134.57/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.96 posrecip(mark(X)) -> posrecip(X) 134.57/45.96 posrecip(active(X)) -> posrecip(X) 134.57/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.96 negrecip(mark(X)) -> negrecip(X) 134.57/45.96 negrecip(active(X)) -> negrecip(X) 134.57/45.96 pi(mark(X)) -> pi(X) 134.57/45.96 pi(active(X)) -> pi(X) 134.57/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.96 times(mark(X1), X2) -> times(X1, X2) 134.57/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.96 times(active(X1), X2) -> times(X1, X2) 134.57/45.96 times(X1, active(X2)) -> times(X1, X2) 134.57/45.96 square(mark(X)) -> square(X) 134.57/45.96 square(active(X)) -> square(X) 134.57/45.96 134.57/45.96 The set Q consists of the following terms: 134.57/45.96 134.57/45.96 active(from(x0)) 134.57/45.96 active(2ndspos(0, x0)) 134.57/45.96 active(2ndspos(s(x0), cons(x1, x2))) 134.57/45.96 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.96 active(2ndsneg(0, x0)) 134.57/45.96 active(2ndsneg(s(x0), cons(x1, x2))) 134.57/45.96 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.57/45.96 active(pi(x0)) 134.57/45.96 active(plus(0, x0)) 134.57/45.96 active(plus(s(x0), x1)) 134.57/45.96 active(times(0, x0)) 134.57/45.96 active(times(s(x0), x1)) 134.57/45.96 active(square(x0)) 134.57/45.96 mark(from(x0)) 134.57/45.96 mark(cons(x0, x1)) 134.57/45.96 mark(s(x0)) 134.57/45.96 mark(2ndspos(x0, x1)) 134.57/45.96 mark(0) 134.57/45.96 mark(rnil) 134.57/45.96 mark(cons2(x0, x1)) 134.57/45.96 mark(rcons(x0, x1)) 134.57/45.96 mark(posrecip(x0)) 134.57/45.96 mark(2ndsneg(x0, x1)) 134.57/45.96 mark(negrecip(x0)) 134.57/45.96 mark(pi(x0)) 134.57/45.96 mark(plus(x0, x1)) 134.57/45.96 mark(times(x0, x1)) 134.57/45.96 mark(square(x0)) 134.57/45.96 from(mark(x0)) 134.57/45.96 from(active(x0)) 134.57/45.96 cons(mark(x0), x1) 134.57/45.96 cons(x0, mark(x1)) 134.57/45.96 cons(active(x0), x1) 134.57/45.96 cons(x0, active(x1)) 134.57/45.96 s(mark(x0)) 134.57/45.96 s(active(x0)) 134.57/45.96 2ndspos(mark(x0), x1) 134.57/45.96 2ndspos(x0, mark(x1)) 134.57/45.96 2ndspos(active(x0), x1) 134.57/45.96 2ndspos(x0, active(x1)) 134.57/45.96 cons2(mark(x0), x1) 134.57/45.96 cons2(x0, mark(x1)) 134.57/45.96 cons2(active(x0), x1) 134.57/45.96 cons2(x0, active(x1)) 134.57/45.96 rcons(mark(x0), x1) 134.57/45.96 rcons(x0, mark(x1)) 134.57/45.96 rcons(active(x0), x1) 134.57/45.96 rcons(x0, active(x1)) 134.57/45.96 posrecip(mark(x0)) 134.57/45.96 posrecip(active(x0)) 134.57/45.96 2ndsneg(mark(x0), x1) 134.57/45.96 2ndsneg(x0, mark(x1)) 134.57/45.96 2ndsneg(active(x0), x1) 134.57/45.96 2ndsneg(x0, active(x1)) 134.57/45.96 negrecip(mark(x0)) 134.57/45.96 negrecip(active(x0)) 134.57/45.96 pi(mark(x0)) 134.57/45.96 pi(active(x0)) 134.57/45.96 plus(mark(x0), x1) 134.57/45.96 plus(x0, mark(x1)) 134.57/45.96 plus(active(x0), x1) 134.57/45.96 plus(x0, active(x1)) 134.57/45.96 times(mark(x0), x1) 134.57/45.96 times(x0, mark(x1)) 134.57/45.96 times(active(x0), x1) 134.57/45.96 times(x0, active(x1)) 134.57/45.96 square(mark(x0)) 134.57/45.96 square(active(x0)) 134.57/45.96 134.57/45.96 We have to consider all minimal (P,Q,R)-chains. 134.57/45.96 ---------------------------------------- 134.57/45.96 134.57/45.96 (115) QDPOrderProof (EQUIVALENT) 134.57/45.96 We use the reduction pair processor [LPAR04,JAR06]. 134.57/45.96 134.57/45.96 134.57/45.96 The following pairs can be oriented strictly and are deleted. 134.57/45.96 134.57/45.96 MARK(times(X1, X2)) -> MARK(X1) 134.57/45.96 The remaining pairs can at least be oriented weakly. 134.57/45.96 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(ACTIVE(x_1)) = [[1A]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(2ndspos(x_1, x_2)) = [[-I]] + [[3A]] * x_1 + [[0A]] * x_2 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[3A]] * x_1 + [[0A]] * x_2 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(0) = [[0A]] 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(times(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(pi(x_1)) = [[1A]] + [[4A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(square(x_1)) = [[3A]] + [[1A]] * x_1 134.57/45.96 >>> 134.57/45.96 134.57/45.96 <<< 134.57/45.96 POL(rnil) = [[0A]] 134.57/45.96 >>> 134.57/45.96 134.57/45.96 134.57/45.96 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.57/45.96 134.57/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.57/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.57/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.57/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.57/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.57/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.57/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.57/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.57/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.57/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.57/45.96 active(plus(0, Y)) -> mark(Y) 134.57/45.96 mark(from(X)) -> active(from(mark(X))) 134.57/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.57/45.96 mark(s(X)) -> active(s(mark(X))) 134.57/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.57/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.57/45.96 active(square(X)) -> mark(times(X, X)) 134.57/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.57/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.57/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.57/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.57/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.57/45.96 mark(square(X)) -> active(square(mark(X))) 134.57/45.96 mark(0) -> active(0) 134.57/45.96 mark(rnil) -> active(rnil) 134.57/45.96 from(active(X)) -> from(X) 134.57/45.96 from(mark(X)) -> from(X) 134.57/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.57/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.57/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.57/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.57/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.57/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.57/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.57/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.57/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.57/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.57/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.57/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.57/45.96 times(mark(X1), X2) -> times(X1, X2) 134.57/45.96 times(active(X1), X2) -> times(X1, X2) 134.57/45.96 times(X1, active(X2)) -> times(X1, X2) 134.57/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.57/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.57/45.96 active(times(0, Y)) -> mark(0) 134.57/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.57/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.57/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.57/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.57/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.57/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.57/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.57/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.57/45.96 s(active(X)) -> s(X) 134.57/45.96 s(mark(X)) -> s(X) 134.57/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.57/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.57/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.57/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.57/45.96 posrecip(active(X)) -> posrecip(X) 134.57/45.96 posrecip(mark(X)) -> posrecip(X) 134.57/45.96 negrecip(active(X)) -> negrecip(X) 134.57/45.96 negrecip(mark(X)) -> negrecip(X) 134.57/45.96 pi(active(X)) -> pi(X) 134.57/45.96 pi(mark(X)) -> pi(X) 134.57/45.96 square(active(X)) -> square(X) 134.57/45.96 square(mark(X)) -> square(X) 134.57/45.96 134.57/45.96 134.57/45.96 ---------------------------------------- 134.57/45.96 134.57/45.96 (116) 134.57/45.96 Obligation: 134.57/45.96 Q DP problem: 134.57/45.96 The TRS P consists of the following rules: 134.57/45.96 134.57/45.96 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.96 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(from(X)) -> MARK(X) 134.75/45.96 MARK(s(X)) -> MARK(X) 134.75/45.96 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.96 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.96 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.96 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.96 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.96 MARK(posrecip(X)) -> MARK(X) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(negrecip(X)) -> MARK(X) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(times(X1, X2)) -> MARK(X2) 134.75/45.96 134.75/45.96 The TRS R consists of the following rules: 134.75/45.96 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 134.75/45.96 The set Q consists of the following terms: 134.75/45.96 134.75/45.96 active(from(x0)) 134.75/45.96 active(2ndspos(0, x0)) 134.75/45.96 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(2ndsneg(0, x0)) 134.75/45.96 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(pi(x0)) 134.75/45.96 active(plus(0, x0)) 134.75/45.96 active(plus(s(x0), x1)) 134.75/45.96 active(times(0, x0)) 134.75/45.96 active(times(s(x0), x1)) 134.75/45.96 active(square(x0)) 134.75/45.96 mark(from(x0)) 134.75/45.96 mark(cons(x0, x1)) 134.75/45.96 mark(s(x0)) 134.75/45.96 mark(2ndspos(x0, x1)) 134.75/45.96 mark(0) 134.75/45.96 mark(rnil) 134.75/45.96 mark(cons2(x0, x1)) 134.75/45.96 mark(rcons(x0, x1)) 134.75/45.96 mark(posrecip(x0)) 134.75/45.96 mark(2ndsneg(x0, x1)) 134.75/45.96 mark(negrecip(x0)) 134.75/45.96 mark(pi(x0)) 134.75/45.96 mark(plus(x0, x1)) 134.75/45.96 mark(times(x0, x1)) 134.75/45.96 mark(square(x0)) 134.75/45.96 from(mark(x0)) 134.75/45.96 from(active(x0)) 134.75/45.96 cons(mark(x0), x1) 134.75/45.96 cons(x0, mark(x1)) 134.75/45.96 cons(active(x0), x1) 134.75/45.96 cons(x0, active(x1)) 134.75/45.96 s(mark(x0)) 134.75/45.96 s(active(x0)) 134.75/45.96 2ndspos(mark(x0), x1) 134.75/45.96 2ndspos(x0, mark(x1)) 134.75/45.96 2ndspos(active(x0), x1) 134.75/45.96 2ndspos(x0, active(x1)) 134.75/45.96 cons2(mark(x0), x1) 134.75/45.96 cons2(x0, mark(x1)) 134.75/45.96 cons2(active(x0), x1) 134.75/45.96 cons2(x0, active(x1)) 134.75/45.96 rcons(mark(x0), x1) 134.75/45.96 rcons(x0, mark(x1)) 134.75/45.96 rcons(active(x0), x1) 134.75/45.96 rcons(x0, active(x1)) 134.75/45.96 posrecip(mark(x0)) 134.75/45.96 posrecip(active(x0)) 134.75/45.96 2ndsneg(mark(x0), x1) 134.75/45.96 2ndsneg(x0, mark(x1)) 134.75/45.96 2ndsneg(active(x0), x1) 134.75/45.96 2ndsneg(x0, active(x1)) 134.75/45.96 negrecip(mark(x0)) 134.75/45.96 negrecip(active(x0)) 134.75/45.96 pi(mark(x0)) 134.75/45.96 pi(active(x0)) 134.75/45.96 plus(mark(x0), x1) 134.75/45.96 plus(x0, mark(x1)) 134.75/45.96 plus(active(x0), x1) 134.75/45.96 plus(x0, active(x1)) 134.75/45.96 times(mark(x0), x1) 134.75/45.96 times(x0, mark(x1)) 134.75/45.96 times(active(x0), x1) 134.75/45.96 times(x0, active(x1)) 134.75/45.96 square(mark(x0)) 134.75/45.96 square(active(x0)) 134.75/45.96 134.75/45.96 We have to consider all minimal (P,Q,R)-chains. 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (117) QDPOrderProof (EQUIVALENT) 134.75/45.96 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.96 134.75/45.96 134.75/45.96 The following pairs can be oriented strictly and are deleted. 134.75/45.96 134.75/45.96 MARK(from(X)) -> MARK(X) 134.75/45.96 The remaining pairs can at least be oriented weakly. 134.75/45.96 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(from(x_1)) = [[1A]] + [[1A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(s(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons2(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(0) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(times(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(active(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(pi(x_1)) = [[1A]] + [[1A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rnil) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 134.75/45.96 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.96 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 134.75/45.96 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (118) 134.75/45.96 Obligation: 134.75/45.96 Q DP problem: 134.75/45.96 The TRS P consists of the following rules: 134.75/45.96 134.75/45.96 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.96 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(s(X)) -> MARK(X) 134.75/45.96 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.96 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.96 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.96 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.96 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.96 MARK(posrecip(X)) -> MARK(X) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(negrecip(X)) -> MARK(X) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(times(X1, X2)) -> MARK(X2) 134.75/45.96 134.75/45.96 The TRS R consists of the following rules: 134.75/45.96 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 134.75/45.96 The set Q consists of the following terms: 134.75/45.96 134.75/45.96 active(from(x0)) 134.75/45.96 active(2ndspos(0, x0)) 134.75/45.96 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(2ndsneg(0, x0)) 134.75/45.96 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(pi(x0)) 134.75/45.96 active(plus(0, x0)) 134.75/45.96 active(plus(s(x0), x1)) 134.75/45.96 active(times(0, x0)) 134.75/45.96 active(times(s(x0), x1)) 134.75/45.96 active(square(x0)) 134.75/45.96 mark(from(x0)) 134.75/45.96 mark(cons(x0, x1)) 134.75/45.96 mark(s(x0)) 134.75/45.96 mark(2ndspos(x0, x1)) 134.75/45.96 mark(0) 134.75/45.96 mark(rnil) 134.75/45.96 mark(cons2(x0, x1)) 134.75/45.96 mark(rcons(x0, x1)) 134.75/45.96 mark(posrecip(x0)) 134.75/45.96 mark(2ndsneg(x0, x1)) 134.75/45.96 mark(negrecip(x0)) 134.75/45.96 mark(pi(x0)) 134.75/45.96 mark(plus(x0, x1)) 134.75/45.96 mark(times(x0, x1)) 134.75/45.96 mark(square(x0)) 134.75/45.96 from(mark(x0)) 134.75/45.96 from(active(x0)) 134.75/45.96 cons(mark(x0), x1) 134.75/45.96 cons(x0, mark(x1)) 134.75/45.96 cons(active(x0), x1) 134.75/45.96 cons(x0, active(x1)) 134.75/45.96 s(mark(x0)) 134.75/45.96 s(active(x0)) 134.75/45.96 2ndspos(mark(x0), x1) 134.75/45.96 2ndspos(x0, mark(x1)) 134.75/45.96 2ndspos(active(x0), x1) 134.75/45.96 2ndspos(x0, active(x1)) 134.75/45.96 cons2(mark(x0), x1) 134.75/45.96 cons2(x0, mark(x1)) 134.75/45.96 cons2(active(x0), x1) 134.75/45.96 cons2(x0, active(x1)) 134.75/45.96 rcons(mark(x0), x1) 134.75/45.96 rcons(x0, mark(x1)) 134.75/45.96 rcons(active(x0), x1) 134.75/45.96 rcons(x0, active(x1)) 134.75/45.96 posrecip(mark(x0)) 134.75/45.96 posrecip(active(x0)) 134.75/45.96 2ndsneg(mark(x0), x1) 134.75/45.96 2ndsneg(x0, mark(x1)) 134.75/45.96 2ndsneg(active(x0), x1) 134.75/45.96 2ndsneg(x0, active(x1)) 134.75/45.96 negrecip(mark(x0)) 134.75/45.96 negrecip(active(x0)) 134.75/45.96 pi(mark(x0)) 134.75/45.96 pi(active(x0)) 134.75/45.96 plus(mark(x0), x1) 134.75/45.96 plus(x0, mark(x1)) 134.75/45.96 plus(active(x0), x1) 134.75/45.96 plus(x0, active(x1)) 134.75/45.96 times(mark(x0), x1) 134.75/45.96 times(x0, mark(x1)) 134.75/45.96 times(active(x0), x1) 134.75/45.96 times(x0, active(x1)) 134.75/45.96 square(mark(x0)) 134.75/45.96 square(active(x0)) 134.75/45.96 134.75/45.96 We have to consider all minimal (P,Q,R)-chains. 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (119) QDPOrderProof (EQUIVALENT) 134.75/45.96 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.96 134.75/45.96 134.75/45.96 The following pairs can be oriented strictly and are deleted. 134.75/45.96 134.75/45.96 MARK(times(X1, X2)) -> MARK(X2) 134.75/45.96 The remaining pairs can at least be oriented weakly. 134.75/45.96 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons2(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(0) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(times(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[1A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(square(x_1)) = [[0A]] + [[1A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rnil) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 134.75/45.96 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.96 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 134.75/45.96 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (120) 134.75/45.96 Obligation: 134.75/45.96 Q DP problem: 134.75/45.96 The TRS P consists of the following rules: 134.75/45.96 134.75/45.96 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.96 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(s(X)) -> MARK(X) 134.75/45.96 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.96 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.96 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.96 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.96 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.96 MARK(posrecip(X)) -> MARK(X) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(negrecip(X)) -> MARK(X) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.96 134.75/45.96 The TRS R consists of the following rules: 134.75/45.96 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 134.75/45.96 The set Q consists of the following terms: 134.75/45.96 134.75/45.96 active(from(x0)) 134.75/45.96 active(2ndspos(0, x0)) 134.75/45.96 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(2ndsneg(0, x0)) 134.75/45.96 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(pi(x0)) 134.75/45.96 active(plus(0, x0)) 134.75/45.96 active(plus(s(x0), x1)) 134.75/45.96 active(times(0, x0)) 134.75/45.96 active(times(s(x0), x1)) 134.75/45.96 active(square(x0)) 134.75/45.96 mark(from(x0)) 134.75/45.96 mark(cons(x0, x1)) 134.75/45.96 mark(s(x0)) 134.75/45.96 mark(2ndspos(x0, x1)) 134.75/45.96 mark(0) 134.75/45.96 mark(rnil) 134.75/45.96 mark(cons2(x0, x1)) 134.75/45.96 mark(rcons(x0, x1)) 134.75/45.96 mark(posrecip(x0)) 134.75/45.96 mark(2ndsneg(x0, x1)) 134.75/45.96 mark(negrecip(x0)) 134.75/45.96 mark(pi(x0)) 134.75/45.96 mark(plus(x0, x1)) 134.75/45.96 mark(times(x0, x1)) 134.75/45.96 mark(square(x0)) 134.75/45.96 from(mark(x0)) 134.75/45.96 from(active(x0)) 134.75/45.96 cons(mark(x0), x1) 134.75/45.96 cons(x0, mark(x1)) 134.75/45.96 cons(active(x0), x1) 134.75/45.96 cons(x0, active(x1)) 134.75/45.96 s(mark(x0)) 134.75/45.96 s(active(x0)) 134.75/45.96 2ndspos(mark(x0), x1) 134.75/45.96 2ndspos(x0, mark(x1)) 134.75/45.96 2ndspos(active(x0), x1) 134.75/45.96 2ndspos(x0, active(x1)) 134.75/45.96 cons2(mark(x0), x1) 134.75/45.96 cons2(x0, mark(x1)) 134.75/45.96 cons2(active(x0), x1) 134.75/45.96 cons2(x0, active(x1)) 134.75/45.96 rcons(mark(x0), x1) 134.75/45.96 rcons(x0, mark(x1)) 134.75/45.96 rcons(active(x0), x1) 134.75/45.96 rcons(x0, active(x1)) 134.75/45.96 posrecip(mark(x0)) 134.75/45.96 posrecip(active(x0)) 134.75/45.96 2ndsneg(mark(x0), x1) 134.75/45.96 2ndsneg(x0, mark(x1)) 134.75/45.96 2ndsneg(active(x0), x1) 134.75/45.96 2ndsneg(x0, active(x1)) 134.75/45.96 negrecip(mark(x0)) 134.75/45.96 negrecip(active(x0)) 134.75/45.96 pi(mark(x0)) 134.75/45.96 pi(active(x0)) 134.75/45.96 plus(mark(x0), x1) 134.75/45.96 plus(x0, mark(x1)) 134.75/45.96 plus(active(x0), x1) 134.75/45.96 plus(x0, active(x1)) 134.75/45.96 times(mark(x0), x1) 134.75/45.96 times(x0, mark(x1)) 134.75/45.96 times(active(x0), x1) 134.75/45.96 times(x0, active(x1)) 134.75/45.96 square(mark(x0)) 134.75/45.96 square(active(x0)) 134.75/45.96 134.75/45.96 We have to consider all minimal (P,Q,R)-chains. 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (121) QDPOrderProof (EQUIVALENT) 134.75/45.96 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.96 134.75/45.96 134.75/45.96 The following pairs can be oriented strictly and are deleted. 134.75/45.96 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X1) 134.75/45.96 The remaining pairs can at least be oriented weakly. 134.75/45.96 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons2(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(posrecip(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(plus(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(0) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(times(x_1, x_2)) = [[1A]] + [[-I]] * x_1 + [[1A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(active(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(square(x_1)) = [[1A]] + [[1A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rnil) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 134.75/45.96 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.96 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 134.75/45.96 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (122) 134.75/45.96 Obligation: 134.75/45.96 Q DP problem: 134.75/45.96 The TRS P consists of the following rules: 134.75/45.96 134.75/45.96 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.96 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(s(X)) -> MARK(X) 134.75/45.96 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.96 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.96 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.96 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.96 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.96 MARK(posrecip(X)) -> MARK(X) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(negrecip(X)) -> MARK(X) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.96 134.75/45.96 The TRS R consists of the following rules: 134.75/45.96 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 134.75/45.96 The set Q consists of the following terms: 134.75/45.96 134.75/45.96 active(from(x0)) 134.75/45.96 active(2ndspos(0, x0)) 134.75/45.96 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(2ndsneg(0, x0)) 134.75/45.96 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.96 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.96 active(pi(x0)) 134.75/45.96 active(plus(0, x0)) 134.75/45.96 active(plus(s(x0), x1)) 134.75/45.96 active(times(0, x0)) 134.75/45.96 active(times(s(x0), x1)) 134.75/45.96 active(square(x0)) 134.75/45.96 mark(from(x0)) 134.75/45.96 mark(cons(x0, x1)) 134.75/45.96 mark(s(x0)) 134.75/45.96 mark(2ndspos(x0, x1)) 134.75/45.96 mark(0) 134.75/45.96 mark(rnil) 134.75/45.96 mark(cons2(x0, x1)) 134.75/45.96 mark(rcons(x0, x1)) 134.75/45.96 mark(posrecip(x0)) 134.75/45.96 mark(2ndsneg(x0, x1)) 134.75/45.96 mark(negrecip(x0)) 134.75/45.96 mark(pi(x0)) 134.75/45.96 mark(plus(x0, x1)) 134.75/45.96 mark(times(x0, x1)) 134.75/45.96 mark(square(x0)) 134.75/45.96 from(mark(x0)) 134.75/45.96 from(active(x0)) 134.75/45.96 cons(mark(x0), x1) 134.75/45.96 cons(x0, mark(x1)) 134.75/45.96 cons(active(x0), x1) 134.75/45.96 cons(x0, active(x1)) 134.75/45.96 s(mark(x0)) 134.75/45.96 s(active(x0)) 134.75/45.96 2ndspos(mark(x0), x1) 134.75/45.96 2ndspos(x0, mark(x1)) 134.75/45.96 2ndspos(active(x0), x1) 134.75/45.96 2ndspos(x0, active(x1)) 134.75/45.96 cons2(mark(x0), x1) 134.75/45.96 cons2(x0, mark(x1)) 134.75/45.96 cons2(active(x0), x1) 134.75/45.96 cons2(x0, active(x1)) 134.75/45.96 rcons(mark(x0), x1) 134.75/45.96 rcons(x0, mark(x1)) 134.75/45.96 rcons(active(x0), x1) 134.75/45.96 rcons(x0, active(x1)) 134.75/45.96 posrecip(mark(x0)) 134.75/45.96 posrecip(active(x0)) 134.75/45.96 2ndsneg(mark(x0), x1) 134.75/45.96 2ndsneg(x0, mark(x1)) 134.75/45.96 2ndsneg(active(x0), x1) 134.75/45.96 2ndsneg(x0, active(x1)) 134.75/45.96 negrecip(mark(x0)) 134.75/45.96 negrecip(active(x0)) 134.75/45.96 pi(mark(x0)) 134.75/45.96 pi(active(x0)) 134.75/45.96 plus(mark(x0), x1) 134.75/45.96 plus(x0, mark(x1)) 134.75/45.96 plus(active(x0), x1) 134.75/45.96 plus(x0, active(x1)) 134.75/45.96 times(mark(x0), x1) 134.75/45.96 times(x0, mark(x1)) 134.75/45.96 times(active(x0), x1) 134.75/45.96 times(x0, active(x1)) 134.75/45.96 square(mark(x0)) 134.75/45.96 square(active(x0)) 134.75/45.96 134.75/45.96 We have to consider all minimal (P,Q,R)-chains. 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (123) QDPOrderProof (EQUIVALENT) 134.75/45.96 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.96 134.75/45.96 134.75/45.96 The following pairs can be oriented strictly and are deleted. 134.75/45.96 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X1) 134.75/45.96 The remaining pairs can at least be oriented weakly. 134.75/45.96 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(from(x_1)) = [[2A]] + [[1A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(s(x_1)) = [[1A]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndspos(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rcons(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(plus(x_1, x_2)) = [[1A]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(0) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[-I]] * x_2 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(pi(x_1)) = [[2A]] + [[2A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(square(x_1)) = [[-I]] + [[1A]] * x_1 134.75/45.96 >>> 134.75/45.96 134.75/45.96 <<< 134.75/45.96 POL(rnil) = [[0A]] 134.75/45.96 >>> 134.75/45.96 134.75/45.96 134.75/45.96 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.96 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.96 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.96 times(mark(X1), X2) -> times(X1, X2) 134.75/45.96 times(active(X1), X2) -> times(X1, X2) 134.75/45.96 times(X1, active(X2)) -> times(X1, X2) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 square(active(X)) -> square(X) 134.75/45.96 square(mark(X)) -> square(X) 134.75/45.96 134.75/45.96 134.75/45.96 ---------------------------------------- 134.75/45.96 134.75/45.96 (124) 134.75/45.96 Obligation: 134.75/45.96 Q DP problem: 134.75/45.96 The TRS P consists of the following rules: 134.75/45.96 134.75/45.96 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.96 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 MARK(s(X)) -> MARK(X) 134.75/45.96 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.96 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.96 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.96 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.96 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.96 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.96 MARK(posrecip(X)) -> MARK(X) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.96 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.96 MARK(negrecip(X)) -> MARK(X) 134.75/45.96 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.96 134.75/45.96 The TRS R consists of the following rules: 134.75/45.96 134.75/45.96 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.96 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.96 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.96 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.96 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.96 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.96 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.96 active(plus(0, Y)) -> mark(Y) 134.75/45.96 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.96 active(times(0, Y)) -> mark(0) 134.75/45.96 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.96 active(square(X)) -> mark(times(X, X)) 134.75/45.96 mark(from(X)) -> active(from(mark(X))) 134.75/45.96 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.96 mark(s(X)) -> active(s(mark(X))) 134.75/45.96 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.96 mark(0) -> active(0) 134.75/45.96 mark(rnil) -> active(rnil) 134.75/45.96 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.96 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.96 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.96 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.96 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.96 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.96 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.96 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.96 mark(square(X)) -> active(square(mark(X))) 134.75/45.96 from(mark(X)) -> from(X) 134.75/45.96 from(active(X)) -> from(X) 134.75/45.96 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.96 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.96 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.96 s(mark(X)) -> s(X) 134.75/45.96 s(active(X)) -> s(X) 134.75/45.96 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.96 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.96 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.96 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.96 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.96 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.96 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.96 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.96 posrecip(mark(X)) -> posrecip(X) 134.75/45.96 posrecip(active(X)) -> posrecip(X) 134.75/45.96 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.96 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.96 negrecip(mark(X)) -> negrecip(X) 134.75/45.96 negrecip(active(X)) -> negrecip(X) 134.75/45.96 pi(mark(X)) -> pi(X) 134.75/45.96 pi(active(X)) -> pi(X) 134.75/45.96 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.96 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.96 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (125) QDPOrderProof (EQUIVALENT) 134.75/45.97 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.97 134.75/45.97 134.75/45.97 The following pairs can be oriented strictly and are deleted. 134.75/45.97 134.75/45.97 MARK(negrecip(X)) -> MARK(X) 134.75/45.97 The remaining pairs can at least be oriented weakly. 134.75/45.97 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(ACTIVE(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rcons(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(negrecip(x_1)) = [[1A]] + [[1A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(plus(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(0) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(active(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(pi(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rnil) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 134.75/45.97 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.97 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 134.75/45.97 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (126) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.97 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.97 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 MARK(posrecip(X)) -> MARK(X) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (127) QDPOrderProof (EQUIVALENT) 134.75/45.97 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.97 134.75/45.97 134.75/45.97 The following pairs can be oriented strictly and are deleted. 134.75/45.97 134.75/45.97 MARK(posrecip(X)) -> MARK(X) 134.75/45.97 The remaining pairs can at least be oriented weakly. 134.75/45.97 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(s(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rcons(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(posrecip(x_1)) = [[-I]] + [[1A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(negrecip(x_1)) = [[0A]] + [[-I]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(plus(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(0) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(pi(x_1)) = [[1A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(square(x_1)) = [[1A]] + [[1A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rnil) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 134.75/45.97 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.97 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 134.75/45.97 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (128) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.97 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.97 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (129) QDPOrderProof (EQUIVALENT) 134.75/45.97 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.97 134.75/45.97 134.75/45.97 The following pairs can be oriented strictly and are deleted. 134.75/45.97 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X1) 134.75/45.97 The remaining pairs can at least be oriented weakly. 134.75/45.97 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndspos(x_1, x_2)) = [[0A]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons2(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(0) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(pi(x_1)) = [[1A]] + [[2A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(square(x_1)) = [[0A]] + [[1A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rnil) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 134.75/45.97 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.97 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 134.75/45.97 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (130) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.97 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.97 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (131) QDPOrderProof (EQUIVALENT) 134.75/45.97 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.97 134.75/45.97 134.75/45.97 The following pairs can be oriented strictly and are deleted. 134.75/45.97 134.75/45.97 MARK(cons(X1, X2)) -> MARK(X1) 134.75/45.97 The remaining pairs can at least be oriented weakly. 134.75/45.97 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(ACTIVE(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(from(x_1)) = [[-I]] + [[1A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndspos(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(cons2(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(2ndsneg(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(0) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[-I]] * x_2 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(active(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(pi(x_1)) = [[2A]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 134.75/45.97 >>> 134.75/45.97 134.75/45.97 <<< 134.75/45.97 POL(rnil) = [[0A]] 134.75/45.97 >>> 134.75/45.97 134.75/45.97 134.75/45.97 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.97 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 134.75/45.97 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (132) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(from(X)) -> MARK(cons(X, from(s(X)))) 134.75/45.97 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (133) DependencyGraphProof (EQUIVALENT) 134.75/45.97 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (134) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (135) QDPQMonotonicMRRProof (EQUIVALENT) 134.75/45.97 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 134.75/45.97 134.75/45.97 Strictly oriented dependency pairs: 134.75/45.97 134.75/45.97 MARK(from(X)) -> ACTIVE(from(mark(X))) 134.75/45.97 134.75/45.97 134.75/45.97 Used ordering: Polynomial interpretation [POLO]: 134.75/45.97 134.75/45.97 POL(0) = 0 134.75/45.97 POL(2ndsneg(x_1, x_2)) = 1 134.75/45.97 POL(2ndspos(x_1, x_2)) = 1 134.75/45.97 POL(ACTIVE(x_1)) = x_1 134.75/45.97 POL(MARK(x_1)) = 1 134.75/45.97 POL(active(x_1)) = 0 134.75/45.97 POL(cons(x_1, x_2)) = 0 134.75/45.97 POL(cons2(x_1, x_2)) = 0 134.75/45.97 POL(from(x_1)) = 0 134.75/45.97 POL(mark(x_1)) = 0 134.75/45.97 POL(negrecip(x_1)) = 0 134.75/45.97 POL(pi(x_1)) = 0 134.75/45.97 POL(plus(x_1, x_2)) = 1 134.75/45.97 POL(posrecip(x_1)) = 0 134.75/45.97 POL(rcons(x_1, x_2)) = 0 134.75/45.97 POL(rnil) = 0 134.75/45.97 POL(s(x_1)) = 0 134.75/45.97 POL(square(x_1)) = 0 134.75/45.97 POL(times(x_1, x_2)) = 1 134.75/45.97 134.75/45.97 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (136) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (137) QDPQMonotonicMRRProof (EQUIVALENT) 134.75/45.97 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 134.75/45.97 134.75/45.97 Strictly oriented dependency pairs: 134.75/45.97 134.75/45.97 MARK(2ndspos(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> MARK(X2) 134.75/45.97 134.75/45.97 134.75/45.97 Used ordering: Polynomial interpretation [POLO]: 134.75/45.97 134.75/45.97 POL(0) = 0 134.75/45.97 POL(2ndsneg(x_1, x_2)) = 2 + 2*x_2 134.75/45.97 POL(2ndspos(x_1, x_2)) = 2 + 2*x_2 134.75/45.97 POL(ACTIVE(x_1)) = x_1 134.75/45.97 POL(MARK(x_1)) = x_1 134.75/45.97 POL(active(x_1)) = x_1 134.75/45.97 POL(cons(x_1, x_2)) = 2*x_2 134.75/45.97 POL(cons2(x_1, x_2)) = 2*x_2 134.75/45.97 POL(from(x_1)) = 0 134.75/45.97 POL(mark(x_1)) = x_1 134.75/45.97 POL(negrecip(x_1)) = 0 134.75/45.97 POL(pi(x_1)) = 2 134.75/45.97 POL(plus(x_1, x_2)) = 2*x_2 134.75/45.97 POL(posrecip(x_1)) = 0 134.75/45.97 POL(rcons(x_1, x_2)) = x_2 134.75/45.97 POL(rnil) = 2 134.75/45.97 POL(s(x_1)) = x_1 134.75/45.97 POL(square(x_1)) = 0 134.75/45.97 POL(times(x_1, x_2)) = 0 134.75/45.97 134.75/45.97 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (138) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.97 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.97 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.97 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.97 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.97 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.97 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.97 posrecip(mark(X)) -> posrecip(X) 134.75/45.97 posrecip(active(X)) -> posrecip(X) 134.75/45.97 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.97 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.97 negrecip(mark(X)) -> negrecip(X) 134.75/45.97 negrecip(active(X)) -> negrecip(X) 134.75/45.97 pi(mark(X)) -> pi(X) 134.75/45.97 pi(active(X)) -> pi(X) 134.75/45.97 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.97 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.97 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.97 times(mark(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.97 times(active(X1), X2) -> times(X1, X2) 134.75/45.97 times(X1, active(X2)) -> times(X1, X2) 134.75/45.97 square(mark(X)) -> square(X) 134.75/45.97 square(active(X)) -> square(X) 134.75/45.97 134.75/45.97 The set Q consists of the following terms: 134.75/45.97 134.75/45.97 active(from(x0)) 134.75/45.97 active(2ndspos(0, x0)) 134.75/45.97 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(2ndsneg(0, x0)) 134.75/45.97 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.97 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.97 active(pi(x0)) 134.75/45.97 active(plus(0, x0)) 134.75/45.97 active(plus(s(x0), x1)) 134.75/45.97 active(times(0, x0)) 134.75/45.97 active(times(s(x0), x1)) 134.75/45.97 active(square(x0)) 134.75/45.97 mark(from(x0)) 134.75/45.97 mark(cons(x0, x1)) 134.75/45.97 mark(s(x0)) 134.75/45.97 mark(2ndspos(x0, x1)) 134.75/45.97 mark(0) 134.75/45.97 mark(rnil) 134.75/45.97 mark(cons2(x0, x1)) 134.75/45.97 mark(rcons(x0, x1)) 134.75/45.97 mark(posrecip(x0)) 134.75/45.97 mark(2ndsneg(x0, x1)) 134.75/45.97 mark(negrecip(x0)) 134.75/45.97 mark(pi(x0)) 134.75/45.97 mark(plus(x0, x1)) 134.75/45.97 mark(times(x0, x1)) 134.75/45.97 mark(square(x0)) 134.75/45.97 from(mark(x0)) 134.75/45.97 from(active(x0)) 134.75/45.97 cons(mark(x0), x1) 134.75/45.97 cons(x0, mark(x1)) 134.75/45.97 cons(active(x0), x1) 134.75/45.97 cons(x0, active(x1)) 134.75/45.97 s(mark(x0)) 134.75/45.97 s(active(x0)) 134.75/45.97 2ndspos(mark(x0), x1) 134.75/45.97 2ndspos(x0, mark(x1)) 134.75/45.97 2ndspos(active(x0), x1) 134.75/45.97 2ndspos(x0, active(x1)) 134.75/45.97 cons2(mark(x0), x1) 134.75/45.97 cons2(x0, mark(x1)) 134.75/45.97 cons2(active(x0), x1) 134.75/45.97 cons2(x0, active(x1)) 134.75/45.97 rcons(mark(x0), x1) 134.75/45.97 rcons(x0, mark(x1)) 134.75/45.97 rcons(active(x0), x1) 134.75/45.97 rcons(x0, active(x1)) 134.75/45.97 posrecip(mark(x0)) 134.75/45.97 posrecip(active(x0)) 134.75/45.97 2ndsneg(mark(x0), x1) 134.75/45.97 2ndsneg(x0, mark(x1)) 134.75/45.97 2ndsneg(active(x0), x1) 134.75/45.97 2ndsneg(x0, active(x1)) 134.75/45.97 negrecip(mark(x0)) 134.75/45.97 negrecip(active(x0)) 134.75/45.97 pi(mark(x0)) 134.75/45.97 pi(active(x0)) 134.75/45.97 plus(mark(x0), x1) 134.75/45.97 plus(x0, mark(x1)) 134.75/45.97 plus(active(x0), x1) 134.75/45.97 plus(x0, active(x1)) 134.75/45.97 times(mark(x0), x1) 134.75/45.97 times(x0, mark(x1)) 134.75/45.97 times(active(x0), x1) 134.75/45.97 times(x0, active(x1)) 134.75/45.97 square(mark(x0)) 134.75/45.97 square(active(x0)) 134.75/45.97 134.75/45.97 We have to consider all minimal (P,Q,R)-chains. 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (139) QDPQMonotonicMRRProof (EQUIVALENT) 134.75/45.97 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 134.75/45.97 134.75/45.97 Strictly oriented dependency pairs: 134.75/45.97 134.75/45.97 MARK(cons2(X1, X2)) -> MARK(X2) 134.75/45.97 134.75/45.97 134.75/45.97 Used ordering: Polynomial interpretation [POLO]: 134.75/45.97 134.75/45.97 POL(0) = 0 134.75/45.97 POL(2ndsneg(x_1, x_2)) = 0 134.75/45.97 POL(2ndspos(x_1, x_2)) = 0 134.75/45.97 POL(ACTIVE(x_1)) = 2*x_1 134.75/45.97 POL(MARK(x_1)) = 2*x_1 134.75/45.97 POL(active(x_1)) = x_1 134.75/45.97 POL(cons(x_1, x_2)) = 0 134.75/45.97 POL(cons2(x_1, x_2)) = 2 + 2*x_2 134.75/45.97 POL(from(x_1)) = 2 134.75/45.97 POL(mark(x_1)) = x_1 134.75/45.97 POL(negrecip(x_1)) = 0 134.75/45.97 POL(pi(x_1)) = 0 134.75/45.97 POL(plus(x_1, x_2)) = x_2 134.75/45.97 POL(posrecip(x_1)) = 0 134.75/45.97 POL(rcons(x_1, x_2)) = 2*x_2 134.75/45.97 POL(rnil) = 0 134.75/45.97 POL(s(x_1)) = x_1 134.75/45.97 POL(square(x_1)) = 0 134.75/45.97 POL(times(x_1, x_2)) = 0 134.75/45.97 134.75/45.97 134.75/45.97 ---------------------------------------- 134.75/45.97 134.75/45.97 (140) 134.75/45.97 Obligation: 134.75/45.97 Q DP problem: 134.75/45.97 The TRS P consists of the following rules: 134.75/45.97 134.75/45.97 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.97 MARK(s(X)) -> MARK(X) 134.75/45.97 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.97 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.97 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.97 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.97 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.97 134.75/45.97 The TRS R consists of the following rules: 134.75/45.97 134.75/45.97 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.97 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.97 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.97 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.97 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.97 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.97 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.97 active(plus(0, Y)) -> mark(Y) 134.75/45.97 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.97 active(times(0, Y)) -> mark(0) 134.75/45.97 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.97 active(square(X)) -> mark(times(X, X)) 134.75/45.97 mark(from(X)) -> active(from(mark(X))) 134.75/45.97 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.97 mark(s(X)) -> active(s(mark(X))) 134.75/45.97 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.97 mark(0) -> active(0) 134.75/45.97 mark(rnil) -> active(rnil) 134.75/45.97 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.97 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.97 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.97 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.97 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.97 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.97 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.97 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.97 mark(square(X)) -> active(square(mark(X))) 134.75/45.97 from(mark(X)) -> from(X) 134.75/45.97 from(active(X)) -> from(X) 134.75/45.97 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.97 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.97 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.97 s(mark(X)) -> s(X) 134.75/45.97 s(active(X)) -> s(X) 134.75/45.97 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.97 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.98 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.98 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.98 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.98 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.98 posrecip(mark(X)) -> posrecip(X) 134.75/45.98 posrecip(active(X)) -> posrecip(X) 134.75/45.98 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 negrecip(mark(X)) -> negrecip(X) 134.75/45.98 negrecip(active(X)) -> negrecip(X) 134.75/45.98 pi(mark(X)) -> pi(X) 134.75/45.98 pi(active(X)) -> pi(X) 134.75/45.98 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.98 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.98 times(mark(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.98 times(active(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, active(X2)) -> times(X1, X2) 134.75/45.98 square(mark(X)) -> square(X) 134.75/45.98 square(active(X)) -> square(X) 134.75/45.98 134.75/45.98 The set Q consists of the following terms: 134.75/45.98 134.75/45.98 active(from(x0)) 134.75/45.98 active(2ndspos(0, x0)) 134.75/45.98 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(2ndsneg(0, x0)) 134.75/45.98 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(pi(x0)) 134.75/45.98 active(plus(0, x0)) 134.75/45.98 active(plus(s(x0), x1)) 134.75/45.98 active(times(0, x0)) 134.75/45.98 active(times(s(x0), x1)) 134.75/45.98 active(square(x0)) 134.75/45.98 mark(from(x0)) 134.75/45.98 mark(cons(x0, x1)) 134.75/45.98 mark(s(x0)) 134.75/45.98 mark(2ndspos(x0, x1)) 134.75/45.98 mark(0) 134.75/45.98 mark(rnil) 134.75/45.98 mark(cons2(x0, x1)) 134.75/45.98 mark(rcons(x0, x1)) 134.75/45.98 mark(posrecip(x0)) 134.75/45.98 mark(2ndsneg(x0, x1)) 134.75/45.98 mark(negrecip(x0)) 134.75/45.98 mark(pi(x0)) 134.75/45.98 mark(plus(x0, x1)) 134.75/45.98 mark(times(x0, x1)) 134.75/45.98 mark(square(x0)) 134.75/45.98 from(mark(x0)) 134.75/45.98 from(active(x0)) 134.75/45.98 cons(mark(x0), x1) 134.75/45.98 cons(x0, mark(x1)) 134.75/45.98 cons(active(x0), x1) 134.75/45.98 cons(x0, active(x1)) 134.75/45.98 s(mark(x0)) 134.75/45.98 s(active(x0)) 134.75/45.98 2ndspos(mark(x0), x1) 134.75/45.98 2ndspos(x0, mark(x1)) 134.75/45.98 2ndspos(active(x0), x1) 134.75/45.98 2ndspos(x0, active(x1)) 134.75/45.98 cons2(mark(x0), x1) 134.75/45.98 cons2(x0, mark(x1)) 134.75/45.98 cons2(active(x0), x1) 134.75/45.98 cons2(x0, active(x1)) 134.75/45.98 rcons(mark(x0), x1) 134.75/45.98 rcons(x0, mark(x1)) 134.75/45.98 rcons(active(x0), x1) 134.75/45.98 rcons(x0, active(x1)) 134.75/45.98 posrecip(mark(x0)) 134.75/45.98 posrecip(active(x0)) 134.75/45.98 2ndsneg(mark(x0), x1) 134.75/45.98 2ndsneg(x0, mark(x1)) 134.75/45.98 2ndsneg(active(x0), x1) 134.75/45.98 2ndsneg(x0, active(x1)) 134.75/45.98 negrecip(mark(x0)) 134.75/45.98 negrecip(active(x0)) 134.75/45.98 pi(mark(x0)) 134.75/45.98 pi(active(x0)) 134.75/45.98 plus(mark(x0), x1) 134.75/45.98 plus(x0, mark(x1)) 134.75/45.98 plus(active(x0), x1) 134.75/45.98 plus(x0, active(x1)) 134.75/45.98 times(mark(x0), x1) 134.75/45.98 times(x0, mark(x1)) 134.75/45.98 times(active(x0), x1) 134.75/45.98 times(x0, active(x1)) 134.75/45.98 square(mark(x0)) 134.75/45.98 square(active(x0)) 134.75/45.98 134.75/45.98 We have to consider all minimal (P,Q,R)-chains. 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (141) QDPOrderProof (EQUIVALENT) 134.75/45.98 We use the reduction pair processor [LPAR04,JAR06]. 134.75/45.98 134.75/45.98 134.75/45.98 The following pairs can be oriented strictly and are deleted. 134.75/45.98 134.75/45.98 ACTIVE(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.98 MARK(rcons(X1, X2)) -> MARK(X2) 134.75/45.98 ACTIVE(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> MARK(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.98 ACTIVE(plus(0, Y)) -> MARK(Y) 134.75/45.98 MARK(s(X)) -> MARK(X) 134.75/45.98 ACTIVE(plus(s(X), Y)) -> MARK(s(plus(X, Y))) 134.75/45.98 ACTIVE(times(s(X), Y)) -> MARK(plus(Y, times(X, Y))) 134.75/45.98 MARK(plus(X1, X2)) -> MARK(X2) 134.75/45.98 The remaining pairs can at least be oriented weakly. 134.75/45.98 Used ordering: Combined order from the following AFS and order. 134.75/45.98 ACTIVE(x1) = ACTIVE(x1) 134.75/45.98 134.75/45.98 2ndspos(x1, x2) = x1 134.75/45.98 134.75/45.98 s(x1) = s(x1) 134.75/45.98 134.75/45.98 cons(x1, x2) = cons(x1) 134.75/45.98 134.75/45.98 MARK(x1) = MARK(x1) 134.75/45.98 134.75/45.98 cons2(x1, x2) = x1 134.75/45.98 134.75/45.98 mark(x1) = x1 134.75/45.98 134.75/45.98 rcons(x1, x2) = rcons(x1, x2) 134.75/45.98 134.75/45.98 posrecip(x1) = posrecip 134.75/45.98 134.75/45.98 2ndsneg(x1, x2) = 2ndsneg(x1) 134.75/45.98 134.75/45.98 negrecip(x1) = negrecip 134.75/45.98 134.75/45.98 plus(x1, x2) = plus(x1, x2) 134.75/45.98 134.75/45.98 0 = 0 134.75/45.98 134.75/45.98 times(x1, x2) = times(x1, x2) 134.75/45.98 134.75/45.98 active(x1) = x1 134.75/45.98 134.75/45.98 from(x1) = from(x1) 134.75/45.98 134.75/45.98 pi(x1) = pi(x1) 134.75/45.98 134.75/45.98 square(x1) = square(x1) 134.75/45.98 134.75/45.98 rnil = rnil 134.75/45.98 134.75/45.98 134.75/45.98 Recursive path order with status [RPO]. 134.75/45.98 Quasi-Precedence: [ACTIVE_1, MARK_1, 0] > times_2 > plus_2 > s_1 > rcons_2 134.75/45.98 [ACTIVE_1, MARK_1, 0] > times_2 > plus_2 > s_1 > posrecip 134.75/45.98 [ACTIVE_1, MARK_1, 0] > times_2 > plus_2 > s_1 > 2ndsneg_1 > rnil 134.75/45.98 [ACTIVE_1, MARK_1, 0] > times_2 > plus_2 > s_1 > negrecip 134.75/45.98 pi_1 > [cons_1, from_1] 134.75/45.98 square_1 > times_2 > plus_2 > s_1 > rcons_2 134.75/45.98 square_1 > times_2 > plus_2 > s_1 > posrecip 134.75/45.98 square_1 > times_2 > plus_2 > s_1 > 2ndsneg_1 > rnil 134.75/45.98 square_1 > times_2 > plus_2 > s_1 > negrecip 134.75/45.98 134.75/45.98 Status: ACTIVE_1: [1] 134.75/45.98 s_1: [1] 134.75/45.98 cons_1: multiset status 134.75/45.98 MARK_1: [1] 134.75/45.98 rcons_2: multiset status 134.75/45.98 posrecip: multiset status 134.75/45.98 2ndsneg_1: multiset status 134.75/45.98 negrecip: [] 134.75/45.98 plus_2: [2,1] 134.75/45.98 0: multiset status 134.75/45.98 times_2: [2,1] 134.75/45.98 from_1: multiset status 134.75/45.98 pi_1: [1] 134.75/45.98 square_1: [1] 134.75/45.98 rnil: multiset status 134.75/45.98 134.75/45.98 134.75/45.98 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 134.75/45.98 134.75/45.98 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.98 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.98 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.98 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.98 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.98 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.98 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.98 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.98 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.98 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.98 active(plus(0, Y)) -> mark(Y) 134.75/45.98 mark(from(X)) -> active(from(mark(X))) 134.75/45.98 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.98 mark(s(X)) -> active(s(mark(X))) 134.75/45.98 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.98 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.98 active(square(X)) -> mark(times(X, X)) 134.75/45.98 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.98 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.98 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.98 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.98 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.98 mark(square(X)) -> active(square(mark(X))) 134.75/45.98 mark(0) -> active(0) 134.75/45.98 mark(rnil) -> active(rnil) 134.75/45.98 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.98 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.98 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.98 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.98 times(mark(X1), X2) -> times(X1, X2) 134.75/45.98 times(active(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, active(X2)) -> times(X1, X2) 134.75/45.98 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.98 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.98 active(times(0, Y)) -> mark(0) 134.75/45.98 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.98 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.98 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.98 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.98 from(active(X)) -> from(X) 134.75/45.98 from(mark(X)) -> from(X) 134.75/45.98 s(active(X)) -> s(X) 134.75/45.98 s(mark(X)) -> s(X) 134.75/45.98 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.98 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.98 posrecip(active(X)) -> posrecip(X) 134.75/45.98 posrecip(mark(X)) -> posrecip(X) 134.75/45.98 negrecip(active(X)) -> negrecip(X) 134.75/45.98 negrecip(mark(X)) -> negrecip(X) 134.75/45.98 pi(active(X)) -> pi(X) 134.75/45.98 pi(mark(X)) -> pi(X) 134.75/45.98 square(active(X)) -> square(X) 134.75/45.98 square(mark(X)) -> square(X) 134.75/45.98 134.75/45.98 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (142) 134.75/45.98 Obligation: 134.75/45.98 Q DP problem: 134.75/45.98 The TRS P consists of the following rules: 134.75/45.98 134.75/45.98 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.98 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.98 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.98 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.98 MARK(plus(X1, X2)) -> ACTIVE(plus(mark(X1), mark(X2))) 134.75/45.98 MARK(times(X1, X2)) -> ACTIVE(times(mark(X1), mark(X2))) 134.75/45.98 134.75/45.98 The TRS R consists of the following rules: 134.75/45.98 134.75/45.98 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.98 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.98 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.98 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.98 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.98 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.98 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.98 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.98 active(plus(0, Y)) -> mark(Y) 134.75/45.98 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.98 active(times(0, Y)) -> mark(0) 134.75/45.98 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.98 active(square(X)) -> mark(times(X, X)) 134.75/45.98 mark(from(X)) -> active(from(mark(X))) 134.75/45.98 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.98 mark(s(X)) -> active(s(mark(X))) 134.75/45.98 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.98 mark(0) -> active(0) 134.75/45.98 mark(rnil) -> active(rnil) 134.75/45.98 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.98 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.98 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.98 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.98 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.98 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.98 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.98 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.98 mark(square(X)) -> active(square(mark(X))) 134.75/45.98 from(mark(X)) -> from(X) 134.75/45.98 from(active(X)) -> from(X) 134.75/45.98 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.98 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.98 s(mark(X)) -> s(X) 134.75/45.98 s(active(X)) -> s(X) 134.75/45.98 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.98 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.98 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.98 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.98 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.98 posrecip(mark(X)) -> posrecip(X) 134.75/45.98 posrecip(active(X)) -> posrecip(X) 134.75/45.98 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 negrecip(mark(X)) -> negrecip(X) 134.75/45.98 negrecip(active(X)) -> negrecip(X) 134.75/45.98 pi(mark(X)) -> pi(X) 134.75/45.98 pi(active(X)) -> pi(X) 134.75/45.98 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.98 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.98 times(mark(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.98 times(active(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, active(X2)) -> times(X1, X2) 134.75/45.98 square(mark(X)) -> square(X) 134.75/45.98 square(active(X)) -> square(X) 134.75/45.98 134.75/45.98 The set Q consists of the following terms: 134.75/45.98 134.75/45.98 active(from(x0)) 134.75/45.98 active(2ndspos(0, x0)) 134.75/45.98 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(2ndsneg(0, x0)) 134.75/45.98 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(pi(x0)) 134.75/45.98 active(plus(0, x0)) 134.75/45.98 active(plus(s(x0), x1)) 134.75/45.98 active(times(0, x0)) 134.75/45.98 active(times(s(x0), x1)) 134.75/45.98 active(square(x0)) 134.75/45.98 mark(from(x0)) 134.75/45.98 mark(cons(x0, x1)) 134.75/45.98 mark(s(x0)) 134.75/45.98 mark(2ndspos(x0, x1)) 134.75/45.98 mark(0) 134.75/45.98 mark(rnil) 134.75/45.98 mark(cons2(x0, x1)) 134.75/45.98 mark(rcons(x0, x1)) 134.75/45.98 mark(posrecip(x0)) 134.75/45.98 mark(2ndsneg(x0, x1)) 134.75/45.98 mark(negrecip(x0)) 134.75/45.98 mark(pi(x0)) 134.75/45.98 mark(plus(x0, x1)) 134.75/45.98 mark(times(x0, x1)) 134.75/45.98 mark(square(x0)) 134.75/45.98 from(mark(x0)) 134.75/45.98 from(active(x0)) 134.75/45.98 cons(mark(x0), x1) 134.75/45.98 cons(x0, mark(x1)) 134.75/45.98 cons(active(x0), x1) 134.75/45.98 cons(x0, active(x1)) 134.75/45.98 s(mark(x0)) 134.75/45.98 s(active(x0)) 134.75/45.98 2ndspos(mark(x0), x1) 134.75/45.98 2ndspos(x0, mark(x1)) 134.75/45.98 2ndspos(active(x0), x1) 134.75/45.98 2ndspos(x0, active(x1)) 134.75/45.98 cons2(mark(x0), x1) 134.75/45.98 cons2(x0, mark(x1)) 134.75/45.98 cons2(active(x0), x1) 134.75/45.98 cons2(x0, active(x1)) 134.75/45.98 rcons(mark(x0), x1) 134.75/45.98 rcons(x0, mark(x1)) 134.75/45.98 rcons(active(x0), x1) 134.75/45.98 rcons(x0, active(x1)) 134.75/45.98 posrecip(mark(x0)) 134.75/45.98 posrecip(active(x0)) 134.75/45.98 2ndsneg(mark(x0), x1) 134.75/45.98 2ndsneg(x0, mark(x1)) 134.75/45.98 2ndsneg(active(x0), x1) 134.75/45.98 2ndsneg(x0, active(x1)) 134.75/45.98 negrecip(mark(x0)) 134.75/45.98 negrecip(active(x0)) 134.75/45.98 pi(mark(x0)) 134.75/45.98 pi(active(x0)) 134.75/45.98 plus(mark(x0), x1) 134.75/45.98 plus(x0, mark(x1)) 134.75/45.98 plus(active(x0), x1) 134.75/45.98 plus(x0, active(x1)) 134.75/45.98 times(mark(x0), x1) 134.75/45.98 times(x0, mark(x1)) 134.75/45.98 times(active(x0), x1) 134.75/45.98 times(x0, active(x1)) 134.75/45.98 square(mark(x0)) 134.75/45.98 square(active(x0)) 134.75/45.98 134.75/45.98 We have to consider all minimal (P,Q,R)-chains. 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (143) DependencyGraphProof (EQUIVALENT) 134.75/45.98 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (144) 134.75/45.98 Obligation: 134.75/45.98 Q DP problem: 134.75/45.98 The TRS P consists of the following rules: 134.75/45.98 134.75/45.98 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.98 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.98 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.98 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.98 134.75/45.98 The TRS R consists of the following rules: 134.75/45.98 134.75/45.98 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.98 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.98 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.98 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.98 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.98 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.98 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.98 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.98 active(plus(0, Y)) -> mark(Y) 134.75/45.98 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.98 active(times(0, Y)) -> mark(0) 134.75/45.98 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.98 active(square(X)) -> mark(times(X, X)) 134.75/45.98 mark(from(X)) -> active(from(mark(X))) 134.75/45.98 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.98 mark(s(X)) -> active(s(mark(X))) 134.75/45.98 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.98 mark(0) -> active(0) 134.75/45.98 mark(rnil) -> active(rnil) 134.75/45.98 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.98 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.98 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.98 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.98 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.98 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.98 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.98 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.98 mark(square(X)) -> active(square(mark(X))) 134.75/45.98 from(mark(X)) -> from(X) 134.75/45.98 from(active(X)) -> from(X) 134.75/45.98 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.98 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.98 s(mark(X)) -> s(X) 134.75/45.98 s(active(X)) -> s(X) 134.75/45.98 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.98 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.98 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.98 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.98 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.98 posrecip(mark(X)) -> posrecip(X) 134.75/45.98 posrecip(active(X)) -> posrecip(X) 134.75/45.98 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 negrecip(mark(X)) -> negrecip(X) 134.75/45.98 negrecip(active(X)) -> negrecip(X) 134.75/45.98 pi(mark(X)) -> pi(X) 134.75/45.98 pi(active(X)) -> pi(X) 134.75/45.98 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.98 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.98 times(mark(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.98 times(active(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, active(X2)) -> times(X1, X2) 134.75/45.98 square(mark(X)) -> square(X) 134.75/45.98 square(active(X)) -> square(X) 134.75/45.98 134.75/45.98 The set Q consists of the following terms: 134.75/45.98 134.75/45.98 active(from(x0)) 134.75/45.98 active(2ndspos(0, x0)) 134.75/45.98 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(2ndsneg(0, x0)) 134.75/45.98 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(pi(x0)) 134.75/45.98 active(plus(0, x0)) 134.75/45.98 active(plus(s(x0), x1)) 134.75/45.98 active(times(0, x0)) 134.75/45.98 active(times(s(x0), x1)) 134.75/45.98 active(square(x0)) 134.75/45.98 mark(from(x0)) 134.75/45.98 mark(cons(x0, x1)) 134.75/45.98 mark(s(x0)) 134.75/45.98 mark(2ndspos(x0, x1)) 134.75/45.98 mark(0) 134.75/45.98 mark(rnil) 134.75/45.98 mark(cons2(x0, x1)) 134.75/45.98 mark(rcons(x0, x1)) 134.75/45.98 mark(posrecip(x0)) 134.75/45.98 mark(2ndsneg(x0, x1)) 134.75/45.98 mark(negrecip(x0)) 134.75/45.98 mark(pi(x0)) 134.75/45.98 mark(plus(x0, x1)) 134.75/45.98 mark(times(x0, x1)) 134.75/45.98 mark(square(x0)) 134.75/45.98 from(mark(x0)) 134.75/45.98 from(active(x0)) 134.75/45.98 cons(mark(x0), x1) 134.75/45.98 cons(x0, mark(x1)) 134.75/45.98 cons(active(x0), x1) 134.75/45.98 cons(x0, active(x1)) 134.75/45.98 s(mark(x0)) 134.75/45.98 s(active(x0)) 134.75/45.98 2ndspos(mark(x0), x1) 134.75/45.98 2ndspos(x0, mark(x1)) 134.75/45.98 2ndspos(active(x0), x1) 134.75/45.98 2ndspos(x0, active(x1)) 134.75/45.98 cons2(mark(x0), x1) 134.75/45.98 cons2(x0, mark(x1)) 134.75/45.98 cons2(active(x0), x1) 134.75/45.98 cons2(x0, active(x1)) 134.75/45.98 rcons(mark(x0), x1) 134.75/45.98 rcons(x0, mark(x1)) 134.75/45.98 rcons(active(x0), x1) 134.75/45.98 rcons(x0, active(x1)) 134.75/45.98 posrecip(mark(x0)) 134.75/45.98 posrecip(active(x0)) 134.75/45.98 2ndsneg(mark(x0), x1) 134.75/45.98 2ndsneg(x0, mark(x1)) 134.75/45.98 2ndsneg(active(x0), x1) 134.75/45.98 2ndsneg(x0, active(x1)) 134.75/45.98 negrecip(mark(x0)) 134.75/45.98 negrecip(active(x0)) 134.75/45.98 pi(mark(x0)) 134.75/45.98 pi(active(x0)) 134.75/45.98 plus(mark(x0), x1) 134.75/45.98 plus(x0, mark(x1)) 134.75/45.98 plus(active(x0), x1) 134.75/45.98 plus(x0, active(x1)) 134.75/45.98 times(mark(x0), x1) 134.75/45.98 times(x0, mark(x1)) 134.75/45.98 times(active(x0), x1) 134.75/45.98 times(x0, active(x1)) 134.75/45.98 square(mark(x0)) 134.75/45.98 square(active(x0)) 134.75/45.98 134.75/45.98 We have to consider all minimal (P,Q,R)-chains. 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (145) QDPQMonotonicMRRProof (EQUIVALENT) 134.75/45.98 By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain. 134.75/45.98 134.75/45.98 Strictly oriented dependency pairs: 134.75/45.98 134.75/45.98 MARK(2ndspos(X1, X2)) -> ACTIVE(2ndspos(mark(X1), mark(X2))) 134.75/45.98 ACTIVE(2ndspos(s(N), cons(X, Z))) -> MARK(2ndspos(s(N), cons2(X, Z))) 134.75/45.98 ACTIVE(2ndsneg(s(N), cons(X, Z))) -> MARK(2ndsneg(s(N), cons2(X, Z))) 134.75/45.98 MARK(2ndsneg(X1, X2)) -> ACTIVE(2ndsneg(mark(X1), mark(X2))) 134.75/45.98 134.75/45.98 134.75/45.98 Used ordering: Polynomial interpretation [POLO]: 134.75/45.98 134.75/45.98 POL(0) = 0 134.75/45.98 POL(2ndsneg(x_1, x_2)) = 2*x_2 134.75/45.98 POL(2ndspos(x_1, x_2)) = x_2 134.75/45.98 POL(ACTIVE(x_1)) = 2*x_1 134.75/45.98 POL(MARK(x_1)) = 1 + 2*x_1 134.75/45.98 POL(active(x_1)) = x_1 134.75/45.98 POL(cons(x_1, x_2)) = 1 + x_1 134.75/45.98 POL(cons2(x_1, x_2)) = 0 134.75/45.98 POL(from(x_1)) = 2 + 2*x_1 134.75/45.98 POL(mark(x_1)) = x_1 134.75/45.98 POL(negrecip(x_1)) = 0 134.75/45.98 POL(pi(x_1)) = 2 134.75/45.98 POL(plus(x_1, x_2)) = 2*x_2 134.75/45.98 POL(posrecip(x_1)) = 0 134.75/45.98 POL(rcons(x_1, x_2)) = 0 134.75/45.98 POL(rnil) = 0 134.75/45.98 POL(s(x_1)) = 0 134.75/45.98 POL(square(x_1)) = 0 134.75/45.98 POL(times(x_1, x_2)) = 0 134.75/45.98 134.75/45.98 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (146) 134.75/45.98 Obligation: 134.75/45.98 Q DP problem: 134.75/45.98 P is empty. 134.75/45.98 The TRS R consists of the following rules: 134.75/45.98 134.75/45.98 active(from(X)) -> mark(cons(X, from(s(X)))) 134.75/45.98 active(2ndspos(0, Z)) -> mark(rnil) 134.75/45.98 active(2ndspos(s(N), cons(X, Z))) -> mark(2ndspos(s(N), cons2(X, Z))) 134.75/45.98 active(2ndspos(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(posrecip(Y), 2ndsneg(N, Z))) 134.75/45.98 active(2ndsneg(0, Z)) -> mark(rnil) 134.75/45.98 active(2ndsneg(s(N), cons(X, Z))) -> mark(2ndsneg(s(N), cons2(X, Z))) 134.75/45.98 active(2ndsneg(s(N), cons2(X, cons(Y, Z)))) -> mark(rcons(negrecip(Y), 2ndspos(N, Z))) 134.75/45.98 active(pi(X)) -> mark(2ndspos(X, from(0))) 134.75/45.98 active(plus(0, Y)) -> mark(Y) 134.75/45.98 active(plus(s(X), Y)) -> mark(s(plus(X, Y))) 134.75/45.98 active(times(0, Y)) -> mark(0) 134.75/45.98 active(times(s(X), Y)) -> mark(plus(Y, times(X, Y))) 134.75/45.98 active(square(X)) -> mark(times(X, X)) 134.75/45.98 mark(from(X)) -> active(from(mark(X))) 134.75/45.98 mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) 134.75/45.98 mark(s(X)) -> active(s(mark(X))) 134.75/45.98 mark(2ndspos(X1, X2)) -> active(2ndspos(mark(X1), mark(X2))) 134.75/45.98 mark(0) -> active(0) 134.75/45.98 mark(rnil) -> active(rnil) 134.75/45.98 mark(cons2(X1, X2)) -> active(cons2(X1, mark(X2))) 134.75/45.98 mark(rcons(X1, X2)) -> active(rcons(mark(X1), mark(X2))) 134.75/45.98 mark(posrecip(X)) -> active(posrecip(mark(X))) 134.75/45.98 mark(2ndsneg(X1, X2)) -> active(2ndsneg(mark(X1), mark(X2))) 134.75/45.98 mark(negrecip(X)) -> active(negrecip(mark(X))) 134.75/45.98 mark(pi(X)) -> active(pi(mark(X))) 134.75/45.98 mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) 134.75/45.98 mark(times(X1, X2)) -> active(times(mark(X1), mark(X2))) 134.75/45.98 mark(square(X)) -> active(square(mark(X))) 134.75/45.98 from(mark(X)) -> from(X) 134.75/45.98 from(active(X)) -> from(X) 134.75/45.98 cons(mark(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(X1, mark(X2)) -> cons(X1, X2) 134.75/45.98 cons(active(X1), X2) -> cons(X1, X2) 134.75/45.98 cons(X1, active(X2)) -> cons(X1, X2) 134.75/45.98 s(mark(X)) -> s(X) 134.75/45.98 s(active(X)) -> s(X) 134.75/45.98 2ndspos(mark(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, mark(X2)) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(active(X1), X2) -> 2ndspos(X1, X2) 134.75/45.98 2ndspos(X1, active(X2)) -> 2ndspos(X1, X2) 134.75/45.98 cons2(mark(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, mark(X2)) -> cons2(X1, X2) 134.75/45.98 cons2(active(X1), X2) -> cons2(X1, X2) 134.75/45.98 cons2(X1, active(X2)) -> cons2(X1, X2) 134.75/45.98 rcons(mark(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, mark(X2)) -> rcons(X1, X2) 134.75/45.98 rcons(active(X1), X2) -> rcons(X1, X2) 134.75/45.98 rcons(X1, active(X2)) -> rcons(X1, X2) 134.75/45.98 posrecip(mark(X)) -> posrecip(X) 134.75/45.98 posrecip(active(X)) -> posrecip(X) 134.75/45.98 2ndsneg(mark(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, mark(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(active(X1), X2) -> 2ndsneg(X1, X2) 134.75/45.98 2ndsneg(X1, active(X2)) -> 2ndsneg(X1, X2) 134.75/45.98 negrecip(mark(X)) -> negrecip(X) 134.75/45.98 negrecip(active(X)) -> negrecip(X) 134.75/45.98 pi(mark(X)) -> pi(X) 134.75/45.98 pi(active(X)) -> pi(X) 134.75/45.98 plus(mark(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, mark(X2)) -> plus(X1, X2) 134.75/45.98 plus(active(X1), X2) -> plus(X1, X2) 134.75/45.98 plus(X1, active(X2)) -> plus(X1, X2) 134.75/45.98 times(mark(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, mark(X2)) -> times(X1, X2) 134.75/45.98 times(active(X1), X2) -> times(X1, X2) 134.75/45.98 times(X1, active(X2)) -> times(X1, X2) 134.75/45.98 square(mark(X)) -> square(X) 134.75/45.98 square(active(X)) -> square(X) 134.75/45.98 134.75/45.98 The set Q consists of the following terms: 134.75/45.98 134.75/45.98 active(from(x0)) 134.75/45.98 active(2ndspos(0, x0)) 134.75/45.98 active(2ndspos(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndspos(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(2ndsneg(0, x0)) 134.75/45.98 active(2ndsneg(s(x0), cons(x1, x2))) 134.75/45.98 active(2ndsneg(s(x0), cons2(x1, cons(x2, x3)))) 134.75/45.98 active(pi(x0)) 134.75/45.98 active(plus(0, x0)) 134.75/45.98 active(plus(s(x0), x1)) 134.75/45.98 active(times(0, x0)) 134.75/45.98 active(times(s(x0), x1)) 134.75/45.98 active(square(x0)) 134.75/45.98 mark(from(x0)) 134.75/45.98 mark(cons(x0, x1)) 134.75/45.98 mark(s(x0)) 134.75/45.98 mark(2ndspos(x0, x1)) 134.75/45.98 mark(0) 134.75/45.98 mark(rnil) 134.75/45.98 mark(cons2(x0, x1)) 134.75/45.98 mark(rcons(x0, x1)) 134.75/45.98 mark(posrecip(x0)) 134.75/45.98 mark(2ndsneg(x0, x1)) 134.75/45.98 mark(negrecip(x0)) 134.75/45.98 mark(pi(x0)) 134.75/45.98 mark(plus(x0, x1)) 134.75/45.98 mark(times(x0, x1)) 134.75/45.98 mark(square(x0)) 134.75/45.98 from(mark(x0)) 134.75/45.98 from(active(x0)) 134.75/45.98 cons(mark(x0), x1) 134.75/45.98 cons(x0, mark(x1)) 134.75/45.98 cons(active(x0), x1) 134.75/45.98 cons(x0, active(x1)) 134.75/45.98 s(mark(x0)) 134.75/45.98 s(active(x0)) 134.75/45.98 2ndspos(mark(x0), x1) 134.75/45.98 2ndspos(x0, mark(x1)) 134.75/45.98 2ndspos(active(x0), x1) 134.75/45.98 2ndspos(x0, active(x1)) 134.75/45.98 cons2(mark(x0), x1) 134.75/45.98 cons2(x0, mark(x1)) 134.75/45.98 cons2(active(x0), x1) 134.75/45.98 cons2(x0, active(x1)) 134.75/45.98 rcons(mark(x0), x1) 134.75/45.98 rcons(x0, mark(x1)) 134.75/45.98 rcons(active(x0), x1) 134.75/45.98 rcons(x0, active(x1)) 134.75/45.98 posrecip(mark(x0)) 134.75/45.98 posrecip(active(x0)) 134.75/45.98 2ndsneg(mark(x0), x1) 134.75/45.98 2ndsneg(x0, mark(x1)) 134.75/45.98 2ndsneg(active(x0), x1) 134.75/45.98 2ndsneg(x0, active(x1)) 134.75/45.98 negrecip(mark(x0)) 134.75/45.98 negrecip(active(x0)) 134.75/45.98 pi(mark(x0)) 134.75/45.98 pi(active(x0)) 134.75/45.98 plus(mark(x0), x1) 134.75/45.98 plus(x0, mark(x1)) 134.75/45.98 plus(active(x0), x1) 134.75/45.98 plus(x0, active(x1)) 134.75/45.98 times(mark(x0), x1) 134.75/45.98 times(x0, mark(x1)) 134.75/45.98 times(active(x0), x1) 134.75/45.98 times(x0, active(x1)) 134.75/45.98 square(mark(x0)) 134.75/45.98 square(active(x0)) 134.75/45.98 134.75/45.98 We have to consider all minimal (P,Q,R)-chains. 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (147) PisEmptyProof (EQUIVALENT) 134.75/45.98 The TRS P is empty. Hence, there is no (P,Q,R) chain. 134.75/45.98 ---------------------------------------- 134.75/45.98 134.75/45.98 (148) 134.75/45.98 YES 134.75/46.02 EOF