Skip to content

Commit a011d0d

Browse files
committed
split and rename injectiveT_ltn
1 parent 3ab54f3 commit a011d0d

File tree

1 file changed

+11
-16
lines changed

1 file changed

+11
-16
lines changed

classical/cardinality.v

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -412,21 +412,6 @@ apply/idP/idP=> [/card_leP[f]|?];
412412
by have /leq_card := in2TT 'inj_(IIord \o f \o IIord^-1); rewrite !card_ord.
413413
Qed.
414414

415-
Lemma injectiveT_ltn (A : set nat) (f : {injfun [set: nat] >-> A}) (n : nat) :
416-
exists m, (n < f m)%N.
417-
Proof.
418-
elim: n => [|n [m ih]].
419-
apply/not_existsP => f_le0.
420-
have /(_ 0 1 (in_setT _) (in_setT _)) : set_inj setT f by [].
421-
have /negP := f_le0 0; rewrite -leqNgt leqn0 => /eqP ->.
422-
have /negP := f_le0 1; rewrite -leqNgt leqn0 => /eqP ->.
423-
by move=> /(_ erefl)/esym; exact/eqP/oner_neq0.
424-
apply/not_existsP => f_leS.
425-
have {}f_leS x : (f x <= n.+1)%N by rewrite leqNgt; exact/negP/f_leS.
426-
have /subset_card_le : f @` `I_n.+3 `<=` `I_n.+2.
427-
by move=> /= _ [y] yn3 <-; rewrite ltnS f_leS.
428-
by rewrite (card_ge_image f)// card_le_II ltnn.
429-
Qed.
430415

431416
Lemma ocard_eqP {T U} {A : set T} {B : set U} :
432417
reflect $|{bij A >-> some @` B}| (A #= B).
@@ -568,7 +553,6 @@ Qed.
568553
Lemma finite_set_countable T (A : set T) : finite_set A -> countable A.
569554
Proof. by move=> /finite_setP[n /eq_countable->]. Qed.
570555

571-
572556
Lemma infiniteP T (A : set T) : infinite_set A <-> [set: nat] #<= A.
573557
Proof.
574558
elim/Ppointed: T => T in A *.
@@ -875,6 +859,10 @@ have Gy : y \in G k by rewrite in_fset_set ?inE//; apply: Ffin.
875859
by exists (Tagged G [` Gy]%fset).
876860
Qed.
877861

862+
Lemma infinite_setC {T} (A : set T) : infinite_set [set: T] ->
863+
finite_set (~` A) -> infinite_set A.
864+
Proof. by move=> + ACfin Afin; apply; rewrite -(setvU A) finite_setU. Qed.
865+
878866
Lemma trivIset_sum_card (T : choiceType) (F : nat -> set T) n :
879867
(forall n, finite_set (F n)) -> trivIset [set: nat] F ->
880868
(\sum_(i < n) #|` fset_set (F i)| =
@@ -1143,6 +1131,13 @@ Proof. by rewrite -setXTT; apply: infinite_setX; exact: infinite_nat. Qed.
11431131
Lemma card_nat2 : [set: nat * nat] #= [set: nat].
11441132
Proof. exact/eq_card_nat/infinite_prod_nat/countableP. Qed.
11451133

1134+
Lemma injective_gtn (f : nat -> nat) : injective f -> forall (n : nat), exists m, (n < f m)%N.
1135+
Proof.
1136+
move=> fI n; suff [m /negP] : ~` (f @^-1` `I_n.+1) !=set0 by rewrite -ltnNge; exists m.
1137+
apply: infinite_setN0; apply: infinite_setC; first exact: infinite_nat.
1138+
by rewrite setCK; apply: finite_preimage; first by move=> ? ? ? ?; apply: fI.
1139+
Qed.
1140+
11461141
HB.instance Definition _ := isPointed.Build rat 0.
11471142

11481143
Lemma infinite_rat : infinite_set [set: rat].

0 commit comments

Comments
 (0)