next h =>
  dsimp only [Nat.add_eq] at h ⊢
  rw [dif_pos h]
case isTrue
n : Nat
H : n.split.fst.tri + ↑n.split.snd = n
h✝ : ↑n.split.2 < n.split.fst
⊢ ⟨n.split.fst, ⟨↑n.split.2 + 1, ⋯⟩⟩.fst.tri +
      ↑(if h : ↑n.split.2 < n.split.fst then ⟨n.split.fst, ⟨↑n.split.2 + 1, ⋯⟩⟩ else ⟨n.split.fst + 1, ⟨0, ⋯⟩⟩).snd =
    n.split.fst.tri + (↑n.split.snd + 1)

case isFalse
n : Nat
H : n.split.fst.tri + ↑n.split.snd = n
h✝ : ¬↑n.split.2 < n.split.fst
⊢ ⟨n.split.fst + 1, ⟨0, ⋯⟩⟩.fst.tri +
      ↑(if h : ↑n.split.2 < n.split.fst then ⟨n.split.fst, ⟨↑n.split.2 + 1, ⋯⟩⟩ else ⟨n.split.fst + 1, ⟨0, ⋯⟩⟩).snd =
    n.split.fst.tri + (↑n.split.snd + 1)
case isFalse
n : Nat
H : n.split.fst.tri + ↑n.split.snd = n
h✝ : ¬↑n.split.2 < n.split.fst
⊢ ⟨n.split.fst + 1, ⟨0, ⋯⟩⟩.fst.tri +
      ↑(if h : ↑n.split.2 < n.split.fst then ⟨n.split.fst, ⟨↑n.split.2 + 1, ⋯⟩⟩ else ⟨n.split.fst + 1, ⟨0, ⋯⟩⟩).snd =
    n.split.fst.tri + (↑n.split.snd + 1)