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

Proof of `MSO transductions define regular functions`

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

A function defined by an mso transduction is regular (Theorem C.4.8, the hard implication): a two-way transducer walking the output order (Transducers.msoTransductioniffregularTransducers.msoTransduction_iff_regular, left to right).

Proof strategy

The source normalises the type of the transduction to knk · n (Lemma C.4.9, PartC/MSONorm.leanPartC/MSONorm.lean), precomputes the answers of the universe, letter and order formulas by a letter-to-letter rational function (Lemma C.4.10, PartC/MSOPrecomp.leanPartC/MSOPrecomp.lean), and builds a two-way transducer that visits the selected elements in the order of the order formula, reading the precomputed answers (PartC/WalkAut.leanPartC/WalkAut.lean, PartC/MSOWalk.leanPartC/MSOWalk*.lean, PartC/MSOReg.leanPartC/MSOReg.lean); the composition is regular by Theorem C.2.9. The concept's transduction is the source's through toSrcTtoSrcT, with ProperProper and OutputsOutputs transported (isMSOTransductioniffisMSOTransduction_iff); regular functions come from Part C §1–3's bridge.

Attribution

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