let rec add_identification_ctr_xor xor_eqns : t_partition -> term list list =
let rec help n xor_eqns = function
| m::ms -> help n ([Var(m);Var(n)]::xor_eqns) ms
| [] -> xor_eqns
in
function
| (n::ns)::tail -> add_identification_ctr_xor (help n xor_eqns ns) tail
| [] -> xor_eqns
| _ -> failwith ("add_identification_ctr_xor: input is not a valid "^
"partition, it contains an empty class")