Program Definition FS_extension: Extension.Sig (Z*fs) fs Z FSCoreSem _ _ csem :=
  @Extension.Make _ _ _ _ _ _ FSCoreSem _ _ csem
    get_core get_fs fst (fun (x: fs) (y: Z) => (y, x))
    _ _ _ fs_ext_pf3.

Lemma FS_core_compat: forall ge, @core_compatible _ _ _ _ _ _ FSCoreSem _ _ _ ge ge FS_extension.