======== Versions ======== 2.1.2 ----- * bug introduced with the new Lark grammars when reading FAs with labelled states including curly brackets. (Fixed) 2.1.1 ----- * ssemigroup (is now in the distribution) 2.1 --- * PRAX (Polynomial Random Approximation Algorithms) introduced * Compliance with python3.10 2.0.2 ----- * Better documentation (we hope!) * LARK grammars now leave in their own files 2.0.1 ----- * Port to python3 1.3.5.1 ------- * fa: NFA.HKequivalence() added Hopcroft & Karp linear equivalence test added * fa: type of operands of NFA intersection fixed * reex: counting snfs 1.3.5 (Giessen) --------------- * Myhill-Nerode relation computed for DFAs (DFA.MyhillNerodePartition()) 1.3.4.1 ------- * fixed bug in the random generator seed initialisation (thanks to Héctor L Palacios V ) 1.3.4 ----- * rndfa & rndfap Generators now accept a seed for the random generation 1.3.3 ----- * fa.DFA.RegExp bug fixed * Watson-Daciuk's ADFA incremental minimisation * DFA reversability test implemented * DFA intersection made faster * FA state deletion made faster * FA product construction made faster * makeCode made faster 1.3.2.1 ------- * Some bugs solved (thanks to David Purser to spot them) 1.3.1 ----- * fa.DFA.succintTransitions and fa.NFA.succintTransitions corrected 1.3 --- * Methods added to construct error detecting languages 1.2.1 ----- * Random generator for ADFAs (rndadfa.py) * Implementation of Asperti, Coen and Tassi "au-point" conversion of RegExp to DFA RegExp.dfaAuPoint() * Implementation of Yamada, McNaughton and Glushkov conversion to DFA RegExp.dfaYMG() * JSON format for Automata * Ipython suport 1.2 --- * Better interface to FL objects * enumDFA() and enumNFA() added to enumerate languages * CodePprop is now UDCodeProp * IPTProp removed * Strict concatenation implemented (DFA.sop() for now!) * binary operations with NFAs now deal correctly with CEpsilon-NFAs * uniform random word generator for finite languages * Codes hierarchy implemented * Words are now objects (defined in commom.py) 1.1.1 ----- * corrected bug in fa.NFA.elimEpsilon() * Resulting NFA from __or__ gets the union of both alphabets as its alphabet 1.1 --- * FL.ADFA.minDFCA() corrected with the addition of ADFA.forceToDCFA() * random generation via cfg bug fixed * ICDFArndIncomplete bug fixed * xre fixed with context for negation * fa.DFA.hasTrapStateP() added * ICDFA random generator flag bug fixed * ICDFA random generators now written in python * New display methods to be usable inside IPython notebooks * Problems in Linux instalation * SFT.evalWordP() was returning the negation of what it should. 1.0 (Halifax) ------------- * addState() does not create states with clashing names (int/str) anymore. * New property builders having transducers as strings instead of stored in files. * yappy_parser permanent tables recover from reading problems, and quit shelf usage as last resort solution. Now it should work in all OS and in every possible conditions, even in a Apache execution environment * Intersection of properties corrected for input altering transducers * Normal Form Transducers * Conjunction of input properties described by input altering and input preserving transducers fixed * Infix Property added * Error corrected with the import of new yappy_parser * Now display() works in MSwindows, with ''start'' instead of ''open'' 0.9.8 ----- * Cover automata * New fio module that deals with i/o * Two-way automata starting to be supported * Distinguishability of a language * New xre (extended Regular Expressions) module 0.9.7 ----- * stupid error in DFA.__repr__() fixed * better dealing of incomplete automata * new DFA and NFA file format * better integration with GRAIL+ 0.9.6 ----- * some random bugs corrected in combo and single operations 0.9.5 ----- * Star and concatenation for DFAs aiming minimal transition complexity * new API documentation * better regular expression random generation 0.9.4 ----- * A primitive (but working) uninstall. * New setup for generator (bug fixed) * Shufle was migrated to fa.py * Shuffle for NFAs * comboperations: Shuffle corrected * fa: dump added to NFA and DFA 0.9.3 ----- * Prefix-free and prefix-closed finite languages random trie added * Renaming of AcyclicP to acyclicP. Loops are now excluded from the test unless a strict flag is passed as an argument. * trimP corrected accordingly * Version in package now reflects the proper version and not the major one * Corrections and simplifications added to ADFA.minimal() * Random balanced and "unbalanced" trie generation * Solved a bug with a mutual inclusions between fa and fl. * DFAtoADFA now resides in fl. * sigmaInititialSegment() added to fl * fa: product of dfas now ensures that its argument is a dfa. 0.9.2 ----- * Grammar tables for grail, reex and FAdo now start with a "." * fl.py (Finite Languages) added to the project: AFA, ADFA and ANFA supported * Grail+ interface inproved. Now, only if the command hasmore than one argument a temporary file is created. * Uniform random generation of trie automata with (at least) a word of a maximum lenght added (fl.py) * rndfa.py added: a wrap for the ICDFA random Generator. * Errors corrected in minimazation methods. * readFromFile now supports comments as documented. * saveToFile deals correctly with append flag. * Bugs on deleteState() were corrected.