op(400, xfx, [*,+,^,v,/,\,#]).  % infix operators
op(300,yf,@).                   % postfix operator

list(usable).
% (x * y) + ((y * z) + (z * x)) = (x + y) * ((y + z) * (z + x)).

y + (x * (y * z)) = y.
((x * y) + (y * z)) + y = y.
(x + x@) * y = y.

y * (x + (y + z)) = y.
((x + y) * (y + z)) * y = y.
(x * x@) + y = y.

((x + z) * x) + (x * z) = x.
((x + x) * y) + (x * x) = x.
((y + x) * x) + (y * x) = x.

((x * z) + x) * (x + z) = x.
((x * x) + y) * (x + x) = x.
((y * x) + x) * (y + x) = x.

A@ @ != A.

end_of_list.

