let pre_choice_of_thy (xor_eqns : term list list) (std_ls : t_equal)
(shared_vars : int list) : int list * int list * (int * int) list =
(* do pre choice of theory with std_ls *)
let std_xor_uncertain = pre_choice_std shared_vars std_ls in
(* do pre choice of theory with xor_eqns *)
(* we could think about skipping this, in most of the cases this does not
* help to limit the possible choices *)
let std_xor_uncertain = pre_choice_xor std_xor_uncertain xor_eqns in
std_xor_uncertain