Draft — mutable and not usable as a dependency; its citation marks the draft state.

Proof of `MSO-definable languages are regular`

groundedproofs/Lax314295Proofs/Results.lean · lax-314295

What this proof establishes

no assumptions

Assuming the claims on the left, the claim on the right holds — checked by the archive's pipeline. Proof code is not displayed here.

Read the Lean proof on GitHub

Description

An mso-definable language is regular (Theorem C.4.1, Büchi's theorem, the easy implication): the automaton of a sentence, by induction on the formula (Transducers.regulariffmsoDefinableTransducers.regular_iff_msoDefinable, right to left).

Proof strategy

The source builds, for every formula, the automaton of the annotated strings that satisfy it (Lemma C.4.2, PartC/MSOAnnot.leanPartC/MSOAnnot.lean) and projects the annotation away for a sentence (PartC/MSOBuchi.leanPartC/MSOBuchi.lean). The concept's formulas are the source's through the bijection toSrctoSrc/ofSrcofSrc, along which satisfaction is transported (sattoSrcsat_toSrc), so MSODefinableMSODefinable transfers by msoDefinableiffmsoDefinable_iff.

Attribution

Theorem C.4.1 of Transducers, Part C; formalised by Aristotle (Harmonic), PartC/MSOBuchi.leanPartC/MSOBuchi.lean, PartC/MSO.leanPartC/MSO.lean.