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


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