(*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.