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

Theorem php 9206
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 9203, phplem2 9204, nneneq 9205, and this final piece of the proof. (Contributed by NM, 29-May-1998.) Avoid ax-pow 5362. (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 4395 . . . . . 6 ∅ ⊆ 𝐵
2 sspsstr 4104 . . . . . 6 ((∅ ⊆ 𝐵𝐵𝐴) → ∅ ⊊ 𝐴)
31, 2mpan 689 . . . . 5 (𝐵𝐴 → ∅ ⊊ 𝐴)
4 0pss 4443 . . . . . 6 (∅ ⊊ 𝐴𝐴 ≠ ∅)
5 df-ne 2942 . . . . . 6 (𝐴 ≠ ∅ ↔ ¬ 𝐴 = ∅)
64, 5bitri 275 . . . . 5 (∅ ⊊ 𝐴 ↔ ¬ 𝐴 = ∅)
73, 6sylib 217 . . . 4 (𝐵𝐴 → ¬ 𝐴 = ∅)
8 nn0suc 7881 . . . . 5 (𝐴 ∈ ω → (𝐴 = ∅ ∨ ∃𝑥 ∈ ω 𝐴 = suc 𝑥))
98orcanai 1002 . . . 4 ((𝐴 ∈ ω ∧ ¬ 𝐴 = ∅) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
107, 9sylan2 594 . . 3 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
11 pssnel 4469 . . . . . . . 8 (𝐵 ⊊ suc 𝑥 → ∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵))
12 pssss 4094 . . . . . . . . . . . . . . . . . . 19 (𝐵 ⊊ suc 𝑥𝐵 ⊆ suc 𝑥)
13 ssdif 4138 . . . . . . . . . . . . . . . . . . . 20 (𝐵 ⊆ suc 𝑥 → (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦}))
14 disjsn 4714 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐵 ∩ {𝑦}) = ∅ ↔ ¬ 𝑦𝐵)
15 disj3 4452 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐵 ∩ {𝑦}) = ∅ ↔ 𝐵 = (𝐵 ∖ {𝑦}))
1614, 15bitr3i 277 . . . . . . . . . . . . . . . . . . . . 21 𝑦𝐵𝐵 = (𝐵 ∖ {𝑦}))
17 sseq1 4006 . . . . . . . . . . . . . . . . . . . . 21 (𝐵 = (𝐵 ∖ {𝑦}) → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1816, 17sylbi 216 . . . . . . . . . . . . . . . . . . . 20 𝑦𝐵 → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1913, 18imbitrrid 245 . . . . . . . . . . . . . . . . . . 19 𝑦𝐵 → (𝐵 ⊆ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
2012, 19syl5 34 . . . . . . . . . . . . . . . . . 18 𝑦𝐵 → (𝐵 ⊊ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
21 peano2 7876 . . . . . . . . . . . . . . . . . . . 20 (𝑥 ∈ ω → suc 𝑥 ∈ ω)
22 nnfi 9163 . . . . . . . . . . . . . . . . . . . 20 (suc 𝑥 ∈ ω → suc 𝑥 ∈ Fin)
23 diffi 9175 . . . . . . . . . . . . . . . . . . . 20 (suc 𝑥 ∈ Fin → (suc 𝑥 ∖ {𝑦}) ∈ Fin)
2421, 22, 233syl 18 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ ω → (suc 𝑥 ∖ {𝑦}) ∈ Fin)
25 ssdomfi 9195 . . . . . . . . . . . . . . . . . . 19 ((suc 𝑥 ∖ {𝑦}) ∈ Fin → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2624, 25syl 17 . . . . . . . . . . . . . . . . . 18 (𝑥 ∈ ω → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2720, 26sylan9 509 . . . . . . . . . . . . . . . . 17 ((¬ 𝑦𝐵𝑥 ∈ ω) → (𝐵 ⊊ suc 𝑥𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
28273impia 1118 . . . . . . . . . . . . . . . 16 ((¬ 𝑦𝐵𝑥 ∈ ω ∧ 𝐵 ⊊ suc 𝑥) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
29283com23 1127 . . . . . . . . . . . . . . 15 ((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥𝑥 ∈ ω) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
30293expa 1119 . . . . . . . . . . . . . 14 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ 𝑥 ∈ ω) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
3130adantrr 716 . . . . . . . . . . . . 13 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
32 nnfi 9163 . . . . . . . . . . . . . . 15 (𝑥 ∈ ω → 𝑥 ∈ Fin)
3332ad2antrl 727 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝑥 ∈ Fin)
34 simpl 484 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
35 simpr 486 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥))
36 phplem1 9203 . . . . . . . . . . . . . . . . 17 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → 𝑥 ≈ (suc 𝑥 ∖ {𝑦}))
37 ensymfib 9183 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ Fin → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3832, 37syl 17 . . . . . . . . . . . . . . . . . 18 (𝑥 ∈ ω → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3938adantr 482 . . . . . . . . . . . . . . . . 17 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
4036, 39mpbid 231 . . . . . . . . . . . . . . . 16 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≈ 𝑥)
41 endom 8971 . . . . . . . . . . . . . . . 16 ((suc 𝑥 ∖ {𝑦}) ≈ 𝑥 → (suc 𝑥 ∖ {𝑦}) ≼ 𝑥)
4240, 41syl 17 . . . . . . . . . . . . . . 15 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≼ 𝑥)
43 domtrfir 9193 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ 𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (suc 𝑥 ∖ {𝑦}) ≼ 𝑥) → 𝐵𝑥)
4442, 43syl3an3 1166 . . . . . . . . . . . . . 14 ((𝑥 ∈ Fin ∧ 𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4533, 34, 35, 44syl3anc 1372 . . . . . . . . . . . . 13 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4631, 45sylancom 589 . . . . . . . . . . . 12 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4746exp43 438 . . . . . . . . . . 11 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → (𝑦 ∈ suc 𝑥𝐵𝑥))))
4847com4r 94 . . . . . . . . . 10 (𝑦 ∈ suc 𝑥 → (¬ 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))))
4948imp 408 . . . . . . . . 9 ((𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
5049exlimiv 1934 . . . . . . . 8 (∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
5111, 50mpcom 38 . . . . . . 7 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))
52 simp1 1137 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → 𝑥 ∈ ω)
53 endom 8971 . . . . . . . . . . . . . . 15 (suc 𝑥𝐵 → suc 𝑥𝐵)
54 domtrfir 9193 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
5553, 54syl3an2 1165 . . . . . . . . . . . . . 14 ((𝑥 ∈ Fin ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
5632, 55syl3an1 1164 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
57 sssucid 6441 . . . . . . . . . . . . . . . . 17 𝑥 ⊆ suc 𝑥
58 ssdomfi 9195 . . . . . . . . . . . . . . . . 17 (suc 𝑥 ∈ Fin → (𝑥 ⊆ suc 𝑥𝑥 ≼ suc 𝑥))
5922, 57, 58mpisyl 21 . . . . . . . . . . . . . . . 16 (suc 𝑥 ∈ ω → 𝑥 ≼ suc 𝑥)
6021, 59syl 17 . . . . . . . . . . . . . . 15 (𝑥 ∈ ω → 𝑥 ≼ suc 𝑥)
6160adantr 482 . . . . . . . . . . . . . 14 ((𝑥 ∈ ω ∧ suc 𝑥𝑥) → 𝑥 ≼ suc 𝑥)
62 sbthfi 9198 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
6332, 62syl3an1 1164 . . . . . . . . . . . . . 14 ((𝑥 ∈ ω ∧ suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
6461, 63mpd3an3 1463 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝑥) → suc 𝑥𝑥)
6552, 56, 64syl2anc 585 . . . . . . . . . . . 12 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
66653com23 1127 . . . . . . . . . . 11 ((𝑥 ∈ ω ∧ 𝐵𝑥 ∧ suc 𝑥𝐵) → suc 𝑥𝑥)
67663expia 1122 . . . . . . . . . 10 ((𝑥 ∈ ω ∧ 𝐵𝑥) → (suc 𝑥𝐵 → suc 𝑥𝑥))
68 peano2b 7867 . . . . . . . . . . . . 13 (𝑥 ∈ ω ↔ suc 𝑥 ∈ ω)
69 nnord 7858 . . . . . . . . . . . . 13 (suc 𝑥 ∈ ω → Ord suc 𝑥)
7068, 69sylbi 216 . . . . . . . . . . . 12 (𝑥 ∈ ω → Ord suc 𝑥)
71 vex 3479 . . . . . . . . . . . . 13 𝑥 ∈ V
7271sucid 6443 . . . . . . . . . . . 12 𝑥 ∈ suc 𝑥
73 nordeq 6380 . . . . . . . . . . . 12 ((Ord suc 𝑥𝑥 ∈ suc 𝑥) → suc 𝑥𝑥)
7470, 72, 73sylancl 587 . . . . . . . . . . 11 (𝑥 ∈ ω → suc 𝑥𝑥)
75 nneneq 9205 . . . . . . . . . . . . . 14 ((suc 𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7668, 75sylanb 582 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7776anidms 568 . . . . . . . . . . . 12 (𝑥 ∈ ω → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7877necon3bbid 2979 . . . . . . . . . . 11 (𝑥 ∈ ω → (¬ suc 𝑥𝑥 ↔ suc 𝑥𝑥))
7974, 78mpbird 257 . . . . . . . . . 10 (𝑥 ∈ ω → ¬ suc 𝑥𝑥)
8067, 79nsyli 157 . . . . . . . . 9 ((𝑥 ∈ ω ∧ 𝐵𝑥) → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
8180expcom 415 . . . . . . . 8 (𝐵𝑥 → (𝑥 ∈ ω → (𝑥 ∈ ω → ¬ suc 𝑥𝐵)))
8281pm2.43d 53 . . . . . . 7 (𝐵𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
8351, 82syli 39 . . . . . 6 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
8483com12 32 . . . . 5 (𝑥 ∈ ω → (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵))
85 psseq2 4087 . . . . . 6 (𝐴 = suc 𝑥 → (𝐵𝐴𝐵 ⊊ suc 𝑥))
86 breq1 5150 . . . . . . 7 (𝐴 = suc 𝑥 → (𝐴𝐵 ↔ suc 𝑥𝐵))
8786notbid 318 . . . . . 6 (𝐴 = suc 𝑥 → (¬ 𝐴𝐵 ↔ ¬ suc 𝑥𝐵))
8885, 87imbi12d 345 . . . . 5 (𝐴 = suc 𝑥 → ((𝐵𝐴 → ¬ 𝐴𝐵) ↔ (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵)))
8984, 88syl5ibrcom 246 . . . 4 (𝑥 ∈ ω → (𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵)))
9089rexlimiv 3149 . . 3 (∃𝑥 ∈ ω 𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵))
9110, 90syl 17 . 2 ((𝐴 ∈ ω ∧ 𝐵𝐴) → (𝐵𝐴 → ¬ 𝐴𝐵))
9291syldbl2 840 1 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ¬ 𝐴𝐵)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 205  wa 397  w3a 1088   = wceq 1542  wex 1782  wcel 2107  wne 2941  wrex 3071  cdif 3944  cin 3946  wss 3947  wpss 3948  c0 4321  {csn 4627   class class class wbr 5147  Ord word 6360  suc csuc 6363  ωcom 7850  cen 8932  cdom 8933  Fincfn 8935
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1914  ax-6 1972  ax-7 2012  ax-8 2109  ax-9 2117  ax-10 2138  ax-11 2155  ax-12 2172  ax-ext 2704  ax-sep 5298  ax-nul 5305  ax-pr 5426  ax-un 7720
This theorem depends on definitions:  df-bi 206  df-an 398  df-or 847  df-3or 1089  df-3an 1090  df-tru 1545  df-fal 1555  df-ex 1783  df-nf 1787  df-sb 2069  df-mo 2535  df-eu 2564  df-clab 2711  df-cleq 2725  df-clel 2811  df-nfc 2886  df-ne 2942  df-ral 3063  df-rex 3072  df-reu 3378  df-rab 3434  df-v 3477  df-sbc 3777  df-csb 3893  df-dif 3950  df-un 3952  df-in 3954  df-ss 3964  df-pss 3966  df-nul 4322  df-if 4528  df-pw 4603  df-sn 4628  df-pr 4630  df-op 4634  df-uni 4908  df-br 5148  df-opab 5210  df-mpt 5231  df-tr 5265  df-id 5573  df-eprel 5579  df-po 5587  df-so 5588  df-fr 5630  df-we 5632  df-xp 5681  df-rel 5682  df-cnv 5683  df-co 5684  df-dm 5685  df-rn 5686  df-res 5687  df-ima 5688  df-ord 6364  df-on 6365  df-lim 6366  df-suc 6367  df-iota 6492  df-fun 6542  df-fn 6543  df-f 6544  df-f1 6545  df-fo 6546  df-f1o 6547  df-fv 6548  df-om 7851  df-1o 8461  df-en 8936  df-dom 8937  df-fin 8939
This theorem is referenced by:  php2  9207  php2OLD  9219  php3OLD  9220  omssrncard  42224  rr-phpd  42895
  Copyright terms: Public domain W3C validator