MSO-automata
No public endorsements yet.
Loading review…
Sign in with ORCIDAbstract
We formalize monadic second-order logic over arbitrary first-order languages, using mathlib's structures and term semantics for the first-order fragment and set-valued valuations for monadic variables. We then represent a finite word as its linearly ordered set of positions, with one unary predicate for each alphabet letter.
For a finite alphabet, we prove the Büchi–Elgot–Trakhtenbrot correspondence between MSO-definable languages of finite words and languages recognized by nondeterministic finite automata. The MSO-to-automata proof uses marked words for valuations of free first- and second-order variables and proves regularity by structural induction, with union, complement, and projection constructions. The automata-to-MSO proof existentially guesses the state at every position and expresses that these state predicates encode an initial, transition-respecting, accepting run. Empty words are handled separately in the constructed sentence.
This is a Lean 4.33 port of the original Lean 4.30 draft.
Concepts
- thm✓
MSOAutomataEquivalence - thm✓
MSOToNFA - thm✓
NFAToMSO - def✓
WordStructure
- def
MSOSemantics - def
MSOSyntax - def
NFARecognizable
Concept map
Proofs
Proof networkview on GitHub
Proof list
Lean sources for these proofs: proofs/ on GitHub
Proof code is not displayed; the archive records each proof's checked relationship between claims.
Related submissions
Submission map
Cite this
This is only the formalizers. The authors of the formalized results may be different (see References).
@misc{lax-146103,
author = {Szymon Toruńczyk and GPT 5.6},
title = {MSO-automata},
year = {2026},
howpublished = {Lax Archive, lax-146103},
url = {https://laxarchive.org/lax-146103/},
}
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments