fact: Fixpoint gmapd {A B : Type} (l : list A) : (forall a, LIn a l -> B) -> list B := match l with | [] => fun f => [] | x :: xs => fun (f : forall a, LIn a (x::xs) -> B) => (f x (injL(eq_refl))) :: gmapd xs (fun a i => f a (injR(i))) end.
imports: UsefulTypes bin_rels Omega