Skip to content
Snippets Groups Projects
Commit 59032a59 authored by Ralf Jung's avatar Ralf Jung
Browse files

update dependencies

parent 8cc7ab39
No related branches found
No related tags found
No related merge requests found
Pipeline #74123 passed
...@@ -8,7 +8,7 @@ dev-repo: "git+https://gitlab.mpi-sws.org/iris/examples.git" ...@@ -8,7 +8,7 @@ dev-repo: "git+https://gitlab.mpi-sws.org/iris/examples.git"
synopsis: "A collection of case studies for Iris -- not meant to be used as a dependency of anything" synopsis: "A collection of case studies for Iris -- not meant to be used as a dependency of anything"
depends: [ depends: [
"coq-iris-heap-lang" { (= "dev.2022-08-16.2.a58395f1") | (= "dev") } "coq-iris-heap-lang" { (= "dev.2022-09-25.0.ce054a47") | (= "dev") }
"coq-autosubst" { = "dev" } "coq-autosubst" { = "dev" }
] ]
......
...@@ -15,36 +15,6 @@ From iris.heap_lang Require Import proofmode notation. ...@@ -15,36 +15,6 @@ From iris.heap_lang Require Import proofmode notation.
From iris_examples.locks Require Import freeable_lock. From iris_examples.locks Require Import freeable_lock.
From iris.prelude Require Import options. From iris.prelude Require Import options.
(* TODO move to std++ *)
Section theorems.
Context `{FinMap K M}.
Lemma map_fold_delete {A B} (R : relation B) `{!PreOrder R}
(f : K A B B) (b : B) (i : K) (x : A) (m : M A) :
( j z, Proper (R ==> R) (f j z))
( j1 j2 z1 z2 y,
j1 j2 <[i:=x]> m !! j1 = Some z1 <[i:=x]> m !! j2 = Some z2
R (f j1 z1 (f j2 z2 y)) (f j2 z2 (f j1 z1 y)))
m !! i = Some x
R (map_fold f b m) (f i x (map_fold f b (delete i m))).
Proof using Type*.
intros Hf_proper Hf Hi.
rewrite <-map_fold_insert; [|done|done| |].
- rewrite insert_delete; done.
- intros j1 j2 ????. rewrite insert_delete_insert. auto.
- rewrite lookup_delete. done.
Qed.
Lemma map_fold_delete_L {A B} (f : K A B B) (b : B) (i : K) (x : A) (m : M A) :
( j1 j2 z1 z2 y,
j1 j2 <[i:=x]> m !! j1 = Some z1 <[i:=x]> m !! j2 = Some z2
f j1 z1 (f j2 z2 y) = f j2 z2 (f j1 z1 y))
m !! i = Some x
map_fold f b m = f i x (map_fold f b (delete i m)).
Proof using Type*. apply map_fold_delete; apply _. Qed.
End theorems.
Inductive state := Free | Locked. Inductive state := Free | Locked.
Class lockG Σ := LockG { Class lockG Σ := LockG {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment