Create a new transducer, equivalent to the first one, with the states labeled with the delay of the state, i.e. the difference of input length on each tape.
ctx = vcsn.context("lat<law_char, law_char>, b") ctx
a = ctx.expression(r"'abc, \e''d,v'*'\e,wxyz'").standard() a
The lag is bounded, because every cycle (here, the loop) produces a delay of 0.
State 1 has a delay of $(3, 0)$ because the first tape is 3 characters longer than the shortest tape (the second one) for all possible inputs leading to this state.
s = ctx.expression(r"(abc|x+ab|y)(d|z)").automaton() s
Here, state 1 is split in two, because for one input the delay is $(1, 0)$, and for the other the delay is $(2, 0)$.