Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dmitry Khalanskiy
Iris
Commits
ac15d042
Commit
ac15d042
authored
Oct 26, 2017
by
Robbert Krebbers
Browse files
Some updates to the CHANGELOG.
parent
5fe1a501
Changes
1
Hide whitespace changes
Inline
Side-by-side
CHANGELOG.md
View file @
ac15d042
...
...
@@ -7,56 +7,76 @@ Coq development, but not every API-breaking change is listed. Changes marked
Changes in and extensions of the theory:
*
[#] CMRA morphisms have to be homomorphisms, not just monotone functions.
*
[#] Show that f has a fixed point if f^k is contractive.
*
Provide least and greatest fixed point (defined in the logic of Iris).
*
Prove the inverse of wp_bind.
*
[#] Camera morphisms have to be homomorphisms, not just monotone functions.
*
[#] A proof that
`f`
has a fixed point if
`f^k`
is contractive.
*
Constructions for least and greatest fixed points over monotone predicates
(defined in the logic of Iris using impredicative quantification).
*
A proof of the inverse of
`wp_bind`
.
Changes in Coq:
*
Some things got renamed and notation changed:
-
The unit of a camera: empty -> unit,
∅
->
ε
-
?:
IntoOp -> IsOp
-
OFEs with all elements being discrete: Discrete -> OfeDiscrete
-
OFE elements whose equality is discrete: Timeless -> Discrete
-
Timeless propositions: TimelessP -> Timeless
-
Camera elements such that
`core x = x`
: Persistent -> CoreId
-
Persistent propositions: PersistentP -> Persistent
-
The persistent modality: always -> persistently
-
The unit of a camera:
`
empty
`
->
`
unit
`
,
`∅`
->
`ε`
-
The proof mode type class
`
IntoOp
`
->
`
IsOp
`
-
OFEs with all elements being discrete:
`
Discrete
`
->
`
OfeDiscrete
`
-
OFE elements whose equality is discrete:
`
Timeless
`
->
`
Discrete
`
-
Timeless propositions:
`
TimelessP
`
->
`
Timeless
`
-
Camera elements such that
`core x = x`
:
`
Persistent
`
->
`
CoreId
`
-
Persistent propositions:
`
PersistentP
`
->
`
Persistent
`
-
The persistent modality:
`
always
`
->
`
persistently
`
-
Consistently SnakeCase identifiers:
+
CMRAMixin -> CmraMixin
+
CMRAT -> CmraT
,
+
CMRATotal -> CmraTotal
+
CMRAMorphism -> CmraMorphism
+
CMRADiscrete -> CmraDiscrete
+
UCMRAMixin -> UcmraMixin
+
UCMRAT -> UcmraT
+
DRAMixin -> DraMixin
+
DRAT -> DraT
+
STS -> Sts
+
`
CMRAMixin
`
->
`
CmraMixin
`
+
`
CMRAT
`
->
`
CmraT
`
+
`
CMRATotal
`
->
`
CmraTotal
`
+
`
CMRAMorphism
`
->
`
CmraMorphism
`
+
`
CMRADiscrete
`
->
`
CmraDiscrete
`
+
`
UCMRAMixin
`
->
`
UcmraMixin
`
+
`
UCMRAT
`
->
`
UcmraT
`
+
`
DRAMixin
`
->
`
DraMixin
`
+
`
DRAT
`
->
`
DraT
`
+
`
STS
`
->
`
Sts
`
-
Many lemmas also changed their name. A partial list:
+
always_and_sep_l -> and_sep_l
+
wand_impl_always -> impl_wand_persistently (additionally, the direction of
this equivalence got swapped)
+
always_wand_impl -> persistently_impl_wand (additionally, the direction of
this equivalence got swapped)
-
? more
The following sed snippet should get you most of the way:
+
`impl_wand`
->
`impl_wand_1`
(it only involves one direction of the
equivalent)
+
`always_impl_wand`
->
`impl_wand`
+
`always_and_sep_l`
->
`and_sep_l`
+
`always_and_sep_r`
->
`and_sep_r`
+
`always_sep_dup`
->
`sep_dup`
+
`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")
```
*
Fix a bunch of consistency issues in the proof mode, and make it overall more
usable. In particular:
-
All proof mode tactics start the proof mode if necessary; iStartProof is no
longer needed.
-
Change in the grammar of specialization patterns: >[...] -> [> ...]
-
? More stuff ?
*
Redefine bigops to get more definitional equalities.
*
Improve solve_ndisj.
-
All proof mode tactics start the proof mode if necessary;
`iStartProof`
is
no longer needed and should only be used for building custom proof mode
tactics.
-
Change in the grammar of specialization patterns:
`>[...]`
->
`[> ...]`
-
Various new specification patterns for
`done`
and framing.
-
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.
*
Use Hint Mode to prevent Coq from making arbitrary guesses in the presence of
evars. There are a few places where type annotations are now needed.
*
The prelude folder has been moved to its own project: std++
*
Use
`Hint Mode`
to prevent Coq from making arbitrary guesses in the presence
of evars, which often led to divergence. There are a few places where type
annotations are now needed.
*
The
`prelude`
folder has been moved to its own project: std++
## Iris 3.0.0 (released 2017-01-11)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment