ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- WithBot.mul_eq_bot_iff
lemma mul_eq_bot_iff : a * b = ⊥ ↔ a ≠ 0 ∧ b = ⊥ ∨ a = ⊥ ∧ b ≠ 0 
Arguments: {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a b : WithBot α}
Goal: a * b = ⊥ ↔ a ≠ 0 ∧ b = ⊥ ∨ a = ⊥ ∧ b ≠ 0
-- WithBot.mul_coe_eq_bind
lemma mul_coe_eq_bind {b : α} (hb : b ≠ 0) : ∀ a, (a * b : WithBot α) = a.bind fun a ↦ ↑(a * b)
  
Arguments: {α : Type u_1} [DecidableEq α] [MulZeroClass α] {b : α} (hb : b ≠ 0) (a : WithBot α)
Goal: a * ↑b = Option.bind a fun a => some (a * b)
-- WithBot.coe_mul_eq_bind
lemma coe_mul_eq_bind {a : α} (ha : a ≠ 0) : ∀ b, (a * b : WithBot α) = b.bind fun b ↦ ↑(a * b)
  
Arguments: {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a : α} (ha : a ≠ 0) (b : WithBot α)
Goal: ↑a * b = Option.bind b fun b => some (a * b)
-- WithBot.unbot'_zero_mul
@[simp]
lemma unbot'_zero_mul (a b : WithBot α) : (a * b).unbot' 0 = a.unbot' 0 * b.unbot' 0 
Arguments: {α : Type u_1} [DecidableEq α] [MulZeroClass α] (a b : WithBot α)
Goal: WithBot.unbot' 0 (a * b) = WithBot.unbot' 0 a * WithBot.unbot' 0 b
-- WithBot.bot_lt_mul'
theorem bot_lt_mul' [LT α] {a b : WithBot α} (ha : ⊥ < a) (hb : ⊥ < b) : ⊥ < a * b 
Arguments: {α : Type u_1} [DecidableEq α] [MulZeroClass α] [LT α] {a b : WithBot α} (ha : ⊥ < a) (hb : ⊥ < b)
Goal: ⊥ < a * b
-- WithBot.bot_lt_mul
theorem bot_lt_mul [LT α] {a b : WithBot α} (ha : a ≠ ⊥) (hb : b ≠ ⊥) : ⊥ < a * b 
Arguments: {α : Type u_1} [DecidableEq α] [MulZeroClass α] [LT α] {a b : WithBot α} (ha : a ≠ ⊥) (hb : b ≠ ⊥)
Goal: ⊥ < a * b
-- WithBot.coe_pow
@[simp, norm_cast] lemma coe_pow (a : α) (n : ℕ) : (↑(a ^ n) : WithBot α) = a ^ n 
Arguments: {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] (a : α) (n : ℕ)
Goal: ↑(a ^ n) = ↑a ^ n
-- Set.inv_mem_Icc_iff
@[to_additive]
theorem inv_mem_Icc_iff : a⁻¹ ∈ Set.Icc c d ↔ a ∈ Set.Icc d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedCommGroup α] {a c d : α}
Goal: a⁻¹ ∈ Set.Icc c d ↔ a ∈ Set.Icc d⁻¹ c⁻¹
-- Set.neg_mem_Icc_iff
@[to_additive]
theorem inv_mem_Icc_iff : a⁻¹ ∈ Set.Icc c d ↔ a ∈ Set.Icc d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a c d : α}
Goal: -a ∈ Set.Icc c d ↔ a ∈ Set.Icc (-d) (-c)
-- Set.neg_mem_Ico_iff
@[to_additive]
theorem inv_mem_Ico_iff : a⁻¹ ∈ Set.Ico c d ↔ a ∈ Set.Ioc d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a c d : α}
Goal: -a ∈ Set.Ico c d ↔ a ∈ Set.Ioc (-d) (-c)
-- Set.inv_mem_Ico_iff
@[to_additive]
theorem inv_mem_Ico_iff : a⁻¹ ∈ Set.Ico c d ↔ a ∈ Set.Ioc d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedCommGroup α] {a c d : α}
Goal: a⁻¹ ∈ Set.Ico c d ↔ a ∈ Set.Ioc d⁻¹ c⁻¹
-- Set.inv_mem_Ioc_iff
@[to_additive]
theorem inv_mem_Ioc_iff : a⁻¹ ∈ Set.Ioc c d ↔ a ∈ Set.Ico d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedCommGroup α] {a c d : α}
Goal: a⁻¹ ∈ Set.Ioc c d ↔ a ∈ Set.Ico d⁻¹ c⁻¹
-- Set.neg_mem_Ioc_iff
@[to_additive]
theorem inv_mem_Ioc_iff : a⁻¹ ∈ Set.Ioc c d ↔ a ∈ Set.Ico d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a c d : α}
Goal: -a ∈ Set.Ioc c d ↔ a ∈ Set.Ico (-d) (-c)
-- Set.neg_mem_Ioo_iff
@[to_additive]
theorem inv_mem_Ioo_iff : a⁻¹ ∈ Set.Ioo c d ↔ a ∈ Set.Ioo d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a c d : α}
Goal: -a ∈ Set.Ioo c d ↔ a ∈ Set.Ioo (-d) (-c)
-- Set.inv_mem_Ioo_iff
@[to_additive]
theorem inv_mem_Ioo_iff : a⁻¹ ∈ Set.Ioo c d ↔ a ∈ Set.Ioo d⁻¹ c⁻¹ 
Arguments: {α : Type u_1} [OrderedCommGroup α] {a c d : α}
Goal: a⁻¹ ∈ Set.Ioo c d ↔ a ∈ Set.Ioo d⁻¹ c⁻¹
-- Set.add_mem_Icc_iff_left
theorem add_mem_Icc_iff_left : a + b ∈ Set.Icc c d ↔ a ∈ Set.Icc (c - b) (d - b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Icc c d ↔ a ∈ Set.Icc (c - b) (d - b)
-- Set.add_mem_Ico_iff_left
theorem add_mem_Ico_iff_left : a + b ∈ Set.Ico c d ↔ a ∈ Set.Ico (c - b) (d - b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Ico c d ↔ a ∈ Set.Ico (c - b) (d - b)
-- Set.add_mem_Ioc_iff_left
theorem add_mem_Ioc_iff_left : a + b ∈ Set.Ioc c d ↔ a ∈ Set.Ioc (c - b) (d - b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Ioc c d ↔ a ∈ Set.Ioc (c - b) (d - b)
-- Set.add_mem_Ioo_iff_left
theorem add_mem_Ioo_iff_left : a + b ∈ Set.Ioo c d ↔ a ∈ Set.Ioo (c - b) (d - b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Ioo c d ↔ a ∈ Set.Ioo (c - b) (d - b)
-- Set.add_mem_Icc_iff_right
theorem add_mem_Icc_iff_right : a + b ∈ Set.Icc c d ↔ b ∈ Set.Icc (c - a) (d - a) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Icc c d ↔ b ∈ Set.Icc (c - a) (d - a)
-- Set.add_mem_Ico_iff_right
theorem add_mem_Ico_iff_right : a + b ∈ Set.Ico c d ↔ b ∈ Set.Ico (c - a) (d - a) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Ico c d ↔ b ∈ Set.Ico (c - a) (d - a)
-- Set.add_mem_Ioc_iff_right
theorem add_mem_Ioc_iff_right : a + b ∈ Set.Ioc c d ↔ b ∈ Set.Ioc (c - a) (d - a) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Ioc c d ↔ b ∈ Set.Ioc (c - a) (d - a)
-- Set.add_mem_Ioo_iff_right
theorem add_mem_Ioo_iff_right : a + b ∈ Set.Ioo c d ↔ b ∈ Set.Ioo (c - a) (d - a) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a + b ∈ Set.Ioo c d ↔ b ∈ Set.Ioo (c - a) (d - a)
-- Set.sub_mem_Icc_iff_left
theorem sub_mem_Icc_iff_left : a - b ∈ Set.Icc c d ↔ a ∈ Set.Icc (c + b) (d + b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Icc c d ↔ a ∈ Set.Icc (c + b) (d + b)
-- Set.sub_mem_Ico_iff_left
theorem sub_mem_Ico_iff_left : a - b ∈ Set.Ico c d ↔ a ∈ Set.Ico (c + b) (d + b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Ico c d ↔ a ∈ Set.Ico (c + b) (d + b)
-- Set.sub_mem_Ioc_iff_left
theorem sub_mem_Ioc_iff_left : a - b ∈ Set.Ioc c d ↔ a ∈ Set.Ioc (c + b) (d + b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Ioc c d ↔ a ∈ Set.Ioc (c + b) (d + b)
-- Set.sub_mem_Ioo_iff_left
theorem sub_mem_Ioo_iff_left : a - b ∈ Set.Ioo c d ↔ a ∈ Set.Ioo (c + b) (d + b) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Ioo c d ↔ a ∈ Set.Ioo (c + b) (d + b)
-- Set.sub_mem_Icc_iff_right
theorem sub_mem_Icc_iff_right : a - b ∈ Set.Icc c d ↔ b ∈ Set.Icc (a - d) (a - c) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Icc c d ↔ b ∈ Set.Icc (a - d) (a - c)
-- Set.sub_mem_Ico_iff_right
theorem sub_mem_Ico_iff_right : a - b ∈ Set.Ico c d ↔ b ∈ Set.Ioc (a - d) (a - c) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Ico c d ↔ b ∈ Set.Ioc (a - d) (a - c)
-- Set.sub_mem_Ioc_iff_right
theorem sub_mem_Ioc_iff_right : a - b ∈ Set.Ioc c d ↔ b ∈ Set.Ico (a - d) (a - c) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Ioc c d ↔ b ∈ Set.Ico (a - d) (a - c)
-- Set.sub_mem_Ioo_iff_right
theorem sub_mem_Ioo_iff_right : a - b ∈ Set.Ioo c d ↔ b ∈ Set.Ioo (a - d) (a - c) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] {a b c d : α}
Goal: a - b ∈ Set.Ioo c d ↔ b ∈ Set.Ioo (a - d) (a - c)
-- Set.mem_Icc_iff_abs_le
theorem mem_Icc_iff_abs_le {R : Type*} [LinearOrderedAddCommGroup R] {x y z : R} :
    |x - y| ≤ z ↔ y ∈ Icc (x - z) (x + z) 
Arguments: {R : Type u_2} [LinearOrderedAddCommGroup R] {x y z : R}
Goal: |x - y| ≤ z ↔ y ∈ Set.Icc (x - z) (x + z)
-- Set.nonempty_Ico_sdiff
theorem nonempty_Ico_sdiff {x dx y dy : α} (h : dy < dx) (hx : 0 < dx) :
    Nonempty ↑(Ico x (x + dx) \ Ico y (y + dy)) 
Arguments: {α : Type u_1} [LinearOrderedAddCommGroup α] {x dx y dy : α} (h : dy < dx) (hx : 0 < dx)
Goal: Nonempty ↑(Set.Ico x (x + dx) \ Set.Ico y (y + dy))
-- Set.pairwise_disjoint_Ioc_mul_zpow
@[to_additive]
theorem pairwise_disjoint_Ioc_mul_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioc (a * b ^ n) (a * b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedCommGroup α] (a b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioc (a * b ^ n) (a * b ^ (n + 1)))
-- Set.pairwise_disjoint_Ioc_add_zsmul
@[to_additive]
theorem pairwise_disjoint_Ioc_mul_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioc (a * b ^ n) (a * b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] (a b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioc (a + n • b) (a + (n + 1) • b))
-- Set.pairwise_disjoint_Ico_add_zsmul
@[to_additive]
theorem pairwise_disjoint_Ico_mul_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ico (a * b ^ n) (a * b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] (a b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ico (a + n • b) (a + (n + 1) • b))
-- Set.pairwise_disjoint_Ico_mul_zpow
@[to_additive]
theorem pairwise_disjoint_Ico_mul_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ico (a * b ^ n) (a * b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedCommGroup α] (a b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ico (a * b ^ n) (a * b ^ (n + 1)))
-- Set.pairwise_disjoint_Ioo_add_zsmul
@[to_additive]
theorem pairwise_disjoint_Ioo_mul_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioo (a * b ^ n) (a * b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] (a b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioo (a + n • b) (a + (n + 1) • b))
-- Set.pairwise_disjoint_Ioo_mul_zpow
@[to_additive]
theorem pairwise_disjoint_Ioo_mul_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioo (a * b ^ n) (a * b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedCommGroup α] (a b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioo (a * b ^ n) (a * b ^ (n + 1)))
-- Set.pairwise_disjoint_Ioc_zpow
@[to_additive]
theorem pairwise_disjoint_Ioc_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioc (b ^ n) (b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedCommGroup α] (b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioc (b ^ n) (b ^ (n + 1)))
-- Set.pairwise_disjoint_Ioc_zsmul
@[to_additive]
theorem pairwise_disjoint_Ioc_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioc (b ^ n) (b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] (b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioc (n • b) ((n + 1) • b))
-- Set.pairwise_disjoint_Ico_zpow
@[to_additive]
theorem pairwise_disjoint_Ico_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ico (b ^ n) (b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedCommGroup α] (b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ico (b ^ n) (b ^ (n + 1)))
-- Set.pairwise_disjoint_Ico_zsmul
@[to_additive]
theorem pairwise_disjoint_Ico_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ico (b ^ n) (b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] (b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ico (n • b) ((n + 1) • b))
-- Set.pairwise_disjoint_Ioo_zpow
@[to_additive]
theorem pairwise_disjoint_Ioo_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioo (b ^ n) (b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedCommGroup α] (b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioo (b ^ n) (b ^ (n + 1)))
-- Set.pairwise_disjoint_Ioo_zsmul
@[to_additive]
theorem pairwise_disjoint_Ioo_zpow :
    Pairwise (Disjoint on fun n : ℤ => Ioo (b ^ n) (b ^ (n + 1))) 
Arguments: {α : Type u_1} [OrderedAddCommGroup α] (b : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioo (n • b) ((n + 1) • b))
-- Set.pairwise_disjoint_Ioc_add_intCast
theorem pairwise_disjoint_Ioc_add_intCast :
    Pairwise (Disjoint on fun n : ℤ => Ioc (a + n) (a + n + 1)) 
Arguments: {α : Type u_1} [OrderedRing α] (a : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioc (a + ↑n) (a + ↑n + 1))
-- Set.pairwise_disjoint_Ico_add_intCast
theorem pairwise_disjoint_Ico_add_intCast :
    Pairwise (Disjoint on fun n : ℤ => Ico (a + n) (a + n + 1)) 
Arguments: {α : Type u_1} [OrderedRing α] (a : α)
Goal: Pairwise (Disjoint on fun n => Set.Ico (a + ↑n) (a + ↑n + 1))
-- Set.pairwise_disjoint_Ioo_add_intCast
theorem pairwise_disjoint_Ioo_add_intCast :
    Pairwise (Disjoint on fun n : ℤ => Ioo (a + n) (a + n + 1)) 
Arguments: {α : Type u_1} [OrderedRing α] (a : α)
Goal: Pairwise (Disjoint on fun n => Set.Ioo (a + ↑n) (a + ↑n + 1))
-- Set.pairwise_disjoint_Ico_intCast
theorem pairwise_disjoint_Ico_intCast :
    Pairwise (Disjoint on fun n : ℤ => Ico (n : α) (n + 1)) 
Arguments: (α : Type u_1) [OrderedRing α]
Goal: Pairwise (Disjoint on fun n => Set.Ico (↑n) (↑n + 1))
-- Set.pairwise_disjoint_Ioo_intCast
theorem pairwise_disjoint_Ioo_intCast : Pairwise (Disjoint on fun n : ℤ => Ioo (n : α) (n + 1)) 
Arguments: (α : Type u_1) [OrderedRing α]
Goal: Pairwise (Disjoint on fun n => Set.Ioo (↑n) (↑n + 1))
-- Set.pairwise_disjoint_Ioc_intCast
theorem pairwise_disjoint_Ioc_intCast : Pairwise (Disjoint on fun n : ℤ => Ioc (n : α) (n + 1)) 
Arguments: (α : Type u_1) [OrderedRing α]
Goal: Pairwise (Disjoint on fun n => Set.Ioc (↑n) (↑n + 1))
-- Multiset.one_le_prod_of_one_le
@[to_additive sum_nonneg]
lemma one_le_prod_of_one_le : (∀ x ∈ s, (1 : α) ≤ x) → 1 ≤ s.prod 
Arguments: {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α}
Goal: (∀ x ∈ s, 1 ≤ x) → 1 ≤ s.prod
-- Multiset.sum_nonneg
@[to_additive sum_nonneg]
lemma one_le_prod_of_one_le : (∀ x ∈ s, (1 : α) ≤ x) → 1 ≤ s.prod 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α}
Goal: (∀ x ∈ s, 0 ≤ x) → 0 ≤ s.sum
-- Multiset.single_le_sum
@[to_additive]
lemma single_le_prod : (∀ x ∈ s, (1 : α) ≤ x) → ∀ x ∈ s, x ≤ s.prod 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α}
Goal: (∀ x ∈ s, 0 ≤ x) → ∀ x ∈ s, x ≤ s.sum
-- Multiset.single_le_prod
@[to_additive]
lemma single_le_prod : (∀ x ∈ s, (1 : α) ≤ x) → ∀ x ∈ s, x ≤ s.prod 
Arguments: {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α}
Goal: (∀ x ∈ s, 1 ≤ x) → ∀ x ∈ s, x ≤ s.prod
-- Multiset.prod_le_pow_card
@[to_additive sum_le_card_nsmul]
lemma prod_le_pow_card (s : Multiset α) (n : α) (h : ∀ x ∈ s, x ≤ n) : s.prod ≤ n ^ card s 
Arguments: {α : Type u_2} [OrderedCommMonoid α] (s : Multiset α) (n : α) (h : ∀ x ∈ s, x ≤ n)
Goal: s.prod ≤ n ^ Multiset.card s
-- Multiset.sum_le_card_nsmul
@[to_additive sum_le_card_nsmul]
lemma prod_le_pow_card (s : Multiset α) (n : α) (h : ∀ x ∈ s, x ≤ n) : s.prod ≤ n ^ card s 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] (s : Multiset α) (n : α) (h : ∀ x ∈ s, x ≤ n)
Goal: s.sum ≤ Multiset.card s • n
-- Multiset.all_zero_of_le_zero_le_of_sum_eq_zero
@[to_additive all_zero_of_le_zero_le_of_sum_eq_zero]
lemma all_one_of_le_one_le_of_prod_eq_one :
    (∀ x ∈ s, (1 : α) ≤ x) → s.prod = 1 → ∀ x ∈ s, x = (1 : α) 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α}
Goal: (∀ x ∈ s, 0 ≤ x) → s.sum = 0 → ∀ x ∈ s, x = 0
-- Multiset.all_one_of_le_one_le_of_prod_eq_one
@[to_additive all_zero_of_le_zero_le_of_sum_eq_zero]
lemma all_one_of_le_one_le_of_prod_eq_one :
    (∀ x ∈ s, (1 : α) ≤ x) → s.prod = 1 → ∀ x ∈ s, x = (1 : α) 
Arguments: {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α}
Goal: (∀ x ∈ s, 1 ≤ x) → s.prod = 1 → ∀ x ∈ s, x = 1
-- Multiset.prod_le_prod_of_rel_le
@[to_additive]
lemma prod_le_prod_of_rel_le (h : s.Rel (· ≤ ·) t) : s.prod ≤ t.prod 
Arguments: {α : Type u_2} [OrderedCommMonoid α] {s t : Multiset α} (h : Multiset.Rel (fun x x_1 => x ≤ x_1) s t)
Goal: s.prod ≤ t.prod
-- Multiset.sum_le_sum_of_rel_le
@[to_additive]
lemma prod_le_prod_of_rel_le (h : s.Rel (· ≤ ·) t) : s.prod ≤ t.prod 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] {s t : Multiset α} (h : Multiset.Rel (fun x x_1 => x ≤ x_1) s t)
Goal: s.sum ≤ t.sum
-- Multiset.sum_map_le_sum_map
@[to_additive]
lemma prod_map_le_prod_map {s : Multiset ι} (f : ι → α) (g : ι → α) (h : ∀ i, i ∈ s → f i ≤ g i) :
    (s.map f).prod ≤ (s.map g).prod 
Arguments: {ι : Type u_1} {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset ι} (f g : ι → α) (h : ∀ i ∈ s, f i ≤ g i)
Goal: (Multiset.map f s).sum ≤ (Multiset.map g s).sum
-- Multiset.prod_map_le_prod_map
@[to_additive]
lemma prod_map_le_prod_map {s : Multiset ι} (f : ι → α) (g : ι → α) (h : ∀ i, i ∈ s → f i ≤ g i) :
    (s.map f).prod ≤ (s.map g).prod 
Arguments: {ι : Type u_1} {α : Type u_2} [OrderedCommMonoid α] {s : Multiset ι} (f g : ι → α) (h : ∀ i ∈ s, f i ≤ g i)
Goal: (Multiset.map f s).prod ≤ (Multiset.map g s).prod
-- Multiset.sum_map_le_sum
@[to_additive]
lemma prod_map_le_prod (f : α → α) (h : ∀ x, x ∈ s → f x ≤ x) : (s.map f).prod ≤ s.prod 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} (f : α → α) (h : ∀ x ∈ s, f x ≤ x)
Goal: (Multiset.map f s).sum ≤ s.sum
-- Multiset.prod_map_le_prod
@[to_additive]
lemma prod_map_le_prod (f : α → α) (h : ∀ x, x ∈ s → f x ≤ x) : (s.map f).prod ≤ s.prod 
Arguments: {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} (f : α → α) (h : ∀ x ∈ s, f x ≤ x)
Goal: (Multiset.map f s).prod ≤ s.prod
-- Multiset.sum_le_sum_map
@[to_additive]
lemma prod_le_prod_map (f : α → α) (h : ∀ x, x ∈ s → x ≤ f x) : s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} (f : α → α) (h : ∀ x ∈ s, x ≤ f x)
Goal: s.sum ≤ (Multiset.map f s).sum
-- Multiset.prod_le_prod_map
@[to_additive]
lemma prod_le_prod_map (f : α → α) (h : ∀ x, x ∈ s → x ≤ f x) : s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} (f : α → α) (h : ∀ x ∈ s, x ≤ f x)
Goal: s.prod ≤ (Multiset.map f s).prod
-- Multiset.card_nsmul_le_sum
@[to_additive card_nsmul_le_sum]
lemma pow_card_le_prod (h : ∀ x ∈ s, a ≤ x) : a ^ card s ≤ s.prod 
Arguments: {α : Type u_2} [OrderedAddCommMonoid α] {s : Multiset α} {a : α} (h : ∀ x ∈ s, a ≤ x)
Goal: Multiset.card s • a ≤ s.sum
-- Multiset.pow_card_le_prod
@[to_additive card_nsmul_le_sum]
lemma pow_card_le_prod (h : ∀ x ∈ s, a ≤ x) : a ^ card s ≤ s.prod 
Arguments: {α : Type u_2} [OrderedCommMonoid α] {s : Multiset α} {a : α} (h : ∀ x ∈ s, a ≤ x)
Goal: a ^ Multiset.card s ≤ s.prod
-- Multiset.le_prod_of_submultiplicative_on_pred
@[to_additive le_sum_of_subadditive_on_pred]
lemma le_prod_of_submultiplicative_on_pred (f : α → β)
    (p : α → Prop) (h_one : f 1 = 1) (hp_one : p 1)
    (h_mul : ∀ a b, p a → p b → f (a * b) ≤ f a * f b) (hp_mul : ∀ a b, p a → p b → p (a * b))
    (s : Multiset α) (hps : ∀ a, a ∈ s → p a) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : α → β) (p : α → Prop) (h_one : f 1 = 1) (hp_one : p 1) (h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b) (hp_mul : ∀ (a b : α), p a → p b → p (a * b)) (s : Multiset α) (hps : ∀ a ∈ s, p a)
Goal: f s.prod ≤ (Multiset.map f s).prod
-- Multiset.le_sum_of_subadditive_on_pred
@[to_additive le_sum_of_subadditive_on_pred]
lemma le_prod_of_submultiplicative_on_pred (f : α → β)
    (p : α → Prop) (h_one : f 1 = 1) (hp_one : p 1)
    (h_mul : ∀ a b, p a → p b → f (a * b) ≤ f a * f b) (hp_mul : ∀ a b, p a → p b → p (a * b))
    (s : Multiset α) (hps : ∀ a, a ∈ s → p a) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : α → β) (p : α → Prop) (h_one : f 0 = 0) (hp_one : p 0) (h_mul : ∀ (a b : α), p a → p b → f (a + b) ≤ f a + f b) (hp_mul : ∀ (a b : α), p a → p b → p (a + b)) (s : Multiset α) (hps : ∀ a ∈ s, p a)
Goal: f s.sum ≤ (Multiset.map f s).sum
-- Multiset.le_prod_of_submultiplicative
@[to_additive le_sum_of_subadditive]
lemma le_prod_of_submultiplicative (f : α → β) (h_one : f 1 = 1)
    (h_mul : ∀ a b, f (a * b) ≤ f a * f b) (s : Multiset α) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : α → β) (h_one : f 1 = 1) (h_mul : ∀ (a b : α), f (a * b) ≤ f a * f b) (s : Multiset α)
Goal: f s.prod ≤ (Multiset.map f s).prod
-- Multiset.le_sum_of_subadditive
@[to_additive le_sum_of_subadditive]
lemma le_prod_of_submultiplicative (f : α → β) (h_one : f 1 = 1)
    (h_mul : ∀ a b, f (a * b) ≤ f a * f b) (s : Multiset α) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : α → β) (h_one : f 0 = 0) (h_mul : ∀ (a b : α), f (a + b) ≤ f a + f b) (s : Multiset α)
Goal: f s.sum ≤ (Multiset.map f s).sum
-- Multiset.le_prod_nonempty_of_submultiplicative_on_pred
@[to_additive le_sum_nonempty_of_subadditive_on_pred]
lemma le_prod_nonempty_of_submultiplicative_on_pred (f : α → β) (p : α → Prop)
    (h_mul : ∀ a b, p a → p b → f (a * b) ≤ f a * f b) (hp_mul : ∀ a b, p a → p b → p (a * b))
    (s : Multiset α) (hs_nonempty : s ≠ ∅) (hs : ∀ a, a ∈ s → p a) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : α → β) (p : α → Prop) (h_mul : ∀ (a b : α), p a → p b → f (a * b) ≤ f a * f b) (hp_mul : ∀ (a b : α), p a → p b → p (a * b)) (s : Multiset α) (hs_nonempty : s ≠ ∅) (hs : ∀ a ∈ s, p a)
Goal: f s.prod ≤ (Multiset.map f s).prod
-- Multiset.le_sum_nonempty_of_subadditive_on_pred
@[to_additive le_sum_nonempty_of_subadditive_on_pred]
lemma le_prod_nonempty_of_submultiplicative_on_pred (f : α → β) (p : α → Prop)
    (h_mul : ∀ a b, p a → p b → f (a * b) ≤ f a * f b) (hp_mul : ∀ a b, p a → p b → p (a * b))
    (s : Multiset α) (hs_nonempty : s ≠ ∅) (hs : ∀ a, a ∈ s → p a) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : α → β) (p : α → Prop) (h_mul : ∀ (a b : α), p a → p b → f (a + b) ≤ f a + f b) (hp_mul : ∀ (a b : α), p a → p b → p (a + b)) (s : Multiset α) (hs_nonempty : s ≠ ∅) (hs : ∀ a ∈ s, p a)
Goal: f s.sum ≤ (Multiset.map f s).sum
-- Multiset.le_prod_nonempty_of_submultiplicative
@[to_additive le_sum_nonempty_of_subadditive]
lemma le_prod_nonempty_of_submultiplicative (f : α → β) (h_mul : ∀ a b, f (a * b) ≤ f a * f b)
    (s : Multiset α) (hs_nonempty : s ≠ ∅) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [CommMonoid α] [OrderedCommMonoid β] (f : α → β) (h_mul : ∀ (a b : α), f (a * b) ≤ f a * f b) (s : Multiset α) (hs_nonempty : s ≠ ∅)
Goal: f s.prod ≤ (Multiset.map f s).prod
-- Multiset.le_sum_nonempty_of_subadditive
@[to_additive le_sum_nonempty_of_subadditive]
lemma le_prod_nonempty_of_submultiplicative (f : α → β) (h_mul : ∀ a b, f (a * b) ≤ f a * f b)
    (s : Multiset α) (hs_nonempty : s ≠ ∅) : f s.prod ≤ (s.map f).prod 
Arguments: {α : Type u_2} {β : Type u_3} [AddCommMonoid α] [OrderedAddCommMonoid β] (f : α → β) (h_mul : ∀ (a b : α), f (a + b) ≤ f a + f b) (s : Multiset α) (hs_nonempty : s ≠ ∅)
Goal: f s.sum ≤ (Multiset.map f s).sum
-- Multiset.sum_lt_sum
@[to_additive sum_lt_sum]
lemma prod_lt_prod' (hle : ∀ i ∈ s, f i ≤ g i) (hlt : ∃ i ∈ s, f i < g i) :
    (s.map f).prod < (s.map g).prod 
Arguments: {ι : Type u_1} {α : Type u_2} [OrderedCancelAddCommMonoid α] {s : Multiset ι} {f g : ι → α} (hle : ∀ i ∈ s, f i ≤ g i) (hlt : ∃ i ∈ s, f i < g i)
Goal: (Multiset.map f s).sum < (Multiset.map g s).sum
-- Multiset.prod_lt_prod'
@[to_additive sum_lt_sum]
lemma prod_lt_prod' (hle : ∀ i ∈ s, f i ≤ g i) (hlt : ∃ i ∈ s, f i < g i) :
    (s.map f).prod < (s.map g).prod 
Arguments: {ι : Type u_1} {α : Type u_2} [OrderedCancelCommMonoid α] {s : Multiset ι} {f g : ι → α} (hle : ∀ i ∈ s, f i ≤ g i) (hlt : ∃ i ∈ s, f i < g i)
Goal: (Multiset.map f s).prod < (Multiset.map g s).prod
-- Multiset.sum_lt_sum_of_nonempty
@[to_additive sum_lt_sum_of_nonempty]
lemma prod_lt_prod_of_nonempty' (hs : s ≠ ∅) (hfg : ∀ i ∈ s, f i < g i) :
    (s.map f).prod < (s.map g).prod 
Arguments: {ι : Type u_1} {α : Type u_2} [OrderedCancelAddCommMonoid α] {s : Multiset ι} {f g : ι → α} (hs : s ≠ ∅) (hfg : ∀ i ∈ s, f i < g i)
Goal: (Multiset.map f s).sum < (Multiset.map g s).sum
-- Multiset.prod_lt_prod_of_nonempty'
@[to_additive sum_lt_sum_of_nonempty]
lemma prod_lt_prod_of_nonempty' (hs : s ≠ ∅) (hfg : ∀ i ∈ s, f i < g i) :
    (s.map f).prod < (s.map g).prod 
Arguments: {ι : Type u_1} {α : Type u_2} [OrderedCancelCommMonoid α] {s : Multiset ι} {f g : ι → α} (hs : s ≠ ∅) (hfg : ∀ i ∈ s, f i < g i)
Goal: (Multiset.map f s).prod < (Multiset.map g s).prod
-- Multiset.prod_eq_one_iff
@[to_additive] lemma prod_eq_one_iff : m.prod = 1 ↔ ∀ x ∈ m, x = (1 : α) 
Arguments: {α : Type u_2} [CanonicallyOrderedCommMonoid α] {m : Multiset α}
Goal: m.prod = 1 ↔ ∀ x ∈ m, x = 1
-- Multiset.sum_eq_zero_iff
@[to_additive] lemma prod_eq_one_iff : m.prod = 1 ↔ ∀ x ∈ m, x = (1 : α) 
Arguments: {α : Type u_2} [CanonicallyOrderedAddCommMonoid α] {m : Multiset α}
Goal: m.sum = 0 ↔ ∀ x ∈ m, x = 0
-- Multiset.le_sum_of_mem
@[to_additive] lemma le_prod_of_mem (ha : a ∈ m) : a ≤ m.prod 
Arguments: {α : Type u_2} [CanonicallyOrderedAddCommMonoid α] {m : Multiset α} {a : α} (ha : a ∈ m)
Goal: a ≤ m.sum