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
Sidebyside
CHANGELOG.md
View file @
ac15d042
...
...
@@ 7,56 +7,76 @@ Coq development, but not every APIbreaking 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 (nonstatedependent) 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 20170111)
...
...
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