167.44/43.65 YES 167.99/43.80 proof of /export/starexec/sandbox2/benchmark/theBenchmark.xml 167.99/43.80 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 167.99/43.80 167.99/43.80 167.99/43.80 Termination w.r.t. Q of the given QTRS could be proven: 167.99/43.80 167.99/43.80 (0) QTRS 167.99/43.80 (1) DependencyPairsProof [EQUIVALENT, 50 ms] 167.99/43.80 (2) QDP 167.99/43.80 (3) TransformationProof [EQUIVALENT, 70 ms] 167.99/43.80 (4) QDP 167.99/43.80 (5) DependencyGraphProof [EQUIVALENT, 0 ms] 167.99/43.80 (6) QDP 167.99/43.80 (7) QDPOrderProof [EQUIVALENT, 402 ms] 167.99/43.80 (8) QDP 167.99/43.80 (9) QDPOrderProof [EQUIVALENT, 317 ms] 167.99/43.80 (10) QDP 167.99/43.80 (11) QDPOrderProof [EQUIVALENT, 348 ms] 167.99/43.80 (12) QDP 167.99/43.80 (13) QDPOrderProof [EQUIVALENT, 270 ms] 167.99/43.80 (14) QDP 167.99/43.80 (15) DependencyGraphProof [EQUIVALENT, 0 ms] 167.99/43.80 (16) QDP 167.99/43.80 (17) QDPOrderProof [EQUIVALENT, 285 ms] 167.99/43.80 (18) QDP 167.99/43.80 (19) DependencyGraphProof [EQUIVALENT, 0 ms] 167.99/43.80 (20) QDP 167.99/43.80 (21) QDPOrderProof [EQUIVALENT, 309 ms] 167.99/43.80 (22) QDP 167.99/43.80 (23) QDPOrderProof [EQUIVALENT, 235 ms] 167.99/43.80 (24) QDP 167.99/43.80 (25) DependencyGraphProof [EQUIVALENT, 0 ms] 167.99/43.80 (26) QDP 167.99/43.80 (27) QDPOrderProof [EQUIVALENT, 265 ms] 167.99/43.80 (28) QDP 167.99/43.80 (29) QDPOrderProof [EQUIVALENT, 281 ms] 167.99/43.80 (30) QDP 167.99/43.80 (31) QDPOrderProof [EQUIVALENT, 280 ms] 167.99/43.80 (32) QDP 167.99/43.80 (33) QDPOrderProof [EQUIVALENT, 203 ms] 167.99/43.80 (34) QDP 167.99/43.80 (35) QDPOrderProof [EQUIVALENT, 270 ms] 167.99/43.80 (36) QDP 167.99/43.80 (37) QDPOrderProof [EQUIVALENT, 249 ms] 167.99/43.80 (38) QDP 167.99/43.80 (39) QDPOrderProof [EQUIVALENT, 308 ms] 167.99/43.80 (40) QDP 167.99/43.80 (41) QDPOrderProof [EQUIVALENT, 295 ms] 167.99/43.80 (42) QDP 167.99/43.80 (43) DependencyGraphProof [EQUIVALENT, 0 ms] 167.99/43.80 (44) AND 167.99/43.80 (45) QDP 167.99/43.80 (46) QDPOrderProof [EQUIVALENT, 202 ms] 167.99/43.80 (47) QDP 167.99/43.80 (48) QDPOrderProof [EQUIVALENT, 212 ms] 167.99/43.80 (49) QDP 167.99/43.80 (50) QDPOrderProof [EQUIVALENT, 152 ms] 167.99/43.80 (51) QDP 167.99/43.80 (52) QDPOrderProof [EQUIVALENT, 75 ms] 167.99/43.80 (53) QDP 167.99/43.80 (54) QDPOrderProof [EQUIVALENT, 310 ms] 167.99/43.80 (55) QDP 167.99/43.80 (56) QDPOrderProof [EQUIVALENT, 256 ms] 167.99/43.80 (57) QDP 167.99/43.80 (58) PisEmptyProof [EQUIVALENT, 0 ms] 167.99/43.80 (59) YES 167.99/43.80 (60) QDP 167.99/43.80 (61) QDPOrderProof [EQUIVALENT, 293 ms] 167.99/43.80 (62) QDP 167.99/43.80 (63) PisEmptyProof [EQUIVALENT, 0 ms] 167.99/43.80 (64) YES 167.99/43.80 167.99/43.80 167.99/43.80 ---------------------------------------- 167.99/43.80 167.99/43.80 (0) 167.99/43.80 Obligation: 167.99/43.80 Q restricted rewrite system: 167.99/43.80 The TRS R consists of the following rules: 167.99/43.80 167.99/43.80 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.80 a__2ndspos(0, Z) -> rnil 167.99/43.80 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.80 a__2ndsneg(0, Z) -> rnil 167.99/43.80 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.80 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.80 a__plus(0, Y) -> mark(Y) 167.99/43.80 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.80 a__times(0, Y) -> 0 167.99/43.80 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.80 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.80 mark(from(X)) -> a__from(mark(X)) 167.99/43.80 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.80 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.80 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.80 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.80 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.80 mark(square(X)) -> a__square(mark(X)) 167.99/43.80 mark(0) -> 0 167.99/43.80 mark(s(X)) -> s(mark(X)) 167.99/43.80 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.80 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.80 mark(nil) -> nil 167.99/43.80 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.80 mark(rnil) -> rnil 167.99/43.80 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.80 a__from(X) -> from(X) 167.99/43.80 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.80 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.80 a__pi(X) -> pi(X) 167.99/43.80 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.80 a__times(X1, X2) -> times(X1, X2) 167.99/43.80 a__square(X) -> square(X) 167.99/43.80 167.99/43.80 The set Q consists of the following terms: 167.99/43.80 167.99/43.80 a__from(x0) 167.99/43.80 a__pi(x0) 167.99/43.80 a__square(x0) 167.99/43.80 mark(from(x0)) 167.99/43.80 mark(2ndspos(x0, x1)) 167.99/43.80 mark(2ndsneg(x0, x1)) 167.99/43.80 mark(pi(x0)) 167.99/43.80 mark(plus(x0, x1)) 167.99/43.80 mark(times(x0, x1)) 167.99/43.80 mark(square(x0)) 167.99/43.80 mark(0) 167.99/43.80 mark(s(x0)) 167.99/43.80 mark(posrecip(x0)) 167.99/43.80 mark(negrecip(x0)) 167.99/43.80 mark(nil) 167.99/43.80 mark(cons(x0, x1)) 167.99/43.80 mark(rnil) 167.99/43.80 mark(rcons(x0, x1)) 167.99/43.80 a__2ndspos(x0, x1) 167.99/43.80 a__2ndsneg(x0, x1) 167.99/43.80 a__plus(x0, x1) 167.99/43.80 a__times(x0, x1) 167.99/43.80 167.99/43.80 167.99/43.80 ---------------------------------------- 167.99/43.80 167.99/43.80 (1) DependencyPairsProof (EQUIVALENT) 167.99/43.80 Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. 167.99/43.80 ---------------------------------------- 167.99/43.80 167.99/43.80 (2) 167.99/43.80 Obligation: 167.99/43.80 Q DP problem: 167.99/43.80 The TRS P consists of the following rules: 167.99/43.80 167.99/43.80 A__FROM(X) -> MARK(X) 167.99/43.80 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.80 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.80 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.80 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.80 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.80 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.80 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.80 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.80 A__PI(X) -> A__2NDSPOS(mark(X), a__from(0)) 167.99/43.80 A__PI(X) -> MARK(X) 167.99/43.80 A__PI(X) -> A__FROM(0) 167.99/43.80 A__PLUS(0, Y) -> MARK(Y) 167.99/43.80 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.80 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.80 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.80 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.80 A__TIMES(s(X), Y) -> MARK(Y) 167.99/43.80 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.80 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.80 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.80 A__SQUARE(X) -> MARK(X) 167.99/43.80 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.80 MARK(from(X)) -> MARK(X) 167.99/43.80 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.80 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.80 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.80 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.80 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.80 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.80 MARK(pi(X)) -> A__PI(mark(X)) 167.99/43.80 MARK(pi(X)) -> MARK(X) 167.99/43.80 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.80 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.80 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.80 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.80 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.80 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.80 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.80 MARK(square(X)) -> MARK(X) 167.99/43.80 MARK(s(X)) -> MARK(X) 167.99/43.80 MARK(posrecip(X)) -> MARK(X) 167.99/43.80 MARK(negrecip(X)) -> MARK(X) 167.99/43.80 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.80 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.80 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.80 167.99/43.80 The TRS R consists of the following rules: 167.99/43.80 167.99/43.80 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.80 a__2ndspos(0, Z) -> rnil 167.99/43.80 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.80 a__2ndsneg(0, Z) -> rnil 167.99/43.80 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.80 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.80 a__plus(0, Y) -> mark(Y) 167.99/43.80 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.80 a__times(0, Y) -> 0 167.99/43.80 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.80 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.80 mark(from(X)) -> a__from(mark(X)) 167.99/43.80 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.80 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.80 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.80 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.80 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.80 mark(square(X)) -> a__square(mark(X)) 167.99/43.80 mark(0) -> 0 167.99/43.80 mark(s(X)) -> s(mark(X)) 167.99/43.80 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.80 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.80 mark(nil) -> nil 167.99/43.80 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.80 mark(rnil) -> rnil 167.99/43.80 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.80 a__from(X) -> from(X) 167.99/43.80 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.80 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.80 a__pi(X) -> pi(X) 167.99/43.80 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.80 a__times(X1, X2) -> times(X1, X2) 167.99/43.80 a__square(X) -> square(X) 167.99/43.80 167.99/43.80 The set Q consists of the following terms: 167.99/43.80 167.99/43.80 a__from(x0) 167.99/43.80 a__pi(x0) 167.99/43.80 a__square(x0) 167.99/43.80 mark(from(x0)) 167.99/43.80 mark(2ndspos(x0, x1)) 167.99/43.80 mark(2ndsneg(x0, x1)) 167.99/43.80 mark(pi(x0)) 167.99/43.80 mark(plus(x0, x1)) 167.99/43.80 mark(times(x0, x1)) 167.99/43.80 mark(square(x0)) 167.99/43.80 mark(0) 167.99/43.80 mark(s(x0)) 167.99/43.80 mark(posrecip(x0)) 167.99/43.80 mark(negrecip(x0)) 167.99/43.80 mark(nil) 167.99/43.80 mark(cons(x0, x1)) 167.99/43.80 mark(rnil) 167.99/43.80 mark(rcons(x0, x1)) 167.99/43.80 a__2ndspos(x0, x1) 167.99/43.80 a__2ndsneg(x0, x1) 167.99/43.80 a__plus(x0, x1) 167.99/43.80 a__times(x0, x1) 167.99/43.80 167.99/43.80 We have to consider all minimal (P,Q,R)-chains. 167.99/43.80 ---------------------------------------- 167.99/43.80 167.99/43.80 (3) TransformationProof (EQUIVALENT) 167.99/43.80 By narrowing [LPAR04] the rule A__PI(X) -> A__2NDSPOS(mark(X), a__from(0)) at position [1] we obtained the following new rules [LPAR04]: 167.99/43.82 167.99/43.82 (A__PI(y0) -> A__2NDSPOS(mark(y0), cons(mark(0), from(s(0)))),A__PI(y0) -> A__2NDSPOS(mark(y0), cons(mark(0), from(s(0))))) 167.99/43.82 (A__PI(y0) -> A__2NDSPOS(mark(y0), from(0)),A__PI(y0) -> A__2NDSPOS(mark(y0), from(0))) 167.99/43.82 167.99/43.82 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (4) 167.99/43.82 Obligation: 167.99/43.82 Q DP problem: 167.99/43.82 The TRS P consists of the following rules: 167.99/43.82 167.99/43.82 A__FROM(X) -> MARK(X) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 A__PI(X) -> MARK(X) 167.99/43.82 A__PI(X) -> A__FROM(0) 167.99/43.82 A__PLUS(0, Y) -> MARK(Y) 167.99/43.82 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.82 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 A__TIMES(s(X), Y) -> MARK(Y) 167.99/43.82 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.82 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.82 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.82 A__SQUARE(X) -> MARK(X) 167.99/43.82 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.82 MARK(from(X)) -> MARK(X) 167.99/43.82 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(pi(X)) -> A__PI(mark(X)) 167.99/43.82 MARK(pi(X)) -> MARK(X) 167.99/43.82 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.82 MARK(square(X)) -> MARK(X) 167.99/43.82 MARK(s(X)) -> MARK(X) 167.99/43.82 MARK(posrecip(X)) -> MARK(X) 167.99/43.82 MARK(negrecip(X)) -> MARK(X) 167.99/43.82 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.82 A__PI(y0) -> A__2NDSPOS(mark(y0), cons(mark(0), from(s(0)))) 167.99/43.82 A__PI(y0) -> A__2NDSPOS(mark(y0), from(0)) 167.99/43.82 167.99/43.82 The TRS R consists of the following rules: 167.99/43.82 167.99/43.82 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.82 a__2ndspos(0, Z) -> rnil 167.99/43.82 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.82 a__2ndsneg(0, Z) -> rnil 167.99/43.82 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.82 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.82 a__plus(0, Y) -> mark(Y) 167.99/43.82 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.82 a__times(0, Y) -> 0 167.99/43.82 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.82 mark(from(X)) -> a__from(mark(X)) 167.99/43.82 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.82 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.82 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.82 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.82 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.82 mark(square(X)) -> a__square(mark(X)) 167.99/43.82 mark(0) -> 0 167.99/43.82 mark(s(X)) -> s(mark(X)) 167.99/43.82 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.82 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.82 mark(nil) -> nil 167.99/43.82 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.82 mark(rnil) -> rnil 167.99/43.82 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.82 a__from(X) -> from(X) 167.99/43.82 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.82 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.82 a__pi(X) -> pi(X) 167.99/43.82 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.82 a__times(X1, X2) -> times(X1, X2) 167.99/43.82 a__square(X) -> square(X) 167.99/43.82 167.99/43.82 The set Q consists of the following terms: 167.99/43.82 167.99/43.82 a__from(x0) 167.99/43.82 a__pi(x0) 167.99/43.82 a__square(x0) 167.99/43.82 mark(from(x0)) 167.99/43.82 mark(2ndspos(x0, x1)) 167.99/43.82 mark(2ndsneg(x0, x1)) 167.99/43.82 mark(pi(x0)) 167.99/43.82 mark(plus(x0, x1)) 167.99/43.82 mark(times(x0, x1)) 167.99/43.82 mark(square(x0)) 167.99/43.82 mark(0) 167.99/43.82 mark(s(x0)) 167.99/43.82 mark(posrecip(x0)) 167.99/43.82 mark(negrecip(x0)) 167.99/43.82 mark(nil) 167.99/43.82 mark(cons(x0, x1)) 167.99/43.82 mark(rnil) 167.99/43.82 mark(rcons(x0, x1)) 167.99/43.82 a__2ndspos(x0, x1) 167.99/43.82 a__2ndsneg(x0, x1) 167.99/43.82 a__plus(x0, x1) 167.99/43.82 a__times(x0, x1) 167.99/43.82 167.99/43.82 We have to consider all minimal (P,Q,R)-chains. 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (5) DependencyGraphProof (EQUIVALENT) 167.99/43.82 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (6) 167.99/43.82 Obligation: 167.99/43.82 Q DP problem: 167.99/43.82 The TRS P consists of the following rules: 167.99/43.82 167.99/43.82 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.82 A__FROM(X) -> MARK(X) 167.99/43.82 MARK(from(X)) -> MARK(X) 167.99/43.82 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(pi(X)) -> A__PI(mark(X)) 167.99/43.82 A__PI(X) -> MARK(X) 167.99/43.82 MARK(pi(X)) -> MARK(X) 167.99/43.82 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.82 A__PLUS(0, Y) -> MARK(Y) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.82 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.82 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.82 A__TIMES(s(X), Y) -> MARK(Y) 167.99/43.82 MARK(square(X)) -> MARK(X) 167.99/43.82 MARK(s(X)) -> MARK(X) 167.99/43.82 MARK(posrecip(X)) -> MARK(X) 167.99/43.82 MARK(negrecip(X)) -> MARK(X) 167.99/43.82 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.82 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.82 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.82 A__SQUARE(X) -> MARK(X) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.82 A__PI(X) -> A__FROM(0) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 167.99/43.82 The TRS R consists of the following rules: 167.99/43.82 167.99/43.82 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.82 a__2ndspos(0, Z) -> rnil 167.99/43.82 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.82 a__2ndsneg(0, Z) -> rnil 167.99/43.82 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.82 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.82 a__plus(0, Y) -> mark(Y) 167.99/43.82 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.82 a__times(0, Y) -> 0 167.99/43.82 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.82 mark(from(X)) -> a__from(mark(X)) 167.99/43.82 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.82 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.82 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.82 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.82 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.82 mark(square(X)) -> a__square(mark(X)) 167.99/43.82 mark(0) -> 0 167.99/43.82 mark(s(X)) -> s(mark(X)) 167.99/43.82 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.82 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.82 mark(nil) -> nil 167.99/43.82 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.82 mark(rnil) -> rnil 167.99/43.82 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.82 a__from(X) -> from(X) 167.99/43.82 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.82 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.82 a__pi(X) -> pi(X) 167.99/43.82 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.82 a__times(X1, X2) -> times(X1, X2) 167.99/43.82 a__square(X) -> square(X) 167.99/43.82 167.99/43.82 The set Q consists of the following terms: 167.99/43.82 167.99/43.82 a__from(x0) 167.99/43.82 a__pi(x0) 167.99/43.82 a__square(x0) 167.99/43.82 mark(from(x0)) 167.99/43.82 mark(2ndspos(x0, x1)) 167.99/43.82 mark(2ndsneg(x0, x1)) 167.99/43.82 mark(pi(x0)) 167.99/43.82 mark(plus(x0, x1)) 167.99/43.82 mark(times(x0, x1)) 167.99/43.82 mark(square(x0)) 167.99/43.82 mark(0) 167.99/43.82 mark(s(x0)) 167.99/43.82 mark(posrecip(x0)) 167.99/43.82 mark(negrecip(x0)) 167.99/43.82 mark(nil) 167.99/43.82 mark(cons(x0, x1)) 167.99/43.82 mark(rnil) 167.99/43.82 mark(rcons(x0, x1)) 167.99/43.82 a__2ndspos(x0, x1) 167.99/43.82 a__2ndsneg(x0, x1) 167.99/43.82 a__plus(x0, x1) 167.99/43.82 a__times(x0, x1) 167.99/43.82 167.99/43.82 We have to consider all minimal (P,Q,R)-chains. 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (7) QDPOrderProof (EQUIVALENT) 167.99/43.82 We use the reduction pair processor [LPAR04,JAR06]. 167.99/43.82 167.99/43.82 167.99/43.82 The following pairs can be oriented strictly and are deleted. 167.99/43.82 167.99/43.82 A__TIMES(s(X), Y) -> MARK(Y) 167.99/43.82 The remaining pairs can at least be oriented weakly. 167.99/43.82 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(from(x_1)) = [[4A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__FROM(x_1)) = [[4A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__2NDSPOS(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(s(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(cons(x_1, x_2)) = [[4A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__2NDSNEG(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(pi(x_1)) = [[4A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__PI(x_1)) = [[4A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__PLUS(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(0) = [[0A]] 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[1A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__TIMES(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[1A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[1A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(square(x_1)) = [[0A]] + [[1A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__SQUARE(x_1)) = [[0A]] + [[1A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(posrecip(x_1)) = [[4A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__from(x_1)) = [[4A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__pi(x_1)) = [[4A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__square(x_1)) = [[0A]] + [[1A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(nil) = [[0A]] 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(rnil) = [[0A]] 167.99/43.82 >>> 167.99/43.82 167.99/43.82 167.99/43.82 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 167.99/43.82 167.99/43.82 mark(from(X)) -> a__from(mark(X)) 167.99/43.82 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.82 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.82 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.82 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.82 a__plus(0, Y) -> mark(Y) 167.99/43.82 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.82 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 mark(square(X)) -> a__square(mark(X)) 167.99/43.82 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.82 mark(0) -> 0 167.99/43.82 mark(s(X)) -> s(mark(X)) 167.99/43.82 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.82 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.82 mark(nil) -> nil 167.99/43.82 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.82 mark(rnil) -> rnil 167.99/43.82 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.82 a__times(0, Y) -> 0 167.99/43.82 a__times(X1, X2) -> times(X1, X2) 167.99/43.82 a__from(X) -> from(X) 167.99/43.82 a__2ndspos(0, Z) -> rnil 167.99/43.82 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.82 a__2ndsneg(0, Z) -> rnil 167.99/43.82 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.82 a__pi(X) -> pi(X) 167.99/43.82 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.82 a__square(X) -> square(X) 167.99/43.82 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.82 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.82 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.82 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.82 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.82 167.99/43.82 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (8) 167.99/43.82 Obligation: 167.99/43.82 Q DP problem: 167.99/43.82 The TRS P consists of the following rules: 167.99/43.82 167.99/43.82 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.82 A__FROM(X) -> MARK(X) 167.99/43.82 MARK(from(X)) -> MARK(X) 167.99/43.82 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(pi(X)) -> A__PI(mark(X)) 167.99/43.82 A__PI(X) -> MARK(X) 167.99/43.82 MARK(pi(X)) -> MARK(X) 167.99/43.82 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.82 A__PLUS(0, Y) -> MARK(Y) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.82 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.82 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.82 MARK(square(X)) -> MARK(X) 167.99/43.82 MARK(s(X)) -> MARK(X) 167.99/43.82 MARK(posrecip(X)) -> MARK(X) 167.99/43.82 MARK(negrecip(X)) -> MARK(X) 167.99/43.82 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.82 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.82 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.82 A__SQUARE(X) -> MARK(X) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.82 A__PI(X) -> A__FROM(0) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 167.99/43.82 The TRS R consists of the following rules: 167.99/43.82 167.99/43.82 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.82 a__2ndspos(0, Z) -> rnil 167.99/43.82 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.82 a__2ndsneg(0, Z) -> rnil 167.99/43.82 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.82 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.82 a__plus(0, Y) -> mark(Y) 167.99/43.82 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.82 a__times(0, Y) -> 0 167.99/43.82 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.82 mark(from(X)) -> a__from(mark(X)) 167.99/43.82 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.82 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.82 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.82 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.82 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.82 mark(square(X)) -> a__square(mark(X)) 167.99/43.82 mark(0) -> 0 167.99/43.82 mark(s(X)) -> s(mark(X)) 167.99/43.82 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.82 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.82 mark(nil) -> nil 167.99/43.82 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.82 mark(rnil) -> rnil 167.99/43.82 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.82 a__from(X) -> from(X) 167.99/43.82 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.82 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.82 a__pi(X) -> pi(X) 167.99/43.82 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.82 a__times(X1, X2) -> times(X1, X2) 167.99/43.82 a__square(X) -> square(X) 167.99/43.82 167.99/43.82 The set Q consists of the following terms: 167.99/43.82 167.99/43.82 a__from(x0) 167.99/43.82 a__pi(x0) 167.99/43.82 a__square(x0) 167.99/43.82 mark(from(x0)) 167.99/43.82 mark(2ndspos(x0, x1)) 167.99/43.82 mark(2ndsneg(x0, x1)) 167.99/43.82 mark(pi(x0)) 167.99/43.82 mark(plus(x0, x1)) 167.99/43.82 mark(times(x0, x1)) 167.99/43.82 mark(square(x0)) 167.99/43.82 mark(0) 167.99/43.82 mark(s(x0)) 167.99/43.82 mark(posrecip(x0)) 167.99/43.82 mark(negrecip(x0)) 167.99/43.82 mark(nil) 167.99/43.82 mark(cons(x0, x1)) 167.99/43.82 mark(rnil) 167.99/43.82 mark(rcons(x0, x1)) 167.99/43.82 a__2ndspos(x0, x1) 167.99/43.82 a__2ndsneg(x0, x1) 167.99/43.82 a__plus(x0, x1) 167.99/43.82 a__times(x0, x1) 167.99/43.82 167.99/43.82 We have to consider all minimal (P,Q,R)-chains. 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (9) QDPOrderProof (EQUIVALENT) 167.99/43.82 We use the reduction pair processor [LPAR04,JAR06]. 167.99/43.82 167.99/43.82 167.99/43.82 The following pairs can be oriented strictly and are deleted. 167.99/43.82 167.99/43.82 A__PI(X) -> A__FROM(0) 167.99/43.82 The remaining pairs can at least be oriented weakly. 167.99/43.82 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__FROM(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__2NDSPOS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__2NDSNEG(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(pi(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__PI(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__PLUS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(0) = [[0A]] 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__TIMES(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(A__SQUARE(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__pi(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(a__square(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(nil) = [[0A]] 167.99/43.82 >>> 167.99/43.82 167.99/43.82 <<< 167.99/43.82 POL(rnil) = [[0A]] 167.99/43.82 >>> 167.99/43.82 167.99/43.82 167.99/43.82 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 167.99/43.82 167.99/43.82 mark(from(X)) -> a__from(mark(X)) 167.99/43.82 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.82 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.82 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.82 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.82 a__plus(0, Y) -> mark(Y) 167.99/43.82 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.82 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 mark(square(X)) -> a__square(mark(X)) 167.99/43.82 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.82 mark(0) -> 0 167.99/43.82 mark(s(X)) -> s(mark(X)) 167.99/43.82 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.82 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.82 mark(nil) -> nil 167.99/43.82 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.82 mark(rnil) -> rnil 167.99/43.82 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.82 a__times(0, Y) -> 0 167.99/43.82 a__times(X1, X2) -> times(X1, X2) 167.99/43.82 a__from(X) -> from(X) 167.99/43.82 a__2ndspos(0, Z) -> rnil 167.99/43.82 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.82 a__2ndsneg(0, Z) -> rnil 167.99/43.82 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.82 a__pi(X) -> pi(X) 167.99/43.82 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.82 a__square(X) -> square(X) 167.99/43.82 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.82 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.82 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.82 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.82 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.82 167.99/43.82 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (10) 167.99/43.82 Obligation: 167.99/43.82 Q DP problem: 167.99/43.82 The TRS P consists of the following rules: 167.99/43.82 167.99/43.82 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.82 A__FROM(X) -> MARK(X) 167.99/43.82 MARK(from(X)) -> MARK(X) 167.99/43.82 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(pi(X)) -> A__PI(mark(X)) 167.99/43.82 A__PI(X) -> MARK(X) 167.99/43.82 MARK(pi(X)) -> MARK(X) 167.99/43.82 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.82 A__PLUS(0, Y) -> MARK(Y) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.82 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.82 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.82 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.82 MARK(square(X)) -> MARK(X) 167.99/43.82 MARK(s(X)) -> MARK(X) 167.99/43.82 MARK(posrecip(X)) -> MARK(X) 167.99/43.82 MARK(negrecip(X)) -> MARK(X) 167.99/43.82 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.82 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.82 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.82 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.82 A__SQUARE(X) -> MARK(X) 167.99/43.82 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.82 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.82 167.99/43.82 The TRS R consists of the following rules: 167.99/43.82 167.99/43.82 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.82 a__2ndspos(0, Z) -> rnil 167.99/43.82 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.82 a__2ndsneg(0, Z) -> rnil 167.99/43.82 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.82 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.82 a__plus(0, Y) -> mark(Y) 167.99/43.82 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.82 a__times(0, Y) -> 0 167.99/43.82 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.82 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.82 mark(from(X)) -> a__from(mark(X)) 167.99/43.82 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.82 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.82 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.82 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.82 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.82 mark(square(X)) -> a__square(mark(X)) 167.99/43.82 mark(0) -> 0 167.99/43.82 mark(s(X)) -> s(mark(X)) 167.99/43.82 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.82 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.82 mark(nil) -> nil 167.99/43.82 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.82 mark(rnil) -> rnil 167.99/43.82 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.82 a__from(X) -> from(X) 167.99/43.82 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.82 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.82 a__pi(X) -> pi(X) 167.99/43.82 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.82 a__times(X1, X2) -> times(X1, X2) 167.99/43.82 a__square(X) -> square(X) 167.99/43.82 167.99/43.82 The set Q consists of the following terms: 167.99/43.82 167.99/43.82 a__from(x0) 167.99/43.82 a__pi(x0) 167.99/43.82 a__square(x0) 167.99/43.82 mark(from(x0)) 167.99/43.82 mark(2ndspos(x0, x1)) 167.99/43.82 mark(2ndsneg(x0, x1)) 167.99/43.82 mark(pi(x0)) 167.99/43.82 mark(plus(x0, x1)) 167.99/43.82 mark(times(x0, x1)) 167.99/43.82 mark(square(x0)) 167.99/43.82 mark(0) 167.99/43.82 mark(s(x0)) 167.99/43.82 mark(posrecip(x0)) 167.99/43.82 mark(negrecip(x0)) 167.99/43.82 mark(nil) 167.99/43.82 mark(cons(x0, x1)) 167.99/43.82 mark(rnil) 167.99/43.82 mark(rcons(x0, x1)) 167.99/43.82 a__2ndspos(x0, x1) 167.99/43.82 a__2ndsneg(x0, x1) 167.99/43.82 a__plus(x0, x1) 167.99/43.82 a__times(x0, x1) 167.99/43.82 167.99/43.82 We have to consider all minimal (P,Q,R)-chains. 167.99/43.82 ---------------------------------------- 167.99/43.82 167.99/43.82 (11) QDPOrderProof (EQUIVALENT) 167.99/43.82 We use the reduction pair processor [LPAR04,JAR06]. 167.99/43.82 167.99/43.82 167.99/43.82 The following pairs can be oriented strictly and are deleted. 167.99/43.82 167.99/43.82 MARK(pi(X)) -> MARK(X) 167.99/43.82 The remaining pairs can at least be oriented weakly. 167.99/43.82 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__FROM(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(mark(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__2NDSPOS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__2NDSNEG(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(pi(x_1)) = [[2A]] + [[1A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__PI(x_1)) = [[2A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__PLUS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(0) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__TIMES(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__times(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__SQUARE(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__from(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__2ndspos(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__2ndsneg(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__pi(x_1)) = [[2A]] + [[1A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__plus(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__square(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(nil) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(rnil) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 167.99/43.84 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 167.99/43.84 167.99/43.84 mark(from(X)) -> a__from(mark(X)) 167.99/43.84 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.84 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.84 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.84 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.84 a__plus(0, Y) -> mark(Y) 167.99/43.84 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.84 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 mark(square(X)) -> a__square(mark(X)) 167.99/43.84 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.84 mark(0) -> 0 167.99/43.84 mark(s(X)) -> s(mark(X)) 167.99/43.84 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.84 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.84 mark(nil) -> nil 167.99/43.84 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.84 mark(rnil) -> rnil 167.99/43.84 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.84 a__times(0, Y) -> 0 167.99/43.84 a__times(X1, X2) -> times(X1, X2) 167.99/43.84 a__from(X) -> from(X) 167.99/43.84 a__2ndspos(0, Z) -> rnil 167.99/43.84 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.84 a__2ndsneg(0, Z) -> rnil 167.99/43.84 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.84 a__pi(X) -> pi(X) 167.99/43.84 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.84 a__square(X) -> square(X) 167.99/43.84 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.84 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.84 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.84 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.84 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.84 167.99/43.84 167.99/43.84 ---------------------------------------- 167.99/43.84 167.99/43.84 (12) 167.99/43.84 Obligation: 167.99/43.84 Q DP problem: 167.99/43.84 The TRS P consists of the following rules: 167.99/43.84 167.99/43.84 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.84 A__FROM(X) -> MARK(X) 167.99/43.84 MARK(from(X)) -> MARK(X) 167.99/43.84 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(pi(X)) -> A__PI(mark(X)) 167.99/43.84 A__PI(X) -> MARK(X) 167.99/43.84 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.84 A__PLUS(0, Y) -> MARK(Y) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.84 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.84 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.84 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.84 MARK(square(X)) -> MARK(X) 167.99/43.84 MARK(s(X)) -> MARK(X) 167.99/43.84 MARK(posrecip(X)) -> MARK(X) 167.99/43.84 MARK(negrecip(X)) -> MARK(X) 167.99/43.84 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.84 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.84 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.84 A__SQUARE(X) -> MARK(X) 167.99/43.84 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.84 167.99/43.84 The TRS R consists of the following rules: 167.99/43.84 167.99/43.84 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.84 a__2ndspos(0, Z) -> rnil 167.99/43.84 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.84 a__2ndsneg(0, Z) -> rnil 167.99/43.84 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.84 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.84 a__plus(0, Y) -> mark(Y) 167.99/43.84 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.84 a__times(0, Y) -> 0 167.99/43.84 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.84 mark(from(X)) -> a__from(mark(X)) 167.99/43.84 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.84 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.84 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.84 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.84 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.84 mark(square(X)) -> a__square(mark(X)) 167.99/43.84 mark(0) -> 0 167.99/43.84 mark(s(X)) -> s(mark(X)) 167.99/43.84 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.84 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.84 mark(nil) -> nil 167.99/43.84 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.84 mark(rnil) -> rnil 167.99/43.84 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.84 a__from(X) -> from(X) 167.99/43.84 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.84 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.84 a__pi(X) -> pi(X) 167.99/43.84 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.84 a__times(X1, X2) -> times(X1, X2) 167.99/43.84 a__square(X) -> square(X) 167.99/43.84 167.99/43.84 The set Q consists of the following terms: 167.99/43.84 167.99/43.84 a__from(x0) 167.99/43.84 a__pi(x0) 167.99/43.84 a__square(x0) 167.99/43.84 mark(from(x0)) 167.99/43.84 mark(2ndspos(x0, x1)) 167.99/43.84 mark(2ndsneg(x0, x1)) 167.99/43.84 mark(pi(x0)) 167.99/43.84 mark(plus(x0, x1)) 167.99/43.84 mark(times(x0, x1)) 167.99/43.84 mark(square(x0)) 167.99/43.84 mark(0) 167.99/43.84 mark(s(x0)) 167.99/43.84 mark(posrecip(x0)) 167.99/43.84 mark(negrecip(x0)) 167.99/43.84 mark(nil) 167.99/43.84 mark(cons(x0, x1)) 167.99/43.84 mark(rnil) 167.99/43.84 mark(rcons(x0, x1)) 167.99/43.84 a__2ndspos(x0, x1) 167.99/43.84 a__2ndsneg(x0, x1) 167.99/43.84 a__plus(x0, x1) 167.99/43.84 a__times(x0, x1) 167.99/43.84 167.99/43.84 We have to consider all minimal (P,Q,R)-chains. 167.99/43.84 ---------------------------------------- 167.99/43.84 167.99/43.84 (13) QDPOrderProof (EQUIVALENT) 167.99/43.84 We use the reduction pair processor [LPAR04,JAR06]. 167.99/43.84 167.99/43.84 167.99/43.84 The following pairs can be oriented strictly and are deleted. 167.99/43.84 167.99/43.84 MARK(pi(X)) -> A__PI(mark(X)) 167.99/43.84 The remaining pairs can at least be oriented weakly. 167.99/43.84 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__FROM(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__2NDSPOS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(cons(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__2NDSNEG(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(pi(x_1)) = [[1A]] + [[1A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__PI(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__PLUS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(0) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__TIMES(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(square(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__SQUARE(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(posrecip(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__pi(x_1)) = [[1A]] + [[1A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__square(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(nil) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(rnil) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 167.99/43.84 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 167.99/43.84 167.99/43.84 mark(from(X)) -> a__from(mark(X)) 167.99/43.84 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.84 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.84 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.84 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.84 a__plus(0, Y) -> mark(Y) 167.99/43.84 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.84 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 mark(square(X)) -> a__square(mark(X)) 167.99/43.84 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.84 mark(0) -> 0 167.99/43.84 mark(s(X)) -> s(mark(X)) 167.99/43.84 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.84 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.84 mark(nil) -> nil 167.99/43.84 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.84 mark(rnil) -> rnil 167.99/43.84 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.84 a__times(0, Y) -> 0 167.99/43.84 a__times(X1, X2) -> times(X1, X2) 167.99/43.84 a__from(X) -> from(X) 167.99/43.84 a__2ndspos(0, Z) -> rnil 167.99/43.84 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.84 a__2ndsneg(0, Z) -> rnil 167.99/43.84 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.84 a__pi(X) -> pi(X) 167.99/43.84 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.84 a__square(X) -> square(X) 167.99/43.84 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.84 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.84 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.84 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.84 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.84 167.99/43.84 167.99/43.84 ---------------------------------------- 167.99/43.84 167.99/43.84 (14) 167.99/43.84 Obligation: 167.99/43.84 Q DP problem: 167.99/43.84 The TRS P consists of the following rules: 167.99/43.84 167.99/43.84 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.84 A__FROM(X) -> MARK(X) 167.99/43.84 MARK(from(X)) -> MARK(X) 167.99/43.84 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.84 A__PI(X) -> MARK(X) 167.99/43.84 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.84 A__PLUS(0, Y) -> MARK(Y) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.84 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.84 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.84 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.84 MARK(square(X)) -> MARK(X) 167.99/43.84 MARK(s(X)) -> MARK(X) 167.99/43.84 MARK(posrecip(X)) -> MARK(X) 167.99/43.84 MARK(negrecip(X)) -> MARK(X) 167.99/43.84 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.84 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.84 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.84 A__SQUARE(X) -> MARK(X) 167.99/43.84 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.84 167.99/43.84 The TRS R consists of the following rules: 167.99/43.84 167.99/43.84 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.84 a__2ndspos(0, Z) -> rnil 167.99/43.84 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.84 a__2ndsneg(0, Z) -> rnil 167.99/43.84 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.84 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.84 a__plus(0, Y) -> mark(Y) 167.99/43.84 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.84 a__times(0, Y) -> 0 167.99/43.84 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.84 mark(from(X)) -> a__from(mark(X)) 167.99/43.84 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.84 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.84 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.84 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.84 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.84 mark(square(X)) -> a__square(mark(X)) 167.99/43.84 mark(0) -> 0 167.99/43.84 mark(s(X)) -> s(mark(X)) 167.99/43.84 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.84 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.84 mark(nil) -> nil 167.99/43.84 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.84 mark(rnil) -> rnil 167.99/43.84 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.84 a__from(X) -> from(X) 167.99/43.84 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.84 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.84 a__pi(X) -> pi(X) 167.99/43.84 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.84 a__times(X1, X2) -> times(X1, X2) 167.99/43.84 a__square(X) -> square(X) 167.99/43.84 167.99/43.84 The set Q consists of the following terms: 167.99/43.84 167.99/43.84 a__from(x0) 167.99/43.84 a__pi(x0) 167.99/43.84 a__square(x0) 167.99/43.84 mark(from(x0)) 167.99/43.84 mark(2ndspos(x0, x1)) 167.99/43.84 mark(2ndsneg(x0, x1)) 167.99/43.84 mark(pi(x0)) 167.99/43.84 mark(plus(x0, x1)) 167.99/43.84 mark(times(x0, x1)) 167.99/43.84 mark(square(x0)) 167.99/43.84 mark(0) 167.99/43.84 mark(s(x0)) 167.99/43.84 mark(posrecip(x0)) 167.99/43.84 mark(negrecip(x0)) 167.99/43.84 mark(nil) 167.99/43.84 mark(cons(x0, x1)) 167.99/43.84 mark(rnil) 167.99/43.84 mark(rcons(x0, x1)) 167.99/43.84 a__2ndspos(x0, x1) 167.99/43.84 a__2ndsneg(x0, x1) 167.99/43.84 a__plus(x0, x1) 167.99/43.84 a__times(x0, x1) 167.99/43.84 167.99/43.84 We have to consider all minimal (P,Q,R)-chains. 167.99/43.84 ---------------------------------------- 167.99/43.84 167.99/43.84 (15) DependencyGraphProof (EQUIVALENT) 167.99/43.84 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 167.99/43.84 ---------------------------------------- 167.99/43.84 167.99/43.84 (16) 167.99/43.84 Obligation: 167.99/43.84 Q DP problem: 167.99/43.84 The TRS P consists of the following rules: 167.99/43.84 167.99/43.84 A__FROM(X) -> MARK(X) 167.99/43.84 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.84 MARK(from(X)) -> MARK(X) 167.99/43.84 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.84 A__PLUS(0, Y) -> MARK(Y) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.84 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.84 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.84 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.84 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.84 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.84 MARK(square(X)) -> MARK(X) 167.99/43.84 MARK(s(X)) -> MARK(X) 167.99/43.84 MARK(posrecip(X)) -> MARK(X) 167.99/43.84 MARK(negrecip(X)) -> MARK(X) 167.99/43.84 MARK(cons(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(rcons(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(rcons(X1, X2)) -> MARK(X2) 167.99/43.84 A__SQUARE(X) -> MARK(X) 167.99/43.84 A__PLUS(s(X), Y) -> MARK(Y) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 167.99/43.84 167.99/43.84 The TRS R consists of the following rules: 167.99/43.84 167.99/43.84 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.84 a__2ndspos(0, Z) -> rnil 167.99/43.84 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.84 a__2ndsneg(0, Z) -> rnil 167.99/43.84 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.84 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.84 a__plus(0, Y) -> mark(Y) 167.99/43.84 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.84 a__times(0, Y) -> 0 167.99/43.84 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.84 mark(from(X)) -> a__from(mark(X)) 167.99/43.84 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.84 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.84 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.84 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.84 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.84 mark(square(X)) -> a__square(mark(X)) 167.99/43.84 mark(0) -> 0 167.99/43.84 mark(s(X)) -> s(mark(X)) 167.99/43.84 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.84 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.84 mark(nil) -> nil 167.99/43.84 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.84 mark(rnil) -> rnil 167.99/43.84 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.84 a__from(X) -> from(X) 167.99/43.84 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.84 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.84 a__pi(X) -> pi(X) 167.99/43.84 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.84 a__times(X1, X2) -> times(X1, X2) 167.99/43.84 a__square(X) -> square(X) 167.99/43.84 167.99/43.84 The set Q consists of the following terms: 167.99/43.84 167.99/43.84 a__from(x0) 167.99/43.84 a__pi(x0) 167.99/43.84 a__square(x0) 167.99/43.84 mark(from(x0)) 167.99/43.84 mark(2ndspos(x0, x1)) 167.99/43.84 mark(2ndsneg(x0, x1)) 167.99/43.84 mark(pi(x0)) 167.99/43.84 mark(plus(x0, x1)) 167.99/43.84 mark(times(x0, x1)) 167.99/43.84 mark(square(x0)) 167.99/43.84 mark(0) 167.99/43.84 mark(s(x0)) 167.99/43.84 mark(posrecip(x0)) 167.99/43.84 mark(negrecip(x0)) 167.99/43.84 mark(nil) 167.99/43.84 mark(cons(x0, x1)) 167.99/43.84 mark(rnil) 167.99/43.84 mark(rcons(x0, x1)) 167.99/43.84 a__2ndspos(x0, x1) 167.99/43.84 a__2ndsneg(x0, x1) 167.99/43.84 a__plus(x0, x1) 167.99/43.84 a__times(x0, x1) 167.99/43.84 167.99/43.84 We have to consider all minimal (P,Q,R)-chains. 167.99/43.84 ---------------------------------------- 167.99/43.84 167.99/43.84 (17) QDPOrderProof (EQUIVALENT) 167.99/43.84 We use the reduction pair processor [LPAR04,JAR06]. 167.99/43.84 167.99/43.84 167.99/43.84 The following pairs can be oriented strictly and are deleted. 167.99/43.84 167.99/43.84 A__FROM(X) -> MARK(X) 167.99/43.84 MARK(from(X)) -> MARK(X) 167.99/43.84 The remaining pairs can at least be oriented weakly. 167.99/43.84 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__FROM(x_1)) = [[-I]] + [[1A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(from(x_1)) = [[-I]] + [[1A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__2NDSPOS(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__2NDSNEG(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__PLUS(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(0) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__TIMES(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(square(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(A__SQUARE(x_1)) = [[0A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__from(x_1)) = [[-I]] + [[1A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(pi(x_1)) = [[2A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__pi(x_1)) = [[2A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(a__square(x_1)) = [[1A]] + [[0A]] * x_1 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(nil) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 <<< 167.99/43.84 POL(rnil) = [[0A]] 167.99/43.84 >>> 167.99/43.84 167.99/43.84 167.99/43.84 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 167.99/43.84 167.99/43.84 mark(from(X)) -> a__from(mark(X)) 167.99/43.84 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 167.99/43.84 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 167.99/43.84 mark(pi(X)) -> a__pi(mark(X)) 167.99/43.84 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 167.99/43.84 a__plus(0, Y) -> mark(Y) 167.99/43.84 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 167.99/43.84 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 mark(square(X)) -> a__square(mark(X)) 167.99/43.84 a__square(X) -> a__times(mark(X), mark(X)) 167.99/43.84 mark(0) -> 0 167.99/43.84 mark(s(X)) -> s(mark(X)) 167.99/43.84 mark(posrecip(X)) -> posrecip(mark(X)) 167.99/43.84 mark(negrecip(X)) -> negrecip(mark(X)) 167.99/43.84 mark(nil) -> nil 167.99/43.84 mark(cons(X1, X2)) -> cons(mark(X1), X2) 167.99/43.84 mark(rnil) -> rnil 167.99/43.84 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 167.99/43.84 a__times(0, Y) -> 0 167.99/43.84 a__times(X1, X2) -> times(X1, X2) 167.99/43.84 a__from(X) -> from(X) 167.99/43.84 a__2ndspos(0, Z) -> rnil 167.99/43.84 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 167.99/43.84 a__2ndsneg(0, Z) -> rnil 167.99/43.84 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 167.99/43.84 a__pi(X) -> pi(X) 167.99/43.84 a__plus(X1, X2) -> plus(X1, X2) 167.99/43.84 a__square(X) -> square(X) 167.99/43.84 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 167.99/43.84 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 167.99/43.84 a__from(X) -> cons(mark(X), from(s(X))) 167.99/43.84 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 167.99/43.84 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 167.99/43.84 167.99/43.84 167.99/43.84 ---------------------------------------- 167.99/43.84 167.99/43.84 (18) 167.99/43.84 Obligation: 167.99/43.84 Q DP problem: 167.99/43.84 The TRS P consists of the following rules: 167.99/43.84 167.99/43.84 MARK(from(X)) -> A__FROM(mark(X)) 167.99/43.84 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 167.99/43.84 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndspos(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 167.99/43.84 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(2ndsneg(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 167.99/43.84 A__PLUS(0, Y) -> MARK(Y) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(plus(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 167.99/43.84 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 167.99/43.84 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 167.99/43.84 A__PLUS(s(X), Y) -> MARK(X) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X1) 167.99/43.84 MARK(times(X1, X2)) -> MARK(X2) 167.99/43.84 MARK(square(X)) -> A__SQUARE(mark(X)) 167.99/43.84 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 167.99/43.84 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 167.99/43.84 A__TIMES(s(X), Y) -> MARK(X) 167.99/43.84 MARK(square(X)) -> MARK(X) 167.99/43.84 MARK(s(X)) -> MARK(X) 167.99/43.84 MARK(posrecip(X)) -> MARK(X) 168.31/43.86 MARK(negrecip(X)) -> MARK(X) 168.31/43.86 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.86 A__SQUARE(X) -> MARK(X) 168.31/43.86 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.86 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.86 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.86 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.86 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.86 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.86 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.86 168.31/43.86 The TRS R consists of the following rules: 168.31/43.86 168.31/43.86 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.86 a__2ndspos(0, Z) -> rnil 168.31/43.86 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.86 a__2ndsneg(0, Z) -> rnil 168.31/43.86 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.86 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.86 a__plus(0, Y) -> mark(Y) 168.31/43.86 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.86 a__times(0, Y) -> 0 168.31/43.86 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.86 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.86 mark(from(X)) -> a__from(mark(X)) 168.31/43.86 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.86 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.86 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.86 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.86 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.86 mark(square(X)) -> a__square(mark(X)) 168.31/43.86 mark(0) -> 0 168.31/43.86 mark(s(X)) -> s(mark(X)) 168.31/43.86 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.86 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.86 mark(nil) -> nil 168.31/43.86 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.86 mark(rnil) -> rnil 168.31/43.86 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.86 a__from(X) -> from(X) 168.31/43.86 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.86 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.86 a__pi(X) -> pi(X) 168.31/43.86 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.86 a__times(X1, X2) -> times(X1, X2) 168.31/43.86 a__square(X) -> square(X) 168.31/43.86 168.31/43.86 The set Q consists of the following terms: 168.31/43.86 168.31/43.86 a__from(x0) 168.31/43.86 a__pi(x0) 168.31/43.86 a__square(x0) 168.31/43.86 mark(from(x0)) 168.31/43.86 mark(2ndspos(x0, x1)) 168.31/43.86 mark(2ndsneg(x0, x1)) 168.31/43.86 mark(pi(x0)) 168.31/43.86 mark(plus(x0, x1)) 168.31/43.86 mark(times(x0, x1)) 168.31/43.86 mark(square(x0)) 168.31/43.86 mark(0) 168.31/43.86 mark(s(x0)) 168.31/43.86 mark(posrecip(x0)) 168.31/43.86 mark(negrecip(x0)) 168.31/43.86 mark(nil) 168.31/43.86 mark(cons(x0, x1)) 168.31/43.86 mark(rnil) 168.31/43.86 mark(rcons(x0, x1)) 168.31/43.86 a__2ndspos(x0, x1) 168.31/43.86 a__2ndsneg(x0, x1) 168.31/43.86 a__plus(x0, x1) 168.31/43.86 a__times(x0, x1) 168.31/43.86 168.31/43.86 We have to consider all minimal (P,Q,R)-chains. 168.31/43.86 ---------------------------------------- 168.31/43.86 168.31/43.86 (19) DependencyGraphProof (EQUIVALENT) 168.31/43.86 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 168.31/43.86 ---------------------------------------- 168.31/43.86 168.31/43.86 (20) 168.31/43.86 Obligation: 168.31/43.86 Q DP problem: 168.31/43.86 The TRS P consists of the following rules: 168.31/43.86 168.31/43.86 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.31/43.86 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.86 MARK(2ndspos(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.31/43.86 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.31/43.86 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.86 MARK(2ndsneg(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.31/43.86 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.31/43.86 A__PLUS(0, Y) -> MARK(Y) 168.31/43.86 MARK(plus(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(plus(X1, X2)) -> MARK(X2) 168.31/43.86 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.31/43.86 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.86 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.31/43.86 A__PLUS(s(X), Y) -> MARK(X) 168.31/43.86 MARK(times(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.86 MARK(square(X)) -> A__SQUARE(mark(X)) 168.31/43.86 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 168.31/43.86 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.31/43.86 A__TIMES(s(X), Y) -> MARK(X) 168.31/43.86 MARK(square(X)) -> MARK(X) 168.31/43.86 MARK(s(X)) -> MARK(X) 168.31/43.86 MARK(posrecip(X)) -> MARK(X) 168.31/43.86 MARK(negrecip(X)) -> MARK(X) 168.31/43.86 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.86 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.86 A__SQUARE(X) -> MARK(X) 168.31/43.86 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.86 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.86 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.86 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.86 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.86 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.86 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.86 168.31/43.86 The TRS R consists of the following rules: 168.31/43.86 168.31/43.86 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.86 a__2ndspos(0, Z) -> rnil 168.31/43.86 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.86 a__2ndsneg(0, Z) -> rnil 168.31/43.86 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.86 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.86 a__plus(0, Y) -> mark(Y) 168.31/43.86 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.86 a__times(0, Y) -> 0 168.31/43.86 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.86 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.86 mark(from(X)) -> a__from(mark(X)) 168.31/43.86 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.86 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.86 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.86 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.86 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.86 mark(square(X)) -> a__square(mark(X)) 168.31/43.86 mark(0) -> 0 168.31/43.86 mark(s(X)) -> s(mark(X)) 168.31/43.86 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.86 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.86 mark(nil) -> nil 168.31/43.86 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.86 mark(rnil) -> rnil 168.31/43.86 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.86 a__from(X) -> from(X) 168.31/43.86 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.86 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.86 a__pi(X) -> pi(X) 168.31/43.86 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.86 a__times(X1, X2) -> times(X1, X2) 168.31/43.86 a__square(X) -> square(X) 168.31/43.86 168.31/43.86 The set Q consists of the following terms: 168.31/43.86 168.31/43.86 a__from(x0) 168.31/43.86 a__pi(x0) 168.31/43.86 a__square(x0) 168.31/43.86 mark(from(x0)) 168.31/43.86 mark(2ndspos(x0, x1)) 168.31/43.86 mark(2ndsneg(x0, x1)) 168.31/43.86 mark(pi(x0)) 168.31/43.86 mark(plus(x0, x1)) 168.31/43.86 mark(times(x0, x1)) 168.31/43.86 mark(square(x0)) 168.31/43.86 mark(0) 168.31/43.86 mark(s(x0)) 168.31/43.86 mark(posrecip(x0)) 168.31/43.86 mark(negrecip(x0)) 168.31/43.86 mark(nil) 168.31/43.86 mark(cons(x0, x1)) 168.31/43.86 mark(rnil) 168.31/43.86 mark(rcons(x0, x1)) 168.31/43.86 a__2ndspos(x0, x1) 168.31/43.86 a__2ndsneg(x0, x1) 168.31/43.86 a__plus(x0, x1) 168.31/43.86 a__times(x0, x1) 168.31/43.86 168.31/43.86 We have to consider all minimal (P,Q,R)-chains. 168.31/43.86 ---------------------------------------- 168.31/43.86 168.31/43.86 (21) QDPOrderProof (EQUIVALENT) 168.31/43.86 We use the reduction pair processor [LPAR04,JAR06]. 168.31/43.86 168.31/43.86 168.31/43.86 The following pairs can be oriented strictly and are deleted. 168.31/43.86 168.31/43.86 MARK(square(X)) -> MARK(X) 168.31/43.86 The remaining pairs can at least be oriented weakly. 168.31/43.86 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(A__2NDSPOS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(A__2NDSNEG(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(A__PLUS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(0) = [[0A]] 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(times(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(A__TIMES(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(a__times(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(square(x_1)) = [[2A]] + [[1A]] * x_1 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(A__SQUARE(x_1)) = [[2A]] + [[0A]] * x_1 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.86 >>> 168.31/43.86 168.31/43.86 <<< 168.31/43.86 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__pi(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__square(x_1)) = [[2A]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(nil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rnil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 168.31/43.89 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.31/43.89 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 168.31/43.89 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (22) 168.31/43.89 Obligation: 168.31/43.89 Q DP problem: 168.31/43.89 The TRS P consists of the following rules: 168.31/43.89 168.31/43.89 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.31/43.89 A__PLUS(0, Y) -> MARK(Y) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.31/43.89 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(X) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(square(X)) -> A__SQUARE(mark(X)) 168.31/43.89 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 168.31/43.89 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.31/43.89 A__TIMES(s(X), Y) -> MARK(X) 168.31/43.89 MARK(s(X)) -> MARK(X) 168.31/43.89 MARK(posrecip(X)) -> MARK(X) 168.31/43.89 MARK(negrecip(X)) -> MARK(X) 168.31/43.89 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.89 A__SQUARE(X) -> MARK(X) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 168.31/43.89 The TRS R consists of the following rules: 168.31/43.89 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 168.31/43.89 The set Q consists of the following terms: 168.31/43.89 168.31/43.89 a__from(x0) 168.31/43.89 a__pi(x0) 168.31/43.89 a__square(x0) 168.31/43.89 mark(from(x0)) 168.31/43.89 mark(2ndspos(x0, x1)) 168.31/43.89 mark(2ndsneg(x0, x1)) 168.31/43.89 mark(pi(x0)) 168.31/43.89 mark(plus(x0, x1)) 168.31/43.89 mark(times(x0, x1)) 168.31/43.89 mark(square(x0)) 168.31/43.89 mark(0) 168.31/43.89 mark(s(x0)) 168.31/43.89 mark(posrecip(x0)) 168.31/43.89 mark(negrecip(x0)) 168.31/43.89 mark(nil) 168.31/43.89 mark(cons(x0, x1)) 168.31/43.89 mark(rnil) 168.31/43.89 mark(rcons(x0, x1)) 168.31/43.89 a__2ndspos(x0, x1) 168.31/43.89 a__2ndsneg(x0, x1) 168.31/43.89 a__plus(x0, x1) 168.31/43.89 a__times(x0, x1) 168.31/43.89 168.31/43.89 We have to consider all minimal (P,Q,R)-chains. 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (23) QDPOrderProof (EQUIVALENT) 168.31/43.89 We use the reduction pair processor [LPAR04,JAR06]. 168.31/43.89 168.31/43.89 168.31/43.89 The following pairs can be oriented strictly and are deleted. 168.31/43.89 168.31/43.89 A__SQUARE(X) -> A__TIMES(mark(X), mark(X)) 168.31/43.89 A__SQUARE(X) -> MARK(X) 168.31/43.89 The remaining pairs can at least be oriented weakly. 168.31/43.89 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSPOS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSNEG(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__PLUS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(0) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__TIMES(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(square(x_1)) = [[1A]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__SQUARE(x_1)) = [[1A]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__from(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__pi(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__square(x_1)) = [[1A]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(nil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rnil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 168.31/43.89 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.31/43.89 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 168.31/43.89 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (24) 168.31/43.89 Obligation: 168.31/43.89 Q DP problem: 168.31/43.89 The TRS P consists of the following rules: 168.31/43.89 168.31/43.89 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.31/43.89 A__PLUS(0, Y) -> MARK(Y) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.31/43.89 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(X) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(square(X)) -> A__SQUARE(mark(X)) 168.31/43.89 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.31/43.89 A__TIMES(s(X), Y) -> MARK(X) 168.31/43.89 MARK(s(X)) -> MARK(X) 168.31/43.89 MARK(posrecip(X)) -> MARK(X) 168.31/43.89 MARK(negrecip(X)) -> MARK(X) 168.31/43.89 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 168.31/43.89 The TRS R consists of the following rules: 168.31/43.89 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 168.31/43.89 The set Q consists of the following terms: 168.31/43.89 168.31/43.89 a__from(x0) 168.31/43.89 a__pi(x0) 168.31/43.89 a__square(x0) 168.31/43.89 mark(from(x0)) 168.31/43.89 mark(2ndspos(x0, x1)) 168.31/43.89 mark(2ndsneg(x0, x1)) 168.31/43.89 mark(pi(x0)) 168.31/43.89 mark(plus(x0, x1)) 168.31/43.89 mark(times(x0, x1)) 168.31/43.89 mark(square(x0)) 168.31/43.89 mark(0) 168.31/43.89 mark(s(x0)) 168.31/43.89 mark(posrecip(x0)) 168.31/43.89 mark(negrecip(x0)) 168.31/43.89 mark(nil) 168.31/43.89 mark(cons(x0, x1)) 168.31/43.89 mark(rnil) 168.31/43.89 mark(rcons(x0, x1)) 168.31/43.89 a__2ndspos(x0, x1) 168.31/43.89 a__2ndsneg(x0, x1) 168.31/43.89 a__plus(x0, x1) 168.31/43.89 a__times(x0, x1) 168.31/43.89 168.31/43.89 We have to consider all minimal (P,Q,R)-chains. 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (25) DependencyGraphProof (EQUIVALENT) 168.31/43.89 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (26) 168.31/43.89 Obligation: 168.31/43.89 Q DP problem: 168.31/43.89 The TRS P consists of the following rules: 168.31/43.89 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.31/43.89 A__PLUS(0, Y) -> MARK(Y) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.31/43.89 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(X) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(s(X)) -> MARK(X) 168.31/43.89 MARK(posrecip(X)) -> MARK(X) 168.31/43.89 MARK(negrecip(X)) -> MARK(X) 168.31/43.89 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.89 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.31/43.89 A__TIMES(s(X), Y) -> MARK(X) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 168.31/43.89 The TRS R consists of the following rules: 168.31/43.89 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 168.31/43.89 The set Q consists of the following terms: 168.31/43.89 168.31/43.89 a__from(x0) 168.31/43.89 a__pi(x0) 168.31/43.89 a__square(x0) 168.31/43.89 mark(from(x0)) 168.31/43.89 mark(2ndspos(x0, x1)) 168.31/43.89 mark(2ndsneg(x0, x1)) 168.31/43.89 mark(pi(x0)) 168.31/43.89 mark(plus(x0, x1)) 168.31/43.89 mark(times(x0, x1)) 168.31/43.89 mark(square(x0)) 168.31/43.89 mark(0) 168.31/43.89 mark(s(x0)) 168.31/43.89 mark(posrecip(x0)) 168.31/43.89 mark(negrecip(x0)) 168.31/43.89 mark(nil) 168.31/43.89 mark(cons(x0, x1)) 168.31/43.89 mark(rnil) 168.31/43.89 mark(rcons(x0, x1)) 168.31/43.89 a__2ndspos(x0, x1) 168.31/43.89 a__2ndsneg(x0, x1) 168.31/43.89 a__plus(x0, x1) 168.31/43.89 a__times(x0, x1) 168.31/43.89 168.31/43.89 We have to consider all minimal (P,Q,R)-chains. 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (27) QDPOrderProof (EQUIVALENT) 168.31/43.89 We use the reduction pair processor [LPAR04,JAR06]. 168.31/43.89 168.31/43.89 168.31/43.89 The following pairs can be oriented strictly and are deleted. 168.31/43.89 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Y) 168.31/43.89 The remaining pairs can at least be oriented weakly. 168.31/43.89 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSPOS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(cons(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndspos(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSNEG(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndsneg(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__PLUS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(0) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__TIMES(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(posrecip(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(from(x_1)) = [[-I]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__from(x_1)) = [[-I]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndspos(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndsneg(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(pi(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__pi(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(square(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__square(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(nil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rnil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 168.31/43.89 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.31/43.89 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 168.31/43.89 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (28) 168.31/43.89 Obligation: 168.31/43.89 Q DP problem: 168.31/43.89 The TRS P consists of the following rules: 168.31/43.89 168.31/43.89 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.31/43.89 A__PLUS(0, Y) -> MARK(Y) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.31/43.89 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(X) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(s(X)) -> MARK(X) 168.31/43.89 MARK(posrecip(X)) -> MARK(X) 168.31/43.89 MARK(negrecip(X)) -> MARK(X) 168.31/43.89 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.89 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.31/43.89 A__TIMES(s(X), Y) -> MARK(X) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 168.31/43.89 The TRS R consists of the following rules: 168.31/43.89 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 168.31/43.89 The set Q consists of the following terms: 168.31/43.89 168.31/43.89 a__from(x0) 168.31/43.89 a__pi(x0) 168.31/43.89 a__square(x0) 168.31/43.89 mark(from(x0)) 168.31/43.89 mark(2ndspos(x0, x1)) 168.31/43.89 mark(2ndsneg(x0, x1)) 168.31/43.89 mark(pi(x0)) 168.31/43.89 mark(plus(x0, x1)) 168.31/43.89 mark(times(x0, x1)) 168.31/43.89 mark(square(x0)) 168.31/43.89 mark(0) 168.31/43.89 mark(s(x0)) 168.31/43.89 mark(posrecip(x0)) 168.31/43.89 mark(negrecip(x0)) 168.31/43.89 mark(nil) 168.31/43.89 mark(cons(x0, x1)) 168.31/43.89 mark(rnil) 168.31/43.89 mark(rcons(x0, x1)) 168.31/43.89 a__2ndspos(x0, x1) 168.31/43.89 a__2ndsneg(x0, x1) 168.31/43.89 a__plus(x0, x1) 168.31/43.89 a__times(x0, x1) 168.31/43.89 168.31/43.89 We have to consider all minimal (P,Q,R)-chains. 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (29) QDPOrderProof (EQUIVALENT) 168.31/43.89 We use the reduction pair processor [LPAR04,JAR06]. 168.31/43.89 168.31/43.89 168.31/43.89 The following pairs can be oriented strictly and are deleted. 168.31/43.89 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(N) 168.31/43.89 The remaining pairs can at least be oriented weakly. 168.31/43.89 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(MARK(x_1)) = [[3A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndspos(x_1, x_2)) = [[3A]] + [[3A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSPOS(x_1, x_2)) = [[-I]] + [[3A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(s(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSNEG(x_1, x_2)) = [[-I]] + [[3A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndsneg(x_1, x_2)) = [[3A]] + [[3A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__PLUS(x_1, x_2)) = [[3A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(0) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__TIMES(x_1, x_2)) = [[3A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rcons(x_1, x_2)) = [[4A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(from(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__from(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndspos(x_1, x_2)) = [[3A]] + [[3A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndsneg(x_1, x_2)) = [[3A]] + [[3A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(pi(x_1)) = [[3A]] + [[3A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__pi(x_1)) = [[3A]] + [[3A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(square(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__square(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(nil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rnil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 168.31/43.89 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.31/43.89 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 168.31/43.89 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (30) 168.31/43.89 Obligation: 168.31/43.89 Q DP problem: 168.31/43.89 The TRS P consists of the following rules: 168.31/43.89 168.31/43.89 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.31/43.89 A__PLUS(0, Y) -> MARK(Y) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(plus(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.31/43.89 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(X) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.89 MARK(s(X)) -> MARK(X) 168.31/43.89 MARK(posrecip(X)) -> MARK(X) 168.31/43.89 MARK(negrecip(X)) -> MARK(X) 168.31/43.89 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.89 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.89 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.31/43.89 A__TIMES(s(X), Y) -> MARK(X) 168.31/43.89 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.89 168.31/43.89 The TRS R consists of the following rules: 168.31/43.89 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 168.31/43.89 The set Q consists of the following terms: 168.31/43.89 168.31/43.89 a__from(x0) 168.31/43.89 a__pi(x0) 168.31/43.89 a__square(x0) 168.31/43.89 mark(from(x0)) 168.31/43.89 mark(2ndspos(x0, x1)) 168.31/43.89 mark(2ndsneg(x0, x1)) 168.31/43.89 mark(pi(x0)) 168.31/43.89 mark(plus(x0, x1)) 168.31/43.89 mark(times(x0, x1)) 168.31/43.89 mark(square(x0)) 168.31/43.89 mark(0) 168.31/43.89 mark(s(x0)) 168.31/43.89 mark(posrecip(x0)) 168.31/43.89 mark(negrecip(x0)) 168.31/43.89 mark(nil) 168.31/43.89 mark(cons(x0, x1)) 168.31/43.89 mark(rnil) 168.31/43.89 mark(rcons(x0, x1)) 168.31/43.89 a__2ndspos(x0, x1) 168.31/43.89 a__2ndsneg(x0, x1) 168.31/43.89 a__plus(x0, x1) 168.31/43.89 a__times(x0, x1) 168.31/43.89 168.31/43.89 We have to consider all minimal (P,Q,R)-chains. 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (31) QDPOrderProof (EQUIVALENT) 168.31/43.89 We use the reduction pair processor [LPAR04,JAR06]. 168.31/43.89 168.31/43.89 168.31/43.89 The following pairs can be oriented strictly and are deleted. 168.31/43.89 168.31/43.89 MARK(2ndspos(X1, X2)) -> MARK(X1) 168.31/43.89 MARK(2ndsneg(X1, X2)) -> MARK(X1) 168.31/43.89 The remaining pairs can at least be oriented weakly. 168.31/43.89 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndspos(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSPOS(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__2NDSNEG(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(2ndsneg(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__PLUS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(0) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(A__TIMES(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndspos(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__2ndsneg(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(pi(x_1)) = [[2A]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__pi(x_1)) = [[2A]] + [[1A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(square(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(a__square(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(nil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 <<< 168.31/43.89 POL(rnil) = [[0A]] 168.31/43.89 >>> 168.31/43.89 168.31/43.89 168.31/43.89 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.31/43.89 168.31/43.89 mark(from(X)) -> a__from(mark(X)) 168.31/43.89 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.89 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.89 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.89 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.89 a__plus(0, Y) -> mark(Y) 168.31/43.89 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.89 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.89 mark(square(X)) -> a__square(mark(X)) 168.31/43.89 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.89 mark(0) -> 0 168.31/43.89 mark(s(X)) -> s(mark(X)) 168.31/43.89 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.89 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.89 mark(nil) -> nil 168.31/43.89 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.89 mark(rnil) -> rnil 168.31/43.89 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.89 a__times(0, Y) -> 0 168.31/43.89 a__times(X1, X2) -> times(X1, X2) 168.31/43.89 a__from(X) -> from(X) 168.31/43.89 a__2ndspos(0, Z) -> rnil 168.31/43.89 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.89 a__2ndsneg(0, Z) -> rnil 168.31/43.89 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.89 a__pi(X) -> pi(X) 168.31/43.89 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.89 a__square(X) -> square(X) 168.31/43.89 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.89 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.89 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.89 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.89 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.89 168.31/43.89 168.31/43.89 ---------------------------------------- 168.31/43.89 168.31/43.89 (32) 168.31/43.89 Obligation: 168.31/43.89 Q DP problem: 168.31/43.89 The TRS P consists of the following rules: 168.31/43.89 168.31/43.89 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.31/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.31/43.90 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.31/43.90 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.31/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.31/43.90 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.31/43.90 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.31/43.90 A__PLUS(0, Y) -> MARK(Y) 168.31/43.90 MARK(plus(X1, X2)) -> MARK(X1) 168.31/43.90 MARK(plus(X1, X2)) -> MARK(X2) 168.31/43.90 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.31/43.90 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.90 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.31/43.90 A__PLUS(s(X), Y) -> MARK(X) 168.31/43.90 MARK(times(X1, X2)) -> MARK(X1) 168.31/43.90 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.90 MARK(s(X)) -> MARK(X) 168.31/43.90 MARK(posrecip(X)) -> MARK(X) 168.31/43.90 MARK(negrecip(X)) -> MARK(X) 168.31/43.90 MARK(cons(X1, X2)) -> MARK(X1) 168.31/43.90 MARK(rcons(X1, X2)) -> MARK(X1) 168.31/43.90 MARK(rcons(X1, X2)) -> MARK(X2) 168.31/43.90 A__PLUS(s(X), Y) -> MARK(Y) 168.31/43.90 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.31/43.90 A__TIMES(s(X), Y) -> MARK(X) 168.31/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.31/43.90 168.31/43.90 The TRS R consists of the following rules: 168.31/43.90 168.31/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.31/43.90 a__2ndspos(0, Z) -> rnil 168.31/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.31/43.90 a__2ndsneg(0, Z) -> rnil 168.31/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.31/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.31/43.90 a__plus(0, Y) -> mark(Y) 168.31/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.31/43.90 a__times(0, Y) -> 0 168.31/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.31/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.31/43.90 mark(from(X)) -> a__from(mark(X)) 168.31/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.31/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.31/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.31/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.31/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.31/43.90 mark(square(X)) -> a__square(mark(X)) 168.31/43.90 mark(0) -> 0 168.31/43.90 mark(s(X)) -> s(mark(X)) 168.31/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.31/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.31/43.90 mark(nil) -> nil 168.31/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.31/43.90 mark(rnil) -> rnil 168.31/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.31/43.90 a__from(X) -> from(X) 168.31/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.31/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.31/43.90 a__pi(X) -> pi(X) 168.31/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.31/43.90 a__times(X1, X2) -> times(X1, X2) 168.31/43.90 a__square(X) -> square(X) 168.31/43.90 168.31/43.90 The set Q consists of the following terms: 168.31/43.90 168.31/43.90 a__from(x0) 168.31/43.90 a__pi(x0) 168.31/43.90 a__square(x0) 168.31/43.90 mark(from(x0)) 168.31/43.90 mark(2ndspos(x0, x1)) 168.31/43.90 mark(2ndsneg(x0, x1)) 168.31/43.90 mark(pi(x0)) 168.31/43.90 mark(plus(x0, x1)) 168.31/43.90 mark(times(x0, x1)) 168.31/43.90 mark(square(x0)) 168.31/43.90 mark(0) 168.31/43.90 mark(s(x0)) 168.31/43.90 mark(posrecip(x0)) 168.31/43.90 mark(negrecip(x0)) 168.31/43.90 mark(nil) 168.31/43.90 mark(cons(x0, x1)) 168.31/43.90 mark(rnil) 168.31/43.90 mark(rcons(x0, x1)) 168.31/43.90 a__2ndspos(x0, x1) 168.31/43.90 a__2ndsneg(x0, x1) 168.31/43.90 a__plus(x0, x1) 168.31/43.90 a__times(x0, x1) 168.31/43.90 168.31/43.90 We have to consider all minimal (P,Q,R)-chains. 168.31/43.90 ---------------------------------------- 168.31/43.90 168.31/43.90 (33) QDPOrderProof (EQUIVALENT) 168.31/43.90 We use the reduction pair processor [LPAR04,JAR06]. 168.31/43.90 168.31/43.90 168.31/43.90 The following pairs can be oriented strictly and are deleted. 168.31/43.90 168.31/43.90 MARK(times(X1, X2)) -> MARK(X2) 168.31/43.90 The remaining pairs can at least be oriented weakly. 168.31/43.90 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(MARK(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(A__2NDSPOS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(A__2NDSNEG(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(A__PLUS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(0) = [[0A]] 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(times(x_1, x_2)) = [[5A]] + [[0A]] * x_1 + [[1A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(A__TIMES(x_1, x_2)) = [[5A]] + [[0A]] * x_1 + [[1A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(a__times(x_1, x_2)) = [[5A]] + [[0A]] * x_1 + [[1A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(a__2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(pi(x_1)) = [[-I]] + [[0A]] * x_1 168.31/43.90 >>> 168.31/43.90 168.31/43.90 <<< 168.31/43.90 POL(a__pi(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(square(x_1)) = [[5A]] + [[1A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__square(x_1)) = [[5A]] + [[1A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(nil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rnil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 168.45/43.90 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.90 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 168.45/43.90 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (34) 168.45/43.90 Obligation: 168.45/43.90 Q DP problem: 168.45/43.90 The TRS P consists of the following rules: 168.45/43.90 168.45/43.90 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.45/43.90 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.90 A__PLUS(0, Y) -> MARK(Y) 168.45/43.90 MARK(plus(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.90 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.90 A__PLUS(s(X), Y) -> MARK(X) 168.45/43.90 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(s(X)) -> MARK(X) 168.45/43.90 MARK(posrecip(X)) -> MARK(X) 168.45/43.90 MARK(negrecip(X)) -> MARK(X) 168.45/43.90 MARK(cons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.90 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.90 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.90 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 168.45/43.90 The TRS R consists of the following rules: 168.45/43.90 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 168.45/43.90 The set Q consists of the following terms: 168.45/43.90 168.45/43.90 a__from(x0) 168.45/43.90 a__pi(x0) 168.45/43.90 a__square(x0) 168.45/43.90 mark(from(x0)) 168.45/43.90 mark(2ndspos(x0, x1)) 168.45/43.90 mark(2ndsneg(x0, x1)) 168.45/43.90 mark(pi(x0)) 168.45/43.90 mark(plus(x0, x1)) 168.45/43.90 mark(times(x0, x1)) 168.45/43.90 mark(square(x0)) 168.45/43.90 mark(0) 168.45/43.90 mark(s(x0)) 168.45/43.90 mark(posrecip(x0)) 168.45/43.90 mark(negrecip(x0)) 168.45/43.90 mark(nil) 168.45/43.90 mark(cons(x0, x1)) 168.45/43.90 mark(rnil) 168.45/43.90 mark(rcons(x0, x1)) 168.45/43.90 a__2ndspos(x0, x1) 168.45/43.90 a__2ndsneg(x0, x1) 168.45/43.90 a__plus(x0, x1) 168.45/43.90 a__times(x0, x1) 168.45/43.90 168.45/43.90 We have to consider all minimal (P,Q,R)-chains. 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (35) QDPOrderProof (EQUIVALENT) 168.45/43.90 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.90 168.45/43.90 168.45/43.90 The following pairs can be oriented strictly and are deleted. 168.45/43.90 168.45/43.90 MARK(plus(X1, X2)) -> MARK(X1) 168.45/43.90 The remaining pairs can at least be oriented weakly. 168.45/43.90 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSPOS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSNEG(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(plus(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__PLUS(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(0) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(times(x_1, x_2)) = [[2A]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__TIMES(x_1, x_2)) = [[2A]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__times(x_1, x_2)) = [[2A]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__pi(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__plus(x_1, x_2)) = [[2A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(square(x_1)) = [[3A]] + [[2A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__square(x_1)) = [[3A]] + [[2A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(nil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rnil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 168.45/43.90 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.90 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 168.45/43.90 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (36) 168.45/43.90 Obligation: 168.45/43.90 Q DP problem: 168.45/43.90 The TRS P consists of the following rules: 168.45/43.90 168.45/43.90 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.45/43.90 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.90 A__PLUS(0, Y) -> MARK(Y) 168.45/43.90 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.90 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.90 A__PLUS(s(X), Y) -> MARK(X) 168.45/43.90 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(s(X)) -> MARK(X) 168.45/43.90 MARK(posrecip(X)) -> MARK(X) 168.45/43.90 MARK(negrecip(X)) -> MARK(X) 168.45/43.90 MARK(cons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.90 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.90 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.90 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 168.45/43.90 The TRS R consists of the following rules: 168.45/43.90 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 168.45/43.90 The set Q consists of the following terms: 168.45/43.90 168.45/43.90 a__from(x0) 168.45/43.90 a__pi(x0) 168.45/43.90 a__square(x0) 168.45/43.90 mark(from(x0)) 168.45/43.90 mark(2ndspos(x0, x1)) 168.45/43.90 mark(2ndsneg(x0, x1)) 168.45/43.90 mark(pi(x0)) 168.45/43.90 mark(plus(x0, x1)) 168.45/43.90 mark(times(x0, x1)) 168.45/43.90 mark(square(x0)) 168.45/43.90 mark(0) 168.45/43.90 mark(s(x0)) 168.45/43.90 mark(posrecip(x0)) 168.45/43.90 mark(negrecip(x0)) 168.45/43.90 mark(nil) 168.45/43.90 mark(cons(x0, x1)) 168.45/43.90 mark(rnil) 168.45/43.90 mark(rcons(x0, x1)) 168.45/43.90 a__2ndspos(x0, x1) 168.45/43.90 a__2ndsneg(x0, x1) 168.45/43.90 a__plus(x0, x1) 168.45/43.90 a__times(x0, x1) 168.45/43.90 168.45/43.90 We have to consider all minimal (P,Q,R)-chains. 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (37) QDPOrderProof (EQUIVALENT) 168.45/43.90 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.90 168.45/43.90 168.45/43.90 The following pairs can be oriented strictly and are deleted. 168.45/43.90 168.45/43.90 A__PLUS(s(X), Y) -> MARK(X) 168.45/43.90 The remaining pairs can at least be oriented weakly. 168.45/43.90 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(MARK(x_1)) = [[2A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSPOS(x_1, x_2)) = [[2A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(cons(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSNEG(x_1, x_2)) = [[2A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(plus(x_1, x_2)) = [[3A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__PLUS(x_1, x_2)) = [[3A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(0) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(times(x_1, x_2)) = [[3A]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__TIMES(x_1, x_2)) = [[3A]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__times(x_1, x_2)) = [[3A]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(pi(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__pi(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__plus(x_1, x_2)) = [[3A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(square(x_1)) = [[3A]] + [[2A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__square(x_1)) = [[3A]] + [[2A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(nil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rnil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 168.45/43.90 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.90 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 168.45/43.90 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (38) 168.45/43.90 Obligation: 168.45/43.90 Q DP problem: 168.45/43.90 The TRS P consists of the following rules: 168.45/43.90 168.45/43.90 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.45/43.90 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.90 A__PLUS(0, Y) -> MARK(Y) 168.45/43.90 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.90 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.90 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(s(X)) -> MARK(X) 168.45/43.90 MARK(posrecip(X)) -> MARK(X) 168.45/43.90 MARK(negrecip(X)) -> MARK(X) 168.45/43.90 MARK(cons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.90 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.90 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.90 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 168.45/43.90 The TRS R consists of the following rules: 168.45/43.90 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 168.45/43.90 The set Q consists of the following terms: 168.45/43.90 168.45/43.90 a__from(x0) 168.45/43.90 a__pi(x0) 168.45/43.90 a__square(x0) 168.45/43.90 mark(from(x0)) 168.45/43.90 mark(2ndspos(x0, x1)) 168.45/43.90 mark(2ndsneg(x0, x1)) 168.45/43.90 mark(pi(x0)) 168.45/43.90 mark(plus(x0, x1)) 168.45/43.90 mark(times(x0, x1)) 168.45/43.90 mark(square(x0)) 168.45/43.90 mark(0) 168.45/43.90 mark(s(x0)) 168.45/43.90 mark(posrecip(x0)) 168.45/43.90 mark(negrecip(x0)) 168.45/43.90 mark(nil) 168.45/43.90 mark(cons(x0, x1)) 168.45/43.90 mark(rnil) 168.45/43.90 mark(rcons(x0, x1)) 168.45/43.90 a__2ndspos(x0, x1) 168.45/43.90 a__2ndsneg(x0, x1) 168.45/43.90 a__plus(x0, x1) 168.45/43.90 a__times(x0, x1) 168.45/43.90 168.45/43.90 We have to consider all minimal (P,Q,R)-chains. 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (39) QDPOrderProof (EQUIVALENT) 168.45/43.90 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.90 168.45/43.90 168.45/43.90 The following pairs can be oriented strictly and are deleted. 168.45/43.90 168.45/43.90 MARK(2ndsneg(X1, X2)) -> A__2NDSNEG(mark(X1), mark(X2)) 168.45/43.90 The remaining pairs can at least be oriented weakly. 168.45/43.90 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(MARK(x_1)) = [[1A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndspos(x_1, x_2)) = [[0A]] + [[2A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSPOS(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(s(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSNEG(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[2A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(plus(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__PLUS(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(0) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__TIMES(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rcons(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(from(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[2A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndsneg(x_1, x_2)) = [[-I]] + [[2A]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(pi(x_1)) = [[1A]] + [[2A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__pi(x_1)) = [[1A]] + [[2A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__plus(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(square(x_1)) = [[-I]] + [[1A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__square(x_1)) = [[-I]] + [[1A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(nil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rnil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 168.45/43.90 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.90 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 168.45/43.90 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (40) 168.45/43.90 Obligation: 168.45/43.90 Q DP problem: 168.45/43.90 The TRS P consists of the following rules: 168.45/43.90 168.45/43.90 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.45/43.90 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.90 A__PLUS(0, Y) -> MARK(Y) 168.45/43.90 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.90 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.90 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(s(X)) -> MARK(X) 168.45/43.90 MARK(posrecip(X)) -> MARK(X) 168.45/43.90 MARK(negrecip(X)) -> MARK(X) 168.45/43.90 MARK(cons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.90 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.90 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.90 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.90 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.90 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.90 168.45/43.90 The TRS R consists of the following rules: 168.45/43.90 168.45/43.90 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.90 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.90 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.90 a__pi(X) -> pi(X) 168.45/43.90 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__square(X) -> square(X) 168.45/43.90 168.45/43.90 The set Q consists of the following terms: 168.45/43.90 168.45/43.90 a__from(x0) 168.45/43.90 a__pi(x0) 168.45/43.90 a__square(x0) 168.45/43.90 mark(from(x0)) 168.45/43.90 mark(2ndspos(x0, x1)) 168.45/43.90 mark(2ndsneg(x0, x1)) 168.45/43.90 mark(pi(x0)) 168.45/43.90 mark(plus(x0, x1)) 168.45/43.90 mark(times(x0, x1)) 168.45/43.90 mark(square(x0)) 168.45/43.90 mark(0) 168.45/43.90 mark(s(x0)) 168.45/43.90 mark(posrecip(x0)) 168.45/43.90 mark(negrecip(x0)) 168.45/43.90 mark(nil) 168.45/43.90 mark(cons(x0, x1)) 168.45/43.90 mark(rnil) 168.45/43.90 mark(rcons(x0, x1)) 168.45/43.90 a__2ndspos(x0, x1) 168.45/43.90 a__2ndsneg(x0, x1) 168.45/43.90 a__plus(x0, x1) 168.45/43.90 a__times(x0, x1) 168.45/43.90 168.45/43.90 We have to consider all minimal (P,Q,R)-chains. 168.45/43.90 ---------------------------------------- 168.45/43.90 168.45/43.90 (41) QDPOrderProof (EQUIVALENT) 168.45/43.90 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.90 168.45/43.90 168.45/43.90 The following pairs can be oriented strictly and are deleted. 168.45/43.90 168.45/43.90 MARK(2ndspos(X1, X2)) -> A__2NDSPOS(mark(X1), mark(X2)) 168.45/43.90 MARK(2ndspos(X1, X2)) -> MARK(X2) 168.45/43.90 MARK(2ndsneg(X1, X2)) -> MARK(X2) 168.45/43.90 The remaining pairs can at least be oriented weakly. 168.45/43.90 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(MARK(x_1)) = [[2A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndspos(x_1, x_2)) = [[3A]] + [[-I]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSPOS(x_1, x_2)) = [[2A]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(cons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__2NDSNEG(x_1, x_2)) = [[2A]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(2ndsneg(x_1, x_2)) = [[3A]] + [[-I]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__PLUS(x_1, x_2)) = [[2A]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(0) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[-I]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(A__TIMES(x_1, x_2)) = [[2A]] + [[0A]] * x_1 + [[-I]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[-I]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(from(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__from(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndspos(x_1, x_2)) = [[3A]] + [[-I]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__2ndsneg(x_1, x_2)) = [[3A]] + [[-I]] * x_1 + [[1A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(pi(x_1)) = [[4A]] + [[-I]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__pi(x_1)) = [[4A]] + [[-I]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__plus(x_1, x_2)) = [[0A]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(a__square(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(nil) = [[0A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 <<< 168.45/43.90 POL(rnil) = [[3A]] 168.45/43.90 >>> 168.45/43.90 168.45/43.90 168.45/43.90 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.90 168.45/43.90 mark(from(X)) -> a__from(mark(X)) 168.45/43.90 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.90 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.90 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.90 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.90 a__plus(0, Y) -> mark(Y) 168.45/43.90 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.90 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.90 mark(square(X)) -> a__square(mark(X)) 168.45/43.90 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.90 mark(0) -> 0 168.45/43.90 mark(s(X)) -> s(mark(X)) 168.45/43.90 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.90 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.90 mark(nil) -> nil 168.45/43.90 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.90 mark(rnil) -> rnil 168.45/43.90 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.90 a__times(0, Y) -> 0 168.45/43.90 a__times(X1, X2) -> times(X1, X2) 168.45/43.90 a__from(X) -> from(X) 168.45/43.90 a__2ndspos(0, Z) -> rnil 168.45/43.90 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.90 a__2ndsneg(0, Z) -> rnil 168.45/43.91 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.91 a__pi(X) -> pi(X) 168.45/43.91 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.91 a__square(X) -> square(X) 168.45/43.91 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.91 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.91 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.91 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.91 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.91 168.45/43.91 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (42) 168.45/43.91 Obligation: 168.45/43.91 Q DP problem: 168.45/43.91 The TRS P consists of the following rules: 168.45/43.91 168.45/43.91 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.45/43.91 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.45/43.91 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.91 A__PLUS(0, Y) -> MARK(Y) 168.45/43.91 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.91 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.91 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.91 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(s(X)) -> MARK(X) 168.45/43.91 MARK(posrecip(X)) -> MARK(X) 168.45/43.91 MARK(negrecip(X)) -> MARK(X) 168.45/43.91 MARK(cons(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.91 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.91 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.91 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.91 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.91 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> MARK(Z) 168.45/43.91 168.45/43.91 The TRS R consists of the following rules: 168.45/43.91 168.45/43.91 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.91 a__2ndspos(0, Z) -> rnil 168.45/43.91 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.91 a__2ndsneg(0, Z) -> rnil 168.45/43.91 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.91 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.91 a__plus(0, Y) -> mark(Y) 168.45/43.91 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.91 a__times(0, Y) -> 0 168.45/43.91 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.91 mark(from(X)) -> a__from(mark(X)) 168.45/43.91 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.91 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.91 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.91 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.91 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.91 mark(square(X)) -> a__square(mark(X)) 168.45/43.91 mark(0) -> 0 168.45/43.91 mark(s(X)) -> s(mark(X)) 168.45/43.91 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.91 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.91 mark(nil) -> nil 168.45/43.91 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.91 mark(rnil) -> rnil 168.45/43.91 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.91 a__from(X) -> from(X) 168.45/43.91 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.91 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.91 a__pi(X) -> pi(X) 168.45/43.91 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.91 a__times(X1, X2) -> times(X1, X2) 168.45/43.91 a__square(X) -> square(X) 168.45/43.91 168.45/43.91 The set Q consists of the following terms: 168.45/43.91 168.45/43.91 a__from(x0) 168.45/43.91 a__pi(x0) 168.45/43.91 a__square(x0) 168.45/43.91 mark(from(x0)) 168.45/43.91 mark(2ndspos(x0, x1)) 168.45/43.91 mark(2ndsneg(x0, x1)) 168.45/43.91 mark(pi(x0)) 168.45/43.91 mark(plus(x0, x1)) 168.45/43.91 mark(times(x0, x1)) 168.45/43.91 mark(square(x0)) 168.45/43.91 mark(0) 168.45/43.91 mark(s(x0)) 168.45/43.91 mark(posrecip(x0)) 168.45/43.91 mark(negrecip(x0)) 168.45/43.91 mark(nil) 168.45/43.91 mark(cons(x0, x1)) 168.45/43.91 mark(rnil) 168.45/43.91 mark(rcons(x0, x1)) 168.45/43.91 a__2ndspos(x0, x1) 168.45/43.91 a__2ndsneg(x0, x1) 168.45/43.91 a__plus(x0, x1) 168.45/43.91 a__times(x0, x1) 168.45/43.91 168.45/43.91 We have to consider all minimal (P,Q,R)-chains. 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (43) DependencyGraphProof (EQUIVALENT) 168.45/43.91 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (44) 168.45/43.91 Complex Obligation (AND) 168.45/43.91 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (45) 168.45/43.91 Obligation: 168.45/43.91 Q DP problem: 168.45/43.91 The TRS P consists of the following rules: 168.45/43.91 168.45/43.91 A__PLUS(0, Y) -> MARK(Y) 168.45/43.91 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.91 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.91 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.91 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.91 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.91 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.91 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.91 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(s(X)) -> MARK(X) 168.45/43.91 MARK(posrecip(X)) -> MARK(X) 168.45/43.91 MARK(negrecip(X)) -> MARK(X) 168.45/43.91 MARK(cons(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.91 168.45/43.91 The TRS R consists of the following rules: 168.45/43.91 168.45/43.91 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.91 a__2ndspos(0, Z) -> rnil 168.45/43.91 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.91 a__2ndsneg(0, Z) -> rnil 168.45/43.91 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.91 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.91 a__plus(0, Y) -> mark(Y) 168.45/43.91 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.91 a__times(0, Y) -> 0 168.45/43.91 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.91 mark(from(X)) -> a__from(mark(X)) 168.45/43.91 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.91 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.91 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.91 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.91 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.91 mark(square(X)) -> a__square(mark(X)) 168.45/43.91 mark(0) -> 0 168.45/43.91 mark(s(X)) -> s(mark(X)) 168.45/43.91 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.91 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.91 mark(nil) -> nil 168.45/43.91 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.91 mark(rnil) -> rnil 168.45/43.91 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.91 a__from(X) -> from(X) 168.45/43.91 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.91 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.91 a__pi(X) -> pi(X) 168.45/43.91 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.91 a__times(X1, X2) -> times(X1, X2) 168.45/43.91 a__square(X) -> square(X) 168.45/43.91 168.45/43.91 The set Q consists of the following terms: 168.45/43.91 168.45/43.91 a__from(x0) 168.45/43.91 a__pi(x0) 168.45/43.91 a__square(x0) 168.45/43.91 mark(from(x0)) 168.45/43.91 mark(2ndspos(x0, x1)) 168.45/43.91 mark(2ndsneg(x0, x1)) 168.45/43.91 mark(pi(x0)) 168.45/43.91 mark(plus(x0, x1)) 168.45/43.91 mark(times(x0, x1)) 168.45/43.91 mark(square(x0)) 168.45/43.91 mark(0) 168.45/43.91 mark(s(x0)) 168.45/43.91 mark(posrecip(x0)) 168.45/43.91 mark(negrecip(x0)) 168.45/43.91 mark(nil) 168.45/43.91 mark(cons(x0, x1)) 168.45/43.91 mark(rnil) 168.45/43.91 mark(rcons(x0, x1)) 168.45/43.91 a__2ndspos(x0, x1) 168.45/43.91 a__2ndsneg(x0, x1) 168.45/43.91 a__plus(x0, x1) 168.45/43.91 a__times(x0, x1) 168.45/43.91 168.45/43.91 We have to consider all minimal (P,Q,R)-chains. 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (46) QDPOrderProof (EQUIVALENT) 168.45/43.91 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.91 168.45/43.91 168.45/43.91 The following pairs can be oriented strictly and are deleted. 168.45/43.91 168.45/43.91 MARK(cons(X1, X2)) -> MARK(X1) 168.45/43.91 The remaining pairs can at least be oriented weakly. 168.45/43.91 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(A__PLUS(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(0) = [[0A]] 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(A__TIMES(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(cons(x_1, x_2)) = [[-I]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(from(x_1)) = [[0A]] + [[1A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__from(x_1)) = [[0A]] + [[1A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(2ndspos(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__2ndspos(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(2ndsneg(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__2ndsneg(x_1, x_2)) = [[1A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(pi(x_1)) = [[1A]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__pi(x_1)) = [[1A]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__plus(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__square(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(nil) = [[0A]] 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(rnil) = [[0A]] 168.45/43.91 >>> 168.45/43.91 168.45/43.91 168.45/43.91 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.91 168.45/43.91 mark(from(X)) -> a__from(mark(X)) 168.45/43.91 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.91 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.91 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.91 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.91 a__plus(0, Y) -> mark(Y) 168.45/43.91 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.91 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 mark(square(X)) -> a__square(mark(X)) 168.45/43.91 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.91 mark(0) -> 0 168.45/43.91 mark(s(X)) -> s(mark(X)) 168.45/43.91 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.91 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.91 mark(nil) -> nil 168.45/43.91 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.91 mark(rnil) -> rnil 168.45/43.91 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.91 a__times(0, Y) -> 0 168.45/43.91 a__times(X1, X2) -> times(X1, X2) 168.45/43.91 a__from(X) -> from(X) 168.45/43.91 a__2ndspos(0, Z) -> rnil 168.45/43.91 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.91 a__2ndsneg(0, Z) -> rnil 168.45/43.91 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.91 a__pi(X) -> pi(X) 168.45/43.91 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.91 a__square(X) -> square(X) 168.45/43.91 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.91 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.91 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.91 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.91 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.91 168.45/43.91 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (47) 168.45/43.91 Obligation: 168.45/43.91 Q DP problem: 168.45/43.91 The TRS P consists of the following rules: 168.45/43.91 168.45/43.91 A__PLUS(0, Y) -> MARK(Y) 168.45/43.91 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.91 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.91 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.91 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.91 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.91 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.91 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.91 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(s(X)) -> MARK(X) 168.45/43.91 MARK(posrecip(X)) -> MARK(X) 168.45/43.91 MARK(negrecip(X)) -> MARK(X) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.91 168.45/43.91 The TRS R consists of the following rules: 168.45/43.91 168.45/43.91 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.91 a__2ndspos(0, Z) -> rnil 168.45/43.91 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.91 a__2ndsneg(0, Z) -> rnil 168.45/43.91 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.91 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.91 a__plus(0, Y) -> mark(Y) 168.45/43.91 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.91 a__times(0, Y) -> 0 168.45/43.91 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.91 mark(from(X)) -> a__from(mark(X)) 168.45/43.91 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.91 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.91 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.91 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.91 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.91 mark(square(X)) -> a__square(mark(X)) 168.45/43.91 mark(0) -> 0 168.45/43.91 mark(s(X)) -> s(mark(X)) 168.45/43.91 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.91 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.91 mark(nil) -> nil 168.45/43.91 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.91 mark(rnil) -> rnil 168.45/43.91 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.91 a__from(X) -> from(X) 168.45/43.91 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.91 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.91 a__pi(X) -> pi(X) 168.45/43.91 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.91 a__times(X1, X2) -> times(X1, X2) 168.45/43.91 a__square(X) -> square(X) 168.45/43.91 168.45/43.91 The set Q consists of the following terms: 168.45/43.91 168.45/43.91 a__from(x0) 168.45/43.91 a__pi(x0) 168.45/43.91 a__square(x0) 168.45/43.91 mark(from(x0)) 168.45/43.91 mark(2ndspos(x0, x1)) 168.45/43.91 mark(2ndsneg(x0, x1)) 168.45/43.91 mark(pi(x0)) 168.45/43.91 mark(plus(x0, x1)) 168.45/43.91 mark(times(x0, x1)) 168.45/43.91 mark(square(x0)) 168.45/43.91 mark(0) 168.45/43.91 mark(s(x0)) 168.45/43.91 mark(posrecip(x0)) 168.45/43.91 mark(negrecip(x0)) 168.45/43.91 mark(nil) 168.45/43.91 mark(cons(x0, x1)) 168.45/43.91 mark(rnil) 168.45/43.91 mark(rcons(x0, x1)) 168.45/43.91 a__2ndspos(x0, x1) 168.45/43.91 a__2ndsneg(x0, x1) 168.45/43.91 a__plus(x0, x1) 168.45/43.91 a__times(x0, x1) 168.45/43.91 168.45/43.91 We have to consider all minimal (P,Q,R)-chains. 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (48) QDPOrderProof (EQUIVALENT) 168.45/43.91 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.91 168.45/43.91 168.45/43.91 The following pairs can be oriented strictly and are deleted. 168.45/43.91 168.45/43.91 MARK(posrecip(X)) -> MARK(X) 168.45/43.91 The remaining pairs can at least be oriented weakly. 168.45/43.91 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(A__PLUS(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(0) = [[0A]] 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(mark(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(s(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(A__TIMES(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__times(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(posrecip(x_1)) = [[1A]] + [[1A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(negrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(from(x_1)) = [[1A]] + [[1A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__from(x_1)) = [[1A]] + [[1A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__2ndspos(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(2ndsneg(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(pi(x_1)) = [[1A]] + [[1A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__pi(x_1)) = [[1A]] + [[1A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__plus(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(square(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(a__square(x_1)) = [[0A]] + [[0A]] * x_1 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(nil) = [[0A]] 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(cons(x_1, x_2)) = [[1A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.91 >>> 168.45/43.91 168.45/43.91 <<< 168.45/43.91 POL(rnil) = [[0A]] 168.45/43.91 >>> 168.45/43.91 168.45/43.91 168.45/43.91 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.91 168.45/43.91 mark(from(X)) -> a__from(mark(X)) 168.45/43.91 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.91 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.91 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.91 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.91 a__plus(0, Y) -> mark(Y) 168.45/43.91 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.91 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 mark(square(X)) -> a__square(mark(X)) 168.45/43.91 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.91 mark(0) -> 0 168.45/43.91 mark(s(X)) -> s(mark(X)) 168.45/43.91 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.91 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.91 mark(nil) -> nil 168.45/43.91 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.91 mark(rnil) -> rnil 168.45/43.91 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.91 a__times(0, Y) -> 0 168.45/43.91 a__times(X1, X2) -> times(X1, X2) 168.45/43.91 a__from(X) -> from(X) 168.45/43.91 a__2ndspos(0, Z) -> rnil 168.45/43.91 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.91 a__2ndsneg(0, Z) -> rnil 168.45/43.91 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.91 a__pi(X) -> pi(X) 168.45/43.91 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.91 a__square(X) -> square(X) 168.45/43.91 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.91 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.91 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.91 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.91 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.91 168.45/43.91 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (49) 168.45/43.91 Obligation: 168.45/43.91 Q DP problem: 168.45/43.91 The TRS P consists of the following rules: 168.45/43.91 168.45/43.91 A__PLUS(0, Y) -> MARK(Y) 168.45/43.91 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.91 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.91 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.91 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.91 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.91 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.91 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.91 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(s(X)) -> MARK(X) 168.45/43.91 MARK(negrecip(X)) -> MARK(X) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.91 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.91 168.45/43.91 The TRS R consists of the following rules: 168.45/43.91 168.45/43.91 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.91 a__2ndspos(0, Z) -> rnil 168.45/43.91 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.91 a__2ndsneg(0, Z) -> rnil 168.45/43.91 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.91 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.91 a__plus(0, Y) -> mark(Y) 168.45/43.91 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.91 a__times(0, Y) -> 0 168.45/43.91 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.91 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.91 mark(from(X)) -> a__from(mark(X)) 168.45/43.91 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.91 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.91 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.91 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.91 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.91 mark(square(X)) -> a__square(mark(X)) 168.45/43.91 mark(0) -> 0 168.45/43.91 mark(s(X)) -> s(mark(X)) 168.45/43.91 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.91 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.91 mark(nil) -> nil 168.45/43.91 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.91 mark(rnil) -> rnil 168.45/43.91 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.91 a__from(X) -> from(X) 168.45/43.91 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.91 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.91 a__pi(X) -> pi(X) 168.45/43.91 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.91 a__times(X1, X2) -> times(X1, X2) 168.45/43.91 a__square(X) -> square(X) 168.45/43.91 168.45/43.91 The set Q consists of the following terms: 168.45/43.91 168.45/43.91 a__from(x0) 168.45/43.91 a__pi(x0) 168.45/43.91 a__square(x0) 168.45/43.91 mark(from(x0)) 168.45/43.91 mark(2ndspos(x0, x1)) 168.45/43.91 mark(2ndsneg(x0, x1)) 168.45/43.91 mark(pi(x0)) 168.45/43.91 mark(plus(x0, x1)) 168.45/43.91 mark(times(x0, x1)) 168.45/43.91 mark(square(x0)) 168.45/43.91 mark(0) 168.45/43.91 mark(s(x0)) 168.45/43.91 mark(posrecip(x0)) 168.45/43.91 mark(negrecip(x0)) 168.45/43.91 mark(nil) 168.45/43.91 mark(cons(x0, x1)) 168.45/43.91 mark(rnil) 168.45/43.91 mark(rcons(x0, x1)) 168.45/43.91 a__2ndspos(x0, x1) 168.45/43.91 a__2ndsneg(x0, x1) 168.45/43.91 a__plus(x0, x1) 168.45/43.91 a__times(x0, x1) 168.45/43.91 168.45/43.91 We have to consider all minimal (P,Q,R)-chains. 168.45/43.91 ---------------------------------------- 168.45/43.91 168.45/43.91 (50) QDPOrderProof (EQUIVALENT) 168.45/43.91 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.91 168.45/43.91 168.45/43.91 The following pairs can be oriented strictly and are deleted. 168.45/43.91 168.45/43.91 MARK(negrecip(X)) -> MARK(X) 168.45/43.91 The remaining pairs can at least be oriented weakly. 168.45/43.91 Used ordering: Matrix interpretation [MATRO] with arctic natural numbers [ARCTIC]: 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(A__PLUS(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(0) = [[0A]] 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(MARK(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(mark(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(s(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[-I]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(A__TIMES(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[-I]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(a__times(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[-I]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(negrecip(x_1)) = [[-I]] + [[1A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(rcons(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(from(x_1)) = [[0A]] + [[1A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(a__from(x_1)) = [[0A]] + [[1A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(a__2ndspos(x_1, x_2)) = [[-I]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(a__2ndsneg(x_1, x_2)) = [[0A]] + [[0A]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(pi(x_1)) = [[2A]] + [[0A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(a__pi(x_1)) = [[2A]] + [[0A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(a__plus(x_1, x_2)) = [[-I]] + [[-I]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(square(x_1)) = [[0A]] + [[5A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(a__square(x_1)) = [[0A]] + [[5A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(posrecip(x_1)) = [[-I]] + [[0A]] * x_1 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(nil) = [[0A]] 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(cons(x_1, x_2)) = [[0A]] + [[1A]] * x_1 + [[0A]] * x_2 168.45/43.93 >>> 168.45/43.93 168.45/43.93 <<< 168.45/43.93 POL(rnil) = [[0A]] 168.45/43.93 >>> 168.45/43.93 168.45/43.93 168.45/43.93 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.93 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 168.45/43.93 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (51) 168.45/43.93 Obligation: 168.45/43.93 Q DP problem: 168.45/43.93 The TRS P consists of the following rules: 168.45/43.93 168.45/43.93 A__PLUS(0, Y) -> MARK(Y) 168.45/43.93 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.93 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.93 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.93 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.93 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.93 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.93 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.93 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.93 MARK(s(X)) -> MARK(X) 168.45/43.93 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.93 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.93 168.45/43.93 The TRS R consists of the following rules: 168.45/43.93 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 168.45/43.93 The set Q consists of the following terms: 168.45/43.93 168.45/43.93 a__from(x0) 168.45/43.93 a__pi(x0) 168.45/43.93 a__square(x0) 168.45/43.93 mark(from(x0)) 168.45/43.93 mark(2ndspos(x0, x1)) 168.45/43.93 mark(2ndsneg(x0, x1)) 168.45/43.93 mark(pi(x0)) 168.45/43.93 mark(plus(x0, x1)) 168.45/43.93 mark(times(x0, x1)) 168.45/43.93 mark(square(x0)) 168.45/43.93 mark(0) 168.45/43.93 mark(s(x0)) 168.45/43.93 mark(posrecip(x0)) 168.45/43.93 mark(negrecip(x0)) 168.45/43.93 mark(nil) 168.45/43.93 mark(cons(x0, x1)) 168.45/43.93 mark(rnil) 168.45/43.93 mark(rcons(x0, x1)) 168.45/43.93 a__2ndspos(x0, x1) 168.45/43.93 a__2ndsneg(x0, x1) 168.45/43.93 a__plus(x0, x1) 168.45/43.93 a__times(x0, x1) 168.45/43.93 168.45/43.93 We have to consider all minimal (P,Q,R)-chains. 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (52) QDPOrderProof (EQUIVALENT) 168.45/43.93 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.93 168.45/43.93 168.45/43.93 The following pairs can be oriented strictly and are deleted. 168.45/43.93 168.45/43.93 A__TIMES(s(X), Y) -> MARK(X) 168.45/43.93 MARK(times(X1, X2)) -> MARK(X1) 168.45/43.93 The remaining pairs can at least be oriented weakly. 168.45/43.93 Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: 168.45/43.93 168.45/43.93 POL( A__PLUS_2(x_1, x_2) ) = 2x_2 168.45/43.93 POL( A__TIMES_2(x_1, x_2) ) = 2x_1 + 2 168.45/43.93 POL( mark_1(x_1) ) = x_1 168.45/43.93 POL( from_1(x_1) ) = 2 168.45/43.93 POL( a__from_1(x_1) ) = 2 168.45/43.93 POL( 2ndspos_2(x_1, x_2) ) = 0 168.45/43.93 POL( a__2ndspos_2(x_1, x_2) ) = 0 168.45/43.93 POL( 2ndsneg_2(x_1, x_2) ) = 0 168.45/43.93 POL( a__2ndsneg_2(x_1, x_2) ) = 0 168.45/43.93 POL( pi_1(x_1) ) = 2x_1 + 2 168.45/43.93 POL( a__pi_1(x_1) ) = 2x_1 + 2 168.45/43.93 POL( plus_2(x_1, x_2) ) = x_2 168.45/43.93 POL( a__plus_2(x_1, x_2) ) = x_2 168.45/43.93 POL( 0 ) = 0 168.45/43.93 POL( times_2(x_1, x_2) ) = x_1 + 1 168.45/43.93 POL( a__times_2(x_1, x_2) ) = x_1 + 1 168.45/43.93 POL( s_1(x_1) ) = x_1 168.45/43.93 POL( square_1(x_1) ) = 2x_1 + 2 168.45/43.93 POL( a__square_1(x_1) ) = 2x_1 + 2 168.45/43.93 POL( posrecip_1(x_1) ) = max{0, -2} 168.45/43.93 POL( negrecip_1(x_1) ) = max{0, -2} 168.45/43.93 POL( nil ) = 2 168.45/43.93 POL( cons_2(x_1, x_2) ) = 2 168.45/43.93 POL( rnil ) = 0 168.45/43.93 POL( rcons_2(x_1, x_2) ) = 2x_1 + 2x_2 168.45/43.93 POL( MARK_1(x_1) ) = 2x_1 168.45/43.93 168.45/43.93 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.93 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 168.45/43.93 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (53) 168.45/43.93 Obligation: 168.45/43.93 Q DP problem: 168.45/43.93 The TRS P consists of the following rules: 168.45/43.93 168.45/43.93 A__PLUS(0, Y) -> MARK(Y) 168.45/43.93 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.93 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.93 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.93 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.93 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.93 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.93 MARK(s(X)) -> MARK(X) 168.45/43.93 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.93 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.93 168.45/43.93 The TRS R consists of the following rules: 168.45/43.93 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 168.45/43.93 The set Q consists of the following terms: 168.45/43.93 168.45/43.93 a__from(x0) 168.45/43.93 a__pi(x0) 168.45/43.93 a__square(x0) 168.45/43.93 mark(from(x0)) 168.45/43.93 mark(2ndspos(x0, x1)) 168.45/43.93 mark(2ndsneg(x0, x1)) 168.45/43.93 mark(pi(x0)) 168.45/43.93 mark(plus(x0, x1)) 168.45/43.93 mark(times(x0, x1)) 168.45/43.93 mark(square(x0)) 168.45/43.93 mark(0) 168.45/43.93 mark(s(x0)) 168.45/43.93 mark(posrecip(x0)) 168.45/43.93 mark(negrecip(x0)) 168.45/43.93 mark(nil) 168.45/43.93 mark(cons(x0, x1)) 168.45/43.93 mark(rnil) 168.45/43.93 mark(rcons(x0, x1)) 168.45/43.93 a__2ndspos(x0, x1) 168.45/43.93 a__2ndsneg(x0, x1) 168.45/43.93 a__plus(x0, x1) 168.45/43.93 a__times(x0, x1) 168.45/43.93 168.45/43.93 We have to consider all minimal (P,Q,R)-chains. 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (54) QDPOrderProof (EQUIVALENT) 168.45/43.93 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.93 168.45/43.93 168.45/43.93 The following pairs can be oriented strictly and are deleted. 168.45/43.93 168.45/43.93 A__PLUS(0, Y) -> MARK(Y) 168.45/43.93 MARK(plus(X1, X2)) -> A__PLUS(mark(X1), mark(X2)) 168.45/43.93 A__PLUS(s(X), Y) -> MARK(Y) 168.45/43.93 MARK(plus(X1, X2)) -> MARK(X2) 168.45/43.93 MARK(times(X1, X2)) -> A__TIMES(mark(X1), mark(X2)) 168.45/43.93 A__TIMES(s(X), Y) -> A__PLUS(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 A__TIMES(s(X), Y) -> A__TIMES(mark(X), mark(Y)) 168.45/43.93 MARK(s(X)) -> MARK(X) 168.45/43.93 MARK(rcons(X1, X2)) -> MARK(X1) 168.45/43.93 MARK(rcons(X1, X2)) -> MARK(X2) 168.45/43.93 The remaining pairs can at least be oriented weakly. 168.45/43.93 Used ordering: Combined order from the following AFS and order. 168.45/43.93 A__PLUS(x1, x2) = A__PLUS(x2) 168.45/43.93 168.45/43.93 0 = 0 168.45/43.93 168.45/43.93 MARK(x1) = MARK(x1) 168.45/43.93 168.45/43.93 plus(x1, x2) = plus(x1, x2) 168.45/43.93 168.45/43.93 mark(x1) = x1 168.45/43.93 168.45/43.93 s(x1) = s(x1) 168.45/43.93 168.45/43.93 times(x1, x2) = times(x1, x2) 168.45/43.93 168.45/43.93 A__TIMES(x1, x2) = A__TIMES(x1, x2) 168.45/43.93 168.45/43.93 a__times(x1, x2) = a__times(x1, x2) 168.45/43.93 168.45/43.93 rcons(x1, x2) = rcons(x1, x2) 168.45/43.93 168.45/43.93 from(x1) = from(x1) 168.45/43.93 168.45/43.93 a__from(x1) = a__from(x1) 168.45/43.93 168.45/43.93 2ndspos(x1, x2) = x1 168.45/43.93 168.45/43.93 a__2ndspos(x1, x2) = x1 168.45/43.93 168.45/43.93 2ndsneg(x1, x2) = x1 168.45/43.93 168.45/43.93 a__2ndsneg(x1, x2) = x1 168.45/43.93 168.45/43.93 pi(x1) = pi(x1) 168.45/43.93 168.45/43.93 a__pi(x1) = a__pi(x1) 168.45/43.93 168.45/43.93 a__plus(x1, x2) = a__plus(x1, x2) 168.45/43.93 168.45/43.93 square(x1) = square(x1) 168.45/43.93 168.45/43.93 a__square(x1) = a__square(x1) 168.45/43.93 168.45/43.93 posrecip(x1) = posrecip 168.45/43.93 168.45/43.93 negrecip(x1) = negrecip 168.45/43.93 168.45/43.93 nil = nil 168.45/43.93 168.45/43.93 cons(x1, x2) = cons(x1) 168.45/43.93 168.45/43.93 rnil = rnil 168.45/43.93 168.45/43.93 168.45/43.93 Recursive path order with status [RPO]. 168.45/43.93 Quasi-Precedence: [0, rnil] > [MARK_1, rcons_2] 168.45/43.93 [from_1, a__from_1, pi_1, a__pi_1] > s_1 > [MARK_1, rcons_2] 168.45/43.93 [from_1, a__from_1, pi_1, a__pi_1] > s_1 > posrecip 168.45/43.93 [from_1, a__from_1, pi_1, a__pi_1] > s_1 > negrecip 168.45/43.93 [from_1, a__from_1, pi_1, a__pi_1] > cons_1 168.45/43.93 [square_1, a__square_1] > [times_2, A__TIMES_2, a__times_2] > [A__PLUS_1, plus_2, a__plus_2] > s_1 > [MARK_1, rcons_2] 168.45/43.93 [square_1, a__square_1] > [times_2, A__TIMES_2, a__times_2] > [A__PLUS_1, plus_2, a__plus_2] > s_1 > posrecip 168.45/43.93 [square_1, a__square_1] > [times_2, A__TIMES_2, a__times_2] > [A__PLUS_1, plus_2, a__plus_2] > s_1 > negrecip 168.45/43.93 168.45/43.93 Status: A__PLUS_1: multiset status 168.45/43.93 0: multiset status 168.45/43.93 MARK_1: multiset status 168.45/43.93 plus_2: multiset status 168.45/43.93 s_1: multiset status 168.45/43.93 times_2: multiset status 168.45/43.93 A__TIMES_2: multiset status 168.45/43.93 a__times_2: multiset status 168.45/43.93 rcons_2: [2,1] 168.45/43.93 from_1: multiset status 168.45/43.93 a__from_1: multiset status 168.45/43.93 pi_1: [1] 168.45/43.93 a__pi_1: [1] 168.45/43.93 a__plus_2: multiset status 168.45/43.93 square_1: multiset status 168.45/43.93 a__square_1: multiset status 168.45/43.93 posrecip: multiset status 168.45/43.93 negrecip: [] 168.45/43.93 nil: multiset status 168.45/43.93 cons_1: multiset status 168.45/43.93 rnil: multiset status 168.45/43.93 168.45/43.93 168.45/43.93 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.93 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 168.45/43.93 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (55) 168.45/43.93 Obligation: 168.45/43.93 Q DP problem: 168.45/43.93 The TRS P consists of the following rules: 168.45/43.93 168.45/43.93 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.93 168.45/43.93 The TRS R consists of the following rules: 168.45/43.93 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 168.45/43.93 The set Q consists of the following terms: 168.45/43.93 168.45/43.93 a__from(x0) 168.45/43.93 a__pi(x0) 168.45/43.93 a__square(x0) 168.45/43.93 mark(from(x0)) 168.45/43.93 mark(2ndspos(x0, x1)) 168.45/43.93 mark(2ndsneg(x0, x1)) 168.45/43.93 mark(pi(x0)) 168.45/43.93 mark(plus(x0, x1)) 168.45/43.93 mark(times(x0, x1)) 168.45/43.93 mark(square(x0)) 168.45/43.93 mark(0) 168.45/43.93 mark(s(x0)) 168.45/43.93 mark(posrecip(x0)) 168.45/43.93 mark(negrecip(x0)) 168.45/43.93 mark(nil) 168.45/43.93 mark(cons(x0, x1)) 168.45/43.93 mark(rnil) 168.45/43.93 mark(rcons(x0, x1)) 168.45/43.93 a__2ndspos(x0, x1) 168.45/43.93 a__2ndsneg(x0, x1) 168.45/43.93 a__plus(x0, x1) 168.45/43.93 a__times(x0, x1) 168.45/43.93 168.45/43.93 We have to consider all minimal (P,Q,R)-chains. 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (56) QDPOrderProof (EQUIVALENT) 168.45/43.93 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.93 168.45/43.93 168.45/43.93 The following pairs can be oriented strictly and are deleted. 168.45/43.93 168.45/43.93 A__PLUS(s(X), Y) -> A__PLUS(mark(X), mark(Y)) 168.45/43.93 The remaining pairs can at least be oriented weakly. 168.45/43.93 Used ordering: Combined order from the following AFS and order. 168.45/43.93 A__PLUS(x1, x2) = A__PLUS(x1) 168.45/43.93 168.45/43.93 s(x1) = s(x1) 168.45/43.93 168.45/43.93 mark(x1) = x1 168.45/43.93 168.45/43.93 from(x1) = from 168.45/43.93 168.45/43.93 a__from(x1) = a__from 168.45/43.93 168.45/43.93 2ndspos(x1, x2) = x2 168.45/43.93 168.45/43.93 a__2ndspos(x1, x2) = x2 168.45/43.93 168.45/43.93 2ndsneg(x1, x2) = 2ndsneg(x1, x2) 168.45/43.93 168.45/43.93 a__2ndsneg(x1, x2) = a__2ndsneg(x1, x2) 168.45/43.93 168.45/43.93 pi(x1) = pi(x1) 168.45/43.93 168.45/43.93 a__pi(x1) = a__pi(x1) 168.45/43.93 168.45/43.93 plus(x1, x2) = plus(x1, x2) 168.45/43.93 168.45/43.93 a__plus(x1, x2) = a__plus(x1, x2) 168.45/43.93 168.45/43.93 0 = 0 168.45/43.93 168.45/43.93 times(x1, x2) = times(x1, x2) 168.45/43.93 168.45/43.93 a__times(x1, x2) = a__times(x1, x2) 168.45/43.93 168.45/43.93 square(x1) = square(x1) 168.45/43.93 168.45/43.93 a__square(x1) = a__square(x1) 168.45/43.93 168.45/43.93 posrecip(x1) = posrecip 168.45/43.93 168.45/43.93 negrecip(x1) = negrecip 168.45/43.93 168.45/43.93 nil = nil 168.45/43.93 168.45/43.93 cons(x1, x2) = cons 168.45/43.93 168.45/43.93 rnil = rnil 168.45/43.93 168.45/43.93 rcons(x1, x2) = x1 168.45/43.93 168.45/43.93 168.45/43.93 Recursive path order with status [RPO]. 168.45/43.93 Quasi-Precedence: [2ndsneg_2, a__2ndsneg_2] > [negrecip, cons] > posrecip > rnil 168.45/43.93 [pi_1, a__pi_1] > [from, a__from] > [A__PLUS_1, s_1] > rnil 168.45/43.93 [pi_1, a__pi_1] > [from, a__from] > [negrecip, cons] > posrecip > rnil 168.45/43.93 0 > rnil 168.45/43.93 [square_1, a__square_1] > [times_2, a__times_2] > [plus_2, a__plus_2] > [A__PLUS_1, s_1] > rnil 168.45/43.93 nil > rnil 168.45/43.93 168.45/43.93 Status: A__PLUS_1: multiset status 168.45/43.93 s_1: multiset status 168.45/43.93 from: [] 168.45/43.93 a__from: [] 168.45/43.93 2ndsneg_2: multiset status 168.45/43.93 a__2ndsneg_2: multiset status 168.45/43.93 pi_1: multiset status 168.45/43.93 a__pi_1: multiset status 168.45/43.93 plus_2: [1,2] 168.45/43.93 a__plus_2: [1,2] 168.45/43.93 0: multiset status 168.45/43.93 times_2: [1,2] 168.45/43.93 a__times_2: [1,2] 168.45/43.93 square_1: [1] 168.45/43.93 a__square_1: [1] 168.45/43.93 posrecip: multiset status 168.45/43.93 negrecip: [] 168.45/43.93 nil: multiset status 168.45/43.93 cons: multiset status 168.45/43.93 rnil: multiset status 168.45/43.93 168.45/43.93 168.45/43.93 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.93 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 168.45/43.93 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (57) 168.45/43.93 Obligation: 168.45/43.93 Q DP problem: 168.45/43.93 P is empty. 168.45/43.93 The TRS R consists of the following rules: 168.45/43.93 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 168.45/43.93 The set Q consists of the following terms: 168.45/43.93 168.45/43.93 a__from(x0) 168.45/43.93 a__pi(x0) 168.45/43.93 a__square(x0) 168.45/43.93 mark(from(x0)) 168.45/43.93 mark(2ndspos(x0, x1)) 168.45/43.93 mark(2ndsneg(x0, x1)) 168.45/43.93 mark(pi(x0)) 168.45/43.93 mark(plus(x0, x1)) 168.45/43.93 mark(times(x0, x1)) 168.45/43.93 mark(square(x0)) 168.45/43.93 mark(0) 168.45/43.93 mark(s(x0)) 168.45/43.93 mark(posrecip(x0)) 168.45/43.93 mark(negrecip(x0)) 168.45/43.93 mark(nil) 168.45/43.93 mark(cons(x0, x1)) 168.45/43.93 mark(rnil) 168.45/43.93 mark(rcons(x0, x1)) 168.45/43.93 a__2ndspos(x0, x1) 168.45/43.93 a__2ndsneg(x0, x1) 168.45/43.93 a__plus(x0, x1) 168.45/43.93 a__times(x0, x1) 168.45/43.93 168.45/43.93 We have to consider all minimal (P,Q,R)-chains. 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (58) PisEmptyProof (EQUIVALENT) 168.45/43.93 The TRS P is empty. Hence, there is no (P,Q,R) chain. 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (59) 168.45/43.93 YES 168.45/43.93 168.45/43.93 ---------------------------------------- 168.45/43.93 168.45/43.93 (60) 168.45/43.93 Obligation: 168.45/43.93 Q DP problem: 168.45/43.93 The TRS P consists of the following rules: 168.45/43.93 168.45/43.93 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.45/43.93 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.45/43.93 168.45/43.93 The TRS R consists of the following rules: 168.45/43.93 168.45/43.93 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.93 a__2ndspos(0, Z) -> rnil 168.45/43.93 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.93 a__2ndsneg(0, Z) -> rnil 168.45/43.93 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.93 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.93 a__plus(0, Y) -> mark(Y) 168.45/43.93 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.93 a__times(0, Y) -> 0 168.45/43.93 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.93 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.93 mark(from(X)) -> a__from(mark(X)) 168.45/43.93 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.93 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.93 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.93 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.93 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.93 mark(square(X)) -> a__square(mark(X)) 168.45/43.93 mark(0) -> 0 168.45/43.93 mark(s(X)) -> s(mark(X)) 168.45/43.93 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.93 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.93 mark(nil) -> nil 168.45/43.93 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.93 mark(rnil) -> rnil 168.45/43.93 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.93 a__from(X) -> from(X) 168.45/43.93 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.93 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.93 a__pi(X) -> pi(X) 168.45/43.93 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.93 a__times(X1, X2) -> times(X1, X2) 168.45/43.93 a__square(X) -> square(X) 168.45/43.93 168.45/43.93 The set Q consists of the following terms: 168.45/43.93 168.45/43.93 a__from(x0) 168.45/43.93 a__pi(x0) 168.45/43.93 a__square(x0) 168.45/43.94 mark(from(x0)) 168.45/43.94 mark(2ndspos(x0, x1)) 168.45/43.94 mark(2ndsneg(x0, x1)) 168.45/43.94 mark(pi(x0)) 168.45/43.94 mark(plus(x0, x1)) 168.45/43.94 mark(times(x0, x1)) 168.45/43.94 mark(square(x0)) 168.45/43.94 mark(0) 168.45/43.94 mark(s(x0)) 168.45/43.94 mark(posrecip(x0)) 168.45/43.94 mark(negrecip(x0)) 168.45/43.94 mark(nil) 168.45/43.94 mark(cons(x0, x1)) 168.45/43.94 mark(rnil) 168.45/43.94 mark(rcons(x0, x1)) 168.45/43.94 a__2ndspos(x0, x1) 168.45/43.94 a__2ndsneg(x0, x1) 168.45/43.94 a__plus(x0, x1) 168.45/43.94 a__times(x0, x1) 168.45/43.94 168.45/43.94 We have to consider all minimal (P,Q,R)-chains. 168.45/43.94 ---------------------------------------- 168.45/43.94 168.45/43.94 (61) QDPOrderProof (EQUIVALENT) 168.45/43.94 We use the reduction pair processor [LPAR04,JAR06]. 168.45/43.94 168.45/43.94 168.45/43.94 The following pairs can be oriented strictly and are deleted. 168.45/43.94 168.45/43.94 A__2NDSNEG(s(N), cons(X, cons(Y, Z))) -> A__2NDSPOS(mark(N), mark(Z)) 168.45/43.94 A__2NDSPOS(s(N), cons(X, cons(Y, Z))) -> A__2NDSNEG(mark(N), mark(Z)) 168.45/43.94 The remaining pairs can at least be oriented weakly. 168.45/43.94 Used ordering: Combined order from the following AFS and order. 168.45/43.94 A__2NDSNEG(x1, x2) = A__2NDSNEG(x1, x2) 168.45/43.94 168.45/43.94 s(x1) = s(x1) 168.45/43.94 168.45/43.94 cons(x1, x2) = x2 168.45/43.94 168.45/43.94 A__2NDSPOS(x1, x2) = A__2NDSPOS(x1, x2) 168.45/43.94 168.45/43.94 mark(x1) = x1 168.45/43.94 168.45/43.94 from(x1) = from 168.45/43.94 168.45/43.94 a__from(x1) = a__from 168.45/43.94 168.45/43.94 2ndspos(x1, x2) = x2 168.45/43.94 168.45/43.94 a__2ndspos(x1, x2) = x2 168.45/43.94 168.45/43.94 2ndsneg(x1, x2) = x1 168.45/43.94 168.45/43.94 a__2ndsneg(x1, x2) = x1 168.45/43.94 168.45/43.94 pi(x1) = pi 168.45/43.94 168.45/43.94 a__pi(x1) = a__pi 168.45/43.94 168.45/43.94 plus(x1, x2) = plus(x1, x2) 168.45/43.94 168.45/43.94 a__plus(x1, x2) = a__plus(x1, x2) 168.45/43.94 168.45/43.94 0 = 0 168.45/43.94 168.45/43.94 times(x1, x2) = times(x1, x2) 168.45/43.94 168.45/43.94 a__times(x1, x2) = a__times(x1, x2) 168.45/43.94 168.45/43.94 square(x1) = square(x1) 168.45/43.94 168.45/43.94 a__square(x1) = a__square(x1) 168.45/43.94 168.45/43.94 posrecip(x1) = posrecip 168.45/43.94 168.45/43.94 negrecip(x1) = negrecip 168.45/43.94 168.45/43.94 nil = nil 168.45/43.94 168.45/43.94 rnil = rnil 168.45/43.94 168.45/43.94 rcons(x1, x2) = x1 168.45/43.94 168.45/43.94 168.45/43.94 Recursive path order with status [RPO]. 168.45/43.94 Quasi-Precedence: [A__2NDSNEG_2, A__2NDSPOS_2] > [posrecip, rnil] 168.45/43.94 [from, a__from, pi, a__pi, 0] > [s_1, negrecip] > [posrecip, rnil] 168.45/43.94 [square_1, a__square_1] > [times_2, a__times_2] > [plus_2, a__plus_2] > [s_1, negrecip] > [posrecip, rnil] 168.45/43.94 nil > [posrecip, rnil] 168.45/43.94 168.45/43.94 Status: A__2NDSNEG_2: multiset status 168.45/43.94 s_1: multiset status 168.45/43.94 A__2NDSPOS_2: multiset status 168.45/43.94 from: [] 168.45/43.94 a__from: [] 168.45/43.94 pi: [] 168.45/43.94 a__pi: [] 168.45/43.94 plus_2: [2,1] 168.45/43.94 a__plus_2: [2,1] 168.45/43.94 0: multiset status 168.45/43.94 times_2: [2,1] 168.45/43.94 a__times_2: [2,1] 168.45/43.94 square_1: multiset status 168.45/43.94 a__square_1: multiset status 168.45/43.94 posrecip: multiset status 168.45/43.94 negrecip: multiset status 168.45/43.94 nil: multiset status 168.45/43.94 rnil: multiset status 168.45/43.94 168.45/43.94 168.45/43.94 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 168.45/43.94 168.45/43.94 mark(from(X)) -> a__from(mark(X)) 168.45/43.94 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.94 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.94 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.94 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.94 a__plus(0, Y) -> mark(Y) 168.45/43.94 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.94 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.94 mark(square(X)) -> a__square(mark(X)) 168.45/43.94 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.94 mark(0) -> 0 168.45/43.94 mark(s(X)) -> s(mark(X)) 168.45/43.94 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.94 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.94 mark(nil) -> nil 168.45/43.94 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.94 mark(rnil) -> rnil 168.45/43.94 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.94 a__from(X) -> from(X) 168.45/43.94 a__2ndspos(0, Z) -> rnil 168.45/43.94 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.94 a__2ndsneg(0, Z) -> rnil 168.45/43.94 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.94 a__pi(X) -> pi(X) 168.45/43.94 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.94 a__times(0, Y) -> 0 168.45/43.94 a__times(X1, X2) -> times(X1, X2) 168.45/43.94 a__square(X) -> square(X) 168.45/43.94 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.94 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.94 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.94 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.94 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.94 168.45/43.94 168.45/43.94 ---------------------------------------- 168.45/43.94 168.45/43.94 (62) 168.45/43.94 Obligation: 168.45/43.94 Q DP problem: 168.45/43.94 P is empty. 168.45/43.94 The TRS R consists of the following rules: 168.45/43.94 168.45/43.94 a__from(X) -> cons(mark(X), from(s(X))) 168.45/43.94 a__2ndspos(0, Z) -> rnil 168.45/43.94 a__2ndspos(s(N), cons(X, cons(Y, Z))) -> rcons(posrecip(mark(Y)), a__2ndsneg(mark(N), mark(Z))) 168.45/43.94 a__2ndsneg(0, Z) -> rnil 168.45/43.94 a__2ndsneg(s(N), cons(X, cons(Y, Z))) -> rcons(negrecip(mark(Y)), a__2ndspos(mark(N), mark(Z))) 168.45/43.94 a__pi(X) -> a__2ndspos(mark(X), a__from(0)) 168.45/43.94 a__plus(0, Y) -> mark(Y) 168.45/43.94 a__plus(s(X), Y) -> s(a__plus(mark(X), mark(Y))) 168.45/43.94 a__times(0, Y) -> 0 168.45/43.94 a__times(s(X), Y) -> a__plus(mark(Y), a__times(mark(X), mark(Y))) 168.45/43.94 a__square(X) -> a__times(mark(X), mark(X)) 168.45/43.94 mark(from(X)) -> a__from(mark(X)) 168.45/43.94 mark(2ndspos(X1, X2)) -> a__2ndspos(mark(X1), mark(X2)) 168.45/43.94 mark(2ndsneg(X1, X2)) -> a__2ndsneg(mark(X1), mark(X2)) 168.45/43.94 mark(pi(X)) -> a__pi(mark(X)) 168.45/43.94 mark(plus(X1, X2)) -> a__plus(mark(X1), mark(X2)) 168.45/43.94 mark(times(X1, X2)) -> a__times(mark(X1), mark(X2)) 168.45/43.94 mark(square(X)) -> a__square(mark(X)) 168.45/43.94 mark(0) -> 0 168.45/43.94 mark(s(X)) -> s(mark(X)) 168.45/43.94 mark(posrecip(X)) -> posrecip(mark(X)) 168.45/43.94 mark(negrecip(X)) -> negrecip(mark(X)) 168.45/43.94 mark(nil) -> nil 168.45/43.94 mark(cons(X1, X2)) -> cons(mark(X1), X2) 168.45/43.94 mark(rnil) -> rnil 168.45/43.94 mark(rcons(X1, X2)) -> rcons(mark(X1), mark(X2)) 168.45/43.94 a__from(X) -> from(X) 168.45/43.94 a__2ndspos(X1, X2) -> 2ndspos(X1, X2) 168.45/43.94 a__2ndsneg(X1, X2) -> 2ndsneg(X1, X2) 168.45/43.94 a__pi(X) -> pi(X) 168.45/43.94 a__plus(X1, X2) -> plus(X1, X2) 168.45/43.94 a__times(X1, X2) -> times(X1, X2) 168.45/43.94 a__square(X) -> square(X) 168.45/43.94 168.45/43.94 The set Q consists of the following terms: 168.45/43.94 168.45/43.94 a__from(x0) 168.45/43.94 a__pi(x0) 168.45/43.94 a__square(x0) 168.45/43.94 mark(from(x0)) 168.45/43.94 mark(2ndspos(x0, x1)) 168.45/43.94 mark(2ndsneg(x0, x1)) 168.45/43.94 mark(pi(x0)) 168.45/43.94 mark(plus(x0, x1)) 168.45/43.94 mark(times(x0, x1)) 168.45/43.94 mark(square(x0)) 168.45/43.94 mark(0) 168.45/43.94 mark(s(x0)) 168.45/43.94 mark(posrecip(x0)) 168.45/43.94 mark(negrecip(x0)) 168.45/43.94 mark(nil) 168.45/43.94 mark(cons(x0, x1)) 168.45/43.94 mark(rnil) 168.45/43.94 mark(rcons(x0, x1)) 168.45/43.94 a__2ndspos(x0, x1) 168.45/43.94 a__2ndsneg(x0, x1) 168.45/43.94 a__plus(x0, x1) 168.45/43.94 a__times(x0, x1) 168.45/43.94 168.45/43.94 We have to consider all minimal (P,Q,R)-chains. 168.45/43.94 ---------------------------------------- 168.45/43.94 168.45/43.94 (63) PisEmptyProof (EQUIVALENT) 168.45/43.94 The TRS P is empty. Hence, there is no (P,Q,R) chain. 168.45/43.94 ---------------------------------------- 168.45/43.94 168.45/43.94 (64) 168.45/43.94 YES 168.57/44.02 EOF