MAYBE MAYBE TRS: { 0(#()) -> #(), +(x, #()) -> x, +(#(), x) -> x, +(0(x), 0(y)) -> 0(+(x, y)), +(0(x), 1(y)) -> 1(+(x, y)), +(+(x, y), z) -> +(x, +(y, z)), +(1(x), 0(y)) -> 1(+(x, y)), +(1(x), 1(y)) -> 0(+(+(x, y), 1(#()))), -(x, #()) -> x, -(#(), x) -> #(), -(0(x), 0(y)) -> 0(-(x, y)), -(0(x), 1(y)) -> 1(-(-(x, y), 1(#()))), -(1(x), 0(y)) -> 1(-(x, y)), -(1(x), 1(y)) -> 0(-(x, y)), not(false()) -> true(), not(true()) -> false(), if(false(), x, y) -> y, if(true(), x, y) -> x, eq(#(), #()) -> true(), eq(#(), 0(y)) -> eq(#(), y), eq(#(), 1(y)) -> false(), eq(0(x), #()) -> eq(x, #()), eq(0(x), 0(y)) -> eq(x, y), eq(0(x), 1(y)) -> false(), eq(1(x), #()) -> false(), eq(1(x), 0(y)) -> false(), eq(1(x), 1(y)) -> eq(x, y), ge(x, #()) -> true(), ge(#(), 0(x)) -> ge(#(), x), ge(#(), 1(x)) -> false(), ge(0(x), 0(y)) -> ge(x, y), ge(0(x), 1(y)) -> not(ge(y, x)), ge(1(x), 0(y)) -> ge(x, y), ge(1(x), 1(y)) -> ge(x, y), log'(#()) -> #(), log'(0(x)) -> if(ge(x, 1(#())), +(log'(x), 1(#())), #()), log'(1(x)) -> +(log'(x), 1(#())), log(x) -> -(log'(x), 1(#())), *(x, +(y, z)) -> +(*(x, y), *(x, z)), *(#(), x) -> #(), *(0(x), y) -> 0(*(x, y)), *(1(x), y) -> +(0(*(x, y)), y), *(*(x, y), z) -> *(x, *(y, z)), app(nil(), l) -> l, app(cons(x, l1), l2) -> cons(x, app(l1, l2)), sum(app(l1, l2)) -> +(sum(l1), sum(l2)), sum(nil()) -> 0(#()), sum(cons(x, l)) -> +(x, sum(l)), prod(app(l1, l2)) -> *(prod(l1), prod(l2)), prod(nil()) -> 1(#()), prod(cons(x, l)) -> *(x, prod(l)), mem(x, nil()) -> false(), mem(x, cons(y, l)) -> if(eq(x, y), true(), mem(x, l)), inter(x, nil()) -> nil(), inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)), inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1), inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)), inter(nil(), x) -> nil(), inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2), ifinter(false(), x, l1, l2) -> inter(l1, l2), ifinter(true(), x, l1, l2) -> cons(x, inter(l1, l2)) } DUP: We consider a duplicating system. Trs: { 0(#()) -> #(), +(x, #()) -> x, +(#(), x) -> x, +(0(x), 0(y)) -> 0(+(x, y)), +(0(x), 1(y)) -> 1(+(x, y)), +(+(x, y), z) -> +(x, +(y, z)), +(1(x), 0(y)) -> 1(+(x, y)), +(1(x), 1(y)) -> 0(+(+(x, y), 1(#()))), -(x, #()) -> x, -(#(), x) -> #(), -(0(x), 0(y)) -> 0(-(x, y)), -(0(x), 1(y)) -> 1(-(-(x, y), 1(#()))), -(1(x), 0(y)) -> 1(-(x, y)), -(1(x), 1(y)) -> 0(-(x, y)), not(false()) -> true(), not(true()) -> false(), if(false(), x, y) -> y, if(true(), x, y) -> x, eq(#(), #()) -> true(), eq(#(), 0(y)) -> eq(#(), y), eq(#(), 1(y)) -> false(), eq(0(x), #()) -> eq(x, #()), eq(0(x), 0(y)) -> eq(x, y), eq(0(x), 1(y)) -> false(), eq(1(x), #()) -> false(), eq(1(x), 0(y)) -> false(), eq(1(x), 1(y)) -> eq(x, y), ge(x, #()) -> true(), ge(#(), 0(x)) -> ge(#(), x), ge(#(), 1(x)) -> false(), ge(0(x), 0(y)) -> ge(x, y), ge(0(x), 1(y)) -> not(ge(y, x)), ge(1(x), 0(y)) -> ge(x, y), ge(1(x), 1(y)) -> ge(x, y), log'(#()) -> #(), log'(0(x)) -> if(ge(x, 1(#())), +(log'(x), 1(#())), #()), log'(1(x)) -> +(log'(x), 1(#())), log(x) -> -(log'(x), 1(#())), *(x, +(y, z)) -> +(*(x, y), *(x, z)), *(#(), x) -> #(), *(0(x), y) -> 0(*(x, y)), *(1(x), y) -> +(0(*(x, y)), y), *(*(x, y), z) -> *(x, *(y, z)), app(nil(), l) -> l, app(cons(x, l1), l2) -> cons(x, app(l1, l2)), sum(app(l1, l2)) -> +(sum(l1), sum(l2)), sum(nil()) -> 0(#()), sum(cons(x, l)) -> +(x, sum(l)), prod(app(l1, l2)) -> *(prod(l1), prod(l2)), prod(nil()) -> 1(#()), prod(cons(x, l)) -> *(x, prod(l)), mem(x, nil()) -> false(), mem(x, cons(y, l)) -> if(eq(x, y), true(), mem(x, l)), inter(x, nil()) -> nil(), inter(l1, app(l2, l3)) -> app(inter(l1, l2), inter(l1, l3)), inter(l1, cons(x, l2)) -> ifinter(mem(x, l1), x, l2, l1), inter(app(l1, l2), l3) -> app(inter(l1, l3), inter(l2, l3)), inter(nil(), x) -> nil(), inter(cons(x, l1), l2) -> ifinter(mem(x, l2), x, l1, l2), ifinter(false(), x, l1, l2) -> inter(l1, l2), ifinter(true(), x, l1, l2) -> cons(x, inter(l1, l2)) } Fail