Metamath Proof Explorer


Theorem bitsp1

Description: The M + 1 -th bit of N is the M -th bit of |_ ( N / 2 ) . (Contributed by Mario Carneiro, 5-Sep-2016)

Ref Expression
Assertion bitsp1 ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → M + 1 ∈ bits ⁡ N ↔ M ∈ bits ⁡ N 2

Proof

Step Hyp Ref Expression
1 2nn ⊢ 2 ∈ ℕ
2 1 a1i ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 ∈ ℕ
3 2 nncnd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 ∈ ℂ
4 simpr ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → M ∈ ℕ 0
5 3 4 expp1d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 M + 1 = 2 M ⋅ 2
6 2 4 nnexpcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 M ∈ ℕ
7 6 nncnd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 M ∈ ℂ
8 7 3 mulcomd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 M ⋅ 2 = 2 ⁢ 2 M
9 5 8 eqtrd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 M + 1 = 2 ⁢ 2 M
10 9 oveq2d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 M + 1 = N 2 ⁢ 2 M
11 simpl ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N ∈ ℤ
12 11 zcnd ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N ∈ ℂ
13 2 nnne0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 ≠ 0
14 6 nnne0d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 M ≠ 0
15 12 3 7 13 14 divdiv1d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 2 M = N 2 ⁢ 2 M
16 10 15 eqtr4d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 M + 1 = N 2 2 M
17 16 fveq2d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 M + 1 = N 2 2 M
18 11 zred ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N ∈ ℝ
19 18 rehalfcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 ∈ ℝ
20 fldiv ⊢ N 2 ∈ ℝ ∧ 2 M ∈ ℕ → N 2 2 M = N 2 2 M
21 19 6 20 syl2anc ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 2 M = N 2 2 M
22 17 21 eqtr4d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 M + 1 = N 2 2 M
23 22 breq2d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → 2 ∥ N 2 M + 1 ↔ 2 ∥ N 2 2 M
24 23 notbid ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → ¬ 2 ∥ N 2 M + 1 ↔ ¬ 2 ∥ N 2 2 M
25 peano2nn0 ⊢ M ∈ ℕ 0 → M + 1 ∈ ℕ 0
26 bitsval2 ⊢ N ∈ ℤ ∧ M + 1 ∈ ℕ 0 → M + 1 ∈ bits ⁡ N ↔ ¬ 2 ∥ N 2 M + 1
27 25 26 sylan2 ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → M + 1 ∈ bits ⁡ N ↔ ¬ 2 ∥ N 2 M + 1
28 19 flcld ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → N 2 ∈ ℤ
29 bitsval2 ⊢ N 2 ∈ ℤ ∧ M ∈ ℕ 0 → M ∈ bits ⁡ N 2 ↔ ¬ 2 ∥ N 2 2 M
30 28 29 sylancom ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → M ∈ bits ⁡ N 2 ↔ ¬ 2 ∥ N 2 2 M
31 24 27 30 3bitr4d ⊢ N ∈ ℤ ∧ M ∈ ℕ 0 → M + 1 ∈ bits ⁡ N ↔ M ∈ bits ⁡ N 2