(* standard VST prelude *)
Instance CompSpecs : compspecs.Instance CompSpecs_Preserve: change_composite_env verif_atomic_exchange.CompSpecs CompSpecs.Definition Vprog : varspecs.(* import funspecs from concurrency library *)
Definition release_spec := DECLARE _release release_spec.Definition makelock_spec := DECLARE _makelock (makelock_spec _).Definition spawn_spec := DECLARE _spawn spawn_spec.Definition N := 3.Definition B := N + 2.Definition tbuffer := Tstruct _buffer noattr.Definition Empty := vint (-1).Definition last_two_reads h := let '(b1, rest) := find_read h (vint 1) in (b1, fst (find_read rest (vint 1))).Definition prev_taken h := fst (find_read (snd (find_write h (vint 0))) (vint 1)).Definition last_write h := fst (find_write h (vint 0)).Definition comm_loc lsh lock comm g g0 g1 g2 bufs sh gsh :=
  AE_loc lsh lock comm g (vint 0) (comm_R bufs sh gsh g0 g1 g2).Definition Ish := Share.comp Ews.

(* Specifications: *)
Lemma Ews_Ish_join : sepalg.join Ews Ish Tsh.
Lemma Ish_not_bot : Ish <> Share.bot.