Step |
Hyp |
Ref |
Expression |
1 |
|
bitsinv.k |
|- K = `' ( bits |` NN0 ) |
2 |
|
fzonel |
|- -. N e. ( 0 ..^ N ) |
3 |
2
|
a1i |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> -. N e. ( 0 ..^ N ) ) |
4 |
|
disjsn |
|- ( ( ( 0 ..^ N ) i^i { N } ) = (/) <-> -. N e. ( 0 ..^ N ) ) |
5 |
3 4
|
sylibr |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( ( 0 ..^ N ) i^i { N } ) = (/) ) |
6 |
5
|
ineq2d |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( ( 0 ..^ N ) i^i { N } ) ) = ( A i^i (/) ) ) |
7 |
|
inindi |
|- ( A i^i ( ( 0 ..^ N ) i^i { N } ) ) = ( ( A i^i ( 0 ..^ N ) ) i^i ( A i^i { N } ) ) |
8 |
|
in0 |
|- ( A i^i (/) ) = (/) |
9 |
6 7 8
|
3eqtr3g |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( ( A i^i ( 0 ..^ N ) ) i^i ( A i^i { N } ) ) = (/) ) |
10 |
|
simpr |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> N e. NN0 ) |
11 |
|
nn0uz |
|- NN0 = ( ZZ>= ` 0 ) |
12 |
10 11
|
eleqtrdi |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> N e. ( ZZ>= ` 0 ) ) |
13 |
|
fzosplitsn |
|- ( N e. ( ZZ>= ` 0 ) -> ( 0 ..^ ( N + 1 ) ) = ( ( 0 ..^ N ) u. { N } ) ) |
14 |
12 13
|
syl |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( 0 ..^ ( N + 1 ) ) = ( ( 0 ..^ N ) u. { N } ) ) |
15 |
14
|
ineq2d |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ ( N + 1 ) ) ) = ( A i^i ( ( 0 ..^ N ) u. { N } ) ) ) |
16 |
|
indi |
|- ( A i^i ( ( 0 ..^ N ) u. { N } ) ) = ( ( A i^i ( 0 ..^ N ) ) u. ( A i^i { N } ) ) |
17 |
15 16
|
eqtrdi |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ ( N + 1 ) ) ) = ( ( A i^i ( 0 ..^ N ) ) u. ( A i^i { N } ) ) ) |
18 |
|
fzofi |
|- ( 0 ..^ ( N + 1 ) ) e. Fin |
19 |
18
|
a1i |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( 0 ..^ ( N + 1 ) ) e. Fin ) |
20 |
|
inss2 |
|- ( A i^i ( 0 ..^ ( N + 1 ) ) ) C_ ( 0 ..^ ( N + 1 ) ) |
21 |
|
ssfi |
|- ( ( ( 0 ..^ ( N + 1 ) ) e. Fin /\ ( A i^i ( 0 ..^ ( N + 1 ) ) ) C_ ( 0 ..^ ( N + 1 ) ) ) -> ( A i^i ( 0 ..^ ( N + 1 ) ) ) e. Fin ) |
22 |
19 20 21
|
sylancl |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ ( N + 1 ) ) ) e. Fin ) |
23 |
|
2nn |
|- 2 e. NN |
24 |
23
|
a1i |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ k e. ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) -> 2 e. NN ) |
25 |
|
inss1 |
|- ( A i^i ( 0 ..^ ( N + 1 ) ) ) C_ A |
26 |
|
simpl |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> A C_ NN0 ) |
27 |
25 26
|
sstrid |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ ( N + 1 ) ) ) C_ NN0 ) |
28 |
27
|
sselda |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ k e. ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) -> k e. NN0 ) |
29 |
24 28
|
nnexpcld |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ k e. ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) -> ( 2 ^ k ) e. NN ) |
30 |
29
|
nncnd |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ k e. ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) -> ( 2 ^ k ) e. CC ) |
31 |
9 17 22 30
|
fsumsplit |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> sum_ k e. ( A i^i ( 0 ..^ ( N + 1 ) ) ) ( 2 ^ k ) = ( sum_ k e. ( A i^i ( 0 ..^ N ) ) ( 2 ^ k ) + sum_ k e. ( A i^i { N } ) ( 2 ^ k ) ) ) |
32 |
|
elfpw |
|- ( ( A i^i ( 0 ..^ ( N + 1 ) ) ) e. ( ~P NN0 i^i Fin ) <-> ( ( A i^i ( 0 ..^ ( N + 1 ) ) ) C_ NN0 /\ ( A i^i ( 0 ..^ ( N + 1 ) ) ) e. Fin ) ) |
33 |
27 22 32
|
sylanbrc |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ ( N + 1 ) ) ) e. ( ~P NN0 i^i Fin ) ) |
34 |
1
|
bitsinv |
|- ( ( A i^i ( 0 ..^ ( N + 1 ) ) ) e. ( ~P NN0 i^i Fin ) -> ( K ` ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) = sum_ k e. ( A i^i ( 0 ..^ ( N + 1 ) ) ) ( 2 ^ k ) ) |
35 |
33 34
|
syl |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( K ` ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) = sum_ k e. ( A i^i ( 0 ..^ ( N + 1 ) ) ) ( 2 ^ k ) ) |
36 |
|
inss1 |
|- ( A i^i ( 0 ..^ N ) ) C_ A |
37 |
36 26
|
sstrid |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ N ) ) C_ NN0 ) |
38 |
|
fzofi |
|- ( 0 ..^ N ) e. Fin |
39 |
38
|
a1i |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( 0 ..^ N ) e. Fin ) |
40 |
|
inss2 |
|- ( A i^i ( 0 ..^ N ) ) C_ ( 0 ..^ N ) |
41 |
|
ssfi |
|- ( ( ( 0 ..^ N ) e. Fin /\ ( A i^i ( 0 ..^ N ) ) C_ ( 0 ..^ N ) ) -> ( A i^i ( 0 ..^ N ) ) e. Fin ) |
42 |
39 40 41
|
sylancl |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ N ) ) e. Fin ) |
43 |
|
elfpw |
|- ( ( A i^i ( 0 ..^ N ) ) e. ( ~P NN0 i^i Fin ) <-> ( ( A i^i ( 0 ..^ N ) ) C_ NN0 /\ ( A i^i ( 0 ..^ N ) ) e. Fin ) ) |
44 |
37 42 43
|
sylanbrc |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( A i^i ( 0 ..^ N ) ) e. ( ~P NN0 i^i Fin ) ) |
45 |
1
|
bitsinv |
|- ( ( A i^i ( 0 ..^ N ) ) e. ( ~P NN0 i^i Fin ) -> ( K ` ( A i^i ( 0 ..^ N ) ) ) = sum_ k e. ( A i^i ( 0 ..^ N ) ) ( 2 ^ k ) ) |
46 |
44 45
|
syl |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( K ` ( A i^i ( 0 ..^ N ) ) ) = sum_ k e. ( A i^i ( 0 ..^ N ) ) ( 2 ^ k ) ) |
47 |
|
snssi |
|- ( N e. A -> { N } C_ A ) |
48 |
47
|
adantl |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> { N } C_ A ) |
49 |
|
sseqin2 |
|- ( { N } C_ A <-> ( A i^i { N } ) = { N } ) |
50 |
48 49
|
sylib |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> ( A i^i { N } ) = { N } ) |
51 |
50
|
sumeq1d |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> sum_ k e. ( A i^i { N } ) ( 2 ^ k ) = sum_ k e. { N } ( 2 ^ k ) ) |
52 |
|
simpr |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> N e. A ) |
53 |
23
|
a1i |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> 2 e. NN ) |
54 |
|
simplr |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> N e. NN0 ) |
55 |
53 54
|
nnexpcld |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> ( 2 ^ N ) e. NN ) |
56 |
55
|
nncnd |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> ( 2 ^ N ) e. CC ) |
57 |
|
oveq2 |
|- ( k = N -> ( 2 ^ k ) = ( 2 ^ N ) ) |
58 |
57
|
sumsn |
|- ( ( N e. A /\ ( 2 ^ N ) e. CC ) -> sum_ k e. { N } ( 2 ^ k ) = ( 2 ^ N ) ) |
59 |
52 56 58
|
syl2anc |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> sum_ k e. { N } ( 2 ^ k ) = ( 2 ^ N ) ) |
60 |
51 59
|
eqtr2d |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ N e. A ) -> ( 2 ^ N ) = sum_ k e. ( A i^i { N } ) ( 2 ^ k ) ) |
61 |
|
simpr |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ -. N e. A ) -> -. N e. A ) |
62 |
|
disjsn |
|- ( ( A i^i { N } ) = (/) <-> -. N e. A ) |
63 |
61 62
|
sylibr |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ -. N e. A ) -> ( A i^i { N } ) = (/) ) |
64 |
63
|
sumeq1d |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ -. N e. A ) -> sum_ k e. ( A i^i { N } ) ( 2 ^ k ) = sum_ k e. (/) ( 2 ^ k ) ) |
65 |
|
sum0 |
|- sum_ k e. (/) ( 2 ^ k ) = 0 |
66 |
64 65
|
eqtr2di |
|- ( ( ( A C_ NN0 /\ N e. NN0 ) /\ -. N e. A ) -> 0 = sum_ k e. ( A i^i { N } ) ( 2 ^ k ) ) |
67 |
60 66
|
ifeqda |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> if ( N e. A , ( 2 ^ N ) , 0 ) = sum_ k e. ( A i^i { N } ) ( 2 ^ k ) ) |
68 |
46 67
|
oveq12d |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( ( K ` ( A i^i ( 0 ..^ N ) ) ) + if ( N e. A , ( 2 ^ N ) , 0 ) ) = ( sum_ k e. ( A i^i ( 0 ..^ N ) ) ( 2 ^ k ) + sum_ k e. ( A i^i { N } ) ( 2 ^ k ) ) ) |
69 |
31 35 68
|
3eqtr4d |
|- ( ( A C_ NN0 /\ N e. NN0 ) -> ( K ` ( A i^i ( 0 ..^ ( N + 1 ) ) ) ) = ( ( K ` ( A i^i ( 0 ..^ N ) ) ) + if ( N e. A , ( 2 ^ N ) , 0 ) ) ) |