Metamath Proof Explorer


Theorem php

Description: Pigeonhole Principle. A natural number is not equinumerous to a proper subset of itself. Theorem (Pigeonhole Principle) of Enderton p. 134. The theorem is so-called because you can't putn + 1 pigeons inton holes (if each hole holds only one pigeon). The proof consists of phplem1 , phplem2 , nneneq , and this final piece of the proof. (Contributed by NM, 29-May-1998) Avoid ax-pow . (Revised by BTernaryTau, 18-Nov-2024)

Ref Expression
Assertion php ( ( 𝐴 ∈ ω ∧ 𝐵 ⊊ 𝐴 ) → ¬ 𝐴 ≈ 𝐵 )

Proof

Step Hyp Ref Expression
1 0ss ⊢ ∅ ⊆ 𝐵
2 sspsstr ⊢ ( ( ∅ ⊆ 𝐵 ∧ 𝐵 ⊊ 𝐴 ) → ∅ ⊊ 𝐴 )
3 1 2 mpan ⊢ ( 𝐵 ⊊ 𝐴 → ∅ ⊊ 𝐴 )
4 0pss ⊢ ( ∅ ⊊ 𝐴 ↔ 𝐴 ≠ ∅ )
5 df-ne ⊢ ( 𝐴 ≠ ∅ ↔ ¬ 𝐴 = ∅ )
6 4 5 bitri ⊢ ( ∅ ⊊ 𝐴 ↔ ¬ 𝐴 = ∅ )
7 3 6 sylib ⊢ ( 𝐵 ⊊ 𝐴 → ¬ 𝐴 = ∅ )
8 nn0suc ⊢ ( 𝐴 ∈ ω → ( 𝐴 = ∅ ∨ ∃ 𝑥 ∈ ω 𝐴 = suc 𝑥 ) )
9 8 orcanai ⊢ ( ( 𝐴 ∈ ω ∧ ¬ 𝐴 = ∅ ) → ∃ 𝑥 ∈ ω 𝐴 = suc 𝑥 )
10 7 9 sylan2 ⊢ ( ( 𝐴 ∈ ω ∧ 𝐵 ⊊ 𝐴 ) → ∃ 𝑥 ∈ ω 𝐴 = suc 𝑥 )
11 pssnel ⊢ ( 𝐵 ⊊ suc 𝑥 → ∃ 𝑦 ( 𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦 ∈ 𝐵 ) )
12 pssss ⊢ ( 𝐵 ⊊ suc 𝑥 → 𝐵 ⊆ suc 𝑥 )
13 ssdif ⊢ ( 𝐵 ⊆ suc 𝑥 → ( 𝐵 ∖ { 𝑦 } ) ⊆ ( suc 𝑥 ∖ { 𝑦 } ) )
14 disjsn ⊢ ( ( 𝐵 ∩ { 𝑦 } ) = ∅ ↔ ¬ 𝑦 ∈ 𝐵 )
15 disj3 ⊢ ( ( 𝐵 ∩ { 𝑦 } ) = ∅ ↔ 𝐵 = ( 𝐵 ∖ { 𝑦 } ) )
16 14 15 bitr3i ⊢ ( ¬ 𝑦 ∈ 𝐵 ↔ 𝐵 = ( 𝐵 ∖ { 𝑦 } ) )
17 sseq1 ⊢ ( 𝐵 = ( 𝐵 ∖ { 𝑦 } ) → ( 𝐵 ⊆ ( suc 𝑥 ∖ { 𝑦 } ) ↔ ( 𝐵 ∖ { 𝑦 } ) ⊆ ( suc 𝑥 ∖ { 𝑦 } ) ) )
18 16 17 sylbi ⊢ ( ¬ 𝑦 ∈ 𝐵 → ( 𝐵 ⊆ ( suc 𝑥 ∖ { 𝑦 } ) ↔ ( 𝐵 ∖ { 𝑦 } ) ⊆ ( suc 𝑥 ∖ { 𝑦 } ) ) )
19 13 18 imbitrrid ⊢ ( ¬ 𝑦 ∈ 𝐵 → ( 𝐵 ⊆ suc 𝑥 → 𝐵 ⊆ ( suc 𝑥 ∖ { 𝑦 } ) ) )
20 12 19 syl5 ⊢ ( ¬ 𝑦 ∈ 𝐵 → ( 𝐵 ⊊ suc 𝑥 → 𝐵 ⊆ ( suc 𝑥 ∖ { 𝑦 } ) ) )
21 peano2 ⊢ ( 𝑥 ∈ ω → suc 𝑥 ∈ ω )
22 nnfi ⊢ ( suc 𝑥 ∈ ω → suc 𝑥 ∈ Fin )
23 diffi ⊢ ( suc 𝑥 ∈ Fin → ( suc 𝑥 ∖ { 𝑦 } ) ∈ Fin )
24 ssdomfi ⊢ ( ( suc 𝑥 ∖ { 𝑦 } ) ∈ Fin → ( 𝐵 ⊆ ( suc 𝑥 ∖ { 𝑦 } ) → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ) )
25 21 22 23 24 4syl ⊢ ( 𝑥 ∈ ω → ( 𝐵 ⊆ ( suc 𝑥 ∖ { 𝑦 } ) → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ) )
26 20 25 sylan9 ⊢ ( ( ¬ 𝑦 ∈ 𝐵 ∧ 𝑥 ∈ ω ) → ( 𝐵 ⊊ suc 𝑥 → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ) )
27 26 3impia ⊢ ( ( ¬ 𝑦 ∈ 𝐵 ∧ 𝑥 ∈ ω ∧ 𝐵 ⊊ suc 𝑥 ) → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) )
28 27 3com23 ⊢ ( ( ¬ 𝑦 ∈ 𝐵 ∧ 𝐵 ⊊ suc 𝑥 ∧ 𝑥 ∈ ω ) → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) )
29 28 3expa ⊢ ( ( ( ¬ 𝑦 ∈ 𝐵 ∧ 𝐵 ⊊ suc 𝑥 ) ∧ 𝑥 ∈ ω ) → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) )
30 29 adantrr ⊢ ( ( ( ¬ 𝑦 ∈ 𝐵 ∧ 𝐵 ⊊ suc 𝑥 ) ∧ ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) ) → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) )
31 nnfi ⊢ ( 𝑥 ∈ ω → 𝑥 ∈ Fin )
32 31 ad2antrl ⊢ ( ( 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ∧ ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) ) → 𝑥 ∈ Fin )
33 simpl ⊢ ( ( 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ∧ ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) ) → 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) )
34 simpr ⊢ ( ( 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ∧ ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) ) → ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) )
35 phplem1 ⊢ ( ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) → 𝑥 ≈ ( suc 𝑥 ∖ { 𝑦 } ) )
36 ensymfib ⊢ ( 𝑥 ∈ Fin → ( 𝑥 ≈ ( suc 𝑥 ∖ { 𝑦 } ) ↔ ( suc 𝑥 ∖ { 𝑦 } ) ≈ 𝑥 ) )
37 31 36 syl ⊢ ( 𝑥 ∈ ω → ( 𝑥 ≈ ( suc 𝑥 ∖ { 𝑦 } ) ↔ ( suc 𝑥 ∖ { 𝑦 } ) ≈ 𝑥 ) )
38 37 adantr ⊢ ( ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) → ( 𝑥 ≈ ( suc 𝑥 ∖ { 𝑦 } ) ↔ ( suc 𝑥 ∖ { 𝑦 } ) ≈ 𝑥 ) )
39 35 38 mpbid ⊢ ( ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) → ( suc 𝑥 ∖ { 𝑦 } ) ≈ 𝑥 )
40 endom ⊢ ( ( suc 𝑥 ∖ { 𝑦 } ) ≈ 𝑥 → ( suc 𝑥 ∖ { 𝑦 } ) ≼ 𝑥 )
41 39 40 syl ⊢ ( ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) → ( suc 𝑥 ∖ { 𝑦 } ) ≼ 𝑥 )
42 domtrfir ⊢ ( ( 𝑥 ∈ Fin ∧ 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ∧ ( suc 𝑥 ∖ { 𝑦 } ) ≼ 𝑥 ) → 𝐵 ≼ 𝑥 )
43 41 42 syl3an3 ⊢ ( ( 𝑥 ∈ Fin ∧ 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ∧ ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) ) → 𝐵 ≼ 𝑥 )
44 32 33 34 43 syl3anc ⊢ ( ( 𝐵 ≼ ( suc 𝑥 ∖ { 𝑦 } ) ∧ ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) ) → 𝐵 ≼ 𝑥 )
45 30 44 sylancom ⊢ ( ( ( ¬ 𝑦 ∈ 𝐵 ∧ 𝐵 ⊊ suc 𝑥 ) ∧ ( 𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥 ) ) → 𝐵 ≼ 𝑥 )
46 45 exp43 ⊢ ( ¬ 𝑦 ∈ 𝐵 → ( 𝐵 ⊊ suc 𝑥 → ( 𝑥 ∈ ω → ( 𝑦 ∈ suc 𝑥 → 𝐵 ≼ 𝑥 ) ) ) )
47 46 com4r ⊢ ( 𝑦 ∈ suc 𝑥 → ( ¬ 𝑦 ∈ 𝐵 → ( 𝐵 ⊊ suc 𝑥 → ( 𝑥 ∈ ω → 𝐵 ≼ 𝑥 ) ) ) )
48 47 imp ⊢ ( ( 𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦 ∈ 𝐵 ) → ( 𝐵 ⊊ suc 𝑥 → ( 𝑥 ∈ ω → 𝐵 ≼ 𝑥 ) ) )
49 48 exlimiv ⊢ ( ∃ 𝑦 ( 𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦 ∈ 𝐵 ) → ( 𝐵 ⊊ suc 𝑥 → ( 𝑥 ∈ ω → 𝐵 ≼ 𝑥 ) ) )
50 11 49 mpcom ⊢ ( 𝐵 ⊊ suc 𝑥 → ( 𝑥 ∈ ω → 𝐵 ≼ 𝑥 ) )
51 simp1 ⊢ ( ( 𝑥 ∈ ω ∧ suc 𝑥 ≈ 𝐵 ∧ 𝐵 ≼ 𝑥 ) → 𝑥 ∈ ω )
52 endom ⊢ ( suc 𝑥 ≈ 𝐵 → suc 𝑥 ≼ 𝐵 )
53 domtrfir ⊢ ( ( 𝑥 ∈ Fin ∧ suc 𝑥 ≼ 𝐵 ∧ 𝐵 ≼ 𝑥 ) → suc 𝑥 ≼ 𝑥 )
54 52 53 syl3an2 ⊢ ( ( 𝑥 ∈ Fin ∧ suc 𝑥 ≈ 𝐵 ∧ 𝐵 ≼ 𝑥 ) → suc 𝑥 ≼ 𝑥 )
55 31 54 syl3an1 ⊢ ( ( 𝑥 ∈ ω ∧ suc 𝑥 ≈ 𝐵 ∧ 𝐵 ≼ 𝑥 ) → suc 𝑥 ≼ 𝑥 )
56 sssucid ⊢ 𝑥 ⊆ suc 𝑥
57 ssdomfi ⊢ ( suc 𝑥 ∈ Fin → ( 𝑥 ⊆ suc 𝑥 → 𝑥 ≼ suc 𝑥 ) )
58 22 56 57 mpisyl ⊢ ( suc 𝑥 ∈ ω → 𝑥 ≼ suc 𝑥 )
59 21 58 syl ⊢ ( 𝑥 ∈ ω → 𝑥 ≼ suc 𝑥 )
60 59 adantr ⊢ ( ( 𝑥 ∈ ω ∧ suc 𝑥 ≼ 𝑥 ) → 𝑥 ≼ suc 𝑥 )
61 sbthfi ⊢ ( ( 𝑥 ∈ Fin ∧ suc 𝑥 ≼ 𝑥 ∧ 𝑥 ≼ suc 𝑥 ) → suc 𝑥 ≈ 𝑥 )
62 31 61 syl3an1 ⊢ ( ( 𝑥 ∈ ω ∧ suc 𝑥 ≼ 𝑥 ∧ 𝑥 ≼ suc 𝑥 ) → suc 𝑥 ≈ 𝑥 )
63 60 62 mpd3an3 ⊢ ( ( 𝑥 ∈ ω ∧ suc 𝑥 ≼ 𝑥 ) → suc 𝑥 ≈ 𝑥 )
64 51 55 63 syl2anc ⊢ ( ( 𝑥 ∈ ω ∧ suc 𝑥 ≈ 𝐵 ∧ 𝐵 ≼ 𝑥 ) → suc 𝑥 ≈ 𝑥 )
65 64 3com23 ⊢ ( ( 𝑥 ∈ ω ∧ 𝐵 ≼ 𝑥 ∧ suc 𝑥 ≈ 𝐵 ) → suc 𝑥 ≈ 𝑥 )
66 65 3expia ⊢ ( ( 𝑥 ∈ ω ∧ 𝐵 ≼ 𝑥 ) → ( suc 𝑥 ≈ 𝐵 → suc 𝑥 ≈ 𝑥 ) )
67 peano2b ⊢ ( 𝑥 ∈ ω ↔ suc 𝑥 ∈ ω )
68 nnord ⊢ ( suc 𝑥 ∈ ω → Ord suc 𝑥 )
69 67 68 sylbi ⊢ ( 𝑥 ∈ ω → Ord suc 𝑥 )
70 vex ⊢ 𝑥 ∈ V
71 70 sucid ⊢ 𝑥 ∈ suc 𝑥
72 nordeq ⊢ ( ( Ord suc 𝑥 ∧ 𝑥 ∈ suc 𝑥 ) → suc 𝑥 ≠ 𝑥 )
73 69 71 72 sylancl ⊢ ( 𝑥 ∈ ω → suc 𝑥 ≠ 𝑥 )
74 nneneq ⊢ ( ( suc 𝑥 ∈ ω ∧ 𝑥 ∈ ω ) → ( suc 𝑥 ≈ 𝑥 ↔ suc 𝑥 = 𝑥 ) )
75 67 74 sylanb ⊢ ( ( 𝑥 ∈ ω ∧ 𝑥 ∈ ω ) → ( suc 𝑥 ≈ 𝑥 ↔ suc 𝑥 = 𝑥 ) )
76 75 anidms ⊢ ( 𝑥 ∈ ω → ( suc 𝑥 ≈ 𝑥 ↔ suc 𝑥 = 𝑥 ) )
77 76 necon3bbid ⊢ ( 𝑥 ∈ ω → ( ¬ suc 𝑥 ≈ 𝑥 ↔ suc 𝑥 ≠ 𝑥 ) )
78 73 77 mpbird ⊢ ( 𝑥 ∈ ω → ¬ suc 𝑥 ≈ 𝑥 )
79 66 78 nsyli ⊢ ( ( 𝑥 ∈ ω ∧ 𝐵 ≼ 𝑥 ) → ( 𝑥 ∈ ω → ¬ suc 𝑥 ≈ 𝐵 ) )
80 79 expcom ⊢ ( 𝐵 ≼ 𝑥 → ( 𝑥 ∈ ω → ( 𝑥 ∈ ω → ¬ suc 𝑥 ≈ 𝐵 ) ) )
81 80 pm2.43d ⊢ ( 𝐵 ≼ 𝑥 → ( 𝑥 ∈ ω → ¬ suc 𝑥 ≈ 𝐵 ) )
82 50 81 syli ⊢ ( 𝐵 ⊊ suc 𝑥 → ( 𝑥 ∈ ω → ¬ suc 𝑥 ≈ 𝐵 ) )
83 82 com12 ⊢ ( 𝑥 ∈ ω → ( 𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥 ≈ 𝐵 ) )
84 psseq2 ⊢ ( 𝐴 = suc 𝑥 → ( 𝐵 ⊊ 𝐴 ↔ 𝐵 ⊊ suc 𝑥 ) )
85 breq1 ⊢ ( 𝐴 = suc 𝑥 → ( 𝐴 ≈ 𝐵 ↔ suc 𝑥 ≈ 𝐵 ) )
86 85 notbid ⊢ ( 𝐴 = suc 𝑥 → ( ¬ 𝐴 ≈ 𝐵 ↔ ¬ suc 𝑥 ≈ 𝐵 ) )
87 84 86 imbi12d ⊢ ( 𝐴 = suc 𝑥 → ( ( 𝐵 ⊊ 𝐴 → ¬ 𝐴 ≈ 𝐵 ) ↔ ( 𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥 ≈ 𝐵 ) ) )
88 83 87 syl5ibrcom ⊢ ( 𝑥 ∈ ω → ( 𝐴 = suc 𝑥 → ( 𝐵 ⊊ 𝐴 → ¬ 𝐴 ≈ 𝐵 ) ) )
89 88 rexlimiv ⊢ ( ∃ 𝑥 ∈ ω 𝐴 = suc 𝑥 → ( 𝐵 ⊊ 𝐴 → ¬ 𝐴 ≈ 𝐵 ) )
90 10 89 syl ⊢ ( ( 𝐴 ∈ ω ∧ 𝐵 ⊊ 𝐴 ) → ( 𝐵 ⊊ 𝐴 → ¬ 𝐴 ≈ 𝐵 ) )
91 90 syldbl2 ⊢ ( ( 𝐴 ∈ ω ∧ 𝐵 ⊊ 𝐴 ) → ¬ 𝐴 ≈ 𝐵 )