%%%%%%%%%%%%%%%%%%%%%  Basic options

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

clear(print_kept).
clear(print_new_demod).
clear(print_back_demod).

assign(pick_given_ratio, 4).
assign(max_mem, 20000).

%%%%%%%%%%%%%%%%%%%%%  Standard for equational problems

set(knuth_bendix).
set(build_proof_object).

%%%%%%%%%%%%%%%%%%%%%  Modifications to strategy

lex([A,B,C,1,_*_,R(_),L(_),_/_,_\_]).
assign(max_weight, 17).

%%%%%%%%%%%%%%%%%%%%%  Clauses

list(usable).
x = x.
end_of_list.

list(sos).
1 * x = x.
x * 1 = x.

x * (x \ y) = y.
x \ (x * y) = y.

(x / y) * y = x.
(x * y) / y = x.

% (x \ 1) = R(x).
% (1 / x) = L(x).
x * R(x) = 1.
L(x) * x = 1.

% (x * (y * z)) * x = (x * y) * (z * x).  % Moufang 1
 ((x * y) * z) * y = x * (y * (z * y)).  % Moufang 2
% ((x * y) * x) * z = x * (y * (x * z)).  % Moufang 3

% (A * (B * C)) * A != (A * B) * (C * A).  % Moufang 1
% ((A * B) * C) * B != A * (B * (C * B)).  % Moufang 2
 ((A * B) * A) * C != A * (B * (A * C)).  % Moufang 3
end_of_list.

list(passive).
end_of_list.

