Metamath Proof Explorer


Theorem hashf1

Description: The permutation number | A | ! x. ( | B | _C | A | ) = | B | ! / ( | B | - | A | ) ! counts the number of injections from A to B . (Contributed by Mario Carneiro, 21-Jan-2015)

Ref Expression
Assertion hashf1 A Fin B Fin f | f : A 1-1 B = A ! ( B A)

Proof

Step Hyp Ref Expression
1 f1eq2 x = f : x 1-1 B f : 1-1 B
2 f1fn f : 1-1 B f Fn
3 fn0 f Fn f =
4 2 3 sylib f : 1-1 B f =
5 f10 : 1-1 B
6 f1eq1 f = f : 1-1 B : 1-1 B
7 5 6 mpbiri f = f : 1-1 B
8 4 7 impbii f : 1-1 B f =
9 velsn f f =
10 8 9 bitr4i f : 1-1 B f
11 1 10 bitrdi x = f : x 1-1 B f
12 11 abbi1dv x = f | f : x 1-1 B =
13 12 fveq2d x = f | f : x 1-1 B =
14 0ex V
15 hashsng V = 1
16 14 15 ax-mp = 1
17 13 16 eqtrdi x = f | f : x 1-1 B = 1
18 fveq2 x = x =
19 hash0 = 0
20 18 19 eqtrdi x = x = 0
21 20 fveq2d x = x ! = 0 !
22 fac0 0 ! = 1
23 21 22 eqtrdi x = x ! = 1
24 20 oveq2d x = ( B x) = ( B 0 )
25 23 24 oveq12d x = x ! ( B x) = 1 ( B 0 )
26 17 25 eqeq12d x = f | f : x 1-1 B = x ! ( B x) 1 = 1 ( B 0 )
27 26 imbi2d x = B Fin f | f : x 1-1 B = x ! ( B x) B Fin 1 = 1 ( B 0 )
28 f1eq2 x = y f : x 1-1 B f : y 1-1 B
29 28 abbidv x = y f | f : x 1-1 B = f | f : y 1-1 B
30 29 fveq2d x = y f | f : x 1-1 B = f | f : y 1-1 B
31 2fveq3 x = y x ! = y !
32 fveq2 x = y x = y
33 32 oveq2d x = y ( B x) = ( B y)
34 31 33 oveq12d x = y x ! ( B x) = y ! ( B y)
35 30 34 eqeq12d x = y f | f : x 1-1 B = x ! ( B x) f | f : y 1-1 B = y ! ( B y)
36 35 imbi2d x = y B Fin f | f : x 1-1 B = x ! ( B x) B Fin f | f : y 1-1 B = y ! ( B y)
37 f1eq2 x = y z f : x 1-1 B f : y z 1-1 B
38 37 abbidv x = y z f | f : x 1-1 B = f | f : y z 1-1 B
39 38 fveq2d x = y z f | f : x 1-1 B = f | f : y z 1-1 B
40 2fveq3 x = y z x ! = y z !
41 fveq2 x = y z x = y z
42 41 oveq2d x = y z ( B x) = ( B y z )
43 40 42 oveq12d x = y z x ! ( B x) = y z ! ( B y z )
44 39 43 eqeq12d x = y z f | f : x 1-1 B = x ! ( B x) f | f : y z 1-1 B = y z ! ( B y z )
45 44 imbi2d x = y z B Fin f | f : x 1-1 B = x ! ( B x) B Fin f | f : y z 1-1 B = y z ! ( B y z )
46 f1eq2 x = A f : x 1-1 B f : A 1-1 B
47 46 abbidv x = A f | f : x 1-1 B = f | f : A 1-1 B
48 47 fveq2d x = A f | f : x 1-1 B = f | f : A 1-1 B
49 2fveq3 x = A x ! = A !
50 fveq2 x = A x = A
51 50 oveq2d x = A ( B x) = ( B A)
52 49 51 oveq12d x = A x ! ( B x) = A ! ( B A)
53 48 52 eqeq12d x = A f | f : x 1-1 B = x ! ( B x) f | f : A 1-1 B = A ! ( B A)
54 53 imbi2d x = A B Fin f | f : x 1-1 B = x ! ( B x) B Fin f | f : A 1-1 B = A ! ( B A)
55 hashcl B Fin B 0
56 bcn0 B 0 ( B 0 ) = 1
57 55 56 syl B Fin ( B 0 ) = 1
58 57 oveq2d B Fin 1 ( B 0 ) = 1 1
59 1t1e1 1 1 = 1
60 58 59 eqtr2di B Fin 1 = 1 ( B 0 )
61 abn0 f | f : y z 1-1 B f f : y z 1-1 B
62 f1domg B Fin f : y z 1-1 B y z B
63 62 adantr B Fin y Fin ¬ z y f : y z 1-1 B y z B
64 hashunsng z V y Fin ¬ z y y z = y + 1
65 64 elv y Fin ¬ z y y z = y + 1
66 65 adantl B Fin y Fin ¬ z y y z = y + 1
67 66 breq1d B Fin y Fin ¬ z y y z B y + 1 B
68 simprl B Fin y Fin ¬ z y y Fin
69 snfi z Fin
70 unfi y Fin z Fin y z Fin
71 68 69 70 sylancl B Fin y Fin ¬ z y y z Fin
72 simpl B Fin y Fin ¬ z y B Fin
73 hashdom y z Fin B Fin y z B y z B
74 71 72 73 syl2anc B Fin y Fin ¬ z y y z B y z B
75 hashcl y Fin y 0
76 75 ad2antrl B Fin y Fin ¬ z y y 0
77 nn0p1nn y 0 y + 1
78 76 77 syl B Fin y Fin ¬ z y y + 1
79 78 nnred B Fin y Fin ¬ z y y + 1
80 55 adantr B Fin y Fin ¬ z y B 0
81 80 nn0red B Fin y Fin ¬ z y B
82 79 81 lenltd B Fin y Fin ¬ z y y + 1 B ¬ B < y + 1
83 67 74 82 3bitr3d B Fin y Fin ¬ z y y z B ¬ B < y + 1
84 63 83 sylibd B Fin y Fin ¬ z y f : y z 1-1 B ¬ B < y + 1
85 84 exlimdv B Fin y Fin ¬ z y f f : y z 1-1 B ¬ B < y + 1
86 61 85 syl5bi B Fin y Fin ¬ z y f | f : y z 1-1 B ¬ B < y + 1
87 86 necon4ad B Fin y Fin ¬ z y B < y + 1 f | f : y z 1-1 B =
88 87 imp B Fin y Fin ¬ z y B < y + 1 f | f : y z 1-1 B =
89 88 fveq2d B Fin y Fin ¬ z y B < y + 1 f | f : y z 1-1 B =
90 hashcl y z Fin y z 0
91 71 90 syl B Fin y Fin ¬ z y y z 0
92 91 faccld B Fin y Fin ¬ z y y z !
93 92 nncnd B Fin y Fin ¬ z y y z !
94 93 adantr B Fin y Fin ¬ z y B < y + 1 y z !
95 94 mul01d B Fin y Fin ¬ z y B < y + 1 y z ! 0 = 0
96 19 89 95 3eqtr4a B Fin y Fin ¬ z y B < y + 1 f | f : y z 1-1 B = y z ! 0
97 66 adantr B Fin y Fin ¬ z y B < y + 1 y z = y + 1
98 97 oveq2d B Fin y Fin ¬ z y B < y + 1 ( B y z ) = ( B y + 1 )
99 80 adantr B Fin y Fin ¬ z y B < y + 1 B 0
100 78 adantr B Fin y Fin ¬ z y B < y + 1 y + 1
101 100 nnzd B Fin y Fin ¬ z y B < y + 1 y + 1
102 animorr B Fin y Fin ¬ z y B < y + 1 y + 1 < 0 B < y + 1
103 bcval4 B 0 y + 1 y + 1 < 0 B < y + 1 ( B y + 1 ) = 0
104 99 101 102 103 syl3anc B Fin y Fin ¬ z y B < y + 1 ( B y + 1 ) = 0
105 98 104 eqtrd B Fin y Fin ¬ z y B < y + 1 ( B y z ) = 0
106 105 oveq2d B Fin y Fin ¬ z y B < y + 1 y z ! ( B y z ) = y z ! 0
107 96 106 eqtr4d B Fin y Fin ¬ z y B < y + 1 f | f : y z 1-1 B = y z ! ( B y z )
108 107 a1d B Fin y Fin ¬ z y B < y + 1 f | f : y 1-1 B = y ! ( B y) f | f : y z 1-1 B = y z ! ( B y z )
109 oveq2 f | f : y 1-1 B = y ! ( B y) B y f | f : y 1-1 B = B y y ! ( B y)
110 68 adantr B Fin y Fin ¬ z y y + 1 B y Fin
111 72 adantr B Fin y Fin ¬ z y y + 1 B B Fin
112 simplrr B Fin y Fin ¬ z y y + 1 B ¬ z y
113 simpr B Fin y Fin ¬ z y y + 1 B y + 1 B
114 110 111 112 113 hashf1lem2 B Fin y Fin ¬ z y y + 1 B f | f : y z 1-1 B = B y f | f : y 1-1 B
115 80 adantr B Fin y Fin ¬ z y y + 1 B B 0
116 115 faccld B Fin y Fin ¬ z y y + 1 B B !
117 116 nncnd B Fin y Fin ¬ z y y + 1 B B !
118 76 adantr B Fin y Fin ¬ z y y + 1 B y 0
119 peano2nn0 y 0 y + 1 0
120 118 119 syl B Fin y Fin ¬ z y y + 1 B y + 1 0
121 nn0sub2 y + 1 0 B 0 y + 1 B B y + 1 0
122 120 115 113 121 syl3anc B Fin y Fin ¬ z y y + 1 B B y + 1 0
123 122 faccld B Fin y Fin ¬ z y y + 1 B B y + 1 !
124 123 nncnd B Fin y Fin ¬ z y y + 1 B B y + 1 !
125 123 nnne0d B Fin y Fin ¬ z y y + 1 B B y + 1 ! 0
126 117 124 125 divcld B Fin y Fin ¬ z y y + 1 B B ! B y + 1 !
127 120 faccld B Fin y Fin ¬ z y y + 1 B y + 1 !
128 127 nncnd B Fin y Fin ¬ z y y + 1 B y + 1 !
129 127 nnne0d B Fin y Fin ¬ z y y + 1 B y + 1 ! 0
130 126 128 129 divcan2d B Fin y Fin ¬ z y y + 1 B y + 1 ! B ! B y + 1 ! y + 1 ! = B ! B y + 1 !
131 115 nn0cnd B Fin y Fin ¬ z y y + 1 B B
132 118 nn0cnd B Fin y Fin ¬ z y y + 1 B y
133 131 132 subcld B Fin y Fin ¬ z y y + 1 B B y
134 ax-1cn 1
135 npcan B y 1 B y - 1 + 1 = B y
136 133 134 135 sylancl B Fin y Fin ¬ z y y + 1 B B y - 1 + 1 = B y
137 1cnd B Fin y Fin ¬ z y y + 1 B 1
138 131 132 137 subsub4d B Fin y Fin ¬ z y y + 1 B B - y - 1 = B y + 1
139 138 122 eqeltrd B Fin y Fin ¬ z y y + 1 B B - y - 1 0
140 nn0p1nn B - y - 1 0 B y - 1 + 1
141 139 140 syl B Fin y Fin ¬ z y y + 1 B B y - 1 + 1
142 136 141 eqeltrrd B Fin y Fin ¬ z y y + 1 B B y
143 142 nnne0d B Fin y Fin ¬ z y y + 1 B B y 0
144 126 133 143 divcan2d B Fin y Fin ¬ z y y + 1 B B y B ! B y + 1 ! B y = B ! B y + 1 !
145 130 144 eqtr4d B Fin y Fin ¬ z y y + 1 B y + 1 ! B ! B y + 1 ! y + 1 ! = B y B ! B y + 1 ! B y
146 66 adantr B Fin y Fin ¬ z y y + 1 B y z = y + 1
147 146 fveq2d B Fin y Fin ¬ z y y + 1 B y z ! = y + 1 !
148 nn0uz 0 = 0
149 120 148 eleqtrdi B Fin y Fin ¬ z y y + 1 B y + 1 0
150 115 nn0zd B Fin y Fin ¬ z y y + 1 B B
151 elfz5 y + 1 0 B y + 1 0 B y + 1 B
152 149 150 151 syl2anc B Fin y Fin ¬ z y y + 1 B y + 1 0 B y + 1 B
153 113 152 mpbird B Fin y Fin ¬ z y y + 1 B y + 1 0 B
154 bcval2 y + 1 0 B ( B y + 1 ) = B ! B y + 1 ! y + 1 !
155 153 154 syl B Fin y Fin ¬ z y y + 1 B ( B y + 1 ) = B ! B y + 1 ! y + 1 !
156 146 oveq2d B Fin y Fin ¬ z y y + 1 B ( B y z ) = ( B y + 1 )
157 117 124 128 125 129 divdiv1d B Fin y Fin ¬ z y y + 1 B B ! B y + 1 ! y + 1 ! = B ! B y + 1 ! y + 1 !
158 155 156 157 3eqtr4d B Fin y Fin ¬ z y y + 1 B ( B y z ) = B ! B y + 1 ! y + 1 !
159 147 158 oveq12d B Fin y Fin ¬ z y y + 1 B y z ! ( B y z ) = y + 1 ! B ! B y + 1 ! y + 1 !
160 118 148 eleqtrdi B Fin y Fin ¬ z y y + 1 B y 0
161 peano2fzr y 0 y + 1 0 B y 0 B
162 160 153 161 syl2anc B Fin y Fin ¬ z y y + 1 B y 0 B
163 bcval2 y 0 B ( B y) = B ! B y ! y !
164 162 163 syl B Fin y Fin ¬ z y y + 1 B ( B y) = B ! B y ! y !
165 elfzle2 y 0 B y B
166 162 165 syl B Fin y Fin ¬ z y y + 1 B y B
167 nn0sub2 y 0 B 0 y B B y 0
168 118 115 166 167 syl3anc B Fin y Fin ¬ z y y + 1 B B y 0
169 168 faccld B Fin y Fin ¬ z y y + 1 B B y !
170 169 nncnd B Fin y Fin ¬ z y y + 1 B B y !
171 118 faccld B Fin y Fin ¬ z y y + 1 B y !
172 171 nncnd B Fin y Fin ¬ z y y + 1 B y !
173 169 nnne0d B Fin y Fin ¬ z y y + 1 B B y ! 0
174 171 nnne0d B Fin y Fin ¬ z y y + 1 B y ! 0
175 117 170 172 173 174 divdiv1d B Fin y Fin ¬ z y y + 1 B B ! B y ! y ! = B ! B y ! y !
176 164 175 eqtr4d B Fin y Fin ¬ z y y + 1 B ( B y) = B ! B y ! y !
177 176 oveq2d B Fin y Fin ¬ z y y + 1 B y ! ( B y) = y ! B ! B y ! y !
178 facnn2 B y B y ! = B - y - 1 ! B y
179 142 178 syl B Fin y Fin ¬ z y y + 1 B B y ! = B - y - 1 ! B y
180 138 fveq2d B Fin y Fin ¬ z y y + 1 B B - y - 1 ! = B y + 1 !
181 180 oveq1d B Fin y Fin ¬ z y y + 1 B B - y - 1 ! B y = B y + 1 ! B y
182 179 181 eqtrd B Fin y Fin ¬ z y y + 1 B B y ! = B y + 1 ! B y
183 182 oveq2d B Fin y Fin ¬ z y y + 1 B B ! B y ! = B ! B y + 1 ! B y
184 117 170 173 divcld B Fin y Fin ¬ z y y + 1 B B ! B y !
185 184 172 174 divcan2d B Fin y Fin ¬ z y y + 1 B y ! B ! B y ! y ! = B ! B y !
186 117 124 133 125 143 divdiv1d B Fin y Fin ¬ z y y + 1 B B ! B y + 1 ! B y = B ! B y + 1 ! B y
187 183 185 186 3eqtr4d B Fin y Fin ¬ z y y + 1 B y ! B ! B y ! y ! = B ! B y + 1 ! B y
188 177 187 eqtrd B Fin y Fin ¬ z y y + 1 B y ! ( B y) = B ! B y + 1 ! B y
189 188 oveq2d B Fin y Fin ¬ z y y + 1 B B y y ! ( B y) = B y B ! B y + 1 ! B y
190 145 159 189 3eqtr4d B Fin y Fin ¬ z y y + 1 B y z ! ( B y z ) = B y y ! ( B y)
191 114 190 eqeq12d B Fin y Fin ¬ z y y + 1 B f | f : y z 1-1 B = y z ! ( B y z ) B y f | f : y 1-1 B = B y y ! ( B y)
192 109 191 syl5ibr B Fin y Fin ¬ z y y + 1 B f | f : y 1-1 B = y ! ( B y) f | f : y z 1-1 B = y z ! ( B y z )
193 108 192 81 79 ltlecasei B Fin y Fin ¬ z y f | f : y 1-1 B = y ! ( B y) f | f : y z 1-1 B = y z ! ( B y z )
194 193 expcom y Fin ¬ z y B Fin f | f : y 1-1 B = y ! ( B y) f | f : y z 1-1 B = y z ! ( B y z )
195 194 a2d y Fin ¬ z y B Fin f | f : y 1-1 B = y ! ( B y) B Fin f | f : y z 1-1 B = y z ! ( B y z )
196 27 36 45 54 60 195 findcard2s A Fin B Fin f | f : A 1-1 B = A ! ( B A)
197 196 imp A Fin B Fin f | f : A 1-1 B = A ! ( B A)