Goal:
  
  elt : Type
  bst_dec : forall t : M.Raw.tree elt, {M.Raw.bst t} + {~ M.Raw.bst t}
  t : M.Raw.tree elt
  l : M.Raw.tree elt
  k : M.Raw.key
  n : elt
  r : M.Raw.tree elt
  z : Int.Z_as_Int.t
  p1 : M.Raw.bst l
  p2 : M.Raw.bst r
  p3 : M.Raw.lt_tree k l
  p4 : M.Raw.gt_tree k r
  ============================
   (M.Raw.bst (M.Raw.Node l k n r z))


DEBUG:Going to execute:
solve [ constructor; assumption | inversion 1; subst; auto ]