(* This file is distributed under the terms of the MIT License, also known as the X11 Licence.  A copy of this license is in the README file that accompanied the original distribution of this file.  Based on code written by: Brian Aydemir Arthur Charg\'eraud *)
(** Lemmas and tactics for working with and solving goals related to non-membership in finite sets.  The main tactic of interest here is [solve_notin].  Implicit arguments are declared by default in this library. *)
(* *********************************************************************** *)
(** * Implementation *)
Module Notin_fun
(E : DecidableType) (Import X : CoqMSetInterface.WSetsOn E).
Module Import D := CoqMSetDecide.WDecide_fun E X.
(* *********************************************************************** *)
(** * Facts about set non-membership *)
Section Lemmas.
Variables x y  : elt.
Variable  s s' : X.t.

(* Specifications: *)
Lemma notin_empty_1 :
~ In x empty.