fact: Fixpoint tree_induct_gen (T : tree) : P T := match T as x return P x with | leaf n => P1 n | node l => P2 ((fix tree_list_induct (l : list tree) : Q l := match l as x return Q x with | nil => Q1 | t::l' => Q2 (tree_induct_gen t) (tree_list_induct l') end) l) end.
imports: TLC(LibTactics LibLogic LibReflect LibFun LibEpsilon LibList LibInt LibNat LibProd LibSum LibRelation LibWf LibFix LibStream) ZifyNat