Metamath Proof Explorer


Theorem bitsval

Description: Expand the definition of the bits of an integer. (Contributed by Mario Carneiro, 5-Sep-2016)

Ref Expression
Assertion bitsval ( 𝑀 ∈ ( bits ‘ 𝑁 ) ↔ ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ∧ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 df-bits bits = ( 𝑛 ∈ ℤ ↦ { 𝑚 ∈ ℕ0 ∣ ¬ 2 ∥ ( ⌊ ‘ ( 𝑛 / ( 2 ↑ 𝑚 ) ) ) } )
2 1 mptrcl ( 𝑀 ∈ ( bits ‘ 𝑁 ) → 𝑁 ∈ ℤ )
3 bitsfval ( 𝑁 ∈ ℤ → ( bits ‘ 𝑁 ) = { 𝑚 ∈ ℕ0 ∣ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑚 ) ) ) } )
4 3 eleq2d ( 𝑁 ∈ ℤ → ( 𝑀 ∈ ( bits ‘ 𝑁 ) ↔ 𝑀 ∈ { 𝑚 ∈ ℕ0 ∣ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑚 ) ) ) } ) )
5 oveq2 ( 𝑚 = 𝑀 → ( 2 ↑ 𝑚 ) = ( 2 ↑ 𝑀 ) )
6 5 oveq2d ( 𝑚 = 𝑀 → ( 𝑁 / ( 2 ↑ 𝑚 ) ) = ( 𝑁 / ( 2 ↑ 𝑀 ) ) )
7 6 fveq2d ( 𝑚 = 𝑀 → ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑚 ) ) ) = ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) )
8 7 breq2d ( 𝑚 = 𝑀 → ( 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑚 ) ) ) ↔ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) )
9 8 notbid ( 𝑚 = 𝑀 → ( ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑚 ) ) ) ↔ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) )
10 9 elrab ( 𝑀 ∈ { 𝑚 ∈ ℕ0 ∣ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑚 ) ) ) } ↔ ( 𝑀 ∈ ℕ0 ∧ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) )
11 4 10 syl6bb ( 𝑁 ∈ ℤ → ( 𝑀 ∈ ( bits ‘ 𝑁 ) ↔ ( 𝑀 ∈ ℕ0 ∧ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) ) )
12 2 11 biadanii ( 𝑀 ∈ ( bits ‘ 𝑁 ) ↔ ( 𝑁 ∈ ℤ ∧ ( 𝑀 ∈ ℕ0 ∧ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) ) )
13 3anass ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ∧ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) ↔ ( 𝑁 ∈ ℤ ∧ ( 𝑀 ∈ ℕ0 ∧ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) ) )
14 12 13 bitr4i ( 𝑀 ∈ ( bits ‘ 𝑁 ) ↔ ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℕ0 ∧ ¬ 2 ∥ ( ⌊ ‘ ( 𝑁 / ( 2 ↑ 𝑀 ) ) ) ) )