Documentation

Algorithm.Data.Classes.ToMultiset

class ToMultiset (C : Type u_1) (α : outParam (Type u_2)) extends Size :
Type (max u_1 u_2)
Instances
    theorem ToMultiset.size_eq_card_toMultiset {C : Type u_1} {α : outParam (Type u_2)} [self : ToMultiset C α] (c : C) :
    size c = Multiset.card (toMultiset c)
    class LawfulEmptyCollection (C : Type u_1) (α : outParam (Type u_2)) [ToMultiset C α] [EmptyCollection C] :
    Instances
      @[simp]
      theorem LawfulEmptyCollection.toMultiset_empty {C : Type u_1} {α : outParam (Type u_2)} :
      ∀ {inst : ToMultiset C α} {inst_1 : EmptyCollection C} [self : LawfulEmptyCollection C α], toMultiset = 0
      class ToMultiset.LawfulInsert (C : Type u_1) (α : outParam (Type u_2)) [ToMultiset C α] [Insert α C] :
      Instances
        @[simp]
        theorem ToMultiset.LawfulInsert.toMultiset_insert {C : Type u_1} {α : outParam (Type u_2)} :
        ∀ {inst : ToMultiset C α} {inst_1 : Insert α C} [self : ToMultiset.LawfulInsert C α] (a : α) (c : C), toMultiset (insert a c) = a ::ₘ toMultiset c
        instance instToMultisetList {α : Type u_1} :
        Equations
        instance instToMultisetArray {α : Type u_1} :
        Equations
        @[instance 100]
        instance instMembership_algorithm {C : Type u_2} {α : Type u_3} [ToMultiset C α] :
        Equations
        • instMembership_algorithm = { mem := fun (c : C) (a : α) => a toMultiset c }
        theorem ToMultiset.mem_iff {C : Type u_2} {α : Type u_3} [ToMultiset C α] {c : C} {v : α} :
        theorem mem_toMultiset {C : Type u_2} {α : Type u_3} [ToMultiset C α] {c : C} {v : α} :
        @[simp]
        theorem toMultiset_of_isEmpty {C : Type u_2} {α : Type u_3} [ToMultiset C α] (c : C) (h : isEmpty c = true) :
        @[simp]
        theorem toMultiset_list {α : Type u_3} (l : List α) :
        toMultiset l = l
        @[simp]
        theorem ToMultiset.not_isEmpty_of_mem {C : Type u_2} {α : Type u_3} [ToMultiset C α] {c : C} {v : α} (hv : v c) :
        theorem count_toMultiset_eq_zero {C : Type u_2} {α : Type u_3} [ToMultiset C α] [DecidableEq α] {a : α} {c : C} :
        Multiset.count a (toMultiset c) = 0 ac
        theorem count_toMultiset_ne_zero {C : Type u_2} {α : Type u_3} [ToMultiset C α] [DecidableEq α] {a : α} {c : C} :
        class Mergeable (C : Type u_4) (α : outParam (Type u_5)) [ToMultiset C α] :
        Type u_4
        Instances
          @[simp]
          theorem Mergeable.toMultiset_merge {C : Type u_4} {α : outParam (Type u_5)} :
          ∀ {inst : ToMultiset C α} [self : Mergeable C α] (s t : C), toMultiset (merge s t) = toMultiset s + toMultiset t