155.67/50.25 YES 155.79/50.27 proof of /export/starexec/sandbox/benchmark/theBenchmark.itrs 155.79/50.27 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 155.79/50.27 155.79/50.27 155.79/50.27 Termination of the given ITRS could be proven: 155.79/50.27 155.79/50.27 (0) ITRS 155.79/50.27 (1) ITRStoIDPProof [EQUIVALENT, 0 ms] 155.79/50.27 (2) IDP 155.79/50.27 (3) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (4) IDP 155.79/50.27 (5) IDPtoQDPProof [SOUND, 26 ms] 155.79/50.27 (6) QDP 155.79/50.27 (7) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (8) QDP 155.79/50.27 (9) QReductionProof [EQUIVALENT, 0 ms] 155.79/50.27 (10) QDP 155.79/50.27 (11) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (12) QDP 155.79/50.27 (13) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (14) QDP 155.79/50.27 (15) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (16) QDP 155.79/50.27 (17) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (18) QDP 155.79/50.27 (19) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (20) QDP 155.79/50.27 (21) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (22) QDP 155.79/50.27 (23) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (24) QDP 155.79/50.27 (25) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (26) QDP 155.79/50.27 (27) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (28) QDP 155.79/50.27 (29) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (30) QDP 155.79/50.27 (31) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (32) QDP 155.79/50.27 (33) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (34) QDP 155.79/50.27 (35) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (36) QDP 155.79/50.27 (37) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (38) QDP 155.79/50.27 (39) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (40) QDP 155.79/50.27 (41) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (42) QDP 155.79/50.27 (43) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (44) QDP 155.79/50.27 (45) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (46) QDP 155.79/50.27 (47) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (48) QDP 155.79/50.27 (49) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (50) QDP 155.79/50.27 (51) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (52) QDP 155.79/50.27 (53) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (54) QDP 155.79/50.27 (55) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (56) QDP 155.79/50.27 (57) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (58) QDP 155.79/50.27 (59) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (60) QDP 155.79/50.27 (61) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (62) QDP 155.79/50.27 (63) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (64) QDP 155.79/50.27 (65) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (66) QDP 155.79/50.27 (67) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (68) QDP 155.79/50.27 (69) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (70) QDP 155.79/50.27 (71) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (72) QDP 155.79/50.27 (73) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (74) QDP 155.79/50.27 (75) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (76) QDP 155.79/50.27 (77) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (78) QDP 155.79/50.27 (79) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (80) QDP 155.79/50.27 (81) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (82) QDP 155.79/50.27 (83) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (84) QDP 155.79/50.27 (85) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (86) QDP 155.79/50.27 (87) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (88) QDP 155.79/50.27 (89) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (90) QDP 155.79/50.27 (91) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (92) QDP 155.79/50.27 (93) QReductionProof [EQUIVALENT, 0 ms] 155.79/50.27 (94) QDP 155.79/50.27 (95) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (96) QDP 155.79/50.27 (97) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (98) QDP 155.79/50.27 (99) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (100) QDP 155.79/50.27 (101) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (102) QDP 155.79/50.27 (103) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (104) QDP 155.79/50.27 (105) QReductionProof [EQUIVALENT, 0 ms] 155.79/50.27 (106) QDP 155.79/50.27 (107) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (108) QDP 155.79/50.27 (109) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (110) QDP 155.79/50.27 (111) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (112) QDP 155.79/50.27 (113) QReductionProof [EQUIVALENT, 0 ms] 155.79/50.27 (114) QDP 155.79/50.27 (115) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (116) QDP 155.79/50.27 (117) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (118) QDP 155.79/50.27 (119) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (120) QDP 155.79/50.27 (121) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (122) QDP 155.79/50.27 (123) QReductionProof [EQUIVALENT, 0 ms] 155.79/50.27 (124) QDP 155.79/50.27 (125) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (126) QDP 155.79/50.27 (127) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (128) QDP 155.79/50.27 (129) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (130) QDP 155.79/50.27 (131) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (132) QDP 155.79/50.27 (133) MRRProof [EQUIVALENT, 5 ms] 155.79/50.27 (134) QDP 155.79/50.27 (135) QDPOrderProof [EQUIVALENT, 64 ms] 155.79/50.27 (136) QDP 155.79/50.27 (137) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (138) QDP 155.79/50.27 (139) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (140) QDP 155.79/50.27 (141) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (142) QDP 155.79/50.27 (143) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (144) QDP 155.79/50.27 (145) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (146) QDP 155.79/50.27 (147) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (148) QDP 155.79/50.27 (149) DependencyGraphProof [EQUIVALENT, 0 ms] 155.79/50.27 (150) QDP 155.79/50.27 (151) UsableRulesProof [EQUIVALENT, 0 ms] 155.79/50.27 (152) QDP 155.79/50.27 (153) QReductionProof [EQUIVALENT, 0 ms] 155.79/50.27 (154) QDP 155.79/50.27 (155) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (156) QDP 155.79/50.27 (157) TransformationProof [EQUIVALENT, 0 ms] 155.79/50.27 (158) QDP 155.79/50.27 (159) MRRProof [EQUIVALENT, 0 ms] 155.79/50.27 (160) QDP 155.79/50.27 (161) PisEmptyProof [EQUIVALENT, 0 ms] 155.79/50.27 (162) YES 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (0) 155.79/50.27 Obligation: 155.79/50.27 ITRS problem: 155.79/50.27 155.79/50.27 The following function symbols are pre-defined: 155.79/50.27 <<< 155.79/50.27 & ~ Bwand: (Integer, Integer) -> Integer 155.79/50.27 >= ~ Ge: (Integer, Integer) -> Boolean 155.79/50.27 | ~ Bwor: (Integer, Integer) -> Integer 155.79/50.27 / ~ Div: (Integer, Integer) -> Integer 155.79/50.27 != ~ Neq: (Integer, Integer) -> Boolean 155.79/50.27 && ~ Land: (Boolean, Boolean) -> Boolean 155.79/50.27 ! ~ Lnot: (Boolean) -> Boolean 155.79/50.27 = ~ Eq: (Integer, Integer) -> Boolean 155.79/50.27 <= ~ Le: (Integer, Integer) -> Boolean 155.79/50.27 ^ ~ Bwxor: (Integer, Integer) -> Integer 155.79/50.27 % ~ Mod: (Integer, Integer) -> Integer 155.79/50.27 > ~ Gt: (Integer, Integer) -> Boolean 155.79/50.27 + ~ Add: (Integer, Integer) -> Integer 155.79/50.27 -1 ~ UnaryMinus: (Integer) -> Integer 155.79/50.27 < ~ Lt: (Integer, Integer) -> Boolean 155.79/50.27 || ~ Lor: (Boolean, Boolean) -> Boolean 155.79/50.27 - ~ Sub: (Integer, Integer) -> Integer 155.79/50.27 ~ ~ Bwnot: (Integer) -> Integer 155.79/50.27 * ~ Mul: (Integer, Integer) -> Integer 155.79/50.27 >>> 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 eval(x, y) -> Cond_eval(x > 0 && y > 0, x, y) 155.79/50.27 Cond_eval(TRUE, x, y) -> eval(x - 1, x) 155.79/50.27 eval(x, y) -> Cond_eval1(x > 0 && y > 0, x, y) 155.79/50.27 Cond_eval1(TRUE, x, y) -> eval(y - 2, x + 1) 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 eval(x0, x1) 155.79/50.27 Cond_eval(TRUE, x0, x1) 155.79/50.27 Cond_eval1(TRUE, x0, x1) 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (1) ITRStoIDPProof (EQUIVALENT) 155.79/50.27 Added dependency pairs 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (2) 155.79/50.27 Obligation: 155.79/50.27 IDP problem: 155.79/50.27 The following function symbols are pre-defined: 155.79/50.27 <<< 155.79/50.27 & ~ Bwand: (Integer, Integer) -> Integer 155.79/50.27 >= ~ Ge: (Integer, Integer) -> Boolean 155.79/50.27 | ~ Bwor: (Integer, Integer) -> Integer 155.79/50.27 / ~ Div: (Integer, Integer) -> Integer 155.79/50.27 != ~ Neq: (Integer, Integer) -> Boolean 155.79/50.27 && ~ Land: (Boolean, Boolean) -> Boolean 155.79/50.27 ! ~ Lnot: (Boolean) -> Boolean 155.79/50.27 = ~ Eq: (Integer, Integer) -> Boolean 155.79/50.27 <= ~ Le: (Integer, Integer) -> Boolean 155.79/50.27 ^ ~ Bwxor: (Integer, Integer) -> Integer 155.79/50.27 % ~ Mod: (Integer, Integer) -> Integer 155.79/50.27 > ~ Gt: (Integer, Integer) -> Boolean 155.79/50.27 + ~ Add: (Integer, Integer) -> Integer 155.79/50.27 -1 ~ UnaryMinus: (Integer) -> Integer 155.79/50.27 < ~ Lt: (Integer, Integer) -> Boolean 155.79/50.27 || ~ Lor: (Boolean, Boolean) -> Boolean 155.79/50.27 - ~ Sub: (Integer, Integer) -> Integer 155.79/50.27 ~ ~ Bwnot: (Integer) -> Integer 155.79/50.27 * ~ Mul: (Integer, Integer) -> Integer 155.79/50.27 >>> 155.79/50.27 155.79/50.27 155.79/50.27 The following domains are used: 155.79/50.27 Boolean, Integer 155.79/50.27 155.79/50.27 The ITRS R consists of the following rules: 155.79/50.27 eval(x, y) -> Cond_eval(x > 0 && y > 0, x, y) 155.79/50.27 Cond_eval(TRUE, x, y) -> eval(x - 1, x) 155.79/50.27 eval(x, y) -> Cond_eval1(x > 0 && y > 0, x, y) 155.79/50.27 Cond_eval1(TRUE, x, y) -> eval(y - 2, x + 1) 155.79/50.27 155.79/50.27 The integer pair graph contains the following rules and edges: 155.79/50.27 (0): EVAL(x[0], y[0]) -> COND_EVAL(x[0] > 0 && y[0] > 0, x[0], y[0]) 155.79/50.27 (1): COND_EVAL(TRUE, x[1], y[1]) -> EVAL(x[1] - 1, x[1]) 155.79/50.27 (2): EVAL(x[2], y[2]) -> COND_EVAL1(x[2] > 0 && y[2] > 0, x[2], y[2]) 155.79/50.27 (3): COND_EVAL1(TRUE, x[3], y[3]) -> EVAL(y[3] - 2, x[3] + 1) 155.79/50.27 155.79/50.27 (0) -> (1), if (x[0] > 0 && y[0] > 0 & x[0] ->^* x[1] & y[0] ->^* y[1]) 155.79/50.27 (1) -> (0), if (x[1] - 1 ->^* x[0] & x[1] ->^* y[0]) 155.79/50.27 (1) -> (2), if (x[1] - 1 ->^* x[2] & x[1] ->^* y[2]) 155.79/50.27 (2) -> (3), if (x[2] > 0 && y[2] > 0 & x[2] ->^* x[3] & y[2] ->^* y[3]) 155.79/50.27 (3) -> (0), if (y[3] - 2 ->^* x[0] & x[3] + 1 ->^* y[0]) 155.79/50.27 (3) -> (2), if (y[3] - 2 ->^* x[2] & x[3] + 1 ->^* y[2]) 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 eval(x0, x1) 155.79/50.27 Cond_eval(TRUE, x0, x1) 155.79/50.27 Cond_eval1(TRUE, x0, x1) 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (3) UsableRulesProof (EQUIVALENT) 155.79/50.27 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (4) 155.79/50.27 Obligation: 155.79/50.27 IDP problem: 155.79/50.27 The following function symbols are pre-defined: 155.79/50.27 <<< 155.79/50.27 & ~ Bwand: (Integer, Integer) -> Integer 155.79/50.27 >= ~ Ge: (Integer, Integer) -> Boolean 155.79/50.27 | ~ Bwor: (Integer, Integer) -> Integer 155.79/50.27 / ~ Div: (Integer, Integer) -> Integer 155.79/50.27 != ~ Neq: (Integer, Integer) -> Boolean 155.79/50.27 && ~ Land: (Boolean, Boolean) -> Boolean 155.79/50.27 ! ~ Lnot: (Boolean) -> Boolean 155.79/50.27 = ~ Eq: (Integer, Integer) -> Boolean 155.79/50.27 <= ~ Le: (Integer, Integer) -> Boolean 155.79/50.27 ^ ~ Bwxor: (Integer, Integer) -> Integer 155.79/50.27 % ~ Mod: (Integer, Integer) -> Integer 155.79/50.27 > ~ Gt: (Integer, Integer) -> Boolean 155.79/50.27 + ~ Add: (Integer, Integer) -> Integer 155.79/50.27 -1 ~ UnaryMinus: (Integer) -> Integer 155.79/50.27 < ~ Lt: (Integer, Integer) -> Boolean 155.79/50.27 || ~ Lor: (Boolean, Boolean) -> Boolean 155.79/50.27 - ~ Sub: (Integer, Integer) -> Integer 155.79/50.27 ~ ~ Bwnot: (Integer) -> Integer 155.79/50.27 * ~ Mul: (Integer, Integer) -> Integer 155.79/50.27 >>> 155.79/50.27 155.79/50.27 155.79/50.27 The following domains are used: 155.79/50.27 Boolean, Integer 155.79/50.27 155.79/50.27 R is empty. 155.79/50.27 155.79/50.27 The integer pair graph contains the following rules and edges: 155.79/50.27 (0): EVAL(x[0], y[0]) -> COND_EVAL(x[0] > 0 && y[0] > 0, x[0], y[0]) 155.79/50.27 (1): COND_EVAL(TRUE, x[1], y[1]) -> EVAL(x[1] - 1, x[1]) 155.79/50.27 (2): EVAL(x[2], y[2]) -> COND_EVAL1(x[2] > 0 && y[2] > 0, x[2], y[2]) 155.79/50.27 (3): COND_EVAL1(TRUE, x[3], y[3]) -> EVAL(y[3] - 2, x[3] + 1) 155.79/50.27 155.79/50.27 (0) -> (1), if (x[0] > 0 && y[0] > 0 & x[0] ->^* x[1] & y[0] ->^* y[1]) 155.79/50.27 (1) -> (0), if (x[1] - 1 ->^* x[0] & x[1] ->^* y[0]) 155.79/50.27 (1) -> (2), if (x[1] - 1 ->^* x[2] & x[1] ->^* y[2]) 155.79/50.27 (2) -> (3), if (x[2] > 0 && y[2] > 0 & x[2] ->^* x[3] & y[2] ->^* y[3]) 155.79/50.27 (3) -> (0), if (y[3] - 2 ->^* x[0] & x[3] + 1 ->^* y[0]) 155.79/50.27 (3) -> (2), if (y[3] - 2 ->^* x[2] & x[3] + 1 ->^* y[2]) 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 eval(x0, x1) 155.79/50.27 Cond_eval(TRUE, x0, x1) 155.79/50.27 Cond_eval1(TRUE, x0, x1) 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (5) IDPtoQDPProof (SOUND) 155.79/50.27 Represented integers and predefined function symbols by Terms 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (6) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(x[0], y[0]) -> COND_EVAL(and(greater_int(x[0], pos(01)), greater_int(y[0], pos(01))), x[0], y[0]) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(x[2], y[2]) -> COND_EVAL1(and(greater_int(x[2], pos(01)), greater_int(y[2], pos(01))), x[2], y[2]) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(pos(01), neg(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), neg(01)) -> false 155.79/50.27 greater_int(pos(01), pos(s(y))) -> false 155.79/50.27 greater_int(neg(01), pos(s(y))) -> false 155.79/50.27 greater_int(pos(01), neg(s(y))) -> true 155.79/50.27 greater_int(neg(01), neg(s(y))) -> true 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), neg(01)) -> true 155.79/50.27 greater_int(neg(s(x)), neg(01)) -> false 155.79/50.27 greater_int(pos(s(x)), neg(s(y))) -> true 155.79/50.27 greater_int(neg(s(x)), pos(s(y))) -> false 155.79/50.27 greater_int(pos(s(x)), pos(s(y))) -> greater_int(pos(x), pos(y)) 155.79/50.27 greater_int(neg(s(x)), neg(s(y))) -> greater_int(neg(x), neg(y)) 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), neg(y)) -> minus_nat(y, x) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 minus_int(pos(x), neg(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(neg(x), pos(y)) -> minus_nat(y, x) 155.79/50.27 plus_int(neg(x), neg(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 eval(x0, x1) 155.79/50.27 Cond_eval(true, x0, x1) 155.79/50.27 Cond_eval1(true, x0, x1) 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (7) UsableRulesProof (EQUIVALENT) 155.79/50.27 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (8) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(x[0], y[0]) -> COND_EVAL(and(greater_int(x[0], pos(01)), greater_int(y[0], pos(01))), x[0], y[0]) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(x[2], y[2]) -> COND_EVAL1(and(greater_int(x[2], pos(01)), greater_int(y[2], pos(01))), x[2], y[2]) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 eval(x0, x1) 155.79/50.27 Cond_eval(true, x0, x1) 155.79/50.27 Cond_eval1(true, x0, x1) 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (9) QReductionProof (EQUIVALENT) 155.79/50.27 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 155.79/50.27 155.79/50.27 eval(x0, x1) 155.79/50.27 Cond_eval(true, x0, x1) 155.79/50.27 Cond_eval1(true, x0, x1) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (10) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(x[0], y[0]) -> COND_EVAL(and(greater_int(x[0], pos(01)), greater_int(y[0], pos(01))), x[0], y[0]) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(x[2], y[2]) -> COND_EVAL1(and(greater_int(x[2], pos(01)), greater_int(y[2], pos(01))), x[2], y[2]) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (11) TransformationProof (EQUIVALENT) 155.79/50.27 By narrowing [LPAR04] the rule EVAL(x[0], y[0]) -> COND_EVAL(and(greater_int(x[0], pos(01)), greater_int(y[0], pos(01))), x[0], y[0]) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(pos(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), pos(01), y1),EVAL(pos(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), pos(01), y1)) 155.79/50.27 (EVAL(neg(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(01), y1),EVAL(neg(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(01), y1)) 155.79/50.27 (EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1),EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1)) 155.79/50.27 (EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1),EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1)) 155.79/50.27 (EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)),EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01))) 155.79/50.27 (EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)),EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01))) 155.79/50.27 (EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))),EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0)))) 155.79/50.27 (EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))),EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0)))) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (12) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(x[2], y[2]) -> COND_EVAL1(and(greater_int(x[2], pos(01)), greater_int(y[2], pos(01))), x[2], y[2]) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (13) TransformationProof (EQUIVALENT) 155.79/50.27 By narrowing [LPAR04] the rule EVAL(x[2], y[2]) -> COND_EVAL1(and(greater_int(x[2], pos(01)), greater_int(y[2], pos(01))), x[2], y[2]) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1),EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1)) 155.79/50.27 (EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1),EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1)) 155.79/50.27 (EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1),EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1)) 155.79/50.27 (EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1),EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1)) 155.79/50.27 (EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)),EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01))) 155.79/50.27 (EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)),EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01))) 155.79/50.27 (EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))),EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0)))) 155.79/50.27 (EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))),EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0)))) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (14) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (15) TransformationProof (EQUIVALENT) 155.79/50.27 By narrowing [LPAR04] the rule EVAL(pos(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), pos(01), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(pos(01), pos(01)) -> COND_EVAL(and(false, false), pos(01), pos(01)),EVAL(pos(01), pos(01)) -> COND_EVAL(and(false, false), pos(01), pos(01))) 155.79/50.27 (EVAL(pos(01), neg(01)) -> COND_EVAL(and(false, false), pos(01), neg(01)),EVAL(pos(01), neg(01)) -> COND_EVAL(and(false, false), pos(01), neg(01))) 155.79/50.27 (EVAL(pos(01), pos(s(x0))) -> COND_EVAL(and(false, true), pos(01), pos(s(x0))),EVAL(pos(01), pos(s(x0))) -> COND_EVAL(and(false, true), pos(01), pos(s(x0)))) 155.79/50.27 (EVAL(pos(01), neg(s(x0))) -> COND_EVAL(and(false, false), pos(01), neg(s(x0))),EVAL(pos(01), neg(s(x0))) -> COND_EVAL(and(false, false), pos(01), neg(s(x0)))) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (16) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), pos(01)) -> COND_EVAL(and(false, false), pos(01), pos(01)) 155.79/50.27 EVAL(pos(01), neg(01)) -> COND_EVAL(and(false, false), pos(01), neg(01)) 155.79/50.27 EVAL(pos(01), pos(s(x0))) -> COND_EVAL(and(false, true), pos(01), pos(s(x0))) 155.79/50.27 EVAL(pos(01), neg(s(x0))) -> COND_EVAL(and(false, false), pos(01), neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (17) DependencyGraphProof (EQUIVALENT) 155.79/50.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (18) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (19) TransformationProof (EQUIVALENT) 155.79/50.27 By narrowing [LPAR04] the rule EVAL(neg(01), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(01), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(neg(01), pos(01)) -> COND_EVAL(and(false, false), neg(01), pos(01)),EVAL(neg(01), pos(01)) -> COND_EVAL(and(false, false), neg(01), pos(01))) 155.79/50.27 (EVAL(neg(01), neg(01)) -> COND_EVAL(and(false, false), neg(01), neg(01)),EVAL(neg(01), neg(01)) -> COND_EVAL(and(false, false), neg(01), neg(01))) 155.79/50.27 (EVAL(neg(01), pos(s(x0))) -> COND_EVAL(and(false, true), neg(01), pos(s(x0))),EVAL(neg(01), pos(s(x0))) -> COND_EVAL(and(false, true), neg(01), pos(s(x0)))) 155.79/50.27 (EVAL(neg(01), neg(s(x0))) -> COND_EVAL(and(false, false), neg(01), neg(s(x0))),EVAL(neg(01), neg(s(x0))) -> COND_EVAL(and(false, false), neg(01), neg(s(x0)))) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (20) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(neg(01), pos(01)) -> COND_EVAL(and(false, false), neg(01), pos(01)) 155.79/50.27 EVAL(neg(01), neg(01)) -> COND_EVAL(and(false, false), neg(01), neg(01)) 155.79/50.27 EVAL(neg(01), pos(s(x0))) -> COND_EVAL(and(false, true), neg(01), pos(s(x0))) 155.79/50.27 EVAL(neg(01), neg(s(x0))) -> COND_EVAL(and(false, false), neg(01), neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (21) DependencyGraphProof (EQUIVALENT) 155.79/50.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (22) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (23) TransformationProof (EQUIVALENT) 155.79/50.27 By narrowing [LPAR04] the rule EVAL(pos(s(x0)), y1) -> COND_EVAL(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(pos(s(y0)), pos(01)) -> COND_EVAL(and(true, false), pos(s(y0)), pos(01)),EVAL(pos(s(y0)), pos(01)) -> COND_EVAL(and(true, false), pos(s(y0)), pos(01))) 155.79/50.27 (EVAL(pos(s(y0)), neg(01)) -> COND_EVAL(and(true, false), pos(s(y0)), neg(01)),EVAL(pos(s(y0)), neg(01)) -> COND_EVAL(and(true, false), pos(s(y0)), neg(01))) 155.79/50.27 (EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(and(true, true), pos(s(y0)), pos(s(x0))),EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(and(true, true), pos(s(y0)), pos(s(x0)))) 155.79/50.27 (EVAL(pos(s(y0)), neg(s(x0))) -> COND_EVAL(and(true, false), pos(s(y0)), neg(s(x0))),EVAL(pos(s(y0)), neg(s(x0))) -> COND_EVAL(and(true, false), pos(s(y0)), neg(s(x0)))) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (24) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(s(y0)), pos(01)) -> COND_EVAL(and(true, false), pos(s(y0)), pos(01)) 155.79/50.27 EVAL(pos(s(y0)), neg(01)) -> COND_EVAL(and(true, false), pos(s(y0)), neg(01)) 155.79/50.27 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(and(true, true), pos(s(y0)), pos(s(x0))) 155.79/50.27 EVAL(pos(s(y0)), neg(s(x0))) -> COND_EVAL(and(true, false), pos(s(y0)), neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (25) DependencyGraphProof (EQUIVALENT) 155.79/50.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (26) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(and(true, true), pos(s(y0)), pos(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (27) TransformationProof (EQUIVALENT) 155.79/50.27 By rewriting [LPAR04] the rule EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(and(true, true), pos(s(y0)), pos(s(x0))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))),EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0)))) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (28) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (29) TransformationProof (EQUIVALENT) 155.79/50.27 By narrowing [LPAR04] the rule EVAL(neg(s(x0)), y1) -> COND_EVAL(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(neg(s(y0)), pos(01)) -> COND_EVAL(and(false, false), neg(s(y0)), pos(01)),EVAL(neg(s(y0)), pos(01)) -> COND_EVAL(and(false, false), neg(s(y0)), pos(01))) 155.79/50.27 (EVAL(neg(s(y0)), neg(01)) -> COND_EVAL(and(false, false), neg(s(y0)), neg(01)),EVAL(neg(s(y0)), neg(01)) -> COND_EVAL(and(false, false), neg(s(y0)), neg(01))) 155.79/50.27 (EVAL(neg(s(y0)), pos(s(x0))) -> COND_EVAL(and(false, true), neg(s(y0)), pos(s(x0))),EVAL(neg(s(y0)), pos(s(x0))) -> COND_EVAL(and(false, true), neg(s(y0)), pos(s(x0)))) 155.79/50.27 (EVAL(neg(s(y0)), neg(s(x0))) -> COND_EVAL(and(false, false), neg(s(y0)), neg(s(x0))),EVAL(neg(s(y0)), neg(s(x0))) -> COND_EVAL(and(false, false), neg(s(y0)), neg(s(x0)))) 155.79/50.27 155.79/50.27 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (30) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.27 EVAL(neg(s(y0)), pos(01)) -> COND_EVAL(and(false, false), neg(s(y0)), pos(01)) 155.79/50.27 EVAL(neg(s(y0)), neg(01)) -> COND_EVAL(and(false, false), neg(s(y0)), neg(01)) 155.79/50.27 EVAL(neg(s(y0)), pos(s(x0))) -> COND_EVAL(and(false, true), neg(s(y0)), pos(s(x0))) 155.79/50.27 EVAL(neg(s(y0)), neg(s(x0))) -> COND_EVAL(and(false, false), neg(s(y0)), neg(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (31) DependencyGraphProof (EQUIVALENT) 155.79/50.27 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (32) 155.79/50.27 Obligation: 155.79/50.27 Q DP problem: 155.79/50.27 The TRS P consists of the following rules: 155.79/50.27 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.27 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.27 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.27 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.27 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.27 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.27 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.27 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.27 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.27 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.27 155.79/50.27 The TRS R consists of the following rules: 155.79/50.27 155.79/50.27 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.27 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.27 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.27 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.27 plus_nat(01, x) -> x 155.79/50.27 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.27 minus_nat(01, 01) -> pos(01) 155.79/50.27 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.27 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.27 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.27 greater_int(pos(01), pos(01)) -> false 155.79/50.27 greater_int(neg(01), pos(01)) -> false 155.79/50.27 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.27 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.27 and(false, false) -> false 155.79/50.27 and(false, true) -> false 155.79/50.27 and(true, false) -> false 155.79/50.27 and(true, true) -> true 155.79/50.27 155.79/50.27 The set Q consists of the following terms: 155.79/50.27 155.79/50.27 and(false, false) 155.79/50.27 and(false, true) 155.79/50.27 and(true, false) 155.79/50.27 and(true, true) 155.79/50.27 greater_int(pos(01), pos(01)) 155.79/50.27 greater_int(pos(01), neg(01)) 155.79/50.27 greater_int(neg(01), pos(01)) 155.79/50.27 greater_int(neg(01), neg(01)) 155.79/50.27 greater_int(pos(01), pos(s(x0))) 155.79/50.27 greater_int(neg(01), pos(s(x0))) 155.79/50.27 greater_int(pos(01), neg(s(x0))) 155.79/50.27 greater_int(neg(01), neg(s(x0))) 155.79/50.27 greater_int(pos(s(x0)), pos(01)) 155.79/50.27 greater_int(neg(s(x0)), pos(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(01)) 155.79/50.27 greater_int(neg(s(x0)), neg(01)) 155.79/50.27 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.27 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.27 minus_int(pos(x0), pos(x1)) 155.79/50.27 minus_int(neg(x0), neg(x1)) 155.79/50.27 minus_int(neg(x0), pos(x1)) 155.79/50.27 minus_int(pos(x0), neg(x1)) 155.79/50.27 plus_nat(01, x0) 155.79/50.27 plus_nat(s(x0), x1) 155.79/50.27 minus_nat(01, 01) 155.79/50.27 minus_nat(01, s(x0)) 155.79/50.27 minus_nat(s(x0), 01) 155.79/50.27 minus_nat(s(x0), s(x1)) 155.79/50.27 plus_int(pos(x0), neg(x1)) 155.79/50.27 plus_int(neg(x0), pos(x1)) 155.79/50.27 plus_int(neg(x0), neg(x1)) 155.79/50.27 plus_int(pos(x0), pos(x1)) 155.79/50.27 155.79/50.27 We have to consider all minimal (P,Q,R)-chains. 155.79/50.27 ---------------------------------------- 155.79/50.27 155.79/50.27 (33) TransformationProof (EQUIVALENT) 155.79/50.27 By narrowing [LPAR04] the rule EVAL(y0, pos(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, pos(01)) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.27 155.79/50.27 (EVAL(pos(01), pos(01)) -> COND_EVAL(and(false, false), pos(01), pos(01)),EVAL(pos(01), pos(01)) -> COND_EVAL(and(false, false), pos(01), pos(01))) 155.79/50.27 (EVAL(neg(01), pos(01)) -> COND_EVAL(and(false, false), neg(01), pos(01)),EVAL(neg(01), pos(01)) -> COND_EVAL(and(false, false), neg(01), pos(01))) 155.79/50.28 (EVAL(pos(s(x0)), pos(01)) -> COND_EVAL(and(true, false), pos(s(x0)), pos(01)),EVAL(pos(s(x0)), pos(01)) -> COND_EVAL(and(true, false), pos(s(x0)), pos(01))) 155.79/50.28 (EVAL(neg(s(x0)), pos(01)) -> COND_EVAL(and(false, false), neg(s(x0)), pos(01)),EVAL(neg(s(x0)), pos(01)) -> COND_EVAL(and(false, false), neg(s(x0)), pos(01))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (34) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 EVAL(pos(01), pos(01)) -> COND_EVAL(and(false, false), pos(01), pos(01)) 155.79/50.28 EVAL(neg(01), pos(01)) -> COND_EVAL(and(false, false), neg(01), pos(01)) 155.79/50.28 EVAL(pos(s(x0)), pos(01)) -> COND_EVAL(and(true, false), pos(s(x0)), pos(01)) 155.79/50.28 EVAL(neg(s(x0)), pos(01)) -> COND_EVAL(and(false, false), neg(s(x0)), pos(01)) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (35) DependencyGraphProof (EQUIVALENT) 155.79/50.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (36) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (37) TransformationProof (EQUIVALENT) 155.79/50.28 By narrowing [LPAR04] the rule EVAL(y0, neg(01)) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(01)) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(pos(01), neg(01)) -> COND_EVAL(and(false, false), pos(01), neg(01)),EVAL(pos(01), neg(01)) -> COND_EVAL(and(false, false), pos(01), neg(01))) 155.79/50.28 (EVAL(neg(01), neg(01)) -> COND_EVAL(and(false, false), neg(01), neg(01)),EVAL(neg(01), neg(01)) -> COND_EVAL(and(false, false), neg(01), neg(01))) 155.79/50.28 (EVAL(pos(s(x0)), neg(01)) -> COND_EVAL(and(true, false), pos(s(x0)), neg(01)),EVAL(pos(s(x0)), neg(01)) -> COND_EVAL(and(true, false), pos(s(x0)), neg(01))) 155.79/50.28 (EVAL(neg(s(x0)), neg(01)) -> COND_EVAL(and(false, false), neg(s(x0)), neg(01)),EVAL(neg(s(x0)), neg(01)) -> COND_EVAL(and(false, false), neg(s(x0)), neg(01))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (38) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 EVAL(pos(01), neg(01)) -> COND_EVAL(and(false, false), pos(01), neg(01)) 155.79/50.28 EVAL(neg(01), neg(01)) -> COND_EVAL(and(false, false), neg(01), neg(01)) 155.79/50.28 EVAL(pos(s(x0)), neg(01)) -> COND_EVAL(and(true, false), pos(s(x0)), neg(01)) 155.79/50.28 EVAL(neg(s(x0)), neg(01)) -> COND_EVAL(and(false, false), neg(s(x0)), neg(01)) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (39) DependencyGraphProof (EQUIVALENT) 155.79/50.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (40) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (41) TransformationProof (EQUIVALENT) 155.79/50.28 By narrowing [LPAR04] the rule EVAL(y0, pos(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(pos(01), pos(s(y1))) -> COND_EVAL(and(false, true), pos(01), pos(s(y1))),EVAL(pos(01), pos(s(y1))) -> COND_EVAL(and(false, true), pos(01), pos(s(y1)))) 155.79/50.28 (EVAL(neg(01), pos(s(y1))) -> COND_EVAL(and(false, true), neg(01), pos(s(y1))),EVAL(neg(01), pos(s(y1))) -> COND_EVAL(and(false, true), neg(01), pos(s(y1)))) 155.79/50.28 (EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL(and(true, true), pos(s(x0)), pos(s(y1))),EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL(and(true, true), pos(s(x0)), pos(s(y1)))) 155.79/50.28 (EVAL(neg(s(x0)), pos(s(y1))) -> COND_EVAL(and(false, true), neg(s(x0)), pos(s(y1))),EVAL(neg(s(x0)), pos(s(y1))) -> COND_EVAL(and(false, true), neg(s(x0)), pos(s(y1)))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (42) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 EVAL(pos(01), pos(s(y1))) -> COND_EVAL(and(false, true), pos(01), pos(s(y1))) 155.79/50.28 EVAL(neg(01), pos(s(y1))) -> COND_EVAL(and(false, true), neg(01), pos(s(y1))) 155.79/50.28 EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL(and(true, true), pos(s(x0)), pos(s(y1))) 155.79/50.28 EVAL(neg(s(x0)), pos(s(y1))) -> COND_EVAL(and(false, true), neg(s(x0)), pos(s(y1))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (43) DependencyGraphProof (EQUIVALENT) 155.79/50.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (44) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL(and(true, true), pos(s(x0)), pos(s(y1))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (45) TransformationProof (EQUIVALENT) 155.79/50.28 By rewriting [LPAR04] the rule EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL(and(true, true), pos(s(x0)), pos(s(y1))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL(true, pos(s(x0)), pos(s(y1))),EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0)))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (46) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (47) TransformationProof (EQUIVALENT) 155.79/50.28 By narrowing [LPAR04] the rule EVAL(y0, neg(s(x0))) -> COND_EVAL(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(pos(01), neg(s(y1))) -> COND_EVAL(and(false, false), pos(01), neg(s(y1))),EVAL(pos(01), neg(s(y1))) -> COND_EVAL(and(false, false), pos(01), neg(s(y1)))) 155.79/50.28 (EVAL(neg(01), neg(s(y1))) -> COND_EVAL(and(false, false), neg(01), neg(s(y1))),EVAL(neg(01), neg(s(y1))) -> COND_EVAL(and(false, false), neg(01), neg(s(y1)))) 155.79/50.28 (EVAL(pos(s(x0)), neg(s(y1))) -> COND_EVAL(and(true, false), pos(s(x0)), neg(s(y1))),EVAL(pos(s(x0)), neg(s(y1))) -> COND_EVAL(and(true, false), pos(s(x0)), neg(s(y1)))) 155.79/50.28 (EVAL(neg(s(x0)), neg(s(y1))) -> COND_EVAL(and(false, false), neg(s(x0)), neg(s(y1))),EVAL(neg(s(x0)), neg(s(y1))) -> COND_EVAL(and(false, false), neg(s(x0)), neg(s(y1)))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (48) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 EVAL(pos(01), neg(s(y1))) -> COND_EVAL(and(false, false), pos(01), neg(s(y1))) 155.79/50.28 EVAL(neg(01), neg(s(y1))) -> COND_EVAL(and(false, false), neg(01), neg(s(y1))) 155.79/50.28 EVAL(pos(s(x0)), neg(s(y1))) -> COND_EVAL(and(true, false), pos(s(x0)), neg(s(y1))) 155.79/50.28 EVAL(neg(s(x0)), neg(s(y1))) -> COND_EVAL(and(false, false), neg(s(x0)), neg(s(y1))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (49) DependencyGraphProof (EQUIVALENT) 155.79/50.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (50) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (51) TransformationProof (EQUIVALENT) 155.79/50.28 By narrowing [LPAR04] the rule EVAL(pos(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), pos(01), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(pos(01), pos(01)) -> COND_EVAL1(and(false, false), pos(01), pos(01)),EVAL(pos(01), pos(01)) -> COND_EVAL1(and(false, false), pos(01), pos(01))) 155.79/50.28 (EVAL(pos(01), neg(01)) -> COND_EVAL1(and(false, false), pos(01), neg(01)),EVAL(pos(01), neg(01)) -> COND_EVAL1(and(false, false), pos(01), neg(01))) 155.79/50.28 (EVAL(pos(01), pos(s(x0))) -> COND_EVAL1(and(false, true), pos(01), pos(s(x0))),EVAL(pos(01), pos(s(x0))) -> COND_EVAL1(and(false, true), pos(01), pos(s(x0)))) 155.79/50.28 (EVAL(pos(01), neg(s(x0))) -> COND_EVAL1(and(false, false), pos(01), neg(s(x0))),EVAL(pos(01), neg(s(x0))) -> COND_EVAL1(and(false, false), pos(01), neg(s(x0)))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (52) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(pos(01), pos(01)) -> COND_EVAL1(and(false, false), pos(01), pos(01)) 155.79/50.28 EVAL(pos(01), neg(01)) -> COND_EVAL1(and(false, false), pos(01), neg(01)) 155.79/50.28 EVAL(pos(01), pos(s(x0))) -> COND_EVAL1(and(false, true), pos(01), pos(s(x0))) 155.79/50.28 EVAL(pos(01), neg(s(x0))) -> COND_EVAL1(and(false, false), pos(01), neg(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (53) DependencyGraphProof (EQUIVALENT) 155.79/50.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (54) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (55) TransformationProof (EQUIVALENT) 155.79/50.28 By narrowing [LPAR04] the rule EVAL(neg(01), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(01), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(neg(01), pos(01)) -> COND_EVAL1(and(false, false), neg(01), pos(01)),EVAL(neg(01), pos(01)) -> COND_EVAL1(and(false, false), neg(01), pos(01))) 155.79/50.28 (EVAL(neg(01), neg(01)) -> COND_EVAL1(and(false, false), neg(01), neg(01)),EVAL(neg(01), neg(01)) -> COND_EVAL1(and(false, false), neg(01), neg(01))) 155.79/50.28 (EVAL(neg(01), pos(s(x0))) -> COND_EVAL1(and(false, true), neg(01), pos(s(x0))),EVAL(neg(01), pos(s(x0))) -> COND_EVAL1(and(false, true), neg(01), pos(s(x0)))) 155.79/50.28 (EVAL(neg(01), neg(s(x0))) -> COND_EVAL1(and(false, false), neg(01), neg(s(x0))),EVAL(neg(01), neg(s(x0))) -> COND_EVAL1(and(false, false), neg(01), neg(s(x0)))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (56) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(neg(01), pos(01)) -> COND_EVAL1(and(false, false), neg(01), pos(01)) 155.79/50.28 EVAL(neg(01), neg(01)) -> COND_EVAL1(and(false, false), neg(01), neg(01)) 155.79/50.28 EVAL(neg(01), pos(s(x0))) -> COND_EVAL1(and(false, true), neg(01), pos(s(x0))) 155.79/50.28 EVAL(neg(01), neg(s(x0))) -> COND_EVAL1(and(false, false), neg(01), neg(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (57) DependencyGraphProof (EQUIVALENT) 155.79/50.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (58) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (59) TransformationProof (EQUIVALENT) 155.79/50.28 By narrowing [LPAR04] the rule EVAL(pos(s(x0)), y1) -> COND_EVAL1(and(true, greater_int(y1, pos(01))), pos(s(x0)), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(pos(s(y0)), pos(01)) -> COND_EVAL1(and(true, false), pos(s(y0)), pos(01)),EVAL(pos(s(y0)), pos(01)) -> COND_EVAL1(and(true, false), pos(s(y0)), pos(01))) 155.79/50.28 (EVAL(pos(s(y0)), neg(01)) -> COND_EVAL1(and(true, false), pos(s(y0)), neg(01)),EVAL(pos(s(y0)), neg(01)) -> COND_EVAL1(and(true, false), pos(s(y0)), neg(01))) 155.79/50.28 (EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(and(true, true), pos(s(y0)), pos(s(x0))),EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(and(true, true), pos(s(y0)), pos(s(x0)))) 155.79/50.28 (EVAL(pos(s(y0)), neg(s(x0))) -> COND_EVAL1(and(true, false), pos(s(y0)), neg(s(x0))),EVAL(pos(s(y0)), neg(s(x0))) -> COND_EVAL1(and(true, false), pos(s(y0)), neg(s(x0)))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (60) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(pos(s(y0)), pos(01)) -> COND_EVAL1(and(true, false), pos(s(y0)), pos(01)) 155.79/50.28 EVAL(pos(s(y0)), neg(01)) -> COND_EVAL1(and(true, false), pos(s(y0)), neg(01)) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(and(true, true), pos(s(y0)), pos(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), neg(s(x0))) -> COND_EVAL1(and(true, false), pos(s(y0)), neg(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (61) DependencyGraphProof (EQUIVALENT) 155.79/50.28 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (62) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(and(true, true), pos(s(y0)), pos(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (63) TransformationProof (EQUIVALENT) 155.79/50.28 By rewriting [LPAR04] the rule EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(and(true, true), pos(s(y0)), pos(s(x0))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))),EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0)))) 155.79/50.28 155.79/50.28 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (64) 155.79/50.28 Obligation: 155.79/50.28 Q DP problem: 155.79/50.28 The TRS P consists of the following rules: 155.79/50.28 155.79/50.28 EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) 155.79/50.28 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.28 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.28 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.28 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.28 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.28 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.28 155.79/50.28 The TRS R consists of the following rules: 155.79/50.28 155.79/50.28 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.28 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.28 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.28 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.28 plus_nat(01, x) -> x 155.79/50.28 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.28 minus_nat(01, 01) -> pos(01) 155.79/50.28 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.28 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.28 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.28 greater_int(pos(01), pos(01)) -> false 155.79/50.28 greater_int(neg(01), pos(01)) -> false 155.79/50.28 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.28 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.28 and(false, false) -> false 155.79/50.28 and(false, true) -> false 155.79/50.28 and(true, false) -> false 155.79/50.28 and(true, true) -> true 155.79/50.28 155.79/50.28 The set Q consists of the following terms: 155.79/50.28 155.79/50.28 and(false, false) 155.79/50.28 and(false, true) 155.79/50.28 and(true, false) 155.79/50.28 and(true, true) 155.79/50.28 greater_int(pos(01), pos(01)) 155.79/50.28 greater_int(pos(01), neg(01)) 155.79/50.28 greater_int(neg(01), pos(01)) 155.79/50.28 greater_int(neg(01), neg(01)) 155.79/50.28 greater_int(pos(01), pos(s(x0))) 155.79/50.28 greater_int(neg(01), pos(s(x0))) 155.79/50.28 greater_int(pos(01), neg(s(x0))) 155.79/50.28 greater_int(neg(01), neg(s(x0))) 155.79/50.28 greater_int(pos(s(x0)), pos(01)) 155.79/50.28 greater_int(neg(s(x0)), pos(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(01)) 155.79/50.28 greater_int(neg(s(x0)), neg(01)) 155.79/50.28 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.28 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.28 minus_int(pos(x0), pos(x1)) 155.79/50.28 minus_int(neg(x0), neg(x1)) 155.79/50.28 minus_int(neg(x0), pos(x1)) 155.79/50.28 minus_int(pos(x0), neg(x1)) 155.79/50.28 plus_nat(01, x0) 155.79/50.28 plus_nat(s(x0), x1) 155.79/50.28 minus_nat(01, 01) 155.79/50.28 minus_nat(01, s(x0)) 155.79/50.28 minus_nat(s(x0), 01) 155.79/50.28 minus_nat(s(x0), s(x1)) 155.79/50.28 plus_int(pos(x0), neg(x1)) 155.79/50.28 plus_int(neg(x0), pos(x1)) 155.79/50.28 plus_int(neg(x0), neg(x1)) 155.79/50.28 plus_int(pos(x0), pos(x1)) 155.79/50.28 155.79/50.28 We have to consider all minimal (P,Q,R)-chains. 155.79/50.28 ---------------------------------------- 155.79/50.28 155.79/50.28 (65) TransformationProof (EQUIVALENT) 155.79/50.28 By narrowing [LPAR04] the rule EVAL(neg(s(x0)), y1) -> COND_EVAL1(and(false, greater_int(y1, pos(01))), neg(s(x0)), y1) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.28 155.79/50.28 (EVAL(neg(s(y0)), pos(01)) -> COND_EVAL1(and(false, false), neg(s(y0)), pos(01)),EVAL(neg(s(y0)), pos(01)) -> COND_EVAL1(and(false, false), neg(s(y0)), pos(01))) 155.79/50.28 (EVAL(neg(s(y0)), neg(01)) -> COND_EVAL1(and(false, false), neg(s(y0)), neg(01)),EVAL(neg(s(y0)), neg(01)) -> COND_EVAL1(and(false, false), neg(s(y0)), neg(01))) 155.79/50.28 (EVAL(neg(s(y0)), pos(s(x0))) -> COND_EVAL1(and(false, true), neg(s(y0)), pos(s(x0))),EVAL(neg(s(y0)), pos(s(x0))) -> COND_EVAL1(and(false, true), neg(s(y0)), pos(s(x0)))) 155.79/50.29 (EVAL(neg(s(y0)), neg(s(x0))) -> COND_EVAL1(and(false, false), neg(s(y0)), neg(s(x0))),EVAL(neg(s(y0)), neg(s(x0))) -> COND_EVAL1(and(false, false), neg(s(y0)), neg(s(x0)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (66) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.29 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.29 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(neg(s(y0)), pos(01)) -> COND_EVAL1(and(false, false), neg(s(y0)), pos(01)) 155.79/50.29 EVAL(neg(s(y0)), neg(01)) -> COND_EVAL1(and(false, false), neg(s(y0)), neg(01)) 155.79/50.29 EVAL(neg(s(y0)), pos(s(x0))) -> COND_EVAL1(and(false, true), neg(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(neg(s(y0)), neg(s(x0))) -> COND_EVAL1(and(false, false), neg(s(y0)), neg(s(x0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (67) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (68) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.29 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (69) TransformationProof (EQUIVALENT) 155.79/50.29 By narrowing [LPAR04] the rule EVAL(y0, pos(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, pos(01)) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (EVAL(pos(01), pos(01)) -> COND_EVAL1(and(false, false), pos(01), pos(01)),EVAL(pos(01), pos(01)) -> COND_EVAL1(and(false, false), pos(01), pos(01))) 155.79/50.29 (EVAL(neg(01), pos(01)) -> COND_EVAL1(and(false, false), neg(01), pos(01)),EVAL(neg(01), pos(01)) -> COND_EVAL1(and(false, false), neg(01), pos(01))) 155.79/50.29 (EVAL(pos(s(x0)), pos(01)) -> COND_EVAL1(and(true, false), pos(s(x0)), pos(01)),EVAL(pos(s(x0)), pos(01)) -> COND_EVAL1(and(true, false), pos(s(x0)), pos(01))) 155.79/50.29 (EVAL(neg(s(x0)), pos(01)) -> COND_EVAL1(and(false, false), neg(s(x0)), pos(01)),EVAL(neg(s(x0)), pos(01)) -> COND_EVAL1(and(false, false), neg(s(x0)), pos(01))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (70) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.29 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(01), pos(01)) -> COND_EVAL1(and(false, false), pos(01), pos(01)) 155.79/50.29 EVAL(neg(01), pos(01)) -> COND_EVAL1(and(false, false), neg(01), pos(01)) 155.79/50.29 EVAL(pos(s(x0)), pos(01)) -> COND_EVAL1(and(true, false), pos(s(x0)), pos(01)) 155.79/50.29 EVAL(neg(s(x0)), pos(01)) -> COND_EVAL1(and(false, false), neg(s(x0)), pos(01)) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (71) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (72) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (73) TransformationProof (EQUIVALENT) 155.79/50.29 By narrowing [LPAR04] the rule EVAL(y0, neg(01)) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(01)) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (EVAL(pos(01), neg(01)) -> COND_EVAL1(and(false, false), pos(01), neg(01)),EVAL(pos(01), neg(01)) -> COND_EVAL1(and(false, false), pos(01), neg(01))) 155.79/50.29 (EVAL(neg(01), neg(01)) -> COND_EVAL1(and(false, false), neg(01), neg(01)),EVAL(neg(01), neg(01)) -> COND_EVAL1(and(false, false), neg(01), neg(01))) 155.79/50.29 (EVAL(pos(s(x0)), neg(01)) -> COND_EVAL1(and(true, false), pos(s(x0)), neg(01)),EVAL(pos(s(x0)), neg(01)) -> COND_EVAL1(and(true, false), pos(s(x0)), neg(01))) 155.79/50.29 (EVAL(neg(s(x0)), neg(01)) -> COND_EVAL1(and(false, false), neg(s(x0)), neg(01)),EVAL(neg(s(x0)), neg(01)) -> COND_EVAL1(and(false, false), neg(s(x0)), neg(01))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (74) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(01), neg(01)) -> COND_EVAL1(and(false, false), pos(01), neg(01)) 155.79/50.29 EVAL(neg(01), neg(01)) -> COND_EVAL1(and(false, false), neg(01), neg(01)) 155.79/50.29 EVAL(pos(s(x0)), neg(01)) -> COND_EVAL1(and(true, false), pos(s(x0)), neg(01)) 155.79/50.29 EVAL(neg(s(x0)), neg(01)) -> COND_EVAL1(and(false, false), neg(s(x0)), neg(01)) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (75) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (76) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (77) TransformationProof (EQUIVALENT) 155.79/50.29 By narrowing [LPAR04] the rule EVAL(y0, pos(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), true), y0, pos(s(x0))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (EVAL(pos(01), pos(s(y1))) -> COND_EVAL1(and(false, true), pos(01), pos(s(y1))),EVAL(pos(01), pos(s(y1))) -> COND_EVAL1(and(false, true), pos(01), pos(s(y1)))) 155.79/50.29 (EVAL(neg(01), pos(s(y1))) -> COND_EVAL1(and(false, true), neg(01), pos(s(y1))),EVAL(neg(01), pos(s(y1))) -> COND_EVAL1(and(false, true), neg(01), pos(s(y1)))) 155.79/50.29 (EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL1(and(true, true), pos(s(x0)), pos(s(y1))),EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL1(and(true, true), pos(s(x0)), pos(s(y1)))) 155.79/50.29 (EVAL(neg(s(x0)), pos(s(y1))) -> COND_EVAL1(and(false, true), neg(s(x0)), pos(s(y1))),EVAL(neg(s(x0)), pos(s(y1))) -> COND_EVAL1(and(false, true), neg(s(x0)), pos(s(y1)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (78) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(01), pos(s(y1))) -> COND_EVAL1(and(false, true), pos(01), pos(s(y1))) 155.79/50.29 EVAL(neg(01), pos(s(y1))) -> COND_EVAL1(and(false, true), neg(01), pos(s(y1))) 155.79/50.29 EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL1(and(true, true), pos(s(x0)), pos(s(y1))) 155.79/50.29 EVAL(neg(s(x0)), pos(s(y1))) -> COND_EVAL1(and(false, true), neg(s(x0)), pos(s(y1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (79) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (80) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL1(and(true, true), pos(s(x0)), pos(s(y1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(false, true) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 and(true, true) -> true 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (81) UsableRulesProof (EQUIVALENT) 155.79/50.29 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (82) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL1(and(true, true), pos(s(x0)), pos(s(y1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 and(true, true) -> true 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (83) TransformationProof (EQUIVALENT) 155.79/50.29 By rewriting [LPAR04] the rule EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL1(and(true, true), pos(s(x0)), pos(s(y1))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (EVAL(pos(s(x0)), pos(s(y1))) -> COND_EVAL1(true, pos(s(x0)), pos(s(y1))),EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (84) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 and(true, true) -> true 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (85) UsableRulesProof (EQUIVALENT) 155.79/50.29 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (86) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (87) TransformationProof (EQUIVALENT) 155.79/50.29 By narrowing [LPAR04] the rule EVAL(y0, neg(s(x0))) -> COND_EVAL1(and(greater_int(y0, pos(01)), false), y0, neg(s(x0))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (EVAL(pos(01), neg(s(y1))) -> COND_EVAL1(and(false, false), pos(01), neg(s(y1))),EVAL(pos(01), neg(s(y1))) -> COND_EVAL1(and(false, false), pos(01), neg(s(y1)))) 155.79/50.29 (EVAL(neg(01), neg(s(y1))) -> COND_EVAL1(and(false, false), neg(01), neg(s(y1))),EVAL(neg(01), neg(s(y1))) -> COND_EVAL1(and(false, false), neg(01), neg(s(y1)))) 155.79/50.29 (EVAL(pos(s(x0)), neg(s(y1))) -> COND_EVAL1(and(true, false), pos(s(x0)), neg(s(y1))),EVAL(pos(s(x0)), neg(s(y1))) -> COND_EVAL1(and(true, false), pos(s(x0)), neg(s(y1)))) 155.79/50.29 (EVAL(neg(s(x0)), neg(s(y1))) -> COND_EVAL1(and(false, false), neg(s(x0)), neg(s(y1))),EVAL(neg(s(x0)), neg(s(y1))) -> COND_EVAL1(and(false, false), neg(s(x0)), neg(s(y1)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (88) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(01), neg(s(y1))) -> COND_EVAL1(and(false, false), pos(01), neg(s(y1))) 155.79/50.29 EVAL(neg(01), neg(s(y1))) -> COND_EVAL1(and(false, false), neg(01), neg(s(y1))) 155.79/50.29 EVAL(pos(s(x0)), neg(s(y1))) -> COND_EVAL1(and(true, false), pos(s(x0)), neg(s(y1))) 155.79/50.29 EVAL(neg(s(x0)), neg(s(y1))) -> COND_EVAL1(and(false, false), neg(s(x0)), neg(s(y1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (89) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (90) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 greater_int(pos(01), pos(01)) -> false 155.79/50.29 greater_int(neg(01), pos(01)) -> false 155.79/50.29 greater_int(pos(s(x)), pos(01)) -> true 155.79/50.29 greater_int(neg(s(x)), pos(01)) -> false 155.79/50.29 and(false, false) -> false 155.79/50.29 and(true, false) -> false 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (91) UsableRulesProof (EQUIVALENT) 155.79/50.29 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (92) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (93) QReductionProof (EQUIVALENT) 155.79/50.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 155.79/50.29 155.79/50.29 and(false, false) 155.79/50.29 and(false, true) 155.79/50.29 and(true, false) 155.79/50.29 and(true, true) 155.79/50.29 greater_int(pos(01), pos(01)) 155.79/50.29 greater_int(pos(01), neg(01)) 155.79/50.29 greater_int(neg(01), pos(01)) 155.79/50.29 greater_int(neg(01), neg(01)) 155.79/50.29 greater_int(pos(01), pos(s(x0))) 155.79/50.29 greater_int(neg(01), pos(s(x0))) 155.79/50.29 greater_int(pos(01), neg(s(x0))) 155.79/50.29 greater_int(neg(01), neg(s(x0))) 155.79/50.29 greater_int(pos(s(x0)), pos(01)) 155.79/50.29 greater_int(neg(s(x0)), pos(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(01)) 155.79/50.29 greater_int(neg(s(x0)), neg(01)) 155.79/50.29 greater_int(pos(s(x0)), neg(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(pos(s(x0)), pos(s(x1))) 155.79/50.29 greater_int(neg(s(x0)), neg(s(x1))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (94) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (95) TransformationProof (EQUIVALENT) 155.79/50.29 By narrowing [LPAR04] the rule COND_EVAL(true, x[1], y[1]) -> EVAL(minus_int(x[1], pos(s(01))), x[1]) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)),COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0))) 155.79/50.29 (COND_EVAL(true, neg(x0), y1) -> EVAL(neg(plus_nat(x0, s(01))), neg(x0)),COND_EVAL(true, neg(x0), y1) -> EVAL(neg(plus_nat(x0, s(01))), neg(x0))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (96) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 COND_EVAL(true, neg(x0), y1) -> EVAL(neg(plus_nat(x0, s(01))), neg(x0)) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (97) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (98) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (99) TransformationProof (EQUIVALENT) 155.79/50.29 By narrowing [LPAR04] the rule COND_EVAL1(true, x[3], y[3]) -> EVAL(minus_int(y[3], pos(s(s(01)))), plus_int(pos(s(01)), x[3])) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL1(true, y0, pos(x0)) -> EVAL(minus_nat(x0, s(s(01))), plus_int(pos(s(01)), y0)),COND_EVAL1(true, y0, pos(x0)) -> EVAL(minus_nat(x0, s(s(01))), plus_int(pos(s(01)), y0))) 155.79/50.29 (COND_EVAL1(true, y0, neg(x0)) -> EVAL(neg(plus_nat(x0, s(s(01)))), plus_int(pos(s(01)), y0)),COND_EVAL1(true, y0, neg(x0)) -> EVAL(neg(plus_nat(x0, s(s(01)))), plus_int(pos(s(01)), y0))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (100) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, y0, pos(x0)) -> EVAL(minus_nat(x0, s(s(01))), plus_int(pos(s(01)), y0)) 155.79/50.29 COND_EVAL1(true, y0, neg(x0)) -> EVAL(neg(plus_nat(x0, s(s(01)))), plus_int(pos(s(01)), y0)) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (101) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (102) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, y0, pos(x0)) -> EVAL(minus_nat(x0, s(s(01))), plus_int(pos(s(01)), y0)) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_int(pos(x), pos(y)) -> minus_nat(x, y) 155.79/50.29 minus_int(neg(x), pos(y)) -> neg(plus_nat(x, y)) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (103) UsableRulesProof (EQUIVALENT) 155.79/50.29 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (104) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, y0, pos(x0)) -> EVAL(minus_nat(x0, s(s(01))), plus_int(pos(s(01)), y0)) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (105) QReductionProof (EQUIVALENT) 155.79/50.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 155.79/50.29 155.79/50.29 minus_int(pos(x0), pos(x1)) 155.79/50.29 minus_int(neg(x0), neg(x1)) 155.79/50.29 minus_int(neg(x0), pos(x1)) 155.79/50.29 minus_int(pos(x0), neg(x1)) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (106) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, y0, pos(x0)) -> EVAL(minus_nat(x0, s(s(01))), plus_int(pos(s(01)), y0)) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (107) TransformationProof (EQUIVALENT) 155.79/50.29 By narrowing [LPAR04] the rule COND_EVAL1(true, y0, pos(x0)) -> EVAL(minus_nat(x0, s(s(01))), plus_int(pos(s(01)), y0)) at position [1] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL1(true, neg(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), minus_nat(s(01), x1)),COND_EVAL1(true, neg(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), minus_nat(s(01), x1))) 155.79/50.29 (COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(plus_nat(s(01), x1))),COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(plus_nat(s(01), x1)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (108) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, neg(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), minus_nat(s(01), x1)) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(plus_nat(s(01), x1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (109) DependencyGraphProof (EQUIVALENT) 155.79/50.29 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (110) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(plus_nat(s(01), x1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), neg(y)) -> minus_nat(x, y) 155.79/50.29 plus_int(pos(x), pos(y)) -> pos(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (111) UsableRulesProof (EQUIVALENT) 155.79/50.29 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (112) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(plus_nat(s(01), x1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (113) QReductionProof (EQUIVALENT) 155.79/50.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 155.79/50.29 155.79/50.29 plus_int(pos(x0), neg(x1)) 155.79/50.29 plus_int(neg(x0), pos(x1)) 155.79/50.29 plus_int(neg(x0), neg(x1)) 155.79/50.29 plus_int(pos(x0), pos(x1)) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (114) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(plus_nat(s(01), x1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (115) TransformationProof (EQUIVALENT) 155.79/50.29 By rewriting [LPAR04] the rule COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(plus_nat(s(01), x1))) at position [1,0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(plus_nat(01, x1)))),COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(plus_nat(01, x1))))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (116) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(plus_nat(01, x1)))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_nat(s(x), y) -> s(plus_nat(x, y)) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (117) UsableRulesProof (EQUIVALENT) 155.79/50.29 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (118) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(plus_nat(01, x1)))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (119) TransformationProof (EQUIVALENT) 155.79/50.29 By rewriting [LPAR04] the rule COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(plus_nat(01, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1))),COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (120) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 plus_nat(01, x) -> x 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (121) UsableRulesProof (EQUIVALENT) 155.79/50.29 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (122) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (123) QReductionProof (EQUIVALENT) 155.79/50.29 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 155.79/50.29 155.79/50.29 plus_nat(01, x0) 155.79/50.29 plus_nat(s(x0), x1) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (124) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (125) TransformationProof (EQUIVALENT) 155.79/50.29 By instantiating [LPAR04] the rule COND_EVAL(true, pos(x0), y1) -> EVAL(minus_nat(x0, s(01)), pos(x0)) we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z0), s(01)), pos(s(z0))),COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z0), s(01)), pos(s(z0)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (126) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1))) 155.79/50.29 COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z0), s(01)), pos(s(z0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (127) TransformationProof (EQUIVALENT) 155.79/50.29 By rewriting [LPAR04] the rule COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z0), s(01)), pos(s(z0))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z0, 01), pos(s(z0))),COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z0, 01), pos(s(z0)))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (128) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1))) 155.79/50.29 COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z0, 01), pos(s(z0))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (129) TransformationProof (EQUIVALENT) 155.79/50.29 By instantiating [LPAR04] the rule COND_EVAL1(true, pos(x1), pos(y1)) -> EVAL(minus_nat(y1, s(s(01))), pos(s(x1))) we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z1), s(s(01))), pos(s(s(z0)))),COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z1), s(s(01))), pos(s(s(z0))))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (130) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z0, 01), pos(s(z0))) 155.79/50.29 COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z1), s(s(01))), pos(s(s(z0)))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (131) TransformationProof (EQUIVALENT) 155.79/50.29 By rewriting [LPAR04] the rule COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(s(z1), s(s(01))), pos(s(s(z0)))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.29 155.79/50.29 (COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0)))),COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0))))) 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (132) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z0, 01), pos(s(z0))) 155.79/50.29 COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0)))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (133) MRRProof (EQUIVALENT) 155.79/50.29 By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. 155.79/50.29 155.79/50.29 155.79/50.29 Strictly oriented rules of the TRS R: 155.79/50.29 155.79/50.29 minus_nat(01, s(y)) -> neg(s(y)) 155.79/50.29 155.79/50.29 Used ordering: Polynomial interpretation [POLO]: 155.79/50.29 155.79/50.29 POL(01) = 0 155.79/50.29 POL(COND_EVAL(x_1, x_2, x_3)) = x_1 + 2*x_2 + x_3 155.79/50.29 POL(COND_EVAL1(x_1, x_2, x_3)) = x_1 + 2*x_2 + x_3 155.79/50.29 POL(EVAL(x_1, x_2)) = 2*x_1 + x_2 155.79/50.29 POL(minus_nat(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 155.79/50.29 POL(neg(x_1)) = x_1 155.79/50.29 POL(pos(x_1)) = 1 + 2*x_1 155.79/50.29 POL(s(x_1)) = 2*x_1 155.79/50.29 POL(true) = 0 155.79/50.29 155.79/50.29 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (134) 155.79/50.29 Obligation: 155.79/50.29 Q DP problem: 155.79/50.29 The TRS P consists of the following rules: 155.79/50.29 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.29 COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z0, 01), pos(s(z0))) 155.79/50.29 COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0)))) 155.79/50.29 155.79/50.29 The TRS R consists of the following rules: 155.79/50.29 155.79/50.29 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.29 minus_nat(01, 01) -> pos(01) 155.79/50.29 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.29 155.79/50.29 The set Q consists of the following terms: 155.79/50.29 155.79/50.29 minus_nat(01, 01) 155.79/50.29 minus_nat(01, s(x0)) 155.79/50.29 minus_nat(s(x0), 01) 155.79/50.29 minus_nat(s(x0), s(x1)) 155.79/50.29 155.79/50.29 We have to consider all minimal (P,Q,R)-chains. 155.79/50.29 ---------------------------------------- 155.79/50.29 155.79/50.29 (135) QDPOrderProof (EQUIVALENT) 155.79/50.29 We use the reduction pair processor [LPAR04,JAR06]. 155.79/50.29 155.79/50.29 155.79/50.29 The following pairs can be oriented strictly and are deleted. 155.79/50.29 155.79/50.29 COND_EVAL(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z0, 01), pos(s(z0))) 155.79/50.30 The remaining pairs can at least be oriented weakly. 155.79/50.30 Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: 155.79/50.30 155.79/50.30 POL( EVAL_2(x_1, x_2) ) = 2x_1 + x_2 155.79/50.30 POL( minus_nat_2(x_1, x_2) ) = x_1 155.79/50.30 POL( 01 ) = 0 155.79/50.30 POL( pos_1(x_1) ) = x_1 155.79/50.30 POL( s_1(x_1) ) = 2x_1 + 2 155.79/50.30 POL( COND_EVAL_3(x_1, ..., x_3) ) = 2x_1 + 2x_2 155.79/50.30 POL( true ) = 1 155.79/50.30 POL( COND_EVAL1_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + x_3 - 2} 155.79/50.30 155.79/50.30 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: 155.79/50.30 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (136) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL(true, pos(s(y0)), pos(s(x0))) 155.79/50.30 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.30 COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (137) DependencyGraphProof (EQUIVALENT) 155.79/50.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (138) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) 155.79/50.30 COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (139) TransformationProof (EQUIVALENT) 155.79/50.30 By instantiating [LPAR04] the rule EVAL(pos(s(y0)), pos(s(x0))) -> COND_EVAL1(true, pos(s(y0)), pos(s(x0))) we obtained the following new rules [LPAR04]: 155.79/50.30 155.79/50.30 (EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))),EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0))))) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (140) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0)))) 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (141) TransformationProof (EQUIVALENT) 155.79/50.30 By instantiating [LPAR04] the rule COND_EVAL1(true, pos(s(z0)), pos(s(z1))) -> EVAL(minus_nat(z1, s(01)), pos(s(s(z0)))) we obtained the following new rules [LPAR04]: 155.79/50.30 155.79/50.30 (COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(s(z1), s(01)), pos(s(s(z0)))),COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(s(z1), s(01)), pos(s(s(z0))))) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (142) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(s(z1), s(01)), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (143) TransformationProof (EQUIVALENT) 155.79/50.30 By rewriting [LPAR04] the rule COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(s(z1), s(01)), pos(s(s(z0)))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.30 155.79/50.30 (COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(z1, 01), pos(s(s(z0)))),COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(z1, 01), pos(s(s(z0))))) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (144) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(z1, 01), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(s(x), s(y)) -> minus_nat(x, y) 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (145) UsableRulesProof (EQUIVALENT) 155.79/50.30 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (146) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(z1, 01), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (147) TransformationProof (EQUIVALENT) 155.79/50.30 By narrowing [LPAR04] the rule COND_EVAL1(true, pos(s(z0)), pos(s(s(z1)))) -> EVAL(minus_nat(z1, 01), pos(s(s(z0)))) at position [0] we obtained the following new rules [LPAR04]: 155.79/50.30 155.79/50.30 (COND_EVAL1(true, pos(s(y0)), pos(s(s(01)))) -> EVAL(pos(01), pos(s(s(y0)))),COND_EVAL1(true, pos(s(y0)), pos(s(s(01)))) -> EVAL(pos(01), pos(s(s(y0))))) 155.79/50.30 (COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0)))),COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0))))) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (148) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 COND_EVAL1(true, pos(s(y0)), pos(s(s(01)))) -> EVAL(pos(01), pos(s(s(y0)))) 155.79/50.30 COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (149) DependencyGraphProof (EQUIVALENT) 155.79/50.30 The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (150) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0)))) 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 The TRS R consists of the following rules: 155.79/50.30 155.79/50.30 minus_nat(01, 01) -> pos(01) 155.79/50.30 minus_nat(s(x), 01) -> pos(s(x)) 155.79/50.30 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (151) UsableRulesProof (EQUIVALENT) 155.79/50.30 As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (152) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0)))) 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 R is empty. 155.79/50.30 The set Q consists of the following terms: 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (153) QReductionProof (EQUIVALENT) 155.79/50.30 We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. 155.79/50.30 155.79/50.30 minus_nat(01, 01) 155.79/50.30 minus_nat(01, s(x0)) 155.79/50.30 minus_nat(s(x0), 01) 155.79/50.30 minus_nat(s(x0), s(x1)) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (154) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0)))) 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) 155.79/50.30 155.79/50.30 R is empty. 155.79/50.30 Q is empty. 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (155) TransformationProof (EQUIVALENT) 155.79/50.30 By forward instantiating [JAR06] the rule EVAL(pos(s(x0)), pos(s(s(z0)))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(z0)))) we obtained the following new rules [LPAR04]: 155.79/50.30 155.79/50.30 (EVAL(pos(s(x0)), pos(s(s(s(y_1))))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(s(y_1))))),EVAL(pos(s(x0)), pos(s(s(s(y_1))))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(s(y_1)))))) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (156) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0)))) 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(s(y_1))))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(s(y_1))))) 155.79/50.30 155.79/50.30 R is empty. 155.79/50.30 Q is empty. 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (157) TransformationProof (EQUIVALENT) 155.79/50.30 By forward instantiating [JAR06] the rule COND_EVAL1(true, pos(s(y0)), pos(s(s(s(x0))))) -> EVAL(pos(s(x0)), pos(s(s(y0)))) we obtained the following new rules [LPAR04]: 155.79/50.30 155.79/50.30 (COND_EVAL1(true, pos(s(s(y_1))), pos(s(s(s(x1))))) -> EVAL(pos(s(x1)), pos(s(s(s(y_1))))),COND_EVAL1(true, pos(s(s(y_1))), pos(s(s(s(x1))))) -> EVAL(pos(s(x1)), pos(s(s(s(y_1)))))) 155.79/50.30 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (158) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 The TRS P consists of the following rules: 155.79/50.30 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(s(y_1))))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(s(y_1))))) 155.79/50.30 COND_EVAL1(true, pos(s(s(y_1))), pos(s(s(s(x1))))) -> EVAL(pos(s(x1)), pos(s(s(s(y_1))))) 155.79/50.30 155.79/50.30 R is empty. 155.79/50.30 Q is empty. 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (159) MRRProof (EQUIVALENT) 155.79/50.30 By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented. 155.79/50.30 155.79/50.30 Strictly oriented dependency pairs: 155.79/50.30 155.79/50.30 EVAL(pos(s(x0)), pos(s(s(s(y_1))))) -> COND_EVAL1(true, pos(s(x0)), pos(s(s(s(y_1))))) 155.79/50.30 COND_EVAL1(true, pos(s(s(y_1))), pos(s(s(s(x1))))) -> EVAL(pos(s(x1)), pos(s(s(s(y_1))))) 155.79/50.30 155.79/50.30 155.79/50.30 Used ordering: Knuth-Bendix order [KBO] with precedence:true > COND_EVAL1_3 > s_1 > pos_1 > EVAL_2 155.79/50.30 155.79/50.30 and weight map: 155.79/50.30 155.79/50.30 true=4 155.79/50.30 pos_1=1 155.79/50.30 s_1=1 155.79/50.30 EVAL_2=5 155.79/50.30 COND_EVAL1_3=0 155.79/50.30 155.79/50.30 The variable weight is 1 155.79/50.30 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (160) 155.79/50.30 Obligation: 155.79/50.30 Q DP problem: 155.79/50.30 P is empty. 155.79/50.30 R is empty. 155.79/50.30 Q is empty. 155.79/50.30 We have to consider all minimal (P,Q,R)-chains. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (161) PisEmptyProof (EQUIVALENT) 155.79/50.30 The TRS P is empty. Hence, there is no (P,Q,R) chain. 155.79/50.30 ---------------------------------------- 155.79/50.30 155.79/50.30 (162) 155.79/50.30 YES 155.79/50.33 EOF