Goal:
    A : Type  P : tree A -> Type  empty : P Empty
  ============================
   ((forall l : tree A,
     P l ->
     forall (o : option A) (r : tree A),
     P r -> not_trivially_empty l o r -> P (Node l o r)) -> 
    tree' A -> True)


DEBUG:Going to execute:
simplify * || simplify ?; cbv beta