(*Require Import VST.floyd.unfold_data_at.*)
Local Open Scope logic.
Fixpoint fold_right_sepcon' (l: list(environ->mpred)) : environ -> mpred :=
match l with
| nil => emp
| b::nil => b
| b::r => b * fold_right_sepcon' r
end.

Lemma tc_globalvar_sound':
forall Delta i t gv idata rho,
(var_types Delta) ! i = None ->
(glob_types Delta) ! i = Some t ->
gvar_volatile gv = false ->
gvar_init gv = idata ->
tc_environ Delta rho ->
globvar2pred (globals_of_env rho)  (i, gv) rho |--
init_data_list2pred idata (readonly2share (gvar_readonly gv)) (globals_of_env rho i) rho.