Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Iris
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
William Mansky
Iris
Commits
18729ff5
Commit
18729ff5
authored
6 years ago
by
Jacques-Henri Jourdan
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' of gitlab.mpi-sws.org:FP/iris-coq
parents
a9f98603
e2a503e9
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
CHANGELOG.md
+5
-2
5 additions, 2 deletions
CHANGELOG.md
theories/algebra/cmra.v
+4
-0
4 additions, 0 deletions
theories/algebra/cmra.v
theories/algebra/gmap.v
+6
-0
6 additions, 0 deletions
theories/algebra/gmap.v
theories/heap_lang/lang.v
+11
-0
11 additions, 0 deletions
theories/heap_lang/lang.v
with
26 additions
and
2 deletions
CHANGELOG.md
+
5
−
2
View file @
18729ff5
...
...
@@ -17,13 +17,15 @@ Changes in and extensions of the theory:
*
[#] Add weakest preconditions for total program correctness.
*
[#] "(Potentially) stuck" weakest preconditions are no longer considered
experimental.
*
[#] The adequacy statement for weakest preconditions now also involves the
final state.
*
[#] The Löb rule is now a derived rule; it follows from later-intro, later
being contractive and the fact that we can take fixpoints of contractive
functions.
*
[#] Add atomic updates and logically atomic triples, including tactic support.
See
`heap_lang/lib/increment.v`
for an example.
*
[#]
H
eap
L
ang now uses right-to-left evaluation order. This makes
easier to
write specifications of curried functions.
*
[#]
h
eap
_l
ang now uses right-to-left evaluation order. This makes
it
significantly easier to
write specifications of curried functions.
Changes in Coq:
...
...
@@ -76,6 +78,7 @@ Changes in Coq:
*
`namespaces`
has been moved to std++.
*
Changed
`IntoVal`
to be directly usable for rewriting
`e`
into
`of_val v`
, and
changed
`AsVal`
to be usable for rewriting via the
`[v <-]`
destruct pattern.
*
`wp_fork`
is now written in curried form.
## Iris 3.1.0 (released 2017-12-19)
...
...
This diff is collapsed.
Click to expand it.
theories/algebra/cmra.v
+
4
−
0
View file @
18729ff5
...
...
@@ -1395,6 +1395,10 @@ Section option.
by
eapply
(
cmra_validN_le
n
);
last
lia
.
-
done
.
Qed
.
Global
Instance
option_cancelable
(
ma
:
option
A
)
:
(
∀
a
:
A
,
IdFree
a
)
→
(
∀
a
:
A
,
Cancelable
a
)
→
Cancelable
ma
.
Proof
.
destruct
ma
;
apply
_
.
Qed
.
End
option
.
Arguments
optionR
:
clear
implicits
.
...
...
This diff is collapsed.
Click to expand it.
theories/algebra/gmap.v
+
6
−
0
View file @
18729ff5
...
...
@@ -288,6 +288,12 @@ Proof.
-
by
rewrite
lookup_singleton_ne
//
!
(
left_id
None
_)
.
Qed
.
Global
Instance
gmap_cancelable
(
m
:
gmap
K
A
)
:
(
∀
x
:
A
,
IdFree
x
)
→
(
∀
x
:
A
,
Cancelable
x
)
→
Cancelable
m
.
Proof
.
intros
??
n
m1
m2
??
i
.
apply
(
cancelableN
(
m
!!
i
));
by
rewrite
-!
lookup_op
.
Qed
.
Lemma
insert_op
m1
m2
i
x
y
:
<
[
i
:=
x
⋅
y
]
>
(
m1
⋅
m2
)
=
<
[
i
:=
x
]
>
m1
⋅
<
[
i
:=
y
]
>
m2
.
Proof
.
by
rewrite
(
insert_merge
(
⋅
)
m1
m2
i
(
x
⋅
y
)
x
y
)
.
Qed
.
...
...
This diff is collapsed.
Click to expand it.
theories/heap_lang/lang.v
+
11
−
0
View file @
18729ff5
...
...
@@ -4,6 +4,17 @@ From stdpp Require Export strings.
From
stdpp
Require
Import
gmap
.
Set
Default
Proof
Using
"Type"
.
(** heap_lang. A fairly simple language used for common Iris examples.
- This is a right-to-left evaluated language, like CakeML and OCaml. The reason
for this is that it makes curried functions usable: Given a WP for [f a b], we
know that any effects [f] might have to not matter until after *both* [a] and
[b] are evaluated. With left-to-right evaluation, that triple is basically
useless the user let-expands [b].
*)
Delimit
Scope
expr_scope
with
E
.
Delimit
Scope
val_scope
with
V
.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment