From 202433a6e3401dca3ef0130e4ae22be7bf146518 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorsten=20Wi=C3=9Fmann?= <edu@thorsten-wissmann.de>
Date: Thu, 15 May 2014 12:08:15 +0200
Subject: [PATCH] Beautify conversion cliques->coalitions

The code converting maximal cliques to coalitions of CL is now much more
readable.
---
 src/lib/CoAlgLogicUtils.ml | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/lib/CoAlgLogicUtils.ml b/src/lib/CoAlgLogicUtils.ml
index 99ab637..9230c11 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
-- 
GitLab