proposition: Lemma data_at__tarray_value: forall sh n n1 p, 0 <= n1 <= n -> data_at_ sh (tarray int_or_ptr_type n) p = data_at_ sh (tarray int_or_ptr_type n1) p * data_at_ sh (tarray int_or_ptr_type (n - n1)) (offset_val (WORD_SIZE * n1) p).
proof: Proof. intros. rewrite !data_at__eq. apply data_at_tarray_value with (default_val (tarray int_or_ptr_type n)); [assumption | unfold default_val; simpl; autorewrite with sublist..]; [lia | 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