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 : α), i ∉ s
                @[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] :
                        (∀ x ∈ s, 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 (∀ x ∈ s, 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 (∀ x ∈ s, 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.Nodup → xs.SortedLE → p (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) :
                                    x ∉ s
                                    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) :
                                    x ∉ s
                                    theorem Set'.not_mem_of_lt_min! {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₁✝ : Inhabited α] [ha₂✝ : LinearOrder α] {x : α} (h : x < s.min!) :
                                    x ∉ s
                                    theorem Set'.not_mem_of_max!_lt {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} [ha₁✝ : Inhabited α] [ha₂✝ : LinearOrder α] {x : α} (h : s.max! < x) :
                                    x ∉ s
                                    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' ↔ ∀ x ∈ s, 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' α), ∀ x ∉ s, p s → p (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₁ : x ∉ s) :
                                          (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₁ ∧ x ∉ s₂
                                                  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 ↔ ∃ x ∈ s, f x = y
                                                      theorem Set'.eq_empty_iff_not_mem {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} :
                                                      s = ∅ ↔ ∀ (x : α), x ∉ s
                                                      @[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 : x ∉ s) :
                                                        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 ↔ ∀ x ∈ s, ¬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 : i ∉ s) :
                                                              (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' α), (∀ x ∈ s₃, x ∉ s₁) ∧ 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 : x ∉ s) :
                                                              (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 = ∅ ↔ ∀ y ∈ s, 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' α} :
                                                              (∀ x ∈ s₁, x ∉ s₂) ↔ ∀ x ∈ s₂, x ∉ s₁
                                                              theorem Set'.diff_eq_left_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ \ s₂ = s₁ ↔ ∀ x ∈ s₁, x ∉ s₂
                                                              theorem Set'.diff_eq_left_iff' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} :
                                                              s₁ \ s₂ = s₁ ↔ ∀ x ∈ s₂, x ∉ s₁
                                                              @[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 : x ∉ s₂) :
                                                              x ∉ s₁
                                                              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 ↔ ∃ x ∈ s, ∀ y ∈ s, y = x
                                                              theorem Set'.size_eq_one_of {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {x : α} (hx : x ∈ s) (h : ∀ y ∈ s, 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 ∨ ∃ x ∈ xs, 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 ↔ ∃ s ∈ xs, 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 : ∃ x ∉ s₂, 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₁ : x ∉ s₁) (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₂ : x ∉ s₂) :
                                                                  (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₃ ≠ ∅ ∧ (∀ x ∈ s₃, x ∉ s₁) ∧ 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 : ∀ x ∈ s₁, x ∉ s₂) :
                                                                    (s₁ ∪ s₂).size = s₁.size + s₂.size
                                                                    theorem Set'.size_union' {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s₁ s₂ : Set' α} (h : ∀ x ∈ s₂, x ∉ s₁) :
                                                                    (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₂ ∧ ∃ x ∈ s₂, x ∉ s₁
                                                                    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₂ : ∃ x ∈ s₁, x ∈ s₃ ∧ x ∉ s₂) :
                                                                    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.SortedLT → p (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 : x ∉ s) :
                                                                          (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₂ : x ∉ s₁) (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 = ∅ ↔ ∀ x ∈ s, p x = false
                                                                            @[simp]
                                                                            theorem Set'.one_le_count_iff {α : Type u} [ha₁ : DecidableEq α] [ha₂ : Hashable α] {s : Set' α} {p : α → Bool} :
                                                                            1 ≤ s.count p ↔ ∃ x ∈ s, 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 ↔ ∃ x ∈ s, 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 ∧ ∀ x ∈ s, 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 ∧ ∀ x ∈ s, 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 α} :