The Vcsn team is proud to announce the release of Vcsn 2.4, code-named "the
quotient tools"!
Noteworthy changes include, besides a few bug fixes:
- full support for quotient operators on all entities: labels, expressions,
automata, expansions, etc.
In [2]: c = vcsn.context('lan, q')
...: c
Out[2]: {...}? -> Q
In [3]: label = vcsn.context('law, q').label
...: label('abc') / label('c')
Out[3]: ab
In [4]: exp = c.expression
In [5]: exp('ab').ldivide(exp('ab*c'))
Out[5]: ab{\}ab*c
In [6]: e = exp('ab').ldivide(exp('ab*c'))
...: e
Out[6]: ab{\}ab*c
In [7]: e.automaton().expression()
Out[7]: b*c
Operators {\} (left quotient) and {/} (right quotient) are available in
the rational expressions:
In [8]: e = exp('ab {\} abc*')
...: e
Out[8]: ab{\}abc*
In [9]: e.expansion()
Out[9]: \e.[b{\}bc*]
In [10]: e.derived_term().expression()
Out[10]: c*
In [11]: e.inductive().expression()
Out[11]: \e+cc*
- an overhaul of the "Vcsn Tools" (previously known as TAF-Kit). Because
the tools are now automatically generated, they are much more extensive
than previously: (almost) all of the dyn algorithms are now available from
the shell. It now also supports the 'daut' format for automata.
$ vcsn thompson -Ee '[ab]*c' | vcsn proper | vcsn determinize | vcsn minimize
| vcsn to-expression
(a+b)*c
$ vcsn random-expression -C 'lal(abc), z' '+, ., w., length=20,
w="min=-2, max=10"'
(a+<2>(ac)+<5>(acca))a
- an new method to construct an automaton from an extended expression:
`expression.inductive`. This provides an alternative to
`expression.derived_term`. Currently provides a single flavor: generation
of standard automata.
In [2]: vcsn.B.expression('! [ab]*a[ab]*').inductive().expression()
Out[2]: \e+bb*
In [3]: vcsn.B.expression('! [ab]*a[ab]*').automaton().expression()
Out[3]: b*
- `automaton.evaluate` works properly on non-free automata, including
multitape automata:
In [2]: c = vcsn.context('lan(a-z), nmin')
a = (c|c).levenshtein()
a('foo|bar')
Out[2]: 3
- input/output support for FAdo's format for transducers, and improved
compatibility with OpenFST.
For more information, please visit
http://vcsn.lrde.epita.fr, in
particular
https://vcsn.lrde.epita.fr/Vcsn2.4. Packages of Vcsn 2.4 should
appear soon on various distributions (MacPorts, Debian, ArchLinux, Docker Hub).
Vcsn 2.4 is also available online, at
http://vcsn-sandbox.lrde.epita.fr.
People who worked on this release:
- Akim Demaille
- Clément Gillard
- Lucien Boillod
- Sarasvati Moutoucomarapoulé
- Sébastien Piat
- Younes Khoudli
People who have influenced this release:
- Alexandre Duret-Lutz
- Jacques Sakarovitch
- Luca Saiu
- Sylvain Lombardy