Skip to content

Commit 063fbda

Browse files
Last tweaks to CHANGELOG
1 parent 4c65e8a commit 063fbda

File tree

1 file changed

+40
-41
lines changed

1 file changed

+40
-41
lines changed

CHANGELOG.md

+40-41
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,24 @@ Highlights
1212

1313
* Fresh lists.
1414

15-
* First algebraic proofs for ℚ.
15+
* First proofs of algebraic properties for operations over ℚ.
1616

1717
* Improved reduction behaviour for all decidability proofs.
1818

1919
Bug-fixes
2020
---------
2121

22-
* The record `RawRing` from `Algebra` now contains an equality relation to
22+
* The record `RawRing` from `Algebra` now includes an equality relation to
2323
make it consistent with the othor `Raw` bundles.
2424

2525
* In `Relation.Binary`:
2626
- `IsStrictTotalOrder` now exports `isDecStrictPartialOrder`
2727
- `IsDecStrictPartialOrder` now re-exports the contents of `IsStrictPartialOrder`.
2828

2929
* Due to bug #3879 in Agda, the pattern synonyms `0F`, `1F`, ... added to
30-
`Data.Fin.Base` in version 1.1 have been found to result in unavoidable and
31-
undesirable behaviour when case splitting on `` when `Data.Fin` has been
32-
imported. These pattern synonyms have therefore been moved to the new module
33-
`Data.Fin.Patterns`.
30+
`Data.Fin.Base` in version 1.1 resulted in unavoidable and undesirable behaviour
31+
when case splitting on `` when `Data.Fin` has been imported. These pattern
32+
synonyms have therefore been moved to the new module `Data.Fin.Patterns`.
3433

3534
Non-backwards compatible changes
3635
--------------------------------
@@ -71,16 +70,16 @@ Non-backwards compatible changes
7170
not just that of `Algebra.Bundles`.
7271
* **Compatibility:** Modules which previously imported both `Algebra` and
7372
`Algebra.FunctionProperties` and/or `Algebra.Structures` will need small changes.
74-
- If either of `FunctionProperties` or `Structures` are explicitly parameterised by an
75-
equality relation then import `Algebra.Bundles` instead of `Algebra`.
76-
- Otherwise just remove the `FunctionProperties` and `Structures` imports entirely.
73+
- If either of `FunctionProperties` or `Structures` are explicitly parameterised by an
74+
equality relation then import `Algebra.Bundles` instead of `Algebra`.
75+
- Otherwise just remove the `FunctionProperties` and `Structures` imports entirely.
7776

7877
### New function hierarchy
7978

80-
* The current function hierarchy has several deeper problems than the other two:
79+
* The problems with the current function hierarchy run deeper problems than the other two:
8180
1. The raw functions are wrapped in the equality-preserving
8281
type `_⟶_` from `Function.Equality`. As the rest of the library
83-
very rarely uses such wrapped functions, it is almost impossible
82+
rarely uses such wrapped functions, it is very difficult
8483
to write code that interfaces neatly between the `Function` hierarchy
8584
and, for example, the `Algebra` hierarchy.
8685
2. The hierarchy doesn't follow the same pattern as the other record
@@ -129,16 +128,17 @@ Non-backwards compatible changes
129128
that occurs is when importing both `Function` and e.g. `Function.Injection`. In this
130129
case the old and new definitions of `Injection` will clash. In the short term this
131130
can be fixed immediately by importing `Function.Base` instead of `Function`.
132-
However in the longer term it is encouraged to migrate to the new hierarchy.
131+
However in the longer term it is encouraged to migrate away from `Function.Injection`
132+
and to use the new hierarchy instead.
133133

134-
* Finally in the new hierarchy the propositional bundle for left inverses in
135-
`Function.Bundles` has been renamed from `_↞_` to `_↩_` in order to make room for
134+
* Finally the propositional bundle for left inverses in `Function.Bundles` has been
135+
renamed in the new hierarchy from `_↞_` to `_↩_`. This is in order to make room for
136136
the new bundle for right inverse `_↪_`.
137137

138138
#### Harmonizing `List.All` and `Vec` in their role as finite maps.
139139

140140
* The function `updateAt` in `Data.List.Relation.Unary.All` is analogous
141-
to `updateAt` in `Data.Vec.Base` and hence, the API for the former has
141+
to `updateAt` in `Data.Vec.Base` and hence the API for the former has
142142
been refactored to match the latter.
143143

144144
* Added a new "points-to" relation `_[_]=_` in `Data.List.Relation.Unary.All`:
@@ -151,19 +151,14 @@ Non-backwards compatible changes
151151
relation rather than the function `lookup`. The old proofs are available with
152152
minor variations under the names `lookup∘updateAt` and `updateAt-cong-relative`.
153153

154-
#### Removing irrelevance where not strictly necessary
154+
#### Other
155155

156156
* Version 1.1 in the library added irrelevance to various places in the library.
157-
Unfortunately this exposed the library to several irrelevance related bugs.
157+
Unfortunately this exposed the library to several irrelevance-related bugs.
158158
The decision has therefore been taken to roll-back these additions until
159-
irrelevance is more stable. In particular it has been removed from the
160-
following functions:
161-
162-
* In `Data.Nat.DivMod`: `_%_`, `_/_`, `_div_`, `_mod_`.
163-
164-
* In `Data.Fin.Base`: `fromℕ≤`, `inject≤`.
165-
166-
#### Other
159+
irrelevance is more stable. In particular it has been removed from
160+
`_%_`, `_/_`, `_div_`, `_mod_` in `Data.Nat.DivMod` and from `fromℕ≤`, `inject≤`
161+
in `Data.Fin.Base`.
167162

168163
* The proofs `isPreorder` and `preorder` have been moved from the `Setoid`
169164
record to the module `Relation.Binary.Properties.Setoid`.
@@ -173,14 +168,14 @@ Non-backwards compatible changes
173168
GCD. Although less elegant than the previous implementation, it's
174169
reduction behaviour is much easier to reason about.
175170

176-
Re-implementations/deprecations
171+
Re-implementations and deprecations
177172
-------------------------------
178173

179174
### `Data.Bin``Data.Nat.Binary`
180175

181-
* The current implementation of naturals represented in binary natively in Agda
182-
has proven hard to work with. Therefore a new, simpler implementation which avoids
183-
using `List` has been added as `Data.Nat.Binary`.
176+
* The current implementation of binary naturals in Agda has proven hard to work with.
177+
Therefore a new, simpler implementation which avoids using `List` has been added
178+
as `Data.Nat.Binary`.
184179
```agda
185180
Data.Nat.Binary
186181
Data.Nat.Binary.Base
@@ -309,26 +304,27 @@ Other major additions
309304

310305
### Other new modules
311306

312-
* Properties for `Semigroup` and `CommutativeSemigroup`.
307+
* Properties for `Semigroup` and `CommutativeSemigroup`. Contains all the
308+
non-trivial 3 element permutations. Useful for equational reasoning.
313309
```agda
314310
Algebra.Properties.Semigroup
315311
Algebra.Properties.CommutativeSemigroup
316312
```
317-
Contains all the non-trivial 3 element permutations. Useful for equational
318-
reasoning.
313+
319314

320315
* A map interface for AVL trees.
321316
```agda
322317
Data.AVL.Map
323318
```
324319

325-
* Level polymorphic versions for the bottom and top types.
320+
* Level polymorphic versions for the bottom and top types. Useful in
321+
getting rid of the need to use `Lift`.
326322
```agda
327323
Data.Unit.Polymorphic
328324
Data.Unit.Polymorphic.Properties
329325
Data.Empty.Polymorphic
330326
```
331-
Useful in getting rid of the need to use `Lift`.
327+
332328

333329
* Greatest common divisor and least common multiples for integers:
334330
```agda
@@ -348,23 +344,25 @@ Other major additions
348344
Data.List.Fresh.Membership.Properties
349345
```
350346

351-
* Kleene lists.
347+
* Kleene lists. Useful when needing to distinguish between empty and non-empty lists.
352348
```agda
353349
Data.List.Kleene
354350
Data.List.Kleene.AsList
355351
Data.List.Kleene.Base
356352
```
357-
Useful when needing to distinguish between empty and non-empty lists.
353+
358354

359355
* Predicate over lists in which every neighbouring pair of elements is related.
356+
Useful for implementing paths in graphs.
360357
```agda
361358
Data.List.Relation.Unary.Linked
362359
Data.List.Relation.Unary.Linked.Properties
363360
```
364-
Useful for implementing paths.
365361

366-
*
362+
* Disjoint sublists.
363+
```agda
367364
Data.List.Relation.Binary.Sublist.Propositional.Disjoint
365+
```
368366

369367
* Rationals whose numerator and denominator are not necessarily normalised (i.e. coprime).
370368
```
@@ -375,7 +373,8 @@ Other major additions
375373
and that evaluation is inefficient as the top and the bottom will inevitably
376374
blow up. However they are significantly easier to reason about then the existing
377375
normalised implementation in `Data.Rational`. The new monomorphism infrastructure
378-
(see below) can therefore be used to transfer proofs to the normalised implementation.
376+
(see below) is used to transfer proofs from these new unnormalised rationals
377+
to the existing normalised implementation.
379378

380379
* Basic constructions for the new funciton hierarchy.
381380
```agda
@@ -389,12 +388,12 @@ Other major additions
389388
Foreign.Haskell.Either
390389
```
391390

392-
* Properties of setoids
391+
* Properties of setoids.
393392
```agda
394393
Relation.Binary.Properties.Setoid
395394
```
396395

397-
* New modules for reasoning over partial setoids.
396+
* Reasoning over partial setoids.
398397
```
399398
Relation.Binary.Reasoning.Base.Partial
400399
Relation.Binary.Reasoning.PartialSetoid

0 commit comments

Comments
 (0)