Open Scope logic.
Instance CompSpecs : compspecs. make_compspecs prog. Defined.
Definition Vprog : varspecs. mk_varspecs prog. Defined.
Definition t_struct_elem := Tstruct _elem noattr.
Definition t_struct_fifo := Tstruct _fifo noattr.
Instance QS: listspec _elem _next (fun _ _ => emp).
Hint Resolve Qsh_not_readable.
Hint Resolve Qsh_nonempty : valid_pointer.
Hint Resolve Qsh_nonidentity : valid_pointer.
Hint Resolve sub_Qsh_Ews: valid_pointer.

Lemma make_unmake:
forall a b p,
data_at Ews t_struct_elem (Vint a, (Vint b, Vundef)) p =
field_at Qsh' t_struct_elem [StructField _a] (Vint a) p *
field_at Qsh' t_struct_elem [StructField _b] (Vint b) p *
list_cell QS Qsh (Vundef, Vundef) p *
field_at_ Ews t_struct_elem [StructField _next] p.