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. Section Finite_sets_facts. Variable U : Type.U:Typeforall X : Ensemble U, Finite U X -> exists n : nat, cardinal U X nU:Typeforall X : Ensemble U, Finite U X -> exists n : nat, cardinal U X nU:Typeexists n : nat, cardinal U (Empty_set U) nU:TypeA:Ensemble Un:natx:UH0:~ In U A xH:cardinal U A nexists n0 : nat, cardinal U (Add U A x) n0exists (S n); auto with sets. Qed.U:TypeA:Ensemble Un:natx:UH0:~ In U A xH:cardinal U A nexists n0 : nat, cardinal U (Add U A x) n0U:Typeforall (X : Ensemble U) (n : nat), cardinal U X n -> Finite U Xinduction 1; auto with sets. Qed.U:Typeforall (X : Ensemble U) (n : nat), cardinal U X n -> Finite U XU:Typeforall (X : Ensemble U) (x : U), Finite U X -> Finite U (Add U X x)U:Typeforall (X : Ensemble U) (x : U), Finite U X -> Finite U (Add U X x)U:TypeX:Ensemble Ux:UH':Finite U XFinite U (Add U X x)rewrite (Non_disjoint_union U X x); auto with sets. Qed.U:TypeX:Ensemble Ux:UH':Finite U XH'0:In U X xFinite U (Add U X x)U:Typeforall x : U, Finite U (Singleton U x)U:Typeforall x : U, Finite U (Singleton U x)change (Finite U (Add U (Empty_set U) x)); auto with sets. Qed.U:Typex:UFinite U (Union U (Empty_set U) (Singleton U x))U:Typeforall X Y : Ensemble U, Finite U X -> Finite U Y -> Finite U (Union U X Y)U:Typeforall X Y : Ensemble U, Finite U X -> Finite U Y -> Finite U (Union U X Y)U:TypeY:Ensemble UFinite U Y -> Finite U (Union U (Empty_set U) Y)U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)Finite U Y -> Finite U (Union U (Add U A x) Y)U:TypeY:Ensemble UFinite U Y -> Finite U YU:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)Finite U Y -> Finite U (Union U (Add U A x) Y)U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)Finite U Y -> Finite U (Union U (Add U A x) Y)U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)H0:Finite U YFinite U (Union U (Add U A x) Y)U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)H0:Finite U YFinite U (Union U Y (Add U A x))U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)H0:Finite U YFinite U (Add U (Union U Y A) x)U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)H0:Finite U YFinite U (Add U (Union U A Y) x)U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)H0:Finite U YFinite U (Union U A Y)assumption. Qed.U:TypeY, A:Ensemble UFin_A:Finite U Ax:UH:~ In U A xHind:Finite U Y -> Finite U (Union U A Y)H0:Finite U YFinite U YU:Typeforall A : Ensemble U, Finite U A -> forall X : Ensemble U, Included U X A -> Finite U XU:Typeforall A : Ensemble U, Finite U A -> forall X : Ensemble U, Included U X A -> Finite U XU:TypeA:Ensemble UH':Finite U Aforall X : Ensemble U, Included U X (Empty_set U) -> Finite U XU:TypeA:Ensemble UH':Finite U Aforall A0 : Ensemble U, Finite U A0 -> (forall X : Ensemble U, Included U X A0 -> Finite U X) -> forall x : U, ~ In U A0 x -> forall X : Ensemble U, Included U X (Add U A0 x) -> Finite U XU:TypeA:Ensemble UH':Finite U AX:Ensemble UH'0:Included U X (Empty_set U)Finite U XU:TypeA:Ensemble UH':Finite U Aforall A0 : Ensemble U, Finite U A0 -> (forall X : Ensemble U, Included U X A0 -> Finite U X) -> forall x : U, ~ In U A0 x -> forall X : Ensemble U, Included U X (Add U A0 x) -> Finite U XU:TypeA:Ensemble UH':Finite U Aforall A0 : Ensemble U, Finite U A0 -> (forall X : Ensemble U, Included U X A0 -> Finite U X) -> forall x : U, ~ In U A0 x -> forall X : Ensemble U, Included U X (Add U A0 x) -> Finite U XU:TypeA:Ensemble UH':Finite U AA0:Ensemble UH:Finite U A0H0:forall X0 : Ensemble U, Included U X0 A0 -> Finite U X0x:UH1:~ In U A0 xX:Ensemble UH2:Included U X (Add U A0 x)(exists A' : Ensemble U, X = Add U A' x /\ Included U A' A0) -> Finite U Xrewrite H5; auto with sets. Qed.U:TypeA:Ensemble UH':Finite U AA0:Ensemble UH:Finite U A0H0:forall X0 : Ensemble U, Included U X0 A0 -> Finite U X0x:UH1:~ In U A0 xX:Ensemble UH2:Included U X (Add U A0 x)A':Ensemble UH5:X = Add U A' xH6:Included U A' A0Finite U XU:Typeforall A : Ensemble U, Finite U A -> forall X : Ensemble U, Finite U (Intersection U X A)intros A H' X; apply Finite_downward_closed with A; auto with sets. Qed.U:Typeforall A : Ensemble U, Finite U A -> forall X : Ensemble U, Finite U (Intersection U X A)U:Typeforall X : Ensemble U, cardinal U X 0 -> X = Empty_set Uintros X H; apply (cardinal_invert U X 0); trivial with sets. Qed.U:Typeforall X : Ensemble U, cardinal U X 0 -> X = Empty_set UU:Typeforall X : Ensemble U, Inhabited U X -> forall n : nat, cardinal U X n -> n > 0U:Typeforall X : Ensemble U, Inhabited U X -> forall n : nat, cardinal U X n -> n > 0U:TypeX:Ensemble Ux:UH':In U X xforall n : nat, cardinal U X n -> n > 0U:TypeX:Ensemble Ux:UH':In U X xn:natH'0:cardinal U X nn > 0U:TypeX:Ensemble Ux:UH':In U X xn:natH'0:cardinal U X n0 = n -> n > 0U:TypeX:Ensemble Ux:UH':In U X xn:natH'0:cardinal U X nH'1:0 = ncardinal U X n -> In U X x -> n > 0U:TypeX:Ensemble Ux:UH':In U X xn:natH'0:cardinal U X nH'1:0 = nH'2:cardinal U X 0In U X x -> 0 > 0intro H'3; elim H'3. Qed.U:TypeX:Ensemble Ux:UH':In U X xn:natH'0:cardinal U X nH'1:0 = nH'2:cardinal U X 0In U (Empty_set U) x -> 0 > 0U:Typeforall (X : Ensemble U) (n : nat), cardinal U X n -> forall x : U, In U X x -> cardinal U (Subtract U X x) (Nat.pred n)U:Typeforall (X : Ensemble U) (n : nat), cardinal U X n -> forall x : U, In U X x -> cardinal U (Subtract U X x) (Nat.pred n)U:TypeX:Ensemble Un:natH':cardinal U X nforall x : U, In U (Empty_set U) x -> cardinal U (Subtract U (Empty_set U) x) (Nat.pred 0)U:TypeX:Ensemble Un:natH':cardinal U X nforall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (forall x : U, In U A x -> cardinal U (Subtract U A x) (Nat.pred n0)) -> forall x : U, ~ In U A x -> forall x0 : U, In U (Add U A x) x0 -> cardinal U (Subtract U (Add U A x) x0) (Nat.pred (S n0))U:TypeX:Ensemble Un:natH':cardinal U X nforall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (forall x : U, In U A x -> cardinal U (Subtract U A x) (Nat.pred n0)) -> forall x : U, ~ In U A x -> forall x0 : U, In U (Add U A x) x0 -> cardinal U (Subtract U (Add U A x) x0) (Nat.pred (S n0))U:Typeforall (A : Ensemble U) (n : nat), cardinal U A n -> (forall x : U, In U A x -> cardinal U (Subtract U A x) (Nat.pred n)) -> forall x : U, ~ In U A x -> forall x0 : U, In U (Add U A x) x0 -> cardinal U (Subtract U (Add U A x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x = x0 -> cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0 -> cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'5:x = x0cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0 -> cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'5:x = x0~ In U X x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0 -> cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0 -> cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0S (Nat.pred n) = Nat.pred (S n) -> cardinal U (Add U (Subtract U X x0) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0S (Nat.pred n) = Nat.pred (S n)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0H'5:S (Nat.pred n) = Nat.pred (S n)cardinal U (Add U (Subtract U X x0) x) (S (Nat.pred n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0S (Nat.pred n) = Nat.pred (S n)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0H'5:S (Nat.pred n) = Nat.pred (S n)~ In U (Subtract U X x0) xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0S (Nat.pred n) = Nat.pred (S n)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0H'5:S (Nat.pred n) = Nat.pred (S n)H'6:In U (Subtract U X x0) xIn U X x -> ~ In U (Singleton U x0) x -> FalseU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0S (Nat.pred n) = Nat.pred (S n)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0H'5:S (Nat.pred n) = Nat.pred (S n)H'6:In U (Subtract U X x0) xH'7:In U X xH'8:~ In U (Singleton U x0) xFalseU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0S (Nat.pred n) = Nat.pred (S n)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0S (Nat.pred n) = Nat.pred (S n)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0n = S (Nat.pred n)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x00 < nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0n > 0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x <> x0Inhabited U XU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0x <> x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x = x0FalseU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x = x0In U X xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'4:In U X x0H'3:x = x0In U X xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0x = x0 -> ~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0x <> x0 -> ~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'3:x = x0~ In U X x -> cardinal U (Subtract U (Add U X x) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0x <> x0 -> ~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'3:x = x0Subtract U (Add U X x) x = X -> ~ In U X x -> cardinal U (Subtract U (Add U X x) x) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0x <> x0 -> ~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0x <> x0 -> ~ In U X x0 -> cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'3:x <> x0H'4:~ In U X x0cardinal U (Subtract U (Add U X x) x0) (Nat.pred (S n))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'3:x <> x0H'4:~ In U X x0~ In U (Add U X x) x0lapply (Add_inv U X x x0); tauto. Qed.U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall x1 : U, In U X x1 -> cardinal U (Subtract U X x1) (Nat.pred n)x:UH'1:~ In U X xx0:UH'2:In U (Add U X x) x0H'3:x <> x0H'4:~ In U X x0H'5:In U (Add U X x) x0FalseU:Typeforall (X : Ensemble U) (c1 : nat), cardinal U X c1 -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> X = Y -> c1 = c2U:Typeforall (X : Ensemble U) (c1 : nat), cardinal U X c1 -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> X = Y -> c1 = c2U:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Empty_set U = Y -> 0 = c2U:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> A = Y -> n = c2) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Add U A x = Y -> S n = c2U:TypeX:Ensemble Uc1:natH':cardinal U X c1Y:Ensemble Uc2:natH'0:cardinal U Y c2forall (A : Ensemble U) (n : nat), cardinal U A n -> (Empty_set U = A -> 0 = n) -> forall x : U, ~ In U A x -> Empty_set U = Add U A x -> 0 = S nU:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> A = Y -> n = c2) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Add U A x = Y -> S n = c2U:TypeX:Ensemble Uc1:natH':cardinal U X c1Y:Ensemble Uc2:natH'0:cardinal U Y c2A:Ensemble Un:natH'1:cardinal U A nH'2:Empty_set U = A -> 0 = nx:UH'3:~ In U A xH'5:Empty_set U = Add U A x0 = S nU:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> A = Y -> n = c2) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Add U A x = Y -> S n = c2U:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> A = Y -> n = c2) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Add U A x = Y -> S n = c2U:Typeforall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> A = Y -> n = c2) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Add U A x = Y -> S n = c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> X = Y0 -> n = c0x:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2Add U X x = Y -> S n = c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> X = Y0 -> n = c0x:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2Add U X x = Empty_set U -> S n = 0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> X = Y0 -> n = c0x:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2forall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (Add U X x = A -> S n = n0) -> forall x0 : U, ~ In U A x0 -> Add U X x = Add U A x0 -> S n = S n0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> X = Y0 -> n = c0x:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2H'3:Add U X x = Empty_set US n = 0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> X = Y0 -> n = c0x:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2forall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (Add U X x = A -> S n = n0) -> forall x0 : U, ~ In U A x0 -> Add U X x = Add U A x0 -> S n = S n0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> X = Y0 -> n = c0x:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2forall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (Add U X x = A -> S n = n0) -> forall x0 : U, ~ In U A x0 -> Add U X x = Add U A x0 -> S n = S n0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> X = Y -> n = c2x:UH'1:~ In U X xforall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (Add U X x = A -> S n = n0) -> forall x0 : U, ~ In U A x0 -> Add U X x = Add U A x0 -> S n = S n0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:In U X0 xn = c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:In U X0 xcardinal U (Subtract U (Add U X0 x0) x) c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:In U X0 xX = Subtract U (Add U X0 x0) xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:In U X0 xcardinal U (Subtract U (Add U X0 x0) x) (Nat.pred (S c2))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:In U X0 xX = Subtract U (Add U X0 x0) xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:In U X0 xX = Subtract U (Add U X0 x0) xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:In U X0 xX = Subtract U (Add U X x) xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0x = x0 -> ~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0x <> x0 -> ~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:x = x0H'7:~ In U X0 xn = c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0x <> x0 -> ~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:x = x0H'7:~ In U X0 xX = X0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0x <> x0 -> ~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:x = x0H'7:~ In U X0 xAdd U X x = Add U X0 xU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0x <> x0 -> ~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0x <> x0 -> ~ In U X0 x -> S n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:x <> x0H'7:~ In U X0 xS n = S c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> X = Y -> n = c0x:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Add U X x = X0 -> S n = c2x0:UH'4:~ In U X0 x0H'5:Add U X x = Add U X0 x0H'6:x <> x0H'7:~ In U X0 xAdd U X x <> Add U X0 x0U:TypeX:Ensemble Ux:UX0:Ensemble Ux0:UH'6:x <> x0H'7:~ In U X0 xAdd U X x <> Add U X0 x0U:TypeX:Ensemble Ux:UX0:Ensemble Ux0:UH'6:x <> x0H'7:~ In U X0 xH':Add U X x = Add U X0 x0FalseU:TypeX:Ensemble Ux:UX0:Ensemble Ux0:UH'6:x <> x0H'7:~ In U X0 xH':Add U X x = Add U X0 x0Same_set U (Add U X x) (Add U X0 x0) -> FalseU:TypeX:Ensemble Ux:UX0:Ensemble Ux0:UH'6:x <> x0H'7:~ In U X0 xSame_set U (Add U X x) (Add U X0 x0) -> FalseU:TypeX:Ensemble Ux:UX0:Ensemble Ux0:UH'6:x <> x0H'7:~ In U X0 xH':Included U (Add U X x) (Add U X0 x0) /\ Included U (Add U X0 x0) (Add U X x)FalseU:TypeX:Ensemble Ux:UX0:Ensemble Ux0:UH'6:x <> x0H'7:~ In U X0 xH'0:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1Falselapply (Add_inv U X0 x0 x); [ intuition | apply (H'0 x); apply Add_intro2 ]. Qed.U:TypeX:Ensemble Ux:UX0:Ensemble Ux0:UH'6:x <> x0H'7:~ In U X0 xH'0:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1~ In U (Add U X0 x0) xU:Typeforall m : nat, cardinal U (Empty_set U) m -> 0 = mU:Typeforall m : nat, cardinal U (Empty_set U) m -> 0 = mU:Typem:natCm:cardinal U (Empty_set U) mmatch m with | 0 => Empty_set U = Empty_set U | S n => exists (A : Ensemble U) (x : U), Empty_set U = Add U A x /\ ~ In U A x /\ cardinal U A n end -> 0 = mU:Typem:natCm:cardinal U (Empty_set U) mforall n : nat, (match n with | 0 => Empty_set U = Empty_set U | S n0 => exists (A : Ensemble U) (x : U), Empty_set U = Add U A x /\ ~ In U A x /\ cardinal U A n0 end -> 0 = n) -> (exists (A : Ensemble U) (x : U), Empty_set U = Add U A x /\ ~ In U A x /\ cardinal U A n) -> 0 = S nelim (not_Empty_Add U x x0 H3). Qed.U:Typem:natCm:cardinal U (Empty_set U) mn:natH:match n with | 0 => Empty_set U = Empty_set U | S n0 => exists (A : Ensemble U) (x1 : U), Empty_set U = Add U A x1 /\ ~ In U A x1 /\ cardinal U A n0 end -> 0 = nH0:exists (A : Ensemble U) (x1 : U), Empty_set U = Add U A x1 /\ ~ In U A x1 /\ cardinal U A nx:Ensemble UH1:exists x1 : U, Empty_set U = Add U x x1 /\ ~ In U x x1 /\ cardinal U x nx0:UH2:Empty_set U = Add U x x0 /\ ~ In U x x0 /\ cardinal U x nH3:Empty_set U = Add U x x0H4:~ In U x x0 /\ cardinal U x n0 = S nU:Typeforall (X : Ensemble U) (n : nat), cardinal U X n -> forall m : nat, cardinal U X m -> n = mintros; apply cardinal_is_functional with X X; auto with sets. Qed.U:Typeforall (X : Ensemble U) (n : nat), cardinal U X n -> forall m : nat, cardinal U X m -> n = mU:Typeforall (A : Ensemble U) (x : U) (n n' : nat), cardinal U A n -> cardinal U (Add U A x) n' -> n' <= S nU:Typeforall (A : Ensemble U) (x : U) (n n' : nat), cardinal U A n -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A ncardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nIn U A x -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A n~ In U A x -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:In U A xcardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A n~ In U A x -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:In U A xcardinal U A n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A n~ In U A x -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:In U A xH'1:cardinal U A n'n = n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:In U A xH'1:cardinal U A n'n = n'U:TypeA:Ensemble Ux:Un, n':natH':cardinal U A n~ In U A x -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:In U A xH'1:cardinal U A n'n = n'U:TypeA:Ensemble Ux:Un, n':natH':cardinal U A n~ In U A x -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A n~ In U A x -> cardinal U (Add U A x) n' -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:~ In U A xH'1:cardinal U (Add U A x) n'n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:~ In U A xH'1:cardinal U (Add U A x) n'n' = S n -> n' <= S nU:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:~ In U A xH'1:cardinal U (Add U A x) n'n' = S napply cardinal_unicity with (Add U A x); auto with sets. Qed.U:TypeA:Ensemble Ux:Un, n':natH':cardinal U A nH'0:~ In U A xH'1:cardinal U (Add U A x) n'n' = S nU:Typeforall (X : Ensemble U) (c1 : nat), cardinal U X c1 -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U X Y -> c2 > c1U:Typeforall (X : Ensemble U) (c1 : nat), cardinal U X c1 -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U X Y -> c2 > c1U:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U (Empty_set U) Y -> c2 > 0U:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U A Y -> c2 > n) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U (Add U A x) Y -> c2 > S nU:TypeX:Ensemble Uc1:natH':cardinal U X c1Y:Ensemble Uc2:natH'0:cardinal U Y c2Strict_Included U (Empty_set U) (Empty_set U) -> 0 > 0U:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U A Y -> c2 > n) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U (Add U A x) Y -> c2 > S nU:TypeX:Ensemble Uc1:natH':cardinal U X c1Y:Ensemble Uc2:natH'0:cardinal U Y c2H'1:Strict_Included U (Empty_set U) (Empty_set U)0 > 0U:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U A Y -> c2 > n) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U (Add U A x) Y -> c2 > S nU:TypeX:Ensemble Uc1:natH':cardinal U X c1forall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U A Y -> c2 > n) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U (Add U A x) Y -> c2 > S nU:Typeforall (A : Ensemble U) (n : nat), cardinal U A n -> (forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U A Y -> c2 > n) -> forall x : U, ~ In U A x -> forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U (Add U A x) Y -> c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> Strict_Included U X Y0 -> c0 > nx:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2Strict_Included U (Add U X x) Y -> c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> Strict_Included U X Y0 -> c0 > nx:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2Strict_Included U (Add U X x) (Empty_set U) -> 0 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> Strict_Included U X Y0 -> c0 > nx:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2forall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (Strict_Included U (Add U X x) A -> n0 > S n) -> forall x0 : U, ~ In U A x0 -> Strict_Included U (Add U X x) (Add U A x0) -> S n0 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y0 : Ensemble U) (c0 : nat), cardinal U Y0 c0 -> Strict_Included U X Y0 -> c0 > nx:UH'1:~ In U X xY:Ensemble Uc2:natH'2:cardinal U Y c2forall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (Strict_Included U (Add U X x) A -> n0 > S n) -> forall x0 : U, ~ In U A x0 -> Strict_Included U (Add U X x) (Add U A x0) -> S n0 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c2 : nat), cardinal U Y c2 -> Strict_Included U X Y -> c2 > nx:UH'1:~ In U X xforall (A : Ensemble U) (n0 : nat), cardinal U A n0 -> (Strict_Included U (Add U X x) A -> n0 > S n) -> forall x0 : U, ~ In U A x0 -> Strict_Included U (Add U X x) (Add U A x0) -> S n0 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:In U X0 xc2 > nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:In U X0 xcardinal U (Subtract U (Add U X0 x0) x) c2U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:In U X0 xStrict_Included U X (Subtract U (Add U X0 x0) x)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:In U X0 xcardinal U (Subtract U (Add U X0 x0) x) (Nat.pred (S c2))U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:In U X0 xStrict_Included U X (Subtract U (Add U X0 x0) x)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:In U X0 xStrict_Included U X (Subtract U (Add U X0 x0) x)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)x = x0 -> ~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)x <> x0 -> ~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:x = x0H'7:~ In U X0 xc2 > nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)x <> x0 -> ~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:x = x0H'7:~ In U X0 xStrict_Included U X X0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)x <> x0 -> ~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:x = x0H'7:~ In U X0 x~ In U X x0U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:x = x0H'7:~ In U X0 xStrict_Included U (Add U X x0) (Add U X0 x0)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)x <> x0 -> ~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)H'6:x = x0H'7:~ In U X0 xStrict_Included U (Add U X x0) (Add U X0 x0)U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)x <> x0 -> ~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Strict_Included U (Add U X x) (Add U X0 x0)x <> x0 -> ~ In U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'5:Included U (Add U X x) (Add U X0 x0) /\ Add U X x <> Add U X0 x0H'6:x <> x0H'7:~ In U X0 xS c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'6:x <> x0H'7:~ In U X0 xH'8:Included U (Add U X x) (Add U X0 x0)H'9:Add U X x <> Add U X0 x0S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'6:x <> x0H'7:~ In U X0 xH'8:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1H'9:Add U X x <> Add U X0 x0S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'6:x <> x0H'7:~ In U X0 xH'8:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1H'9:Add U X x <> Add U X0 x0(In U (Add U X x) x -> In U (Add U X0 x0) x) -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'6:x <> x0H'7:~ In U X0 xH'8:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1H'9:Add U X x <> Add U X0 x0H'5:In U (Add U X x) x -> In U (Add U X0 x0) xIn U (Add U X0 x0) x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'6:x <> x0H'7:~ In U X0 xH'8:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1H'9:Add U X x <> Add U X0 x0H'5:In U (Add U X x) x -> In U (Add U X0 x0) xH:In U (Add U X0 x0) xIn U X0 x -> S c2 > S nU:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'6:x <> x0H'7:~ In U X0 xH'8:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1H'9:Add U X x <> Add U X0 x0H'5:In U (Add U X x) x -> In U (Add U X0 x0) xH:In U (Add U X0 x0) xx0 = x -> S c2 > S nintro; absurd (x = x0); auto with sets arith. Qed.U:TypeX:Ensemble Un:natH':cardinal U X nH'0:forall (Y : Ensemble U) (c0 : nat), cardinal U Y c0 -> Strict_Included U X Y -> c0 > nx:UH'1:~ In U X xX0:Ensemble Uc2:natH'2:cardinal U X0 c2H'3:Strict_Included U (Add U X x) X0 -> c2 > S nx0:UH'4:~ In U X0 x0H'6:x <> x0H'7:~ In U X0 xH'8:forall x1 : U, In U (Add U X x) x1 -> In U (Add U X0 x0) x1H'9:Add U X x <> Add U X0 x0H'5:In U (Add U X x) x -> In U (Add U X0 x0) xH:In U (Add U X0 x0) xx0 = x -> S c2 > S nU:Typeforall (X Y : Ensemble U) (n m : nat), cardinal U X n -> cardinal U Y m -> Included U X Y -> n <= mU:Typeforall (X Y : Ensemble U) (n m : nat), cardinal U X n -> cardinal U Y m -> Included U X Y -> n <= mU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:Strict_Included U X Yn <= mU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:X = Yn <= mU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:Strict_Included U X Ym > nU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:X = Yn <= mU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:X = Yn <= mU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:X = YH3:cardinal U X mn <= mU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:X = YH3:cardinal U X mn = m -> n <= mU:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:X = YH3:cardinal U X mn = mapply cardinal_unicity with X; auto with sets arith. Qed.U:TypeX, Y:Ensemble Un, m:natH:cardinal U X nH0:cardinal U Y mH1:Included U X YH2:X = YH3:cardinal U X mn = mU:Typeforall P : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P X) -> P (Empty_set U)U:Typeforall P : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P X) -> P (Empty_set U)U:TypeP:Ensemble U -> PropH':forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P XP (Empty_set U)U:TypeP:Ensemble U -> PropH':forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P Xforall Y : Ensemble U, Strict_Included U Y (Empty_set U) -> P YU:TypeP:Ensemble U -> Propforall Y : Ensemble U, Strict_Included U Y (Empty_set U) -> P YU:TypeP:Ensemble U -> PropY:Ensemble UH':Strict_Included U Y (Empty_set U)P YU:TypeP:Ensemble U -> PropY:Ensemble UH':Included U Y (Empty_set U) /\ Y <> Empty_set UP YU:TypeP:Ensemble U -> PropY:Ensemble UH'0:Included U Y (Empty_set U)H'1:Y <> Empty_set UP Yelim H'1; auto with sets. Qed.U:TypeP:Ensemble U -> PropY:Ensemble UH'0:Included U Y (Empty_set U)H'1:Y <> Empty_set UH'3:Y = Empty_set UP YU:Typeforall P : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P X) -> forall X : Ensemble U, Finite U X -> P XU:Typeforall P : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P X) -> forall X : Ensemble U, Finite U X -> P XU:TypeP:Ensemble U -> PropH'0:forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0X:Ensemble UH'1:Finite U XP XU:TypeX:Ensemble UH'1:Finite U Xforall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P XU:TypeX:Ensemble UH'1:Finite U Xforall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P (Empty_set U)U:TypeX:Ensemble UH'1:Finite U Xforall A : Ensemble U, Finite U A -> (forall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P A) -> forall x : U, ~ In U A x -> forall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P (Add U A x)U:TypeX:Ensemble UH'1:Finite U XP:Ensemble U -> PropH'0:forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0P (Empty_set U)U:TypeX:Ensemble UH'1:Finite U Xforall A : Ensemble U, Finite U A -> (forall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P A) -> forall x : U, ~ In U A x -> forall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P (Add U A x)U:TypeX:Ensemble UH'1:Finite U Xforall A : Ensemble U, Finite U A -> (forall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P A) -> forall x : U, ~ In U A x -> forall P : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y : Ensemble U, Strict_Included U Y X0 -> P Y) -> P X0) -> P (Add U A x)U:Typeforall A : Ensemble U, Finite U A -> (forall P : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P X) -> P A) -> forall x : U, ~ In U A x -> forall P : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P X) -> P (Add U A x)U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P0 Y) -> P0 X) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P XP (Add U A x)U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P0 Y) -> P0 X) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P Xforall Y : Ensemble U, Included U Y (Add U A x) -> P YU:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P0 Y) -> P0 X) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P X~ In U A x -> forall Y : Ensemble U, Included U Y (Add U A x) -> P YU:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P0 Y) -> P0 X) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> P Y) -> P Xforall X : Ensemble U, Finite U X -> (forall Y : Ensemble U, Strict_Included U Y X -> ~ In U Y x -> forall Y0 : Ensemble U, Included U Y0 (Add U Y x) -> P Y0) -> ~ In U X x -> forall Y : Ensemble U, Included U Y (Add U X x) -> P YU:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y0 : Ensemble U, Strict_Included U Y0 X0 -> P0 Y0) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y0 : Ensemble U, Strict_Included U Y0 X0 -> P Y0) -> P X0X:Ensemble UK:Finite U XH'5:forall Y0 : Ensemble U, Strict_Included U Y0 X -> ~ In U Y0 x -> forall Y1 : Ensemble U, Included U Y1 (Add U Y0 x) -> P Y1L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Finite U YU:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y0 : Ensemble U, Strict_Included U Y0 X0 -> P0 Y0) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y0 : Ensemble U, Strict_Included U Y0 X0 -> P Y0) -> P X0X:Ensemble UK:Finite U XH'5:forall Y0 : Ensemble U, Strict_Included U Y0 X -> ~ In U Y0 x -> forall Y1 : Ensemble U, Included U Y1 (Add U Y0 x) -> P Y1L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)forall Y0 : Ensemble U, Strict_Included U Y0 Y -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y0 : Ensemble U, Strict_Included U Y0 X0 -> P0 Y0) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y0 : Ensemble U, Strict_Included U Y0 X0 -> P Y0) -> P X0X:Ensemble UK:Finite U XH'5:forall Y0 : Ensemble U, Strict_Included U Y0 X -> ~ In U Y0 x -> forall Y1 : Ensemble U, Included U Y1 (Add U Y0 x) -> P Y1L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)forall Y0 : Ensemble U, Strict_Included U Y0 Y -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YIncluded U Y0 (Add U X x) -> Y0 <> Add U X x -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xH'14:Included U Y0 XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xH'14:Included U Y0 XStrict_Included U Y0 X -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xH'14:Included U Y0 XY0 = X -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xH'14:Included U Y0 XY0 = X -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xH'14:Included U Y0 XH'9:Y0 = XP XU:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xH'14:Included U Y0 XH'9:Y0 = Xforall Y1 : Ensemble U, Strict_Included U Y1 X -> P Y1U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y2 : Ensemble U, Strict_Included U Y2 X0 -> P0 Y2) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y2 : Ensemble U, Strict_Included U Y2 X0 -> P Y2) -> P X0X:Ensemble UK:Finite U XH'5:forall Y2 : Ensemble U, Strict_Included U Y2 X -> ~ In U Y2 x -> forall Y3 : Ensemble U, Included U Y3 (Add U Y2 x) -> P Y3L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xH'14:Included U Y0 XH'9:Y0 = XY1:Ensemble UH'8:Strict_Included U Y1 XIncluded U Y1 X -> Y1 <> X -> P Y1U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XStrict_Included U A' X -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XA' = X -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XH'8:Strict_Included U A' XIncluded U Y0 (Add U A' x)U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XA' = X -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XA' = X -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XH'8:A' = XP Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XH'8:A' = XIncluded U Y0 Y -> Y0 <> Y -> P Y0U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XH'8:A' = XH'9:Included U Y0 YH'10:Y0 <> YY0 = YU:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XH'8:A' = XH'9:Included U Y0 YH'10:Y0 <> YIncluded U Y (Add U X x) -> Y0 = Yrewrite <- H'15; auto with sets. Qed. End Finite_sets_facts.U:TypeA:Ensemble UH':Finite U AH'0:forall P0 : Ensemble U -> Prop, (forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P0 Y1) -> P0 X0) -> P0 Ax:UH'1:~ In U A xP:Ensemble U -> PropH'3:forall X0 : Ensemble U, Finite U X0 -> (forall Y1 : Ensemble U, Strict_Included U Y1 X0 -> P Y1) -> P X0X:Ensemble UK:Finite U XH'5:forall Y1 : Ensemble U, Strict_Included U Y1 X -> ~ In U Y1 x -> forall Y2 : Ensemble U, Included U Y2 (Add U Y1 x) -> P Y2L:~ In U X xY:Ensemble UH'6:Included U Y (Add U X x)Y0:Ensemble UH'7:Strict_Included U Y0 YH'2:Included U Y0 (Add U X x)H'4:Y0 <> Add U X xA':Ensemble UH'15:Y0 = Add U A' xH'16:Included U A' XH'8:A' = XH'9:Included U Y0 YH'10:Y0 <> YIncluded U Y (Add U A' x) -> Y0 = Y