fact: Fixpoint beq (t u : term) := match t with | Var x => match u with | Var y => beq_nat x y | _ => false end | Fun f ts => match u with | Fun g us => let fix beq_terms (ts us : terms) := match ts with | nil => match us with | nil => true | _ => false end | t :: ts' => match us with | u :: us' => beq t u && beq_terms ts' us' | _ => false end end in beq_symb f g && beq_terms ts us | _ => false end end.
imports: CoLoR(LogicUtil BoolUtil ListUtil EqUtil ListDec NatUtil ListMax) Coq(Peano_dec)