===============================================================================
Changes between toolset releases March 2011 and July 2011:
===============================================================================

 General:
   - Removed the innermost rewriters; only the jitty, jittyc and jittyp
     rewriters are available.
   - Cleaned up the implementations of the remaining rewriters.
   - Performance of the jittyc rewriter has been improved.
   - Compiling rewriters using an external compile script.
   - An interface for generating next states has been provided, in such a way
     that it is independent of the internal structures of mCRL2.
     This allows for a more reliable integration of mCRL2 and LTSmin
     (http://fmt.cs.utwente.nl/tools/ltsmin/).
   - By setting the CMake variable MCRL2_LTSMIN_INSTALL_PATH to the directory
     containing the LTSmin sources, the mCRL2 make install will build the
     LTSmin toolset with compatible settings.
   - Fix compilation with GCC 4.6.

 Library changes:
   - Renamed library mcrl2_utilities_command_line to mcrl2_utilities.
   - Moved some utility functionality from mcrl2_core to mcrl2_utilities.
   - Incorporated and cleaned up ATerm library. The ATerm library included in
     mCRL2 now is compiled as C++.

 New functionality:
   - Improved handling of universal and existential quantification in the
     rewriters.
   - A new logging library has been implemented and incorporated.
   - Improved performance of parity game generator used by pbespgsolve.
   - The tool lps2torx now uses the simulation backend.
   - A major update of pbespgsolve has been imported from upstream.

 New experimental tool:
   - lts2pbes has been added, allowing to encode model checking problems
     directly on LPSes.

 Changed tool status:
   - pbespgsolve has become a release tool.

===============================================================================
Changes between toolset releases July 2010 and March 2011:
===============================================================================

 General:
   - Removed 3rd-party/boost, mCRL2 depends on Boost >= 1.37
   - Removed bjam build system. Use of the CMake build system is now required.
   - Developed a BES library as the basis for further solving/reduction
     algorithms.
   - The basic code for all data structures is now generated from a concise set
     of specifications. Standard traversal and find/replace functionality is
     available for all these data types.
   - Stabilise ATerm library for 64-bit Windows platforms.
   - Overal stabilisation of the code, including fixing compiler warnings/errors
     on various supported platforms.
   - The implementation of the LTS library has been cleaned up.

 New functionality:
   - pbes2bool and pbespgsolve accept BESs and PBESs as input.
   - pbes2bes should be used to generate a BES from a PBES; this functionality
     has been removed from pbes2bool. Use pbes2bool directly on the PBES if
     you want proper counterexamples.
   - The tool previously called pbes2bes is now named pbesinst.
   - New tool besinfo that prints information on a BES.
   - New tool bespp that prints a BES in human readable format.
     PBESs
   - tau*a reduction is available from ltsconvert.
   - New tool mcrl2xi that can be used to edit mCRL2 specifications.
     It provides the functionality as the command-line tool mcrl2i.

 New experimental tools:
   - besconvert can be used to reduce BESs modulo strong bisimulation and
     stuttering equivalence.
   - lts2pbes can be used to generate a PBES form an LTS and a modal formula.
   - bessolve can be used to solve a BES using small progress measures or the
     recursive algorith due to Zielonka. For efficient solving the use of
     pbespgsolve is recommended.
   - pbesabstract provides a form of abstract interpretation for pbesses. 
     Parameters of pbes equations can be removed underapproximating or 
     overapproximating the solution of the PBES. This can dramatically reduce
     the number of BES variables generated from a PBES.

 Removed tools:
   - squadt
   - pnml2mcrl2

===============================================================================
Changes between toolset releases January 2010 and July 2010:
===============================================================================

 General:
   - developed new graphical user interface mcrl2-gui. Use of this tool is
     recommended above using squadt.
   - move to CMake build system. The bjam build system is still included, but
     will be removed in the January 2011 release.
   - increase the amount of generated code.
   - more extensive testing

 Tool renamings:
   - In order to have a more consistent tool naming scheme, some tools have
     been renamed:
     * sim -> lpssim
     * xsim -> lpsxsim
     * grape -> grapemcrl2

 New functionality:
   - the language now supports function updates for functions of arity 1. It is
     now allowed to write f[d -> e] for a function f: D -> E, with d in D and
     e in E. The meaning is that (f[d -> e])(x) = e if x == d, and f(x)
     otherwise.
   - lps2lts has an extra option to detect divergences.
   - for a number of equivalences, ltscompare can give countertraces in case
     two processes are not equivalent. This is helpful in finding why two
     processes are not equivalent.

 Deprecated tools:
   - squadt is deprecated. It will be removed in the January 2011 release. We
     recommend using mcrl2-gui instead.

 Known issues:
   - ltsview and ltsgraph do not work when started from SQuADT in Windows 7 and
     Windows Vista; if started directly they do function properly. Using
     mcrl2-gui there are no problems.

===============================================================================
Changes between toolset releases January 2009 and January 2010:
===============================================================================

 General:
   - developed a new data and process library and adapted most tools and 
     libraries to use it. Ultimately the classes in core will all be replaced
     such that core will become obsolete.
   - introduced new tool classes and adapted all tools to it, leading to uniform
     command line interfaces for all tools.
   - adapted the user interface of mcrl2i.
   - bisimulation reduction algorithms are much faster.
   
 New functionality:
   - divergence preserving branching bisimulation has been implemented.
   - lps2lts can search for divergences, and generated traces to divergent
     states.
   - lps2lts can generate a state space steered by the first argument of
     actions (which must be a natural number). Only transitions with the
     lowest number will be taken. It is also possible to do a random walk
     in this way.
   - ltsgraph can display transition systems in 3d.
   - lps2pbes now properly supports the use of sorts in the modal formula that
     were defined under alias in the lps.
 
 The following tools have been marked stable:
   - grape: a graphical process editor.
   - mcrl2i: an mCRL2 interpreter that can be used for evaluating data
     expressions.
   - pbesconstelm: apply constant parameter elimination to a pbes.
   - pbesparelm: apply parameter elimination to a pbes.
   - lpsparunfold: unfold a set of given parameters in an lps. (Similar to the
     muCRL tool structelm).
   - lysa2mcrl2: convert a security protocol specified in Typed LySa to mCRL2.
   - txt2lps: read a textual description of a linear process into a binary lps
     file. Rejects anything that is not linear.
 
 The following tools have been added (but are marked experimental):
   - lpsbisim2pbes: encode process equivalences of two linear processes into a
     pbes.
   - lts2lps: convert a labelled transition system into an lps.
   - pbespareqelm: eliminate equivalence relations between parameters of a pbes.
   - pbespgsolve: solve a pbes using a parity game solver algorithm.
     (Contributed by Maks Verver).

The following tools have been removed:
   - mcrl2pp
   - pbessolve

 Notes:
   - SQuADT specific:
     + The tool catalog must be regenerated to add newly connected tools;
       to do this manually remove .squadt/tool_catalog in the home directory.
   - the CMake build system is provided as an alternative to boost build, but
     it is still experimental.
       
 Known issues:
   - ltsview and ltsgraph do not work when started from SQuADT in Windows 7 and
     Windows Vista; if started directly they do function properly.

===============================================================================
Changes between toolset releases July 2008 and January 2009:
===============================================================================

 General:
   - compatible with LTSmin toolset 1.1 van de Universiteit Twente
   - added support for importing LTSes from DOT format
   - extended mCRL2 LTS storage format to include extra information such data
     and parameter specifications. This new format uses the .lts suffix.
   - support for rational numbers (as part of sort Real):
     + rational numbers can be created using the division operator /
     + rational numbers can be converted to integers by means of functions
       floor, ceil and round
   - comparison operations <, <=, >= and > are now defined on all standard
     data types (including structured sorts)
   - sets and bags data structures have been reimplementated to better support
     the use of finite sets and bags. By guaranteeing a unique representation
     of finite sets/bags it is now no longer a problem to generate state spaces
     of processes with finite sets/bags as parameters, for instance.
   - numerous small improvements to tools and underlying infrastructure
   - lots of bug fixes

 Renamed tools:
   - formcheck is now called formulacheck

 New functionality:
   - ltsgraph is completely reimplemented and now uses OpenGL for rendering
   - ltsgraph, ltsview, diagraphica now support all LTS formats supported by
     the LTS library

 New tools:
   - pbesparelm: removes unused parameters from a PBES.
   - pbesconstelm: removes constant parameters from a PBES.

===============================================================================
Changes between toolset releases January 2008 and July 2008:
===============================================================================

 General:
   - improved command line interfaces and help information:
     + simplified interfaces of most tools, especially mcrl22lps, lps2lts,
       lps2torx, ltscompare, ltsmin, ltsconvert, tracepp and formcheck
     + improved consistency among tools
     + adherence to the GNU standard for command line interfaces
     + removed the undocumented feature that the argument '-' can be used
       for reading from standard input in or writing to standard output
     + improved error handling of loading and saving binary files
   - added manual pages for tools
   - changed SVC library license from the
     GNU General Public License, version 2 (or newer), to the
     GNU Lesser General Public License, version 2.1 (or newer).
   - libraries and header files are installed
   - improvements to existing tool and library documentation
   - improved regression testing
   - lots of bug fixes

 Added tools:
   - txt2pbes: translates a textual PBES specification to the binary format

 Removed tools:
   - pbes2bes: most functionality is incorporated in pbes2bool

 Renamed tools:
   - lpsdecluster is now called lpssuminst
   - lpsformcheck is now called formcheck

 Performance improvements:
   - improved performance of lpspp and pbespp for specifications
     involving many variable declarations
   - improved average case performance of div and mod calculations by
     a factor of 2
   - increased power of enumeration involving conditions on list length,
     e.g. enumerating all lists l such that #l == 2 or #l <= 2
   - lpssuminst: summands with a false condition are filtered out
   - lpssumelm: more time-efficient on specifications involving large
     conditions
   - squadt: more time-efficient initialisation process

 New functionality:
   - ltsview: added new option for marking states: mark separately for
     every mark rule
   - ltscompare: added comparison using simulation preorder/equivalence
   - ltsconvert: added minimisation modulo simulation equivalence
   - pbes2bool, lpsactionrename, diagraphica: functional improvements
   - lpssuminst: added (option -t/--tau) which only instantiates tau summands
   - formcheck: now also works with PBESes or without a context specification

 Notes:
   - LPS or PBES files produced with the previous release cannot be used
     anymore. They need to be regenerated using the tools in this release.
   - SQuADT specific:
     + The tool catalog must be regenerated to add newly connected tools;
       to do this manually remove .squadt/tool_catalog in the home directory.
     + Old project files cannot be loaded due to a limitation of the old
       format, automatic conversion is not possible so projects must be
       recreated manually.

===============================================================================
Changes between toolset releases July 2007 and January 2008:
===============================================================================

 General:
   - Numerous bug fixes.
   - Added documentation for all libraries and tools on the website.

 Added tools:
   - chi2mcrl2: translates a subset of Chi to mCRL2
   - lpsactionrename: selectively renames or hides actions in linear processes
   - pbesrewr: applies the rewriter to simplify data expressions in PBESes

 Removed tools:
   - lpsdataelm (its functionality has been integrated in other tools)

 New functionality:
   - Added full support for the verification of modal formulas with data using
     lps2pbes and pbes2bool.
   - Improved handling of time in the lineariser (mcrl22lps). Sometimes this
     slows the lineariser down. Added flags to suppress time if needed.
   - Improvement of the output of the pretty printers (lpspp and pbespp) that
     print linear processes and parameterised boolean equation systems.
   - Added simulation support to ltsview and improved its layout.
   - Functionality of sim is the same as that of xsim (as far as allowed with
     a command line interface).
   - Migrated from CVC Lite to CVC3 as supported external SMT-solver.

 Notes:
   - LPS or PBES files produced with the previous release cannot be used
     anymore. They need to be regenerated using the tools in this release.
   - SQuADT specific:
     + The tool catalog must be regenerated to add newly connected tools;
       to do this manually remove .squadt/tool_catalog in the home directory.
     + Old project files cannot be loaded due to a limitation of the old
       format, automatic conversion is not possible so projects must be
       recreated manually.
