ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- eq_iff_eq_of_mul_eq_mul
@[to_additive] lemma eq_iff_eq_of_mul_eq_mul (h : a * b = c * d) : a = c ↔ b = d 
Arguments: {α : Type u_1} [CancelCommMonoid α] {a b c d : α} (h : a * b = c * d)
Goal: a = c ↔ b = d
-- ne_iff_ne_of_add_eq_add
@[to_additive] lemma ne_iff_ne_of_mul_eq_mul (h : a * b = c * d) : a ≠ c ↔ b ≠ d 
Arguments: {α : Type u_1} [AddCancelCommMonoid α] {a b c d : α} (h : a + b = c + d)
Goal: a ≠ c ↔ b ≠ d
-- ne_iff_ne_of_mul_eq_mul
@[to_additive] lemma ne_iff_ne_of_mul_eq_mul (h : a * b = c * d) : a ≠ c ↔ b ≠ d 
Arguments: {α : Type u_1} [CancelCommMonoid α] {a b c d : α} (h : a * b = c * d)
Goal: a ≠ c ↔ b ≠ d
-- inv_involutive
@[to_additive (attr := simp)]
theorem inv_involutive : Function.Involutive (Inv.inv : G → G) 
Arguments: {G : Type u_3} [InvolutiveInv G]
Goal: Function.Involutive Inv.inv
-- neg_involutive
@[to_additive (attr := simp)]
theorem inv_involutive : Function.Involutive (Inv.inv : G → G) 
Arguments: {G : Type u_3} [InvolutiveNeg G]
Goal: Function.Involutive Neg.neg
-- inv_surjective
@[to_additive (attr := simp)]
theorem inv_surjective : Function.Surjective (Inv.inv : G → G) 
Arguments: {G : Type u_3} [InvolutiveInv G]
Goal: Function.Surjective Inv.inv
-- neg_surjective
@[to_additive (attr := simp)]
theorem inv_surjective : Function.Surjective (Inv.inv : G → G) 
Arguments: {G : Type u_3} [InvolutiveNeg G]
Goal: Function.Surjective Neg.neg
-- neg_injective
@[to_additive]
theorem inv_injective : Function.Injective (Inv.inv : G → G) 
Arguments: {G : Type u_3} [InvolutiveNeg G]
Goal: Function.Injective Neg.neg
-- inv_injective
@[to_additive]
theorem inv_injective : Function.Injective (Inv.inv : G → G) 
Arguments: {G : Type u_3} [InvolutiveInv G]
Goal: Function.Injective Inv.inv
-- neg_inj
@[to_additive (attr := simp)]
theorem inv_inj : a⁻¹ = b⁻¹ ↔ a = b 
Arguments: {G : Type u_3} [InvolutiveNeg G] {a b : G}
Goal: -a = -b ↔ a = b
-- inv_inj
@[to_additive (attr := simp)]
theorem inv_inj : a⁻¹ = b⁻¹ ↔ a = b 
Arguments: {G : Type u_3} [InvolutiveInv G] {a b : G}
Goal: a⁻¹ = b⁻¹ ↔ a = b
-- inv_eq_iff_eq_inv
@[to_additive]
theorem inv_eq_iff_eq_inv : a⁻¹ = b ↔ a = b⁻¹ 
Arguments: {G : Type u_3} [InvolutiveInv G] {a b : G}
Goal: a⁻¹ = b ↔ a = b⁻¹
-- neg_eq_iff_eq_neg
@[to_additive]
theorem inv_eq_iff_eq_inv : a⁻¹ = b ↔ a = b⁻¹ 
Arguments: {G : Type u_3} [InvolutiveNeg G] {a b : G}
Goal: -a = b ↔ a = -b
-- inv_comp_inv
@[to_additive]
theorem inv_comp_inv : Inv.inv ∘ Inv.inv = @id G 
Arguments: (G : Type u_3) [InvolutiveInv G]
Goal: Inv.inv ∘ Inv.inv = id
-- neg_comp_neg
@[to_additive]
theorem inv_comp_inv : Inv.inv ∘ Inv.inv = @id G 
Arguments: (G : Type u_3) [InvolutiveNeg G]
Goal: Neg.neg ∘ Neg.neg = id
-- leftInverse_inv
@[to_additive]
theorem leftInverse_inv : LeftInverse (fun a : G ↦ a⁻¹) fun a ↦ a⁻¹ 
Arguments: (G : Type u_3) [InvolutiveInv G]
Goal: Function.LeftInverse (fun a => a⁻¹) fun a => a⁻¹
-- leftInverse_neg
@[to_additive]
theorem leftInverse_inv : LeftInverse (fun a : G ↦ a⁻¹) fun a ↦ a⁻¹ 
Arguments: (G : Type u_3) [InvolutiveNeg G]
Goal: Function.LeftInverse (fun a => -a) fun a => -a
-- rightInverse_neg
@[to_additive]
theorem rightInverse_inv : RightInverse (fun a : G ↦ a⁻¹) fun a ↦ a⁻¹ 
Arguments: (G : Type u_3) [InvolutiveNeg G]
Goal: Function.RightInverse (fun a => -a) fun a => -a
-- rightInverse_inv
@[to_additive]
theorem rightInverse_inv : RightInverse (fun a : G ↦ a⁻¹) fun a ↦ a⁻¹ 
Arguments: (G : Type u_3) [InvolutiveInv G]
Goal: Function.RightInverse (fun a => a⁻¹) fun a => a⁻¹
-- neg_eq_zero_sub
@[to_additive, field_simps] -- The attributes are out of order on purpose
theorem inv_eq_one_div (x : G) : x⁻¹ = 1 / x 
Arguments: {G : Type u_3} [SubNegMonoid G] (x : G)
Goal: -x = 0 - x
-- inv_eq_one_div
@[to_additive, field_simps] -- The attributes are out of order on purpose
theorem inv_eq_one_div (x : G) : x⁻¹ = 1 / x 
Arguments: {G : Type u_3} [DivInvMonoid G] (x : G)
Goal: x⁻¹ = 1 / x
-- mul_one_div
@[to_additive]
theorem mul_one_div (x y : G) : x * (1 / y) = x / y 
Arguments: {G : Type u_3} [DivInvMonoid G] (x y : G)
Goal: x * (1 / y) = x / y
-- add_zero_sub
@[to_additive]
theorem mul_one_div (x y : G) : x * (1 / y) = x / y 
Arguments: {G : Type u_3} [SubNegMonoid G] (x y : G)
Goal: x + (0 - y) = x - y
-- mul_div_assoc
@[to_additive]
theorem mul_div_assoc (a b c : G) : a * b / c = a * (b / c) 
Arguments: {G : Type u_3} [DivInvMonoid G] (a b c : G)
Goal: a * b / c = a * (b / c)
-- add_sub_assoc
@[to_additive]
theorem mul_div_assoc (a b c : G) : a * b / c = a * (b / c) 
Arguments: {G : Type u_3} [SubNegMonoid G] (a b c : G)
Goal: a + b - c = a + (b - c)
-- mul_div_assoc'
@[to_additive, field_simps] -- The attributes are out of order on purpose
theorem mul_div_assoc' (a b c : G) : a * (b / c) = a * b / c 
Arguments: {G : Type u_3} [DivInvMonoid G] (a b c : G)
Goal: a * (b / c) = a * b / c
-- add_sub_assoc'
@[to_additive, field_simps] -- The attributes are out of order on purpose
theorem mul_div_assoc' (a b c : G) : a * (b / c) = a * b / c 
Arguments: {G : Type u_3} [SubNegMonoid G] (a b c : G)
Goal: a + (b - c) = a + b - c
-- one_div
@[to_additive (attr := simp)]
theorem one_div (a : G) : 1 / a = a⁻¹ 
Arguments: {G : Type u_3} [DivInvMonoid G] (a : G)
Goal: 1 / a = a⁻¹
-- zero_sub
@[to_additive (attr := simp)]
theorem one_div (a : G) : 1 / a = a⁻¹ 
Arguments: {G : Type u_3} [SubNegMonoid G] (a : G)
Goal: 0 - a = -a
-- mul_div
@[to_additive]
theorem mul_div (a b c : G) : a * (b / c) = a * b / c 
Arguments: {G : Type u_3} [DivInvMonoid G] (a b c : G)
Goal: a * (b / c) = a * b / c
-- add_sub
@[to_additive]
theorem mul_div (a b c : G) : a * (b / c) = a * b / c 
Arguments: {G : Type u_3} [SubNegMonoid G] (a b c : G)
Goal: a + (b - c) = a + b - c
-- sub_eq_add_zero_sub
@[to_additive]
theorem div_eq_mul_one_div (a b : G) : a / b = a * (1 / b) 
Arguments: {G : Type u_3} [SubNegMonoid G] (a b : G)
Goal: a - b = a + (0 - b)
-- div_eq_mul_one_div
@[to_additive]
theorem div_eq_mul_one_div (a b : G) : a / b = a * (1 / b) 
Arguments: {G : Type u_3} [DivInvMonoid G] (a b : G)
Goal: a / b = a * (1 / b)
-- sub_zero
@[to_additive (attr := simp)]
theorem div_one (a : G) : a / 1 = a 
Arguments: {G : Type u_3} [SubNegZeroMonoid G] (a : G)
Goal: a - 0 = a
-- div_one
@[to_additive (attr := simp)]
theorem div_one (a : G) : a / 1 = a 
Arguments: {G : Type u_3} [DivInvOneMonoid G] (a : G)
Goal: a / 1 = a
-- one_div_one
@[to_additive]
theorem one_div_one : (1 : G) / 1 = 1 
Arguments: {G : Type u_3} [DivInvOneMonoid G]
Goal: 1 / 1 = 1
-- zero_sub_zero
@[to_additive]
theorem one_div_one : (1 : G) / 1 = 1 
Arguments: {G : Type u_3} [SubNegZeroMonoid G]
Goal: 0 - 0 = 0
-- eq_inv_of_mul_eq_one_right
@[to_additive]
theorem eq_inv_of_mul_eq_one_right (h : a * b = 1) : b = a⁻¹ 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α} (h : a * b = 1)
Goal: b = a⁻¹
-- eq_neg_of_add_eq_zero_right
@[to_additive]
theorem eq_inv_of_mul_eq_one_right (h : a * b = 1) : b = a⁻¹ 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a b : α} (h : a + b = 0)
Goal: b = -a
-- eq_one_div_of_mul_eq_one_left
@[to_additive]
theorem eq_one_div_of_mul_eq_one_left (h : b * a = 1) : b = 1 / a 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α} (h : b * a = 1)
Goal: b = 1 / a
-- eq_zero_sub_of_add_eq_zero_left
@[to_additive]
theorem eq_one_div_of_mul_eq_one_left (h : b * a = 1) : b = 1 / a 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a b : α} (h : b + a = 0)
Goal: b = 0 - a
-- eq_one_div_of_mul_eq_one_right
@[to_additive]
theorem eq_one_div_of_mul_eq_one_right (h : a * b = 1) : b = 1 / a 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α} (h : a * b = 1)
Goal: b = 1 / a
-- eq_zero_sub_of_add_eq_zero_right
@[to_additive]
theorem eq_one_div_of_mul_eq_one_right (h : a * b = 1) : b = 1 / a 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a b : α} (h : a + b = 0)
Goal: b = 0 - a
-- eq_of_div_eq_one
@[to_additive]
theorem eq_of_div_eq_one (h : a / b = 1) : a = b 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α} (h : a / b = 1)
Goal: a = b
-- eq_of_sub_eq_zero
@[to_additive]
theorem eq_of_div_eq_one (h : a / b = 1) : a = b 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a b : α} (h : a - b = 0)
Goal: a = b
-- eq_of_inv_mul_eq_one
lemma eq_of_inv_mul_eq_one (h : a⁻¹ * b = 1) : a = b 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α} (h : a⁻¹ * b = 1)
Goal: a = b
-- eq_of_mul_inv_eq_one
lemma eq_of_mul_inv_eq_one (h : a * b⁻¹ = 1) : a = b 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α} (h : a * b⁻¹ = 1)
Goal: a = b
-- div_ne_one_of_ne
@[to_additive]
theorem div_ne_one_of_ne : a ≠ b → a / b ≠ 1 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α}
Goal: a ≠ b → a / b ≠ 1
-- sub_ne_zero_of_ne
@[to_additive]
theorem div_ne_one_of_ne : a ≠ b → a / b ≠ 1 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a b : α}
Goal: a ≠ b → a - b ≠ 0
-- zero_sub_add_zero_sub_rev
@[to_additive]
theorem one_div_mul_one_div_rev : 1 / a * (1 / b) = 1 / (b * a) 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b : α)
Goal: 0 - a + (0 - b) = 0 - (b + a)
-- one_div_mul_one_div_rev
@[to_additive]
theorem one_div_mul_one_div_rev : 1 / a * (1 / b) = 1 / (b * a) 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b : α)
Goal: 1 / a * (1 / b) = 1 / (b * a)
-- neg_sub_left
@[to_additive]
theorem inv_div_left : a⁻¹ / b = (b * a)⁻¹ 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b : α)
Goal: -a - b = -(b + a)
-- inv_div_left
@[to_additive]
theorem inv_div_left : a⁻¹ / b = (b * a)⁻¹ 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b : α)
Goal: a⁻¹ / b = (b * a)⁻¹
-- inv_div
@[to_additive (attr := simp)]
theorem inv_div : (a / b)⁻¹ = b / a 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b : α)
Goal: (a / b)⁻¹ = b / a
-- neg_sub
@[to_additive (attr := simp)]
theorem inv_div : (a / b)⁻¹ = b / a 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b : α)
Goal: -(a - b) = b - a
-- one_div_div
@[to_additive]
theorem one_div_div : 1 / (a / b) = b / a 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b : α)
Goal: 1 / (a / b) = b / a
-- zero_sub_sub
@[to_additive]
theorem one_div_div : 1 / (a / b) = b / a 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b : α)
Goal: 0 - (a - b) = b - a
-- one_div_one_div
@[to_additive]
theorem one_div_one_div : 1 / (1 / a) = a 
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α)
Goal: 1 / (1 / a) = a
-- zero_sub_zero_sub
@[to_additive]
theorem one_div_one_div : 1 / (1 / a) = a 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α)
Goal: 0 - (0 - a) = a
-- div_eq_div_iff_comm
@[to_additive]
theorem div_eq_div_iff_comm : a / b = c / d ↔ b / a = d / c 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b c : α) {d : α}
Goal: a / b = c / d ↔ b / a = d / c
-- sub_eq_sub_iff_comm
@[to_additive]
theorem div_eq_div_iff_comm : a / b = c / d ↔ b / a = d / c 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b c : α) {d : α}
Goal: a - b = c - d ↔ b - a = d - c
-- neg_nsmul
@[to_additive (attr := simp)]
lemma inv_pow (a : α) : ∀ n : ℕ, a⁻¹ ^ n = (a ^ n)⁻¹
  
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (n : ℕ)
Goal: n • -a = -(n • a)
-- inv_pow
@[to_additive (attr := simp)]
lemma inv_pow (a : α) : ∀ n : ℕ, a⁻¹ ^ n = (a ^ n)⁻¹
  
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (n : ℕ)
Goal: a⁻¹ ^ n = (a ^ n)⁻¹
-- zsmul_zero
@[to_additive zsmul_zero, simp]
lemma one_zpow : ∀ n : ℤ, (1 : α) ^ n = 1
  
Arguments: {α : Type u_1} [SubtractionMonoid α] (n : ℤ)
Goal: n • 0 = 0
-- one_zpow
@[to_additive zsmul_zero, simp]
lemma one_zpow : ∀ n : ℤ, (1 : α) ^ n = 1
  
Arguments: {α : Type u_1} [DivisionMonoid α] (n : ℤ)
Goal: 1 ^ n = 1
-- neg_zsmul
@[to_additive (attr := simp) neg_zsmul]
lemma zpow_neg (a : α) : ∀ n : ℤ, a ^ (-n) = (a ^ n)⁻¹
  
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (n : ℤ)
Goal: -n • a = -(n • a)
-- zpow_neg
@[to_additive (attr := simp) neg_zsmul]
lemma zpow_neg (a : α) : ∀ n : ℤ, a ^ (-n) = (a ^ n)⁻¹
  
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (n : ℤ)
Goal: a ^ (-n) = (a ^ n)⁻¹
-- neg_one_zsmul_add
@[to_additive neg_one_zsmul_add]
lemma mul_zpow_neg_one (a b : α) : (a * b) ^ (-1 : ℤ) = b ^ (-1 : ℤ) * a ^ (-1 : ℤ) 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b : α)
Goal: -1 • (a + b) = -1 • b + -1 • a
-- mul_zpow_neg_one
@[to_additive neg_one_zsmul_add]
lemma mul_zpow_neg_one (a b : α) : (a * b) ^ (-1 : ℤ) = b ^ (-1 : ℤ) * a ^ (-1 : ℤ) 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b : α)
Goal: (a * b) ^ (-1) = b ^ (-1) * a ^ (-1)
-- zsmul_neg
@[to_additive zsmul_neg]
lemma inv_zpow (a : α) : ∀ n : ℤ, a⁻¹ ^ n = (a ^ n)⁻¹
  
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (n : ℤ)
Goal: n • -a = -(n • a)
-- inv_zpow
@[to_additive zsmul_neg]
lemma inv_zpow (a : α) : ∀ n : ℤ, a⁻¹ ^ n = (a ^ n)⁻¹
  
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (n : ℤ)
Goal: a⁻¹ ^ n = (a ^ n)⁻¹
-- inv_zpow'
@[to_additive (attr := simp) zsmul_neg']
lemma inv_zpow' (a : α) (n : ℤ) : a⁻¹ ^ n = a ^ (-n) 
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (n : ℤ)
Goal: a⁻¹ ^ n = a ^ (-n)
-- zsmul_neg'
@[to_additive (attr := simp) zsmul_neg']
lemma inv_zpow' (a : α) (n : ℤ) : a⁻¹ ^ n = a ^ (-n) 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (n : ℤ)
Goal: n • -a = -n • a
-- nsmul_zero_sub
@[to_additive nsmul_zero_sub]
lemma one_div_pow (a : α) (n : ℕ) : (1 / a) ^ n = 1 / a ^ n 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (n : ℕ)
Goal: n • (0 - a) = 0 - n • a
-- one_div_pow
@[to_additive nsmul_zero_sub]
lemma one_div_pow (a : α) (n : ℕ) : (1 / a) ^ n = 1 / a ^ n 
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (n : ℕ)
Goal: (1 / a) ^ n = 1 / a ^ n
-- one_div_zpow
@[to_additive zsmul_zero_sub]
lemma one_div_zpow (a : α) (n : ℤ) : (1 / a) ^ n = 1 / a ^ n 
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (n : ℤ)
Goal: (1 / a) ^ n = 1 / a ^ n
-- zsmul_zero_sub
@[to_additive zsmul_zero_sub]
lemma one_div_zpow (a : α) (n : ℤ) : (1 / a) ^ n = 1 / a ^ n 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (n : ℤ)
Goal: n • (0 - a) = 0 - n • a
-- inv_eq_one
@[to_additive (attr := simp)]
theorem inv_eq_one : a⁻¹ = 1 ↔ a = 1 
Arguments: {α : Type u_1} [DivisionMonoid α] {a : α}
Goal: a⁻¹ = 1 ↔ a = 1
-- neg_eq_zero
@[to_additive (attr := simp)]
theorem inv_eq_one : a⁻¹ = 1 ↔ a = 1 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a : α}
Goal: -a = 0 ↔ a = 0
-- one_eq_inv
@[to_additive (attr := simp)]
theorem one_eq_inv : 1 = a⁻¹ ↔ a = 1 
Arguments: {α : Type u_1} [DivisionMonoid α] {a : α}
Goal: 1 = a⁻¹ ↔ a = 1
-- zero_eq_neg
@[to_additive (attr := simp)]
theorem one_eq_inv : 1 = a⁻¹ ↔ a = 1 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a : α}
Goal: 0 = -a ↔ a = 0
-- inv_ne_one
@[to_additive]
theorem inv_ne_one : a⁻¹ ≠ 1 ↔ a ≠ 1 
Arguments: {α : Type u_1} [DivisionMonoid α] {a : α}
Goal: a⁻¹ ≠ 1 ↔ a ≠ 1
-- neg_ne_zero
@[to_additive]
theorem inv_ne_one : a⁻¹ ≠ 1 ↔ a ≠ 1 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a : α}
Goal: -a ≠ 0 ↔ a ≠ 0
-- eq_of_zero_sub_eq_zero_sub
@[to_additive]
theorem eq_of_one_div_eq_one_div (h : 1 / a = 1 / b) : a = b 
Arguments: {α : Type u_1} [SubtractionMonoid α] {a b : α} (h : 0 - a = 0 - b)
Goal: a = b
-- eq_of_one_div_eq_one_div
@[to_additive]
theorem eq_of_one_div_eq_one_div (h : 1 / a = 1 / b) : a = b 
Arguments: {α : Type u_1} [DivisionMonoid α] {a b : α} (h : 1 / a = 1 / b)
Goal: a = b
-- mul_zsmul'
@[to_additive mul_zsmul'] lemma zpow_mul (a : α) : ∀ m n : ℤ, a ^ (m * n) = (a ^ m) ^ n
  
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (m n : ℤ)
Goal: (m * n) • a = n • m • a
-- zpow_mul
@[to_additive mul_zsmul'] lemma zpow_mul (a : α) : ∀ m n : ℤ, a ^ (m * n) = (a ^ m) ^ n
  
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (m n : ℤ)
Goal: a ^ (m * n) = (a ^ m) ^ n
-- zpow_mul'
@[to_additive mul_zsmul]
lemma zpow_mul' (a : α) (m n : ℤ) : a ^ (m * n) = (a ^ n) ^ m 
Arguments: {α : Type u_1} [DivisionMonoid α] (a : α) (m n : ℤ)
Goal: a ^ (m * n) = (a ^ n) ^ m
-- mul_zsmul
@[to_additive mul_zsmul]
lemma zpow_mul' (a : α) (m n : ℤ) : a ^ (m * n) = (a ^ n) ^ m 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a : α) (m n : ℤ)
Goal: (m * n) • a = m • n • a
-- sub_sub_eq_add_sub
@[to_additive, field_simps] -- The attributes are out of order on purpose
theorem div_div_eq_mul_div : a / (b / c) = a * c / b 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b c : α)
Goal: a - (b - c) = a + c - b
-- div_div_eq_mul_div
@[to_additive, field_simps] -- The attributes are out of order on purpose
theorem div_div_eq_mul_div : a / (b / c) = a * c / b 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b c : α)
Goal: a / (b / c) = a * c / b
-- sub_neg_eq_add
@[to_additive (attr := simp)]
theorem div_inv_eq_mul : a / b⁻¹ = a * b 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b : α)
Goal: a - -b = a + b
-- div_inv_eq_mul
@[to_additive (attr := simp)]
theorem div_inv_eq_mul : a / b⁻¹ = a * b 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b : α)
Goal: a / b⁻¹ = a * b
-- sub_add_eq_sub_sub_swap
@[to_additive]
theorem div_mul_eq_div_div_swap : a / (b * c) = a / c / b 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b c : α)
Goal: a - (b + c) = a - c - b
-- div_mul_eq_div_div_swap
@[to_additive]
theorem div_mul_eq_div_div_swap : a / (b * c) = a / c / b 
Arguments: {α : Type u_1} [DivisionMonoid α] (a b c : α)
Goal: a / (b * c) = a / c / b
-- neg_add
@[to_additive neg_add]
theorem mul_inv : (a * b)⁻¹ = a⁻¹ * b⁻¹ 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: -(a + b) = -a + -b
-- mul_inv
@[to_additive neg_add]
theorem mul_inv : (a * b)⁻¹ = a⁻¹ * b⁻¹ 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: (a * b)⁻¹ = a⁻¹ * b⁻¹
-- neg_sub'
@[to_additive]
theorem inv_div' : (a / b)⁻¹ = a⁻¹ / b⁻¹ 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: -(a - b) = -a - -b
-- inv_div'
@[to_additive]
theorem inv_div' : (a / b)⁻¹ = a⁻¹ / b⁻¹ 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: (a / b)⁻¹ = a⁻¹ / b⁻¹
-- sub_eq_neg_add
@[to_additive]
theorem div_eq_inv_mul : a / b = b⁻¹ * a 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: a - b = -b + a
-- div_eq_inv_mul
@[to_additive]
theorem div_eq_inv_mul : a / b = b⁻¹ * a 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: a / b = b⁻¹ * a
-- neg_add_eq_sub
@[to_additive]
theorem inv_mul_eq_div : a⁻¹ * b = b / a 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: -a + b = b - a
-- inv_mul_eq_div
@[to_additive]
theorem inv_mul_eq_div : a⁻¹ * b = b / a 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: a⁻¹ * b = b / a
-- inv_mul'
@[to_additive]
theorem inv_mul' : (a * b)⁻¹ = a⁻¹ / b 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: (a * b)⁻¹ = a⁻¹ / b
-- neg_add'
@[to_additive]
theorem inv_mul' : (a * b)⁻¹ = a⁻¹ / b 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: -(a + b) = -a - b
-- neg_sub_neg
@[to_additive]
theorem inv_div_inv : a⁻¹ / b⁻¹ = b / a 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: -a - -b = b - a
-- inv_div_inv
@[to_additive]
theorem inv_div_inv : a⁻¹ / b⁻¹ = b / a 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: a⁻¹ / b⁻¹ = b / a
-- neg_neg_sub_neg
@[to_additive]
theorem inv_inv_div_inv : (a⁻¹ / b⁻¹)⁻¹ = a / b 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: -(-a - -b) = a - b
-- inv_inv_div_inv
@[to_additive]
theorem inv_inv_div_inv : (a⁻¹ / b⁻¹)⁻¹ = a / b 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: (a⁻¹ / b⁻¹)⁻¹ = a / b
-- zero_sub_add_zero_sub
@[to_additive]
theorem one_div_mul_one_div : 1 / a * (1 / b) = 1 / (a * b) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: 0 - a + (0 - b) = 0 - (a + b)
-- one_div_mul_one_div
@[to_additive]
theorem one_div_mul_one_div : 1 / a * (1 / b) = 1 / (a * b) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: 1 / a * (1 / b) = 1 / (a * b)
-- sub_right_comm
@[to_additive]
theorem div_right_comm : a / b / c = a / c / b 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - b - c = a - c - b
-- div_right_comm
@[to_additive]
theorem div_right_comm : a / b / c = a / c / b 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / b / c = a / c / b
-- div_div
@[to_additive, field_simps]
theorem div_div : a / b / c = a / (b * c) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / b / c = a / (b * c)
-- sub_sub
@[to_additive, field_simps]
theorem div_div : a / b / c = a / (b * c) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - b - c = a - (b + c)
-- div_mul
@[to_additive]
theorem div_mul : a / b * c = a / (b / c) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / b * c = a / (b / c)
-- sub_add
@[to_additive]
theorem div_mul : a / b * c = a / (b / c) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - b + c = a - (b - c)
-- mul_div_left_comm
@[to_additive]
theorem mul_div_left_comm : a * (b / c) = b * (a / c) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a * (b / c) = b * (a / c)
-- add_sub_left_comm
@[to_additive]
theorem mul_div_left_comm : a * (b / c) = b * (a / c) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a + (b - c) = b + (a - c)
-- mul_div_right_comm
@[to_additive]
theorem mul_div_right_comm : a * b / c = a / c * b 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a * b / c = a / c * b
-- add_sub_right_comm
@[to_additive]
theorem mul_div_right_comm : a * b / c = a / c * b 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a + b - c = a - c + b
-- div_mul_eq_div_div
@[to_additive]
theorem div_mul_eq_div_div : a / (b * c) = a / b / c 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / (b * c) = a / b / c
-- sub_add_eq_sub_sub
@[to_additive]
theorem div_mul_eq_div_div : a / (b * c) = a / b / c 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - (b + c) = a - b - c
-- div_mul_eq_mul_div
@[to_additive, field_simps]
theorem div_mul_eq_mul_div : a / b * c = a * c / b 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / b * c = a * c / b
-- sub_add_eq_add_sub
@[to_additive, field_simps]
theorem div_mul_eq_mul_div : a / b * c = a * c / b 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - b + c = a + c - b
-- zero_sub_add_eq_sub
@[to_additive]
theorem one_div_mul_eq_div : 1 / a * b = b / a 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α)
Goal: 0 - a + b = b - a
-- one_div_mul_eq_div
@[to_additive]
theorem one_div_mul_eq_div : 1 / a * b = b / a 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α)
Goal: 1 / a * b = b / a
-- mul_comm_div
@[to_additive]
theorem mul_comm_div : a / b * c = a * (c / b) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / b * c = a * (c / b)
-- add_comm_sub
@[to_additive]
theorem mul_comm_div : a / b * c = a * (c / b) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - b + c = a + (c - b)
-- div_mul_comm
@[to_additive]
theorem div_mul_comm : a / b * c = c / b * a 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / b * c = c / b * a
-- sub_add_comm
@[to_additive]
theorem div_mul_comm : a / b * c = c / b * a 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - b + c = c - b + a
-- sub_add_eq_sub_add_zero_sub
@[to_additive]
theorem div_mul_eq_div_mul_one_div : a / (b * c) = a / b * (1 / c) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c : α)
Goal: a - (b + c) = a - b + (0 - c)
-- div_mul_eq_div_mul_one_div
@[to_additive]
theorem div_mul_eq_div_mul_one_div : a / (b * c) = a / b * (1 / c) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c : α)
Goal: a / (b * c) = a / b * (1 / c)
-- sub_sub_sub_eq
@[to_additive]
theorem div_div_div_eq : a / b / (c / d) = a * d / (b * c) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c d : α)
Goal: a - b - (c - d) = a + d - (b + c)
-- div_div_div_eq
@[to_additive]
theorem div_div_div_eq : a / b / (c / d) = a * d / (b * c) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c d : α)
Goal: a / b / (c / d) = a * d / (b * c)
-- sub_sub_sub_comm
@[to_additive]
theorem div_div_div_comm : a / b / (c / d) = a / c / (b / d) 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b c d : α)
Goal: a - b - (c - d) = a - c - (b - d)