(*The name is legacy. Comes from the time there was two shares. Then
 * The contradiction would look like 
 * forall (sh2 sh3:pshares) -> join pfullshare sh2 sh3 -> False. *)
Local Ltac pfulltac := try solve [exfalso; eapply join_writable0_readable; eauto].

Lemma rmap_makelock_join phi1 phi1' loc R length phi2 phi : 0 < length -> rmap_makelock phi1 phi1' loc R length -> join phi1 phi2 phi -> exists phi', rmap_makelock phi phi' loc R length /\ join phi1' phi2 phi'.