%%%%%%%%%%%%%%%%%%%%%  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).

%%%%%%%%%%%%%%%%%%%%%  Standard options for hyperresolution

set(output_sequent).
set(hyper_res).
set(order_history).
set(unit_deletion).
set(para_from_units_only).
set(para_into_units_only).

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

assign(max_weight, 23).

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

list(usable).
x = x.
% A + (B * C) != (A + B) * (A + C) | (A + B) * B != B.
(A * B) + (A * C) != A * (B + C) | (A * B) + B != B.
end_of_list.

list(sos).
(x * y) + ((y * z) + (z * x)) = (x + y) * ((y + z) * (z + x)).   % SD-dist

y + (x * (y * z)) = y.         % L1
((x * y) + (y * z)) + y = y.   % L3
(x + x@) * y = y.

y * (x + (y + z)) = y.         % L2
((x + y) * (y + z)) * y = y.   % L4
(x * x@) + y = y.

% lemmas
x + x@ = 1.
x * x@ = 0.
(x + y) + z = x + (y + z).
(x * y) * z = x * (y * z).
end_of_list.

