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

Theorem php 9122
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 9119, phplem2 9120, nneneq 9121, and this final piece of the proof. (Contributed by NM, 29-May-1998.) Avoid ax-pow 5305. (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 4349 . . . . . 6 ∅ ⊆ 𝐵
2 sspsstr 4057 . . . . . 6 ((∅ ⊆ 𝐵𝐵𝐴) → ∅ ⊊ 𝐴)
31, 2mpan 690 . . . . 5 (𝐵𝐴 → ∅ ⊊ 𝐴)
4 0pss 4396 . . . . . 6 (∅ ⊊ 𝐴𝐴 ≠ ∅)
5 df-ne 2929 . . . . . 6 (𝐴 ≠ ∅ ↔ ¬ 𝐴 = ∅)
64, 5bitri 275 . . . . 5 (∅ ⊊ 𝐴 ↔ ¬ 𝐴 = ∅)
73, 6sylib 218 . . . 4 (𝐵𝐴 → ¬ 𝐴 = ∅)
8 nn0suc 7830 . . . . 5 (𝐴 ∈ ω → (𝐴 = ∅ ∨ ∃𝑥 ∈ ω 𝐴 = suc 𝑥))
98orcanai 1004 . . . 4 ((𝐴 ∈ ω ∧ ¬ 𝐴 = ∅) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
107, 9sylan2 593 . . 3 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
11 pssnel 4420 . . . . . . . 8 (𝐵 ⊊ suc 𝑥 → ∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵))
12 pssss 4047 . . . . . . . . . . . . . . . . . . 19 (𝐵 ⊊ suc 𝑥𝐵 ⊆ suc 𝑥)
13 ssdif 4093 . . . . . . . . . . . . . . . . . . . 20 (𝐵 ⊆ suc 𝑥 → (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦}))
14 disjsn 4663 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐵 ∩ {𝑦}) = ∅ ↔ ¬ 𝑦𝐵)
15 disj3 4403 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐵 ∩ {𝑦}) = ∅ ↔ 𝐵 = (𝐵 ∖ {𝑦}))
1614, 15bitr3i 277 . . . . . . . . . . . . . . . . . . . . 21 𝑦𝐵𝐵 = (𝐵 ∖ {𝑦}))
17 sseq1 3955 . . . . . . . . . . . . . . . . . . . . 21 (𝐵 = (𝐵 ∖ {𝑦}) → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1816, 17sylbi 217 . . . . . . . . . . . . . . . . . . . 20 𝑦𝐵 → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1913, 18imbitrrid 246 . . . . . . . . . . . . . . . . . . 19 𝑦𝐵 → (𝐵 ⊆ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
2012, 19syl5 34 . . . . . . . . . . . . . . . . . 18 𝑦𝐵 → (𝐵 ⊊ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
21 peano2 7826 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ ω → suc 𝑥 ∈ ω)
22 nnfi 9083 . . . . . . . . . . . . . . . . . . 19 (suc 𝑥 ∈ ω → suc 𝑥 ∈ Fin)
23 diffi 9090 . . . . . . . . . . . . . . . . . . 19 (suc 𝑥 ∈ Fin → (suc 𝑥 ∖ {𝑦}) ∈ Fin)
24 ssdomfi 9111 . . . . . . . . . . . . . . . . . . 19 ((suc 𝑥 ∖ {𝑦}) ∈ Fin → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2521, 22, 23, 244syl 19 . . . . . . . . . . . . . . . . . 18 (𝑥 ∈ ω → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2620, 25sylan9 507 . . . . . . . . . . . . . . . . 17 ((¬ 𝑦𝐵𝑥 ∈ ω) → (𝐵 ⊊ suc 𝑥𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
27263impia 1117 . . . . . . . . . . . . . . . 16 ((¬ 𝑦𝐵𝑥 ∈ ω ∧ 𝐵 ⊊ suc 𝑥) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
28273com23 1126 . . . . . . . . . . . . . . 15 ((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥𝑥 ∈ ω) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
29283expa 1118 . . . . . . . . . . . . . 14 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ 𝑥 ∈ ω) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
3029adantrr 717 . . . . . . . . . . . . 13 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
31 nnfi 9083 . . . . . . . . . . . . . . 15 (𝑥 ∈ ω → 𝑥 ∈ Fin)
3231ad2antrl 728 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝑥 ∈ Fin)
33 simpl 482 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
34 simpr 484 . . . . . . . . . . . . . 14 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥))
35 phplem1 9119 . . . . . . . . . . . . . . . . 17 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → 𝑥 ≈ (suc 𝑥 ∖ {𝑦}))
36 ensymfib 9099 . . . . . . . . . . . . . . . . . . 19 (𝑥 ∈ Fin → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3731, 36syl 17 . . . . . . . . . . . . . . . . . 18 (𝑥 ∈ ω → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3837adantr 480 . . . . . . . . . . . . . . . . 17 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (𝑥 ≈ (suc 𝑥 ∖ {𝑦}) ↔ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥))
3935, 38mpbid 232 . . . . . . . . . . . . . . . 16 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≈ 𝑥)
40 endom 8907 . . . . . . . . . . . . . . . 16 ((suc 𝑥 ∖ {𝑦}) ≈ 𝑥 → (suc 𝑥 ∖ {𝑦}) ≼ 𝑥)
4139, 40syl 17 . . . . . . . . . . . . . . 15 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≼ 𝑥)
42 domtrfir 9109 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ 𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (suc 𝑥 ∖ {𝑦}) ≼ 𝑥) → 𝐵𝑥)
4341, 42syl3an3 1165 . . . . . . . . . . . . . 14 ((𝑥 ∈ Fin ∧ 𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4432, 33, 34, 43syl3anc 1373 . . . . . . . . . . . . 13 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4530, 44sylancom 588 . . . . . . . . . . . 12 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
4645exp43 436 . . . . . . . . . . 11 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → (𝑦 ∈ suc 𝑥𝐵𝑥))))
4746com4r 94 . . . . . . . . . 10 (𝑦 ∈ suc 𝑥 → (¬ 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))))
4847imp 406 . . . . . . . . 9 ((𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
4948exlimiv 1931 . . . . . . . 8 (∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
5011, 49mpcom 38 . . . . . . 7 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))
51 simp1 1136 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → 𝑥 ∈ ω)
52 endom 8907 . . . . . . . . . . . . . . 15 (suc 𝑥𝐵 → suc 𝑥𝐵)
53 domtrfir 9109 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
5452, 53syl3an2 1164 . . . . . . . . . . . . . 14 ((𝑥 ∈ Fin ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
5531, 54syl3an1 1163 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
56 sssucid 6394 . . . . . . . . . . . . . . . . 17 𝑥 ⊆ suc 𝑥
57 ssdomfi 9111 . . . . . . . . . . . . . . . . 17 (suc 𝑥 ∈ Fin → (𝑥 ⊆ suc 𝑥𝑥 ≼ suc 𝑥))
5822, 56, 57mpisyl 21 . . . . . . . . . . . . . . . 16 (suc 𝑥 ∈ ω → 𝑥 ≼ suc 𝑥)
5921, 58syl 17 . . . . . . . . . . . . . . 15 (𝑥 ∈ ω → 𝑥 ≼ suc 𝑥)
6059adantr 480 . . . . . . . . . . . . . 14 ((𝑥 ∈ ω ∧ suc 𝑥𝑥) → 𝑥 ≼ suc 𝑥)
61 sbthfi 9114 . . . . . . . . . . . . . . 15 ((𝑥 ∈ Fin ∧ suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
6231, 61syl3an1 1163 . . . . . . . . . . . . . 14 ((𝑥 ∈ ω ∧ suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
6360, 62mpd3an3 1464 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ suc 𝑥𝑥) → suc 𝑥𝑥)
6451, 55, 63syl2anc 584 . . . . . . . . . . . 12 ((𝑥 ∈ ω ∧ suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
65643com23 1126 . . . . . . . . . . 11 ((𝑥 ∈ ω ∧ 𝐵𝑥 ∧ suc 𝑥𝐵) → suc 𝑥𝑥)
66653expia 1121 . . . . . . . . . 10 ((𝑥 ∈ ω ∧ 𝐵𝑥) → (suc 𝑥𝐵 → suc 𝑥𝑥))
67 peano2b 7819 . . . . . . . . . . . . 13 (𝑥 ∈ ω ↔ suc 𝑥 ∈ ω)
68 nnord 7810 . . . . . . . . . . . . 13 (suc 𝑥 ∈ ω → Ord suc 𝑥)
6967, 68sylbi 217 . . . . . . . . . . . 12 (𝑥 ∈ ω → Ord suc 𝑥)
70 vex 3440 . . . . . . . . . . . . 13 𝑥 ∈ V
7170sucid 6396 . . . . . . . . . . . 12 𝑥 ∈ suc 𝑥
72 nordeq 6331 . . . . . . . . . . . 12 ((Ord suc 𝑥𝑥 ∈ suc 𝑥) → suc 𝑥𝑥)
7369, 71, 72sylancl 586 . . . . . . . . . . 11 (𝑥 ∈ ω → suc 𝑥𝑥)
74 nneneq 9121 . . . . . . . . . . . . . 14 ((suc 𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7567, 74sylanb 581 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7675anidms 566 . . . . . . . . . . . 12 (𝑥 ∈ ω → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
7776necon3bbid 2965 . . . . . . . . . . 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 4040 . . . . . 6 (𝐴 = suc 𝑥 → (𝐵𝐴𝐵 ⊊ suc 𝑥))
85 breq1 5096 . . . . . . 7 (𝐴 = suc 𝑥 → (𝐴𝐵 ↔ suc 𝑥𝐵))
8685notbid 318 . . . . . 6 (𝐴 = suc 𝑥 → (¬ 𝐴𝐵 ↔ ¬ suc 𝑥𝐵))
8784, 86imbi12d 344 . . . . 5 (𝐴 = suc 𝑥 → ((𝐵𝐴 → ¬ 𝐴𝐵) ↔ (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵)))
8883, 87syl5ibrcom 247 . . . 4 (𝑥 ∈ ω → (𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵)))
8988rexlimiv 3126 . . 3 (∃𝑥 ∈ ω 𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵))
9010, 89syl 17 . 2 ((𝐴 ∈ ω ∧ 𝐵𝐴) → (𝐵𝐴 → ¬ 𝐴𝐵))
9190syldbl2 841 1 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ¬ 𝐴𝐵)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 206  wa 395  w3a 1086   = wceq 1541  wex 1780  wcel 2111  wne 2928  wrex 3056  cdif 3894  cin 3896  wss 3897  wpss 3898  c0 4282  {csn 4575   class class class wbr 5093  Ord word 6311  suc csuc 6314  ωcom 7802  cen 8872  cdom 8873  Fincfn 8875
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2113  ax-9 2121  ax-10 2144  ax-11 2160  ax-12 2180  ax-ext 2703  ax-sep 5236  ax-nul 5246  ax-pr 5372  ax-un 7674
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1544  df-fal 1554  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2535  df-eu 2564  df-clab 2710  df-cleq 2723  df-clel 2806  df-nfc 2881  df-ne 2929  df-ral 3048  df-rex 3057  df-reu 3347  df-rab 3396  df-v 3438  df-sbc 3737  df-csb 3846  df-dif 3900  df-un 3902  df-in 3904  df-ss 3914  df-pss 3917  df-nul 4283  df-if 4475  df-pw 4551  df-sn 4576  df-pr 4578  df-op 4582  df-uni 4859  df-br 5094  df-opab 5156  df-mpt 5175  df-tr 5201  df-id 5514  df-eprel 5519  df-po 5527  df-so 5528  df-fr 5572  df-we 5574  df-xp 5625  df-rel 5626  df-cnv 5627  df-co 5628  df-dm 5629  df-rn 5630  df-res 5631  df-ima 5632  df-ord 6315  df-on 6316  df-lim 6317  df-suc 6318  df-iota 6443  df-fun 6489  df-fn 6490  df-f 6491  df-f1 6492  df-fo 6493  df-f1o 6494  df-fv 6495  df-om 7803  df-1o 8391  df-en 8876  df-dom 8877  df-fin 8879
This theorem is referenced by:  php2  9123  omssrncard  43638  rr-phpd  44307
  Copyright terms: Public domain W3C validator