Definition extern_incr (mu mu': SM_Injection): Prop :=
   inject_incr (extern_of mu) (extern_of mu') /\
   (local_of mu = local_of mu') /\
   (forall b, extBlocksSrc mu b = true -> extBlocksSrc mu' b = true) /\
   (forall b, extBlocksTgt mu b = true -> extBlocksTgt mu' b = true) /\
   (locBlocksSrc mu = locBlocksSrc mu') /\
   (locBlocksTgt mu = locBlocksTgt mu') /\
   (pubBlocksSrc mu = pubBlocksSrc mu') /\
   (pubBlocksTgt mu = pubBlocksTgt mu') /\
   (frgnBlocksSrc mu = frgnBlocksSrc mu') /\
   (frgnBlocksTgt mu = frgnBlocksTgt mu').

(* Specifications: *)
Lemma extern_incr_locBlocksSrc mu mu': extern_incr mu mu' -> locBlocksSrc mu = locBlocksSrc mu'.
Lemma extern_incr_locBlocksTgt mu mu': extern_incr mu mu' -> locBlocksTgt mu = locBlocksTgt mu'.
Lemma extern_incr_frgnBlocksSrc mu mu': extern_incr mu mu' -> frgnBlocksSrc mu = frgnBlocksSrc mu'.
Lemma extern_incr_frgnBlocksTgt mu mu': extern_incr mu mu' -> frgnBlocksTgt mu = frgnBlocksTgt mu'.
Lemma extern_incr_DomSrc: forall mu mu' (Inc: extern_incr mu mu') b, DomSrc mu b = true -> DomSrc mu' b = true.
Lemma extern_incr_DOM: forall mu mu' (Inc: extern_incr mu mu') b, DOM mu b -> DOM mu' b.
Lemma extern_incr_DomTgt: forall mu mu' (Inc: extern_incr mu mu') b, DomTgt mu b = true -> DomTgt mu' b = true.
Lemma extern_incr_RNG: forall mu mu' (Inc: extern_incr mu mu') b, RNG mu b -> RNG mu' b.
Lemma extern_incr_unknown: forall mu mu' (INC: extern_incr mu mu'), inject_incr (unknown_of mu) (unknown_of mu').
Lemma extern_incr_foreign_inc: forall mu mu' (INC: extern_incr mu mu'), inject_incr (foreign_of mu) (foreign_of mu').
Lemma extern_incr_foreign: forall mu mu' (INC: extern_incr mu mu') (WDmu: SM_wd mu), foreign_of mu = foreign_of mu'.
Lemma extern_incr_pub: forall mu mu' (INC: extern_incr mu mu'), pub_of mu = pub_of mu'.
Lemma extern_incr_priv: forall mu mu' (INC: extern_incr mu mu'), priv_of mu = priv_of mu'.
Lemma extern_incr_DomSrc: forall mu mu' (Inc: extern_incr mu mu') b, DomSrc mu b = true -> DomSrc mu' b = true.
Lemma extern_incr_DOM: forall mu mu' (Inc: extern_incr mu mu') b, DOM mu b -> DOM mu' b.
Lemma extern_incr_DomTgt: forall mu mu' (Inc: extern_incr mu mu') b, DomTgt mu b = true -> DomTgt mu' b = true.
Lemma extern_incr_RNG: forall mu mu' (Inc: extern_incr mu mu') b, RNG mu b -> RNG mu' b.
Lemma extern_incr_unknown: forall mu mu' (INC: extern_incr mu mu'), inject_incr (unknown_of mu) (unknown_of mu').
Lemma extern_incr_frgnBlocksSrc: forall mu nu (INC: extern_incr mu nu), frgnBlocksSrc mu = frgnBlocksSrc nu.
Lemma extern_incr_frgnBlocksTgt: forall mu nu (INC: extern_incr mu nu), frgnBlocksTgt mu = frgnBlocksTgt nu.
Lemma extern_incr_foreign_inc: forall mu mu' (INC: extern_incr mu mu'), inject_incr (foreign_of mu) (foreign_of mu').
Lemma extern_incr_foreign: forall mu mu' (INC: extern_incr mu mu') (WDmu: SM_wd mu), foreign_of mu = foreign_of mu'.
Lemma extern_incr_pub: forall mu mu' (INC: extern_incr mu mu'), pub_of mu = pub_of mu'.
Lemma extern_incr_priv: forall mu mu' (INC: extern_incr mu mu'), priv_of mu = priv_of mu'.