 ;;; Association Rules
 
 (defn support
-  "Computes the support of the set of attributes B in context ctx. If an implications is given,
-  returns the support of this implication in the given context."
+  "Computes the support of the set of attributes B in context ctx. If an
+  implications is given, returns the support of this implication in the given
+  context."
   [thing ctx]
   (cond
-   (set? thing)
-   (if (empty? (objects ctx))
-     1
-     (/ (count (attribute-derivation ctx thing))
-        (count (objects ctx)))),
-   (implication? thing)
-   (recur (premise thing) ctx),
-   :else
-   (illegal-argument "Cannot determine support of " (print-str thing))))
+    (set? thing)
+    (if (empty? (objects ctx))
+      1
+      (/ (count (attribute-derivation ctx thing))
+         (count (objects ctx)))),
+    (implication? thing)
+    (recur (premise thing) ctx),
+    :else
+    (illegal-argument "Cannot determine support of " (print-str thing))))
 
 (defn confidence
   "Computes the confidence of the given implication in the given context."

;;; Proper Premises

(defn proper-conclusion
  "Returns all elements which are implied in context ctx by A but are neither contained in A or
  follow from a strict subsets of A."
  [ctx A]
  (difference (context-attribute-closure ctx A)
              (reduce into

    (holds? impl ctx)))

(defn complete-implication-set?
  "Checks wheter given set of implications is complete in context ctx. This is a
  very costly computation."
  [ctx impl-set]
  (and (forall [impl impl-set]
         (and (subset? (premise impl) (attributes ctx))
