(* Axioms about splittability. These follow easily from relativization. *)
exists (Node (Leaf true) (Leaf false)).
simpl; intuition.
Defined.
Definition rightTree : canonTree.
exists (Node (Leaf false) (Leaf true)).
simpl; intuition.
Defined.
Definition split (x:canonTree) := (rel x leftTree, rel x rightTree).

(* Specifications: *)
Lemma split_disjoint : forall x1 x2 x,
split x = (x1, x2) -> glb x1 x2 = bot.
Lemma split_together : forall x1 x2 x,
split x = (x1, x2) -> lub x1 x2 = x.
Lemma split_nontrivial : forall x1 x2 x,
split x = (x1, x2) ->
(x1 = bot \/ x2 = bot) ->
x = bot.