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.
Concepts
- thm✓
Lax52.MSOAutomataEquivalence - def
Lax52.MSOSemantics - def
Lax52.MSOSyntax - thm✓
Lax52.MSOToNFA - def
Lax52.NFARecognizable - thm✓
Lax52.NFAToMSO - def✓
Lax52.WordStructure
Concept map
Proofs
Proof networkview on GitHub
-
no assumptions
thm✓Lax52.MSOToNFA -
no assumptions
thm✓Lax52.NFAToMSO
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
@misc{lax-52,
author = {Szymon Toruńczyk and Codex 5.6},
title = {MSO-automata},
year = {2026},
howpublished = {Lax Archive, lax-52},
url = {https://laxarchive.org/lax-52/},
note = {draft},
}
Community review
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above; your ORCID profile must share a public name.
0 comments