Admitted.
Definition twoAccesses2 blockId data :=
let* _ := access Wr blockId (Some data) in
access Rd blockId None.

(* Specifications: *)
Lemma twoAccesses2_correct blockId data {Pre}{Mid : st_rand -> Prop} {Post} :
state_lift' Pre Post(eq data) (twoAccesses2 blockId data).
Theorem PathORAM_simulates_RAM: forall (s0 : st_rand)(data: nat)(blockId: nat),
let ReadOut :=
(let twoAccesses :=
(let* _ := (access Wr blockId (Some data)) in
access Rd blockId None) in
fst (runState twoAccesses s0)
)
in ValEq data ReadOut.