From a3a70c307641515da614c95e7f34a0159bf2d522 Mon Sep 17 00:00:00 2001
From: Ralf Jung <jung@mpi-sws.org>
Date: Tue, 16 Feb 2016 18:54:15 +0100
Subject: [PATCH] complete writing down the invariant of the barrier protocol

---
 barrier/barrier.v | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/barrier/barrier.v b/barrier/barrier.v
index 05210c59..d5de9209 100644
--- a/barrier/barrier.v
+++ b/barrier/barrier.v
@@ -1,3 +1,4 @@
+From algebra Require Export upred_big_op.
 From program_logic Require Export sts saved_prop.
 From heap_lang Require Export derived heap wp_tactics notation.
 
@@ -102,10 +103,11 @@ Section proof.
   Notation iProp := (iPropG heap_lang Σ).
 
   Definition waiting (P : iProp) (I : gset gname) : iProp :=
-    (∃ Q : gmap gname iProp, True)%I.
+    (∃ Q : gmap gname iProp, ▷(P -★ Π★{map Q} (λ _ Q, Q)) ★
+                             Π★{map Q} (λ i Q, saved_prop_own SpI i Q))%I.
 
   Definition ress (I : gset gname) : iProp :=
-    (True)%I.
+    (Π★{set I} (λ i, ∃ Q, saved_prop_own SpI i Q ★ ▷Q))%I.
 
   Definition barrier_inv (l : loc) (P : iProp) (s : stateT) : iProp :=
     match s with
-- 
GitLab