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

Theorem php 7904
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 7899 through phplem4 7902, nneneq 7903, 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 3827 . . . . . . . 8 ∅ ⊆ 𝐵
2 sspsstr 3578 . . . . . . . 8 ((∅ ⊆ 𝐵𝐵𝐴) → ∅ ⊊ 𝐴)
31, 2mpan 701 . . . . . . 7 (𝐵𝐴 → ∅ ⊊ 𝐴)
4 0pss 3868 . . . . . . . 8 (∅ ⊊ 𝐴𝐴 ≠ ∅)
5 df-ne 2686 . . . . . . . 8 (𝐴 ≠ ∅ ↔ ¬ 𝐴 = ∅)
64, 5bitri 262 . . . . . . 7 (∅ ⊊ 𝐴 ↔ ¬ 𝐴 = ∅)
73, 6sylib 206 . . . . . 6 (𝐵𝐴 → ¬ 𝐴 = ∅)
8 nn0suc 6857 . . . . . . 7 (𝐴 ∈ ω → (𝐴 = ∅ ∨ ∃𝑥 ∈ ω 𝐴 = suc 𝑥))
98orcanai 949 . . . . . 6 ((𝐴 ∈ ω ∧ ¬ 𝐴 = ∅) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
107, 9sylan2 489 . . . . 5 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ∃𝑥 ∈ ω 𝐴 = suc 𝑥)
11 pssnel 3894 . . . . . . . . . 10 (𝐵 ⊊ suc 𝑥 → ∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵))
12 pssss 3568 . . . . . . . . . . . . . . . . 17 (𝐵 ⊊ suc 𝑥𝐵 ⊆ suc 𝑥)
13 ssdif 3611 . . . . . . . . . . . . . . . . . 18 (𝐵 ⊆ suc 𝑥 → (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦}))
14 disjsn 4095 . . . . . . . . . . . . . . . . . . . 20 ((𝐵 ∩ {𝑦}) = ∅ ↔ ¬ 𝑦𝐵)
15 disj3 3876 . . . . . . . . . . . . . . . . . . . 20 ((𝐵 ∩ {𝑦}) = ∅ ↔ 𝐵 = (𝐵 ∖ {𝑦}))
1614, 15bitr3i 264 . . . . . . . . . . . . . . . . . . 19 𝑦𝐵𝐵 = (𝐵 ∖ {𝑦}))
17 sseq1 3493 . . . . . . . . . . . . . . . . . . 19 (𝐵 = (𝐵 ∖ {𝑦}) → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1816, 17sylbi 205 . . . . . . . . . . . . . . . . . 18 𝑦𝐵 → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) ↔ (𝐵 ∖ {𝑦}) ⊆ (suc 𝑥 ∖ {𝑦})))
1913, 18syl5ibr 234 . . . . . . . . . . . . . . . . 17 𝑦𝐵 → (𝐵 ⊆ suc 𝑥𝐵 ⊆ (suc 𝑥 ∖ {𝑦})))
20 vex 3080 . . . . . . . . . . . . . . . . . . . 20 𝑥 ∈ V
2120sucex 6778 . . . . . . . . . . . . . . . . . . 19 suc 𝑥 ∈ V
22 difss 3603 . . . . . . . . . . . . . . . . . . 19 (suc 𝑥 ∖ {𝑦}) ⊆ suc 𝑥
2321, 22ssexi 4630 . . . . . . . . . . . . . . . . . 18 (suc 𝑥 ∖ {𝑦}) ∈ V
24 ssdomg 7762 . . . . . . . . . . . . . . . . . 18 ((suc 𝑥 ∖ {𝑦}) ∈ V → (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2523, 24ax-mp 5 . . . . . . . . . . . . . . . . 17 (𝐵 ⊆ (suc 𝑥 ∖ {𝑦}) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
2612, 19, 25syl56 35 . . . . . . . . . . . . . . . 16 𝑦𝐵 → (𝐵 ⊊ suc 𝑥𝐵 ≼ (suc 𝑥 ∖ {𝑦})))
2726imp 443 . . . . . . . . . . . . . . 15 ((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) → 𝐵 ≼ (suc 𝑥 ∖ {𝑦}))
28 vex 3080 . . . . . . . . . . . . . . . . 17 𝑦 ∈ V
2920, 28phplem3 7901 . . . . . . . . . . . . . . . 16 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → 𝑥 ≈ (suc 𝑥 ∖ {𝑦}))
3029ensymd 7768 . . . . . . . . . . . . . . 15 ((𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥) → (suc 𝑥 ∖ {𝑦}) ≈ 𝑥)
31 domentr 7776 . . . . . . . . . . . . . . 15 ((𝐵 ≼ (suc 𝑥 ∖ {𝑦}) ∧ (suc 𝑥 ∖ {𝑦}) ≈ 𝑥) → 𝐵𝑥)
3227, 30, 31syl2an 492 . . . . . . . . . . . . . 14 (((¬ 𝑦𝐵𝐵 ⊊ suc 𝑥) ∧ (𝑥 ∈ ω ∧ 𝑦 ∈ suc 𝑥)) → 𝐵𝑥)
3332exp43 637 . . . . . . . . . . . . 13 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → (𝑦 ∈ suc 𝑥𝐵𝑥))))
3433com4r 91 . . . . . . . . . . . 12 (𝑦 ∈ suc 𝑥 → (¬ 𝑦𝐵 → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))))
3534imp 443 . . . . . . . . . . 11 ((𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
3635exlimiv 1811 . . . . . . . . . 10 (∃𝑦(𝑦 ∈ suc 𝑥 ∧ ¬ 𝑦𝐵) → (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥)))
3711, 36mpcom 37 . . . . . . . . 9 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → 𝐵𝑥))
38 endomtr 7775 . . . . . . . . . . . 12 ((suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
39 sssucid 5607 . . . . . . . . . . . . 13 𝑥 ⊆ suc 𝑥
40 ssdomg 7762 . . . . . . . . . . . . 13 (suc 𝑥 ∈ V → (𝑥 ⊆ suc 𝑥𝑥 ≼ suc 𝑥))
4121, 39, 40mp2 9 . . . . . . . . . . . 12 𝑥 ≼ suc 𝑥
42 sbth 7840 . . . . . . . . . . . 12 ((suc 𝑥𝑥𝑥 ≼ suc 𝑥) → suc 𝑥𝑥)
4338, 41, 42sylancl 692 . . . . . . . . . . 11 ((suc 𝑥𝐵𝐵𝑥) → suc 𝑥𝑥)
4443expcom 449 . . . . . . . . . 10 (𝐵𝑥 → (suc 𝑥𝐵 → suc 𝑥𝑥))
45 peano2b 6848 . . . . . . . . . . . . 13 (𝑥 ∈ ω ↔ suc 𝑥 ∈ ω)
46 nnord 6840 . . . . . . . . . . . . 13 (suc 𝑥 ∈ ω → Ord suc 𝑥)
4745, 46sylbi 205 . . . . . . . . . . . 12 (𝑥 ∈ ω → Ord suc 𝑥)
4820sucid 5609 . . . . . . . . . . . 12 𝑥 ∈ suc 𝑥
49 nordeq 5549 . . . . . . . . . . . 12 ((Ord suc 𝑥𝑥 ∈ suc 𝑥) → suc 𝑥𝑥)
5047, 48, 49sylancl 692 . . . . . . . . . . 11 (𝑥 ∈ ω → suc 𝑥𝑥)
51 nneneq 7903 . . . . . . . . . . . . . 14 ((suc 𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
5245, 51sylanb 487 . . . . . . . . . . . . 13 ((𝑥 ∈ ω ∧ 𝑥 ∈ ω) → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
5352anidms 674 . . . . . . . . . . . 12 (𝑥 ∈ ω → (suc 𝑥𝑥 ↔ suc 𝑥 = 𝑥))
5453necon3bbid 2723 . . . . . . . . . . 11 (𝑥 ∈ ω → (¬ suc 𝑥𝑥 ↔ suc 𝑥𝑥))
5550, 54mpbird 245 . . . . . . . . . 10 (𝑥 ∈ ω → ¬ suc 𝑥𝑥)
5644, 55nsyli 153 . . . . . . . . 9 (𝐵𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
5737, 56syli 38 . . . . . . . 8 (𝐵 ⊊ suc 𝑥 → (𝑥 ∈ ω → ¬ suc 𝑥𝐵))
5857com12 32 . . . . . . 7 (𝑥 ∈ ω → (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵))
59 psseq2 3561 . . . . . . . 8 (𝐴 = suc 𝑥 → (𝐵𝐴𝐵 ⊊ suc 𝑥))
60 breq1 4484 . . . . . . . . 9 (𝐴 = suc 𝑥 → (𝐴𝐵 ↔ suc 𝑥𝐵))
6160notbid 306 . . . . . . . 8 (𝐴 = suc 𝑥 → (¬ 𝐴𝐵 ↔ ¬ suc 𝑥𝐵))
6259, 61imbi12d 332 . . . . . . 7 (𝐴 = suc 𝑥 → ((𝐵𝐴 → ¬ 𝐴𝐵) ↔ (𝐵 ⊊ suc 𝑥 → ¬ suc 𝑥𝐵)))
6358, 62syl5ibrcom 235 . . . . . 6 (𝑥 ∈ ω → (𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵)))
6463rexlimiv 2913 . . . . 5 (∃𝑥 ∈ ω 𝐴 = suc 𝑥 → (𝐵𝐴 → ¬ 𝐴𝐵))
6510, 64syl 17 . . . 4 ((𝐴 ∈ ω ∧ 𝐵𝐴) → (𝐵𝐴 → ¬ 𝐴𝐵))
6665ex 448 . . 3 (𝐴 ∈ ω → (𝐵𝐴 → (𝐵𝐴 → ¬ 𝐴𝐵)))
6766pm2.43d 50 . 2 (𝐴 ∈ ω → (𝐵𝐴 → ¬ 𝐴𝐵))
6867imp 443 1 ((𝐴 ∈ ω ∧ 𝐵𝐴) → ¬ 𝐴𝐵)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 194  wa 382   = wceq 1474  wex 1694  wcel 1938  wne 2684  wrex 2801  Vcvv 3077  cdif 3441  cin 3443  wss 3444  wpss 3445  c0 3777  {csn 4028   class class class wbr 4481  Ord word 5529  suc csuc 5532  ωcom 6832  cen 7713  cdom 7714
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1700  ax-4 1713  ax-5 1793  ax-6 1838  ax-7 1885  ax-8 1940  ax-9 1947  ax-10 1966  ax-11 1971  ax-12 1983  ax-13 2137  ax-ext 2494  ax-sep 4607  ax-nul 4616  ax-pow 4668  ax-pr 4732  ax-un 6722
This theorem depends on definitions:  df-bi 195  df-or 383  df-an 384  df-3or 1031  df-3an 1032  df-tru 1477  df-ex 1695  df-nf 1699  df-sb 1831  df-eu 2366  df-mo 2367  df-clab 2501  df-cleq 2507  df-clel 2510  df-nfc 2644  df-ne 2686  df-ral 2805  df-rex 2806  df-rab 2809  df-v 3079  df-sbc 3307  df-dif 3447  df-un 3449  df-in 3451  df-ss 3458  df-pss 3460  df-nul 3778  df-if 3940  df-pw 4013  df-sn 4029  df-pr 4031  df-tp 4033  df-op 4035  df-uni 4271  df-br 4482  df-opab 4542  df-tr 4579  df-eprel 4843  df-id 4847  df-po 4853  df-so 4854  df-fr 4891  df-we 4893  df-xp 4938  df-rel 4939  df-cnv 4940  df-co 4941  df-dm 4942  df-rn 4943  df-res 4944  df-ima 4945  df-ord 5533  df-on 5534  df-lim 5535  df-suc 5536  df-iota 5653  df-fun 5691  df-fn 5692  df-f 5693  df-f1 5694  df-fo 5695  df-f1o 5696  df-fv 5697  df-om 6833  df-er 7504  df-en 7717  df-dom 7718
This theorem is referenced by:  php2  7905  php3  7906
  Copyright terms: Public domain W3C validator