Definition FLIP mu :=
  match mu with
    Build_SM_Injection locBSrc locBTgt pSrc pTgt local extBSrc extBTgt fSrc fTgt extern =>
    Build_SM_Injection extBSrc extBTgt fSrc fTgt extern locBSrc locBTgt pSrc pTgt local
  end.

Lemma RGTgt_multicoreLICSpaper: forall mu Etgt Esrc m2 m2' (WD: SM_wd mu) m1 (TgtHyp: forall b ofs, Etgt b ofs = true -> (Mem.valid_block m2 b /\ (locBlocksTgt mu b = false -> exists b1 delta1, foreign_of mu b1 = Some(b,delta1) /\ Esrc b1 (ofs-delta1) = true /\ Mem.perm m1 b1 (ofs-delta1) Max Nonempty))) (Unch2: Mem.unchanged_on (fun b z => Etgt b z = false) m2 m2') nu (X1: forall b, locBlocksTgt nu b = true -> locBlocksTgt mu b = false) (X2: forall b1 b2 d, foreign_of mu b1 = Some(b2, d) -> locBlocksSrc nu b1 || locBlocksTgt nu b2 = true -> pub_of nu b1 = Some(b2,d)), Mem.unchanged_on (local_out_of_reach nu m1) m2 m2'.