   (and (instance? conexp.fca.Context other)
        (= (objects this) (objects other))
        (= (attributes this) (attributes other))
-       (let [inz-this (incidence this)
-	     inz-other (incidence other)]
-	 (or (= (incidence this) (incidence other))
-	     (forall [pair (cross-product (objects this) (attributes this))]
-               (<=> (inz-this pair) (inz-other pair)))))))
+       (= (incidence this) (incidence other))))
 
 (defn Context-hashCode
   "Implements hashCode for contexts."

  "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)))

(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)))

(defn clarify-context
  "Clarifies context ctx."

				       (fn [g m]
					 (not (contains? down-down [g m]))))]
    (for [[G-H N] (concepts compatible-ctx)]
      (make-context (difference (objects ctx) G-H) N (incidence ctx)))))

nil
