. have : i < j := ‹_›
  have : UInt.getBit a i = false :=
    ((UInt.getBit_lsb_iff a).mp hcontra).right i this
  have : UInt.getBit a i = true :=
    ((UInt.getBit_lsb_iff a).mp hi).left
  cases Eq.trans ‹UInt.getBit a i = false›.symm ‹UInt.getBit a i = true›
case inl
α : Type
inst✝¹ : (n : Nat) → OfNat α n
inst✝ : UInt α
a : α
ha : a ≠ 0
i : Nat
hi : UInt.getBit (UInt.lsb a) i = true
j : Nat
hij : ¬i = j
hcontra : UInt.getBit (UInt.lsb a) j = true
h✝ : i < j
⊢ False

case inr
α : Type
inst✝¹ : (n : Nat) → OfNat α n
inst✝ : UInt α
a : α
ha : a ≠ 0
i : Nat
hi : UInt.getBit (UInt.lsb a) i = true
j : Nat
hij : ¬i = j
hcontra : UInt.getBit (UInt.lsb a) j = true
h✝ : i ≥ j
⊢ False
case inr
α : Type
inst✝¹ : (n : Nat) → OfNat α n
inst✝ : UInt α
a : α
ha : a ≠ 0
i : Nat
hi : UInt.getBit (UInt.lsb a) i = true
j : Nat
hij : ¬i = j
hcontra : UInt.getBit (UInt.lsb a) j = true
h✝ : i ≥ j
⊢ False