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 F Fin Fun F F = dom F

Proof

Step Hyp Ref Expression
1 funfn Fun F F Fn dom F
2 hashfn F Fn dom F F = dom F
3 1 2 sylbi Fun F F = dom F
4 dmfi F Fin dom F Fin
5 hashcl dom F Fin dom F 0
6 4 5 syl F Fin dom F 0
7 6 nn0red F Fin dom F
8 7 adantr F Fin ¬ Rel F dom F
9 df-rel Rel F F V × V
10 dfss3 F V × V x F x V × V
11 9 10 bitri Rel F x F x V × V
12 11 notbii ¬ Rel F ¬ x F x V × V
13 rexnal x F ¬ x V × V ¬ x F x V × V
14 12 13 bitr4i ¬ Rel F x F ¬ x V × V
15 dmun dom F x x = dom F x dom x
16 15 fveq2i dom F x x = dom F x dom x
17 dmsnn0 x V × V dom x
18 17 biimpri dom x x V × V
19 18 necon1bi ¬ x V × V dom x =
20 19 3ad2ant3 F Fin x F ¬ x V × V dom x =
21 20 uneq2d F Fin x F ¬ x V × V dom F x dom x = dom F x
22 un0 dom F x = dom F x
23 21 22 eqtrdi F Fin x F ¬ x V × V dom F x dom x = dom F x
24 23 fveq2d F Fin x F ¬ x V × V dom F x dom x = dom F x
25 16 24 eqtrid F Fin x F ¬ x V × V dom F x x = dom F x
26 diffi F Fin F x Fin
27 dmfi F x Fin dom F x Fin
28 26 27 syl F Fin dom F x Fin
29 hashcl dom F x Fin dom F x 0
30 28 29 syl F Fin dom F x 0
31 30 nn0red F Fin dom F x
32 hashcl F x Fin F x 0
33 26 32 syl F Fin F x 0
34 33 nn0red F Fin F x
35 peano2re F x F x + 1
36 34 35 syl F Fin F x + 1
37 fidomdm F x Fin dom F x F x
38 26 37 syl F Fin dom F x F x
39 hashdom dom F x Fin F x Fin dom F x F x dom F x F x
40 28 26 39 syl2anc F Fin dom F x F x dom F x F x
41 38 40 mpbird F Fin dom F x F x
42 34 ltp1d F Fin F x < F x + 1
43 31 34 36 41 42 lelttrd F Fin dom F x < F x + 1
44 43 3ad2ant1 F Fin x F ¬ x V × V dom F x < F x + 1
45 25 44 eqbrtrd F Fin x F ¬ x V × V dom F x x < F x + 1
46 snfi x Fin
47 disjdifr F x x =
48 hashun F x Fin x Fin F x x = F x x = F x + x
49 46 47 48 mp3an23 F x Fin F x x = F x + x
50 26 49 syl F Fin F x x = F x + x
51 hashsng x V x = 1
52 51 elv x = 1
53 52 oveq2i F x + x = F x + 1
54 50 53 eqtr2di F Fin F x + 1 = F x x
55 54 3ad2ant1 F Fin x F ¬ x V × V F x + 1 = F x x
56 45 55 breqtrd F Fin x F ¬ x V × V dom F x x < F x x
57 difsnid x F F x x = F
58 57 dmeqd x F dom F x x = dom F
59 58 fveq2d x F dom F x x = dom F
60 59 3ad2ant2 F Fin x F ¬ x V × V dom F x x = dom F
61 57 fveq2d x F F x x = F
62 61 3ad2ant2 F Fin x F ¬ x V × V F x x = F
63 56 60 62 3brtr3d F Fin x F ¬ x V × V dom F < F
64 63 rexlimdv3a F Fin x F ¬ x V × V dom F < F
65 14 64 syl5bi F Fin ¬ Rel F dom F < F
66 65 imp F Fin ¬ Rel F dom F < F
67 8 66 gtned F Fin ¬ Rel F F dom F
68 67 ex F Fin ¬ Rel F F dom F
69 68 necon4bd F Fin F = dom F Rel F
70 69 imp F Fin F = dom F Rel F
71 2nalexn ¬ x y z x y F x z F y = z x y ¬ z x y F x z F y = z
72 df-ne y z ¬ y = z
73 72 anbi2i x y F x z F y z x y F x z F ¬ y = z
74 annim x y F x z F ¬ y = z ¬ x y F x z F y = z
75 73 74 bitri x y F x z F y z ¬ x y F x z F y = z
76 75 exbii z x y F x z F y z z ¬ x y F x z F y = z
77 exnal z ¬ x y F x z F y = z ¬ z x y F x z F y = z
78 76 77 bitr2i ¬ z x y F x z F y = z z x y F x z F y z
79 78 2exbii x y ¬ z x y F x z F y = z x y z x y F x z F y z
80 71 79 bitri ¬ x y z x y F x z F y = z x y z x y F x z F y z
81 7 adantr F Fin x y F x z F y z dom F
82 2re 2
83 diffi F Fin F x y x z Fin
84 dmfi F x y x z Fin dom F x y x z Fin
85 83 84 syl F Fin dom F x y x z Fin
86 hashcl dom F x y x z Fin dom F x y x z 0
87 85 86 syl F Fin dom F x y x z 0
88 87 nn0red F Fin dom F x y x z
89 88 adantr F Fin x y F x z F y z dom F x y x z
90 readdcl 2 dom F x y x z 2 + dom F x y x z
91 82 89 90 sylancr F Fin x y F x z F y z 2 + dom F x y x z
92 hashcl F Fin F 0
93 92 nn0red F Fin F
94 93 adantr F Fin x y F x z F y z F
95 1re 1
96 readdcl 1 dom F x y x z 1 + dom F x y x z
97 95 88 96 sylancr F Fin 1 + dom F x y x z
98 97 adantr F Fin x y F x z F y z 1 + dom F x y x z
99 82 88 90 sylancr F Fin 2 + dom F x y x z
100 99 adantr F Fin x y F x z F y z 2 + dom F x y x z
101 opex x y V
102 opex x z V
103 101 102 prss x y F x z F x y x z F
104 undif x y x z F x y x z F x y x z = F
105 103 104 sylbb x y F x z F x y x z F x y x z = F
106 105 dmeqd x y F x z F dom x y x z F x y x z = dom F
107 dmun dom x y x z F x y x z = dom x y x z dom F x y x z
108 106 107 eqtr3di x y F x z F dom F = dom x y x z dom F x y x z
109 vex y V
110 vex z V
111 109 110 dmprop dom x y x z = x x
112 dfsn2 x = x x
113 111 112 eqtr4i dom x y x z = x
114 113 uneq1i dom x y x z dom F x y x z = x dom F x y x z
115 108 114 eqtrdi x y F x z F dom F = x dom F x y x z
116 115 fveq2d x y F x z F dom F = x dom F x y x z
117 116 ad2antrl F Fin x y F x z F y z dom F = x dom F x y x z
118 hashun2 x Fin dom F x y x z Fin x dom F x y x z x + dom F x y x z
119 46 85 118 sylancr F Fin x dom F x y x z x + dom F x y x z
120 52 oveq1i x + dom F x y x z = 1 + dom F x y x z
121 119 120 breqtrdi F Fin x dom F x y x z 1 + dom F x y x z
122 121 adantr F Fin x y F x z F y z x dom F x y x z 1 + dom F x y x z
123 117 122 eqbrtrd F Fin x y F x z F y z dom F 1 + dom F x y x z
124 1lt2 1 < 2
125 ltadd1 1 2 dom F x y x z 1 < 2 1 + dom F x y x z < 2 + dom F x y x z
126 95 82 88 125 mp3an12i F Fin 1 < 2 1 + dom F x y x z < 2 + dom F x y x z
127 124 126 mpbii F Fin 1 + dom F x y x z < 2 + dom F x y x z
128 127 adantr F Fin x y F x z F y z 1 + dom F x y x z < 2 + dom F x y x z
129 81 98 100 123 128 lelttrd F Fin x y F x z F y z dom F < 2 + dom F x y x z
130 fidomdm F x y x z Fin dom F x y x z F x y x z
131 83 130 syl F Fin dom F x y x z F x y x z
132 hashdom dom F x y x z Fin F x y x z Fin dom F x y x z F x y x z dom F x y x z F x y x z
133 85 83 132 syl2anc F Fin dom F x y x z F x y x z dom F x y x z F x y x z
134 131 133 mpbird F Fin dom F x y x z F x y x z
135 hashcl F x y x z Fin F x y x z 0
136 83 135 syl F Fin F x y x z 0
137 136 nn0red F Fin F x y x z
138 leadd2 dom F x y x z F x y x z 2 dom F x y x z F x y x z 2 + dom F x y x z 2 + F x y x z
139 82 138 mp3an3 dom F x y x z F x y x z dom F x y x z F x y x z 2 + dom F x y x z 2 + F x y x z
140 88 137 139 syl2anc F Fin dom F x y x z F x y x z 2 + dom F x y x z 2 + F x y x z
141 134 140 mpbid F Fin 2 + dom F x y x z 2 + F x y x z
142 141 adantr F Fin x y F x z F y z 2 + dom F x y x z 2 + F x y x z
143 prfi x y x z Fin
144 disjdif x y x z F x y x z =
145 hashun x y x z Fin F x y x z Fin x y x z F x y x z = x y x z F x y x z = x y x z + F x y x z
146 143 144 145 mp3an13 F x y x z Fin x y x z F x y x z = x y x z + F x y x z
147 83 146 syl F Fin x y x z F x y x z = x y x z + F x y x z
148 147 adantr F Fin x y F x z F y z x y x z F x y x z = x y x z + F x y x z
149 105 fveq2d x y F x z F x y x z F x y x z = F
150 149 ad2antrl F Fin x y F x z F y z x y x z F x y x z = F
151 vex x V
152 151 109 opth x y = x z x = x y = z
153 152 simprbi x y = x z y = z
154 153 necon3i y z x y x z
155 hashprg x y V x z V x y x z x y x z = 2
156 101 102 155 mp2an x y x z x y x z = 2
157 154 156 sylib y z x y x z = 2
158 157 oveq1d y z x y x z + F x y x z = 2 + F x y x z
159 158 ad2antll F Fin x y F x z F y z x y x z + F x y x z = 2 + F x y x z
160 148 150 159 3eqtr3rd F Fin x y F x z F y z 2 + F x y x z = F
161 142 160 breqtrd F Fin x y F x z F y z 2 + dom F x y x z F
162 81 91 94 129 161 ltletrd F Fin x y F x z F y z dom F < F
163 81 162 gtned F Fin x y F x z F y z F dom F
164 163 ex F Fin x y F x z F y z F dom F
165 164 exlimdv F Fin z x y F x z F y z F dom F
166 165 exlimdvv F Fin x y z x y F x z F y z F dom F
167 80 166 syl5bi F Fin ¬ x y z x y F x z F y = z F dom F
168 167 necon4bd F Fin F = dom F x y z x y F x z F y = z
169 168 imp F Fin F = dom F x y z x y F x z F y = z
170 dffun4 Fun F Rel F x y z x y F x z F y = z
171 70 169 170 sylanbrc F Fin F = dom F Fun F
172 171 ex F Fin F = dom F Fun F
173 3 172 impbid2 F Fin Fun F F = dom F