apply Eq.symm
case intro
α : Type
inst✝² : (n : Nat) → OfNat α n
inst✝¹ : UInt α
inst✝ : DecidableEq α
a : α
i : Nat
ha : ¬a = 0
i₀ : Nat
hi₀ : ∀ (j : Nat), UInt.getBit (UInt.lsb a) j = decide (i₀ = j)
this✝ : UInt.getBit (UInt.lsb a) i₀ = true
left✝ : UInt.getBit a i₀ = true
halow : ∀ (j : Nat), j < i₀ → UInt.getBit a j = false
this : decide (i₀ = toNat (UInt.ctz a)) = true
⊢ toNat (UInt.ctz a) = i₀
case intro.h
α : Type
inst✝² : (n : Nat) → OfNat α n
inst✝¹ : UInt α
inst✝ : DecidableEq α
a : α
i : Nat
ha : ¬a = 0
i₀ : Nat
hi₀ : ∀ (j : Nat), UInt.getBit (UInt.lsb a) j = decide (i₀ = j)
this✝ : UInt.getBit (UInt.lsb a) i₀ = true
left✝ : UInt.getBit a i₀ = true
halow : ∀ (j : Nat), j < i₀ → UInt.getBit a j = false
this : decide (i₀ = toNat (UInt.ctz a)) = true
⊢ i₀ = toNat (UInt.ctz a)