fact: Fixpoint ne_zip {A B: Type} (l: ne_list A) (m: ne_list B) {struct l} : ne_list (A * B) := match l with | one a => one (a, head m) | a ::: l => match m with | one b => one (a, b) | b ::: m => (a, b) ::: ne_zip l m end end.
imports: Coq.Unicode.Utf8 Coq.Lists.List Coq.Setoids.Setoid Coq.Classes.Morphisms Coq.Sorting.Permutation