fact: Fixpoint map2 (A B C : Type) (f: A -> B -> C) (l1 : list A) (l2 : list B) : list C := match l1, l2 with | nil, _ => nil | _, nil => nil | a :: l1, b :: l2 => (f a b) :: map2 _ _ _ f l1 l2 end.
imports: Coq(List Relations Wellfounded Arith Setoid) CoLoR(closure more_list weaved_relation dickson term_spec equational_theory_spec)