Metamath Proof Explorer


Theorem bitscmp

Description: The bit complement of N is -u N - 1 . (Thus, by bitsfi , all negative numbers have cofinite bits representations.) (Contributed by Mario Carneiro, 5-Sep-2016)

Ref Expression
Assertion bitscmp N0bitsN=bits-N-1

Proof

Step Hyp Ref Expression
1 bitsval2 Nm0mbitsN¬2N2m
2 2z 2
3 2 a1i Nm02
4 simpl Nm0N
5 4 zred Nm0N
6 2nn 2
7 6 a1i Nm02
8 simpr Nm0m0
9 7 8 nnexpcld Nm02m
10 5 9 nndivred Nm0N2m
11 10 flcld Nm0N2m
12 dvdsnegb 2N2m2N2m2N2m
13 3 11 12 syl2anc Nm02N2m2N2m
14 13 notbid Nm0¬2N2m¬2N2m
15 11 znegcld Nm0N2m
16 oddm1even N2m¬2N2m2-N2m-1
17 15 16 syl Nm0¬2N2m2-N2m-1
18 flltp1 N2mN2m<N2m+1
19 10 18 syl Nm0N2m<N2m+1
20 11 zred Nm0N2m
21 1red Nm01
22 20 21 readdcld Nm0N2m+1
23 10 22 ltnegd Nm0N2m<N2m+1N2m+1<N2m
24 19 23 mpbid Nm0N2m+1<N2m
25 20 recnd Nm0N2m
26 21 recnd Nm01
27 25 26 negdi2d Nm0N2m+1=-N2m-1
28 5 recnd Nm0N
29 9 nncnd Nm02m
30 9 nnne0d Nm02m0
31 28 29 30 divnegd Nm0N2m=N2m
32 24 27 31 3brtr3d Nm0-N2m-1<N2m
33 1zzd Nm01
34 15 33 zsubcld Nm0-N2m-1
35 34 zred Nm0-N2m-1
36 5 renegcld Nm0N
37 9 nnrpd Nm02m+
38 35 36 37 ltmuldivd Nm0-N2m-12m<N-N2m-1<N2m
39 32 38 mpbird Nm0-N2m-12m<N
40 9 nnzd Nm02m
41 34 40 zmulcld Nm0-N2m-12m
42 4 znegcld Nm0N
43 zltlem1 -N2m-12mN-N2m-12m<N-N2m-12m-N-1
44 41 42 43 syl2anc Nm0-N2m-12m<N-N2m-12m-N-1
45 39 44 mpbid Nm0-N2m-12m-N-1
46 36 21 resubcld Nm0-N-1
47 35 46 37 lemuldivd Nm0-N2m-12m-N-1-N2m-1-N-12m
48 45 47 mpbid Nm0-N2m-1-N-12m
49 flle N2mN2mN2m
50 10 49 syl Nm0N2mN2m
51 20 10 lenegd Nm0N2mN2mN2mN2m
52 50 51 mpbid Nm0N2mN2m
53 31 52 eqbrtrrd Nm0N2mN2m
54 20 renegcld Nm0N2m
55 36 54 37 ledivmuld Nm0N2mN2mN2mN2m
56 53 55 mpbid Nm0N2mN2m
57 40 15 zmulcld Nm02mN2m
58 zlem1lt N2mN2mN2mN2m-N-1<2mN2m
59 42 57 58 syl2anc Nm0N2mN2m-N-1<2mN2m
60 56 59 mpbid Nm0-N-1<2mN2m
61 46 54 37 ltdivmuld Nm0-N-12m<N2m-N-1<2mN2m
62 60 61 mpbird Nm0-N-12m<N2m
63 25 negcld Nm0N2m
64 63 26 npcand Nm0N2m-1+1=N2m
65 62 64 breqtrrd Nm0-N-12m<N2m-1+1
66 46 9 nndivred Nm0-N-12m
67 flbi -N-12m-N2m-1-N-12m=-N2m-1-N2m-1-N-12m-N-12m<N2m-1+1
68 66 34 67 syl2anc Nm0-N-12m=-N2m-1-N2m-1-N-12m-N-12m<N2m-1+1
69 48 65 68 mpbir2and Nm0-N-12m=-N2m-1
70 69 breq2d Nm02-N-12m2-N2m-1
71 17 70 bitr4d Nm0¬2N2m2-N-12m
72 1 14 71 3bitrd Nm0mbitsN2-N-12m
73 72 notbid Nm0¬mbitsN¬2-N-12m
74 73 pm5.32da Nm0¬mbitsNm0¬2-N-12m
75 znegcl NN
76 1zzd N1
77 75 76 zsubcld N-N-1
78 77 biantrurd Nm0¬2-N-12m-N-1m0¬2-N-12m
79 74 78 bitrd Nm0¬mbitsN-N-1m0¬2-N-12m
80 eldif m0bitsNm0¬mbitsN
81 bitsval mbits-N-1-N-1m0¬2-N-12m
82 3anass -N-1m0¬2-N-12m-N-1m0¬2-N-12m
83 81 82 bitri mbits-N-1-N-1m0¬2-N-12m
84 79 80 83 3bitr4g Nm0bitsNmbits-N-1
85 84 eqrdv N0bitsN=bits-N-1