55.92/41.96 MAYBE 56.25/42.04 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 56.25/42.04 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 56.25/42.04 56.25/42.04 56.25/42.04 Termination of the given ETRS could not be shown: 56.25/42.04 56.25/42.04 (0) ETRS 56.25/42.04 (1) EquationalDependencyPairsProof [EQUIVALENT, 497 ms] 56.25/42.04 (2) EDP 56.25/42.04 (3) EDependencyGraphProof [EQUIVALENT, 0 ms] 56.25/42.04 (4) AND 56.25/42.04 (5) EDP 56.25/42.04 (6) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 56.25/42.04 (7) EDP 56.25/42.04 (8) EUsableRulesReductionPairsProof [EQUIVALENT, 69 ms] 56.25/42.04 (9) EDP 56.25/42.04 (10) PisEmptyProof [EQUIVALENT, 0 ms] 56.25/42.04 (11) YES 56.25/42.04 (12) EDP 56.25/42.04 (13) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 56.25/42.04 (14) EDP 56.25/42.04 (15) EUsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 56.25/42.04 (16) EDP 56.25/42.04 (17) PisEmptyProof [EQUIVALENT, 0 ms] 56.25/42.04 (18) YES 56.25/42.04 (19) EDP 56.25/42.04 (20) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 56.25/42.04 (21) EDP 56.25/42.04 (22) EUsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 56.25/42.04 (23) EDP 56.25/42.04 (24) PisEmptyProof [EQUIVALENT, 0 ms] 56.25/42.04 (25) YES 56.25/42.04 (26) EDP 56.25/42.04 (27) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 56.25/42.04 (28) EDP 56.25/42.04 (29) EUsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 56.25/42.04 (30) EDP 56.25/42.04 (31) PisEmptyProof [EQUIVALENT, 0 ms] 56.25/42.04 (32) YES 56.25/42.04 (33) EDP 56.25/42.04 (34) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 56.25/42.04 (35) EDP 56.25/42.04 (36) EUsableRulesReductionPairsProof [EQUIVALENT, 0 ms] 56.25/42.04 (37) EDP 56.25/42.04 (38) PisEmptyProof [EQUIVALENT, 0 ms] 56.25/42.04 (39) YES 56.25/42.04 (40) EDP 56.25/42.04 (41) ESharpUsableEquationsProof [EQUIVALENT, 197 ms] 56.25/42.04 (42) EDP 56.25/42.04 (43) EUsableRulesReductionPairsProof [EQUIVALENT, 261 ms] 56.25/42.04 (44) EDP 56.25/42.04 (45) ERuleRemovalProof [EQUIVALENT, 36 ms] 56.25/42.04 (46) EDP 56.25/42.04 (47) EDPPoloProof [EQUIVALENT, 28 ms] 56.25/42.04 (48) EDP 56.25/42.04 (49) PisEmptyProof [EQUIVALENT, 0 ms] 56.25/42.04 (50) YES 56.25/42.04 (51) EDP 56.25/42.04 (52) ESharpUsableEquationsProof [EQUIVALENT, 0 ms] 56.25/42.04 (53) EDP 56.25/42.04 (54) EUsableRulesProof [EQUIVALENT, 0 ms] 56.25/42.04 (55) EDP 56.25/42.04 (56) EDP 56.25/42.04 56.25/42.04 56.25/42.04 ---------------------------------------- 56.25/42.04 56.25/42.04 (0) 56.25/42.04 Obligation: 56.25/42.04 Equational rewrite system: 56.25/42.04 The TRS R consists of the following rules: 56.25/42.04 56.25/42.04 0(#) -> # 56.25/42.04 +(#, x) -> x 56.25/42.04 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.04 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.04 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.04 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.04 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.04 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.04 opp(#) -> # 56.25/42.04 opp(0(x)) -> 0(opp(x)) 56.25/42.04 opp(1(x)) -> j(opp(x)) 56.25/42.04 opp(j(x)) -> 1(opp(x)) 56.25/42.04 -(x, y) -> +(opp(y), x) 56.25/42.04 *(#, x) -> # 56.25/42.04 *(0(x), y) -> 0(*(x, y)) 56.25/42.04 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.04 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.04 abs(x) -> test_abs_pos(x, x) 56.25/42.04 test_abs_pos(#, x) -> x 56.25/42.04 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.04 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.04 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.04 test_abs_neg(#, x) -> opp(x) 56.25/42.04 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.04 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.04 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.04 signe(#) -> # 56.25/42.04 signe(0(x)) -> signe(x) 56.25/42.04 signe(1(x)) -> test_signe_pos(x) 56.25/42.04 signe(j(x)) -> test_signe_neg(x) 56.25/42.04 test_signe_pos(#) -> 1(#) 56.25/42.04 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.04 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.04 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.04 test_signe_neg(#) -> j(#) 56.25/42.04 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.04 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.04 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.04 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.04 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.04 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.04 test_min_pos(#, x, y) -> x 56.25/42.04 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.04 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.04 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.04 test_min_neg(#, x, y) -> y 56.25/42.04 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.04 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.04 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.04 f(#, x) -> # 56.25/42.04 f(x, #) -> signe(x) 56.25/42.04 f(0(x), 0(y)) -> f(x, y) 56.25/42.04 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.04 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.04 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.04 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.04 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.04 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.04 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.04 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.04 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.04 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.04 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.04 56.25/42.04 The set E consists of the following equations: 56.25/42.04 56.25/42.04 *_Q(x, y) == *_Q(y, x) 56.25/42.04 +_Q(x, y) == +_Q(y, x) 56.25/42.04 *(x, y) == *(y, x) 56.25/42.04 +(x, y) == +(y, x) 56.25/42.04 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.04 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.04 56.25/42.04 56.25/42.04 ---------------------------------------- 56.25/42.04 56.25/42.04 (1) EquationalDependencyPairsProof (EQUIVALENT) 56.25/42.04 Using Dependency Pairs [AG00,DA_STEIN] we result in the following initial EDP problem: 56.25/42.04 The TRS P consists of the following rules: 56.25/42.04 56.25/42.04 +^1(0(x), 0(y)) -> 0^1(+(x, y)) 56.25/42.04 +^1(0(x), 0(y)) -> +^1(x, y) 56.25/42.04 +^1(0(x), 1(y)) -> +^1(x, y) 56.25/42.04 +^1(0(x), j(y)) -> +^1(x, y) 56.25/42.04 +^1(1(x), 1(y)) -> +^1(1(#), +(x, y)) 56.25/42.04 +^1(1(x), 1(y)) -> +^1(x, y) 56.25/42.04 +^1(j(x), j(y)) -> +^1(j(#), +(x, y)) 56.25/42.04 +^1(j(x), j(y)) -> +^1(x, y) 56.25/42.04 +^1(1(x), j(y)) -> 0^1(+(x, y)) 56.25/42.04 +^1(1(x), j(y)) -> +^1(x, y) 56.25/42.04 OPP(0(x)) -> 0^1(opp(x)) 56.25/42.04 OPP(0(x)) -> OPP(x) 56.25/42.04 OPP(1(x)) -> OPP(x) 56.25/42.04 OPP(j(x)) -> OPP(x) 56.25/42.04 -^1(x, y) -> +^1(opp(y), x) 56.25/42.04 -^1(x, y) -> OPP(y) 56.25/42.04 *^1(0(x), y) -> 0^1(*(x, y)) 56.25/42.04 *^1(0(x), y) -> *^1(x, y) 56.25/42.04 *^1(1(x), y) -> +^1(0(*(x, y)), y) 56.25/42.04 *^1(1(x), y) -> 0^1(*(x, y)) 56.25/42.04 *^1(1(x), y) -> *^1(x, y) 56.25/42.04 *^1(j(x), y) -> -^1(0(*(x, y)), y) 56.25/42.04 *^1(j(x), y) -> 0^1(*(x, y)) 56.25/42.04 *^1(j(x), y) -> *^1(x, y) 56.25/42.04 ABS(x) -> TEST_ABS_POS(x, x) 56.25/42.04 TEST_ABS_POS(0(x), y) -> TEST_ABS_POS(x, y) 56.25/42.04 TEST_ABS_POS(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.04 TEST_ABS_POS(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.04 TEST_ABS_NEG(#, x) -> OPP(x) 56.25/42.04 TEST_ABS_NEG(0(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.04 TEST_ABS_NEG(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.04 TEST_ABS_NEG(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.04 SIGNE(0(x)) -> SIGNE(x) 56.25/42.04 SIGNE(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 SIGNE(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 TEST_SIGNE_POS(0(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 TEST_SIGNE_POS(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 TEST_SIGNE_POS(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 TEST_SIGNE_NEG(0(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 TEST_SIGNE_NEG(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 TEST_SIGNE_NEG(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 MIN(x, y) -> TEST_MIN_POS(-(abs(y), abs(x)), x, y) 56.25/42.04 MIN(x, y) -> -^1(abs(y), abs(x)) 56.25/42.04 MIN(x, y) -> ABS(y) 56.25/42.04 MIN(x, y) -> ABS(x) 56.25/42.04 MIN'(x, y) -> TEST_MIN_POS(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.04 MIN'(x, y) -> -^1(abs(1(y)), abs(1(x))) 56.25/42.04 MIN'(x, y) -> ABS(1(y)) 56.25/42.04 MIN'(x, y) -> ABS(1(x)) 56.25/42.04 MIN''(x, y) -> TEST_MIN_POS(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.04 MIN''(x, y) -> -^1(abs(j(y)), abs(j(x))) 56.25/42.04 MIN''(x, y) -> ABS(j(y)) 56.25/42.04 MIN''(x, y) -> ABS(j(x)) 56.25/42.04 TEST_MIN_POS(0(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.04 TEST_MIN_POS(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.04 TEST_MIN_POS(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.04 TEST_MIN_NEG(0(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.04 TEST_MIN_NEG(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.04 TEST_MIN_NEG(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.04 F(x, #) -> SIGNE(x) 56.25/42.04 F(0(x), 0(y)) -> F(x, y) 56.25/42.04 F(0(x), 1(y)) -> 0^1(f(x, 1(y))) 56.25/42.04 F(0(x), 1(y)) -> F(x, 1(y)) 56.25/42.04 F(0(x), j(y)) -> 0^1(f(x, j(y))) 56.25/42.04 F(0(x), j(y)) -> F(x, j(y)) 56.25/42.04 F(1(x), 0(y)) -> F(1(x), y) 56.25/42.04 F(1(x), 1(y)) -> +^1(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.04 F(1(x), 1(y)) -> 0^1(f(-(x, min'(x, y)), 1(y))) 56.25/42.04 F(1(x), 1(y)) -> F(-(x, min'(x, y)), 1(y)) 56.25/42.04 F(1(x), 1(y)) -> -^1(x, min'(x, y)) 56.25/42.04 F(1(x), 1(y)) -> MIN'(x, y) 56.25/42.04 F(1(x), 1(y)) -> F(min(1(x), 1(y)), -(x, y)) 56.25/42.04 F(1(x), 1(y)) -> MIN(1(x), 1(y)) 56.25/42.04 F(1(x), 1(y)) -> -^1(x, y) 56.25/42.04 F(1(x), j(y)) -> +^1(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.04 F(1(x), j(y)) -> 0^1(f(+(min''(opp(x), y), x), j(y))) 56.25/42.04 F(1(x), j(y)) -> F(+(min''(opp(x), y), x), j(y)) 56.25/42.04 F(1(x), j(y)) -> +^1(min''(opp(x), y), x) 56.25/42.04 F(1(x), j(y)) -> MIN''(opp(x), y) 56.25/42.04 F(1(x), j(y)) -> OPP(x) 56.25/42.04 F(1(x), j(y)) -> F(min(1(x), 1(opp(y))), +(x, y)) 56.25/42.04 F(1(x), j(y)) -> MIN(1(x), 1(opp(y))) 56.25/42.04 F(1(x), j(y)) -> OPP(y) 56.25/42.04 F(1(x), j(y)) -> +^1(x, y) 56.25/42.04 F(j(x), 0(y)) -> F(j(x), y) 56.25/42.04 F(j(x), 1(y)) -> +^1(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.04 F(j(x), 1(y)) -> 0^1(f(+(min'(opp(x), y), x), 1(y))) 56.25/42.04 F(j(x), 1(y)) -> F(+(min'(opp(x), y), x), 1(y)) 56.25/42.04 F(j(x), 1(y)) -> +^1(min'(opp(x), y), x) 56.25/42.04 F(j(x), 1(y)) -> MIN'(opp(x), y) 56.25/42.04 F(j(x), 1(y)) -> OPP(x) 56.25/42.04 F(j(x), 1(y)) -> F(min(j(x), j(opp(y))), +(x, y)) 56.25/42.04 F(j(x), 1(y)) -> MIN(j(x), j(opp(y))) 56.25/42.04 F(j(x), 1(y)) -> OPP(y) 56.25/42.04 F(j(x), 1(y)) -> +^1(x, y) 56.25/42.04 F(j(x), j(y)) -> +^1(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.04 F(j(x), j(y)) -> 0^1(f(-(x, min''(x, y)), j(y))) 56.25/42.04 F(j(x), j(y)) -> F(-(x, min''(x, y)), j(y)) 56.25/42.04 F(j(x), j(y)) -> -^1(x, min''(x, y)) 56.25/42.04 F(j(x), j(y)) -> MIN''(x, y) 56.25/42.04 F(j(x), j(y)) -> F(min(j(x), j(y)), -(x, y)) 56.25/42.04 F(j(x), j(y)) -> MIN(j(x), j(y)) 56.25/42.04 F(j(x), j(y)) -> -^1(x, y) 56.25/42.04 RAT(x, y) -> *^1(signe(y), f(x, y)) 56.25/42.04 RAT(x, y) -> SIGNE(y) 56.25/42.04 RAT(x, y) -> F(x, y) 56.25/42.04 RAT(x, y) -> *^1(signe(y), f(y, x)) 56.25/42.04 RAT(x, y) -> F(y, x) 56.25/42.04 +_Q^1(irred(x, y), irred(u, v)) -> +^1(*(x, v), *(y, u)) 56.25/42.04 +_Q^1(irred(x, y), irred(u, v)) -> *^1(x, v) 56.25/42.04 +_Q^1(irred(x, y), irred(u, v)) -> *^1(y, u) 56.25/42.04 +_Q^1(irred(x, y), irred(u, v)) -> *^1(y, v) 56.25/42.04 *_Q^1(irred(x, y), irred(u, v)) -> RAT(*(x, u), *(y, v)) 56.25/42.04 *_Q^1(irred(x, y), irred(u, v)) -> *^1(x, u) 56.25/42.04 *_Q^1(irred(x, y), irred(u, v)) -> *^1(y, v) 56.25/42.04 *^1(*(#, x), ext) -> *^1(#, ext) 56.25/42.04 *^1(*(0(x), y), ext) -> *^1(0(*(x, y)), ext) 56.25/42.04 *^1(*(0(x), y), ext) -> 0^1(*(x, y)) 56.25/42.04 *^1(*(0(x), y), ext) -> *^1(x, y) 56.25/42.04 *^1(*(1(x), y), ext) -> *^1(+(0(*(x, y)), y), ext) 56.25/42.04 *^1(*(1(x), y), ext) -> +^1(0(*(x, y)), y) 56.25/42.04 *^1(*(1(x), y), ext) -> 0^1(*(x, y)) 56.25/42.04 *^1(*(1(x), y), ext) -> *^1(x, y) 56.25/42.04 *^1(*(j(x), y), ext) -> *^1(-(0(*(x, y)), y), ext) 56.25/42.04 *^1(*(j(x), y), ext) -> -^1(0(*(x, y)), y) 56.25/42.04 *^1(*(j(x), y), ext) -> 0^1(*(x, y)) 56.25/42.04 *^1(*(j(x), y), ext) -> *^1(x, y) 56.25/42.04 +^1(+(0(x), 0(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.04 +^1(+(0(x), 0(y)), ext) -> 0^1(+(x, y)) 56.25/42.04 +^1(+(0(x), 0(y)), ext) -> +^1(x, y) 56.25/42.04 +^1(+(0(x), 1(y)), ext) -> +^1(1(+(x, y)), ext) 56.25/42.04 +^1(+(0(x), 1(y)), ext) -> +^1(x, y) 56.25/42.04 +^1(+(0(x), j(y)), ext) -> +^1(j(+(x, y)), ext) 56.25/42.04 +^1(+(0(x), j(y)), ext) -> +^1(x, y) 56.25/42.04 +^1(+(1(x), 1(y)), ext) -> +^1(j(+(1(#), +(x, y))), ext) 56.25/42.04 +^1(+(1(x), 1(y)), ext) -> +^1(1(#), +(x, y)) 56.25/42.04 +^1(+(1(x), 1(y)), ext) -> +^1(x, y) 56.25/42.04 +^1(+(j(x), j(y)), ext) -> +^1(1(+(j(#), +(x, y))), ext) 56.25/42.04 +^1(+(j(x), j(y)), ext) -> +^1(j(#), +(x, y)) 56.25/42.04 +^1(+(j(x), j(y)), ext) -> +^1(x, y) 56.25/42.04 +^1(+(1(x), j(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.04 +^1(+(1(x), j(y)), ext) -> 0^1(+(x, y)) 56.25/42.04 +^1(+(1(x), j(y)), ext) -> +^1(x, y) 56.25/42.04 56.25/42.04 The TRS R consists of the following rules: 56.25/42.04 56.25/42.04 0(#) -> # 56.25/42.04 +(#, x) -> x 56.25/42.04 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.04 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.04 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.04 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.04 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.04 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.04 opp(#) -> # 56.25/42.04 opp(0(x)) -> 0(opp(x)) 56.25/42.04 opp(1(x)) -> j(opp(x)) 56.25/42.04 opp(j(x)) -> 1(opp(x)) 56.25/42.04 -(x, y) -> +(opp(y), x) 56.25/42.04 *(#, x) -> # 56.25/42.04 *(0(x), y) -> 0(*(x, y)) 56.25/42.04 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.04 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.04 abs(x) -> test_abs_pos(x, x) 56.25/42.04 test_abs_pos(#, x) -> x 56.25/42.04 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.04 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.04 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.04 test_abs_neg(#, x) -> opp(x) 56.25/42.04 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.04 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.04 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.04 signe(#) -> # 56.25/42.04 signe(0(x)) -> signe(x) 56.25/42.04 signe(1(x)) -> test_signe_pos(x) 56.25/42.04 signe(j(x)) -> test_signe_neg(x) 56.25/42.04 test_signe_pos(#) -> 1(#) 56.25/42.04 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.04 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.04 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.04 test_signe_neg(#) -> j(#) 56.25/42.04 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.04 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.04 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.04 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.04 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.04 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.04 test_min_pos(#, x, y) -> x 56.25/42.04 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.04 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.04 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.04 test_min_neg(#, x, y) -> y 56.25/42.04 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.04 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.04 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.04 f(#, x) -> # 56.25/42.04 f(x, #) -> signe(x) 56.25/42.04 f(0(x), 0(y)) -> f(x, y) 56.25/42.04 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.04 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.04 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.04 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.04 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.04 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.04 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.04 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.04 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.04 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.04 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.04 *(*(#, x), ext) -> *(#, ext) 56.25/42.04 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.04 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.04 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.04 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.04 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.04 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.04 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.04 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.04 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.04 56.25/42.04 The set E consists of the following equations: 56.25/42.04 56.25/42.04 *_Q(x, y) == *_Q(y, x) 56.25/42.04 +_Q(x, y) == +_Q(y, x) 56.25/42.04 *(x, y) == *(y, x) 56.25/42.04 +(x, y) == +(y, x) 56.25/42.04 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.04 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.04 56.25/42.04 The set E# consists of the following equations: 56.25/42.04 56.25/42.04 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.04 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.04 *^1(x, y) == *^1(y, x) 56.25/42.04 +^1(x, y) == +^1(y, x) 56.25/42.04 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.04 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.04 56.25/42.04 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.04 56.25/42.04 ---------------------------------------- 56.25/42.04 56.25/42.04 (2) 56.25/42.04 Obligation: 56.25/42.04 The TRS P consists of the following rules: 56.25/42.04 56.25/42.04 +^1(0(x), 0(y)) -> 0^1(+(x, y)) 56.25/42.04 +^1(0(x), 0(y)) -> +^1(x, y) 56.25/42.04 +^1(0(x), 1(y)) -> +^1(x, y) 56.25/42.04 +^1(0(x), j(y)) -> +^1(x, y) 56.25/42.04 +^1(1(x), 1(y)) -> +^1(1(#), +(x, y)) 56.25/42.04 +^1(1(x), 1(y)) -> +^1(x, y) 56.25/42.04 +^1(j(x), j(y)) -> +^1(j(#), +(x, y)) 56.25/42.04 +^1(j(x), j(y)) -> +^1(x, y) 56.25/42.04 +^1(1(x), j(y)) -> 0^1(+(x, y)) 56.25/42.04 +^1(1(x), j(y)) -> +^1(x, y) 56.25/42.04 OPP(0(x)) -> 0^1(opp(x)) 56.25/42.04 OPP(0(x)) -> OPP(x) 56.25/42.04 OPP(1(x)) -> OPP(x) 56.25/42.04 OPP(j(x)) -> OPP(x) 56.25/42.04 -^1(x, y) -> +^1(opp(y), x) 56.25/42.04 -^1(x, y) -> OPP(y) 56.25/42.04 *^1(0(x), y) -> 0^1(*(x, y)) 56.25/42.04 *^1(0(x), y) -> *^1(x, y) 56.25/42.04 *^1(1(x), y) -> +^1(0(*(x, y)), y) 56.25/42.04 *^1(1(x), y) -> 0^1(*(x, y)) 56.25/42.04 *^1(1(x), y) -> *^1(x, y) 56.25/42.04 *^1(j(x), y) -> -^1(0(*(x, y)), y) 56.25/42.04 *^1(j(x), y) -> 0^1(*(x, y)) 56.25/42.04 *^1(j(x), y) -> *^1(x, y) 56.25/42.04 ABS(x) -> TEST_ABS_POS(x, x) 56.25/42.04 TEST_ABS_POS(0(x), y) -> TEST_ABS_POS(x, y) 56.25/42.04 TEST_ABS_POS(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.04 TEST_ABS_POS(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.04 TEST_ABS_NEG(#, x) -> OPP(x) 56.25/42.04 TEST_ABS_NEG(0(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.04 TEST_ABS_NEG(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.04 TEST_ABS_NEG(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.04 SIGNE(0(x)) -> SIGNE(x) 56.25/42.04 SIGNE(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 SIGNE(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 TEST_SIGNE_POS(0(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 TEST_SIGNE_POS(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 TEST_SIGNE_POS(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 TEST_SIGNE_NEG(0(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 TEST_SIGNE_NEG(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.04 TEST_SIGNE_NEG(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.04 MIN(x, y) -> TEST_MIN_POS(-(abs(y), abs(x)), x, y) 56.25/42.04 MIN(x, y) -> -^1(abs(y), abs(x)) 56.25/42.04 MIN(x, y) -> ABS(y) 56.25/42.04 MIN(x, y) -> ABS(x) 56.25/42.05 MIN'(x, y) -> TEST_MIN_POS(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 MIN'(x, y) -> -^1(abs(1(y)), abs(1(x))) 56.25/42.05 MIN'(x, y) -> ABS(1(y)) 56.25/42.05 MIN'(x, y) -> ABS(1(x)) 56.25/42.05 MIN''(x, y) -> TEST_MIN_POS(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 MIN''(x, y) -> -^1(abs(j(y)), abs(j(x))) 56.25/42.05 MIN''(x, y) -> ABS(j(y)) 56.25/42.05 MIN''(x, y) -> ABS(j(x)) 56.25/42.05 TEST_MIN_POS(0(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_POS(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_POS(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(0(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_NEG(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 F(x, #) -> SIGNE(x) 56.25/42.05 F(0(x), 0(y)) -> F(x, y) 56.25/42.05 F(0(x), 1(y)) -> 0^1(f(x, 1(y))) 56.25/42.05 F(0(x), 1(y)) -> F(x, 1(y)) 56.25/42.05 F(0(x), j(y)) -> 0^1(f(x, j(y))) 56.25/42.05 F(0(x), j(y)) -> F(x, j(y)) 56.25/42.05 F(1(x), 0(y)) -> F(1(x), y) 56.25/42.05 F(1(x), 1(y)) -> +^1(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 F(1(x), 1(y)) -> 0^1(f(-(x, min'(x, y)), 1(y))) 56.25/42.05 F(1(x), 1(y)) -> F(-(x, min'(x, y)), 1(y)) 56.25/42.05 F(1(x), 1(y)) -> -^1(x, min'(x, y)) 56.25/42.05 F(1(x), 1(y)) -> MIN'(x, y) 56.25/42.05 F(1(x), 1(y)) -> F(min(1(x), 1(y)), -(x, y)) 56.25/42.05 F(1(x), 1(y)) -> MIN(1(x), 1(y)) 56.25/42.05 F(1(x), 1(y)) -> -^1(x, y) 56.25/42.05 F(1(x), j(y)) -> +^1(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 F(1(x), j(y)) -> 0^1(f(+(min''(opp(x), y), x), j(y))) 56.25/42.05 F(1(x), j(y)) -> F(+(min''(opp(x), y), x), j(y)) 56.25/42.05 F(1(x), j(y)) -> +^1(min''(opp(x), y), x) 56.25/42.05 F(1(x), j(y)) -> MIN''(opp(x), y) 56.25/42.05 F(1(x), j(y)) -> OPP(x) 56.25/42.05 F(1(x), j(y)) -> F(min(1(x), 1(opp(y))), +(x, y)) 56.25/42.05 F(1(x), j(y)) -> MIN(1(x), 1(opp(y))) 56.25/42.05 F(1(x), j(y)) -> OPP(y) 56.25/42.05 F(1(x), j(y)) -> +^1(x, y) 56.25/42.05 F(j(x), 0(y)) -> F(j(x), y) 56.25/42.05 F(j(x), 1(y)) -> +^1(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 F(j(x), 1(y)) -> 0^1(f(+(min'(opp(x), y), x), 1(y))) 56.25/42.05 F(j(x), 1(y)) -> F(+(min'(opp(x), y), x), 1(y)) 56.25/42.05 F(j(x), 1(y)) -> +^1(min'(opp(x), y), x) 56.25/42.05 F(j(x), 1(y)) -> MIN'(opp(x), y) 56.25/42.05 F(j(x), 1(y)) -> OPP(x) 56.25/42.05 F(j(x), 1(y)) -> F(min(j(x), j(opp(y))), +(x, y)) 56.25/42.05 F(j(x), 1(y)) -> MIN(j(x), j(opp(y))) 56.25/42.05 F(j(x), 1(y)) -> OPP(y) 56.25/42.05 F(j(x), 1(y)) -> +^1(x, y) 56.25/42.05 F(j(x), j(y)) -> +^1(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 F(j(x), j(y)) -> 0^1(f(-(x, min''(x, y)), j(y))) 56.25/42.05 F(j(x), j(y)) -> F(-(x, min''(x, y)), j(y)) 56.25/42.05 F(j(x), j(y)) -> -^1(x, min''(x, y)) 56.25/42.05 F(j(x), j(y)) -> MIN''(x, y) 56.25/42.05 F(j(x), j(y)) -> F(min(j(x), j(y)), -(x, y)) 56.25/42.05 F(j(x), j(y)) -> MIN(j(x), j(y)) 56.25/42.05 F(j(x), j(y)) -> -^1(x, y) 56.25/42.05 RAT(x, y) -> *^1(signe(y), f(x, y)) 56.25/42.05 RAT(x, y) -> SIGNE(y) 56.25/42.05 RAT(x, y) -> F(x, y) 56.25/42.05 RAT(x, y) -> *^1(signe(y), f(y, x)) 56.25/42.05 RAT(x, y) -> F(y, x) 56.25/42.05 +_Q^1(irred(x, y), irred(u, v)) -> +^1(*(x, v), *(y, u)) 56.25/42.05 +_Q^1(irred(x, y), irred(u, v)) -> *^1(x, v) 56.25/42.05 +_Q^1(irred(x, y), irred(u, v)) -> *^1(y, u) 56.25/42.05 +_Q^1(irred(x, y), irred(u, v)) -> *^1(y, v) 56.25/42.05 *_Q^1(irred(x, y), irred(u, v)) -> RAT(*(x, u), *(y, v)) 56.25/42.05 *_Q^1(irred(x, y), irred(u, v)) -> *^1(x, u) 56.25/42.05 *_Q^1(irred(x, y), irred(u, v)) -> *^1(y, v) 56.25/42.05 *^1(*(#, x), ext) -> *^1(#, ext) 56.25/42.05 *^1(*(0(x), y), ext) -> *^1(0(*(x, y)), ext) 56.25/42.05 *^1(*(0(x), y), ext) -> 0^1(*(x, y)) 56.25/42.05 *^1(*(0(x), y), ext) -> *^1(x, y) 56.25/42.05 *^1(*(1(x), y), ext) -> *^1(+(0(*(x, y)), y), ext) 56.25/42.05 *^1(*(1(x), y), ext) -> +^1(0(*(x, y)), y) 56.25/42.05 *^1(*(1(x), y), ext) -> 0^1(*(x, y)) 56.25/42.05 *^1(*(1(x), y), ext) -> *^1(x, y) 56.25/42.05 *^1(*(j(x), y), ext) -> *^1(-(0(*(x, y)), y), ext) 56.25/42.05 *^1(*(j(x), y), ext) -> -^1(0(*(x, y)), y) 56.25/42.05 *^1(*(j(x), y), ext) -> 0^1(*(x, y)) 56.25/42.05 *^1(*(j(x), y), ext) -> *^1(x, y) 56.25/42.05 +^1(+(0(x), 0(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.05 +^1(+(0(x), 0(y)), ext) -> 0^1(+(x, y)) 56.25/42.05 +^1(+(0(x), 0(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(0(x), 1(y)), ext) -> +^1(1(+(x, y)), ext) 56.25/42.05 +^1(+(0(x), 1(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(0(x), j(y)), ext) -> +^1(j(+(x, y)), ext) 56.25/42.05 +^1(+(0(x), j(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(1(x), 1(y)), ext) -> +^1(j(+(1(#), +(x, y))), ext) 56.25/42.05 +^1(+(1(x), 1(y)), ext) -> +^1(1(#), +(x, y)) 56.25/42.05 +^1(+(1(x), 1(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(j(x), j(y)), ext) -> +^1(1(+(j(#), +(x, y))), ext) 56.25/42.05 +^1(+(j(x), j(y)), ext) -> +^1(j(#), +(x, y)) 56.25/42.05 +^1(+(j(x), j(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(1(x), j(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.05 +^1(+(1(x), j(y)), ext) -> 0^1(+(x, y)) 56.25/42.05 +^1(+(1(x), j(y)), ext) -> +^1(x, y) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 The set E# consists of the following equations: 56.25/42.05 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (3) EDependencyGraphProof (EQUIVALENT) 56.25/42.05 The approximation of the Equational Dependency Graph [DA_STEIN] contains 8 SCCs with 76 less nodes. 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (4) 56.25/42.05 Complex Obligation (AND) 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (5) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 TEST_MIN_POS(0(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_NEG(0(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_POS(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_POS(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 The set E# consists of the following equations: 56.25/42.05 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (6) ESharpUsableEquationsProof (EQUIVALENT) 56.25/42.05 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (7) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 TEST_MIN_POS(0(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_NEG(0(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_POS(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_POS(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (8) EUsableRulesReductionPairsProof (EQUIVALENT) 56.25/42.05 By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 56.25/42.05 56.25/42.05 The following dependency pairs can be deleted: 56.25/42.05 56.25/42.05 TEST_MIN_POS(0(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_NEG(0(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_POS(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 TEST_MIN_POS(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(j(x), y, z) -> TEST_MIN_NEG(x, y, z) 56.25/42.05 TEST_MIN_NEG(1(x), y, z) -> TEST_MIN_POS(x, y, z) 56.25/42.05 The following rules are removed from R: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 The following equations are removed from E: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.05 56.25/42.05 POL(0(x_1)) = 3*x_1 56.25/42.05 POL(1(x_1)) = 3*x_1 56.25/42.05 POL(TEST_MIN_NEG(x_1, x_2, x_3)) = 2*x_1 + x_2 + x_3 56.25/42.05 POL(TEST_MIN_POS(x_1, x_2, x_3)) = x_1 + x_2 + x_3 56.25/42.05 POL(j(x_1)) = 3*x_1 56.25/42.05 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (9) 56.25/42.05 Obligation: 56.25/42.05 P is empty. 56.25/42.05 R is empty. 56.25/42.05 E is empty. 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (10) PisEmptyProof (EQUIVALENT) 56.25/42.05 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (11) 56.25/42.05 YES 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (12) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 TEST_SIGNE_NEG(0(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 TEST_SIGNE_POS(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_NEG(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_POS(0(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_POS(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 TEST_SIGNE_NEG(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 The set E# consists of the following equations: 56.25/42.05 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (13) ESharpUsableEquationsProof (EQUIVALENT) 56.25/42.05 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (14) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 TEST_SIGNE_NEG(0(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 TEST_SIGNE_POS(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_NEG(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_POS(0(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_POS(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 TEST_SIGNE_NEG(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (15) EUsableRulesReductionPairsProof (EQUIVALENT) 56.25/42.05 By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 56.25/42.05 56.25/42.05 The following dependency pairs can be deleted: 56.25/42.05 56.25/42.05 TEST_SIGNE_NEG(0(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 TEST_SIGNE_POS(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_NEG(1(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_POS(0(x)) -> TEST_SIGNE_POS(x) 56.25/42.05 TEST_SIGNE_POS(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 TEST_SIGNE_NEG(j(x)) -> TEST_SIGNE_NEG(x) 56.25/42.05 The following rules are removed from R: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 The following equations are removed from E: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.05 56.25/42.05 POL(0(x_1)) = 3*x_1 56.25/42.05 POL(1(x_1)) = 3*x_1 56.25/42.05 POL(TEST_SIGNE_NEG(x_1)) = x_1 56.25/42.05 POL(TEST_SIGNE_POS(x_1)) = 2*x_1 56.25/42.05 POL(j(x_1)) = 3*x_1 56.25/42.05 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (16) 56.25/42.05 Obligation: 56.25/42.05 P is empty. 56.25/42.05 R is empty. 56.25/42.05 E is empty. 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (17) PisEmptyProof (EQUIVALENT) 56.25/42.05 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (18) 56.25/42.05 YES 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (19) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 SIGNE(0(x)) -> SIGNE(x) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 The set E# consists of the following equations: 56.25/42.05 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (20) ESharpUsableEquationsProof (EQUIVALENT) 56.25/42.05 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (21) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 SIGNE(0(x)) -> SIGNE(x) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (22) EUsableRulesReductionPairsProof (EQUIVALENT) 56.25/42.05 By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 56.25/42.05 56.25/42.05 The following dependency pairs can be deleted: 56.25/42.05 56.25/42.05 SIGNE(0(x)) -> SIGNE(x) 56.25/42.05 The following rules are removed from R: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 The following equations are removed from E: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.05 56.25/42.05 POL(0(x_1)) = 3*x_1 56.25/42.05 POL(SIGNE(x_1)) = 3*x_1 56.25/42.05 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (23) 56.25/42.05 Obligation: 56.25/42.05 P is empty. 56.25/42.05 R is empty. 56.25/42.05 E is empty. 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (24) PisEmptyProof (EQUIVALENT) 56.25/42.05 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (25) 56.25/42.05 YES 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (26) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 OPP(j(x)) -> OPP(x) 56.25/42.05 OPP(0(x)) -> OPP(x) 56.25/42.05 OPP(1(x)) -> OPP(x) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 The set E# consists of the following equations: 56.25/42.05 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (27) ESharpUsableEquationsProof (EQUIVALENT) 56.25/42.05 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (28) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 OPP(j(x)) -> OPP(x) 56.25/42.05 OPP(0(x)) -> OPP(x) 56.25/42.05 OPP(1(x)) -> OPP(x) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (29) EUsableRulesReductionPairsProof (EQUIVALENT) 56.25/42.05 By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 56.25/42.05 56.25/42.05 The following dependency pairs can be deleted: 56.25/42.05 56.25/42.05 OPP(j(x)) -> OPP(x) 56.25/42.05 OPP(0(x)) -> OPP(x) 56.25/42.05 OPP(1(x)) -> OPP(x) 56.25/42.05 The following rules are removed from R: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 The following equations are removed from E: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.05 56.25/42.05 POL(0(x_1)) = 3*x_1 56.25/42.05 POL(1(x_1)) = x_1 56.25/42.05 POL(OPP(x_1)) = 2*x_1 56.25/42.05 POL(j(x_1)) = 3*x_1 56.25/42.05 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (30) 56.25/42.05 Obligation: 56.25/42.05 P is empty. 56.25/42.05 R is empty. 56.25/42.05 E is empty. 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (31) PisEmptyProof (EQUIVALENT) 56.25/42.05 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (32) 56.25/42.05 YES 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (33) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 TEST_ABS_NEG(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 TEST_ABS_POS(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_NEG(0(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_POS(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 TEST_ABS_NEG(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_POS(0(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 The set E# consists of the following equations: 56.25/42.05 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (34) ESharpUsableEquationsProof (EQUIVALENT) 56.25/42.05 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 56.25/42.05 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.05 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.05 *^1(x, y) == *^1(y, x) 56.25/42.05 +^1(x, y) == +^1(y, x) 56.25/42.05 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.05 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (35) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 TEST_ABS_NEG(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 TEST_ABS_POS(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_NEG(0(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_POS(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 TEST_ABS_NEG(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_POS(0(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 56.25/42.05 The set E consists of the following equations: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (36) EUsableRulesReductionPairsProof (EQUIVALENT) 56.25/42.05 By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 56.25/42.05 56.25/42.05 The following dependency pairs can be deleted: 56.25/42.05 56.25/42.05 TEST_ABS_NEG(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 TEST_ABS_POS(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_NEG(0(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_POS(1(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 TEST_ABS_NEG(j(x), y) -> TEST_ABS_NEG(x, y) 56.25/42.05 TEST_ABS_POS(0(x), y) -> TEST_ABS_POS(x, y) 56.25/42.05 The following rules are removed from R: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.05 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.05 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.05 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.05 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.05 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.05 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.05 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.05 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.05 The following equations are removed from E: 56.25/42.05 56.25/42.05 *_Q(x, y) == *_Q(y, x) 56.25/42.05 +_Q(x, y) == +_Q(y, x) 56.25/42.05 *(x, y) == *(y, x) 56.25/42.05 +(x, y) == +(y, x) 56.25/42.05 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.05 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.05 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.05 56.25/42.05 POL(0(x_1)) = 3*x_1 56.25/42.05 POL(1(x_1)) = 3*x_1 56.25/42.05 POL(TEST_ABS_NEG(x_1, x_2)) = x_1 + x_2 56.25/42.05 POL(TEST_ABS_POS(x_1, x_2)) = 2*x_1 + x_2 56.25/42.05 POL(j(x_1)) = 3*x_1 56.25/42.05 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (37) 56.25/42.05 Obligation: 56.25/42.05 P is empty. 56.25/42.05 R is empty. 56.25/42.05 E is empty. 56.25/42.05 E# is empty. 56.25/42.05 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (38) PisEmptyProof (EQUIVALENT) 56.25/42.05 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (39) 56.25/42.05 YES 56.25/42.05 56.25/42.05 ---------------------------------------- 56.25/42.05 56.25/42.05 (40) 56.25/42.05 Obligation: 56.25/42.05 The TRS P consists of the following rules: 56.25/42.05 56.25/42.05 +^1(+(0(x), j(y)), ext) -> +^1(j(+(x, y)), ext) 56.25/42.05 +^1(+(j(x), j(y)), ext) -> +^1(j(#), +(x, y)) 56.25/42.05 +^1(+(j(x), j(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(1(x), 1(y)) -> +^1(1(#), +(x, y)) 56.25/42.05 +^1(+(1(x), 1(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(0(x), 0(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(0(x), 1(y)), ext) -> +^1(1(+(x, y)), ext) 56.25/42.05 +^1(0(x), 1(y)) -> +^1(x, y) 56.25/42.05 +^1(+(1(x), j(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.05 +^1(j(x), j(y)) -> +^1(x, y) 56.25/42.05 +^1(+(1(x), 1(y)), ext) -> +^1(1(#), +(x, y)) 56.25/42.05 +^1(j(x), j(y)) -> +^1(j(#), +(x, y)) 56.25/42.05 +^1(+(1(x), j(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(+(1(x), 1(y)), ext) -> +^1(j(+(1(#), +(x, y))), ext) 56.25/42.05 +^1(1(x), 1(y)) -> +^1(x, y) 56.25/42.05 +^1(+(0(x), 1(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(0(x), 0(y)) -> +^1(x, y) 56.25/42.05 +^1(+(0(x), 0(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.05 +^1(0(x), j(y)) -> +^1(x, y) 56.25/42.05 +^1(+(0(x), j(y)), ext) -> +^1(x, y) 56.25/42.05 +^1(1(x), j(y)) -> +^1(x, y) 56.25/42.05 +^1(+(j(x), j(y)), ext) -> +^1(1(+(j(#), +(x, y))), ext) 56.25/42.05 56.25/42.05 The TRS R consists of the following rules: 56.25/42.05 56.25/42.05 0(#) -> # 56.25/42.05 +(#, x) -> x 56.25/42.05 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.05 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.05 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.05 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.05 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.05 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.05 opp(#) -> # 56.25/42.05 opp(0(x)) -> 0(opp(x)) 56.25/42.05 opp(1(x)) -> j(opp(x)) 56.25/42.05 opp(j(x)) -> 1(opp(x)) 56.25/42.05 -(x, y) -> +(opp(y), x) 56.25/42.05 *(#, x) -> # 56.25/42.05 *(0(x), y) -> 0(*(x, y)) 56.25/42.05 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.05 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.05 abs(x) -> test_abs_pos(x, x) 56.25/42.05 test_abs_pos(#, x) -> x 56.25/42.05 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(#, x) -> opp(x) 56.25/42.05 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.05 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.05 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.05 signe(#) -> # 56.25/42.05 signe(0(x)) -> signe(x) 56.25/42.05 signe(1(x)) -> test_signe_pos(x) 56.25/42.05 signe(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_pos(#) -> 1(#) 56.25/42.05 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(#) -> j(#) 56.25/42.05 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.05 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.05 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.05 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.05 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.05 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.05 test_min_pos(#, x, y) -> x 56.25/42.05 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(#, x, y) -> y 56.25/42.05 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.05 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.05 f(#, x) -> # 56.25/42.05 f(x, #) -> signe(x) 56.25/42.05 f(0(x), 0(y)) -> f(x, y) 56.25/42.05 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.05 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.05 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.05 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.05 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.05 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.05 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.05 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.05 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.05 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.05 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.05 *(*(#, x), ext) -> *(#, ext) 56.25/42.06 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.06 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.06 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 *_Q(x, y) == *_Q(y, x) 56.25/42.06 +_Q(x, y) == +_Q(y, x) 56.25/42.06 *(x, y) == *(y, x) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 56.25/42.06 The set E# consists of the following equations: 56.25/42.06 56.25/42.06 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.06 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.06 *^1(x, y) == *^1(y, x) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (41) ESharpUsableEquationsProof (EQUIVALENT) 56.25/42.06 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 56.25/42.06 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.06 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.06 *^1(x, y) == *^1(y, x) 56.25/42.06 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.06 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (42) 56.25/42.06 Obligation: 56.25/42.06 The TRS P consists of the following rules: 56.25/42.06 56.25/42.06 +^1(+(0(x), j(y)), ext) -> +^1(j(+(x, y)), ext) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(j(#), +(x, y)) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(1(x), 1(y)) -> +^1(1(#), +(x, y)) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 0(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 1(y)), ext) -> +^1(1(+(x, y)), ext) 56.25/42.06 +^1(0(x), 1(y)) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), j(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.06 +^1(j(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(1(#), +(x, y)) 56.25/42.06 +^1(j(x), j(y)) -> +^1(j(#), +(x, y)) 56.25/42.06 +^1(+(1(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(j(+(1(#), +(x, y))), ext) 56.25/42.06 +^1(1(x), 1(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 1(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(0(x), 0(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 0(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.06 +^1(0(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(1(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(1(+(j(#), +(x, y))), ext) 56.25/42.06 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 0(#) -> # 56.25/42.06 +(#, x) -> x 56.25/42.06 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.06 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.06 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.06 opp(#) -> # 56.25/42.06 opp(0(x)) -> 0(opp(x)) 56.25/42.06 opp(1(x)) -> j(opp(x)) 56.25/42.06 opp(j(x)) -> 1(opp(x)) 56.25/42.06 -(x, y) -> +(opp(y), x) 56.25/42.06 *(#, x) -> # 56.25/42.06 *(0(x), y) -> 0(*(x, y)) 56.25/42.06 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.06 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.06 abs(x) -> test_abs_pos(x, x) 56.25/42.06 test_abs_pos(#, x) -> x 56.25/42.06 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(#, x) -> opp(x) 56.25/42.06 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 signe(#) -> # 56.25/42.06 signe(0(x)) -> signe(x) 56.25/42.06 signe(1(x)) -> test_signe_pos(x) 56.25/42.06 signe(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_pos(#) -> 1(#) 56.25/42.06 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(#) -> j(#) 56.25/42.06 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.06 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.06 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.06 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.06 test_min_pos(#, x, y) -> x 56.25/42.06 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(#, x, y) -> y 56.25/42.06 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 f(#, x) -> # 56.25/42.06 f(x, #) -> signe(x) 56.25/42.06 f(0(x), 0(y)) -> f(x, y) 56.25/42.06 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.06 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.06 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.06 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.06 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.06 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.06 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.06 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.06 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.06 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.06 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.06 *(*(#, x), ext) -> *(#, ext) 56.25/42.06 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.06 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.06 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 *_Q(x, y) == *_Q(y, x) 56.25/42.06 +_Q(x, y) == +_Q(y, x) 56.25/42.06 *(x, y) == *(y, x) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 56.25/42.06 The set E# consists of the following equations: 56.25/42.06 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (43) EUsableRulesReductionPairsProof (EQUIVALENT) 56.25/42.06 By using the usable rules and equations with reduction pair processor [DA_STEIN] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules can be oriented non-strictly, the usable equations and the esharp equations can be oriented equivalently. All non-usable rules and equations are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well. 56.25/42.06 56.25/42.06 No dependency pairs are removed. 56.25/42.06 56.25/42.06 The following rules are removed from R: 56.25/42.06 56.25/42.06 opp(#) -> # 56.25/42.06 opp(0(x)) -> 0(opp(x)) 56.25/42.06 opp(1(x)) -> j(opp(x)) 56.25/42.06 opp(j(x)) -> 1(opp(x)) 56.25/42.06 -(x, y) -> +(opp(y), x) 56.25/42.06 *(#, x) -> # 56.25/42.06 *(0(x), y) -> 0(*(x, y)) 56.25/42.06 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.06 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.06 abs(x) -> test_abs_pos(x, x) 56.25/42.06 test_abs_pos(#, x) -> x 56.25/42.06 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(#, x) -> opp(x) 56.25/42.06 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 signe(#) -> # 56.25/42.06 signe(0(x)) -> signe(x) 56.25/42.06 signe(1(x)) -> test_signe_pos(x) 56.25/42.06 signe(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_pos(#) -> 1(#) 56.25/42.06 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(#) -> j(#) 56.25/42.06 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.06 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.06 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.06 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.06 test_min_pos(#, x, y) -> x 56.25/42.06 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(#, x, y) -> y 56.25/42.06 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 f(#, x) -> # 56.25/42.06 f(x, #) -> signe(x) 56.25/42.06 f(0(x), 0(y)) -> f(x, y) 56.25/42.06 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.06 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.06 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.06 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.06 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.06 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.06 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.06 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.06 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.06 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.06 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.06 *(*(#, x), ext) -> *(#, ext) 56.25/42.06 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.06 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.06 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.06 The following equations are removed from E: 56.25/42.06 56.25/42.06 *_Q(x, y) == *_Q(y, x) 56.25/42.06 +_Q(x, y) == +_Q(y, x) 56.25/42.06 *(x, y) == *(y, x) 56.25/42.06 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.06 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.06 56.25/42.06 POL(#) = 0 56.25/42.06 POL(+(x_1, x_2)) = x_1 + x_2 56.25/42.06 POL(+^1(x_1, x_2)) = 2*x_1 + 2*x_2 56.25/42.06 POL(0(x_1)) = x_1 56.25/42.06 POL(1(x_1)) = x_1 56.25/42.06 POL(j(x_1)) = x_1 56.25/42.06 56.25/42.06 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (44) 56.25/42.06 Obligation: 56.25/42.06 The TRS P consists of the following rules: 56.25/42.06 56.25/42.06 +^1(+(0(x), j(y)), ext) -> +^1(j(+(x, y)), ext) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(j(#), +(x, y)) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(1(x), 1(y)) -> +^1(1(#), +(x, y)) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 0(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 1(y)), ext) -> +^1(1(+(x, y)), ext) 56.25/42.06 +^1(0(x), 1(y)) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), j(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.06 +^1(j(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(1(#), +(x, y)) 56.25/42.06 +^1(j(x), j(y)) -> +^1(j(#), +(x, y)) 56.25/42.06 +^1(+(1(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(j(+(1(#), +(x, y))), ext) 56.25/42.06 +^1(1(x), 1(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 1(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(0(x), 0(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 0(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.06 +^1(0(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(1(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(1(+(j(#), +(x, y))), ext) 56.25/42.06 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 0(#) -> # 56.25/42.06 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(#, x) -> x 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 56.25/42.06 The set E# consists of the following equations: 56.25/42.06 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (45) ERuleRemovalProof (EQUIVALENT) 56.25/42.06 By using the rule removal processor [DA_STEIN] with the following polynomial ordering [POLO], at least one Dependency Pair or term rewrite system rule of this EDP problem can be strictly oriented. 56.25/42.06 56.25/42.06 Strictly oriented dependency pairs: 56.25/42.06 56.25/42.06 +^1(+(0(x), j(y)), ext) -> +^1(j(+(x, y)), ext) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(j(#), +(x, y)) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(1(x), 1(y)) -> +^1(1(#), +(x, y)) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 0(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 1(y)), ext) -> +^1(1(+(x, y)), ext) 56.25/42.06 +^1(0(x), 1(y)) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), j(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.06 +^1(j(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(1(#), +(x, y)) 56.25/42.06 +^1(j(x), j(y)) -> +^1(j(#), +(x, y)) 56.25/42.06 +^1(+(1(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(1(x), 1(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 1(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(0(x), 0(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), 0(y)), ext) -> +^1(0(+(x, y)), ext) 56.25/42.06 +^1(0(x), j(y)) -> +^1(x, y) 56.25/42.06 +^1(+(0(x), j(y)), ext) -> +^1(x, y) 56.25/42.06 +^1(1(x), j(y)) -> +^1(x, y) 56.25/42.06 56.25/42.06 Strictly oriented rules of the TRS R: 56.25/42.06 56.25/42.06 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 0(#) -> # 56.25/42.06 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.06 56.25/42.06 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.06 56.25/42.06 POL(#) = 0 56.25/42.06 POL(+(x_1, x_2)) = x_1 + x_2 56.25/42.06 POL(+^1(x_1, x_2)) = 2*x_1 + 2*x_2 56.25/42.06 POL(0(x_1)) = 2 + x_1 56.25/42.06 POL(1(x_1)) = 2 + x_1 56.25/42.06 POL(j(x_1)) = 2 + x_1 56.25/42.06 56.25/42.06 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (46) 56.25/42.06 Obligation: 56.25/42.06 The TRS P consists of the following rules: 56.25/42.06 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(j(+(1(#), +(x, y))), ext) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(1(+(j(#), +(x, y))), ext) 56.25/42.06 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(#, x) -> x 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 56.25/42.06 The set E# consists of the following equations: 56.25/42.06 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (47) EDPPoloProof (EQUIVALENT) 56.25/42.06 We use the reduction pair processor [DA_STEIN] with a polynomial ordering [POLO]. All Dependency Pairs of this DP problem can be strictly oriented. 56.25/42.06 56.25/42.06 56.25/42.06 +^1(+(1(x), 1(y)), ext) -> +^1(j(+(1(#), +(x, y))), ext) 56.25/42.06 +^1(+(j(x), j(y)), ext) -> +^1(1(+(j(#), +(x, y))), ext) 56.25/42.06 With the implicit AFS we had to orient the following set of usable rules of R non-strictly. 56.25/42.06 56.25/42.06 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(#, x) -> x 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 We had to orient the following equations of E# equivalently. 56.25/42.06 56.25/42.06 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 With the implicit AFS we had to orient the following usable equations of E equivalently. 56.25/42.06 56.25/42.06 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 Used ordering: POLO with Polynomial interpretation [POLO]: 56.25/42.06 56.25/42.06 POL(#) = 0 56.25/42.06 POL(+(x_1, x_2)) = 1 + x_1 + x_2 56.25/42.06 POL(+^1(x_1, x_2)) = x_1 + x_2 56.25/42.06 POL(1(x_1)) = 0 56.25/42.06 POL(j(x_1)) = 0 56.25/42.06 56.25/42.06 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (48) 56.25/42.06 Obligation: 56.25/42.06 P is empty. 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(#, x) -> x 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 56.25/42.06 The set E# consists of the following equations: 56.25/42.06 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (49) PisEmptyProof (EQUIVALENT) 56.25/42.06 The TRS P is empty. Hence, there is no (P,E#,R,E) chain. 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (50) 56.25/42.06 YES 56.25/42.06 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (51) 56.25/42.06 Obligation: 56.25/42.06 The TRS P consists of the following rules: 56.25/42.06 56.25/42.06 F(1(x), j(y)) -> F(+(min''(opp(x), y), x), j(y)) 56.25/42.06 F(1(x), 0(y)) -> F(1(x), y) 56.25/42.06 F(j(x), 1(y)) -> F(min(j(x), j(opp(y))), +(x, y)) 56.25/42.06 F(0(x), 1(y)) -> F(x, 1(y)) 56.25/42.06 F(1(x), 1(y)) -> F(min(1(x), 1(y)), -(x, y)) 56.25/42.06 F(j(x), j(y)) -> F(min(j(x), j(y)), -(x, y)) 56.25/42.06 F(j(x), 1(y)) -> F(+(min'(opp(x), y), x), 1(y)) 56.25/42.06 F(j(x), j(y)) -> F(-(x, min''(x, y)), j(y)) 56.25/42.06 F(1(x), j(y)) -> F(min(1(x), 1(opp(y))), +(x, y)) 56.25/42.06 F(1(x), 1(y)) -> F(-(x, min'(x, y)), 1(y)) 56.25/42.06 F(j(x), 0(y)) -> F(j(x), y) 56.25/42.06 F(0(x), 0(y)) -> F(x, y) 56.25/42.06 F(0(x), j(y)) -> F(x, j(y)) 56.25/42.06 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 0(#) -> # 56.25/42.06 +(#, x) -> x 56.25/42.06 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.06 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.06 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.06 opp(#) -> # 56.25/42.06 opp(0(x)) -> 0(opp(x)) 56.25/42.06 opp(1(x)) -> j(opp(x)) 56.25/42.06 opp(j(x)) -> 1(opp(x)) 56.25/42.06 -(x, y) -> +(opp(y), x) 56.25/42.06 *(#, x) -> # 56.25/42.06 *(0(x), y) -> 0(*(x, y)) 56.25/42.06 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.06 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.06 abs(x) -> test_abs_pos(x, x) 56.25/42.06 test_abs_pos(#, x) -> x 56.25/42.06 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(#, x) -> opp(x) 56.25/42.06 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 signe(#) -> # 56.25/42.06 signe(0(x)) -> signe(x) 56.25/42.06 signe(1(x)) -> test_signe_pos(x) 56.25/42.06 signe(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_pos(#) -> 1(#) 56.25/42.06 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(#) -> j(#) 56.25/42.06 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.06 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.06 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.06 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.06 test_min_pos(#, x, y) -> x 56.25/42.06 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(#, x, y) -> y 56.25/42.06 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 f(#, x) -> # 56.25/42.06 f(x, #) -> signe(x) 56.25/42.06 f(0(x), 0(y)) -> f(x, y) 56.25/42.06 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.06 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.06 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.06 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.06 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.06 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.06 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.06 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.06 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.06 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.06 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.06 *(*(#, x), ext) -> *(#, ext) 56.25/42.06 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.06 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.06 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 *_Q(x, y) == *_Q(y, x) 56.25/42.06 +_Q(x, y) == +_Q(y, x) 56.25/42.06 *(x, y) == *(y, x) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 56.25/42.06 The set E# consists of the following equations: 56.25/42.06 56.25/42.06 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.06 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.06 *^1(x, y) == *^1(y, x) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (52) ESharpUsableEquationsProof (EQUIVALENT) 56.25/42.06 We can delete the following equations of E# with the esharp usable equations processor[DA_STEIN]: 56.25/42.06 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.06 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.06 *^1(x, y) == *^1(y, x) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (53) 56.25/42.06 Obligation: 56.25/42.06 The TRS P consists of the following rules: 56.25/42.06 56.25/42.06 F(1(x), j(y)) -> F(+(min''(opp(x), y), x), j(y)) 56.25/42.06 F(1(x), 0(y)) -> F(1(x), y) 56.25/42.06 F(j(x), 1(y)) -> F(min(j(x), j(opp(y))), +(x, y)) 56.25/42.06 F(0(x), 1(y)) -> F(x, 1(y)) 56.25/42.06 F(1(x), 1(y)) -> F(min(1(x), 1(y)), -(x, y)) 56.25/42.06 F(j(x), j(y)) -> F(min(j(x), j(y)), -(x, y)) 56.25/42.06 F(j(x), 1(y)) -> F(+(min'(opp(x), y), x), 1(y)) 56.25/42.06 F(j(x), j(y)) -> F(-(x, min''(x, y)), j(y)) 56.25/42.06 F(1(x), j(y)) -> F(min(1(x), 1(opp(y))), +(x, y)) 56.25/42.06 F(1(x), 1(y)) -> F(-(x, min'(x, y)), 1(y)) 56.25/42.06 F(j(x), 0(y)) -> F(j(x), y) 56.25/42.06 F(0(x), 0(y)) -> F(x, y) 56.25/42.06 F(0(x), j(y)) -> F(x, j(y)) 56.25/42.06 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 0(#) -> # 56.25/42.06 +(#, x) -> x 56.25/42.06 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.06 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.06 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.06 opp(#) -> # 56.25/42.06 opp(0(x)) -> 0(opp(x)) 56.25/42.06 opp(1(x)) -> j(opp(x)) 56.25/42.06 opp(j(x)) -> 1(opp(x)) 56.25/42.06 -(x, y) -> +(opp(y), x) 56.25/42.06 *(#, x) -> # 56.25/42.06 *(0(x), y) -> 0(*(x, y)) 56.25/42.06 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.06 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.06 abs(x) -> test_abs_pos(x, x) 56.25/42.06 test_abs_pos(#, x) -> x 56.25/42.06 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(#, x) -> opp(x) 56.25/42.06 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 signe(#) -> # 56.25/42.06 signe(0(x)) -> signe(x) 56.25/42.06 signe(1(x)) -> test_signe_pos(x) 56.25/42.06 signe(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_pos(#) -> 1(#) 56.25/42.06 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(#) -> j(#) 56.25/42.06 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.06 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.06 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.06 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.06 test_min_pos(#, x, y) -> x 56.25/42.06 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(#, x, y) -> y 56.25/42.06 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 f(#, x) -> # 56.25/42.06 f(x, #) -> signe(x) 56.25/42.06 f(0(x), 0(y)) -> f(x, y) 56.25/42.06 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.06 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.06 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.06 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.06 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.06 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.06 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.06 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.06 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.06 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.06 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.06 *(*(#, x), ext) -> *(#, ext) 56.25/42.06 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.06 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.06 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 *_Q(x, y) == *_Q(y, x) 56.25/42.06 +_Q(x, y) == +_Q(y, x) 56.25/42.06 *(x, y) == *(y, x) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 56.25/42.06 E# is empty. 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (54) EUsableRulesProof (EQUIVALENT) 56.25/42.06 We use the usable rules and equations processor [DA_STEIN] to delete all non-usable rules from R and all non-usable equations from E, but we lose minimality and add the following 2 Ce-rules: 56.25/42.06 c(x, y) -> x 56.25/42.06 c(x, y) -> y 56.25/42.06 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (55) 56.25/42.06 Obligation: 56.25/42.06 The TRS P consists of the following rules: 56.25/42.06 56.25/42.06 F(1(x), j(y)) -> F(+(min''(opp(x), y), x), j(y)) 56.25/42.06 F(1(x), 0(y)) -> F(1(x), y) 56.25/42.06 F(j(x), 1(y)) -> F(min(j(x), j(opp(y))), +(x, y)) 56.25/42.06 F(0(x), 1(y)) -> F(x, 1(y)) 56.25/42.06 F(1(x), 1(y)) -> F(min(1(x), 1(y)), -(x, y)) 56.25/42.06 F(j(x), j(y)) -> F(min(j(x), j(y)), -(x, y)) 56.25/42.06 F(j(x), 1(y)) -> F(+(min'(opp(x), y), x), 1(y)) 56.25/42.06 F(j(x), j(y)) -> F(-(x, min''(x, y)), j(y)) 56.25/42.06 F(1(x), j(y)) -> F(min(1(x), 1(opp(y))), +(x, y)) 56.25/42.06 F(1(x), 1(y)) -> F(-(x, min'(x, y)), 1(y)) 56.25/42.06 F(j(x), 0(y)) -> F(j(x), y) 56.25/42.06 F(0(x), 0(y)) -> F(x, y) 56.25/42.06 F(0(x), j(y)) -> F(x, j(y)) 56.25/42.06 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 opp(1(x)) -> j(opp(x)) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 test_min_pos(#, x, y) -> x 56.25/42.06 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.06 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 0(#) -> # 56.25/42.06 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.06 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.06 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 abs(x) -> test_abs_pos(x, x) 56.25/42.06 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 opp(0(x)) -> 0(opp(x)) 56.25/42.06 -(x, y) -> +(opp(y), x) 56.25/42.06 +(#, x) -> x 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 test_abs_pos(#, x) -> x 56.25/42.06 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.06 opp(#) -> # 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_neg(#, x, y) -> y 56.25/42.06 opp(j(x)) -> 1(opp(x)) 56.25/42.06 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_abs_neg(#, x) -> opp(x) 56.25/42.06 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.06 c(x, y) -> x 56.25/42.06 c(x, y) -> y 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 56.25/42.06 E# is empty. 56.25/42.06 We have to consider all (P,E#,R,E)-chains 56.25/42.06 ---------------------------------------- 56.25/42.06 56.25/42.06 (56) 56.25/42.06 Obligation: 56.25/42.06 The TRS P consists of the following rules: 56.25/42.06 56.25/42.06 *^1(*(#, x), ext) -> *^1(#, ext) 56.25/42.06 *^1(*(1(x), y), ext) -> *^1(+(0(*(x, y)), y), ext) 56.25/42.06 *^1(*(0(x), y), ext) -> *^1(x, y) 56.25/42.06 *^1(*(j(x), y), ext) -> *^1(x, y) 56.25/42.06 *^1(1(x), y) -> *^1(x, y) 56.25/42.06 *^1(j(x), y) -> *^1(x, y) 56.25/42.06 *^1(*(j(x), y), ext) -> *^1(-(0(*(x, y)), y), ext) 56.25/42.06 *^1(0(x), y) -> *^1(x, y) 56.25/42.06 *^1(*(0(x), y), ext) -> *^1(0(*(x, y)), ext) 56.25/42.06 *^1(*(1(x), y), ext) -> *^1(x, y) 56.25/42.06 56.25/42.06 The TRS R consists of the following rules: 56.25/42.06 56.25/42.06 0(#) -> # 56.25/42.06 +(#, x) -> x 56.25/42.06 +(0(x), 0(y)) -> 0(+(x, y)) 56.25/42.06 +(0(x), 1(y)) -> 1(+(x, y)) 56.25/42.06 +(0(x), j(y)) -> j(+(x, y)) 56.25/42.06 +(1(x), 1(y)) -> j(+(1(#), +(x, y))) 56.25/42.06 +(j(x), j(y)) -> 1(+(j(#), +(x, y))) 56.25/42.06 +(1(x), j(y)) -> 0(+(x, y)) 56.25/42.06 opp(#) -> # 56.25/42.06 opp(0(x)) -> 0(opp(x)) 56.25/42.06 opp(1(x)) -> j(opp(x)) 56.25/42.06 opp(j(x)) -> 1(opp(x)) 56.25/42.06 -(x, y) -> +(opp(y), x) 56.25/42.06 *(#, x) -> # 56.25/42.06 *(0(x), y) -> 0(*(x, y)) 56.25/42.06 *(1(x), y) -> +(0(*(x, y)), y) 56.25/42.06 *(j(x), y) -> -(0(*(x, y)), y) 56.25/42.06 abs(x) -> test_abs_pos(x, x) 56.25/42.06 test_abs_pos(#, x) -> x 56.25/42.06 test_abs_pos(0(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_pos(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(#, x) -> opp(x) 56.25/42.06 test_abs_neg(0(x), y) -> test_abs_neg(x, y) 56.25/42.06 test_abs_neg(1(x), y) -> test_abs_pos(x, y) 56.25/42.06 test_abs_neg(j(x), y) -> test_abs_neg(x, y) 56.25/42.06 signe(#) -> # 56.25/42.06 signe(0(x)) -> signe(x) 56.25/42.06 signe(1(x)) -> test_signe_pos(x) 56.25/42.06 signe(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_pos(#) -> 1(#) 56.25/42.06 test_signe_pos(0(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_pos(j(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(#) -> j(#) 56.25/42.06 test_signe_neg(0(x)) -> test_signe_neg(x) 56.25/42.06 test_signe_neg(1(x)) -> test_signe_pos(x) 56.25/42.06 test_signe_neg(j(x)) -> test_signe_neg(x) 56.25/42.06 min(x, y) -> test_min_pos(-(abs(y), abs(x)), x, y) 56.25/42.06 min'(x, y) -> test_min_pos(-(abs(1(y)), abs(1(x))), x, y) 56.25/42.06 min''(x, y) -> test_min_pos(-(abs(j(y)), abs(j(x))), x, y) 56.25/42.06 test_min_pos(#, x, y) -> x 56.25/42.06 test_min_pos(0(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_pos(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(#, x, y) -> y 56.25/42.06 test_min_neg(0(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 test_min_neg(1(x), y, z) -> test_min_pos(x, y, z) 56.25/42.06 test_min_neg(j(x), y, z) -> test_min_neg(x, y, z) 56.25/42.06 f(#, x) -> # 56.25/42.06 f(x, #) -> signe(x) 56.25/42.06 f(0(x), 0(y)) -> f(x, y) 56.25/42.06 f(0(x), 1(y)) -> 0(f(x, 1(y))) 56.25/42.06 f(0(x), j(y)) -> 0(f(x, j(y))) 56.25/42.06 f(1(x), 0(y)) -> f(1(x), y) 56.25/42.06 f(1(x), 1(y)) -> +(0(f(-(x, min'(x, y)), 1(y))), f(min(1(x), 1(y)), -(x, y))) 56.25/42.06 f(1(x), j(y)) -> +(0(f(+(min''(opp(x), y), x), j(y))), f(min(1(x), 1(opp(y))), +(x, y))) 56.25/42.06 f(j(x), 0(y)) -> f(j(x), y) 56.25/42.06 f(j(x), 1(y)) -> +(0(f(+(min'(opp(x), y), x), 1(y))), f(min(j(x), j(opp(y))), +(x, y))) 56.25/42.06 f(j(x), j(y)) -> +(0(f(-(x, min''(x, y)), j(y))), f(min(j(x), j(y)), -(x, y))) 56.25/42.06 rat(x, y) -> irred(*(signe(y), f(x, y)), *(signe(y), f(y, x))) 56.25/42.06 +_Q(irred(x, y), irred(u, v)) -> irred(+(*(x, v), *(y, u)), *(y, v)) 56.25/42.06 *_Q(irred(x, y), irred(u, v)) -> rat(*(x, u), *(y, v)) 56.25/42.06 *(*(#, x), ext) -> *(#, ext) 56.25/42.06 *(*(0(x), y), ext) -> *(0(*(x, y)), ext) 56.25/42.06 *(*(1(x), y), ext) -> *(+(0(*(x, y)), y), ext) 56.25/42.06 *(*(j(x), y), ext) -> *(-(0(*(x, y)), y), ext) 56.25/42.06 +(+(0(x), 0(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 +(+(0(x), 1(y)), ext) -> +(1(+(x, y)), ext) 56.25/42.06 +(+(0(x), j(y)), ext) -> +(j(+(x, y)), ext) 56.25/42.06 +(+(1(x), 1(y)), ext) -> +(j(+(1(#), +(x, y))), ext) 56.25/42.06 +(+(j(x), j(y)), ext) -> +(1(+(j(#), +(x, y))), ext) 56.25/42.06 +(+(1(x), j(y)), ext) -> +(0(+(x, y)), ext) 56.25/42.06 56.25/42.06 The set E consists of the following equations: 56.25/42.06 56.25/42.06 *_Q(x, y) == *_Q(y, x) 56.25/42.06 +_Q(x, y) == +_Q(y, x) 56.25/42.06 *(x, y) == *(y, x) 56.25/42.06 +(x, y) == +(y, x) 56.25/42.06 *(*(x, y), z) == *(x, *(y, z)) 56.25/42.06 +(+(x, y), z) == +(x, +(y, z)) 56.25/42.06 56.25/42.06 The set E# consists of the following equations: 56.25/42.06 56.25/42.06 *_Q^1(x, y) == *_Q^1(y, x) 56.25/42.06 +_Q^1(x, y) == +_Q^1(y, x) 56.25/42.06 *^1(x, y) == *^1(y, x) 56.25/42.06 +^1(x, y) == +^1(y, x) 56.25/42.06 *^1(*(x, y), z) == *^1(x, *(y, z)) 56.25/42.06 +^1(+(x, y), z) == +^1(x, +(y, z)) 56.25/42.06 56.25/42.06 We have to consider all minimal (P,E#,R,E)-chains 56.25/42.09 EOF