. intro h;
  obtain ⟨v, hwv, hv⟩ := by simpa using h;
  obtain ⟨x, hvx, hx⟩ := ih.mp hv;
  existsi x;
  constructor;
  . existsi v; simp_all;
  . simpa;
case succ.mp
α : Type u_1
M : Model α
p q : Formula α
n : ℕ
ih : ∀ {w : M.World}, Satisfies M w (◇^[n]p) ↔ ∃ v, w ≺^[n] v ∧ Satisfies M v p
w : M.World
⊢ Satisfies M w (◇^[(n + 1)]p) → ∃ v, w ≺^[n + 1] v ∧ Satisfies M v p

case succ.mpr
α : Type u_1
M : Model α
p q : Formula α
n : ℕ
ih : ∀ {w : M.World}, Satisfies M w (◇^[n]p) ↔ ∃ v, w ≺^[n] v ∧ Satisfies M v p
w : M.World
⊢ (∃ v, w ≺^[n + 1] v ∧ Satisfies M v p) → Satisfies M w (◇^[(n + 1)]p)
case succ.mpr
α : Type u_1
M : Model α
p q : Formula α
n : ℕ
ih : ∀ {w : M.World}, Satisfies M w (◇^[n]p) ↔ ∃ v, w ≺^[n] v ∧ Satisfies M v p
w : M.World
⊢ (∃ v, w ≺^[n + 1] v ∧ Satisfies M v p) → Satisfies M w (◇^[(n + 1)]p)