diff --git a/src/lib/CoAlgLogicUtils.ml b/src/lib/CoAlgLogicUtils.ml index 99ab6370a835d4c98e7315ba141a6392cffa1f2e..9230c11d95e284da7da9719d2c8a0ac9d9d8958d 100644 --- a/src/lib/CoAlgLogicUtils.ml +++ b/src/lib/CoAlgLogicUtils.ml @@ -91,11 +91,16 @@ let maxDisjoints sort (a: bset) : bset list = print_endline ("Cliqu: "^ String.concat "," s) ); *) - let tmpf : bset -> int -> bset = - (fun bs f -> bsetAdd bs (lfFromInt f) ; bs) - in - List.map (fun x -> List.fold_left tmpf (bsetMakeRealEmpty ()) x) - (List.map S.elements intlist) + flip List.map intlist (fun elements -> + (* for each maximal clique "elements", do: *) + let elements = S.elements elements in (* obtain a list of ints *) + let elements = L.map lfFromInt elements in (* convert them to local formulas *) + (* throw them into a bset *) + let bs = (bsetMakeRealEmpty ()) in + List.iter (bsetAdd bs) elements; + bs + ) + let string_of_coalition sort bs = let modlist = bsetFold (fun x l -> x::l) bs [] in