End PartialTreeboxRep_Ind_Pred_Ind_Hole.
Module PartialTreeRep_WandQFrame_Func_Hole.
Export PartialTree_WandQFrame_Func_Hole.
Definition partial_tree_rep := partialT tree_rep.

(* Specifications: *)
Lemma partial_tree_rep_singleton_left: forall (t2: tree val) k (v p p1 p2: val),
Int.min_signed <= Z.of_nat k <= Int.max_signed ->
is_pointer_or_null v ->
data_at Tsh t_struct_tree (Vint (Int.repr (Z.of_nat k)), (v, (p1, p2))) p *
tree_rep t2 p2
|-- partial_tree_rep (fun t1 => T t1 k v t2) p p1.
Lemma partial_tree_rep_singleton_right: forall (t1: tree val) k (v p p1 p2: val),
Int.min_signed <= Z.of_nat k <= Int.max_signed ->
is_pointer_or_null v ->
data_at Tsh t_struct_tree (Vint (Int.repr (Z.of_nat k)), (v, (p1, p2))) p *
tree_rep t1 p1
|-- partial_tree_rep (fun t2 => T t1 k v t2) p p2.
Lemma partial_tree_rep_partial_tree_rep: forall pt12 pt23 p1 p2 p3,
partial_tree_rep pt12 p2 p1 * partial_tree_rep pt23 p3 p2 |-- partial_tree_rep (Basics.compose pt23 pt12) p3 p1.