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

Proof of `A for-transducer reads the children off a child configuration graph`

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

In the paper

Description

A for-transducer maps the string representation of a child configuration graph to the concatenation of the representations of the children (Claim D.2.7), Transducers.fromchildconfigurationgraphtochildrenTransducers.from_child_configuration_graph_to_children.

Proof strategy

The source's for-transducer is a one-pebble transducer that follows the recorded edges from the first child, outputting the representation of the current child at every vertex (PartD/ChildGraphAut.leanPartD/ChildGraphAut.lean, PartD/ChildGraphRun.leanPartD/ChildGraphRun.lean), and Theorem D.2.4 makes it a for-transducer; its correctness rests on a string representing at most one run of children (PartD/ChildGraph.leanPartD/ChildGraph.lean). The concept's graphs are transported along the bijection cgLetterToSrccgLetterToSrc of the alphabets: the local consistency test, the recorded edges and the output commute with the bijection (cgOutIsmaptoSrccgOutIs_map_toSrc), and the source's for-transducer is pre-composed with it (isForTransducermapisForTransducer_map).

Attribution

Claim D.2.7 of Transducers, Part D; formalised by Aristotle (Harmonic), PartD/ChildGraphFor.leanPartD/ChildGraphFor.lean.