Metamath Proof Explorer


Theorem hashfun

Description: A finite set is a function iff it is equinumerous to its domain. (Contributed by Mario Carneiro, 26-Sep-2013) (Revised by Mario Carneiro, 12-Mar-2015)

Ref Expression
Assertion hashfun FFinFunFF=domF

Proof

Step Hyp Ref Expression
1 funfn FunFFFndomF
2 hashfn FFndomFF=domF
3 1 2 sylbi FunFF=domF
4 dmfi FFindomFFin
5 hashcl domFFindomF0
6 4 5 syl FFindomF0
7 6 nn0red FFindomF
8 7 adantr FFin¬RelFdomF
9 df-rel RelFFV×V
10 dfss3 FV×VxFxV×V
11 9 10 bitri RelFxFxV×V
12 11 notbii ¬RelF¬xFxV×V
13 rexnal xF¬xV×V¬xFxV×V
14 12 13 bitr4i ¬RelFxF¬xV×V
15 dmun domFxx=domFxdomx
16 15 fveq2i domFxx=domFxdomx
17 dmsnn0 xV×Vdomx
18 17 biimpri domxxV×V
19 18 necon1bi ¬xV×Vdomx=
20 19 3ad2ant3 FFinxF¬xV×Vdomx=
21 20 uneq2d FFinxF¬xV×VdomFxdomx=domFx
22 un0 domFx=domFx
23 21 22 eqtrdi FFinxF¬xV×VdomFxdomx=domFx
24 23 fveq2d FFinxF¬xV×VdomFxdomx=domFx
25 16 24 eqtrid FFinxF¬xV×VdomFxx=domFx
26 diffi FFinFxFin
27 dmfi FxFindomFxFin
28 26 27 syl FFindomFxFin
29 hashcl domFxFindomFx0
30 28 29 syl FFindomFx0
31 30 nn0red FFindomFx
32 hashcl FxFinFx0
33 26 32 syl FFinFx0
34 33 nn0red FFinFx
35 peano2re FxFx+1
36 34 35 syl FFinFx+1
37 fidomdm FxFindomFxFx
38 26 37 syl FFindomFxFx
39 hashdom domFxFinFxFindomFxFxdomFxFx
40 28 26 39 syl2anc FFindomFxFxdomFxFx
41 38 40 mpbird FFindomFxFx
42 34 ltp1d FFinFx<Fx+1
43 31 34 36 41 42 lelttrd FFindomFx<Fx+1
44 43 3ad2ant1 FFinxF¬xV×VdomFx<Fx+1
45 25 44 eqbrtrd FFinxF¬xV×VdomFxx<Fx+1
46 snfi xFin
47 disjdifr Fxx=
48 hashun FxFinxFinFxx=Fxx=Fx+x
49 46 47 48 mp3an23 FxFinFxx=Fx+x
50 26 49 syl FFinFxx=Fx+x
51 hashsng xVx=1
52 51 elv x=1
53 52 oveq2i Fx+x=Fx+1
54 50 53 eqtr2di FFinFx+1=Fxx
55 54 3ad2ant1 FFinxF¬xV×VFx+1=Fxx
56 45 55 breqtrd FFinxF¬xV×VdomFxx<Fxx
57 difsnid xFFxx=F
58 57 dmeqd xFdomFxx=domF
59 58 fveq2d xFdomFxx=domF
60 59 3ad2ant2 FFinxF¬xV×VdomFxx=domF
61 57 fveq2d xFFxx=F
62 61 3ad2ant2 FFinxF¬xV×VFxx=F
63 56 60 62 3brtr3d FFinxF¬xV×VdomF<F
64 63 rexlimdv3a FFinxF¬xV×VdomF<F
65 14 64 biimtrid FFin¬RelFdomF<F
66 65 imp FFin¬RelFdomF<F
67 8 66 gtned FFin¬RelFFdomF
68 67 ex FFin¬RelFFdomF
69 68 necon4bd FFinF=domFRelF
70 69 imp FFinF=domFRelF
71 2nalexn ¬xyzxyFxzFy=zxy¬zxyFxzFy=z
72 df-ne yz¬y=z
73 72 anbi2i xyFxzFyzxyFxzF¬y=z
74 annim xyFxzF¬y=z¬xyFxzFy=z
75 73 74 bitri xyFxzFyz¬xyFxzFy=z
76 75 exbii zxyFxzFyzz¬xyFxzFy=z
77 exnal z¬xyFxzFy=z¬zxyFxzFy=z
78 76 77 bitr2i ¬zxyFxzFy=zzxyFxzFyz
79 78 2exbii xy¬zxyFxzFy=zxyzxyFxzFyz
80 71 79 bitri ¬xyzxyFxzFy=zxyzxyFxzFyz
81 7 adantr FFinxyFxzFyzdomF
82 2re 2
83 diffi FFinFxyxzFin
84 dmfi FxyxzFindomFxyxzFin
85 83 84 syl FFindomFxyxzFin
86 hashcl domFxyxzFindomFxyxz0
87 85 86 syl FFindomFxyxz0
88 87 nn0red FFindomFxyxz
89 88 adantr FFinxyFxzFyzdomFxyxz
90 readdcl 2domFxyxz2+domFxyxz
91 82 89 90 sylancr FFinxyFxzFyz2+domFxyxz
92 hashcl FFinF0
93 92 nn0red FFinF
94 93 adantr FFinxyFxzFyzF
95 1re 1
96 readdcl 1domFxyxz1+domFxyxz
97 95 88 96 sylancr FFin1+domFxyxz
98 97 adantr FFinxyFxzFyz1+domFxyxz
99 82 88 90 sylancr FFin2+domFxyxz
100 99 adantr FFinxyFxzFyz2+domFxyxz
101 opex xyV
102 opex xzV
103 101 102 prss xyFxzFxyxzF
104 undif xyxzFxyxzFxyxz=F
105 103 104 sylbb xyFxzFxyxzFxyxz=F
106 105 dmeqd xyFxzFdomxyxzFxyxz=domF
107 dmun domxyxzFxyxz=domxyxzdomFxyxz
108 106 107 eqtr3di xyFxzFdomF=domxyxzdomFxyxz
109 vex yV
110 vex zV
111 109 110 dmprop domxyxz=xx
112 dfsn2 x=xx
113 111 112 eqtr4i domxyxz=x
114 113 uneq1i domxyxzdomFxyxz=xdomFxyxz
115 108 114 eqtrdi xyFxzFdomF=xdomFxyxz
116 115 fveq2d xyFxzFdomF=xdomFxyxz
117 116 ad2antrl FFinxyFxzFyzdomF=xdomFxyxz
118 hashun2 xFindomFxyxzFinxdomFxyxzx+domFxyxz
119 46 85 118 sylancr FFinxdomFxyxzx+domFxyxz
120 52 oveq1i x+domFxyxz=1+domFxyxz
121 119 120 breqtrdi FFinxdomFxyxz1+domFxyxz
122 121 adantr FFinxyFxzFyzxdomFxyxz1+domFxyxz
123 117 122 eqbrtrd FFinxyFxzFyzdomF1+domFxyxz
124 1lt2 1<2
125 ltadd1 12domFxyxz1<21+domFxyxz<2+domFxyxz
126 95 82 88 125 mp3an12i FFin1<21+domFxyxz<2+domFxyxz
127 124 126 mpbii FFin1+domFxyxz<2+domFxyxz
128 127 adantr FFinxyFxzFyz1+domFxyxz<2+domFxyxz
129 81 98 100 123 128 lelttrd FFinxyFxzFyzdomF<2+domFxyxz
130 fidomdm FxyxzFindomFxyxzFxyxz
131 83 130 syl FFindomFxyxzFxyxz
132 hashdom domFxyxzFinFxyxzFindomFxyxzFxyxzdomFxyxzFxyxz
133 85 83 132 syl2anc FFindomFxyxzFxyxzdomFxyxzFxyxz
134 131 133 mpbird FFindomFxyxzFxyxz
135 hashcl FxyxzFinFxyxz0
136 83 135 syl FFinFxyxz0
137 136 nn0red FFinFxyxz
138 leadd2 domFxyxzFxyxz2domFxyxzFxyxz2+domFxyxz2+Fxyxz
139 82 138 mp3an3 domFxyxzFxyxzdomFxyxzFxyxz2+domFxyxz2+Fxyxz
140 88 137 139 syl2anc FFindomFxyxzFxyxz2+domFxyxz2+Fxyxz
141 134 140 mpbid FFin2+domFxyxz2+Fxyxz
142 141 adantr FFinxyFxzFyz2+domFxyxz2+Fxyxz
143 prfi xyxzFin
144 disjdif xyxzFxyxz=
145 hashun xyxzFinFxyxzFinxyxzFxyxz=xyxzFxyxz=xyxz+Fxyxz
146 143 144 145 mp3an13 FxyxzFinxyxzFxyxz=xyxz+Fxyxz
147 83 146 syl FFinxyxzFxyxz=xyxz+Fxyxz
148 147 adantr FFinxyFxzFyzxyxzFxyxz=xyxz+Fxyxz
149 105 fveq2d xyFxzFxyxzFxyxz=F
150 149 ad2antrl FFinxyFxzFyzxyxzFxyxz=F
151 vex xV
152 151 109 opth xy=xzx=xy=z
153 152 simprbi xy=xzy=z
154 153 necon3i yzxyxz
155 hashprg xyVxzVxyxzxyxz=2
156 101 102 155 mp2an xyxzxyxz=2
157 154 156 sylib yzxyxz=2
158 157 oveq1d yzxyxz+Fxyxz=2+Fxyxz
159 158 ad2antll FFinxyFxzFyzxyxz+Fxyxz=2+Fxyxz
160 148 150 159 3eqtr3rd FFinxyFxzFyz2+Fxyxz=F
161 142 160 breqtrd FFinxyFxzFyz2+domFxyxzF
162 81 91 94 129 161 ltletrd FFinxyFxzFyzdomF<F
163 81 162 gtned FFinxyFxzFyzFdomF
164 163 ex FFinxyFxzFyzFdomF
165 164 exlimdv FFinzxyFxzFyzFdomF
166 165 exlimdvv FFinxyzxyFxzFyzFdomF
167 80 166 biimtrid FFin¬xyzxyFxzFy=zFdomF
168 167 necon4bd FFinF=domFxyzxyFxzFy=z
169 168 imp FFinF=domFxyzxyFxzFy=z
170 dffun4 FunFRelFxyzxyFxzFy=z
171 70 169 170 sylanbrc FFinF=domFFunF
172 171 ex FFinF=domFFunF
173 3 172 impbid2 FFinFunFF=domF