proposition: Lemma of_remove (eq_dec : eq_dec_type) a : forall l, of_list (remove eq_dec a l) [=] rem a (of_list l).
proof: Proof. induction l; simpl. fo. destruct (eq_dec a0 a). subst. firstorder auto with exfalso. rewrite !of_cons, IHl, add_rem_neq, rem_add_neq; auto. refl. Qed.
imports: Coq(Basics Morphisms Setoid) CoLoR(LogicUtil RelUtil FunUtil ListUtil NatUtil ClassicUtil BoundNat)