clear h1
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
⊢ 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₃ : σ
h2 : M.toAbstract.EpsilonClosure s₃ s₂
h3 : M.toAbstract.symbol s₂ a s₁
h4 : M.toAbstract.eval s₁ as
⊢ M.toAbstract.eval s₃ (a :: as)