diff --git a/atomic_pair.v b/atomic_pcas.v similarity index 100% rename from atomic_pair.v rename to atomic_pcas.v diff --git a/pair_cas.v b/pcas.v similarity index 100% rename from pair_cas.v rename to pcas.v diff --git a/proof.v b/proof.v deleted file mode 100644 index e2377d5a61c43bacf068e99449bd8ba07dc2d475..0000000000000000000000000000000000000000 --- a/proof.v +++ /dev/null @@ -1,52 +0,0 @@ -From iris.program_logic Require Export weakestpre. -From iris.heap_lang Require Export lang. -From iris.heap_lang.lib.barrier Require Export barrier. -From iris.prelude Require Import functions. -From iris.algebra Require Import upred_big_op. -From iris.program_logic Require Import saved_prop sts. -From iris.heap_lang Require Import proofmode. -From flatcomb Require Import protocol flat. - -Class flatG Σ := FlatG { - flat_stsG :> stsG Σ sts -}. - -Definition flatΣ : gFunctors := #[stsΣ sts]. - -Instance subG_flatΣ {Σ} : subG flatΣ Σ → flatG Σ. -Admitted. - -(** Now we come to the Iris part of the proof. *) -Section proof. - Context `{!heapG Σ, !flatG Σ} (N : namespace). - - Coercion state_to_val (s : state) : val := - match s with - | Init => #0 - | Req => #1 - | Exec => #2 - | Resp => #3 - | Ack => #4 - end. - - Arguments state_to_val !_ / : simpl nomatch. - - Definition flat_inv (l : loc) (s : state) : iProp Σ := - (l ↦ s)%I. - - Definition flat_ctx (γ: gname) (l : loc) : iProp Σ := - (■ (heapN ⊥ N) ★ heap_ctx ★ sts_ctx γ N (flat_inv l))%I. - - Definition init (l: loc) := - (∃ γ, flat_ctx γ l ★ sts_ownS γ {[ Init ]} ∅)%I. - - Definition req (lo: val) P := - (∃ γ req (l: loc), lo = #l ∧ l ↦ InjLV req ★ P req ★ sts_ownS γ {[ Req ]} {[ White ]})%I. - - Lemma doOp_spec (l f o: val) P: - ∀ Φ: val → iProp Σ, - (* lock l ★ *) - req o P - ⊢ WP doOp f o {{ Φ }}. - -