. cases bt with | mk rt =>
  simp at rt
  generalize eq : (children.nodes) = ts
  rw[eq] at rt
  cases rt
  . simp
    apply rank_zero_IsRankedTree
    assumption
case mk.zero
α : Sort ?u.144314
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
α✝ : Type u_1
val : α✝
children : Heap α✝
bt : IsBinTree { val := val, rank := Nat.zero, children := children }
⊢ 0 < { val := val, rank := Nat.zero, children := children }.rank

case mk.succ
α : Sort ?u.144314
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
α✝ : Type u_1
val : α✝
children : Heap α✝
n✝ : ℕ
bt : IsBinTree { val := val, rank := Nat.succ n✝, children := children }
⊢ 0 < { val := val, rank := Nat.succ n✝, children := children }.rank
case mk.succ
α : Sort ?u.144314
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
le_trans : ∀ (x y z : α), le x y = true → le y z = true → le x z = true
le_rfl : ∀ (z : α), le z z = true
α✝ : Type u_1
val : α✝
children : Heap α✝
n✝ : ℕ
bt : IsBinTree { val := val, rank := Nat.succ n✝, children := children }
⊢ 0 < { val := val, rank := Nat.succ n✝, children := children }.rank