Check if the transducer has bounded lag, i.e. that the difference of length between the input and output words is bounded, for every word accepted.

It is a pre-condition for transducer synchronization.

Preconditions:

- The automaton has at least 2 tapes

In [1]:

```
import vcsn
ctx = vcsn.context("lat<lan_char(ab), lan_char(xy)>, b")
ctx
```

Out[1]:

In [2]:

```
a = ctx.expression(r"'a,x''b,y'*'a,\e'").automaton()
a
```

Out[2]:

In [3]:

```
a.has_bounded_lag()
```

Out[3]:

In [4]:

```
b = ctx.expression(r"(\e|x)(a|\e)*(b|y)").automaton()
b
```

Out[4]:

In [5]:

```
b.has_bounded_lag()
```

Out[5]:

In [6]:

```
ctx_3 = vcsn.context("lat<lan_char(ab), lan_char(jk), lan_char(xy)>, b")
c = ctx_3.expression(r"(a|j|x)(b|k|\e)*").automaton()
c
```

Out[6]:

`has_bounded_lag`

checks that every tape has a bounded lag compared to the first one (incidentally, if that is the case, it will insure that every tapes has a bounded lag in respect to every other). This transducer has a bounded lag if you only consider the first 2 tapes, but the third tape doesn't.

In [7]:

```
c.has_bounded_lag()
```

Out[7]: