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

list(usable).

1 * x = x.
x@ * x = 1.

% Moufang 1,2,3 are in order:

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

% (A * (B * C)) * A != (A * B) * (C * A).
 ((A * B) * C) * B != A * (B * (C * B)).
% ((A * B) * A) * C != A * (B * (A * C)).
end_of_list.

list(passive).
end_of_list.

