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

Theorem php 8703
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 lemmas phplem1 8698 through phplem4 8701, nneneq 8702, and this final piece of the proof. (Contributed by NM, 29-May-1998.)
Assertion
Ref Expression
php ((𝐴 ∈ ω ∧ 𝐵𝐴) → ¬ 𝐴𝐵)

Proof of Theorem php
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 0ss 4352 . . . . . . . 8 ∅ ⊆ 𝐵
2 sspsstr 4084 . . . . . . . 8 ((∅ ⊆ 𝐵𝐵𝐴) → ∅ ⊊ 𝐴)
31, 2mpan 688 . . . . . . 7 (𝐵𝐴 → ∅ ⊊ 𝐴)
4 0pss 4398 . . . . . . . 8 (∅ ⊊ 𝐴𝐴 ≠ ∅)
5 df-ne 3019 . . . . . . . 8 (𝐴 ≠ ∅ ↔ ¬ 𝐴 = ∅)
64, 5bitri 277 . . . . . . 7 (∅ ⊊ 𝐴 ↔ ¬ 𝐴 = ∅)
73, 6sylib 220 . . . . . 6 (𝐵𝐴 → ¬ 𝐴 = ∅)
8 nn0suc 7608 . . . . . . 7 (𝐴 ∈ ω → (𝐴 = ∅ ∨ ∃𝑥 ∈ ω 𝐴 = suc 𝑥))
98orcanai 999 . . . . . 6 ((𝐴 ∈ ω ∧ ¬ 𝐴 = ∅) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
107, 9sylan2 594 . . . . 5 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
11 pssnel 4422 . . . . . . . . . 10 (𝐵 ⊊ suc 𝑥 → ∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵))
12 pssss 4074 . . . . . . . . . . . . . . . . 17 (𝐵 ⊊ suc 𝑥𝐵 ⊆ suc 𝑥)
13 ssdif 4118 . . . . . . . . . . . . . . . . . 18 (𝐵 ⊆ suc 𝑥 → (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦}))
14 disjsn 4649 . . . . . . . . . . . . . . . . . . . 20 ((𝐵 ∩ {𝑦}) = ∅ ↔ ¬ 𝑦𝐵)
15 disj3 4405 . . . . . . . . . . . . . . . . . . . 20 ((𝐵 ∩ {𝑦}) = ∅ ↔ 𝐵 = (𝐵 ∖ {𝑦}))
1614, 15bitr3i 279 . . . . . . . . . . . . . . . . . . 19 𝑦𝐵𝐵 = (𝐵 ∖ {𝑦}))
17 sseq1 3994 . . . . . . . . . . . . . . . . . . 19 (𝐵 = (𝐵 ∖ {𝑦}) → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1816, 17sylbi 219 . . . . . . . . . . . . . . . . . 18 𝑦𝐵 → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1913, 18syl5ibr 248 . . . . . . . . . . . . . . . . 17 𝑦𝐵 → (𝐵 ⊆ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
20 vex 3499 . . . . . . . . . . . . . . . . . . . 20 𝑥 ∈ V
2120sucex 7528 . . . . . . . . . . . . . . . . . . 19 suc 𝑥 ∈ V
2221difexi 5234 . . . . . . . . . . . . . . . . . 18 (suc 𝑥 ∖ {𝑦}) ∈ V
23 ssdomg 8557 . . . . . . . . . . . . . . . . . 18 ((suc 𝑥 ∖ {𝑦}) ∈ V → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2422, 23ax-mp 5 . . . . . . . . . . . . . . . . 17 (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
2512, 19, 24syl56 36 . . . . . . . . . . . . . . . 16 𝑦𝐵 → (𝐵 ⊊ suc 𝑥𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2625imp 409 . . . . . . . . . . . . . . 15 ((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
27 vex 3499 . . . . . . . . . . . . . . . . 17 𝑦 ∈ V
2820, 27phplem3 8700 . . . . . . . . . . . . . . . 16 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → 𝑥 ≈ (suc 𝑥 ∖ {𝑦}))
2928ensymd 8562 . . . . . . . . . . . . . . 15 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≈ 𝑥)
30 domentr 8570 . . . . . . . . . . . . . . 15 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥) → 𝐵𝑥)
3126, 29, 30syl2an 597 . . . . . . . . . . . . . 14 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
3231exp43 439 . . . . . . . . . . . . 13 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → (𝑦 ∈ suc 𝑥𝐵𝑥))))
3332com4r 94 . . . . . . . . . . . 12 (𝑦 ∈ suc 𝑥 → (¬ 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))))
3433imp 409 . . . . . . . . . . 11 ((𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
3534exlimiv 1931 . . . . . . . . . 10 (∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
3611, 35mpcom 38 . . . . . . . . 9 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))
37 endomtr 8569 . . . . . . . . . . . 12 ((suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
38 sssucid 6270 . . . . . . . . . . . . 13 𝑥 ⊆ suc 𝑥
39 ssdomg 8557 . . . . . . . . . . . . 13 (suc 𝑥 ∈ V → (𝑥 ⊆ suc 𝑥𝑥 ≼ suc 𝑥))
4021, 38, 39mp2 9 . . . . . . . . . . . 12 𝑥 ≼ suc 𝑥
41 sbth 8639 . . . . . . . . . . . 12 ((suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
4237, 40, 41sylancl 588 . . . . . . . . . . 11 ((suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
4342expcom 416 . . . . . . . . . 10 (𝐵𝑥 → (suc 𝑥𝐵 → suc 𝑥𝑥))
44 peano2b 7598 . . . . . . . . . . . . 13 (𝑥 ∈ ω ↔ suc 𝑥 ∈ ω)
45 nnord 7590 . . . . . . . . . . . . 13 (suc 𝑥 ∈ ω → Ord suc 𝑥)
4644, 45sylbi 219 . . . . . . . . . . . 12 (𝑥 ∈ ω → Ord suc 𝑥)
4720sucid 6272 . . . . . . . . . . . 12 𝑥 ∈ suc 𝑥
48 nordeq 6212 . . . . . . . . . . . 12 ((Ord suc 𝑥𝑥 ∈ suc 𝑥) → suc 𝑥𝑥)
4946, 47, 48sylancl 588 . . . . . . . . . . 11 (𝑥 ∈ ω → suc 𝑥𝑥)
50 nneneq 8702 . . . . . . . . . . . . . 14 ((suc 𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
5144, 50sylanb 583 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
5251anidms 569 . . . . . . . . . . . 12 (𝑥 ∈ ω → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
5352necon3bbid 3055 . . . . . . . . . . 11 (𝑥 ∈ ω → (¬ suc 𝑥𝑥 ↔ suc 𝑥𝑥))
5449, 53mpbird 259 . . . . . . . . . 10 (𝑥 ∈ ω → ¬ suc 𝑥𝑥)
5543, 54nsyli 160 . . . . . . . . 9 (𝐵𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
5636, 55syli 39 . . . . . . . 8 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
5756com12 32 . . . . . . 7 (𝑥 ∈ ω → (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵))
58 psseq2 4067 . . . . . . . 8 (𝐴 = suc 𝑥 → (𝐵𝐴𝐵 ⊊ suc 𝑥))
59 breq1 5071 . . . . . . . . 9 (𝐴 = suc 𝑥 → (𝐴𝐵 ↔ suc 𝑥𝐵))
6059notbid 320 . . . . . . . 8 (𝐴 = suc 𝑥 → (¬ 𝐴𝐵 ↔ ¬ suc 𝑥𝐵))
6158, 60imbi12d 347 . . . . . . 7 (𝐴 = suc 𝑥 → ((𝐵𝐴 → ¬ 𝐴𝐵) ↔ (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵)))
6257, 61syl5ibrcom 249 . . . . . 6 (𝑥 ∈ ω → (𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵)))
6362rexlimiv 3282 . . . . 5 (∃𝑥 ∈ ω 𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵))
6410, 63syl 17 . . . 4 ((𝐴 ∈ ω ∧ 𝐵𝐴) → (𝐵𝐴 → ¬ 𝐴𝐵))
6564ex 415 . . 3 (𝐴 ∈ ω → (𝐵𝐴 → (𝐵𝐴 → ¬ 𝐴𝐵)))
6665pm2.43d 53 . 2 (𝐴 ∈ ω → (𝐵𝐴 → ¬ 𝐴𝐵))
6766imp 409 1 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ¬ 𝐴𝐵)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 208  wa 398   = wceq 1537  wex 1780  wcel 2114  wne 3018  wrex 3141  Vcvv 3496  cdif 3935  cin 3937  wss 3938  wpss 3939  c0 4293  {csn 4569   class class class wbr 5068  Ord word 6192  suc csuc 6195  ωcom 7582  cen 8508  cdom 8509
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 1970  ax-7 2015  ax-8 2116  ax-9 2124  ax-10 2145  ax-11 2161  ax-12 2177  ax-ext 2795  ax-sep 5205  ax-nul 5212  ax-pow 5268  ax-pr 5332  ax-un 7463
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1084  df-3an 1085  df-tru 1540  df-ex 1781  df-nf 1785  df-sb 2070  df-mo 2622  df-eu 2654  df-clab 2802  df-cleq 2816  df-clel 2895  df-nfc 2965  df-ne 3019  df-ral 3145  df-rex 3146  df-rab 3149  df-v 3498  df-sbc 3775  df-dif 3941  df-un 3943  df-in 3945  df-ss 3954  df-pss 3956  df-nul 4294  df-if 4470  df-pw 4543  df-sn 4570  df-pr 4572  df-tp 4574  df-op 4576  df-uni 4841  df-br 5069  df-opab 5131  df-tr 5175  df-id 5462  df-eprel 5467  df-po 5476  df-so 5477  df-fr 5516  df-we 5518  df-xp 5563  df-rel 5564  df-cnv 5565  df-co 5566  df-dm 5567  df-rn 5568  df-res 5569  df-ima 5570  df-ord 6196  df-on 6197  df-lim 6198  df-suc 6199  df-iota 6316  df-fun 6359  df-fn 6360  df-f 6361  df-f1 6362  df-fo 6363  df-f1o 6364  df-fv 6365  df-om 7583  df-er 8291  df-en 8512  df-dom 8513
This theorem is referenced by:  php2  8704  php3  8705  rr-phpd  40569
  Copyright terms: Public domain W3C validator