intro ⟨s₁, ⟨s₂, ⟨s₃, h1, h2⟩, h3⟩, h4⟩
case cons.mp
α σ : Type
inst✝¹ : DecidableEq α
inst✝ : DecidableEq σ
M : EpsilonNFA α σ
a : α
as : List α
IH : ∀ (S : List σ), (∃ s ∈ M.eval_from S as, s ∈ M.accepting_state_list) ↔ ∃ s ∈ S, M.toAbstract.eval s as
S : List σ
⊢ (∃ s,
      (∃ state, (∃ start_state ∈ S, M.toAbstract.EpsilonClosure start_state state) ∧ M.toAbstract.symbol state a s) ∧
        M.toAbstract.eval s as) →
    ∃ s ∈ S, M.toAbstract.eval s (a :: as)
case cons.mp
α σ : Type
inst✝¹ : DecidableEq α
inst✝ : DecidableEq σ
M : EpsilonNFA α σ
a : α
as : List α
IH : ∀ (S : List σ), (∃ s ∈ M.eval_from S as, s ∈ M.accepting_state_list) ↔ ∃ s ∈ S, M.toAbstract.eval s as
S : List σ
s₁ s₂ s₃ : σ
h1 : s₃ ∈ S
h2 : M.toAbstract.EpsilonClosure s₃ s₂
h3 : M.toAbstract.symbol s₂ a s₁
h4 : M.toAbstract.eval s₁ as
⊢ ∃ s ∈ S, M.toAbstract.eval s (a :: as)