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 syl6eq 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 syl5eq 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 incom F x x = x F x
48 disjdif x F x =
49 47 48 eqtri F x x =
50 hashun F x Fin x Fin F x x = F x x = F x + x
51 46 49 50 mp3an23 F x Fin F x x = F x + x
52 26 51 syl F Fin F x x = F x + x
53 hashsng x V x = 1
54 53 elv x = 1
55 54 oveq2i F x + x = F x + 1
56 52 55 syl6req F Fin F x + 1 = F x x
57 56 3ad2ant1 F Fin x F ¬ x V × V F x + 1 = F x x
58 45 57 breqtrd F Fin x F ¬ x V × V dom F x x < F x x
59 difsnid x F F x x = F
60 59 dmeqd x F dom F x x = dom F
61 60 fveq2d x F dom F x x = dom F
62 61 3ad2ant2 F Fin x F ¬ x V × V dom F x x = dom F
63 59 fveq2d x F F x x = F
64 63 3ad2ant2 F Fin x F ¬ x V × V F x x = F
65 58 62 64 3brtr3d F Fin x F ¬ x V × V dom F < F
66 65 rexlimdv3a F Fin x F ¬ x V × V dom F < F
67 14 66 syl5bi F Fin ¬ Rel F dom F < F
68 67 imp F Fin ¬ Rel F dom F < F
69 8 68 gtned F Fin ¬ Rel F F dom F
70 69 ex F Fin ¬ Rel F F dom F
71 70 necon4bd F Fin F = dom F Rel F
72 71 imp F Fin F = dom F Rel F
73 2nalexn ¬ x y z x y F x z F y = z x y ¬ z x y F x z F y = z
74 df-ne y z ¬ y = z
75 74 anbi2i x y F x z F y z x y F x z F ¬ y = z
76 annim x y F x z F ¬ y = z ¬ x y F x z F y = z
77 75 76 bitri x y F x z F y z ¬ x y F x z F y = z
78 77 exbii z x y F x z F y z z ¬ x y F x z F y = z
79 exnal z ¬ x y F x z F y = z ¬ z x y F x z F y = z
80 78 79 bitr2i ¬ z x y F x z F y = z z x y F x z F y z
81 80 2exbii x y ¬ z x y F x z F y = z x y z x y F x z F y z
82 73 81 bitri ¬ x y z x y F x z F y = z x y z x y F x z F y z
83 7 adantr F Fin x y F x z F y z dom F
84 2re 2
85 diffi F Fin F x y x z Fin
86 dmfi F x y x z Fin dom F x y x z Fin
87 85 86 syl F Fin dom F x y x z Fin
88 hashcl dom F x y x z Fin dom F x y x z 0
89 87 88 syl F Fin dom F x y x z 0
90 89 nn0red F Fin dom F x y x z
91 90 adantr F Fin x y F x z F y z dom F x y x z
92 readdcl 2 dom F x y x z 2 + dom F x y x z
93 84 91 92 sylancr F Fin x y F x z F y z 2 + dom F x y x z
94 hashcl F Fin F 0
95 94 nn0red F Fin F
96 95 adantr F Fin x y F x z F y z F
97 1re 1
98 readdcl 1 dom F x y x z 1 + dom F x y x z
99 97 90 98 sylancr F Fin 1 + dom F x y x z
100 99 adantr F Fin x y F x z F y z 1 + dom F x y x z
101 84 90 92 sylancr F Fin 2 + dom F x y x z
102 101 adantr F Fin x y F x z F y z 2 + dom F x y x z
103 dmun dom x y x z F x y x z = dom x y x z dom F x y x z
104 opex x y V
105 opex x z V
106 104 105 prss x y F x z F x y x z F
107 undif x y x z F x y x z F x y x z = F
108 106 107 sylbb x y F x z F x y x z F x y x z = F
109 108 dmeqd x y F x z F dom x y x z F x y x z = dom F
110 103 109 syl5reqr x y F x z F dom F = dom x y x z dom F x y x z
111 vex y V
112 vex z V
113 111 112 dmprop dom x y x z = x x
114 dfsn2 x = x x
115 113 114 eqtr4i dom x y x z = x
116 115 uneq1i dom x y x z dom F x y x z = x dom F x y x z
117 110 116 syl6eq x y F x z F dom F = x dom F x y x z
118 117 fveq2d x y F x z F dom F = x dom F x y x z
119 118 ad2antrl F Fin x y F x z F y z dom F = x dom F x y x z
120 hashun2 x Fin dom F x y x z Fin x dom F x y x z x + dom F x y x z
121 46 87 120 sylancr F Fin x dom F x y x z x + dom F x y x z
122 54 oveq1i x + dom F x y x z = 1 + dom F x y x z
123 121 122 breqtrdi F Fin x dom F x y x z 1 + dom F x y x z
124 123 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
125 119 124 eqbrtrd F Fin x y F x z F y z dom F 1 + dom F x y x z
126 1lt2 1 < 2
127 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
128 97 84 90 127 mp3an12i F Fin 1 < 2 1 + dom F x y x z < 2 + dom F x y x z
129 126 128 mpbii F Fin 1 + dom F x y x z < 2 + dom F x y x z
130 129 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
131 83 100 102 125 130 lelttrd F Fin x y F x z F y z dom F < 2 + dom F x y x z
132 fidomdm F x y x z Fin dom F x y x z F x y x z
133 85 132 syl F Fin dom F x y x z F x y x z
134 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
135 87 85 134 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
136 133 135 mpbird F Fin dom F x y x z F x y x z
137 hashcl F x y x z Fin F x y x z 0
138 85 137 syl F Fin F x y x z 0
139 138 nn0red F Fin F x y x z
140 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
141 84 140 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
142 90 139 141 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
143 136 142 mpbid F Fin 2 + dom F x y x z 2 + F x y x z
144 143 adantr F Fin x y F x z F y z 2 + dom F x y x z 2 + F x y x z
145 prfi x y x z Fin
146 disjdif x y x z F x y x z =
147 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
148 145 146 147 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
149 85 148 syl F Fin x y x z F x y x z = x y x z + F x y x z
150 149 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
151 108 fveq2d x y F x z F x y x z F x y x z = F
152 151 ad2antrl F Fin x y F x z F y z x y x z F x y x z = F
153 vex x V
154 153 111 opth x y = x z x = x y = z
155 154 simprbi x y = x z y = z
156 155 necon3i y z x y x z
157 hashprg x y V x z V x y x z x y x z = 2
158 104 105 157 mp2an x y x z x y x z = 2
159 156 158 sylib y z x y x z = 2
160 159 oveq1d y z x y x z + F x y x z = 2 + F x y x z
161 160 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
162 150 152 161 3eqtr3rd F Fin x y F x z F y z 2 + F x y x z = F
163 144 162 breqtrd F Fin x y F x z F y z 2 + dom F x y x z F
164 83 93 96 131 163 ltletrd F Fin x y F x z F y z dom F < F
165 83 164 gtned F Fin x y F x z F y z F dom F
166 165 ex F Fin x y F x z F y z F dom F
167 166 exlimdv F Fin z x y F x z F y z F dom F
168 167 exlimdvv F Fin x y z x y F x z F y z F dom F
169 82 168 syl5bi F Fin ¬ x y z x y F x z F y = z F dom F
170 169 necon4bd F Fin F = dom F x y z x y F x z F y = z
171 170 imp F Fin F = dom F x y z x y F x z F y = z
172 dffun4 Fun F Rel F x y z x y F x z F y = z
173 72 171 172 sylanbrc F Fin F = dom F Fun F
174 173 ex F Fin F = dom F Fun F
175 3 174 impbid2 F Fin Fun F F = dom F