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

Proof of `Pebble transducers are computed by for-transducers`

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 pebble transducer computes a function of a for-transducer (Theorem D.2.4, from pebble transducers to for-transducers).

Proof strategy

The source proves by induction on the number of pebbles that a pebble transducer computes a polyregular function: the run of the top pebble between two consecutive configurations of the pebble below is a two-way transducer on the string representation of that configuration, and the sequence of those configurations is a marked squaring followed by a regular function (PartD/PebblePoly.leanPartD/PebblePoly.lean, PartD/PebbleSquare.leanPartD/PebbleSquare*.lean, PartD/PebbleTwoWay.leanPartD/PebbleTwoWay.lean); Theorem D.1.1 then gives a for-transducer (Transducers.pebbleiffforTransducerTransducers.pebble_iff_forTransducer, left to right). isPebbleTransduceriffisPebbleTransducer_iff and isForTransduceriffisForTransducer_iff transport hypothesis and conclusion.

Attribution

Theorem D.2.4 of Transducers, Part D; formalised by Aristotle (Harmonic).