| Step |
Hyp |
Ref |
Expression |
| 1 |
|
birthday.s |
|
| 2 |
|
birthday.t |
|
| 3 |
2
|
fveq2i |
|
| 4 |
|
fzfi |
|
| 5 |
|
fzfi |
|
| 6 |
|
hashf1 |
|
| 7 |
4 5 6
|
mp2an |
|
| 8 |
3 7
|
eqtri |
|
| 9 |
|
elfznn0 |
|
| 10 |
9
|
adantl |
|
| 11 |
|
hashfz1 |
|
| 12 |
10 11
|
syl |
|
| 13 |
12
|
fveq2d |
|
| 14 |
|
nnnn0 |
|
| 15 |
|
hashfz1 |
|
| 16 |
14 15
|
syl |
|
| 17 |
16
|
adantr |
|
| 18 |
17 12
|
oveq12d |
|
| 19 |
13 18
|
oveq12d |
|
| 20 |
8 19
|
eqtrid |
|
| 21 |
14
|
adantr |
|
| 22 |
21
|
faccld |
|
| 23 |
22
|
nncnd |
|
| 24 |
|
fznn0sub |
|
| 25 |
24
|
adantl |
|
| 26 |
25
|
faccld |
|
| 27 |
26
|
nncnd |
|
| 28 |
26
|
nnne0d |
|
| 29 |
23 27 28
|
divcld |
|
| 30 |
10
|
faccld |
|
| 31 |
30
|
nncnd |
|
| 32 |
30
|
nnne0d |
|
| 33 |
29 31 32
|
divcan2d |
|
| 34 |
|
bcval2 |
|
| 35 |
34
|
adantl |
|
| 36 |
23 27 31 28 32
|
divdiv1d |
|
| 37 |
35 36
|
eqtr4d |
|
| 38 |
37
|
oveq2d |
|
| 39 |
|
fzfid |
|
| 40 |
|
elfznn |
|
| 41 |
40
|
adantl |
|
| 42 |
|
nnrp |
|
| 43 |
42
|
relogcld |
|
| 44 |
43
|
recnd |
|
| 45 |
41 44
|
syl |
|
| 46 |
39 45
|
fsumcl |
|
| 47 |
|
fzfid |
|
| 48 |
|
elfznn |
|
| 49 |
48
|
adantl |
|
| 50 |
49 44
|
syl |
|
| 51 |
47 50
|
fsumcl |
|
| 52 |
|
efsub |
|
| 53 |
46 51 52
|
syl2anc |
|
| 54 |
25
|
nn0red |
|
| 55 |
54
|
ltp1d |
|
| 56 |
|
fzdisj |
|
| 57 |
55 56
|
syl |
|
| 58 |
|
fznn0sub2 |
|
| 59 |
58
|
adantl |
|
| 60 |
|
elfzle2 |
|
| 61 |
59 60
|
syl |
|
| 62 |
61
|
adantr |
|
| 63 |
|
simpr |
|
| 64 |
|
nnuz |
|
| 65 |
63 64
|
eleqtrdi |
|
| 66 |
|
nnz |
|
| 67 |
66
|
ad2antrr |
|
| 68 |
|
elfz5 |
|
| 69 |
65 67 68
|
syl2anc |
|
| 70 |
62 69
|
mpbird |
|
| 71 |
|
fzsplit |
|
| 72 |
70 71
|
syl |
|
| 73 |
|
simpr |
|
| 74 |
73
|
oveq2d |
|
| 75 |
|
fz10 |
|
| 76 |
74 75
|
eqtrdi |
|
| 77 |
76
|
uneq1d |
|
| 78 |
|
uncom |
|
| 79 |
|
un0 |
|
| 80 |
78 79
|
eqtri |
|
| 81 |
73
|
oveq1d |
|
| 82 |
|
1e0p1 |
|
| 83 |
81 82
|
eqtr4di |
|
| 84 |
83
|
oveq1d |
|
| 85 |
80 84
|
eqtrid |
|
| 86 |
77 85
|
eqtr2d |
|
| 87 |
|
elnn0 |
|
| 88 |
25 87
|
sylib |
|
| 89 |
72 86 88
|
mpjaodan |
|
| 90 |
57 89 39 45
|
fsumsplit |
|
| 91 |
90
|
oveq1d |
|
| 92 |
|
fzfid |
|
| 93 |
|
nn0p1nn |
|
| 94 |
25 93
|
syl |
|
| 95 |
|
elfzuz |
|
| 96 |
|
eluznn |
|
| 97 |
94 95 96
|
syl2an |
|
| 98 |
97 44
|
syl |
|
| 99 |
92 98
|
fsumcl |
|
| 100 |
51 99
|
pncan2d |
|
| 101 |
91 100
|
eqtr2d |
|
| 102 |
101
|
fveq2d |
|
| 103 |
22
|
nnne0d |
|
| 104 |
|
eflog |
|
| 105 |
23 103 104
|
syl2anc |
|
| 106 |
|
logfac |
|
| 107 |
21 106
|
syl |
|
| 108 |
107
|
fveq2d |
|
| 109 |
105 108
|
eqtr3d |
|
| 110 |
|
eflog |
|
| 111 |
27 28 110
|
syl2anc |
|
| 112 |
|
logfac |
|
| 113 |
25 112
|
syl |
|
| 114 |
113
|
fveq2d |
|
| 115 |
111 114
|
eqtr3d |
|
| 116 |
109 115
|
oveq12d |
|
| 117 |
53 102 116
|
3eqtr4d |
|
| 118 |
33 38 117
|
3eqtr4d |
|
| 119 |
20 118
|
eqtrd |
|
| 120 |
|
mapvalg |
|
| 121 |
5 4 120
|
mp2an |
|
| 122 |
1 121
|
eqtr4i |
|
| 123 |
122
|
fveq2i |
|
| 124 |
|
hashmap |
|
| 125 |
5 4 124
|
mp2an |
|
| 126 |
123 125
|
eqtri |
|
| 127 |
17 12
|
oveq12d |
|
| 128 |
126 127
|
eqtrid |
|
| 129 |
|
nncn |
|
| 130 |
129
|
adantr |
|
| 131 |
|
nnne0 |
|
| 132 |
131
|
adantr |
|
| 133 |
|
elfzelz |
|
| 134 |
133
|
adantl |
|
| 135 |
|
explog |
|
| 136 |
130 132 134 135
|
syl3anc |
|
| 137 |
128 136
|
eqtrd |
|
| 138 |
119 137
|
oveq12d |
|
| 139 |
10
|
nn0cnd |
|
| 140 |
|
nnrp |
|
| 141 |
140
|
adantr |
|
| 142 |
141
|
relogcld |
|
| 143 |
142
|
recnd |
|
| 144 |
139 143
|
mulcld |
|
| 145 |
|
efsub |
|
| 146 |
99 144 145
|
syl2anc |
|
| 147 |
|
relogdiv |
|
| 148 |
42 141 147
|
syl2anr |
|
| 149 |
97 148
|
syldan |
|
| 150 |
149
|
sumeq2dv |
|
| 151 |
66
|
adantr |
|
| 152 |
25
|
nn0zd |
|
| 153 |
152
|
peano2zd |
|
| 154 |
97
|
nnrpd |
|
| 155 |
141
|
adantr |
|
| 156 |
154 155
|
rpdivcld |
|
| 157 |
156
|
relogcld |
|
| 158 |
157
|
recnd |
|
| 159 |
|
fvoveq1 |
|
| 160 |
151 153 151 158 159
|
fsumrev |
|
| 161 |
130
|
subidd |
|
| 162 |
|
1cnd |
|
| 163 |
130 139 162
|
subsubd |
|
| 164 |
163
|
oveq2d |
|
| 165 |
|
ax-1cn |
|
| 166 |
|
subcl |
|
| 167 |
139 165 166
|
sylancl |
|
| 168 |
130 167
|
nncand |
|
| 169 |
164 168
|
eqtr3d |
|
| 170 |
161 169
|
oveq12d |
|
| 171 |
130
|
adantr |
|
| 172 |
|
elfznn0 |
|
| 173 |
172
|
adantl |
|
| 174 |
173
|
nn0cnd |
|
| 175 |
132
|
adantr |
|
| 176 |
171 174 171 175
|
divsubdird |
|
| 177 |
171 175
|
dividd |
|
| 178 |
177
|
oveq1d |
|
| 179 |
176 178
|
eqtrd |
|
| 180 |
179
|
fveq2d |
|
| 181 |
170 180
|
sumeq12rdv |
|
| 182 |
160 181
|
eqtrd |
|
| 183 |
143
|
adantr |
|
| 184 |
92 98 183
|
fsumsub |
|
| 185 |
|
fsumconst |
|
| 186 |
92 143 185
|
syl2anc |
|
| 187 |
|
1zzd |
|
| 188 |
|
fzen |
|
| 189 |
187 134 152 188
|
syl3anc |
|
| 190 |
25
|
nn0cnd |
|
| 191 |
|
addcom |
|
| 192 |
165 190 191
|
sylancr |
|
| 193 |
139 130
|
pncan3d |
|
| 194 |
192 193
|
oveq12d |
|
| 195 |
189 194
|
breqtrd |
|
| 196 |
|
hasheni |
|
| 197 |
195 196
|
syl |
|
| 198 |
197 12
|
eqtr3d |
|
| 199 |
198
|
oveq1d |
|
| 200 |
186 199
|
eqtrd |
|
| 201 |
200
|
oveq2d |
|
| 202 |
184 201
|
eqtrd |
|
| 203 |
150 182 202
|
3eqtr3rd |
|
| 204 |
203
|
fveq2d |
|
| 205 |
138 146 204
|
3eqtr2d |
|