Bit Indices #
Given n : ℕ
, we define Nat.bitIndices n
, which is the List
of indices of 1
s in the
binary expansion of n
. If s : Finset ℕ
and n = ∑ i in 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 in s, 2^i
to the list of
elements of s
in increasing order.
Equations
Instances For
@[simp]
@[irreducible]
Together with Nat.twoPowSum_bitIndices
, this implies a bijection between ℕ
and Finset ℕ
.
See Finset.equivBitIndices
for this bijection.