Users' Mathboxes Mathbox for Stefan O'Rear < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  fphpd Structured version   Visualization version   GIF version

Theorem fphpd 43571
Description: Pigeonhole principle expressed with implicit substitution. If the range is smaller than the domain, two inputs must be mapped to the same output. (Contributed by Stefan O'Rear, 19-Oct-2014.) (Revised by Stefan O'Rear, 6-May-2015.)
Hypotheses
Ref Expression
fphpd.a (𝜑𝐵𝐴)
fphpd.b ((𝜑𝑥𝐴) → 𝐶𝐵)
fphpd.c (𝑥 = 𝑦𝐶 = 𝐷)
Assertion
Ref Expression
fphpd (𝜑 → ∃𝑥𝐴𝑦𝐴 (𝑥𝑦𝐶 = 𝐷))
Distinct variable groups:   𝑥,𝐴,𝑦   𝑥,𝐵,𝑦   𝑦,𝐶   𝑥,𝐷   𝜑,𝑥,𝑦
Allowed substitution hints:   𝐶(𝑥)   𝐷(𝑦)

Proof of Theorem fphpd
Dummy variables 𝑎 𝑏 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 domnsym 9087 . . . 4 (𝐴𝐵 → ¬ 𝐵𝐴)
2 fphpd.a . . . 4 (𝜑𝐵𝐴)
31, 2nsyl3 139 . . 3 (𝜑 → ¬ 𝐴𝐵)
4 relsdom 8946 . . . . . . 7 Rel ≺
54brrelex1i 5717 . . . . . 6 (𝐵𝐴𝐵 ∈ V)
62, 5syl 18 . . . . 5 (𝜑𝐵 ∈ V)
76adantr 485 . . . 4 ((𝜑 ∧ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦)) → 𝐵 ∈ V)
8 nfv 1944 . . . . . . . . 9 𝑥(𝜑𝑎𝐴)
9 nfcsb1v 3877 . . . . . . . . . 10 𝑥𝑎 / 𝑥𝐶
109nfel1 2941 . . . . . . . . 9 𝑥𝑎 / 𝑥𝐶𝐵
118, 10nfim 1926 . . . . . . . 8 𝑥((𝜑𝑎𝐴) → 𝑎 / 𝑥𝐶𝐵)
12 eleq1w 2846 . . . . . . . . . 10 (𝑥 = 𝑎 → (𝑥𝐴𝑎𝐴))
1312anbi2d 641 . . . . . . . . 9 (𝑥 = 𝑎 → ((𝜑𝑥𝐴) ↔ (𝜑𝑎𝐴)))
14 csbeq1a 3867 . . . . . . . . . 10 (𝑥 = 𝑎𝐶 = 𝑎 / 𝑥𝐶)
1514eleq1d 2848 . . . . . . . . 9 (𝑥 = 𝑎 → (𝐶𝐵𝑎 / 𝑥𝐶𝐵))
1613, 15imbi12d 347 . . . . . . . 8 (𝑥 = 𝑎 → (((𝜑𝑥𝐴) → 𝐶𝐵) ↔ ((𝜑𝑎𝐴) → 𝑎 / 𝑥𝐶𝐵)))
17 fphpd.b . . . . . . . 8 ((𝜑𝑥𝐴) → 𝐶𝐵)
1811, 16, 17chvarfv 2276 . . . . . . 7 ((𝜑𝑎𝐴) → 𝑎 / 𝑥𝐶𝐵)
1918ex 417 . . . . . 6 (𝜑 → (𝑎𝐴𝑎 / 𝑥𝐶𝐵))
2019adantr 485 . . . . 5 ((𝜑 ∧ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦)) → (𝑎𝐴𝑎 / 𝑥𝐶𝐵))
21 csbid 3866 . . . . . . . . . . 11 𝑥 / 𝑥𝐶 = 𝐶
22 vex 3459 . . . . . . . . . . . 12 𝑦 ∈ V
23 fphpd.c . . . . . . . . . . . 12 (𝑥 = 𝑦𝐶 = 𝐷)
2422, 23csbie 3888 . . . . . . . . . . 11 𝑦 / 𝑥𝐶 = 𝐷
2521, 24eqeq12i 2781 . . . . . . . . . 10 (𝑥 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝐶 = 𝐷)
2625imbi1i 352 . . . . . . . . 9 ((𝑥 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑥 = 𝑦) ↔ (𝐶 = 𝐷𝑥 = 𝑦))
27262ralbii 3140 . . . . . . . 8 (∀𝑥𝐴𝑦𝐴 (𝑥 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑥 = 𝑦) ↔ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦))
28 nfcsb1v 3877 . . . . . . . . . . . 12 𝑥𝑦 / 𝑥𝐶
299, 28nfeq 2938 . . . . . . . . . . 11 𝑥𝑎 / 𝑥𝐶 = 𝑦 / 𝑥𝐶
30 nfv 1944 . . . . . . . . . . 11 𝑥 𝑎 = 𝑦
3129, 30nfim 1926 . . . . . . . . . 10 𝑥(𝑎 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑎 = 𝑦)
32 nfv 1944 . . . . . . . . . 10 𝑦(𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏)
33 csbeq1 3856 . . . . . . . . . . . 12 (𝑥 = 𝑎𝑥 / 𝑥𝐶 = 𝑎 / 𝑥𝐶)
3433eqeq1d 2765 . . . . . . . . . . 11 (𝑥 = 𝑎 → (𝑥 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑎 / 𝑥𝐶 = 𝑦 / 𝑥𝐶))
35 equequ1 2055 . . . . . . . . . . 11 (𝑥 = 𝑎 → (𝑥 = 𝑦𝑎 = 𝑦))
3634, 35imbi12d 347 . . . . . . . . . 10 (𝑥 = 𝑎 → ((𝑥 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑥 = 𝑦) ↔ (𝑎 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑎 = 𝑦)))
37 csbeq1 3856 . . . . . . . . . . . 12 (𝑦 = 𝑏𝑦 / 𝑥𝐶 = 𝑏 / 𝑥𝐶)
3837eqeq2d 2774 . . . . . . . . . . 11 (𝑦 = 𝑏 → (𝑎 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶))
39 equequ2 2056 . . . . . . . . . . 11 (𝑦 = 𝑏 → (𝑎 = 𝑦𝑎 = 𝑏))
4038, 39imbi12d 347 . . . . . . . . . 10 (𝑦 = 𝑏 → ((𝑎 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑎 = 𝑦) ↔ (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏)))
4131, 32, 36, 40rspc2 3590 . . . . . . . . 9 ((𝑎𝐴𝑏𝐴) → (∀𝑥𝐴𝑦𝐴 (𝑥 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑥 = 𝑦) → (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏)))
4241com12 33 . . . . . . . 8 (∀𝑥𝐴𝑦𝐴 (𝑥 / 𝑥𝐶 = 𝑦 / 𝑥𝐶𝑥 = 𝑦) → ((𝑎𝐴𝑏𝐴) → (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏)))
4327, 42sylbir 238 . . . . . . 7 (∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦) → ((𝑎𝐴𝑏𝐴) → (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏)))
44 id 23 . . . . . . . 8 ((𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏) → (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏))
45 csbeq1 3856 . . . . . . . 8 (𝑎 = 𝑏𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶)
4644, 45impbid1 228 . . . . . . 7 ((𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏) → (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏))
4743, 46syl6 36 . . . . . 6 (∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦) → ((𝑎𝐴𝑏𝐴) → (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏)))
4847adantl 486 . . . . 5 ((𝜑 ∧ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦)) → ((𝑎𝐴𝑏𝐴) → (𝑎 / 𝑥𝐶 = 𝑏 / 𝑥𝐶𝑎 = 𝑏)))
4920, 48dom2d 8986 . . . 4 ((𝜑 ∧ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦)) → (𝐵 ∈ V → 𝐴𝐵))
507, 49mpd 16 . . 3 ((𝜑 ∧ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦)) → 𝐴𝐵)
513, 50mtand 827 . 2 (𝜑 → ¬ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦))
52 ancom 465 . . . . . . 7 ((¬ 𝑥 = 𝑦𝐶 = 𝐷) ↔ (𝐶 = 𝐷 ∧ ¬ 𝑥 = 𝑦))
53 df-ne 2959 . . . . . . . 8 (𝑥𝑦 ↔ ¬ 𝑥 = 𝑦)
5453anbi1i 635 . . . . . . 7 ((𝑥𝑦𝐶 = 𝐷) ↔ (¬ 𝑥 = 𝑦𝐶 = 𝐷))
55 pm4.61 409 . . . . . . 7 (¬ (𝐶 = 𝐷𝑥 = 𝑦) ↔ (𝐶 = 𝐷 ∧ ¬ 𝑥 = 𝑦))
5652, 54, 553bitr4i 306 . . . . . 6 ((𝑥𝑦𝐶 = 𝐷) ↔ ¬ (𝐶 = 𝐷𝑥 = 𝑦))
5756rexbii 3112 . . . . 5 (∃𝑦𝐴 (𝑥𝑦𝐶 = 𝐷) ↔ ∃𝑦𝐴 ¬ (𝐶 = 𝐷𝑥 = 𝑦))
58 rexnal 3117 . . . . 5 (∃𝑦𝐴 ¬ (𝐶 = 𝐷𝑥 = 𝑦) ↔ ¬ ∀𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦))
5957, 58bitri 278 . . . 4 (∃𝑦𝐴 (𝑥𝑦𝐶 = 𝐷) ↔ ¬ ∀𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦))
6059rexbii 3112 . . 3 (∃𝑥𝐴𝑦𝐴 (𝑥𝑦𝐶 = 𝐷) ↔ ∃𝑥𝐴 ¬ ∀𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦))
61 rexnal 3117 . . 3 (∃𝑥𝐴 ¬ ∀𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦) ↔ ¬ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦))
6260, 61bitri 278 . 2 (∃𝑥𝐴𝑦𝐴 (𝑥𝑦𝐶 = 𝐷) ↔ ¬ ∀𝑥𝐴𝑦𝐴 (𝐶 = 𝐷𝑥 = 𝑦))
6351, 62sylibr 237 1 (𝜑 → ∃𝑥𝐴𝑦𝐴 (𝑥𝑦𝐶 = 𝐷))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  ¬ wn 3  wi 4  wb 209  wa 400   = wceq 1570  wcel 2143  wne 2958  wral 3079  wrex 3089  Vcvv 3455  csb 3853   class class class wbr 5109  cdom 8937  csdm 8938
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1825  ax-4 1839  ax-5 1940  ax-6 1997  ax-7 2038  ax-8 2145  ax-9 2153  ax-10 2176  ax-11 2192  ax-12 2213  ax-ext 2735  ax-rep 5238  ax-sep 5257  ax-nul 5269  ax-pow 5336  ax-pr 5404  ax-un 7732
This proof depends on definitions:  df-bi 210  df-an 401  df-or 861  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1810  df-nf 1814  df-sb 2097  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2838  df-nfc 2912  df-ne 2959  df-ral 3080  df-rex 3090  df-reu 3370  df-rab 3417  df-v 3457  df-sbc 3745  df-csb 3854  df-dif 3908  df-un 3910  df-in 3912  df-ss 3922  df-nul 4287  df-if 4488  df-pw 4564  df-sn 4590  df-pr 4592  df-op 4596  df-uni 4873  df-iun 4958  df-br 5110  df-opab 5174  df-mpt 5193  df-id 5556  df-xp 5667  df-rel 5668  df-cnv 5669  df-co 5670  df-dm 5671  df-rn 5672  df-res 5673  df-ima 5674  df-iota 6492  df-fun 6538  df-fn 6539  df-f 6540  df-f1 6541  df-fo 6542  df-f1o 6543  df-fv 6544  df-er 8690  df-en 8940  df-dom 8941  df-sdom 8942
This theorem is used by:  fphpdo  43572  pellex  43590
  Copyright terms: Public domain W3C validator