%%%%%%%%%%%%%%%%%%%%%  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 (gL) problems

set(geometric_rule).
set(geometric_rewrite_before).
set(para_from).
set(para_into).
set(para_from_vars).
set(para_into_vars).
set(order_eq).
set(back_demod).
set(process_input).
set(lrpo).

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

clear(back_demod).
clear(dynamic_demod).
assign(max_weight, 13).

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

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

list(sos).
e * x = x.
x * e = x.
end_of_list.

% The following speeds up a forward proof.  If associativity
% (or something of the same shape) is derived, it is selected
% immediately as given clause.  Without this, a bidirectional
% proof is found if clear(para_into_units_only) is added to
% "Modifications to strategy".

weight_list(pick_and_purge).
weight((x * y) * z = x * (y * z), 0).
end_of_list.
