Hint Resolve geTrueFull leFalseEmpty emptyLeFalse fullGeTrue
falseLeaf_bottom trueLeaf_top.

(* Specifications: *)
Lemma eqFalseLeaf_empty : forall x,
shareTreeEq (Leaf false) x -> ~nonEmptyTree x.
Lemma eqTrueLeaf_full : forall x,
shareTreeEq (Leaf true) x ->
~nonFullTree x.
Lemma emptyTree_canonical_falseLeaf : forall x,
~nonEmptyTree x ->
canonicalTree x ->
x = Leaf false.
Lemma fullTree_canonical_trueLeaf : forall x,
~nonFullTree x ->
canonicalTree x ->
x = Leaf true.