proposition: Lemma image_set_spec: forall {A B: Type} f X (y: B), image_set X f y <-> exists x: A, X x /\ y = f x.
proof: Proof. intros. split; intros. + inversion H; subst. exists x. split; auto. + destruct H as [x [?H ?H]]. subst. constructor; auto. Qed.
imports: Coq.Classes.Morphisms Coq.Classes.Equivalence Coq.Sets.Ensembles Coq.Sets.Constructive_sets CertiGraph.lib.Coqlib CertiGraph.lib.EquivDec_ext