Skip to content
Snippets Groups Projects
Commit c305d664 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Merge branch 'master' of gitlab.mpi-sws.org:FP/iris-coq

parents afa8efc2 e7f21fde
No related branches found
No related tags found
No related merge requests found
...@@ -81,3 +81,4 @@ heap_lang/notation.v ...@@ -81,3 +81,4 @@ heap_lang/notation.v
heap_lang/tests.v heap_lang/tests.v
heap_lang/substitution.v heap_lang/substitution.v
barrier/barrier.v barrier/barrier.v
barrier/client.v
From barrier Require Import barrier.
(* FIXME This needs to be imported even though barrier exports it *)
From heap_lang Require Import notation.
Import uPred.
Definition client := (let: "b" := newchan '() in wait "b")%L.
Section client.
Context {Σ : iFunctorG} (N : namespace).
Context `{heapG Σ} (heapN : namespace).
Context `{stsG heap_lang Σ barrier_proto.sts}.
Context `{savedPropG heap_lang Σ}.
Local Notation iProp := (iPropG heap_lang Σ).
Lemma client_safe :
heapN N heap_ctx heapN || client {{ λ _, True }}.
Proof.
intros ?. rewrite /client.
(* FIXME: wp (eapply newchan_spec with (P:=True%I)). *)
wp_focus (newchan _).
rewrite -(newchan_spec N heapN True%I) //.
apply sep_intro_True_r; first done.
apply forall_intro=>l. apply wand_intro_l. rewrite right_id.
wp_let. etrans; last eapply wait_spec.
apply sep_mono_r. apply wand_intro_r. eauto.
Qed.
End client.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment