proposition: Lemma Forall_swap {A B} (Q : A → B → Prop) l1 l2 : Forall (λ y, Forall (Q y) l1) l2 ↔ Forall (λ x, Forall (flip Q x) l2) l1.
proof: Proof. repeat setoid_rewrite Forall_forall. simpl. split; eauto. Qed.
imports: stdpp(options)