Metamath Proof Explorer


Theorem fphpd

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)

Ref Expression
Hypotheses fphpd.a φBA
fphpd.b φxACB
fphpd.c x=yC=D
Assertion fphpd φxAyAxyC=D

Proof

Step Hyp Ref Expression
1 fphpd.a φBA
2 fphpd.b φxACB
3 fphpd.c x=yC=D
4 domnsym AB¬BA
5 4 1 nsyl3 φ¬AB
6 relsdom Rel
7 6 brrelex1i BABV
8 1 7 syl φBV
9 8 adantr φxAyAC=Dx=yBV
10 nfv xφaA
11 nfcsb1v _xa/xC
12 11 nfel1 xa/xCB
13 10 12 nfim xφaAa/xCB
14 eleq1w x=axAaA
15 14 anbi2d x=aφxAφaA
16 csbeq1a x=aC=a/xC
17 16 eleq1d x=aCBa/xCB
18 15 17 imbi12d x=aφxACBφaAa/xCB
19 13 18 2 chvarfv φaAa/xCB
20 19 ex φaAa/xCB
21 20 adantr φxAyAC=Dx=yaAa/xCB
22 csbid x/xC=C
23 vex yV
24 23 3 csbie y/xC=D
25 22 24 eqeq12i x/xC=y/xCC=D
26 25 imbi1i x/xC=y/xCx=yC=Dx=y
27 26 2ralbii xAyAx/xC=y/xCx=yxAyAC=Dx=y
28 nfcsb1v _xy/xC
29 11 28 nfeq xa/xC=y/xC
30 nfv xa=y
31 29 30 nfim xa/xC=y/xCa=y
32 nfv ya/xC=b/xCa=b
33 csbeq1 x=ax/xC=a/xC
34 33 eqeq1d x=ax/xC=y/xCa/xC=y/xC
35 equequ1 x=ax=ya=y
36 34 35 imbi12d x=ax/xC=y/xCx=ya/xC=y/xCa=y
37 csbeq1 y=by/xC=b/xC
38 37 eqeq2d y=ba/xC=y/xCa/xC=b/xC
39 equequ2 y=ba=ya=b
40 38 39 imbi12d y=ba/xC=y/xCa=ya/xC=b/xCa=b
41 31 32 36 40 rspc2 aAbAxAyAx/xC=y/xCx=ya/xC=b/xCa=b
42 41 com12 xAyAx/xC=y/xCx=yaAbAa/xC=b/xCa=b
43 27 42 sylbir xAyAC=Dx=yaAbAa/xC=b/xCa=b
44 id a/xC=b/xCa=ba/xC=b/xCa=b
45 csbeq1 a=ba/xC=b/xC
46 44 45 impbid1 a/xC=b/xCa=ba/xC=b/xCa=b
47 43 46 syl6 xAyAC=Dx=yaAbAa/xC=b/xCa=b
48 47 adantl φxAyAC=Dx=yaAbAa/xC=b/xCa=b
49 21 48 dom2d φxAyAC=Dx=yBVAB
50 9 49 mpd φxAyAC=Dx=yAB
51 5 50 mtand φ¬xAyAC=Dx=y
52 ancom ¬x=yC=DC=D¬x=y
53 df-ne xy¬x=y
54 53 anbi1i xyC=D¬x=yC=D
55 pm4.61 ¬C=Dx=yC=D¬x=y
56 52 54 55 3bitr4i xyC=D¬C=Dx=y
57 56 rexbii yAxyC=DyA¬C=Dx=y
58 rexnal yA¬C=Dx=y¬yAC=Dx=y
59 57 58 bitri yAxyC=D¬yAC=Dx=y
60 59 rexbii xAyAxyC=DxA¬yAC=Dx=y
61 rexnal xA¬yAC=Dx=y¬xAyAC=Dx=y
62 60 61 bitri xAyAxyC=D¬xAyAC=Dx=y
63 51 62 sylibr φxAyAxyC=D