simp [interpExcept] at *
case Vis
E : Type → Type
ε : Type
F : Type → Type
T R : Type
h : E ~> ExceptT ε (Fitree F)
k : T → Fitree E R
T✝ : Type
e✝ : E T✝
k✝ : T✝ → Fitree E T
ih :
  ∀ (a : T✝),
    interpExcept h (bind (k✝ a) k) =
      bind (interpExcept h (k✝ a)) fun x? =>
        match x? with
        | Except.error ε_1 => ret (Except.error ε_1)
        | Except.ok x => interpExcept h (k x)
⊢ interpExcept h (bind (Vis e✝ k✝) k) =
    bind (interpExcept h (Vis e✝ k✝)) fun x? =>
      match x? with
      | Except.error ε_1 => ret (Except.error ε_1)
      | Except.ok x => interpExcept h (k x)
case Vis
E : Type → Type
ε : Type
F : Type → Type
T R : Type
h : E ~> ExceptT ε (Fitree F)
k : T → Fitree E R
T✝ : Type
e✝ : E T✝
k✝ : T✝ → Fitree E T
ih :
  ∀ (a : T✝),
    interp h (bind (k✝ a) k) =
      bind (interp h (k✝ a)) fun x? =>
        match x? with
        | Except.error ε_1 => ret (Except.error ε_1)
        | Except.ok x => interp h (k x)
⊢ interp h (bind (Vis e✝ k✝) k) =
    bind (interp h (Vis e✝ k✝)) fun x? =>
      match x? with
      | Except.error ε_1 => ret (Except.error ε_1)
      | Except.ok x => interp h (k x)