Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
George Pirlea
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
...
@@ 7,56 +7,76 @@ Coq development, but not every APIbreaking 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 (nonstatedependent) reductions in heap_lang.
*
Improve handling of pure (nonstatedependent) 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 20170111)
## 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