Metamath Proof Explorer


Theorem bitsinvp1

Description: Recursive definition of the inverse of the bits function. (Contributed by Mario Carneiro, 8-Sep-2016)

Ref Expression
Hypothesis bitsinv.k K=bits0-1
Assertion bitsinvp1 A0N0KA0..^N+1=KA0..^N+ifNA2N0

Proof

Step Hyp Ref Expression
1 bitsinv.k K=bits0-1
2 fzonel ¬N0..^N
3 2 a1i A0N0¬N0..^N
4 disjsn 0..^NN=¬N0..^N
5 3 4 sylibr A0N00..^NN=
6 5 ineq2d A0N0A0..^NN=A
7 inindi A0..^NN=A0..^NAN
8 in0 A=
9 6 7 8 3eqtr3g A0N0A0..^NAN=
10 simpr A0N0N0
11 nn0uz 0=0
12 10 11 eleqtrdi A0N0N0
13 fzosplitsn N00..^N+1=0..^NN
14 12 13 syl A0N00..^N+1=0..^NN
15 14 ineq2d A0N0A0..^N+1=A0..^NN
16 indi A0..^NN=A0..^NAN
17 15 16 eqtrdi A0N0A0..^N+1=A0..^NAN
18 fzofi 0..^N+1Fin
19 18 a1i A0N00..^N+1Fin
20 inss2 A0..^N+10..^N+1
21 ssfi 0..^N+1FinA0..^N+10..^N+1A0..^N+1Fin
22 19 20 21 sylancl A0N0A0..^N+1Fin
23 2nn 2
24 23 a1i A0N0kA0..^N+12
25 inss1 A0..^N+1A
26 simpl A0N0A0
27 25 26 sstrid A0N0A0..^N+10
28 27 sselda A0N0kA0..^N+1k0
29 24 28 nnexpcld A0N0kA0..^N+12k
30 29 nncnd A0N0kA0..^N+12k
31 9 17 22 30 fsumsplit A0N0kA0..^N+12k=kA0..^N2k+kAN2k
32 elfpw A0..^N+1𝒫0FinA0..^N+10A0..^N+1Fin
33 27 22 32 sylanbrc A0N0A0..^N+1𝒫0Fin
34 1 bitsinv A0..^N+1𝒫0FinKA0..^N+1=kA0..^N+12k
35 33 34 syl A0N0KA0..^N+1=kA0..^N+12k
36 inss1 A0..^NA
37 36 26 sstrid A0N0A0..^N0
38 fzofi 0..^NFin
39 38 a1i A0N00..^NFin
40 inss2 A0..^N0..^N
41 ssfi 0..^NFinA0..^N0..^NA0..^NFin
42 39 40 41 sylancl A0N0A0..^NFin
43 elfpw A0..^N𝒫0FinA0..^N0A0..^NFin
44 37 42 43 sylanbrc A0N0A0..^N𝒫0Fin
45 1 bitsinv A0..^N𝒫0FinKA0..^N=kA0..^N2k
46 44 45 syl A0N0KA0..^N=kA0..^N2k
47 snssi NANA
48 47 adantl A0N0NANA
49 sseqin2 NAAN=N
50 48 49 sylib A0N0NAAN=N
51 50 sumeq1d A0N0NAkAN2k=kN2k
52 simpr A0N0NANA
53 23 a1i A0N0NA2
54 simplr A0N0NAN0
55 53 54 nnexpcld A0N0NA2N
56 55 nncnd A0N0NA2N
57 oveq2 k=N2k=2N
58 57 sumsn NA2NkN2k=2N
59 52 56 58 syl2anc A0N0NAkN2k=2N
60 51 59 eqtr2d A0N0NA2N=kAN2k
61 simpr A0N0¬NA¬NA
62 disjsn AN=¬NA
63 61 62 sylibr A0N0¬NAAN=
64 63 sumeq1d A0N0¬NAkAN2k=k2k
65 sum0 k2k=0
66 64 65 eqtr2di A0N0¬NA0=kAN2k
67 60 66 ifeqda A0N0ifNA2N0=kAN2k
68 46 67 oveq12d A0N0KA0..^N+ifNA2N0=kA0..^N2k+kAN2k
69 31 35 68 3eqtr4d A0N0KA0..^N+1=KA0..^N+ifNA2N0