MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  php Structured version   Visualization version   GIF version

Theorem php 9143
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 put n + 1 pigeons into n holes (if each hole holds only one pigeon). The proof consists of phplem1 9140, phplem2 9141, nneneq 9142, and this final piece of the proof. (Contributed by NM, 29-May-1998.) Avoid ax-pow 5312. (Revised by BTernaryTau, 18-Nov-2024.)
Assertion
Ref Expression
php ((𝐴 ∈ ω ∧ 𝐵𝐴) → ¬ 𝐴𝐵)

Proof of Theorem php
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 0ss 4354 . . . . . 6 ∅ ⊆ 𝐵
2 sspsstr 4062 . . . . . 6 ((∅ ⊆ 𝐵𝐵𝐴) → ∅ ⊊ 𝐴)
31, 2mpan 691 . . . . 5 (𝐵𝐴 → ∅ ⊊ 𝐴)
4 0pss 4401 . . . . . 6 (∅ ⊊ 𝐴𝐴 ≠ ∅)
5 df-ne 2934 . . . . . 6 (𝐴 ≠ ∅ ↔ ¬ 𝐴 = ∅)
64, 5bitri 275 . . . . 5 (∅ ⊊ 𝐴 ↔ ¬ 𝐴 = ∅)
73, 6sylib 218 . . . 4 (𝐵𝐴 → ¬ 𝐴 = ∅)
8 nn0suc 7846 . . . . 5 (𝐴 ∈ ω → (𝐴 = ∅ ∨ ∃𝑥 ∈ ω 𝐴 = suc 𝑥))
98orcanai 1005 . . . 4 ((𝐴 ∈ ω ∧ ¬ 𝐴 = ∅) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
107, 9sylan2 594 . . 3 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
11 pssnel 4425 . . . . . . . 8 (𝐵 ⊊ suc 𝑥 → ∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵))
12 pssss 4052 . . . . . . . . . . . . . . . . . . 19 (𝐵 ⊊ suc 𝑥𝐵 ⊆ suc 𝑥)
13 ssdif 4098 . . . . . . . . . . . . . . . . . . . 20 (𝐵 ⊆ suc 𝑥 → (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦}))
14 disjsn 4670 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐵 ∩ {𝑦}) = ∅ ↔ ¬ 𝑦𝐵)
15 disj3 4408 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐵 ∩ {𝑦}) = ∅ ↔ 𝐵 = (𝐵 ∖ {𝑦}))
1614, 15bitr3i 277 . . . . . . . . . . . . . . . . . . . . 21 𝑦𝐵𝐵 = (𝐵 ∖ {𝑦}))
17 sseq1 3961 . . . . . . . . . . . . . . . . . . . . 21 (𝐵 = (𝐵 ∖ {𝑦}) → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1816, 17sylbi 217 . . . . . . . . . . . . . . . . . . . 20 𝑦𝐵 → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1913, 18imbitrrid 246 . . . . . . . . . . . . . . . . . . 19 𝑦𝐵 → (𝐵 ⊆ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
2012, 19syl5 34 . . . . . . . . . . . . . . . . . 18 𝑦𝐵 → (𝐵 ⊊ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
21 peano2 7842 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ ω → suc 𝑥 ∈ ω)
22 nnfi 9104 . . . . . . . . . . . . . . . . . . 19 (suc 𝑥 ∈ ω → suc 𝑥 ∈ Fin)
23 diffi 9111 . . . . . . . . . . . . . . . . . . 19 (suc 𝑥 ∈ Fin → (suc 𝑥 ∖ {𝑦}) ∈ Fin)
24 ssdomfi 9132 . . . . . . . . . . . . . . . . . . 19 ((suc 𝑥 ∖ {𝑦}) ∈ Fin → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2521, 22, 23, 244syl 19 . . . . . . . . . . . . . . . . . 18 (𝑥 ∈ ω → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2620, 25sylan9 507 . . . . . . . . . . . . . . . . 17 ((¬ 𝑦𝐵𝑥 ∈ ω) → (𝐵 ⊊ suc 𝑥𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
27263impia 1118 . . . . . . . . . . . . . . . 16 ((¬ 𝑦𝐵𝑥 ∈ ω ∧ 𝐵 ⊊ suc 𝑥) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
28273com23 1127 . . . . . . . . . . . . . . 15 ((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥𝑥 ∈ ω) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
29283expa 1119 . . . . . . . . . . . . . 14 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ 𝑥 ∈ ω) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
3029adantrr 718 . . . . . . . . . . . . 13 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
31 nnfi 9104 . . . . . . . . . . . . . . 15 (𝑥 ∈ ω → 𝑥 ∈ Fin)
3231ad2antrl 729 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝑥 ∈ Fin)
33 simpl 482 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
34 simpr 484 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥))
35 phplem1 9140 . . . . . . . . . . . . . . . . 17 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → 𝑥 ≈ (suc 𝑥 ∖ {𝑦}))
36 ensymfib 9120 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ Fin → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3731, 36syl 17 . . . . . . . . . . . . . . . . . 18 (𝑥 ∈ ω → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3837adantr 480 . . . . . . . . . . . . . . . . 17 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3935, 38mpbid 232 . . . . . . . . . . . . . . . 16 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≈ 𝑥)
40 endom 8928 . . . . . . . . . . . . . . . 16 ((suc 𝑥 ∖ {𝑦}) ≈ 𝑥 → (suc 𝑥 ∖ {𝑦}) ≼ 𝑥)
4139, 40syl 17 . . . . . . . . . . . . . . 15 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≼ 𝑥)
42 domtrfir 9130 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ 𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (suc 𝑥 ∖ {𝑦}) ≼ 𝑥) → 𝐵𝑥)
4341, 42syl3an3 1166 . . . . . . . . . . . . . 14 ((𝑥 ∈ Fin ∧ 𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4432, 33, 34, 43syl3anc 1374 . . . . . . . . . . . . 13 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4530, 44sylancom 589 . . . . . . . . . . . 12 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4645exp43 436 . . . . . . . . . . 11 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → (𝑦 ∈ suc 𝑥𝐵𝑥))))
4746com4r 94 . . . . . . . . . 10 (𝑦 ∈ suc 𝑥 → (¬ 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))))
4847imp 406 . . . . . . . . 9 ((𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
4948exlimiv 1932 . . . . . . . 8 (∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
5011, 49mpcom 38 . . . . . . 7 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))
51 simp1 1137 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → 𝑥 ∈ ω)
52 endom 8928 . . . . . . . . . . . . . . 15 (suc 𝑥𝐵 → suc 𝑥𝐵)
53 domtrfir 9130 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
5452, 53syl3an2 1165 . . . . . . . . . . . . . 14 ((𝑥 ∈ Fin ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
5531, 54syl3an1 1164 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
56 sssucid 6407 . . . . . . . . . . . . . . . . 17 𝑥 ⊆ suc 𝑥
57 ssdomfi 9132 . . . . . . . . . . . . . . . . 17 (suc 𝑥 ∈ Fin → (𝑥 ⊆ suc 𝑥𝑥 ≼ suc 𝑥))
5822, 56, 57mpisyl 21 . . . . . . . . . . . . . . . 16 (suc 𝑥 ∈ ω → 𝑥 ≼ suc 𝑥)
5921, 58syl 17 . . . . . . . . . . . . . . 15 (𝑥 ∈ ω → 𝑥 ≼ suc 𝑥)
6059adantr 480 . . . . . . . . . . . . . 14 ((𝑥 ∈ ω ∧ suc 𝑥𝑥) → 𝑥 ≼ suc 𝑥)
61 sbthfi 9135 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
6231, 61syl3an1 1164 . . . . . . . . . . . . . 14 ((𝑥 ∈ ω ∧ suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
6360, 62mpd3an3 1465 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝑥) → suc 𝑥𝑥)
6451, 55, 63syl2anc 585 . . . . . . . . . . . 12 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
65643com23 1127 . . . . . . . . . . 11 ((𝑥 ∈ ω ∧ 𝐵𝑥 ∧ suc 𝑥𝐵) → suc 𝑥𝑥)
66653expia 1122 . . . . . . . . . 10 ((𝑥 ∈ ω ∧ 𝐵𝑥) → (suc 𝑥𝐵 → suc 𝑥𝑥))
67 peano2b 7835 . . . . . . . . . . . . 13 (𝑥 ∈ ω ↔ suc 𝑥 ∈ ω)
68 nnord 7826 . . . . . . . . . . . . 13 (suc 𝑥 ∈ ω → Ord suc 𝑥)
6967, 68sylbi 217 . . . . . . . . . . . 12 (𝑥 ∈ ω → Ord suc 𝑥)
70 vex 3446 . . . . . . . . . . . . 13 𝑥 ∈ V
7170sucid 6409 . . . . . . . . . . . 12 𝑥 ∈ suc 𝑥
72 nordeq 6344 . . . . . . . . . . . 12 ((Ord suc 𝑥𝑥 ∈ suc 𝑥) → suc 𝑥𝑥)
7369, 71, 72sylancl 587 . . . . . . . . . . 11 (𝑥 ∈ ω → suc 𝑥𝑥)
74 nneneq 9142 . . . . . . . . . . . . . 14 ((suc 𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7567, 74sylanb 582 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7675anidms 566 . . . . . . . . . . . 12 (𝑥 ∈ ω → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7776necon3bbid 2970 . . . . . . . . . . 11 (𝑥 ∈ ω → (¬ suc 𝑥𝑥 ↔ suc 𝑥𝑥))
7873, 77mpbird 257 . . . . . . . . . 10 (𝑥 ∈ ω → ¬ suc 𝑥𝑥)
7966, 78nsyli 157 . . . . . . . . 9 ((𝑥 ∈ ω ∧ 𝐵𝑥) → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
8079expcom 413 . . . . . . . 8 (𝐵𝑥 → (𝑥 ∈ ω → (𝑥 ∈ ω → ¬ suc 𝑥𝐵)))
8180pm2.43d 53 . . . . . . 7 (𝐵𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
8250, 81syli 39 . . . . . 6 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
8382com12 32 . . . . 5 (𝑥 ∈ ω → (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵))
84 psseq2 4045 . . . . . 6 (𝐴 = suc 𝑥 → (𝐵𝐴𝐵 ⊊ suc 𝑥))
85 breq1 5103 . . . . . . 7 (𝐴 = suc 𝑥 → (𝐴𝐵 ↔ suc 𝑥𝐵))
8685notbid 318 . . . . . 6 (𝐴 = suc 𝑥 → (¬ 𝐴𝐵 ↔ ¬ suc 𝑥𝐵))
8784, 86imbi12d 344 . . . . 5 (𝐴 = suc 𝑥 → ((𝐵𝐴 → ¬ 𝐴𝐵) ↔ (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵)))
8883, 87syl5ibrcom 247 . . . 4 (𝑥 ∈ ω → (𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵)))
8988rexlimiv 3132 . . 3 (∃𝑥 ∈ ω 𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵))
9010, 89syl 17 . 2 ((𝐴 ∈ ω ∧ 𝐵𝐴) → (𝐵𝐴 → ¬ 𝐴𝐵))
9190syldbl2 842 1 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ¬ 𝐴𝐵)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395  w3a 1087   = wceq 1542  wex 1781  wcel 2114  wne 2933  wrex 3062  cdif 3900  cin 3902  wss 3903  wpss 3904  c0 4287  {csn 4582   class class class wbr 5100  Ord word 6324  suc csuc 6327  ωcom 7818  cen 8892  cdom 8893  Fincfn 8895
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1969  ax-7 2010  ax-8 2116  ax-9 2124  ax-10 2147  ax-11 2163  ax-12 2185  ax-ext 2709  ax-sep 5243  ax-nul 5253  ax-pr 5379  ax-un 7690
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3or 1088  df-3an 1089  df-tru 1545  df-fal 1555  df-ex 1782  df-nf 1786  df-sb 2069  df-mo 2540  df-eu 2570  df-clab 2716  df-cleq 2729  df-clel 2812  df-nfc 2886  df-ne 2934  df-ral 3053  df-rex 3063  df-reu 3353  df-rab 3402  df-v 3444  df-sbc 3743  df-csb 3852  df-dif 3906  df-un 3908  df-in 3910  df-ss 3920  df-pss 3923  df-nul 4288  df-if 4482  df-pw 4558  df-sn 4583  df-pr 4585  df-op 4589  df-uni 4866  df-br 5101  df-opab 5163  df-mpt 5182  df-tr 5208  df-id 5527  df-eprel 5532  df-po 5540  df-so 5541  df-fr 5585  df-we 5587  df-xp 5638  df-rel 5639  df-cnv 5640  df-co 5641  df-dm 5642  df-rn 5643  df-res 5644  df-ima 5645  df-ord 6328  df-on 6329  df-lim 6330  df-suc 6331  df-iota 6456  df-fun 6502  df-fn 6503  df-f 6504  df-f1 6505  df-fo 6506  df-f1o 6507  df-fv 6508  df-om 7819  df-1o 8407  df-en 8896  df-dom 8897  df-fin 8899
This theorem is referenced by:  php2  9144  omssrncard  43900  rr-phpd  44569
  Copyright terms: Public domain W3C validator