Goal:
  
  A : Type
  B : Type
  empty : B
  node : tree A -> option A -> tree A -> B
  node_empty : node Empty None Empty = empty
  ============================
   (forall (l : tree A) (o : option A) (r : tree A),
    tree_case (Node l o r) = node l o r)


DEBUG:Going to execute:
destruct l, o, r; simpl