Goal:
  
  A : Type
  P : tree A -> Type
  empty : P Empty
  node : 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)
  r : tree' A
  ============================
   True


DEBUG:Going to execute:
<coq-core.plugins.ltac::unify@0> $1 $2
DEBUG LTAC Evaluated term: (P Empty)
DEBUG LTAC Evaluated term: (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))