dsimp
case mk.a
α : Type u
r : α → α → Prop
inst✝¹ : StrictLinearOrder r
inst✝ : DecidableRel r
β : α → Type v
f : (a : α) → β a → β a → Option (β a)
a₁ : α
b₁ : β a₁
a : α
b : β a
ha₁a : r a₁ a
toList✝ : List (Sigma β)
ascend✝ : List.Ascending (Sigma.relOnFst r) toList✝
ha₁xs : boundLeft a₁ { toList := toList✝, ascend := ascend✝ }
⊢ (hinge
        (insertWithAux f (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
              { toList := toList✝, ascend := ascend✝ }
              (_ :
                hingeable (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
                  { toList := toList✝, ascend := ascend✝ })
              a b ha₁a).val.fst
        (insertWithAux f (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
              { toList := toList✝, ascend := ascend✝ }
              (_ :
                hingeable (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
                  { toList := toList✝, ascend := ascend✝ })
              a b ha₁a).val.snd
        (_ :
          hingeable
            (insertWithAux f (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
                  { toList := toList✝, ascend := ascend✝ }
                  (_ :
                    hingeable (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
                      { toList := toList✝, ascend := ascend✝ })
                  a b ha₁a).val.fst
            (insertWithAux f (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
                  { toList := toList✝, ascend := ascend✝ }
                  (_ :
                    hingeable (KVChain.cons a₁ b₁ KVChain.nil (_ : boundLeft a₁ KVChain.nil))
                      { toList := toList✝, ascend := ascend✝ })
                  a b ha₁a).val.snd)).toList =
    (KVChain.cons a₁ b₁ (insertWith f { toList := toList✝, ascend := ascend✝ } a b)
        (_ : boundLeft a₁ (insertWith f { toList := toList✝, ascend := ascend✝ } a b))).toList
case mk.a
α : Type u
r : α → α → Prop
inst✝¹ : StrictLinearOrder r
inst✝ : DecidableRel r
β : α → Type v
f : (a : α) → β a → β a → Option (β a)
a₁ : α
b₁ : β a₁
a : α
b : β a
ha₁a : r a₁ a
toList✝ : List (Sigma β)
ascend✝ : List.Ascending (Sigma.relOnFst r) toList✝
ha₁xs : boundLeft a₁ { toList := toList✝, ascend := ascend✝ }
⊢ List.reverseAux
      (insertWithAux f (KVChain.cons a₁ b₁ KVChain.nil True.intro) { toList := toList✝, ascend := ascend✝ }
              (_ : hingeable (KVChain.cons a₁ b₁ KVChain.nil True.intro) { toList := toList✝, ascend := ascend✝ }) a b
              ha₁a).val.fst.toList
      (insertWithAux f (KVChain.cons a₁ b₁ KVChain.nil True.intro) { toList := toList✝, ascend := ascend✝ }
              (_ : hingeable (KVChain.cons a₁ b₁ KVChain.nil True.intro) { toList := toList✝, ascend := ascend✝ }) a b
              ha₁a).val.snd.toList =
    { fst := a₁, snd := b₁ } :: (insertWith f { toList := toList✝, ascend := ascend✝ } a b).toList