Step | Hyp | Ref
| Expression |
1 | | 2nn 12282 |
. . . . . . . . . 10
β’ 2 β
β |
2 | 1 | a1i 11 |
. . . . . . . . 9
β’ (π β 2 β
β) |
3 | | sadaddlem.3 |
. . . . . . . . 9
β’ (π β π β
β0) |
4 | 2, 3 | nnexpcld 14205 |
. . . . . . . 8
β’ (π β (2βπ) β β) |
5 | 4 | nnzd 12582 |
. . . . . . 7
β’ (π β (2βπ) β β€) |
6 | | sadaddlem.1 |
. . . . . . . 8
β’ (π β π΄ β β€) |
7 | | inss1 4228 |
. . . . . . . . . . . 12
β’
((bitsβπ΄)
β© (0..^π)) β
(bitsβπ΄) |
8 | | bitsss 16364 |
. . . . . . . . . . . 12
β’
(bitsβπ΄)
β β0 |
9 | 7, 8 | sstri 3991 |
. . . . . . . . . . 11
β’
((bitsβπ΄)
β© (0..^π)) β
β0 |
10 | | fzofi 13936 |
. . . . . . . . . . . 12
β’
(0..^π) β
Fin |
11 | | inss2 4229 |
. . . . . . . . . . . 12
β’
((bitsβπ΄)
β© (0..^π)) β
(0..^π) |
12 | | ssfi 9170 |
. . . . . . . . . . . 12
β’
(((0..^π) β Fin
β§ ((bitsβπ΄) β©
(0..^π)) β (0..^π)) β ((bitsβπ΄) β© (0..^π)) β Fin) |
13 | 10, 11, 12 | mp2an 691 |
. . . . . . . . . . 11
β’
((bitsβπ΄)
β© (0..^π)) β
Fin |
14 | | elfpw 9351 |
. . . . . . . . . . 11
β’
(((bitsβπ΄)
β© (0..^π)) β
(π« β0 β© Fin) β (((bitsβπ΄) β© (0..^π)) β β0 β§
((bitsβπ΄) β©
(0..^π)) β
Fin)) |
15 | 9, 13, 14 | mpbir2an 710 |
. . . . . . . . . 10
β’
((bitsβπ΄)
β© (0..^π)) β
(π« β0 β© Fin) |
16 | | bitsf1o 16383 |
. . . . . . . . . . . . 13
β’ (bits
βΎ β0):β0β1-1-ontoβ(π« β0 β©
Fin) |
17 | | f1ocnv 6843 |
. . . . . . . . . . . . 13
β’ ((bits
βΎ β0):β0β1-1-ontoβ(π« β0 β© Fin)
β β‘(bits βΎ
β0):(π« β0 β© Fin)β1-1-ontoββ0) |
18 | | f1of 6831 |
. . . . . . . . . . . . 13
β’ (β‘(bits βΎ
β0):(π« β0 β© Fin)β1-1-ontoββ0 β β‘(bits βΎ
β0):(π« β0 β©
Fin)βΆβ0) |
19 | 16, 17, 18 | mp2b 10 |
. . . . . . . . . . . 12
β’ β‘(bits βΎ
β0):(π« β0 β©
Fin)βΆβ0 |
20 | | sadaddlem.k |
. . . . . . . . . . . . 13
β’ πΎ = β‘(bits βΎ
β0) |
21 | 20 | feq1i 6706 |
. . . . . . . . . . . 12
β’ (πΎ:(π« β0
β© Fin)βΆβ0 β β‘(bits βΎ
β0):(π« β0 β©
Fin)βΆβ0) |
22 | 19, 21 | mpbir 230 |
. . . . . . . . . . 11
β’ πΎ:(π« β0
β© Fin)βΆβ0 |
23 | 22 | ffvelcdmi 7083 |
. . . . . . . . . 10
β’
(((bitsβπ΄)
β© (0..^π)) β
(π« β0 β© Fin) β (πΎβ((bitsβπ΄) β© (0..^π))) β
β0) |
24 | 15, 23 | mp1i 13 |
. . . . . . . . 9
β’ (π β (πΎβ((bitsβπ΄) β© (0..^π))) β
β0) |
25 | 24 | nn0zd 12581 |
. . . . . . . 8
β’ (π β (πΎβ((bitsβπ΄) β© (0..^π))) β β€) |
26 | 6, 25 | zsubcld 12668 |
. . . . . . 7
β’ (π β (π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) β β€) |
27 | | sadaddlem.2 |
. . . . . . . 8
β’ (π β π΅ β β€) |
28 | | inss1 4228 |
. . . . . . . . . . . 12
β’
((bitsβπ΅)
β© (0..^π)) β
(bitsβπ΅) |
29 | | bitsss 16364 |
. . . . . . . . . . . 12
β’
(bitsβπ΅)
β β0 |
30 | 28, 29 | sstri 3991 |
. . . . . . . . . . 11
β’
((bitsβπ΅)
β© (0..^π)) β
β0 |
31 | | inss2 4229 |
. . . . . . . . . . . 12
β’
((bitsβπ΅)
β© (0..^π)) β
(0..^π) |
32 | | ssfi 9170 |
. . . . . . . . . . . 12
β’
(((0..^π) β Fin
β§ ((bitsβπ΅) β©
(0..^π)) β (0..^π)) β ((bitsβπ΅) β© (0..^π)) β Fin) |
33 | 10, 31, 32 | mp2an 691 |
. . . . . . . . . . 11
β’
((bitsβπ΅)
β© (0..^π)) β
Fin |
34 | | elfpw 9351 |
. . . . . . . . . . 11
β’
(((bitsβπ΅)
β© (0..^π)) β
(π« β0 β© Fin) β (((bitsβπ΅) β© (0..^π)) β β0 β§
((bitsβπ΅) β©
(0..^π)) β
Fin)) |
35 | 30, 33, 34 | mpbir2an 710 |
. . . . . . . . . 10
β’
((bitsβπ΅)
β© (0..^π)) β
(π« β0 β© Fin) |
36 | 22 | ffvelcdmi 7083 |
. . . . . . . . . 10
β’
(((bitsβπ΅)
β© (0..^π)) β
(π« β0 β© Fin) β (πΎβ((bitsβπ΅) β© (0..^π))) β
β0) |
37 | 35, 36 | mp1i 13 |
. . . . . . . . 9
β’ (π β (πΎβ((bitsβπ΅) β© (0..^π))) β
β0) |
38 | 37 | nn0zd 12581 |
. . . . . . . 8
β’ (π β (πΎβ((bitsβπ΅) β© (0..^π))) β β€) |
39 | 27, 38 | zsubcld 12668 |
. . . . . . 7
β’ (π β (π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) β β€) |
40 | 20 | fveq1i 6890 |
. . . . . . . . . . . 12
β’ (πΎβ((bitsβπ΄) β© (0..^π))) = (β‘(bits βΎ
β0)β((bitsβπ΄) β© (0..^π))) |
41 | 6, 4 | zmodcld 13854 |
. . . . . . . . . . . . . . 15
β’ (π β (π΄ mod (2βπ)) β
β0) |
42 | 41 | fvresd 6909 |
. . . . . . . . . . . . . 14
β’ (π β ((bits βΎ
β0)β(π΄ mod (2βπ))) = (bitsβ(π΄ mod (2βπ)))) |
43 | | bitsmod 16374 |
. . . . . . . . . . . . . . 15
β’ ((π΄ β β€ β§ π β β0)
β (bitsβ(π΄ mod
(2βπ))) =
((bitsβπ΄) β©
(0..^π))) |
44 | 6, 3, 43 | syl2anc 585 |
. . . . . . . . . . . . . 14
β’ (π β (bitsβ(π΄ mod (2βπ))) = ((bitsβπ΄) β© (0..^π))) |
45 | 42, 44 | eqtrd 2773 |
. . . . . . . . . . . . 13
β’ (π β ((bits βΎ
β0)β(π΄ mod (2βπ))) = ((bitsβπ΄) β© (0..^π))) |
46 | | f1ocnvfv 7273 |
. . . . . . . . . . . . . 14
β’ (((bits
βΎ β0):β0β1-1-ontoβ(π« β0 β© Fin)
β§ (π΄ mod (2βπ)) β β0)
β (((bits βΎ β0)β(π΄ mod (2βπ))) = ((bitsβπ΄) β© (0..^π)) β (β‘(bits βΎ
β0)β((bitsβπ΄) β© (0..^π))) = (π΄ mod (2βπ)))) |
47 | 16, 41, 46 | sylancr 588 |
. . . . . . . . . . . . 13
β’ (π β (((bits βΎ
β0)β(π΄ mod (2βπ))) = ((bitsβπ΄) β© (0..^π)) β (β‘(bits βΎ
β0)β((bitsβπ΄) β© (0..^π))) = (π΄ mod (2βπ)))) |
48 | 45, 47 | mpd 15 |
. . . . . . . . . . . 12
β’ (π β (β‘(bits βΎ
β0)β((bitsβπ΄) β© (0..^π))) = (π΄ mod (2βπ))) |
49 | 40, 48 | eqtrid 2785 |
. . . . . . . . . . 11
β’ (π β (πΎβ((bitsβπ΄) β© (0..^π))) = (π΄ mod (2βπ))) |
50 | 49 | oveq2d 7422 |
. . . . . . . . . 10
β’ (π β (π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) = (π΄ β (π΄ mod (2βπ)))) |
51 | 50 | oveq1d 7421 |
. . . . . . . . 9
β’ (π β ((π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) / (2βπ)) = ((π΄ β (π΄ mod (2βπ))) / (2βπ))) |
52 | 6 | zred 12663 |
. . . . . . . . . 10
β’ (π β π΄ β β) |
53 | 4 | nnrpd 13011 |
. . . . . . . . . 10
β’ (π β (2βπ) β
β+) |
54 | | moddifz 13845 |
. . . . . . . . . 10
β’ ((π΄ β β β§
(2βπ) β
β+) β ((π΄ β (π΄ mod (2βπ))) / (2βπ)) β β€) |
55 | 52, 53, 54 | syl2anc 585 |
. . . . . . . . 9
β’ (π β ((π΄ β (π΄ mod (2βπ))) / (2βπ)) β β€) |
56 | 51, 55 | eqeltrd 2834 |
. . . . . . . 8
β’ (π β ((π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) / (2βπ)) β β€) |
57 | 4 | nnne0d 12259 |
. . . . . . . . 9
β’ (π β (2βπ) β 0) |
58 | | dvdsval2 16197 |
. . . . . . . . 9
β’
(((2βπ) β
β€ β§ (2βπ)
β 0 β§ (π΄ β
(πΎβ((bitsβπ΄) β© (0..^π)))) β β€) β ((2βπ) β₯ (π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) β ((π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) / (2βπ)) β β€)) |
59 | 5, 57, 26, 58 | syl3anc 1372 |
. . . . . . . 8
β’ (π β ((2βπ) β₯ (π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) β ((π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) / (2βπ)) β β€)) |
60 | 56, 59 | mpbird 257 |
. . . . . . 7
β’ (π β (2βπ) β₯ (π΄ β (πΎβ((bitsβπ΄) β© (0..^π))))) |
61 | 20 | fveq1i 6890 |
. . . . . . . . . . . 12
β’ (πΎβ((bitsβπ΅) β© (0..^π))) = (β‘(bits βΎ
β0)β((bitsβπ΅) β© (0..^π))) |
62 | 27, 4 | zmodcld 13854 |
. . . . . . . . . . . . . . 15
β’ (π β (π΅ mod (2βπ)) β
β0) |
63 | 62 | fvresd 6909 |
. . . . . . . . . . . . . 14
β’ (π β ((bits βΎ
β0)β(π΅ mod (2βπ))) = (bitsβ(π΅ mod (2βπ)))) |
64 | | bitsmod 16374 |
. . . . . . . . . . . . . . 15
β’ ((π΅ β β€ β§ π β β0)
β (bitsβ(π΅ mod
(2βπ))) =
((bitsβπ΅) β©
(0..^π))) |
65 | 27, 3, 64 | syl2anc 585 |
. . . . . . . . . . . . . 14
β’ (π β (bitsβ(π΅ mod (2βπ))) = ((bitsβπ΅) β© (0..^π))) |
66 | 63, 65 | eqtrd 2773 |
. . . . . . . . . . . . 13
β’ (π β ((bits βΎ
β0)β(π΅ mod (2βπ))) = ((bitsβπ΅) β© (0..^π))) |
67 | | f1ocnvfv 7273 |
. . . . . . . . . . . . . 14
β’ (((bits
βΎ β0):β0β1-1-ontoβ(π« β0 β© Fin)
β§ (π΅ mod (2βπ)) β β0)
β (((bits βΎ β0)β(π΅ mod (2βπ))) = ((bitsβπ΅) β© (0..^π)) β (β‘(bits βΎ
β0)β((bitsβπ΅) β© (0..^π))) = (π΅ mod (2βπ)))) |
68 | 16, 62, 67 | sylancr 588 |
. . . . . . . . . . . . 13
β’ (π β (((bits βΎ
β0)β(π΅ mod (2βπ))) = ((bitsβπ΅) β© (0..^π)) β (β‘(bits βΎ
β0)β((bitsβπ΅) β© (0..^π))) = (π΅ mod (2βπ)))) |
69 | 66, 68 | mpd 15 |
. . . . . . . . . . . 12
β’ (π β (β‘(bits βΎ
β0)β((bitsβπ΅) β© (0..^π))) = (π΅ mod (2βπ))) |
70 | 61, 69 | eqtrid 2785 |
. . . . . . . . . . 11
β’ (π β (πΎβ((bitsβπ΅) β© (0..^π))) = (π΅ mod (2βπ))) |
71 | 70 | oveq2d 7422 |
. . . . . . . . . 10
β’ (π β (π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) = (π΅ β (π΅ mod (2βπ)))) |
72 | 71 | oveq1d 7421 |
. . . . . . . . 9
β’ (π β ((π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) / (2βπ)) = ((π΅ β (π΅ mod (2βπ))) / (2βπ))) |
73 | 27 | zred 12663 |
. . . . . . . . . 10
β’ (π β π΅ β β) |
74 | | moddifz 13845 |
. . . . . . . . . 10
β’ ((π΅ β β β§
(2βπ) β
β+) β ((π΅ β (π΅ mod (2βπ))) / (2βπ)) β β€) |
75 | 73, 53, 74 | syl2anc 585 |
. . . . . . . . 9
β’ (π β ((π΅ β (π΅ mod (2βπ))) / (2βπ)) β β€) |
76 | 72, 75 | eqeltrd 2834 |
. . . . . . . 8
β’ (π β ((π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) / (2βπ)) β β€) |
77 | | dvdsval2 16197 |
. . . . . . . . 9
β’
(((2βπ) β
β€ β§ (2βπ)
β 0 β§ (π΅ β
(πΎβ((bitsβπ΅) β© (0..^π)))) β β€) β ((2βπ) β₯ (π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) β ((π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) / (2βπ)) β β€)) |
78 | 5, 57, 39, 77 | syl3anc 1372 |
. . . . . . . 8
β’ (π β ((2βπ) β₯ (π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) β ((π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))) / (2βπ)) β β€)) |
79 | 76, 78 | mpbird 257 |
. . . . . . 7
β’ (π β (2βπ) β₯ (π΅ β (πΎβ((bitsβπ΅) β© (0..^π))))) |
80 | 5, 26, 39, 60, 79 | dvds2addd 16232 |
. . . . . 6
β’ (π β (2βπ) β₯ ((π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) + (π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))))) |
81 | 6 | zcnd 12664 |
. . . . . . 7
β’ (π β π΄ β β) |
82 | 27 | zcnd 12664 |
. . . . . . 7
β’ (π β π΅ β β) |
83 | 24 | nn0cnd 12531 |
. . . . . . 7
β’ (π β (πΎβ((bitsβπ΄) β© (0..^π))) β β) |
84 | 37 | nn0cnd 12531 |
. . . . . . 7
β’ (π β (πΎβ((bitsβπ΅) β© (0..^π))) β β) |
85 | 81, 82, 83, 84 | addsub4d 11615 |
. . . . . 6
β’ (π β ((π΄ + π΅) β ((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π))))) = ((π΄ β (πΎβ((bitsβπ΄) β© (0..^π)))) + (π΅ β (πΎβ((bitsβπ΅) β© (0..^π)))))) |
86 | 80, 85 | breqtrrd 5176 |
. . . . 5
β’ (π β (2βπ) β₯ ((π΄ + π΅) β ((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π)))))) |
87 | 6, 27 | zaddcld 12667 |
. . . . . 6
β’ (π β (π΄ + π΅) β β€) |
88 | 25, 38 | zaddcld 12667 |
. . . . . 6
β’ (π β ((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π)))) β β€) |
89 | | moddvds 16205 |
. . . . . 6
β’
(((2βπ) β
β β§ (π΄ + π΅) β β€ β§ ((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π)))) β β€) β (((π΄ + π΅) mod (2βπ)) = (((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π)))) mod (2βπ)) β (2βπ) β₯ ((π΄ + π΅) β ((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π))))))) |
90 | 4, 87, 88, 89 | syl3anc 1372 |
. . . . 5
β’ (π β (((π΄ + π΅) mod (2βπ)) = (((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π)))) mod (2βπ)) β (2βπ) β₯ ((π΄ + π΅) β ((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π))))))) |
91 | 86, 90 | mpbird 257 |
. . . 4
β’ (π β ((π΄ + π΅) mod (2βπ)) = (((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π)))) mod (2βπ))) |
92 | 8 | a1i 11 |
. . . . 5
β’ (π β (bitsβπ΄) β
β0) |
93 | 29 | a1i 11 |
. . . . 5
β’ (π β (bitsβπ΅) β
β0) |
94 | | sadaddlem.c |
. . . . 5
β’ πΆ = seq0((π β 2o, π β β0 β¦
if(cadd(π β
(bitsβπ΄), π β (bitsβπ΅), β
β π), 1o, β
)),
(π β
β0 β¦ if(π = 0, β
, (π β 1)))) |
95 | 92, 93, 94, 3, 20 | sadadd3 16399 |
. . . 4
β’ (π β ((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) mod (2βπ)) = (((πΎβ((bitsβπ΄) β© (0..^π))) + (πΎβ((bitsβπ΅) β© (0..^π)))) mod (2βπ))) |
96 | | inss1 4228 |
. . . . . . . . 9
β’
(((bitsβπ΄)
sadd (bitsβπ΅)) β©
(0..^π)) β
((bitsβπ΄) sadd
(bitsβπ΅)) |
97 | | sadcl 16400 |
. . . . . . . . . 10
β’
(((bitsβπ΄)
β β0 β§ (bitsβπ΅) β β0) β
((bitsβπ΄) sadd
(bitsβπ΅)) β
β0) |
98 | 8, 29, 97 | mp2an 691 |
. . . . . . . . 9
β’
((bitsβπ΄) sadd
(bitsβπ΅)) β
β0 |
99 | 96, 98 | sstri 3991 |
. . . . . . . 8
β’
(((bitsβπ΄)
sadd (bitsβπ΅)) β©
(0..^π)) β
β0 |
100 | | inss2 4229 |
. . . . . . . . 9
β’
(((bitsβπ΄)
sadd (bitsβπ΅)) β©
(0..^π)) β (0..^π) |
101 | | ssfi 9170 |
. . . . . . . . 9
β’
(((0..^π) β Fin
β§ (((bitsβπ΄) sadd
(bitsβπ΅)) β©
(0..^π)) β (0..^π)) β (((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)) β Fin) |
102 | 10, 100, 101 | mp2an 691 |
. . . . . . . 8
β’
(((bitsβπ΄)
sadd (bitsβπ΅)) β©
(0..^π)) β
Fin |
103 | | elfpw 9351 |
. . . . . . . 8
β’
((((bitsβπ΄)
sadd (bitsβπ΅)) β©
(0..^π)) β (π«
β0 β© Fin) β ((((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)) β β0 β§
(((bitsβπ΄) sadd
(bitsβπ΅)) β©
(0..^π)) β
Fin)) |
104 | 99, 102, 103 | mpbir2an 710 |
. . . . . . 7
β’
(((bitsβπ΄)
sadd (bitsβπ΅)) β©
(0..^π)) β (π«
β0 β© Fin) |
105 | 22 | ffvelcdmi 7083 |
. . . . . . 7
β’
((((bitsβπ΄)
sadd (bitsβπ΅)) β©
(0..^π)) β (π«
β0 β© Fin) β (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β
β0) |
106 | 104, 105 | mp1i 13 |
. . . . . 6
β’ (π β (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β
β0) |
107 | 106 | nn0red 12530 |
. . . . 5
β’ (π β (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β β) |
108 | 106 | nn0ge0d 12532 |
. . . . 5
β’ (π β 0 β€ (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) |
109 | 20 | fveq1i 6890 |
. . . . . . . . . 10
β’ (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) = (β‘(bits βΎ
β0)β(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) |
110 | 109 | fveq2i 6892 |
. . . . . . . . 9
β’ ((bits
βΎ β0)β(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) = ((bits βΎ
β0)β(β‘(bits
βΎ β0)β(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) |
111 | 106 | fvresd 6909 |
. . . . . . . . 9
β’ (π β ((bits βΎ
β0)β(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) = (bitsβ(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))))) |
112 | 104 | a1i 11 |
. . . . . . . . . 10
β’ (π β (((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)) β (π« β0
β© Fin)) |
113 | | f1ocnvfv2 7272 |
. . . . . . . . . 10
β’ (((bits
βΎ β0):β0β1-1-ontoβ(π« β0 β© Fin)
β§ (((bitsβπ΄) sadd
(bitsβπ΅)) β©
(0..^π)) β (π«
β0 β© Fin)) β ((bits βΎ
β0)β(β‘(bits
βΎ β0)β(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) = (((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) |
114 | 16, 112, 113 | sylancr 588 |
. . . . . . . . 9
β’ (π β ((bits βΎ
β0)β(β‘(bits
βΎ β0)β(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) = (((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) |
115 | 110, 111,
114 | 3eqtr3a 2797 |
. . . . . . . 8
β’ (π β (bitsβ(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) = (((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) |
116 | 115, 100 | eqsstrdi 4036 |
. . . . . . 7
β’ (π β (bitsβ(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) β (0..^π)) |
117 | 106 | nn0zd 12581 |
. . . . . . . 8
β’ (π β (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β β€) |
118 | | bitsfzo 16373 |
. . . . . . . 8
β’ (((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β β€ β§ π β β0) β ((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β (0..^(2βπ)) β (bitsβ(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) β (0..^π))) |
119 | 117, 3, 118 | syl2anc 585 |
. . . . . . 7
β’ (π β ((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β (0..^(2βπ)) β (bitsβ(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) β (0..^π))) |
120 | 116, 119 | mpbird 257 |
. . . . . 6
β’ (π β (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β (0..^(2βπ))) |
121 | | elfzolt2 13638 |
. . . . . 6
β’ ((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β (0..^(2βπ)) β (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) < (2βπ)) |
122 | 120, 121 | syl 17 |
. . . . 5
β’ (π β (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) < (2βπ)) |
123 | | modid 13858 |
. . . . 5
β’ ((((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β β β§ (2βπ) β β+)
β§ (0 β€ (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) β§ (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) < (2βπ))) β ((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) mod (2βπ)) = (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) |
124 | 107, 53, 108, 122, 123 | syl22anc 838 |
. . . 4
β’ (π β ((πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))) mod (2βπ)) = (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) |
125 | 91, 95, 124 | 3eqtr2d 2779 |
. . 3
β’ (π β ((π΄ + π΅) mod (2βπ)) = (πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)))) |
126 | 125 | fveq2d 6893 |
. 2
β’ (π β (bitsβ((π΄ + π΅) mod (2βπ))) = (bitsβ(πΎβ(((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π))))) |
127 | 126, 115 | eqtr2d 2774 |
1
β’ (π β (((bitsβπ΄) sadd (bitsβπ΅)) β© (0..^π)) = (bitsβ((π΄ + π΅) mod (2βπ)))) |