Documentation

Projects.Util.Data.Set

structure Set' (α : Type u) [hh₁ : DecidableEq α] [hh₂ : Hashable α] :
Instances For
    @[instance_reducible]
    instance instInhabitedSet' {a✝ : Type u_1} {a✝¹ : DecidableEq a✝} {a✝² : Hashable a✝} :
    Equations
    def Set'.empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
    Set' α
    Equations
    Instances For
      @[instance_reducible]
      instance Set'.instEmptyCollection {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
      Equations
      theorem Set'.empty_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
      = { inner := }
      def Set'.insertP {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (x : α) (s : Set' α) :
      Set' α
      Equations
      Instances For
        @[instance_reducible]
        instance Set'.instInsert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
        Insert α (Set' α)
        Equations
        theorem Set'.insert_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} {s : Set' α} :
        insert x s = { inner := insert x, () s.inner }
        def Set'.insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (i : α) :
        Set' α
        Equations
        Instances For
          def Set'.ofList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (xs : List α) :
          Set' α
          Equations
          Instances For
            def Set'.mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (i : α) :
            Equations
            Instances For
              @[instance_reducible]
              instance Set'.instMembership {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
              Equations
              theorem Set'.mem_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {i : α} :
              i s i s.inner
              @[instance_reducible]
              instance Set'.instDecidableMem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {i : α} :
              Equations
              @[instance_reducible]
              instance Set'.instDecidableMem_1 {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {i : α} :
              Equations
              def Set'.toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] (s : Set' α) :
              List α
              Equations
              Instances For
                @[simp]
                theorem Set'.ofList_nil {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                @[simp]
                theorem Set'.ofList_snoc {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs : List α} {x : α} :
                ofList (xs ++ [x]) = insertP x (ofList xs)
                @[simp]
                theorem Set'.toList_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [LinearOrder α] :
                @[simp]
                theorem Set'.mem_insertP {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x i : α} :
                i insertP x s i = x i s
                @[simp]
                theorem Set'.mem_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {i j : α} :
                j s.insert i j = i j s
                @[simp]
                theorem Set'.mem_insert' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x i : α} :
                i insert x s i = x i s
                @[simp]
                theorem Set'.mem_ofList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs : List α} {i : α} :
                i ofList xs i xs
                theorem Set'.eq_empty_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                s = ∀ (i : α), is
                @[simp]
                theorem Set'.not_mem_empty' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {i : α} :
                @[simp]
                theorem Set'.not_mem_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {i : α} :
                i
                theorem Set'.ext_iff' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                s₁ = s₂ s₁.inner.inner.out.Equiv s₂.inner.inner.out
                theorem Set'.ext' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁.inner.inner.out.Equiv s₂.inner.inner.out) :
                s₁ = s₂
                theorem Set'.ext_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                s₁ = s₂ ∀ (i : α), i s₁ i s₂
                theorem Set'.ext {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : ∀ (i : α), i s₁ i s₂) :
                s₁ = s₂
                theorem Set'.ofList_eq_ofList_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs ys : List α} (hx : xs.Nodup) (hy : ys.Nodup) :
                ofList xs = ofList ys xs.Perm ys
                def Set'.univ {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : Fintype α] :
                Set' α
                Equations
                Instances For
                  @[simp]
                  theorem Set'.mem_univ {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : Fintype α] {i : α} :
                  @[simp]
                  theorem Set'.nonempty_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                  @[simp]
                  theorem Set'.nodup_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [LinearOrder α] :
                  @[simp]
                  theorem Set'.sortedLE_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [LinearOrder α] :
                  @[simp]
                  theorem Set'.mem_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [LinearOrder α] {x : α} :
                  x s.toList x s
                  @[simp]
                  theorem Set'.toList_eq_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [LinearOrder α] {s₁ s₂ : Set' α} :
                  s₁.toList = s₂.toList s₁ = s₂
                  @[simp]
                  theorem Set'.toList_eq_nil_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [LinearOrder α] :
                  def Set'.toDMap {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) :
                  DMap α fun (x : α) => Unit
                  Equations
                  Instances For
                    @[instance_reducible]
                    instance Set'.instDecidableEq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                    Equations
                    @[instance_reducible]
                    instance Set'.instInhabitedSet {α : Type u} :
                    Equations
                    def Set'.values {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] (s : Set' α) :
                    List α
                    Equations
                    Instances For
                      @[simp]
                      theorem Set'.mem_values {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [LinearOrder α] {i : α} :
                      i s.values i s
                      def Set'.all {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (p : αBool) :
                      Equations
                      Instances For
                        theorem Set'.forall_mem_iff_all {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αProp} [hp : DecidablePred p] :
                        (∀ xs, p x) (s.all fun (b : α) => decide (p b)) = true
                        @[instance_reducible]
                        instance Set'.instDecidableForallForallMemOfDecidablePred {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αProp} [hp : DecidablePred p] :
                        Decidable (∀ xs, p x)
                        Equations
                        @[simp]
                        theorem Set'.all_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αProp} [DecidablePred p] :
                        (s.all fun (b : α) => decide (p b)) = decide (∀ xs, p x)
                        @[instance_reducible]
                        instance Set'.instFintype {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : Fintype α] :
                        Equations
                        instance Set'.instFinite {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : Finite α] :
                        def Set'.fold {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (f : βαβ) (z : β) (h_assoc : ∀ {acc : β} {x y : α}, f (f acc x) y = f (f acc y) x) :
                        β
                        Equations
                        Instances For
                          def Set'.fold₁ {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (f : ααα) (h_comm : ∀ {x y : α}, f x y = f y x) (h_assoc : ∀ {acc x y : α}, f (f acc x) y = f (f acc y) x) :
                          Equations
                          Instances For
                            theorem Set'.fold_eq_foldl_toList {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] {z : β} {f : βαβ} {h_assoc : ∀ {acc : β} {x y : α}, f (f acc x) y = f (f acc y) x} :
                            s.fold f z h_assoc = List.foldl f z s.toList
                            theorem Set'.eq_iff_inner_eq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                            s₁ = s₂ s₁.inner = s₂.inner
                            theorem Set'.eq_iff_toList_eq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] {s₁ s₂ : Set' α} :
                            s₁ = s₂ s₁.toList = s₂.toList
                            @[simp]
                            theorem Set'.ofList_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] :
                            theorem Set'.toList_ofList_perm {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] {xs : List α} (h : xs.Nodup) :
                            theorem Set'.ind_ofList' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] {p : Set' αProp} (h : ∀ (xs : List α), xs.Nodupxs.SortedLEp (ofList xs)) (s : Set' α) :
                            p s
                            def Set'.min? {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] (s : Set' α) :
                            Equations
                            Instances For
                              def Set'.max? {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] (s : Set' α) :
                              Equations
                              Instances For
                                def Set'.min! {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] [Inhabited α] (s : Set' α) :
                                α
                                Equations
                                Instances For
                                  def Set'.max! {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] [Inhabited α] (s : Set' α) :
                                  α
                                  Equations
                                  Instances For
                                    theorem Set'.min?_eq_head?_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] :
                                    theorem Set'.maxKey?_eq_getLast?_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] :
                                    @[simp]
                                    theorem Set'.min?_eq_none_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] :
                                    @[simp]
                                    theorem Set'.max?_eq_none_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] :
                                    theorem Set'.not_mem_of_lt_min? {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] {m x : α} (h₁ : s.min? = some m) (h₂ : x < m) :
                                    xs
                                    theorem Set'.not_mem_of_max?_lt {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] {m x : α} (h₁ : s.max? = some m) (h₂ : m < x) :
                                    xs
                                    theorem Set'.not_mem_of_lt_min! {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₁✝ : Inhabited α] [ha₂✝ : LinearOrder α] {x : α} (h : x < s.min!) :
                                    xs
                                    theorem Set'.not_mem_of_max!_lt {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₁✝ : Inhabited α] [ha₂✝ : LinearOrder α] {x : α} (h : s.max! < x) :
                                    xs
                                    theorem Set'.min?_le_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] {m x : α} (h₁ : s.min? = some m) (h₂ : x s) :
                                    m x
                                    theorem Set'.le_max?_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] {m x : α} (h₁ : s.max? = some m) (h₂ : x s) :
                                    x m
                                    theorem Set'.min!_le_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₁✝ : Inhabited α] [ha₂✝ : LinearOrder α] {x : α} (h : x s) :
                                    s.min! x
                                    theorem Set'.le_max!_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₁✝ : Inhabited α] [ha₂✝ : LinearOrder α] {x : α} (h : x s) :
                                    x s.max!
                                    def Set'.subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s s' : Set' α) :
                                    Equations
                                    Instances For
                                      @[instance_reducible]
                                      instance Set'.instHasSubset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                      Equations
                                      theorem Set'.subset_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s s' : Set' α} :
                                      s s' xs, x s'
                                      def Set'.subset_comp {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s s' : Set' α) :
                                      Equations
                                      Instances For
                                        theorem Set'.subset_iff_subset_comp {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s s' : Set' α} :
                                        @[instance_reducible]
                                        instance Set'.instDecidableSubset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s s' : Set' α} :
                                        Decidable (s s')
                                        Equations
                                        @[simp]
                                        theorem Set'.subset_comp_eq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s s' : Set' α} :
                                        s.subset_comp s' = decide (s s')
                                        @[simp]
                                        theorem Set'.subset_refl {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                        s s
                                        theorem Set'.subset_trans {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ s₃ : Set' α} (h₁ : s₁ s₂) (h₂ : s₂ s₃) :
                                        s₁ s₃
                                        theorem Set'.insert_comm {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x y : α} :
                                        (s.insert x).insert y = (s.insert y).insert x
                                        theorem Set'.ind {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {p : Set' αProp} (h₁ : p ) (h₂ : ∀ (s : Set' α), xs, p sp (s.insert x)) (s : Set' α) :
                                        p s
                                        def Set'.union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s₁ s₂ : Set' α) :
                                        Set' α
                                        Equations
                                        Instances For
                                          @[instance_reducible]
                                          instance Set'.instUnion {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                          Union (Set' α)
                                          Equations
                                          theorem Set'.union_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                          s₁ s₂ = s₁.union s₂
                                          @[simp]
                                          theorem Set'.fold_empty {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {f : βαβ} {z : β} {h : ∀ {acc : β} {x y : α}, f (f acc x) y = f (f acc y) x} :
                                          .fold f z h = z
                                          theorem Set'.fold_insert' {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {f : βαβ} {z : β} {h : ∀ {acc : β} {x y : α}, f (f acc x) y = f (f acc y) x} {x : α} (h₁ : xs) :
                                          (s.insert x).fold f z h = s.fold f (f z x)
                                          @[simp]
                                          theorem Set'.mem_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                          x s₁ s₂ x s₁ x s₂
                                          def Set'.ofFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Finset α) :
                                          Set' α
                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem Set'.mem_ofFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Finset α} {x : α} :
                                            noncomputable def Set'.ofSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set α) :
                                            Set' α
                                            Equations
                                            Instances For
                                              theorem Set'.mem_ofSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set α} {x : α} (h : s.Finite) :
                                              x ofSet s x s
                                              @[instance_reducible]
                                              instance Set'.instCoeList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                              Coe (List α) (Set' α)
                                              Equations
                                              @[instance_reducible]
                                              instance Set'.instCoeFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                              Coe (Finset α) (Set' α)
                                              Equations
                                              @[instance_reducible]
                                              noncomputable instance Set'.instCoeSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                              Coe (Set α) (Set' α)
                                              Equations
                                              def Set'.filter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (p : αBool) :
                                              Set' α
                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem Set'.mem_filter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} {x : α} :
                                                x s.filter p x s p x = true
                                                def Set'.diff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s₁ s₂ : Set' α) :
                                                Set' α
                                                Equations
                                                Instances For
                                                  @[instance_reducible]
                                                  instance Set'.instSDiff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                  SDiff (Set' α)
                                                  Equations
                                                  theorem Set'.diff_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                  s₁ \ s₂ = s₁.diff s₂
                                                  @[simp]
                                                  theorem Set'.mem_diff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                  x s₁ \ s₂ x s₁ xs₂
                                                  def Set'.inter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s₁ s₂ : Set' α) :
                                                  Set' α
                                                  Equations
                                                  Instances For
                                                    @[instance_reducible]
                                                    instance Set'.instInter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                    Inter (Set' α)
                                                    Equations
                                                    theorem Set'.inter_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                    s₁ s₂ = s₁.inter s₂
                                                    @[simp]
                                                    theorem Set'.mem_inter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                    x s₁ s₂ x s₁ x s₂
                                                    @[simp]
                                                    theorem Set'.inter_left_subset_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                    s₁ s₂ s₁
                                                    @[simp]
                                                    theorem Set'.inter_right_subset_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                    s₂ s₁ s₁
                                                    theorem Set'.inter_subset_inter_of_left {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ s₃ : Set' α} (h : s₁ s₂) :
                                                    s₁ s₃ s₂ s₃
                                                    theorem Set'.inter_subset_inter_of_right {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ s₃ : Set' α} (h : s₁ s₂) :
                                                    s₃ s₁ s₃ s₂
                                                    theorem Set'.insert_eq_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : x s) :
                                                    s.insert x = s
                                                    @[simp]
                                                    theorem Set'.insert_idemp {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                    (s.insert x).insert x = s.insert x
                                                    def Set'.map {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] (s : Set' α) (f : αβ) :
                                                    Set' β
                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem Set'.map_empty {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {f : αβ} :
                                                      @[simp]
                                                      theorem Set'.map_insert {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {s : Set' α} {f : αβ} {x : α} :
                                                      (s.insert x).map f = (s.map f).insert (f x)
                                                      @[simp]
                                                      theorem Set'.mem_map {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {s : Set' α} {f : αβ} {y : β} :
                                                      y s.map f xs, f x = y
                                                      theorem Set'.eq_empty_iff_not_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                      s = ∀ (x : α), xs
                                                      @[simp]
                                                      theorem Set'.map_eq_empty_iff {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {s : Set' α} {f : αβ} :
                                                      s.map f = s =
                                                      @[simp]
                                                      theorem Set'.empty_eq_map_iff {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {s : Set' α} {f : αβ} :
                                                      = s.map f s =
                                                      @[simp]
                                                      theorem Set'.map_map {α : Type u} {β : Type v} {γ : Type w} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] [hc₁ : DecidableEq γ] [hc₂ : Hashable γ] {s : Set' α} {f : αβ} {g : βγ} :
                                                      (s.map f).map g = s.map fun (x : α) => g (f x)
                                                      @[simp]
                                                      theorem Set'.map_id {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                      s.map id = s
                                                      @[simp]
                                                      theorem Set'.map_id' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                      (s.map fun (x : α) => x) = s
                                                      def Set'.erase {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (x : α) :
                                                      Set' α
                                                      Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem Set'.mem_erase {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x y : α} :
                                                        y s.erase x x y y s
                                                        theorem Set'.erase_eq_of_not_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : xs) :
                                                        s.erase x = s
                                                        def Set'.toSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) :
                                                        Set α
                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem Set'.mem_toSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                          x s.toSet x s
                                                          @[simp]
                                                          theorem Set'.toSet_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                          @[simp]
                                                          theorem Set'.toSet_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                          theorem Set'.toSet_ofSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set α} (h : s.Finite) :
                                                          (ofSet s).toSet = s
                                                          def Set'.size {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) :
                                                          Equations
                                                          Instances For
                                                            def Set'.count {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (p : αBool) :
                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem Set'.size_filter_eq_count {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} :
                                                              (s.filter p).size = s.count p
                                                              theorem Set'.count_eq_size_filter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} :
                                                              s.count p = (s.filter p).size
                                                              @[simp]
                                                              theorem Set'.count_le_size {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} :
                                                              s.count p s.size
                                                              @[simp]
                                                              theorem Set'.count_eq_zero_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} :
                                                              s.count p = 0 xs, ¬p x = true
                                                              @[simp]
                                                              theorem Set'.count_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {p : αBool} :
                                                              .count p = 0
                                                              theorem Set'.count_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} {i : α} (h : is) :
                                                              (s.insert i).count p = s.count p + if p i = true then 1 else 0
                                                              theorem Set'.subset_iff_exi_disj_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ s₂ ∃ (s₃ : Set' α), (∀ xs₃, xs₁) s₁ s₃ = s₂
                                                              theorem Set'.subset_iff_exi_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ s₂ ∃ (s₃ : Set' α), s₁ s₃ = s₂
                                                              @[simp]
                                                              theorem Set'.size_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                              @[simp]
                                                              theorem Set'.empty_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s = s
                                                              @[simp]
                                                              theorem Set'.union_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s = s
                                                              @[simp]
                                                              theorem Set'.empty_inter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              @[simp]
                                                              theorem Set'.inter_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              @[simp]
                                                              theorem Set'.empty_diff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              @[simp]
                                                              theorem Set'.diff_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s \ = s
                                                              @[simp]
                                                              theorem Set'.size_eq_zero_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s.size = 0 s =
                                                              theorem Set'.size_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : xs) :
                                                              (s.insert x).size = s.size + 1
                                                              theorem Set'.erase_eq_empty_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                              s.erase x = ys, y = x
                                                              theorem Set'.mem_iff_of_size_eq_one {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x y : α} (h₁ : s.size = 1) (h₂ : x s) :
                                                              y s y = x
                                                              theorem Set'.eq_of_size_eq_one_and_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x y : α} (h₁ : s.size = 1) (h₂ : x s) (h₃ : y s) :
                                                              x = y
                                                              theorem Set'.size_eq_one_of_size_le_one_and_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h₁ : s.size 1) (h₂ : x s) :
                                                              s.size = 1
                                                              theorem Set'.insert_erase_eq_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : x s) :
                                                              (s.erase x).insert x = s
                                                              theorem Set'.eq_insert_erase_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : x s) :
                                                              s = (s.erase x).insert x
                                                              theorem Set'.size_erase_add_one {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : x s) :
                                                              (s.erase x).size + 1 = s.size
                                                              theorem Set'.size_erase {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : x s) :
                                                              (s.erase x).size = s.size - 1
                                                              theorem Set'.diff_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                              s₁ \ s₂.insert x = (s₁ \ s₂).erase x
                                                              theorem Set'.erase_diff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                              (s₁ \ s₂).erase x = s₁ \ s₂.insert x
                                                              @[simp]
                                                              theorem Set'.union_eq_empty_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ s₂ = s₁ = s₂ =
                                                              @[simp]
                                                              theorem Set'.erase_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                              theorem Set'.diff_eq_empty_iff_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ \ s₂ = s₁ s₂
                                                              theorem Set'.subset_antisymm {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h₁ : s₁ s₂) (h₂ : s₂ s₁) :
                                                              s₁ = s₂
                                                              @[simp]
                                                              theorem Set'.union_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s s = s
                                                              @[simp]
                                                              theorem Set'.inter_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s s = s
                                                              @[simp]
                                                              theorem Set'.diff_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s \ s =
                                                              theorem Set'.exi_mem_of_ne_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} (h : s ) :
                                                              ∃ (x : α), x s
                                                              theorem Set'.ne_empty_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : x s) :
                                                              theorem Set'.eq_empty_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h₁ : s₁ s₂) (h₂ : s₂ = ) :
                                                              s₁ =
                                                              theorem Set'.ne_empty_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h₁ : s₁ s₂) (h₂ : s₁ ) :
                                                              s₂
                                                              @[simp]
                                                              theorem Set'.insert_ne_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                              theorem Set'.disjoint_comm {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              (∀ xs₁, xs₂) xs₂, xs₁
                                                              theorem Set'.diff_eq_left_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ \ s₂ = s₁ xs₁, xs₂
                                                              theorem Set'.diff_eq_left_iff' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ \ s₂ = s₁ xs₂, xs₁
                                                              @[simp]
                                                              theorem Set'.diff_eq_right_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ \ s₂ = s₂ s₁ = s₂ =
                                                              theorem Set'.mem_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} (h : s₁ s₂) (hx : x s₁) :
                                                              x s₂
                                                              theorem Set'.not_mem_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} (h : s₁ s₂) (hx : xs₂) :
                                                              xs₁
                                                              theorem Set'.ne_empty_of_size_ne_zero {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} (h : s.size 0) :
                                                              theorem Set'.ne_empty_of_size_eq_add_one {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {n : } (h : s.size = n + 1) :
                                                              theorem Set'.size_eq_one_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              s.size = 1 xs, ys, y = x
                                                              theorem Set'.size_eq_one_of {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (hx : x s) (h : ys, y = x) :
                                                              s.size = 1
                                                              theorem Set'.eq_insert_empty_of_size_eq_one {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (h : s.size = 1) (hx : x s) :
                                                              @[simp]
                                                              theorem Set'.erase_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                              s.erase x s
                                                              @[simp]
                                                              theorem Set'.empty_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                              def Set'.toMap {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) (f : αβ) :
                                                              Map α β
                                                              Equations
                                                              Instances For
                                                                @[simp]
                                                                theorem Set'.mem_toMap {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {f : αβ} {i : α} :
                                                                i s.toMap f i s
                                                                @[simp]
                                                                theorem Set'.get?_toMap_eq_some_iff {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {f : αβ} {i : α} {x : β} :
                                                                Map.get? i (s.toMap f) = some x i s f i = x
                                                                @[simp]
                                                                theorem Set'.toMap_empty {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {f : αβ} :
                                                                @[simp]
                                                                theorem Set'.mem_list_foldl_map_push_iff {α : Type u} {β : Type v} [hb₁ : DecidableEq β] [hb₂ : Hashable β] {xs : List α} {f : αβ} {y : β} {mp : Map β } :
                                                                y List.foldl (fun (mp : Map β ) (x : α) => mp.push (f x)) mp xs y mp xxs, f x = y
                                                                theorem Set'.toList_erase {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] {x : α} :
                                                                theorem Set'.count_eq_countP_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] {p : αBool} :
                                                                theorem Set'.fold_map_push_eq_map_toMap {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {s : Set' α} {f : αβ} :
                                                                s.fold (fun (mp : Map β ) (x : α) => mp.push (f x)) = (s.map f).toMap fun (x : β) => s.count fun (x_1 : α) => decide (f x_1 = x)
                                                                theorem Set'.fold_map_push_eq_toMap {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                s.fold (fun (mp : Map α ) (x : α) => mp.push x) = s.toMap fun (x : α) => s.count fun (y : α) => decide (y = x)
                                                                theorem Set'.get?_toMap_eq {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {f : αβ} {x : α} :
                                                                Map.get? x (s.toMap f) = if x s then some (f x) else none
                                                                @[simp]
                                                                theorem Set'.length_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] :
                                                                @[simp]
                                                                theorem Set'.size_toMap {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {f : αβ} :
                                                                (s.toMap f).size = s.size
                                                                theorem Set'.size_ofList_of_nodup {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs : List α} (h : xs.Nodup) :
                                                                @[simp]
                                                                theorem Set'.size_ofFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Finset α} :
                                                                @[simp]
                                                                theorem Set'.subset_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                                s s.insert x
                                                                def Set'.unionList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (xs : List (Set' α)) :
                                                                Set' α
                                                                Equations
                                                                Instances For
                                                                  @[simp]
                                                                  theorem Set'.unionList_nil {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                                  theorem Set'.union_comm {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                  s₁ s₂ = s₂ s₁
                                                                  theorem Set'.inter_comm {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                  s₁ s₂ = s₂ s₁
                                                                  theorem Set'.union_assoc {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ s₃ : Set' α} :
                                                                  s₁ s₂ s₃ = s₁ (s₂ s₃)
                                                                  theorem Set'.inter_assoc {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ s₃ : Set' α} :
                                                                  s₁ s₂ s₃ = s₁ (s₂ s₃)
                                                                  @[simp]
                                                                  theorem Set'.unionList_cons {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {xs : List (Set' α)} :
                                                                  unionList (s :: xs) = s unionList xs
                                                                  @[simp]
                                                                  theorem Set'.unionList_append {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs ys : List (Set' α)} :
                                                                  theorem Set'.unionList_of_perm {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs ys : List (Set' α)} (h : xs.Perm ys) :
                                                                  @[simp]
                                                                  theorem Set'.mem_unionList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs : List (Set' α)} {x : α} :
                                                                  x unionList xs sxs, x s
                                                                  theorem Set'.size_le_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ s₂) :
                                                                  s₁.size s₂.size
                                                                  theorem Set'.size_eq_size_add_one_of {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : xs₂, s₁ = s₂.insert x) :
                                                                  s₁.size = s₂.size + 1
                                                                  theorem Set'.size_inter_insert_left {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} (h₁ : xs₁) (h₂ : x s₂) :
                                                                  (s₁.insert x s₂).size = (s₁ s₂).size + 1
                                                                  theorem Set'.size_inter_insert_right {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} (h₁ : x s₁) (h₂ : xs₂) :
                                                                  (s₁ s₂.insert x).size = (s₁ s₂).size + 1
                                                                  theorem Set'.insert_inter_eq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} (h : x s₂) :
                                                                  s₁.insert x s₂ = (s₁ s₂).insert x
                                                                  theorem Set'.inter_insert_eq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} (h : x s₁) :
                                                                  s₁ s₂.insert x = (s₁ s₂).insert x
                                                                  theorem Set'.subset_of_eq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ = s₂) :
                                                                  s₁ s₂
                                                                  theorem Set'.subset_of_inter_eq_left {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ s₂ = s₁) :
                                                                  s₁ s₂
                                                                  theorem Set'.subset_of_inter_eq_right {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ s₂ = s₂) :
                                                                  s₂ s₁
                                                                  theorem Set'.inter_eq_left_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ s₂) :
                                                                  s₁ s₂ = s₁
                                                                  theorem Set'.inter_eq_right_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₂ s₁) :
                                                                  s₁ s₂ = s₂
                                                                  @[simp]
                                                                  theorem Set'.inter_eq_left_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                  s₁ s₂ = s₁ s₁ s₂
                                                                  @[simp]
                                                                  theorem Set'.inter_eq_right_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                  s₁ s₂ = s₂ s₂ s₁
                                                                  theorem Set'.eq_of_subset_and_size_eq {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h₁ : s₁ s₂) (h₂ : s₁.size = s₂.size) :
                                                                  s₁ = s₂
                                                                  theorem Set'.subset_of_size_inter_eq_size_left {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : (s₁ s₂).size = s₁.size) :
                                                                  s₁ s₂
                                                                  theorem Set'.subset_of_size_inter_eq_size_right {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : (s₁ s₂).size = s₂.size) :
                                                                  s₂ s₁
                                                                  @[simp]
                                                                  theorem Set'.size_inter_eq_size_left_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                  (s₁ s₂).size = s₁.size s₁ s₂
                                                                  @[simp]
                                                                  theorem Set'.size_inter_eq_size_right_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                  (s₁ s₂).size = s₂.size s₂ s₁
                                                                  @[simp]
                                                                  theorem Set'.insert_subset_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                                  s₁.insert x s₂ x s₂ s₁ s₂
                                                                  theorem Set'.diff_insert_eq_diff_erase {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                                  s₁ \ s₂.insert x = (s₁ \ s₂).erase x
                                                                  theorem Set'.size_diff_add_eq_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ s₂) :
                                                                  (s₂ \ s₁).size + s₁.size = s₂.size
                                                                  theorem Set'.size_diff_eq_of_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ s₂) :
                                                                  (s₂ \ s₁).size = s₂.size - s₁.size
                                                                  def Set'.ssubset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s₁ s₂ : Set' α) :
                                                                  Equations
                                                                  Instances For
                                                                    @[instance_reducible]
                                                                    instance Set'.instHasSSubset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                                    Equations
                                                                    theorem Set'.ssubset_def {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                    s₁ s₂ s₁ s₂ s₁ s₂
                                                                    @[simp]
                                                                    theorem Set'.union_eq_left_iff_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                    s₁ s₂ = s₁ s₂ s₁
                                                                    @[simp]
                                                                    theorem Set'.union_eq_right_iff_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                    s₁ s₂ = s₂ s₁ s₂
                                                                    theorem Set'.ssubset_iff_exi_disj_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                    s₁ s₂ ∃ (s₃ : Set' α), s₃ (∀ xs₃, xs₁) s₁ s₃ = s₂
                                                                    theorem Set'.insert_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                                    s₁.insert x s₂ = (s₁ s₂).insert x
                                                                    theorem Set'.union_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} {x : α} :
                                                                    s₁ s₂.insert x = (s₁ s₂).insert x
                                                                    theorem Set'.size_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : xs₁, xs₂) :
                                                                    (s₁ s₂).size = s₁.size + s₂.size
                                                                    theorem Set'.size_union' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : xs₂, xs₁) :
                                                                    (s₁ s₂).size = s₁.size + s₂.size
                                                                    @[simp]
                                                                    theorem Set'.pos_size_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                    0 < s.size s
                                                                    theorem Set'.size_lt_of_ssubset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : s₁ s₂) :
                                                                    s₁.size < s₂.size
                                                                    theorem Set'.eq_of_subset_and_subset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h₁ : s₁ s₂) (h₂ : s₂ s₁) :
                                                                    s₁ = s₂
                                                                    theorem Set'.ssubset_iff_exi {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                    s₁ s₂ s₁ s₂ xs₂, xs₁
                                                                    theorem Set'.diff_subset_of_right {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ s₃ : Set' α} (h₁ : s₂ s₃) :
                                                                    s₁ \ s₃ s₁ \ s₂
                                                                    theorem Set'.diff_ssubset_of_right {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ s₃ : Set' α} (h₁ : s₂ s₃) (h₂ : xs₁, x s₃ xs₂) :
                                                                    s₁ \ s₃ s₁ \ s₂
                                                                    noncomputable def Set'.compr {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (P : αProp) :
                                                                    Set' α
                                                                    Equations
                                                                    Instances For
                                                                      def Set'.singleton {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (x : α) :
                                                                      Set' α
                                                                      Equations
                                                                      Instances For
                                                                        @[simp]
                                                                        theorem Set'.mem_singleton {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x y : α} :
                                                                        x singleton y x = y
                                                                        @[simp]
                                                                        theorem Set'.singleton_eq_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x y : α} :
                                                                        @[simp]
                                                                        theorem Set'.singleton_ne_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                                        @[simp]
                                                                        theorem Set'.size_singleton {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                                        @[simp]
                                                                        theorem Set'.empty_insert_eq_singleton {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                                        @[simp]
                                                                        theorem Set'.toSet_singleton {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                                        @[simp]
                                                                        theorem Set'.erase_singleton_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                                        @[simp]
                                                                        theorem Set'.insert_singleton_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                                        def Set'.toFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (s : Set' α) :
                                                                        Equations
                                                                        Instances For
                                                                          @[simp]
                                                                          theorem Set'.toFinset_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                                          theorem Set'.mem_toFinset_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (hx : x s) :
                                                                          @[simp]
                                                                          theorem Set'.ofList_cons {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs : List α} {x : α} :
                                                                          ofList (x :: xs) = (ofList xs).insert x
                                                                          @[simp]
                                                                          theorem Set'.ofList_append {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs ys : List α} :
                                                                          ofList (xs ++ ys) = ofList xs ofList ys
                                                                          theorem Set'.ind_ofList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] {p : Set' αProp} (h : ∀ (xs : List α), xs.SortedLTp (ofList xs)) (s : Set' α) :
                                                                          p s
                                                                          @[simp]
                                                                          theorem Set'.sorted_toList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha : LinearOrder α] :
                                                                          theorem Set'.toList_ofList_of_nodup {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] {xs : List α} (h : xs.Nodup) :
                                                                          (ofList xs).toList = xs.mergeSort fun (a b : α) => decide (a b)
                                                                          theorem Set'.toList_ofList_of_sortedLT {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] {xs : List α} (h : xs.SortedLT) :
                                                                          (ofList xs).toList = xs
                                                                          theorem Set'.fold_insert {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {f : βαβ} {z : β} {x : α} {hh : ∀ {acc : β} {x y : α}, f (f acc x) y = f (f acc y) x} (hx : xs) :
                                                                          (s.insert x).fold f z hh = f (s.fold f z ) x
                                                                          @[simp]
                                                                          theorem Set'.toFinset_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                                          @[simp]
                                                                          theorem Set'.mem_toFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                                          theorem Set'.toSet_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                          (s₁ s₂).toSet = s₁.toSet s₂.toSet
                                                                          theorem Set'.toSet_inter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                          (s₁ s₂).toSet = s₁.toSet s₂.toSet
                                                                          theorem Set'.toFinset_union {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                          (s₁ s₂).toFinset = s₁.toFinset s₂.toFinset
                                                                          theorem Set'.toFinset_inter {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                                          (s₁ s₂).toFinset = s₁.toFinset s₂.toFinset
                                                                          @[simp]
                                                                          theorem Set'.finite_toSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                          @[simp]
                                                                          theorem Set'.toFinset_coe_set {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                          @[simp]
                                                                          theorem Set'.card_toFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                          @[simp]
                                                                          theorem Set'.ncard_toSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                          @[simp]
                                                                          theorem Set'.ofSet_toSet_list {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs : List α} :
                                                                          @[simp]
                                                                          theorem Set'.list_toSet_ofList {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {xs : List α} :
                                                                          theorem Set'.ssubset_of {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (x : α) (h₁ : s₁ s₂) (h₂ : xs₁) (h₃ : x s₂) :
                                                                          s₁ s₂
                                                                          def Map.keysSet {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] (mp : Map α β) :
                                                                          Set' α
                                                                          Equations
                                                                          Instances For
                                                                            @[simp]
                                                                            theorem Map.mem_keysSet {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {mp : Map α β} {k : α} :
                                                                            k mp.keysSet k mp
                                                                            @[simp]
                                                                            theorem Map.keySet_modify {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {mp : Map α β} {k : α} {f : ββ} :
                                                                            (mp.modify k f).keysSet = mp.keysSet
                                                                            @[simp]
                                                                            theorem Set'.insert_erase_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                                            (s.erase x).insert x = s.insert x
                                                                            @[simp]
                                                                            theorem Set'.erase_insert_self {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                                            (s.insert x).erase x = s.erase x
                                                                            @[simp]
                                                                            theorem Set'.filter_eq_empty_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} :
                                                                            s.filter p = xs, p x = false
                                                                            @[simp]
                                                                            theorem Set'.one_le_count_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : αBool} :
                                                                            1 s.count p xs, p x = true
                                                                            def Set'.bind {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] (s : Set' α) (f : αSet' β) :
                                                                            Set' β
                                                                            Equations
                                                                            Instances For
                                                                              @[simp]
                                                                              theorem Set'.bind_empty {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {f : αSet' β} :
                                                                              theorem Set'.singleton_eq_insert {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {x : α} :
                                                                              @[simp]
                                                                              theorem Set'.fold_singleton {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {f : βαβ} {x : α} {z : β} {hh : ∀ {acc : β} {x y : α}, f (f acc x) y = f (f acc y) x} :
                                                                              (singleton x).fold f z hh = f z x
                                                                              @[simp]
                                                                              theorem Set'.bind_singleton {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {f : αSet' β} {x : α} :
                                                                              (singleton x).bind f = f x
                                                                              @[simp]
                                                                              theorem Set'.bind_insert {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {s : Set' α} {f : αSet' β} {x : α} :
                                                                              (s.insert x).bind f = s.bind f f x
                                                                              @[simp]
                                                                              theorem Set'.mem_bind {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [hb₁ : DecidableEq β] [hb₂ : Hashable β] {s : Set' α} {f : αSet' β} {y : β} :
                                                                              y s.bind f xs, y f x
                                                                              def Set'.head! {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] [Inhabited α] (s : Set' α) :
                                                                              α
                                                                              Equations
                                                                              Instances For
                                                                                def Set'.headMap! {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] [Inhabited α] [LinearOrder β] (s : Set' α) (f : αβ) :
                                                                                α
                                                                                Equations
                                                                                Instances For
                                                                                  theorem Set'.head!_spec {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] (h : s ) :
                                                                                  s.head! s xs, s.head! x
                                                                                  @[simp]
                                                                                  theorem Set'.head!_mem_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] :
                                                                                  theorem Set'.head!_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] (h : s ) :
                                                                                  theorem Set'.head!_le_of_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] {x : α} (h : x s) :
                                                                                  theorem Set'.headMap!_spec {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] [hb : LinearOrder β] {f : αβ} (h : s ) :
                                                                                  s.headMap! f s xs, f (s.headMap! f) f x
                                                                                  @[simp]
                                                                                  theorem Set'.headMap!_mem_iff {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] [hb : LinearOrder β] {f : αβ} :
                                                                                  theorem Set'.headMap!_mem {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] [hb : LinearOrder β] {f : αβ} (h : s ) :
                                                                                  theorem Set'.headMap!_le_of_mem {α : Type u} {β : Type v} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₃ : Inhabited α] [ha₄ : LinearOrder α] [hb : LinearOrder β] {f : αβ} {x : α} (h : x s) :
                                                                                  f (s.headMap! f) f x
                                                                                  theorem Set'.size_eq_one_iff_singleton {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                                  s.size = 1 ∃ (x : α), s = singleton x
                                                                                  @[simp]
                                                                                  theorem Set'.ofFinset_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                                                  @[simp]
                                                                                  theorem Set'.ofSet_empty {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] :
                                                                                  @[simp]
                                                                                  theorem Set'.ofFinset_toFinset {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                                  @[simp]
                                                                                  theorem Set'.ofSet_toSet {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                                                  theorem Set'.eq_singleton_iff_size {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                                                  s = singleton x s.size = 1 x s
                                                                                  theorem Set'.singleton_eq_iff_size {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} :
                                                                                  singleton x = s s.size = 1 x s
                                                                                  @[simp]
                                                                                  theorem Set'.toList_ofList_eq_self_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] [ha : LinearOrder α] {xs : List α} :