Built with Alectryon, running Coq+SerAPI v8.10.0+0.7.0. Coq sources are in this panel; goals and messages will appear in the other. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus.
(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * INRIA, CNRS and contributors - Copyright 1999-2018 *) (* <O___,, * (see CREDITS file for the list of authors) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************) (****************************************************************************) (* *) (* Naive Set Theory in Coq *) (* *) (* INRIA INRIA *) (* Rocquencourt Sophia-Antipolis *) (* *) (* Coq V6.1 *) (* *) (* Gilles Kahn *) (* Gerard Huet *) (* *) (* *) (* *) (* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks *) (* to the Newton Institute for providing an exceptional work environment *) (* in Summer 1995. Several developments by E. Ledinot were an inspiration. *) (****************************************************************************) Require Export Finite_sets. Require Export Constructive_sets. Require Export Classical. Require Export Classical_sets. Require Export Powerset. Require Export Powerset_facts. Require Export Powerset_Classical_facts. Require Export Gt. Require Export Lt. Require Export Le. Require Export Finite_sets_facts. Require Export Image. Section Approx. Variable U : Type. Inductive Approximant (A X:Ensemble U) : Prop := Defn_of_Approximant : Finite U X -> Included U X A -> Approximant A X. End Approx. Hint Resolve Defn_of_Approximant : core. Section Infinite_sets. Variable U : Type.U:Typeforall A X : Ensemble U, ~ Finite U A -> Approximant U A X -> Inhabited U (Setminus U A X)U:Typeforall A X : Ensemble U, ~ Finite U A -> Approximant U A X -> Inhabited U (Setminus U A X)U:TypeA, X:Ensemble UH':~ Finite U AH'0:Approximant U A XInhabited U (Setminus U A X)U:TypeA, X:Ensemble UH':~ Finite U AH'0:Approximant U A XH'1:Finite U XH'2:Included U X AInhabited U (Setminus U A X)U:TypeA, X:Ensemble UH':~ Finite U AH'0:Approximant U A XH'1:Finite U XH'2:Included U X AX <> Arewrite <- H'3; auto with sets. Qed.U:TypeA, X:Ensemble UH':~ Finite U AH'0:Approximant U A XH'1:Finite U XH'2:Included U X AH'3:X = AFinite U AU:Typeforall A X : Ensemble U, ~ Finite U A -> forall n : nat, cardinal U X n -> Included U X A -> exists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y AU:Typeforall A X : Ensemble U, ~ Finite U A -> forall n : nat, cardinal U X n -> Included U X A -> exists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nIncluded U (Empty_set U) A -> exists Y : Ensemble U, cardinal U Y 1 /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) Aexists Y : Ensemble U, cardinal U Y 1 /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U)) -> exists Y : Ensemble U, cardinal U Y 1 /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))forall x : U, In U (Setminus U A (Empty_set U)) x -> exists Y : Ensemble U, cardinal U Y 1 /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xexists Y : Ensemble U, cardinal U Y 1 /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xcardinal U (Add U (Empty_set U) x) 1 /\ Included U (Add U (Empty_set U) x) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xcardinal U (Add U (Empty_set U) x) 1U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xIncluded U (Add U (Empty_set U) x) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xIncluded U (Add U (Empty_set U) x) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xIn U A x -> Included U (Add U (Empty_set U) x) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xIn U A xU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xH'4:In U A xforall x0 : U, In U (Add U (Empty_set U) x) x0 -> In U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xIn U A xU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xH'4:In U A xx0:UH'5:In U (Add U (Empty_set U) x) x0forall x1 : U, In U (Singleton U x) x1 -> In U A x1U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xIn U A xU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AH'2:Inhabited U (Setminus U A (Empty_set U))x:UH'3:In U (Setminus U A (Empty_set U)) xIn U A xU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Included U (Empty_set U) AInhabited U (Setminus U A (Empty_set U))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nforall (A0 : Ensemble U) (n0 : nat), cardinal U A0 n0 -> (Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y A) -> forall x : U, ~ In U A0 x -> Included U (Add U A0 x) A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0H'2:Included U A0 A -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) Aexists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Aforall x0 : Ensemble U, cardinal U x0 (S n0) /\ Included U x0 A -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'2:cardinal U x0 (S n0) /\ Included U x0 Aexists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Aexists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Aforall x1 : U, In U (Setminus U A x0) x1 -> exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1exists Y : Ensemble U, cardinal U Y (S (S n0)) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1cardinal U (Add U x0 x1) (S (S n0)) /\ Included U (Add U x0 x1) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1cardinal U (Add U x0 x1) (S (S n0))U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1Included U (Add U x0 x1) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1~ In U x0 x1U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1Included U (Add U x0 x1) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1Included U (Add U x0 x1) AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1forall x2 : U, In U (Add U x0 x1) x2 -> In U A x2U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1x2:UH'9:In U (Add U x0 x1) x2forall x3 : U, In U (Singleton U x1) x3 -> In U A x3U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 Ax1:UH'2:In U (Setminus U A x0) x1x2:UH'9:In U (Add U x0 x1) x2x3:UH'10:In U (Singleton U x1) x3In U A x1U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AApproximant U A x0apply cardinal_finite with (n := S n0); auto with sets. Qed.U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nA0:Ensemble Un0:natH'1:cardinal U A0 n0x:UH'3:~ In U A0 xH'5:Included U (Add U A0 x) AH'6:exists Y : Ensemble U, cardinal U Y (S n0) /\ Included U Y Ax0:Ensemble UH'7:cardinal U x0 (S n0)H'8:Included U x0 AFinite U x0U:Typeforall A X : Ensemble U, ~ Finite U A -> forall n : nat, cardinal U X n -> Approximant U A X -> exists Y : Ensemble U, cardinal U Y (S n) /\ Approximant U A YU:Typeforall A X : Ensemble U, ~ Finite U A -> forall n : nat, cardinal U X n -> Approximant U A X -> exists Y : Ensemble U, cardinal U Y (S n) /\ Approximant U A YU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A Xexists Y : Ensemble U, cardinal U Y (S n) /\ Approximant U A YU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XFinite U X -> Included U X A -> exists Y : Ensemble U, cardinal U Y (S n) /\ Approximant U A YU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aexists Y : Ensemble U, cardinal U Y (S n) /\ Approximant U A YU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aforall x : Ensemble U, cardinal U x (S n) /\ Included U x A -> exists Y : Ensemble U, cardinal U Y (S n) /\ Approximant U A YU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aexists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Ax:Ensemble UH'5:cardinal U x (S n)H'6:Included U x Aexists Y : Ensemble U, cardinal U Y (S n) /\ Approximant U A YU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aexists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Ax:Ensemble UH'5:cardinal U x (S n)H'6:Included U x Acardinal U x (S n) /\ Approximant U A xU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aexists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Ax:Ensemble UH'5:cardinal U x (S n)H'6:Included U x AApproximant U A xU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aexists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y AU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Ax:Ensemble UH'5:cardinal U x (S n)H'6:Included U x AFinite U xU:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aexists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y Aapply approximants_grow with (X := X); auto with sets. Qed.U:TypeA, X:Ensemble UH':~ Finite U An:natH'0:cardinal U X nH'1:Approximant U A XH'2:Finite U XH'3:Included U X Aexists Y : Ensemble U, cardinal U Y (S n) /\ Included U Y AU:Typeforall A : Ensemble U, Ensemble U -> ~ Finite U A -> forall n : nat, exists Y : Ensemble U, cardinal U Y n /\ Approximant U A YU:Typeforall A : Ensemble U, Ensemble U -> ~ Finite U A -> forall n : nat, exists Y : Ensemble U, cardinal U Y n /\ Approximant U A YU:TypeA, H':Ensemble UH'0:~ Finite U An:natexists Y : Ensemble U, cardinal U Y 0 /\ Approximant U A YU:TypeA, H':Ensemble UH'0:~ Finite U An:natforall n0 : nat, (exists Y : Ensemble U, cardinal U Y n0 /\ Approximant U A Y) -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Approximant U A YU:TypeA, H':Ensemble UH'0:~ Finite U An:natforall n0 : nat, (exists Y : Ensemble U, cardinal U Y n0 /\ Approximant U A Y) -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Approximant U A YU:TypeA, H':Ensemble UH'0:~ Finite U An, n0:natH'1:exists Y : Ensemble U, cardinal U Y n0 /\ Approximant U A Yforall x : Ensemble U, cardinal U x n0 /\ Approximant U A x -> exists Y : Ensemble U, cardinal U Y (S n0) /\ Approximant U A Yapply approximants_grow' with (X := x); tauto. Qed. Variable V : Type.U:TypeA, H':Ensemble UH'0:~ Finite U An, n0:natH'1:exists Y : Ensemble U, cardinal U Y n0 /\ Approximant U A Yx:Ensemble UH'2:cardinal U x n0 /\ Approximant U A xexists Y : Ensemble U, cardinal U Y (S n0) /\ Approximant U A YU, V:Typeforall (A : Ensemble U) (f : U -> V) (X : Ensemble V), Finite V X -> Included V X (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:Typeforall (A : Ensemble U) (f : U -> V) (X : Ensemble V), Finite V X -> Included V X (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XIncluded V (Empty_set V) (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Empty_set VU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V Xforall A0 : Ensemble V, Finite V A0 -> (Included V A0 (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0) -> forall x : V, ~ In V A0 x -> Included V (Add V A0 x) (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XH'0:Included V (Empty_set V) (Im U V A f)exists Y : Ensemble U, (cardinal U Y 0 /\ Included U Y A) /\ Im U V Y f = Empty_set VU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V Xforall A0 : Ensemble V, Finite V A0 -> (Included V A0 (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0) -> forall x : V, ~ In V A0 x -> Included V (Add V A0 x) (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V Xforall A0 : Ensemble V, Finite V A0 -> (Included V A0 (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0) -> forall x : V, ~ In V A0 x -> Included V (Add V A0 x) (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0H'1:Included V A0 (Im U V A f) -> exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0forall x0 : Ensemble U, (cardinal U x0 n /\ Included U x0 A) /\ Im U V x0 f = A0 -> exists (n0 : nat) (Y : Ensemble U), (cardinal U Y n0 /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0x0:Ensemble UH'1:(cardinal U x0 n /\ Included U x0 A) /\ Im U V x0 f = A0exists (n0 : nat) (Y : Ensemble U), (cardinal U Y n0 /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0x0:Ensemble UH'1:(cardinal U x0 n /\ Included U x0 A) /\ Im U V x0 f = A0exists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = A0x0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 Aexists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 Aexists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 A~ In V A0 x -> exists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V A0 xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 A~ In V (Im U V x0 f) x -> exists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:Included V (Add V A0 x) (Im U V A f)n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xexists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x1 : V, In V (Add V A0 x) x1 -> In V (Im U V A f) x1n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xexists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x1 : V, In V (Add V A0 x) x1 -> In V (Im U V A f) x1n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) x(In V (Add V A0 x) x -> In V (Im U V A f) x) -> exists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x1 : V, In V (Add V A0 x) x1 -> In V (Im U V A f) x1n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xexists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x1 : V, In V (Add V A0 x) x1 -> In V (Im U V A f) x1n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x1 : U, In U A x1 /\ f x1 = xforall x1 : U, In U A x1 /\ f x1 = x -> exists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xexists Y : Ensemble U, (cardinal U Y (S n) /\ Included U Y A) /\ Im U V Y f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = x(cardinal U (Add U x0 x1) (S n) /\ Included U (Add U x0 x1) A) /\ Im U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xcardinal U (Add U x0 x1) (S n)U, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIncluded U (Add U x0 x1) AU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = x~ In U x0 x1U, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIncluded U (Add U x0 x1) AU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xH'9:In U x0 x1FalseU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIncluded U (Add U x0 x1) AU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xH'9:In U x0 x1In V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIncluded U (Add U x0 x1) AU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIncluded U (Add U x0 x1) AU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'9:In U A x1H'10:f x1 = xIncluded U (Add U x0 x1) AU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'9:In U A x1H'10:f x1 = xforall x2 : U, In U (Add U x0 x1) x2 -> In U A x2U, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x3 : V, In V (Add V A0 x) x3 -> In V (Im U V A f) x3n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x3 : U, In U A x3 /\ f x3 = xx1:UH'9:In U A x1H'10:f x1 = xx2:UH'4:In U (Add U x0 x1) x2forall x3 : U, In U (Singleton U x1) x3 -> In U A x3U, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'4:In U A x1 /\ f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) xapply Im_add; auto with sets. Qed.U, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Finite V XA0:Ensemble VH'0:Finite V A0x:VH'2:~ In V A0 xH'3:forall x2 : V, In V (Add V A0 x) x2 -> In V (Im U V A f) x2n:natx0:Ensemble UH'5:Im U V x0 f = A0H'6:cardinal U x0 nH'7:Included U x0 AH'1:~ In V (Im U V x0 f) xH'8:In V (Im U V A f) xH'13:exists x2 : U, In U A x2 /\ f x2 = xx1:UH'9:In U A x1H'10:f x1 = xIm U V (Add U x0 x1) f = Add V (Im U V x0 f) (f x1)U, V:Typeforall (A : Ensemble U) (f : U -> V) (X : Ensemble V), Approximant V (Im U V A f) X -> exists Y : Ensemble U, Approximant U A Y /\ Im U V Y f = XU, V:Typeforall (A : Ensemble U) (f : U -> V) (X : Ensemble V), Approximant V (Im U V A f) X -> exists Y : Ensemble U, Approximant U A Y /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists Y : Ensemble U, Approximant U A Y /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) X(exists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = X) -> exists Y : Ensemble U, Approximant U A Y /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xn:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Xforall x : Ensemble U, (cardinal U x n /\ Included U x A) /\ Im U V x f = X -> exists Y : Ensemble U, Approximant U A Y /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xn:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Xx:Ensemble UH'0:(cardinal U x n /\ Included U x A) /\ Im U V x f = Xexists Y : Ensemble U, Approximant U A Y /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xn:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Xx:Ensemble UH'2:Im U V x f = XH'3:cardinal U x nH'4:Included U x Aexists Y : Ensemble U, Approximant U A Y /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xn:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Xx:Ensemble UH'2:Im U V x f = XH'3:cardinal U x nH'4:Included U x AApproximant U A x /\ Im U V x f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xn:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Xx:Ensemble UH'2:Im U V x f = XH'3:cardinal U x nH'4:Included U x AApproximant U A xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xn:natE:exists Y : Ensemble U, (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = Xx:Ensemble UH'2:Im U V x f = XH'3:cardinal U x nH'4:Included U x AFinite U xU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) Xexists (n : nat) (Y : Ensemble U), (cardinal U Y n /\ Included U Y A) /\ Im U V Y f = XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) XFinite V XU, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) XIncluded V X (Im U V A f)elim H'; auto with sets. Qed.U, V:TypeA:Ensemble Uf:U -> VX:Ensemble VH':Approximant V (Im U V A f) XIncluded V X (Im U V A f)U, V:Typeforall (A : Ensemble U) (f : U -> V), ~ Finite U A -> Finite V (Im U V A f) -> ~ injective U V fU, V:Typeforall (A : Ensemble U) (f : U -> V), ~ Finite U A -> Finite V (Im U V A f) -> ~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)forall x : Ensemble U, Approximant U A x /\ Im U V x f = Im U V A f -> ~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A f~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fforall x0 : U, In U (Setminus U A x) x0 -> ~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0In U A x0 -> ~ In U x x0 -> ~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0forall x1 : nat, cardinal V (Im U V A f) x1 -> ~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) n~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nforall x1 : nat, cardinal U x x1 -> ~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0~ injective U V fU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0cardinal U (Add U x x0) (S n0)U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0cardinal V (Im U V (Add U x x0) f) nU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0cardinal V (Im U V (Add U x x0) f) nU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0cardinal V (Add V (Im U V x f) (f x0)) nU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0In V (Im U V x f) (f x0) -> cardinal V (Add V (Im U V x f) (f x0)) nU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0In V (Im U V x f) (f x0)U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0H'8:In V (Im U V x f) (f x0)cardinal V (Add V (Im U V x f) (f x0)) nU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0In V (Im U V x f) (f x0)U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0H'8:In V (Im U V x f) (f x0)cardinal V (Im U V x f) nU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0In V (Im U V x f) (f x0)U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0In V (Im U V x f) (f x0)U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n < S n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0n <= n0U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nn0:natE0:cardinal U x n0cardinal V (Im U V x f) nU, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xelim H'3; auto with sets. Qed.U, V:TypeA:Ensemble Uf:U -> VH'0:~ Finite U AH'1:Finite V (Im U V A f)x:Ensemble UH'3:Approximant U A xH'4:Im U V x f = Im U V A fx0:UH'2:In U (Setminus U A x) x0H'5:In U A x0H'6:~ In U x x0n:natE:cardinal V (Im U V A f) nFinite U xU, V:Typeforall (A : Ensemble U) (f : U -> V), nat -> injective U V f -> Finite V (Im U V A f) -> Finite U AU, V:Typeforall (A : Ensemble U) (f : U -> V), nat -> injective U V f -> Finite V (Im U V A f) -> Finite U AU, V:TypeA:Ensemble Uf:U -> VH':natH'0:injective U V fH'1:Finite V (Im U V A f)Finite U AU, V:TypeA:Ensemble Uf:U -> VH':natH'0:injective U V fH'1:Finite V (Im U V A f)~ ~ Finite U Aelim (Pigeonhole_bis A f); auto with sets. Qed. End Infinite_sets.U, V:TypeA:Ensemble Uf:U -> VH':natH'0:injective U V fH'1:Finite V (Im U V A f)H'2:~ Finite U AFalse