fact: Fixpoint term_rect t : P t := match t as t return P t with | Var x => H1 x | Fun f v => H2 f ((fix vt_rect (v : terms) : Q v := match v as v return Q v with | nil => H3 | cons t' v' => H4 (term_rect t') (vt_rect v') end) v) end.
imports: CoLoR(LogicUtil BoolUtil ListUtil EqUtil ListDec NatUtil ListMax) Coq(Peano_dec)