set result := NFA.done.pushRegex ⟨0, by decide⟩ r with h
r : Data.Expr
nfa : NFA
cs : List Char
eq : ↑(done.pushRegex ⟨0, compile.proof_1⟩ r) = nfa
m : Data.Expr.matches cs r
⊢ nfa.pathToNext 0 1 (↑nfa.start) cs
r : Data.Expr
nfa : NFA
cs : List Char
m : Data.Expr.matches cs r
result : { nfa' // done.nodes.size < nfa'.nodes.size } := done.pushRegex ⟨0, ⋯⟩ r
eq : ↑result = nfa
h : result = done.pushRegex ⟨0, ⋯⟩ r
⊢ nfa.pathToNext 0 1 (↑nfa.start) cs