Bit Indices #
Given n : ℕ, we define Nat.bitIndices n, which is the List of indices of 1s in the
binary expansion of n. If s : Finset ℕ and n = ∑ i ∈ s, 2^i, then
Nat.bitIndices n is the sorted list of elements of s.
The lemma twoPowSum_bitIndices proves that summing 2 ^ i over this list gives n.
This is used in Combinatorics.colex to construct a bijection equivBitIndices : ℕ ≃ Finset ℕ.
TODO #
Relate the material in this file to Nat.digits and Nat.bits.
The function which maps each natural number ∑ i ∈ s, 2^i to the list of
elements of s in increasing order.
Equations
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[irreducible]
Together with Nat.twoPowSum_bitIndices, this implies a bijection between ℕ and Finset ℕ.
See Finset.equivBitIndices for this bijection.
@[deprecated Nat.notMem_bitIndices_self (since := "2025-05-23")]
Alias of Nat.notMem_bitIndices_self.