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

%%%%%%%%%%%%%%%%%%%%%  This is a special-purpose strategy

set(build_proof_object).
op(400,xfy,*).  % infix operators
set(para_from).
set(para_into).
assign(max_weight, 39).
assign(pick_given_ratio, 5).

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

list(usable).
x = x.
end_of_list.

list(sos).
*(*(x,y),z) = *(x,*(y,z)).
*(x,*(y,*(y,y))) = *(y,*(y,*(y,x))).
p(*(A,*(B,*(A,*(B,*(A,*(B,*(A,*(B,*(A,*(B,*(A,*(B,*(A,*(B,*(A,*(B,*(A,B)))))))))))))))))).
end_of_list.

list(passive).
-p(*(A,*(A,*(A,*(A,*(A,*(A,*(A,*(A,*(A,*(B,*(B,*(B,*(B,*(B,*(B,*(B,*(B,B)))))))))))))))))).
end_of_list.

list(demodulators).
*(*(x,y),z) = *(x,*(y,z)).
end_of_list.

weight_list(pick_given).
weight(p($(0)), 0).
weight($(0) = $(0), 1).
end_of_list.
