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
Iris
Tutorial POPL18
Commits
80662fab
Commit
80662fab
authored
Sep 15, 2020
by
Ralf Jung
Browse files
depend on nightly Iris and fix build
parent
000ac444
Pipeline
#34148
failed with stage
in 18 minutes and 50 seconds
Changes
6
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
80662fab
...
@@ -10,7 +10,7 @@ This tutorial comes in two versions:
...
@@ -10,7 +10,7 @@ This tutorial comes in two versions:
For the tutorial material you need to have the following dependencies installed:
For the tutorial material you need to have the following dependencies installed:
-
Coq 8.10.2 / 8.11.2 / 8.12.0
-
Coq 8.10.2 / 8.11.2 / 8.12.0
-
[
Iris
](
https://gitlab.mpi-sws.org/iris/iris
)
3.3.0
-
A development version of
[
Iris
](
https://gitlab.mpi-sws.org/iris/iris
)
*Note:*
the tutorial material will not work with earlier versions of Iris, it
*Note:*
the tutorial material will not work with earlier versions of Iris, it
is important to install the exact versions as given above.
is important to install the exact versions as given above.
...
@@ -29,7 +29,15 @@ done so earlier):
...
@@ -29,7 +29,15 @@ done so earlier):
opam repo add coq-released https://coq.inria.fr/opam/released
opam repo add coq-released https://coq.inria.fr/opam/released
opam repo add iris-dev https://gitlab.mpi-sws.org/iris/opam.git
opam repo add iris-dev https://gitlab.mpi-sws.org/iris/opam.git
Then you can do
`make build-dep`
to install exactly the right version of Iris.
Once you got opam set up, run
`make build-dep`
to install the right versions
of the dependencies.
Run
`make -jN`
to build the full development, where
`N`
is the number of your
CPU cores.
To update, do
`git pull`
. After an update, the development may fail to compile
because of outdated dependencies. To fix that, please run
`opam update`
followed by
`make build-dep`
.
## Compiling the exercises
## Compiling the exercises
...
...
exercises/ex_04_parallel_add.v
View file @
80662fab
...
@@ -83,7 +83,7 @@ Section proof2.
...
@@ -83,7 +83,7 @@ Section proof2.
own
γ
(
●
E
n
)
-
∗
own
γ
(
◯
E
m
)
-
∗
⌜
n
=
m
⌝
.
own
γ
(
●
E
n
)
-
∗
own
γ
(
◯
E
m
)
-
∗
⌜
n
=
m
⌝
.
Proof
.
Proof
.
iIntros
"Hγ● Hγ◯"
.
iIntros
"Hγ● Hγ◯"
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%?%
excl_auth_agreeL
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%?%
excl_auth_agree
_
L
.
Qed
.
Qed
.
Lemma
ghost_var_update
γ
n'
n
m
:
Lemma
ghost_var_update
γ
n'
n
m
:
...
...
exercises/ex_05_parallel_add_mul.v
View file @
80662fab
...
@@ -42,7 +42,7 @@ Section proof.
...
@@ -42,7 +42,7 @@ Section proof.
own
γ
(
●
E
b
)
-
∗
own
γ
(
◯
E
c
)
-
∗
⌜
b
=
c
⌝
.
own
γ
(
●
E
b
)
-
∗
own
γ
(
◯
E
c
)
-
∗
⌜
b
=
c
⌝
.
Proof
.
Proof
.
iIntros
"Hγ● Hγ◯"
.
iIntros
"Hγ● Hγ◯"
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%<-%
excl_auth_agreeL
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%<-%
excl_auth_agree
_
L
.
Qed
.
Qed
.
Lemma
ghost_var_update
γ
b'
b
c
:
Lemma
ghost_var_update
γ
b'
b
c
:
...
...
opam
View file @
80662fab
...
@@ -9,7 +9,7 @@ dev-repo: "git+https://gitlab.mpi-sws.org/iris/tutorial-popl18.git"
...
@@ -9,7 +9,7 @@ dev-repo: "git+https://gitlab.mpi-sws.org/iris/tutorial-popl18.git"
synopsis: "The Iris tutorial at POPL 2018"
synopsis: "The Iris tutorial at POPL 2018"
depends: [
depends: [
"coq-iris" { (= "
3.3.0
") | (= "dev") }
"coq-iris" { (= "
dev.2020-09-15.2.59280f68
") | (= "dev") }
]
]
build: [make "-j%{jobs}%"]
build: [make "-j%{jobs}%"]
...
...
solutions/ex_04_parallel_add.v
View file @
80662fab
...
@@ -98,7 +98,7 @@ Section proof2.
...
@@ -98,7 +98,7 @@ Section proof2.
own
γ
(
●
E
n
)
-
∗
own
γ
(
◯
E
m
)
-
∗
⌜
n
=
m
⌝
.
own
γ
(
●
E
n
)
-
∗
own
γ
(
◯
E
m
)
-
∗
⌜
n
=
m
⌝
.
Proof
.
Proof
.
iIntros
"Hγ● Hγ◯"
.
iIntros
"Hγ● Hγ◯"
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%?%
excl_auth_agreeL
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%?%
excl_auth_agree
_
L
.
Qed
.
Qed
.
Lemma
ghost_var_update
γ
n'
n
m
:
Lemma
ghost_var_update
γ
n'
n
m
:
...
@@ -199,7 +199,7 @@ Section proof3.
...
@@ -199,7 +199,7 @@ Section proof3.
-
iIntros
(??)
"[Hγ1◯ Hγ2◯] !>"
.
wp_seq
.
-
iIntros
(??)
"[Hγ1◯ Hγ2◯] !>"
.
wp_seq
.
wp_apply
(
acquire_spec
with
"Hl"
).
iDestruct
1
as
(
n
)
"(Hr & Hγ●)"
.
wp_apply
(
acquire_spec
with
"Hl"
).
iDestruct
1
as
(
n
)
"(Hr & Hγ●)"
.
wp_seq
.
wp_load
.
iCombine
"Hγ1◯ Hγ2◯"
as
"Hγ◯"
.
wp_seq
.
wp_load
.
iCombine
"Hγ1◯ Hγ2◯"
as
"Hγ◯"
.
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%->%
frac_auth_agreeL
.
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%->%
frac_auth_agree
_
L
.
by
iApply
"Post"
.
by
iApply
"Post"
.
Qed
.
Qed
.
(* END SOLUTION BEGIN TEMPLATE
(* END SOLUTION BEGIN TEMPLATE
...
...
solutions/ex_05_parallel_add_mul.v
View file @
80662fab
...
@@ -42,7 +42,7 @@ Section proof.
...
@@ -42,7 +42,7 @@ Section proof.
own
γ
(
●
E
b
)
-
∗
own
γ
(
◯
E
c
)
-
∗
⌜
b
=
c
⌝
.
own
γ
(
●
E
b
)
-
∗
own
γ
(
◯
E
c
)
-
∗
⌜
b
=
c
⌝
.
Proof
.
Proof
.
iIntros
"Hγ● Hγ◯"
.
iIntros
"Hγ● Hγ◯"
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%<-%
excl_auth_agreeL
.
by
iDestruct
(
own_valid_2
with
"Hγ● Hγ◯"
)
as
%<-%
excl_auth_agree
_
L
.
Qed
.
Qed
.
Lemma
ghost_var_update
γ
b'
b
c
:
Lemma
ghost_var_update
γ
b'
b
c
:
...
...
Write
Preview
Supports
Markdown
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