
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