   "Clarifies objects in context ctx."
   [ctx]
   (let [prime (memoize (partial object-derivation ctx))
-	new-objs (set (distinct-by-key (objects ctx) #(prime #{%})))
-	new-inz (set-of [g m] [[g m] (incidence ctx)
-			       :when (contains? new-objs g)])]
-    (make-context new-objs (attributes ctx) new-inz)))
+	new-objs (set (distinct-by-key (objects ctx) #(prime #{%})))]
+    (make-context new-objs (attributes ctx) (incidence ctx))))
 
 (defn clarify-attributes
   "Clarifies attributes in context ctx."
   [ctx]
   (let [prime (memoize (partial attribute-derivation ctx))
-	new-atts (set (distinct-by-key (attributes ctx) #(prime #{%})))
-	new-inz (set-of [g m] [[g m] (incidence ctx)
-			       :when (contains? new-atts m)])]
-    (make-context (objects ctx) new-atts new-inz)))
+	new-atts (set (distinct-by-key (attributes ctx) #(prime #{%})))]
+    (make-context (objects ctx) new-atts (incidence ctx))))
 
 (defn clarify-context
   "Clarifies context ctx."

(defn reduce-clarified-context
  "Reduces context ctx assuming it is clarified."
  [ctx]
  (let [inz (incidence ctx)
	uda (up-down-arrows ctx)]
    (let [new-obj (set (map first uda))
	  new-att (set (map second uda))
	  new-inz (set-of [g m] [g new-obj m new-att :when (inz [g m])])]
    (make-context new-obj new-att (set new-inz)))))

(defn reduce-context
  "Reduces context ctx."

  (and (instance? conexp.fca.Context other)
       (= (objects this) (objects other))
       (= (attributes this) (attributes other))
       (= (incidence this) (incidence other))))

(defn Context-hashCode
  "Implements hashCode for contexts."
