Definition check_gvars_spec (GV: option globals) (GV': option globals) : Prop :=
  match GV' with Some _ => GV = GV' | _ => True end.Definition strong_cast (t1 t2: type) (v: val) : val :=
 force_val (sem_cast t1 t2 v).

Lemma check_specs_lemma: forall Qtemp Qpre_temp Qvar GV GV' rho fl vl (LEN: length fl = length vl) (UNDEF: Forall (fun v => v <> Vundef) vl), check_gvars_spec GV GV' -> Forall (check_one_temp_spec (pTree_from_elements (combine fl vl))) (PTree.elements Qpre_temp) -> fold_right `(and) `(True) (map locald_denote (LocalD Qtemp Qvar GV)) rho -> fold_right `(and) `(True) (map locald_denote (LocalD Qpre_temp (PTree.empty _) GV')) (make_args fl vl rho).