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 field_at_list_cell_weak:
forall sh i j p,
readable_share sh ->
field_at sh list_struct [StructField _a] i p *
field_at sh list_struct [StructField _b] j p *
field_at_ sh list_struct [StructField _next] p
= list_cell QS sh (i,j) p *
field_at_ sh list_struct [StructField _next] p.