rw [IH y' z]
case h
W✝ : Type
M : KripkeModel W✝
bs : List Program
a : Program
as : List Program
IH :
  ∀ (x z : W✝),
    relate M (Program.steps (as ++ bs)) x z ↔ ∃ y, relate M (Program.steps as) x y ∧ relate M (Program.steps bs) y z
x z y : W✝
bla : relate M (Program.steps bs) y z
y' : W✝
x_a_y' : relate M a x y'
y'_as_y : relate M (Program.steps as) y' y
⊢ relate M a x y' ∧ relate M (Program.steps (as ++ bs)) y' z
case h
W✝ : Type
M : KripkeModel W✝
bs : List Program
a : Program
as : List Program
IH :
  ∀ (x z : W✝),
    relate M (Program.steps (as ++ bs)) x z ↔ ∃ y, relate M (Program.steps as) x y ∧ relate M (Program.steps bs) y z
x z y : W✝
bla : relate M (Program.steps bs) y z
y' : W✝
x_a_y' : relate M a x y'
y'_as_y : relate M (Program.steps as) y' y
⊢ relate M a x y' ∧ ∃ y, relate M (Program.steps as) y' y ∧ relate M (Program.steps bs) y z