Metamath Proof Explorer


Theorem 2exple2exp

Description: If a nonnegative integer X is a multiple of a power of two, but less than the next power of two, it is itself a power of two. (Contributed by Thierry Arnoux, 19-Oct-2025)

Ref Expression
Hypotheses 2exple2exp.1 ⊢ φ → X ∈ ℕ
2exple2exp.2 ⊢ φ → K ∈ ℕ 0
2exple2exp.3 ⊢ φ → 2 K ∥ X
2exple2exp.4 ⊢ φ → X ≤ 2 K + 1
Assertion 2exple2exp ⊢ φ → ∃ n ∈ ℕ 0 X = 2 n

Proof

Step Hyp Ref Expression
1 2exple2exp.1 ⊢ φ → X ∈ ℕ
2 2exple2exp.2 ⊢ φ → K ∈ ℕ 0
3 2exple2exp.3 ⊢ φ → 2 K ∥ X
4 2exple2exp.4 ⊢ φ → X ≤ 2 K + 1
5 oveq2 ⊢ n = K → 2 n = 2 K
6 5 eqeq2d ⊢ n = K → X = 2 n ↔ X = 2 K
7 2 adantr ⊢ φ ∧ X < 2 K + 1 → K ∈ ℕ 0
8 simplr ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ∈ ℕ
9 8 nnnn0d ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ∈ ℕ 0
10 2nn ⊢ 2 ∈ ℕ
11 10 a1i ⊢ φ → 2 ∈ ℕ
12 11 2 nnexpcld ⊢ φ → 2 K ∈ ℕ
13 12 nncnd ⊢ φ → 2 K ∈ ℂ
14 13 ad3antrrr ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 K ∈ ℂ
15 8 nncnd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ∈ ℂ
16 14 15 mulcomd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 K ⁢ m = m ⁢ 2 K
17 simpr ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ⁢ 2 K = X
18 simpllr ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → X < 2 K + 1
19 2cnd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 ∈ ℂ
20 2 ad3antrrr ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → K ∈ ℕ 0
21 19 20 expp1d ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 K + 1 = 2 K ⋅ 2
22 18 21 breqtrd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → X < 2 K ⋅ 2
23 17 22 eqbrtrd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ⁢ 2 K < 2 K ⋅ 2
24 16 23 eqbrtrd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 K ⁢ m < 2 K ⋅ 2
25 8 nnred ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ∈ ℝ
26 2re ⊢ 2 ∈ ℝ
27 26 a1i ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 ∈ ℝ
28 12 ad3antrrr ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 K ∈ ℕ
29 28 nnrpd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 2 K ∈ ℝ +
30 25 27 29 ltmul2d ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m < 2 ↔ 2 K ⁢ m < 2 K ⋅ 2
31 24 30 mpbird ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m < 2
32 8 nnne0d ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ≠ 0
33 32 neneqd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → ¬ m = 0
34 nn0lt2 ⊢ m ∈ ℕ 0 ∧ m < 2 → m = 0 ∨ m = 1
35 34 orcanai ⊢ m ∈ ℕ 0 ∧ m < 2 ∧ ¬ m = 0 → m = 1
36 9 31 33 35 syl21anc ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m = 1
37 36 oveq1d ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → m ⁢ 2 K = 1 ⁢ 2 K
38 14 mullidd ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → 1 ⁢ 2 K = 2 K
39 37 17 38 3eqtr3d ⊢ φ ∧ X < 2 K + 1 ∧ m ∈ ℕ ∧ m ⁢ 2 K = X → X = 2 K
40 nndivides ⊢ 2 K ∈ ℕ ∧ X ∈ ℕ → 2 K ∥ X ↔ ∃ m ∈ ℕ m ⁢ 2 K = X
41 40 biimpa ⊢ 2 K ∈ ℕ ∧ X ∈ ℕ ∧ 2 K ∥ X → ∃ m ∈ ℕ m ⁢ 2 K = X
42 12 1 3 41 syl21anc ⊢ φ → ∃ m ∈ ℕ m ⁢ 2 K = X
43 42 adantr ⊢ φ ∧ X < 2 K + 1 → ∃ m ∈ ℕ m ⁢ 2 K = X
44 39 43 r19.29a ⊢ φ ∧ X < 2 K + 1 → X = 2 K
45 6 7 44 rspcedvdw ⊢ φ ∧ X < 2 K + 1 → ∃ n ∈ ℕ 0 X = 2 n
46 oveq2 ⊢ n = K + 1 → 2 n = 2 K + 1
47 46 eqeq2d ⊢ n = K + 1 → X = 2 n ↔ X = 2 K + 1
48 peano2nn0 ⊢ K ∈ ℕ 0 → K + 1 ∈ ℕ 0
49 2 48 syl ⊢ φ → K + 1 ∈ ℕ 0
50 49 adantr ⊢ φ ∧ X = 2 K + 1 → K + 1 ∈ ℕ 0
51 simpr ⊢ φ ∧ X = 2 K + 1 → X = 2 K + 1
52 47 50 51 rspcedvdw ⊢ φ ∧ X = 2 K + 1 → ∃ n ∈ ℕ 0 X = 2 n
53 1 nnred ⊢ φ → X ∈ ℝ
54 26 a1i ⊢ φ → 2 ∈ ℝ
55 54 49 reexpcld ⊢ φ → 2 K + 1 ∈ ℝ
56 leloe ⊢ X ∈ ℝ ∧ 2 K + 1 ∈ ℝ → X ≤ 2 K + 1 ↔ X < 2 K + 1 ∨ X = 2 K + 1
57 56 biimpa ⊢ X ∈ ℝ ∧ 2 K + 1 ∈ ℝ ∧ X ≤ 2 K + 1 → X < 2 K + 1 ∨ X = 2 K + 1
58 53 55 4 57 syl21anc ⊢ φ → X < 2 K + 1 ∨ X = 2 K + 1
59 45 52 58 mpjaodan ⊢ φ → ∃ n ∈ ℕ 0 X = 2 n