Library zoo.program_logic.counter
From iris.base_logic Require Import
lib.invariants.
From zoo Require Import
prelude.
From zoo.iris.bi Require Import
big_op.
From zoo.language Require Import
notations.
From zoo.program_logic Require Export
wp.
From zoo.diaframe Require Import
diaframe.
From zoo Require Import
options.
Definition zoo_counter٠incr : val :=
fun: ≠ ⇒
FAA (#zoo_counter).[contents] 1.
Section zoo_G.
Context `{zoo_G : !ZooG Σ}.
Lemma zoo_counter٠incr𑁒spec ids v :
{{{
[∗ list] id ∈ ids,
∃ v,
zoo_counter_at id v
}}}
zoo_counter٠incr ()
{{{
id
, RET #id;
zoo_counter_at id v ∗
⌜Forall (.≠ id) ids⌝
}}}.
End zoo_G.
lib.invariants.
From zoo Require Import
prelude.
From zoo.iris.bi Require Import
big_op.
From zoo.language Require Import
notations.
From zoo.program_logic Require Export
wp.
From zoo.diaframe Require Import
diaframe.
From zoo Require Import
options.
Definition zoo_counter٠incr : val :=
fun: ≠ ⇒
FAA (#zoo_counter).[contents] 1.
Section zoo_G.
Context `{zoo_G : !ZooG Σ}.
Lemma zoo_counter٠incr𑁒spec ids v :
{{{
[∗ list] id ∈ ids,
∃ v,
zoo_counter_at id v
}}}
zoo_counter٠incr ()
{{{
id
, RET #id;
zoo_counter_at id v ∗
⌜Forall (.≠ id) ids⌝
}}}.
End zoo_G.