                                      [possible-context certain-context]),
         background-knowledge       (or background-knowledge #{}),
         handler                    (or handler default-handler-for-incomplete-counterexamples)]
+    ;; check arguments
     (assert (set? background-knowledge))
     (assert (= (attributes certain-ctx)
                (attributes possible-ctx))

                                             (set-of [g m] [[g pos _] counterexamples,
                                                            m pos])))))
               ;;
               true                    ; add implication
               (let [new-implications (conj implications new-impl)]
                 (recur new-implications
                        (next-closed-set (attributes possible-ctx)

                                      :abort))]

              (cond
               (= counterexamples :abort) ; abort exploration
               (recur implications nil possible-ctx certain-ctx)
               ;;
               counterexamples          ; add counterexample
               (let [new-objs (map first counterexamples)]
                 ;; check that new names are not there already
                 (when (exists [g new-objs] (contains? (objects possible-ctx) g))
