apply IsHeap_merge
case inl.a.cons
α : Type u_1
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
rx : ℕ
xs : List (BinTree α)
ry : ℕ
ys : List (BinTree α)
h₁ : BinTree α
t₁ : List (BinTree α)
h₂ : BinTree α
t₂ : List (BinTree α)
hys : IsHeapForest' ry (h₂ :: t₂)
hlt₂ : h₁.rank < h₂.rank
bt : IsBinTree h₁
hlt : rx < h₁.rank
hf : IsHeapForest' h₁.rank t₁
⊢ IsHeapForest' (min h₁.rank (h₂.rank - 1)) (mergeNodes le t₁ (h₂ :: t₂))
case inl.a.cons.hxs
α : Type u_1
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
rx : ℕ
xs : List (BinTree α)
ry : ℕ
ys : List (BinTree α)
h₁ : BinTree α
t₁ : List (BinTree α)
h₂ : BinTree α
t₂ : List (BinTree α)
hys : IsHeapForest' ry (h₂ :: t₂)
hlt₂ : h₁.rank < h₂.rank
bt : IsBinTree h₁
hlt : rx < h₁.rank
hf : IsHeapForest' h₁.rank t₁
⊢ IsHeapForest' h₁.rank t₁

case inl.a.cons.hys
α : Type u_1
le : α → α → Bool
not_le_le : ∀ (x y : α), ¬le x y = true → le y x = true
rx : ℕ
xs : List (BinTree α)
ry : ℕ
ys : List (BinTree α)
h₁ : BinTree α
t₁ : List (BinTree α)
h₂ : BinTree α
t₂ : List (BinTree α)
hys : IsHeapForest' ry (h₂ :: t₂)
hlt₂ : h₁.rank < h₂.rank
bt : IsBinTree h₁
hlt : rx < h₁.rank
hf : IsHeapForest' h₁.rank t₁
⊢ IsHeapForest' (h₂.rank - 1) (h₂ :: t₂)