induction e.epsilon_arrow_list <;> simp [*, epsilon_arrow_list_to_graph, or_and_right, exists_or]
case a.h.e'_2.h.h.e'_2.h.e.h.e'_2.h.h.a
α : Type
inst✝¹ : DecidableEq α
σ : Type
inst✝ : DecidableEq σ
e : EpsilonNFA α σ
starting_state_list : List σ
state a b c : σ
⊢ (∃ l, (b, l) ∈ epsilon_arrow_list_to_graph e.epsilon_arrow_list ∧ c ∈ l) ↔
    ∃ stop_state_list,
      { start_state := b, stop_state_list := stop_state_list } ∈ e.epsilon_arrow_list ∧ c ∈ stop_state_list
case a.h.e'_2.h.h.e'_2.h.e.h.e'_2.h.h.a.cons
α : Type
inst✝¹ : DecidableEq α
σ : Type
inst✝ : DecidableEq σ
e : EpsilonNFA α σ
starting_state_list : List σ
state a b c : σ
head✝ : EpsilonArrow σ
tail✝ : List (EpsilonArrow σ)
tail_ih✝ :
  (∃ l, (b, l) ∈ epsilon_arrow_list_to_graph tail✝ ∧ c ∈ l) ↔
    ∃ stop_state_list, { start_state := b, stop_state_list := stop_state_list } ∈ tail✝ ∧ c ∈ stop_state_list
⊢ ((∃ x, (b = head✝.start_state ∧ x = head✝.stop_state_list) ∧ c ∈ x) ∨
      ∃ stop_state_list, { start_state := b, stop_state_list := stop_state_list } ∈ tail✝ ∧ c ∈ stop_state_list) ↔
    (∃ x, { start_state := b, stop_state_list := x } = head✝ ∧ c ∈ x) ∨
      ∃ stop_state_list, { start_state := b, stop_state_list := stop_state_list } ∈ tail✝ ∧ c ∈ stop_state_list