(*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 mkCanon_lub : forall t11 t12 t21 t22 t31 t32,
lub (exist _ (mkCanon (Node t11 t12)) (mkCanon_correct _))
(exist _ (mkCanon (Node t21 t22)) (mkCanon_correct _)) =
(exist _ (mkCanon (Node t31 t32)) (mkCanon_correct _))<->
lub (exist _ (mkCanon t11) (mkCanon_correct _))
(exist _ (mkCanon t21) (mkCanon_correct _)) =
(exist _ (mkCanon t31) (mkCanon_correct _))/\
lub (exist _ (mkCanon t12) (mkCanon_correct _))
(exist _ (mkCanon t22) (mkCanon_correct _)) =
(exist _ (mkCanon t32) (mkCanon_correct _)).