Intro
I recently worked through a problem from a theory of computation textbook that asked me to prove a property of a language using finite automata.
The informal proof is a simple constructive proof where you build an automaton and show that it recognizes the language.
This is kind of similar to program verification, so I thought it’d be interesting to see what it takes to formalize the proof.
Lean is a good choice for this, because its Mathlib has all the theorems for the problem.