generalize e : a::as = l at h2
α σ : 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 : σ
h2 : M.toAbstract.eval s (a :: as)
⊢ ∃ s₁ s₂, M.toAbstract.EpsilonClosure s s₂ ∧ M.toAbstract.symbol s₂ a s₁ ∧ M.toAbstract.eval s₁ as
α σ : 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 : σ
l : List α
e : a :: as = l
h2 : M.toAbstract.eval s l
⊢ ∃ s₁ s₂, M.toAbstract.EpsilonClosure s s₂ ∧ M.toAbstract.symbol s₂ a s₁ ∧ M.toAbstract.eval s₁ as