fact: Fixpoint map2 `(f : A -> B -> C) (def_l : list A -> list C) (def_r : list B -> list C) l1 l2 := match l1, l2 with | [], [] => [] | [], _ => def_r l2 | _, [] => def_l l1 | x :: l1, y :: l2 => (f x y) :: (map2 f def_l def_r l1 l2) end.
imports: HoTT.Classes.interfaces.abstract_algebra