Opaque lockRes.

Lemma mem_compatible_sync:
forall tpf mf cf virtue1 virtue2 f bl1 bl2 ofsl i
(pff: containsThread tpf i)
(Hcanonical1: isCanonical virtue2.1)
(Hcanonical2: isCanonical virtue2.2)
(Hf: f bl1 = Some bl2)
(HmaxF: max_inv mf)
(HmemCompF: mem_compatible tpf mf)
(Hcodomain_valid : forall b1 b2 : block,
f b1 = Some b2 -> Mem.valid_block mf b2),
let newPermMap := (computeMap (getThreadR pff).1 (projectAngel f virtue1.1),
computeMap (getThreadR pff).2 (projectAngel f virtue1.2)) in
let newLockMap := (projectMap f virtue2.1, projectMap f virtue2.2) in
mem_compatible (updLockSet (updThread pff cf newPermMap)
(bl2, ofsl) newLockMap) mf.