
Changes in version 4.0.0 (2025-04-04)
  * cna() accepts alternative definitions of consistency and coverage. Users can change their selection of definitions and specify their choice in the new argument measure.
  * The vignette has been thoroughly revised to introduce these new definitions/measures. 
  * Correspondingly, con/cov measures can be selected in condition(), condTbl() and other functions.
  * New function detailMeasures() is available at the user level (previously present but not visible). 
  * New functions showMeasures(), showConCovMeasures() and showDetailMeasures() list available summary measures for configuration tables.
  * The implementation logic of secondary (fine-tuning) parameters in cna() has been revised. In particular, parameters that are not relevant for the ordinary user have been outsourced to a new function cnaControl().
  * The building of complex solution formulas (csf) has been changed such that csf that are submodels of other csf are no longer returned by the function csf(). 
  * New function fs2cs() is available at the user level (previously present but not visible). 
  * Argument inus.only in cna()/cnaControl() has new default value TRUE.
  * The choice of columns printed by default in msc, asf and csf tables changed.
  * Functions and arguments that had been deprecated since V3.0 have now been removed. 
  * More minor changes - not fully listed here.

Changes in version 3.6.2 (2024-07-05)
  * Improved documentation of argument exclude in cna().
  * Update of vignette.

Changes in version 3.6.1 (2024-06-28)
  * New argument exclude in cna().

Changes in version 3.6.0 (2024-06-07)
  * is.inus() has a new argument def accepting character strings "implication" (default) and "equivalence", corresponding to different definitions of the notion of a partial structural redundancy. Note that "equivalence" corresponds to the behavior of is.inus() in earlier versions of the package, i.e. the default behaviour has changed in version 3.6.0.
  * Correspondingly, argument inus.only in cna() also accepts "implication" and "equivalence". The default TRUE resolves to "implication". That is, the default output of cna() may be different than in earlier versions.
  * Default value of argument border in cna() has changed from "down" to "up".
  * New argument cases in msc().
  * New argument nobs in method as.data.frame.condList().

Changes in version 3.5.6 (2023-12-19)
  * In condition(), handling of invalid input has been slightly modified.
  * In particular, in case of multi-value data, all conditions must contain factor values, not factor names. 
  * These changes also affect condTbl(), selectCases() and other functions that use condition() internally.

Changes in version 3.5.4 (2023-08-07)
  * Default values of arguments rm.const.factors and rm.dup.factors in configTable() and cna() have changed from TRUE to FALSE.
  * In randomConds(), the flexibility in specifying complexity in argument \code{compl} has been increased.

Changes in version 3.5.1 (2023-03-09)
  * Some bug fixes

Changes in version 3.5.0 (2023-02-17)
  * New argument asf.selection in cna()

Changes in version 3.4.0 (2022-07-08)
  * New argument verbose in cna()
  * New argument nmax in full.ct()
  * New method of as.data.frame() for class "condList"
  * The help files of condition() and related functions have been reorganized

Changes in version 3.3.0 (2021-12-03)
  * randomAsf() and randomCsf() generate conditions with positive or negative outcome in case of binary data (only positive before)
  * New argument positive in randomAsf() and randomCsf()
  * New argument niter in rreduce()

Changes in version 3.2.0 (2021-06-14)
  * Automatic detection of data type in configTable().
  * 'ordering' can be specified as a single character string in cna().

Changes in version 3.1.0 (2021-05-28)
  * The computational efficiency of cna() and other functions has been improved, especially for applications to larger data sets.
  * The vignette has been reviewed.
  * The definitions of exhaustiveness and faithfulness have been adapted - see section 5.3 in the vignette.
  * rreduce() is now an exported function.
  * new argument outcome in cna()
  * new argument cond in full.ct()
  * new argument maxVarNum in randomAsf() and randomCsf()
  * new data set d.highdim
  * coherence is now a generic function. Some of its arguments have changed names.
  * The output of minimalizeCsf has changed - it has been aligned with the output of msc(), asf(), csf(), condTbl().

Changes in version 3.0.1 (2020-11-06)
	* A few minor changes in messages and vignette.

Changes in version 3.0.0 (2020-09-11)
	* The function and class 'truthTab' has been renamed 'configTable', in order to avoid confusion due to the use of the term 'truth table' in other contexts.
	* As a consequence, several other functions have also changed their names: full.tt to full.ct; tt2df to ct2df; cstt/fstt/mvtt to csct/fsct/mvct.
	* Code using the old names of these functions will mostly work. However their use is deprecated, and you will be warned to switch to the new names. The old names may eventually be removed in future releases.
	* cna() has new arguments acyclic.only and cycle.type.
	* In cna(), the default value of the argument maxstep has changed to c(3, 4, 10).
	* In csf(), the selection process of complex solution formulas has been thoroughly revised. See the 'Details' section in ?csf.
	* csf() has new arguments inus.only, minimalizeCsf, acyclic.only, cycle.type and verbose. Its argument n has been renamed as n.init, with a default of 1000.
	* The way the output of msc(), asf() and csf() is printed has been modified (class 'condTbl'). 
  * The changes in csf() also affect printed output from cna(), as csf() is executed within the print method of class 'cna'.
	* Renaming of an argument in condition(): from tt to ct
	* is.inus() now also applies to conditions of the msc, asf or csf type. is.inus() has a new argument csf.info.

Changes in version 2.2.3 (2020-05-13)
  * A few adjustments and a bug fix in methods for class "truthTab"
  * Minor adjustments in examples for compliance with dplyr 1.0.0

Changes in version 2.2.2 (2019-12-06)
  * In the default method of condition(), argument tt now has a default value.
  * Added some informative error messages
  * Two bug fixes

Changes in version 2.2.1 (2019-09-06)
  * Added an error message in case of using wrong data in rreduce()

Changes in version 2.2.0 (2019-04-13)
  * In this release, we have added further utility functions that are helpful to explore and benchmark the cna method.
  * New functions: full.tt, is.inus, redundant, cyclic, is.submodel, identical.model, minimalize, randomAsf, randomCsf. See the help files for details.
  * cna() has a new argument only.minimal.asf.
  * In selectCases() and selectCases1(), the argument x is not mandatory anymore; it now has the default value full.tt(cond). Similarly, minimalizeCsf() can also be used without a data argument.
  * The package vignette has been updated accordingly.

Changes in version 2.1.1 (2018-06-13)
  * Bug fix in minimalizeCsf()

Changes in version 2.1.0 (2018-06-01)
  * The package now comes with a vignette providing an extensive introduction to the methodological background and the package's usage.
  * Several functions have a noticeably faster implementation, most notably csf().
  * cna() has new arguments inus.only and details, and the default value of the argument what has changed from "mac" to "ac".
  * Various new model fit parameters, which are helpful e.g. in ambiguity reduction, can now be calculated by cna(): exhaustiveness, faithfulness, inus, redundant.
  * The package now provides functionalities for handling structural redundancies in complex solution formulas (csf).
  * New functions condTbl() and minimalizeCsf() have been added.
  * The way the output is displayed has slightly changed for some functions, in particular for truth tables and related tabular displays.
  * coherence() now returns 1 instead of NA for atomic solution formulas (asf).
  * condition() has a new argument add.data.
  * The syntax accepted by condition() has become more flexible. 
  * msc, asf and csf have a new argument details.
  * truthTab() has a new argument verbose.
  * The option spaces is newly available for controlling the spacing in asf and csf.
  * Data with more than 26 factors can now be processed as well. 

Changes in version 2.0.0 (2017-04-11)
  * Most functions in the package have been fundamentally redesigned or revised. Although we tried to maintain backward compatibility where it was reasonably achievable, code compatible with older versions will not work in many cases.
  * Three different types of data are now handled: crisp-set, multi-value, and fuzzy-set. Accordingly, several functions have a type argument with possible values "cs", "mv", "fs".
  * truthTab() has new arguments: type, rm.dup.factors, rm.const.factors and .cases. The argument switch has been removed.
  * The new convenience functions cstt(), mvtt() and fstt() provide easy access to truthTab().
  * condition() is now able to handle complex expressions.
  * New arguments in condition(): type, force.bool, rm.parentheses.
  * The convenience functions cscond(), mvcond() and fscond() provide easy access to condition().
  * cna() uses a different (more general and usually faster) algorithm to find solutions.
  * New arguments in cna(): type, con.msc, rm.const.factors, rm.dup.factors, only.minimal.msc, maxSol, cutoff, border.
  * The meaning of the argument maxstep in cna() has changed.
  * The convenience functions cscna(), mvcna() and fscna() provide easy access to cna().
  * complexity has been added in the output of msc(), asf() and csf(). coherence has been added in the output of csf().
  * The new functions allCombs(), makeFuzzy(), selectCases(), selectCases1() and some() facilitate the generation of simulated data for inverse search trials that assess the correctness of models output by cna.
  * Additional new functions: fs2tt(), coherence().
  * New data sets: d.autonomy, d.jobsecurity, d.pacts, d.pban.

