proposition: Lemma data_at_tarray_space: forall sh n n1 p (v: list (reptype space_type)), 0 <= n1 <= n -> n = Zlength v -> data_at sh (tarray space_type n) v p = data_at sh (tarray space_type n1) (sublist 0 n1 v) p * data_at sh (tarray space_type (n - n1)) (sublist n1 n v) (offset_val (SPACE_STRUCT_SIZE * n1) p).
proof: Proof. intros. eapply data_at_tarray_split with (t:=space_type); eauto. 1: lia. autorewrite with sublist. reflexivity. Qed.
imports: VST.veric.compcert_rmaps VST.msl.shares VST.msl.wand_frame VST.concurrency.conclib CertiGraph.lib.List_ext CertiGraph.msl_ext.log_normalize CertiGraph.msl_ext.ramification_lemmas CertiGraph.graph.graph_model CertiGraph.CertiGC.GCGraph CertiGraph.CertiGC.env_graph_gc CertiGraph.msl_ext.iter_sepcon Coq.Lists.List