(* -*- coq-prog-args: ("-emacs-U" "-nois") -*- *) (************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* B) (RA ++> RB) f ] => Injective : Prop := injective : forall x y : A, RB (f x) (f y) -> RA x y. Class [ m : Morphism (A -> B) (RA ++> RB) f ] => Surjective : Prop := surjective : forall y, exists x : A, RB y (f x). Definition Bijective [ m : Morphism (A -> B) (RA ++> RB) (f : A -> B) ] := Injective m /\ Surjective m. Class [ m : Morphism (A -> B) (eqA ++> eqB) ] => MonoMorphism := monic :> Injective m. Class [ m : Morphism (A -> B) (eqA ++> eqB) ] => EpiMorphism := epic :> Surjective m. Class [ m : Morphism (A -> B) (eqA ++> eqB) ] => IsoMorphism := monomorphism :> MonoMorphism m ; epimorphism :> EpiMorphism m. Class [ m : Morphism (A -> A) (eqA ++> eqA), ! IsoMorphism m ] => AutoMorphism.