proposition: Lemma ex_list_repr_impl_of_ex_list_covers_impl : forall E, ex (list_covers_impl E) -> ex (list_repr_impl E).
proof: Proof. Proof using. introv (L&M). sets_eq L1 EQL1: (remove_duplicates L). forwards~ (HN&HM&_): remove_duplicates_spec EQL1. sets L2: (filter (fun x => x \in E) L1). exists L2. split. applys* noduplicates_filter. intros x. specializes M x. rewrite <- HM in M. set_unf. iff N. subst L2. forwards*: mem_filter_inv N. applys* mem_filter. Qed.
imports: Coq.Classes.Morphisms TLC(LibTactics LibLogic LibReflect LibList LibOperation LibMonoid LibInt LibNat LibEpsilon LibRelation LibMin)