fact: Definition is_tree_type (T : raw_tree_type) : Prop := defined (T []) /\ (forall π σ : list index, defined (T (π ++ σ)) -> defined (T π)) /\ (forall π : list index, T π = Some product \/ T π = Some arrow -> defined (T (π ++ [one])) /\ defined (T (π ++ [two]))) /\ (forall π : list index, T π = Some top -> undefined (T (π ++ [one])) /\ undefined (T (π ++ [two]))).
imports: Coq(Lia Lists.List) Equations(Equations)