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 foreign_of_marshal j m args tm targs :
foreign_of (marshal j m args tm targs)
= restrict (as_inj j) (REACH m (getBlocks args)).