Forked from
Iris / Iris
5739 commits behind the upstream repository.
CHANGELOG.md 2.76 KiB
In this changelog, we document "large-ish" changes to Iris that affect even the
way the logic is used on paper. We also mention some significant changes in the
Coq development, but not every API-breaking change is listed. Changes marked
[#]
still need to be ported to the Iris Documentation LaTeX file(s).
Iris 3.0 (unfinished)
- There now is a deprecation process. The modules
*.deprecated
contain deprecated notations and definitions that are provided for backwards compatibility and will be removed in a future version of Iris. - View shifts are radically simplified to just internalize frame-preserving updates. Weakestpre is defined inside the logic, and invariants and view shifts with masks are also coded up inside Iris. Adequacy of weakestpre is proven in the logic.
- Use OFEs instead of COFEs everywhere. COFEs are only used for solving the
recursive domain equation. As a consequence, CMRAs no longer need a proof
of completeness.
(The old
cofeT
is provided byalgebra.deprecated
.) - Renaming and moving things around: uPred and the rest of the base logic are
in
base_logic
, whileprogram_logic
is for everything involving the general Iris notion of a language. - Changed notation for embedding Coq assertions into Iris. The new notation
is ⌜φ⌝. Also removed
=
and⊥
from the Iris scope. (The old notations are provided inbase_logic.deprecated
.) - Up-closure of namespaces is now a notation (↑) instead of a coercion.
- With invariants and the physical state being handled in the logic, there is no longer any reason to demand the CMRA unit to be discrete.
- The language can now fork off multiple threads at once.
- Local Updates (for the authoritative monoid) are now a 4-way relation with syntax-directed lemmas proving them.
Iris 2.0
- [heap_lang] No longer use dependent types for expressions. Instead, values carry a proof of closedness. Substitution, closedness and value-ness proofs are performed by computation after reflecting into a term langauge that knows about values and closed expressions.
- [program_logic/language] The language does not define its own "atomic" predicate. Instead, atomicity is defined as reducing in one step to a value.
- [program_logic] Due to a lack of maintenance and usefulness, lifting lemmas for Hoare triples are removed.
Iris 2.0-rc2
This version matches the final ICFP paper.
- [algebra] Make the core of an RA or CMRA a partial function.
- [program_logic/lifting] Lifting lemmas no longer round-trip through a user-chosen predicate to define the configurations we can reduce to; they directly relate to the operational semantics. This is equivalent and much simpler to read.
Iris 2.0-rc1
This is the Coq development and Iris Documentation as submitted to ICFP.