Definition marshal j m args tm targs :=
  Build_SM_Injection
  (fun _ => false) (fun _ => false)
  (fun _ => false) (fun _ => false)
  (fun _ => None)
  (DomSrc j)
  (DomTgt j)
  (REACH m (getBlocks args))
  (REACH tm (getBlocks targs))
  (as_inj j).

Lemma restrict_as_inj_eq j j' m1 m2 : SM_wd j -> SM_wd j' -> inject_incr (as_inj j) (as_inj j') -> sm_inject_separated j j' m1 m2 -> sm_valid j m1 m2 -> restrict (as_inj j') (DomSrc j) = as_inj j.