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

Proof of `Decidable equivalence of Mealy machines`

groundedproofs/Lax765601Proofs/Results.lean · lax-765601

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

Two Mealy machines are equivalent if and only if they agree on all inputs of length at most the product of their numbers of states (Theorem A.1.2).

Proof strategy

The source theorem Transducers.mealyequiviffboundedTransducers.mealy_equiv_iff_bounded proves the finite check for FintypeFintype state spaces and Fintype.cardFintype.card: a pair of runs of the two machines that repeats a pair of states can be shortened by cutting out the loop without removing a disagreement, so a shortest disagreeing input has length at most Q1Q2|Q₁|·|Q₂|. The bridge moves between the concept machine and the source machine (evaltoSrceval_toSrc) and between Nat.cardNat.card and Fintype.cardFintype.card.

Attribution

Theorem A.1.2 of Transducers (M. Bojańczyk); the Lean proof is Aristotle's, in RequestProject/PartA/Statements.leanRequestProject/PartA/Statements.lean.