Skip to content
Snippets Groups Projects
Commit ac15d042 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Some updates to the CHANGELOG.

parent 5fe1a501
No related branches found
No related tags found
No related merge requests found
...@@ -7,56 +7,76 @@ Coq development, but not every API-breaking change is listed. Changes marked ...@@ -7,56 +7,76 @@ Coq development, but not every API-breaking change is listed. Changes marked
Changes in and extensions of the theory: Changes in and extensions of the theory:
* [#] CMRA morphisms have to be homomorphisms, not just monotone functions. * [#] Camera morphisms have to be homomorphisms, not just monotone functions.
* [#] Show that f has a fixed point if f^k is contractive. * [#] A proof that `f` has a fixed point if `f^k` is contractive.
* Provide least and greatest fixed point (defined in the logic of Iris). * Constructions for least and greatest fixed points over monotone predicates
* Prove the inverse of wp_bind. (defined in the logic of Iris using impredicative quantification).
* A proof of the inverse of `wp_bind`.
Changes in Coq: Changes in Coq:
* Some things got renamed and notation changed: * Some things got renamed and notation changed:
- The unit of a camera: empty -> unit, -> ε - The unit of a camera: `empty` -> `unit`, `∅` -> `ε`
- ?: IntoOp -> IsOp - The proof mode type class `IntoOp` -> `IsOp`
- OFEs with all elements being discrete: Discrete -> OfeDiscrete - OFEs with all elements being discrete: `Discrete` -> `OfeDiscrete`
- OFE elements whose equality is discrete: Timeless -> Discrete - OFE elements whose equality is discrete: `Timeless` -> `Discrete`
- Timeless propositions: TimelessP -> Timeless - Timeless propositions: `TimelessP` -> `Timeless`
- Camera elements such that `core x = x`: Persistent -> CoreId - Camera elements such that `core x = x`: `Persistent` -> `CoreId`
- Persistent propositions: PersistentP -> Persistent - Persistent propositions: `PersistentP` -> `Persistent`
- The persistent modality: always -> persistently - The persistent modality: `always` -> `persistently`
- Consistently SnakeCase identifiers: - Consistently SnakeCase identifiers:
+ CMRAMixin -> CmraMixin + `CMRAMixin` -> `CmraMixin`
+ CMRAT -> CmraT, + `CMRAT` -> `CmraT`
+ CMRATotal -> CmraTotal + `CMRATotal` -> `CmraTotal`
+ CMRAMorphism -> CmraMorphism + `CMRAMorphism` -> `CmraMorphism`
+ CMRADiscrete -> CmraDiscrete + `CMRADiscrete` -> `CmraDiscrete`
+ UCMRAMixin -> UcmraMixin + `UCMRAMixin` -> `UcmraMixin`
+ UCMRAT -> UcmraT + `UCMRAT` -> `UcmraT`
+ DRAMixin -> DraMixin + `DRAMixin` -> `DraMixin`
+ DRAT -> DraT + `DRAT` -> `DraT`
+ STS -> Sts + `STS` -> `Sts`
- Many lemmas also changed their name. A partial list: - Many lemmas also changed their name. A partial list:
+ always_and_sep_l -> and_sep_l + `impl_wand` -> `impl_wand_1` (it only involves one direction of the
+ wand_impl_always -> impl_wand_persistently (additionally, the direction of equivalent)
this equivalence got swapped) + `always_impl_wand` -> `impl_wand`
+ always_wand_impl -> persistently_impl_wand (additionally, the direction of + `always_and_sep_l` -> `and_sep_l`
this equivalence got swapped) + `always_and_sep_r` -> `and_sep_r`
- ? more + `always_sep_dup` -> `sep_dup`
The following sed snippet should get you most of the way: + `wand_impl_always` -> `impl_wand_persistently` (additionally,
the direction of this equivalence got swapped for consistency's sake)
+ `always_wand_impl` -> `persistently_impl_wand` (additionally, the
direction of this equivalence got swapped for consistency's sake)
The following `sed` snippet should get you most of the way:
``` ```
sed 's/\bPersistentP\b/Persistent/g; s/\bTimelessP\b/Timeless/g; s/\bCMRADiscrete\b/CmraDiscrete/g; s/\bSTS\b/Sts/g' -i $(find -name "*.v") sed 's/\bPersistentP\b/Persistent/g; s/\bTimelessP\b/Timeless/g; s/\bCMRADiscrete\b/CmraDiscrete/g; s/\bSTS\b/Sts/g' -i $(find -name "*.v")
``` ```
* Fix a bunch of consistency issues in the proof mode, and make it overall more * Fix a bunch of consistency issues in the proof mode, and make it overall more
usable. In particular: usable. In particular:
- All proof mode tactics start the proof mode if necessary; iStartProof is no - All proof mode tactics start the proof mode if necessary; `iStartProof` is
longer needed. no longer needed and should only be used for building custom proof mode
- Change in the grammar of specialization patterns: >[...] -> [> ...] tactics.
- ? More stuff ? - Change in the grammar of specialization patterns: `>[...]` -> `[> ...]`
* Redefine bigops to get more definitional equalities. - Various new specification patterns for `done` and framing.
* Improve solve_ndisj. - There is common machinery for symbolic execution of pure reductions. This
is provided by the type classes `PureExec` and `IntoVal`.
- There is a new connective `tc_opaque`, which can be used to make definitions
opaque for type classes, and thus opaque for most tactics of the proof
mode.
- Many missing type class instances for distributing connectives have been
defined.
* The generic `fill` operation of the `ectxi_language` construct has been
defined in terms of a left fold instead of a right fold. This gives rise to
more definitional equalities.
* The big operators have been improved:
+ They are no longer tied to cameras, but work on any monoid
+ The version of big operations over lists was redefined so that it enjoy more
definitional equalities.
* Various improvements to `solve_ndisj`.
* Improve handling of pure (non-state-dependent) reductions in heap_lang. * Improve handling of pure (non-state-dependent) reductions in heap_lang.
* Use Hint Mode to prevent Coq from making arbitrary guesses in the presence of * Use `Hint Mode` to prevent Coq from making arbitrary guesses in the presence
evars. There are a few places where type annotations are now needed. of evars, which often led to divergence. There are a few places where type
* The prelude folder has been moved to its own project: std++ annotations are now needed.
* The `prelude` folder has been moved to its own project: std++
## Iris 3.0.0 (released 2017-01-11) ## Iris 3.0.0 (released 2017-01-11)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment