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

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

clear(process_input).
% clear(back_demod).
% clear(dynamic_demod).
assign(max_weight, 19).

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

list(usable).
x = x.
end_of_list.

list(sos).
x * (y * x) = y.
x * (x * y) = y.
m(x,y,y) = x.
m(x,x,y) = y.
end_of_list.

list(passive).
B * (A * C) != m(A,B,C).
x * y = y * x.
m(x,y,z) = m(z,y,x).
end_of_list.

weight_list(pick_and_purge).

weight(m(m($(0),$(0),$(0)),$(0),$(0)), 100).
weight(m($(0),m($(0),$(0),$(0)),$(0)), 100).

weight(($(0) * $(0)) * $(0), 100).
weight(m($(0) * $(0), $(0), $(0)), 100).
weight(m($(0), $(0) * $(0), $(0)), 100).
weight(m($(0),$(0),$(0)) * $(0), 100).

weight(x * (x * x), 5).
weight(x * x, 100).

end_of_list.

