Open Scope logic.
Instance CompSpecs : compspecs. make_compspecs prog. Defined.
Definition Vprog : varspecs. mk_varspecs prog. Defined.
Instance LS: listspec _list _tail (fun _ _ => emp).
Definition append_spec :=
DECLARE _append
WITH sh : share, x: val, y: val, s1: list val, s2: list val
PRE [ _x OF (tptr t_struct_list) , _y OF (tptr t_struct_list)]
PROP(writable_share sh)
LOCAL (temp _x x; temp _y y)
SEP (lseg LS sh s1 x nullval; lseg LS sh s2 y nullval)
POST [ tptr t_struct_list ]
EX r: val,
PROP()
LOCAL(temp ret_temp r)
SEP (lseg LS sh (s1++s2) r nullval).
Definition Gprog : funspecs :=   ltac:(with_library prog [ append_spec ]).

Lemma ENTAIL_refl: forall Delta P, ENTAIL Delta, P |-- P.