-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathCHANGELOG
114 lines (88 loc) · 4.03 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
Hatt changelog
==============
Version 1.6.0
-------------
* The Unicode symbols for logical connectives are now accepted by the parser and
command-line program: ¬, ∧, ∨, → and ↔.
* Breaking API change: the `assignments` function now takes a list of
expressions rather than a single expression.
* New parser which handles operator precedence and associativity. This change
entails a dependency bump: Parsec 3 is now required.
* Fixed a bug in the `toNNF` function: doubly-negated expressions are now
converted into normal form rather than just having the double negation
removed.
* Added an `equivalents` function checking whether a list of propositions are
all mutually equivalent.
* Added an `implies` function checking whether a set of expressions semantically
entail some expression.
* Added a `simplify` function to the `NormalForms` module, which simplifies
expressions by removing stronger disjuncts and weaker conjuncts, as well as
some other simplifications.
* The `toCNF` and `toDNF` functions now further simplify their output using the
`simplify` function.
* Limit number of expressions tested by QuickCheck to ensure the test suite runs
quickly and doesn't eat the test machine.
Version 1.5.0
-------------
* Breaking API change: variables are now represented by a newtype wrapper `Var`
around `Char`s, rather than just a `String`. This made it easier to write a
good QuickCheck instance for this type.
* Added QuickCheck instances for the `Expr` and `Var` datatypes.
* Added a module to perform conversions of expressions to various normal forms,
including negation normal form, conjunctive normal form and disjunctive normal
form. Its use is supported in interactive mode by prefixing an expression with
"nnf", "cnf" or "dnf". Tests for the module are included and can be run with
`cabal test`. The module is exported as `Data.Logic.Propositional.NormalForms`
and must be imported separately.
* The `Data.Logic.Propositional.Tables` module is now exported by the library.
Its `truthTable` and `truthTableP` functions are still exported by the main
`Data.Logic.Propositional` module (as well as by the newly exposed module) for
backwards compatibility.
* The `values` function is now exported.
Version 1.4.0
-------------
* Make the parser slightly more liberal: unparenthesised expressions with a
binary connective as their primary connective such as "a | b" are now parsed
correctly, as are expressions with superfluous spaces such as " ( c -> ~ d )".
Version 1.3.1
-------------
* Added command history and better text input handling with Haskeline.
Version 1.3.0
-------------
* Add the `--coloured` command-line flag and `colour` command in interactive
mode to make truth value colouring optional.
* Relax containers dependency to >= 0.3 && < 0.5.
Version 1.2.1
-------------
* Use truth table and parsing code to produce the example console session in
the interactive mode help text.
Version 1.2.0
-------------
* Truth values are coloured green (T) and red (F) when printed.
Version 1.1.1
-------------
* Correct semantics for interpreting conditionals. Fixes an operator precedence
bug in the previous implementation.
Version 1.1
-----------
* Allow variables to be lower case ASCII letters as well as upper case.
Version 1.0
-----------
* Pretty-printing can now be enabled and disabled when in the interactive mode
by using the `pretty` command.
Version 0.3
-----------
* Added an interactive mode.
* Made interactive mode the default: it's only not entered if the `--evaluate`
flag is passed and the `--interactive` flag is not.
Version 0.2
-----------
* Added the `--pretty` option to pretty-print expressions.
* The `--evaluate` option now prints ASCII truth tables by default.
* Added `truthTableP` function to allow configurable expression printing.
* The `variables` function now returns a list of unique elements.
* Dependency `base` loosened to >= 4 && < 5 so it will build with GHC 7.
* Exposed and other modules now correctly differentiated in cabal file.
Version 0.1
-----------
* Initial release.