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

Proof of `Regular functions are MSO transductions`

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 regular function is defined by an mso transduction (Theorem C.4.8, the converse implication): the formulas describing the run of a two-way transducer (Transducers.msoTransductioniffregularTransducers.msoTransduction_iff_regular, right to left).

Proof strategy

The source takes a two-way transducer for ff (Theorem C.2.9) and, with one copy of the positions per state and direction, writes mso formulas saying that a configuration is visited by the run, which letter it outputs and which of two visited configurations comes first — the runs being described in mso through Büchi's theorem (PartC/TwoWayMSO.leanPartC/TwoWayMSO.lean). The bridge transports the transduction along ofSrcTofSrcT.

Attribution

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