proposition: Lemma uniquize_In_refl {A} (ls : list A) (beq : A -> A -> bool) x (refl : beq x x = true) (bl : forall x y, beq x y = true -> x = y) : In x ls -> In x (uniquize beq ls).
proof: Proof. intro H; induction ls as [|y ys IHys]; simpl in *; trivial. destruct (Equality.list_bin beq y (uniquize beq ys)) eqn:H'; destruct H; subst; eauto with nocore. { apply Equality.list_in_bl in H'; assumption. } { left; reflexivity. } { right; eauto with nocore. } Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Coq.Lists.List Coq.Lists.SetoidList Coq.Bool.Bool Fiat.Common Fiat.Common.List.Operations Fiat.Common.Equality Fiat.Common.List.FlattenList Fiat.Common.LogicFacts