proposition: Lemma is_guarded_inj_spec {A B: Type} (P: A -> Prop) (f: A -> B): is_guarded_inj P f -> forall a1 a2: A, P a1 -> P a2 -> f a1 = f a2 -> a1 = a2.
proof: Proof. intros. destruct H as [g ?]. pose proof H (f a2). rewrite (is_guarded_inj_rev_aux P f g a2) in H3 by auto. destruct H3 as [_ ?]. specialize (H3 a1 H0). tauto. Qed.
imports: Coq.Relations.Relation_Definitions Coq.Classes.Morphisms CertiGraph.lib.Coqlib CertiGraph.lib.Ensembles_ext CertiGraph.lib.Relation_ext CertiGraph.lib.Equivalence_ext CertiGraph.lib.EquivDec_ext