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)
  ============================
   (tree' A -> A -> tree' A -> True)


DEBUG:Going to execute:
let ty := type of B in
           intro || (let H := fresh in
                     intro
                     H)
Level 2: Backtrace:

The first hypothesis in the goal is not an equality.
Level 2: Backtrace:

The first hypothesis in the goal is not an equality.
Level 2: Backtrace:

The first hypothesis in the goal is not an equality.
Level 2: Backtrace:

The first hypothesis in the goal is not an equality.