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

Proof of `For-transducers compute polyregular functions`

groundedproofs/Lax194892Proofs/Results.lean · lax-194892

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

Every for-transducer computes a polyregular function (Theorem D.1.1, from for-transducers to polyregular): the prenex form of Lemma D.1.3, whose loop block is simulated by iterated marked squarings and a regular function enumerating the tuples of positions in loop order, and whose loop-free body is a regular function of the enumeration (Transducers.PolyEnum.isPolyregularofisForTransducerTransducers.PolyEnum.isPolyregular_of_isForTransducer).

Attribution

Theorem D.1.1 of Transducers, Part D; formalised by Aristotle (Harmonic), PartD/PolyEnum.leanPartD/PolyEnum*.lean, PartD/PolyScan.leanPartD/PolyScan*.lean, PartD/ForPrenex.leanPartD/ForPrenex*.lean.