proposition: Theorem NoDup_gen_weaken : forall (A : Type)(e1 e2 : A -> A -> Prop) ls, NoDup_gen e1 ls -> (forall a1 a2, e2 a1 a2 -> e1 a1 a2) -> NoDup_gen e2 ls.
proof: Proof. induction ls; intuition; simpl in *. econstructor. inversion H; clear H; subst. econstructor. intuition. eapply H3. eapply In_gen_weaken; eauto. eauto. Qed.
imports: List FCF.Fold FCF.RepeatCore