proposition: Lemma surj_le_cardinal: forall {X Y:Type} (f:X->Y), surjective f -> le_cardinal Y X.
proof: Proof. intros. pose proof (choice (fun (y:Y) (x:X) => f x = y) H). simpl in H0. destruct H0 as [g]. exists g. red; intros. congruence. Qed.
imports: Coq(ClassicalChoice) Coq(ProofIrrelevance) Coq(FunctionalExtensionality) Coq(Description) ZornsLemma(FunctionPropertiesEns) ZornsLemma(Relation_Definitions_Implicit) ZornsLemma(CSB) ZornsLemma(EnsemblesSpec) ZornsLemma(ZornsLemma) ZornsLemma(EnsemblesImplicit) ZornsLemma(CountableTypes) ZornsLemma(FiniteTypes) ZornsLemma(InfiniteTypes) Coq(RelationClasses)