(*D11*)
 Definition sub (x y : canonTree) : option canonTree :=
  match eq_dec (glb x y) y with
  | left _ => Some (glb x (comp y))
  | right _ => None
  end.

Lemma tree_proof_replace: forall (t : ShareTree) c1 c2, exist (fun t => canonicalTree t) t c1 = exist _ t c2.