ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Matrix.updateRow_reindex
theorem updateRow_reindex [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : l) (r : o → α)
    (e : m ≃ l) (f : n ≃ o) :
    updateRow (reindex e f A) i r = reindex e f (A.updateRow (e.symm i) fun j => r (f j)) 
Arguments: {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : l) (r : o → α) (e : m ≃ l) (f : n ≃ o)
Goal: ((Matrix.reindex e f) A).updateRow i r = (Matrix.reindex e f) (A.updateRow (e.symm i) fun j => r (f j))
-- Matrix.reindex_updateRow
theorem reindex_updateRow [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : m) (r : n → α)
    (e : m ≃ l) (f : n ≃ o) :
    reindex e f (A.updateRow i r) = updateRow (reindex e f A) (e i) fun i => r (f.symm i) 
Arguments: {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq l] [DecidableEq m] (A : Matrix m n α) (i : m) (r : n → α) (e : m ≃ l) (f : n ≃ o)
Goal: (Matrix.reindex e f) (A.updateRow i r) = ((Matrix.reindex e f) A).updateRow (e i) fun i => r (f.symm i)
-- Matrix.updateColumn_reindex
theorem updateColumn_reindex [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : o) (c : l → α)
    (e : m ≃ l) (f : n ≃ o) :
    updateColumn (reindex e f A) j c = reindex e f (A.updateColumn (f.symm j) fun i => c (e i)) 
Arguments: {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : o) (c : l → α) (e : m ≃ l) (f : n ≃ o)
Goal: ((Matrix.reindex e f) A).updateColumn j c = (Matrix.reindex e f) (A.updateColumn (f.symm j) fun i => c (e i))
-- Matrix.reindex_updateColumn
theorem reindex_updateColumn [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : n) (c : m → α)
    (e : m ≃ l) (f : n ≃ o) :
    reindex e f (A.updateColumn j c) = updateColumn (reindex e f A) (f j) fun i => c (e.symm i) 
Arguments: {l : Type u_1} {m : Type u_2} {n : Type u_3} {o : Type u_4} {α : Type v} [DecidableEq o] [DecidableEq n] (A : Matrix m n α) (j : n) (c : m → α) (e : m ≃ l) (f : n ≃ o)
Goal: (Matrix.reindex e f) (A.updateColumn j c) = ((Matrix.reindex e f) A).updateColumn (f j) fun i => c (e.symm i)
-- DMatrix.ext_iff
theorem ext_iff : (∀ i j, M i j = N i j) ↔ M = N 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} {M N : DMatrix m n α}
Goal: (∀ (i : m) (j : n), M i j = N i j) ↔ M = N
-- DMatrix.ext
@[ext]
theorem ext : (∀ i j, M i j = N i j) → M = N 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} {M N : DMatrix m n α}
Goal: (∀ (i : m) (j : n), M i j = N i j) → M = N
-- DMatrix.map_apply
@[simp]
theorem map_apply {M : DMatrix m n α} {β : m → n → Type w} {f : ∀ ⦃i j⦄, α i j → β i j} {i : m}
    {j : n} : M.map f i j = f (M i j) 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} {M : DMatrix m n α} {β : m → n → Type w} {f : ⦃i : m⦄ → ⦃j : n⦄ → α i j → β i j} {i : m} {j : n}
Goal: M.map f i j = f (M i j)
-- DMatrix.map_map
@[simp]
theorem map_map {M : DMatrix m n α} {β : m → n → Type w} {γ : m → n → Type z}
    {f : ∀ ⦃i j⦄, α i j → β i j} {g : ∀ ⦃i j⦄, β i j → γ i j} :
    (M.map f).map g = M.map fun i j x => g (f x) 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} {M : DMatrix m n α} {β : m → n → Type w} {γ : m → n → Type z} {f : ⦃i : m⦄ → ⦃j : n⦄ → α i j → β i j} {g : ⦃i : m⦄ → ⦃j : n⦄ → β i j → γ i j}
Goal: (M.map f).map g = M.map fun i j x => g (f x)
-- DMatrix.zero_apply
@[simp, nolint simpNF]
theorem zero_apply [∀ i j, Zero (α i j)] (i j) : (0 : DMatrix m n α) i j = 0 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → Zero (α i j)] (i : m) (j : n)
Goal: 0 i j = 0
-- DMatrix.neg_apply
@[simp]
theorem neg_apply [∀ i j, Neg (α i j)] (M : DMatrix m n α) (i j) : (-M) i j = -M i j 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → Neg (α i j)] (M : DMatrix m n α) (i : m) (j : n)
Goal: (-M) i j = -M i j
-- DMatrix.add_apply
@[simp]
theorem add_apply [∀ i j, Add (α i j)] (M N : DMatrix m n α) (i j) : (M + N) i j = M i j + N i j 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → Add (α i j)] (M N : DMatrix m n α) (i : m) (j : n)
Goal: (M + N) i j = M i j + N i j
-- DMatrix.sub_apply
@[simp]
theorem sub_apply [∀ i j, Sub (α i j)] (M N : DMatrix m n α) (i j) : (M - N) i j = M i j - N i j 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → Sub (α i j)] (M N : DMatrix m n α) (i : m) (j : n)
Goal: (M - N) i j = M i j - N i j
-- DMatrix.map_zero
@[simp]
theorem map_zero [∀ i j, Zero (α i j)] {β : m → n → Type w} [∀ i j, Zero (β i j)]
    {f : ∀ ⦃i j⦄, α i j → β i j} (h : ∀ i j, f (0 : α i j) = 0) :
    (0 : DMatrix m n α).map f = 0 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → Zero (α i j)] {β : m → n → Type w} [(i : m) → (j : n) → Zero (β i j)] {f : ⦃i : m⦄ → ⦃j : n⦄ → α i j → β i j} (h : ∀ (i : m) (j : n), f 0 = 0)
Goal: DMatrix.map 0 f = 0
-- DMatrix.map_add
theorem map_add [∀ i j, AddMonoid (α i j)] {β : m → n → Type w} [∀ i j, AddMonoid (β i j)]
    (f : ∀ ⦃i j⦄, α i j →+ β i j) (M N : DMatrix m n α) :
    ((M + N).map fun i j => @f i j) = (M.map fun i j => @f i j) + N.map fun i j => @f i j 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → AddMonoid (α i j)] {β : m → n → Type w} [(i : m) → (j : n) → AddMonoid (β i j)] (f : ⦃i : m⦄ → ⦃j : n⦄ → α i j →+ β i j) (M N : DMatrix m n α)
Goal: ((M + N).map fun i j => ⇑f) = (M.map fun i j => ⇑f) + N.map fun i j => ⇑f
-- DMatrix.map_sub
theorem map_sub [∀ i j, AddGroup (α i j)] {β : m → n → Type w} [∀ i j, AddGroup (β i j)]
    (f : ∀ ⦃i j⦄, α i j →+ β i j) (M N : DMatrix m n α) :
    ((M - N).map fun i j => @f i j) = (M.map fun i j => @f i j) - N.map fun i j => @f i j 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → AddGroup (α i j)] {β : m → n → Type w} [(i : m) → (j : n) → AddGroup (β i j)] (f : ⦃i : m⦄ → ⦃j : n⦄ → α i j →+ β i j) (M N : DMatrix m n α)
Goal: ((M - N).map fun i j => ⇑f) = (M.map fun i j => ⇑f) - N.map fun i j => ⇑f
-- AddMonoidHom.mapDMatrix_apply
@[simp]
theorem AddMonoidHom.mapDMatrix_apply [∀ i j, AddMonoid (α i j)] {β : m → n → Type w}
    [∀ i j, AddMonoid (β i j)] (f : ∀ ⦃i j⦄, α i j →+ β i j) (M : DMatrix m n α) :
    AddMonoidHom.mapDMatrix f M = M.map fun i j => @f i j 
Arguments: {m : Type u_2} {n : Type u_3} {α : m → n → Type v} [(i : m) → (j : n) → AddMonoid (α i j)] {β : m → n → Type w} [(i : m) → (j : n) → AddMonoid (β i j)] (f : ⦃i : m⦄ → ⦃j : n⦄ → α i j →+ β i j) (M : DMatrix m n α)
Goal: (AddMonoidHom.mapDMatrix f) M = M.map fun i j => ⇑f
-- Ordnode.size_nil
@[simp] theorem size_nil : size (nil : Ordnode α) = 0 
Arguments: {α : Type u_1}
Goal: Ordnode.nil.size = 0
-- Ordnode.size_node
@[simp] theorem size_node (sz : ℕ) (l : Ordnode α) (x : α) (r : Ordnode α) :
    size (node sz l x r) = sz 
Arguments: {α : Type u_1} (sz : ℕ) (l : Ordnode α) (x : α) (r : Ordnode α)
Goal: (Ordnode.node sz l x r).size = sz
-- Multiset.quot_mk_to_coe
@[simp]
theorem quot_mk_to_coe (l : List α) : @Eq (Multiset α) ⟦l⟧ l 
Arguments: {α : Type u_1} (l : List α)
Goal: ⟦l⟧ = ↑l
-- Multiset.quot_mk_to_coe'
@[simp]
theorem quot_mk_to_coe' (l : List α) : @Eq (Multiset α) (Quot.mk (· ≈ ·) l) l 
Arguments: {α : Type u_1} (l : List α)
Goal: Quot.mk (fun x x_1 => x ≈ x_1) l = ↑l
-- Multiset.quot_mk_to_coe''
@[simp]
theorem quot_mk_to_coe'' (l : List α) : @Eq (Multiset α) (Quot.mk Setoid.r l) l 
Arguments: {α : Type u_1} (l : List α)
Goal: Quot.mk Setoid.r l = ↑l
-- Multiset.lift_coe
@[simp]
theorem lift_coe {α β : Type*} (x : List α) (f : List α → β)
    (h : ∀ a b : List α, a ≈ b → f a = f b) : Quotient.lift f h (x : Multiset α) = f x 
Arguments: {α : Type u_3} {β : Type u_4} (x : List α) (f : List α → β) (h : ∀ (a b : List α), a ≈ b → f a = f b)
Goal: Quotient.lift f h ↑x = f x
-- Multiset.coe_eq_coe
@[simp]
theorem coe_eq_coe {l₁ l₂ : List α} : (l₁ : Multiset α) = l₂ ↔ l₁ ~ l₂ 
Arguments: {α : Type u_1} {l₁ l₂ : List α}
Goal: ↑l₁ = ↑l₂ ↔ l₁ ~ l₂
-- Multiset.coe_nil
@[simp]
theorem coe_nil : (@nil α : Multiset α) = 0 
Arguments: {α : Type u_1}
Goal: ↑[] = 0
-- Multiset.empty_eq_zero
@[simp]
theorem empty_eq_zero : (∅ : Multiset α) = 0 
Arguments: {α : Type u_1}
Goal: ∅ = 0
-- Multiset.coe_eq_zero
@[simp]
theorem coe_eq_zero (l : List α) : (l : Multiset α) = 0 ↔ l = [] 
Arguments: {α : Type u_1} (l : List α)
Goal: ↑l = 0 ↔ l = []
-- Multiset.coe_eq_zero_iff_isEmpty
theorem coe_eq_zero_iff_isEmpty (l : List α) : (l : Multiset α) = 0 ↔ l.isEmpty 
Arguments: {α : Type u_1} (l : List α)
Goal: ↑l = 0 ↔ l.isEmpty = true
-- Multiset.insert_eq_cons
@[simp]
theorem insert_eq_cons (a : α) (s : Multiset α) : insert a s = a ::ₘ s 
Arguments: {α : Type u_1} (a : α) (s : Multiset α)
Goal: insert a s = a ::ₘ s
-- Multiset.cons_coe
@[simp]
theorem cons_coe (a : α) (l : List α) : (a ::ₘ l : Multiset α) = (a :: l : List α) 
Arguments: {α : Type u_1} (a : α) (l : List α)
Goal: a ::ₘ ↑l = ↑(a :: l)
-- Multiset.cons_inj_left
@[simp]
theorem cons_inj_left {a b : α} (s : Multiset α) : a ::ₘ s = b ::ₘ s ↔ a = b 
Arguments: {α : Type u_1} {a b : α} (s : Multiset α)
Goal: a ::ₘ s = b ::ₘ s ↔ a = b
-- Multiset.cons_inj_right
@[simp]
theorem cons_inj_right (a : α) : ∀ {s t : Multiset α}, a ::ₘ s = a ::ₘ t ↔ s = t 
Arguments: {α : Type u_1} (a : α) {s t : Multiset α}
Goal: a ::ₘ s = a ::ₘ t ↔ s = t
-- Multiset.induction
@[elab_as_elim]
protected theorem induction {p : Multiset α → Prop} (empty : p 0)
    (cons : ∀ (a : α) (s : Multiset α), p s → p (a ::ₘ s)) : ∀ s, p s 
Arguments: {α : Type u_1} {p : Multiset α → Prop} (empty : p 0) (cons : ∀ (a : α) (s : Multiset α), p s → p (a ::ₘ s)) (s : Multiset α)
Goal: p s
-- Multiset.induction_on
@[elab_as_elim]
protected theorem induction_on {p : Multiset α → Prop} (s : Multiset α) (empty : p 0)
    (cons : ∀ (a : α) (s : Multiset α), p s → p (a ::ₘ s)) : p s 
Arguments: {α : Type u_1} {p : Multiset α → Prop} (s : Multiset α) (empty : p 0) (cons : ∀ (a : α) (s : Multiset α), p s → p (a ::ₘ s))
Goal: p s
-- Multiset.cons_swap
theorem cons_swap (a b : α) (s : Multiset α) : a ::ₘ b ::ₘ s = b ::ₘ a ::ₘ s 
Arguments: {α : Type u_1} (a b : α) (s : Multiset α)
Goal: a ::ₘ b ::ₘ s = b ::ₘ a ::ₘ s
-- Multiset.recOn_0
@[simp]
theorem recOn_0 : @Multiset.recOn α C (0 : Multiset α) C_0 C_cons C_cons_heq = C_0 
Arguments: {α : Type u_1} {C : Multiset α → Sort u_3} {C_0 : C 0} {C_cons : (a : α) → (m : Multiset α) → C m → C (a ::ₘ m)} {C_cons_heq :
  ∀ (a a' : α) (m : Multiset α) (b : C m),
    HEq (C_cons a (a' ::ₘ m) (C_cons a' m b)) (C_cons a' (a ::ₘ m) (C_cons a m b))}
Goal: Multiset.recOn 0 C_0 C_cons C_cons_heq = C_0
-- Multiset.recOn_cons
@[simp]
theorem recOn_cons (a : α) (m : Multiset α) :
    (a ::ₘ m).recOn C_0 C_cons C_cons_heq = C_cons a m (m.recOn C_0 C_cons C_cons_heq) 
Arguments: {α : Type u_1} {C : Multiset α → Sort u_3} {C_0 : C 0} {C_cons : (a : α) → (m : Multiset α) → C m → C (a ::ₘ m)} {C_cons_heq :
  ∀ (a a' : α) (m : Multiset α) (b : C m),
    HEq (C_cons a (a' ::ₘ m) (C_cons a' m b)) (C_cons a' (a ::ₘ m) (C_cons a m b))} (a : α) (m : Multiset α)
Goal: (a ::ₘ m).recOn C_0 C_cons C_cons_heq = C_cons a m (m.recOn C_0 C_cons C_cons_heq)
-- Multiset.mem_coe
@[simp]
theorem mem_coe {a : α} {l : List α} : a ∈ (l : Multiset α) ↔ a ∈ l 
Arguments: {α : Type u_1} {a : α} {l : List α}
Goal: a ∈ ↑l ↔ a ∈ l
-- Multiset.mem_cons
@[simp]
theorem mem_cons {a b : α} {s : Multiset α} : a ∈ b ::ₘ s ↔ a = b ∨ a ∈ s 
Arguments: {α : Type u_1} {a b : α} {s : Multiset α}
Goal: a ∈ b ::ₘ s ↔ a = b ∨ a ∈ s
-- Multiset.mem_cons_of_mem
theorem mem_cons_of_mem {a b : α} {s : Multiset α} (h : a ∈ s) : a ∈ b ::ₘ s 
Arguments: {α : Type u_1} {a b : α} {s : Multiset α} (h : a ∈ s)
Goal: a ∈ b ::ₘ s
-- Multiset.mem_cons_self
theorem mem_cons_self (a : α) (s : Multiset α) : a ∈ a ::ₘ s 
Arguments: {α : Type u_1} (a : α) (s : Multiset α)
Goal: a ∈ a ::ₘ s
-- Multiset.forall_mem_cons
theorem forall_mem_cons {p : α → Prop} {a : α} {s : Multiset α} :
    (∀ x ∈ a ::ₘ s, p x) ↔ p a ∧ ∀ x ∈ s, p x 
Arguments: {α : Type u_1} {p : α → Prop} {a : α} {s : Multiset α}
Goal: (∀ x ∈ a ::ₘ s, p x) ↔ p a ∧ ∀ x ∈ s, p x
-- Multiset.exists_cons_of_mem
theorem exists_cons_of_mem {s : Multiset α} {a : α} : a ∈ s → ∃ t, s = a ::ₘ t 
Arguments: {α : Type u_1} {s : Multiset α} {a : α}
Goal: a ∈ s → ∃ t, s = a ::ₘ t
-- Multiset.not_mem_zero
@[simp]
theorem not_mem_zero (a : α) : a ∉ (0 : Multiset α) 
Arguments: {α : Type u_1} (a : α)
Goal: a ∉ 0
-- Multiset.eq_zero_of_forall_not_mem
theorem eq_zero_of_forall_not_mem {s : Multiset α} : (∀ x, x ∉ s) → s = 0 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: (∀ (x : α), x ∉ s) → s = 0
-- Multiset.eq_zero_iff_forall_not_mem
theorem eq_zero_iff_forall_not_mem {s : Multiset α} : s = 0 ↔ ∀ a, a ∉ s 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: s = 0 ↔ ∀ (a : α), a ∉ s
-- Multiset.exists_mem_of_ne_zero
theorem exists_mem_of_ne_zero {s : Multiset α} : s ≠ 0 → ∃ a : α, a ∈ s 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: s ≠ 0 → ∃ a, a ∈ s
-- Multiset.empty_or_exists_mem
theorem empty_or_exists_mem (s : Multiset α) : s = 0 ∨ ∃ a, a ∈ s 
Arguments: {α : Type u_1} (s : Multiset α)
Goal: s = 0 ∨ ∃ a, a ∈ s
-- Multiset.zero_ne_cons
@[simp]
theorem zero_ne_cons {a : α} {m : Multiset α} : 0 ≠ a ::ₘ m 
Arguments: {α : Type u_1} {a : α} {m : Multiset α}
Goal: 0 ≠ a ::ₘ m
-- Multiset.cons_ne_zero
@[simp]
theorem cons_ne_zero {a : α} {m : Multiset α} : a ::ₘ m ≠ 0 
Arguments: {α : Type u_1} {a : α} {m : Multiset α}
Goal: a ::ₘ m ≠ 0
-- Multiset.cons_eq_cons
theorem cons_eq_cons {a b : α} {as bs : Multiset α} :
    a ::ₘ as = b ::ₘ bs ↔ a = b ∧ as = bs ∨ a ≠ b ∧ ∃ cs, as = b ::ₘ cs ∧ bs = a ::ₘ cs 
Arguments: {α : Type u_1} {a b : α} {as bs : Multiset α}
Goal: a ::ₘ as = b ::ₘ bs ↔ a = b ∧ as = bs ∨ a ≠ b ∧ ∃ cs, as = b ::ₘ cs ∧ bs = a ::ₘ cs
-- Multiset.cons_zero
@[simp]
theorem cons_zero (a : α) : a ::ₘ 0 = {a} 
Arguments: {α : Type u_1} (a : α)
Goal: a ::ₘ 0 = {a}
-- Multiset.coe_singleton
@[simp, norm_cast]
theorem coe_singleton (a : α) : ([a] : Multiset α) = {a} 
Arguments: {α : Type u_1} (a : α)
Goal: ↑[a] = {a}
-- Multiset.mem_singleton
@[simp]
theorem mem_singleton {a b : α} : b ∈ ({a} : Multiset α) ↔ b = a 
Arguments: {α : Type u_1} {a b : α}
Goal: b ∈ {a} ↔ b = a
-- Multiset.mem_singleton_self
theorem mem_singleton_self (a : α) : a ∈ ({a} : Multiset α) 
Arguments: {α : Type u_1} (a : α)
Goal: a ∈ {a}
-- Multiset.singleton_inj
@[simp]
theorem singleton_inj {a b : α} : ({a} : Multiset α) = {b} ↔ a = b 
Arguments: {α : Type u_1} {a b : α}
Goal: {a} = {b} ↔ a = b
-- Multiset.coe_eq_singleton
@[simp, norm_cast]
theorem coe_eq_singleton {l : List α} {a : α} : (l : Multiset α) = {a} ↔ l = [a] 
Arguments: {α : Type u_1} {l : List α} {a : α}
Goal: ↑l = {a} ↔ l = [a]
-- Multiset.singleton_eq_cons_iff
@[simp]
theorem singleton_eq_cons_iff {a b : α} (m : Multiset α) : {a} = b ::ₘ m ↔ a = b ∧ m = 0 
Arguments: {α : Type u_1} {a b : α} (m : Multiset α)
Goal: {a} = b ::ₘ m ↔ a = b ∧ m = 0
-- Multiset.pair_comm
theorem pair_comm (x y : α) : ({x, y} : Multiset α) = {y, x} 
Arguments: {α : Type u_1} (x y : α)
Goal: {x, y} = {y, x}
-- Multiset.coe_subset
@[simp]
theorem coe_subset {l₁ l₂ : List α} : (l₁ : Multiset α) ⊆ l₂ ↔ l₁ ⊆ l₂ 
Arguments: {α : Type u_1} {l₁ l₂ : List α}
Goal: ↑l₁ ⊆ ↑l₂ ↔ l₁ ⊆ l₂
-- Multiset.Subset.refl
@[simp]
theorem Subset.refl (s : Multiset α) : s ⊆ s 
Arguments: {α : Type u_1} (s : Multiset α)
Goal: s ⊆ s
-- Multiset.Subset.trans
theorem Subset.trans {s t u : Multiset α} : s ⊆ t → t ⊆ u → s ⊆ u 
Arguments: {α : Type u_1} {s t u : Multiset α}
Goal: s ⊆ t → t ⊆ u → s ⊆ u
-- Multiset.subset_iff
theorem subset_iff {s t : Multiset α} : s ⊆ t ↔ ∀ ⦃x⦄, x ∈ s → x ∈ t 
Arguments: {α : Type u_1} {s t : Multiset α}
Goal: s ⊆ t ↔ ∀ ⦃x : α⦄, x ∈ s → x ∈ t
-- Multiset.mem_of_subset
theorem mem_of_subset {s t : Multiset α} {a : α} (h : s ⊆ t) : a ∈ s → a ∈ t 
Arguments: {α : Type u_1} {s t : Multiset α} {a : α} (h : s ⊆ t)
Goal: a ∈ s → a ∈ t
-- Multiset.zero_subset
@[simp]
theorem zero_subset (s : Multiset α) : 0 ⊆ s 
Arguments: {α : Type u_1} (s : Multiset α)
Goal: 0 ⊆ s
-- Multiset.subset_cons
theorem subset_cons (s : Multiset α) (a : α) : s ⊆ a ::ₘ s 
Arguments: {α : Type u_1} (s : Multiset α) (a : α)
Goal: s ⊆ a ::ₘ s
-- Multiset.ssubset_cons
theorem ssubset_cons {s : Multiset α} {a : α} (ha : a ∉ s) : s ⊂ a ::ₘ s 
Arguments: {α : Type u_1} {s : Multiset α} {a : α} (ha : a ∉ s)
Goal: s ⊂ a ::ₘ s
-- Multiset.cons_subset
@[simp]
theorem cons_subset {a : α} {s t : Multiset α} : a ::ₘ s ⊆ t ↔ a ∈ t ∧ s ⊆ t 
Arguments: {α : Type u_1} {a : α} {s t : Multiset α}
Goal: a ::ₘ s ⊆ t ↔ a ∈ t ∧ s ⊆ t
-- Multiset.cons_subset_cons
theorem cons_subset_cons {a : α} {s t : Multiset α} : s ⊆ t → a ::ₘ s ⊆ a ::ₘ t 
Arguments: {α : Type u_1} {a : α} {s t : Multiset α}
Goal: s ⊆ t → a ::ₘ s ⊆ a ::ₘ t
-- Multiset.eq_zero_of_subset_zero
theorem eq_zero_of_subset_zero {s : Multiset α} (h : s ⊆ 0) : s = 0 
Arguments: {α : Type u_1} {s : Multiset α} (h : s ⊆ 0)
Goal: s = 0
-- Multiset.subset_zero
@[simp] lemma subset_zero : s ⊆ 0 ↔ s = 0 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: s ⊆ 0 ↔ s = 0
-- Multiset.zero_ssubset
@[simp] lemma zero_ssubset : 0 ⊂ s ↔ s ≠ 0 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: 0 ⊂ s ↔ s ≠ 0
-- Multiset.singleton_subset
@[simp] lemma singleton_subset : {a} ⊆ s ↔ a ∈ s 
Arguments: {α : Type u_1} {s : Multiset α} {a : α}
Goal: {a} ⊆ s ↔ a ∈ s
-- Multiset.induction_on'
theorem induction_on' {p : Multiset α → Prop} (S : Multiset α) (h₁ : p 0)
    (h₂ : ∀ {a s}, a ∈ S → s ⊆ S → p s → p (insert a s)) : p S 
Arguments: {α : Type u_1} {p : Multiset α → Prop} (S : Multiset α) (h₁ : p 0) (h₂ : ∀ {a : α} {s : Multiset α}, a ∈ S → s ⊆ S → p s → p (insert a s))
Goal: p S
-- Multiset.coe_toList
@[simp, norm_cast]
theorem coe_toList (s : Multiset α) : (s.toList : Multiset α) = s 
Arguments: {α : Type u_1} (s : Multiset α)
Goal: ↑s.toList = s
-- Multiset.toList_eq_nil
@[simp]
theorem toList_eq_nil {s : Multiset α} : s.toList = [] ↔ s = 0 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: s.toList = [] ↔ s = 0
-- Multiset.empty_toList
@[simp]
theorem empty_toList {s : Multiset α} : s.toList.isEmpty ↔ s = 0 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: s.toList.isEmpty = true ↔ s = 0
-- Multiset.toList_zero
@[simp]
theorem toList_zero : (Multiset.toList 0 : List α) = [] 
Arguments: {α : Type u_1}
Goal: Multiset.toList 0 = []
-- Multiset.mem_toList
@[simp]
theorem mem_toList {a : α} {s : Multiset α} : a ∈ s.toList ↔ a ∈ s 
Arguments: {α : Type u_1} {a : α} {s : Multiset α}
Goal: a ∈ s.toList ↔ a ∈ s
-- Multiset.toList_eq_singleton_iff
@[simp]
theorem toList_eq_singleton_iff {a : α} {m : Multiset α} : m.toList = [a] ↔ m = {a} 
Arguments: {α : Type u_1} {a : α} {m : Multiset α}
Goal: m.toList = [a] ↔ m = {a}
-- Multiset.toList_singleton
@[simp]
theorem toList_singleton (a : α) : ({a} : Multiset α).toList = [a] 
Arguments: {α : Type u_1} (a : α)
Goal: {a}.toList = [a]
-- Multiset.subset_of_le
theorem subset_of_le : s ≤ t → s ⊆ t 
Arguments: {α : Type u_1} {s t : Multiset α}
Goal: s ≤ t → s ⊆ t
-- Multiset.mem_of_le
theorem mem_of_le (h : s ≤ t) : a ∈ s → a ∈ t 
Arguments: {α : Type u_1} {s t : Multiset α} {a : α} (h : s ≤ t)
Goal: a ∈ s → a ∈ t
-- Multiset.not_mem_mono
theorem not_mem_mono (h : s ⊆ t) : a ∉ t → a ∉ s 
Arguments: {α : Type u_1} {s t : Multiset α} {a : α} (h : s ⊆ t)
Goal: a ∉ t → a ∉ s
-- Multiset.coe_le
@[simp]
theorem coe_le {l₁ l₂ : List α} : (l₁ : Multiset α) ≤ l₂ ↔ l₁ <+~ l₂ 
Arguments: {α : Type u_1} {l₁ l₂ : List α}
Goal: ↑l₁ ≤ ↑l₂ ↔ l₁ <+~ l₂
-- Multiset.leInductionOn
@[elab_as_elim]
theorem leInductionOn {C : Multiset α → Multiset α → Prop} {s t : Multiset α} (h : s ≤ t)
    (H : ∀ {l₁ l₂ : List α}, l₁ <+ l₂ → C l₁ l₂) : C s t 
Arguments: {α : Type u_1} {C : Multiset α → Multiset α → Prop} {s t : Multiset α} (h : s ≤ t) (H : ∀ {l₁ l₂ : List α}, l₁ <+ l₂ → C ↑l₁ ↑l₂)
Goal: C s t
-- Multiset.zero_le
theorem zero_le (s : Multiset α) : 0 ≤ s 
Arguments: {α : Type u_1} (s : Multiset α)
Goal: 0 ≤ s
-- Multiset.bot_eq_zero
@[simp]
theorem bot_eq_zero : (⊥ : Multiset α) = 0 
Arguments: {α : Type u_1}
Goal: ⊥ = 0
-- Multiset.le_zero
theorem le_zero : s ≤ 0 ↔ s = 0 
Arguments: {α : Type u_1} {s : Multiset α}
Goal: s ≤ 0 ↔ s = 0
-- Multiset.lt_cons_self
theorem lt_cons_self (s : Multiset α) (a : α) : s < a ::ₘ s 
Arguments: {α : Type u_1} (s : Multiset α) (a : α)
Goal: s < a ::ₘ s
-- Multiset.le_cons_self
theorem le_cons_self (s : Multiset α) (a : α) : s ≤ a ::ₘ s 
Arguments: {α : Type u_1} (s : Multiset α) (a : α)
Goal: s ≤ a ::ₘ s
-- Multiset.cons_le_cons_iff
theorem cons_le_cons_iff (a : α) : a ::ₘ s ≤ a ::ₘ t ↔ s ≤ t 
Arguments: {α : Type u_1} {s t : Multiset α} (a : α)
Goal: a ::ₘ s ≤ a ::ₘ t ↔ s ≤ t
-- Multiset.cons_le_cons
theorem cons_le_cons (a : α) : s ≤ t → a ::ₘ s ≤ a ::ₘ t 
Arguments: {α : Type u_1} {s t : Multiset α} (a : α)
Goal: s ≤ t → a ::ₘ s ≤ a ::ₘ t
-- Multiset.cons_lt_cons_iff
@[simp] lemma cons_lt_cons_iff : a ::ₘ s < a ::ₘ t ↔ s < t 
Arguments: {α : Type u_1} {s t : Multiset α} {a : α}
Goal: a ::ₘ s < a ::ₘ t ↔ s < t
-- Multiset.cons_lt_cons
lemma cons_lt_cons (a : α) (h : s < t) : a ::ₘ s < a ::ₘ t 
Arguments: {α : Type u_1} {s t : Multiset α} (a : α) (h : s < t)
Goal: a ::ₘ s < a ::ₘ t
-- Multiset.le_cons_of_not_mem
theorem le_cons_of_not_mem (m : a ∉ s) : s ≤ a ::ₘ t ↔ s ≤ t 
Arguments: {α : Type u_1} {s t : Multiset α} {a : α} (m : a ∉ s)
Goal: s ≤ a ::ₘ t ↔ s ≤ t
-- Multiset.singleton_ne_zero
@[simp]
theorem singleton_ne_zero (a : α) : ({a} : Multiset α) ≠ 0 
Arguments: {α : Type u_1} (a : α)
Goal: {a} ≠ 0
-- Multiset.singleton_le
@[simp]
theorem singleton_le {a : α} {s : Multiset α} : {a} ≤ s ↔ a ∈ s 
Arguments: {α : Type u_1} {a : α} {s : Multiset α}
Goal: {a} ≤ s ↔ a ∈ s
-- Multiset.le_singleton
@[simp] lemma le_singleton : s ≤ {a} ↔ s = 0 ∨ s = {a} 
Arguments: {α : Type u_1} {s : Multiset α} {a : α}
Goal: s ≤ {a} ↔ s = 0 ∨ s = {a}
-- Multiset.lt_singleton
@[simp] lemma lt_singleton : s < {a} ↔ s = 0 
Arguments: {α : Type u_1} {s : Multiset α} {a : α}
Goal: s < {a} ↔ s = 0
-- Multiset.ssubset_singleton_iff
@[simp] lemma ssubset_singleton_iff : s ⊂ {a} ↔ s = 0 
Arguments: {α : Type u_1} {s : Multiset α} {a : α}
Goal: s ⊂ {a} ↔ s = 0
-- Multiset.coe_add
@[simp]
theorem coe_add (s t : List α) : (s + t : Multiset α) = (s ++ t : List α) 
Arguments: {α : Type u_1} (s t : List α)
Goal: ↑s + ↑t = ↑(s ++ t)
-- Multiset.singleton_add
@[simp]
theorem singleton_add (a : α) (s : Multiset α) : {a} + s = a ::ₘ s 
Arguments: {α : Type u_1} (a : α) (s : Multiset α)
Goal: {a} + s = a ::ₘ s
-- _private.Mathlib.Data.Multiset.Basic.0.Multiset.add_le_add_iff_left'
private theorem add_le_add_iff_left' {s t u : Multiset α} : s + t ≤ s + u ↔ t ≤ u 
Arguments: {α : Type u_1} {s t u : Multiset α}
Goal: s + t ≤ s + u ↔ t ≤ u
-- Multiset.le_add_right
theorem le_add_right (s t : Multiset α) : s ≤ s + t 
Arguments: {α : Type u_1} (s t : Multiset α)
Goal: s ≤ s + t
-- Multiset.le_add_left
theorem le_add_left (s t : Multiset α) : s ≤ t + s 
Arguments: {α : Type u_1} (s t : Multiset α)
Goal: s ≤ t + s
-- Multiset.le_iff_exists_add
theorem le_iff_exists_add {s t : Multiset α} : s ≤ t ↔ ∃ u, t = s + u 
Arguments: {α : Type u_1} {s t : Multiset α}
Goal: s ≤ t ↔ ∃ u, t = s + u
-- Multiset.cons_add
@[simp]
theorem cons_add (a : α) (s t : Multiset α) : a ::ₘ s + t = a ::ₘ (s + t) 
Arguments: {α : Type u_1} (a : α) (s t : Multiset α)
Goal: a ::ₘ s + t = a ::ₘ (s + t)
-- Multiset.add_cons
@[simp]
theorem add_cons (a : α) (s t : Multiset α) : s + a ::ₘ t = a ::ₘ (s + t) 
Arguments: {α : Type u_1} (a : α) (s t : Multiset α)
Goal: s + a ::ₘ t = a ::ₘ (s + t)
-- Multiset.mem_add
@[simp]
theorem mem_add {a : α} {s t : Multiset α} : a ∈ s + t ↔ a ∈ s ∨ a ∈ t 
Arguments: {α : Type u_1} {a : α} {s t : Multiset α}
Goal: a ∈ s + t ↔ a ∈ s ∨ a ∈ t
-- Multiset.mem_of_mem_nsmul
theorem mem_of_mem_nsmul {a : α} {s : Multiset α} {n : ℕ} (h : a ∈ n • s) : a ∈ s 
Arguments: {α : Type u_1} {a : α} {s : Multiset α} {n : ℕ} (h : a ∈ n • s)
Goal: a ∈ s
-- Multiset.mem_nsmul
@[simp]
theorem mem_nsmul {a : α} {s : Multiset α} {n : ℕ} : a ∈ n • s ↔ n ≠ 0 ∧ a ∈ s 
Arguments: {α : Type u_1} {a : α} {s : Multiset α} {n : ℕ}
Goal: a ∈ n • s ↔ n ≠ 0 ∧ a ∈ s