ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- div_div_div_comm
@[to_additive]
theorem div_div_div_comm : a / b / (c / d) = a / c / (b / d) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c d : α)
Goal: a / b / (c / d) = a / c / (b / d)
-- div_mul_div_comm
@[to_additive]
theorem div_mul_div_comm : a / b * (c / d) = a * c / (b * d) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c d : α)
Goal: a / b * (c / d) = a * c / (b * d)
-- sub_add_sub_comm
@[to_additive]
theorem div_mul_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)
-- mul_div_mul_comm
@[to_additive]
theorem mul_div_mul_comm : a * b / (c * d) = a / c * (b / d) 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b c d : α)
Goal: a * b / (c * d) = a / c * (b / d)
-- add_sub_add_comm
@[to_additive]
theorem mul_div_mul_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)
-- mul_zpow
@[to_additive zsmul_add] lemma mul_zpow : ∀ n : ℤ, (a * b) ^ n = a ^ n * b ^ n
  
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α) (n : ℤ)
Goal: (a * b) ^ n = a ^ n * b ^ n
-- zsmul_add
@[to_additive zsmul_add] lemma mul_zpow : ∀ n : ℤ, (a * b) ^ n = a ^ n * b ^ n
  
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α) (n : ℤ)
Goal: n • (a + b) = n • a + n • b
-- nsmul_sub
@[to_additive (attr := simp) nsmul_sub]
lemma div_pow (a b : α) (n : ℕ) : (a / b) ^ n = a ^ n / b ^ n 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α) (n : ℕ)
Goal: n • (a - b) = n • a - n • b
-- div_pow
@[to_additive (attr := simp) nsmul_sub]
lemma div_pow (a b : α) (n : ℕ) : (a / b) ^ n = a ^ n / b ^ n 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α) (n : ℕ)
Goal: (a / b) ^ n = a ^ n / b ^ n
-- zsmul_sub
@[to_additive (attr := simp) zsmul_sub]
lemma div_zpow (a b : α) (n : ℤ) : (a / b) ^ n = a ^ n / b ^ n 
Arguments: {α : Type u_1} [SubtractionCommMonoid α] (a b : α) (n : ℤ)
Goal: n • (a - b) = n • a - n • b
-- div_zpow
@[to_additive (attr := simp) zsmul_sub]
lemma div_zpow (a b : α) (n : ℤ) : (a / b) ^ n = a ^ n / b ^ n 
Arguments: {α : Type u_1} [DivisionCommMonoid α] (a b : α) (n : ℤ)
Goal: (a / b) ^ n = a ^ n / b ^ n
-- sub_eq_neg_self
@[to_additive (attr := simp)]
theorem div_eq_inv_self : a / b = b⁻¹ ↔ a = 1 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a - b = -b ↔ a = 0
-- div_eq_inv_self
@[to_additive (attr := simp)]
theorem div_eq_inv_self : a / b = b⁻¹ ↔ a = 1 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a / b = b⁻¹ ↔ a = 1
-- add_left_surjective
@[to_additive]
theorem mul_left_surjective (a : G) : Surjective (a * ·) 
Arguments: {G : Type u_3} [AddGroup G] (a : G)
Goal: Function.Surjective fun x => a + x
-- mul_left_surjective
@[to_additive]
theorem mul_left_surjective (a : G) : Surjective (a * ·) 
Arguments: {G : Type u_3} [Group G] (a : G)
Goal: Function.Surjective fun x => a * x
-- mul_right_surjective
@[to_additive]
theorem mul_right_surjective (a : G) : Function.Surjective fun x ↦ x * a 
Arguments: {G : Type u_3} [Group G] (a : G)
Goal: Function.Surjective fun x => x * a
-- add_right_surjective
@[to_additive]
theorem mul_right_surjective (a : G) : Function.Surjective fun x ↦ x * a 
Arguments: {G : Type u_3} [AddGroup G] (a : G)
Goal: Function.Surjective fun x => x + a
-- eq_mul_inv_of_mul_eq
@[to_additive]
theorem eq_mul_inv_of_mul_eq (h : a * c = b) : a = b * c⁻¹ 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a * c = b)
Goal: a = b * c⁻¹
-- eq_add_neg_of_add_eq
@[to_additive]
theorem eq_mul_inv_of_mul_eq (h : a * c = b) : a = b * c⁻¹ 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a + c = b)
Goal: a = b + -c
-- eq_inv_mul_of_mul_eq
@[to_additive]
theorem eq_inv_mul_of_mul_eq (h : b * a = c) : a = b⁻¹ * c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : b * a = c)
Goal: a = b⁻¹ * c
-- eq_neg_add_of_add_eq
@[to_additive]
theorem eq_inv_mul_of_mul_eq (h : b * a = c) : a = b⁻¹ * c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : b + a = c)
Goal: a = -b + c
-- inv_mul_eq_of_eq_mul
@[to_additive]
theorem inv_mul_eq_of_eq_mul (h : b = a * c) : a⁻¹ * b = c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : b = a * c)
Goal: a⁻¹ * b = c
-- neg_add_eq_of_eq_add
@[to_additive]
theorem inv_mul_eq_of_eq_mul (h : b = a * c) : a⁻¹ * b = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : b = a + c)
Goal: -a + b = c
-- mul_inv_eq_of_eq_mul
@[to_additive]
theorem mul_inv_eq_of_eq_mul (h : a = c * b) : a * b⁻¹ = c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a = c * b)
Goal: a * b⁻¹ = c
-- add_neg_eq_of_eq_add
@[to_additive]
theorem mul_inv_eq_of_eq_mul (h : a = c * b) : a * b⁻¹ = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a = c + b)
Goal: a + -b = c
-- eq_add_of_add_neg_eq
@[to_additive]
theorem eq_mul_of_mul_inv_eq (h : a * c⁻¹ = b) : a = b * c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a + -c = b)
Goal: a = b + c
-- eq_mul_of_mul_inv_eq
@[to_additive]
theorem eq_mul_of_mul_inv_eq (h : a * c⁻¹ = b) : a = b * c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a * c⁻¹ = b)
Goal: a = b * c
-- eq_mul_of_inv_mul_eq
@[to_additive]
theorem eq_mul_of_inv_mul_eq (h : b⁻¹ * a = c) : a = b * c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : b⁻¹ * a = c)
Goal: a = b * c
-- eq_add_of_neg_add_eq
@[to_additive]
theorem eq_mul_of_inv_mul_eq (h : b⁻¹ * a = c) : a = b * c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : -b + a = c)
Goal: a = b + c
-- add_eq_of_eq_neg_add
@[to_additive]
theorem mul_eq_of_eq_inv_mul (h : b = a⁻¹ * c) : a * b = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : b = -a + c)
Goal: a + b = c
-- mul_eq_of_eq_inv_mul
@[to_additive]
theorem mul_eq_of_eq_inv_mul (h : b = a⁻¹ * c) : a * b = c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : b = a⁻¹ * c)
Goal: a * b = c
-- add_eq_of_eq_add_neg
@[to_additive]
theorem mul_eq_of_eq_mul_inv (h : a = c * b⁻¹) : a * b = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a = c + -b)
Goal: a + b = c
-- mul_eq_of_eq_mul_inv
@[to_additive]
theorem mul_eq_of_eq_mul_inv (h : a = c * b⁻¹) : a * b = c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a = c * b⁻¹)
Goal: a * b = c
-- add_eq_zero_iff_eq_neg
@[to_additive]
theorem mul_eq_one_iff_eq_inv : a * b = 1 ↔ a = b⁻¹ 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a + b = 0 ↔ a = -b
-- mul_eq_one_iff_eq_inv
@[to_additive]
theorem mul_eq_one_iff_eq_inv : a * b = 1 ↔ a = b⁻¹ 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a * b = 1 ↔ a = b⁻¹
-- mul_eq_one_iff_inv_eq
@[to_additive]
theorem mul_eq_one_iff_inv_eq : a * b = 1 ↔ a⁻¹ = b 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a * b = 1 ↔ a⁻¹ = b
-- add_eq_zero_iff_neg_eq
@[to_additive]
theorem mul_eq_one_iff_inv_eq : a * b = 1 ↔ a⁻¹ = b 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a + b = 0 ↔ -a = b
-- eq_inv_iff_mul_eq_one
@[to_additive]
theorem eq_inv_iff_mul_eq_one : a = b⁻¹ ↔ a * b = 1 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a = b⁻¹ ↔ a * b = 1
-- eq_neg_iff_add_eq_zero
@[to_additive]
theorem eq_inv_iff_mul_eq_one : a = b⁻¹ ↔ a * b = 1 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a = -b ↔ a + b = 0
-- inv_eq_iff_mul_eq_one
@[to_additive]
theorem inv_eq_iff_mul_eq_one : a⁻¹ = b ↔ a * b = 1 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a⁻¹ = b ↔ a * b = 1
-- neg_eq_iff_add_eq_zero
@[to_additive]
theorem inv_eq_iff_mul_eq_one : a⁻¹ = b ↔ a * b = 1 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: -a = b ↔ a + b = 0
-- eq_add_neg_iff_add_eq
@[to_additive]
theorem eq_mul_inv_iff_mul_eq : a = b * c⁻¹ ↔ a * c = b 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: a = b + -c ↔ a + c = b
-- eq_mul_inv_iff_mul_eq
@[to_additive]
theorem eq_mul_inv_iff_mul_eq : a = b * c⁻¹ ↔ a * c = b 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: a = b * c⁻¹ ↔ a * c = b
-- eq_inv_mul_iff_mul_eq
@[to_additive]
theorem eq_inv_mul_iff_mul_eq : a = b⁻¹ * c ↔ b * a = c 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: a = b⁻¹ * c ↔ b * a = c
-- eq_neg_add_iff_add_eq
@[to_additive]
theorem eq_inv_mul_iff_mul_eq : a = b⁻¹ * c ↔ b * a = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: a = -b + c ↔ b + a = c
-- neg_add_eq_iff_eq_add
@[to_additive]
theorem inv_mul_eq_iff_eq_mul : a⁻¹ * b = c ↔ b = a * c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: -a + b = c ↔ b = a + c
-- inv_mul_eq_iff_eq_mul
@[to_additive]
theorem inv_mul_eq_iff_eq_mul : a⁻¹ * b = c ↔ b = a * c 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: a⁻¹ * b = c ↔ b = a * c
-- mul_inv_eq_iff_eq_mul
@[to_additive]
theorem mul_inv_eq_iff_eq_mul : a * b⁻¹ = c ↔ a = c * b 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: a * b⁻¹ = c ↔ a = c * b
-- add_neg_eq_iff_eq_add
@[to_additive]
theorem mul_inv_eq_iff_eq_mul : a * b⁻¹ = c ↔ a = c * b 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: a + -b = c ↔ a = c + b
-- mul_inv_eq_one
@[to_additive]
theorem mul_inv_eq_one : a * b⁻¹ = 1 ↔ a = b 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a * b⁻¹ = 1 ↔ a = b
-- add_neg_eq_zero
@[to_additive]
theorem mul_inv_eq_one : a * b⁻¹ = 1 ↔ a = b 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a + -b = 0 ↔ a = b
-- neg_add_eq_zero
@[to_additive]
theorem inv_mul_eq_one : a⁻¹ * b = 1 ↔ a = b 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: -a + b = 0 ↔ a = b
-- inv_mul_eq_one
@[to_additive]
theorem inv_mul_eq_one : a⁻¹ * b = 1 ↔ a = b 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a⁻¹ * b = 1 ↔ a = b
-- conj_eq_one_iff
@[to_additive (attr := simp)]
theorem conj_eq_one_iff : a * b * a⁻¹ = 1 ↔ b = 1 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a * b * a⁻¹ = 1 ↔ b = 1
-- conj_eq_zero_iff
@[to_additive (attr := simp)]
theorem conj_eq_one_iff : a * b * a⁻¹ = 1 ↔ b = 1 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a + b + -a = 0 ↔ b = 0
-- sub_left_injective
@[to_additive]
theorem div_left_injective : Function.Injective fun a ↦ a / b 
Arguments: {G : Type u_3} [AddGroup G] {b : G}
Goal: Function.Injective fun a => a - b
-- div_left_injective
@[to_additive]
theorem div_left_injective : Function.Injective fun a ↦ a / b 
Arguments: {G : Type u_3} [Group G] {b : G}
Goal: Function.Injective fun a => a / b
-- div_right_injective
@[to_additive]
theorem div_right_injective : Function.Injective fun a ↦ b / a 
Arguments: {G : Type u_3} [Group G] {b : G}
Goal: Function.Injective fun a => b / a
-- sub_right_injective
@[to_additive]
theorem div_right_injective : Function.Injective fun a ↦ b / a 
Arguments: {G : Type u_3} [AddGroup G] {b : G}
Goal: Function.Injective fun a => b - a
-- div_mul_cancel
@[to_additive (attr := simp)]
theorem div_mul_cancel (a b : G) : a / b * b = a 
Arguments: {G : Type u_3} [Group G] (a b : G)
Goal: a / b * b = a
-- sub_add_cancel
@[to_additive (attr := simp)]
theorem div_mul_cancel (a b : G) : a / b * b = a 
Arguments: {G : Type u_3} [AddGroup G] (a b : G)
Goal: a - b + b = a
-- div_self'
@[to_additive (attr := simp) sub_self]
theorem div_self' (a : G) : a / a = 1 
Arguments: {G : Type u_3} [Group G] (a : G)
Goal: a / a = 1
-- sub_self
@[to_additive (attr := simp) sub_self]
theorem div_self' (a : G) : a / a = 1 
Arguments: {G : Type u_3} [AddGroup G] (a : G)
Goal: a - a = 0
-- mul_div_cancel_right
@[to_additive (attr := simp)]
theorem mul_div_cancel_right (a b : G) : a * b / b = a 
Arguments: {G : Type u_3} [Group G] (a b : G)
Goal: a * b / b = a
-- add_sub_cancel_right
@[to_additive (attr := simp)]
theorem mul_div_cancel_right (a b : G) : a * b / b = a 
Arguments: {G : Type u_3} [AddGroup G] (a b : G)
Goal: a + b - b = a
-- div_mul_cancel_right
@[to_additive (attr := simp)]
lemma div_mul_cancel_right (a b : G) : a / (b * a) = b⁻¹ 
Arguments: {G : Type u_3} [Group G] (a b : G)
Goal: a / (b * a) = b⁻¹
-- sub_add_cancel_right
@[to_additive (attr := simp)]
lemma div_mul_cancel_right (a b : G) : a / (b * a) = b⁻¹ 
Arguments: {G : Type u_3} [AddGroup G] (a b : G)
Goal: a - (b + a) = -b
-- add_sub_add_right_eq_sub
@[to_additive (attr := simp)]
theorem mul_div_mul_right_eq_div (a b c : G) : a * c / (b * c) = a / b 
Arguments: {G : Type u_3} [AddGroup G] (a b c : G)
Goal: a + c - (b + c) = a - b
-- mul_div_mul_right_eq_div
@[to_additive (attr := simp)]
theorem mul_div_mul_right_eq_div (a b c : G) : a * c / (b * c) = a / b 
Arguments: {G : Type u_3} [Group G] (a b c : G)
Goal: a * c / (b * c) = a / b
-- eq_div_of_mul_eq'
@[to_additive eq_sub_of_add_eq]
theorem eq_div_of_mul_eq' (h : a * c = b) : a = b / c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a * c = b)
Goal: a = b / c
-- eq_sub_of_add_eq
@[to_additive eq_sub_of_add_eq]
theorem eq_div_of_mul_eq' (h : a * c = b) : a = b / c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a + c = b)
Goal: a = b - c
-- sub_eq_of_eq_add
@[to_additive sub_eq_of_eq_add]
theorem div_eq_of_eq_mul'' (h : a = c * b) : a / b = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a = c + b)
Goal: a - b = c
-- div_eq_of_eq_mul''
@[to_additive sub_eq_of_eq_add]
theorem div_eq_of_eq_mul'' (h : a = c * b) : a / b = c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a = c * b)
Goal: a / b = c
-- eq_mul_of_div_eq
@[to_additive]
theorem eq_mul_of_div_eq (h : a / c = b) : a = b * c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a / c = b)
Goal: a = b * c
-- eq_add_of_sub_eq
@[to_additive]
theorem eq_mul_of_div_eq (h : a / c = b) : a = b * c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a - c = b)
Goal: a = b + c
-- mul_eq_of_eq_div
@[to_additive]
theorem mul_eq_of_eq_div (h : a = c / b) : a * b = c 
Arguments: {G : Type u_3} [Group G] {a b c : G} (h : a = c / b)
Goal: a * b = c
-- add_eq_of_eq_sub
@[to_additive]
theorem mul_eq_of_eq_div (h : a = c / b) : a * b = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G} (h : a = c - b)
Goal: a + b = c
-- div_right_inj
@[to_additive (attr := simp)]
theorem div_right_inj : a / b = a / c ↔ b = c 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: a / b = a / c ↔ b = c
-- sub_right_inj
@[to_additive (attr := simp)]
theorem div_right_inj : a / b = a / c ↔ b = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: a - b = a - c ↔ b = c
-- sub_left_inj
@[to_additive (attr := simp)]
theorem div_left_inj : b / a = c / a ↔ b = c 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: b - a = c - a ↔ b = c
-- div_left_inj
@[to_additive (attr := simp)]
theorem div_left_inj : b / a = c / a ↔ b = c 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: b / a = c / a ↔ b = c
-- sub_add_sub_cancel
@[to_additive (attr := simp) sub_add_sub_cancel]
theorem div_mul_div_cancel' (a b c : G) : a / b * (b / c) = a / c 
Arguments: {G : Type u_3} [AddGroup G] (a b c : G)
Goal: a - b + (b - c) = a - c
-- div_mul_div_cancel'
@[to_additive (attr := simp) sub_add_sub_cancel]
theorem div_mul_div_cancel' (a b c : G) : a / b * (b / c) = a / c 
Arguments: {G : Type u_3} [Group G] (a b c : G)
Goal: a / b * (b / c) = a / c
-- sub_sub_sub_cancel_right
@[to_additive (attr := simp) sub_sub_sub_cancel_right]
theorem div_div_div_cancel_right' (a b c : G) : a / c / (b / c) = a / b 
Arguments: {G : Type u_3} [AddGroup G] (a b c : G)
Goal: a - c - (b - c) = a - b
-- div_div_div_cancel_right'
@[to_additive (attr := simp) sub_sub_sub_cancel_right]
theorem div_div_div_cancel_right' (a b c : G) : a / c / (b / c) = a / b 
Arguments: {G : Type u_3} [Group G] (a b c : G)
Goal: a / c / (b / c) = a / b
-- sub_eq_zero
@[to_additive]
theorem div_eq_one : a / b = 1 ↔ a = b 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a - b = 0 ↔ a = b
-- div_eq_one
@[to_additive]
theorem div_eq_one : a / b = 1 ↔ a = b 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a / b = 1 ↔ a = b
-- div_ne_one
@[to_additive]
theorem div_ne_one : a / b ≠ 1 ↔ a ≠ b 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a / b ≠ 1 ↔ a ≠ b
-- sub_ne_zero
@[to_additive]
theorem div_ne_one : a / b ≠ 1 ↔ a ≠ b 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a - b ≠ 0 ↔ a ≠ b
-- sub_eq_self
@[to_additive (attr := simp)]
theorem div_eq_self : a / b = a ↔ b = 1 
Arguments: {G : Type u_3} [AddGroup G] {a b : G}
Goal: a - b = a ↔ b = 0
-- div_eq_self
@[to_additive (attr := simp)]
theorem div_eq_self : a / b = a ↔ b = 1 
Arguments: {G : Type u_3} [Group G] {a b : G}
Goal: a / b = a ↔ b = 1
-- eq_sub_iff_add_eq
@[to_additive eq_sub_iff_add_eq]
theorem eq_div_iff_mul_eq' : a = b / c ↔ a * c = b 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: a = b - c ↔ a + c = b
-- eq_div_iff_mul_eq'
@[to_additive eq_sub_iff_add_eq]
theorem eq_div_iff_mul_eq' : a = b / c ↔ a * c = b 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: a = b / c ↔ a * c = b
-- div_eq_iff_eq_mul
@[to_additive]
theorem div_eq_iff_eq_mul : a / b = c ↔ a = c * b 
Arguments: {G : Type u_3} [Group G] {a b c : G}
Goal: a / b = c ↔ a = c * b
-- sub_eq_iff_eq_add
@[to_additive]
theorem div_eq_iff_eq_mul : a / b = c ↔ a = c * b 
Arguments: {G : Type u_3} [AddGroup G] {a b c : G}
Goal: a - b = c ↔ a = c + b
-- eq_iff_eq_of_sub_eq_sub
@[to_additive]
theorem eq_iff_eq_of_div_eq_div (H : a / b = c / d) : a = b ↔ c = d 
Arguments: {G : Type u_3} [AddGroup G] {a b c d : G} (H : a - b = c - d)
Goal: a = b ↔ c = d
-- eq_iff_eq_of_div_eq_div
@[to_additive]
theorem eq_iff_eq_of_div_eq_div (H : a / b = c / d) : a = b ↔ c = d 
Arguments: {G : Type u_3} [Group G] {a b c d : G} (H : a / b = c / d)
Goal: a = b ↔ c = d
-- leftInverse_sub_add_left
@[to_additive]
theorem leftInverse_div_mul_left (c : G) : Function.LeftInverse (fun x ↦ x / c) fun x ↦ x * c 
Arguments: {G : Type u_3} [AddGroup G] (c : G)
Goal: Function.LeftInverse (fun x => x - c) fun x => x + c
-- leftInverse_div_mul_left
@[to_additive]
theorem leftInverse_div_mul_left (c : G) : Function.LeftInverse (fun x ↦ x / c) fun x ↦ x * c 
Arguments: {G : Type u_3} [Group G] (c : G)
Goal: Function.LeftInverse (fun x => x / c) fun x => x * c
-- leftInverse_mul_left_div
@[to_additive]
theorem leftInverse_mul_left_div (c : G) : Function.LeftInverse (fun x ↦ x * c) fun x ↦ x / c 
Arguments: {G : Type u_3} [Group G] (c : G)
Goal: Function.LeftInverse (fun x => x * c) fun x => x / c
-- leftInverse_add_left_sub
@[to_additive]
theorem leftInverse_mul_left_div (c : G) : Function.LeftInverse (fun x ↦ x * c) fun x ↦ x / c 
Arguments: {G : Type u_3} [AddGroup G] (c : G)
Goal: Function.LeftInverse (fun x => x + c) fun x => x - c
-- leftInverse_add_right_neg_add
@[to_additive]
theorem leftInverse_mul_right_inv_mul (c : G) :
    Function.LeftInverse (fun x ↦ c * x) fun x ↦ c⁻¹ * x 
Arguments: {G : Type u_3} [AddGroup G] (c : G)
Goal: Function.LeftInverse (fun x => c + x) fun x => -c + x
-- leftInverse_mul_right_inv_mul
@[to_additive]
theorem leftInverse_mul_right_inv_mul (c : G) :
    Function.LeftInverse (fun x ↦ c * x) fun x ↦ c⁻¹ * x 
Arguments: {G : Type u_3} [Group G] (c : G)
Goal: Function.LeftInverse (fun x => c * x) fun x => c⁻¹ * x
-- leftInverse_inv_mul_mul_right
@[to_additive]
theorem leftInverse_inv_mul_mul_right (c : G) :
    Function.LeftInverse (fun x ↦ c⁻¹ * x) fun x ↦ c * x 
Arguments: {G : Type u_3} [Group G] (c : G)
Goal: Function.LeftInverse (fun x => c⁻¹ * x) fun x => c * x
-- leftInverse_neg_add_add_right
@[to_additive]
theorem leftInverse_inv_mul_mul_right (c : G) :
    Function.LeftInverse (fun x ↦ c⁻¹ * x) fun x ↦ c * x 
Arguments: {G : Type u_3} [AddGroup G] (c : G)
Goal: Function.LeftInverse (fun x => -c + x) fun x => c + x
-- pow_natAbs_eq_one
@[to_additive (attr := simp) natAbs_nsmul_eq_zero]
lemma pow_natAbs_eq_one : a ^ n.natAbs = 1 ↔ a ^ n = 1 
Arguments: {G : Type u_3} [Group G] {a : G} {n : ℤ}
Goal: a ^ n.natAbs = 1 ↔ a ^ n = 1
-- natAbs_nsmul_eq_zero
@[to_additive (attr := simp) natAbs_nsmul_eq_zero]
lemma pow_natAbs_eq_one : a ^ n.natAbs = 1 ↔ a ^ n = 1 
Arguments: {G : Type u_3} [AddGroup G] {a : G} {n : ℤ}
Goal: n.natAbs • a = 0 ↔ n • a = 0
-- exists_nsmul_eq_zero_of_zsmul_eq_zero
@[to_additive, deprecated pow_natAbs_eq_one (since := "2024-02-14")]
lemma exists_pow_eq_one_of_zpow_eq_one (hn : n ≠ 0) (h : a ^ n = 1) :
    ∃ n : ℕ, 0 < n ∧ a ^ n = 1 
Arguments: {G : Type u_3} [AddGroup G] {a : G} {n : ℤ} (hn : n ≠ 0) (h : n • a = 0)
Goal: ∃ n, 0 < n ∧ n • a = 0
-- exists_pow_eq_one_of_zpow_eq_one
@[to_additive, deprecated pow_natAbs_eq_one (since := "2024-02-14")]
lemma exists_pow_eq_one_of_zpow_eq_one (hn : n ≠ 0) (h : a ^ n = 1) :
    ∃ n : ℕ, 0 < n ∧ a ^ n = 1 
Arguments: {G : Type u_3} [Group G] {a : G} {n : ℤ} (hn : n ≠ 0) (h : a ^ n = 1)
Goal: ∃ n, 0 < n ∧ a ^ n = 1
-- sub_nsmul
@[to_additive sub_nsmul]
lemma pow_sub (a : G) {m n : ℕ} (h : n ≤ m) : a ^ (m - n) = a ^ m * (a ^ n)⁻¹ 
Arguments: {G : Type u_3} [AddGroup G] (a : G) {m n : ℕ} (h : n ≤ m)
Goal: (m - n) • a = m • a + -(n • a)
-- pow_sub
@[to_additive sub_nsmul]
lemma pow_sub (a : G) {m n : ℕ} (h : n ≤ m) : a ^ (m - n) = a ^ m * (a ^ n)⁻¹ 
Arguments: {G : Type u_3} [Group G] (a : G) {m n : ℕ} (h : n ≤ m)
Goal: a ^ (m - n) = a ^ m * (a ^ n)⁻¹
-- inv_pow_sub
@[to_additive sub_nsmul_neg]
theorem inv_pow_sub (a : G) {m n : ℕ} (h : n ≤ m) : a⁻¹ ^ (m - n) = (a ^ m)⁻¹ * a ^ n 
Arguments: {G : Type u_3} [Group G] (a : G) {m n : ℕ} (h : n ≤ m)
Goal: a⁻¹ ^ (m - n) = (a ^ m)⁻¹ * a ^ n
-- sub_nsmul_neg
@[to_additive sub_nsmul_neg]
theorem inv_pow_sub (a : G) {m n : ℕ} (h : n ≤ m) : a⁻¹ ^ (m - n) = (a ^ m)⁻¹ * a ^ n 
Arguments: {G : Type u_3} [AddGroup G] (a : G) {m n : ℕ} (h : n ≤ m)
Goal: (m - n) • -a = -(m • a) + n • a
-- add_one_zsmul
@[to_additive add_one_zsmul]
lemma zpow_add_one (a : G) : ∀ n : ℤ, a ^ (n + 1) = a ^ n * a
  
Arguments: {G : Type u_3} [AddGroup G] (a : G) (n : ℤ)
Goal: (n + 1) • a = n • a + a
-- zpow_add_one
@[to_additive add_one_zsmul]
lemma zpow_add_one (a : G) : ∀ n : ℤ, a ^ (n + 1) = a ^ n * a
  
Arguments: {G : Type u_3} [Group G] (a : G) (n : ℤ)
Goal: a ^ (n + 1) = a ^ n * a
-- sub_one_zsmul
@[to_additive sub_one_zsmul]
lemma zpow_sub_one (a : G) (n : ℤ) : a ^ (n - 1) = a ^ n * a⁻¹ 
Arguments: {G : Type u_3} [AddGroup G] (a : G) (n : ℤ)
Goal: (n - 1) • a = n • a + -a
-- zpow_sub_one
@[to_additive sub_one_zsmul]
lemma zpow_sub_one (a : G) (n : ℤ) : a ^ (n - 1) = a ^ n * a⁻¹ 
Arguments: {G : Type u_3} [Group G] (a : G) (n : ℤ)
Goal: a ^ (n - 1) = a ^ n * a⁻¹
-- zpow_add
@[to_additive add_zsmul]
lemma zpow_add (a : G) (m n : ℤ) : a ^ (m + n) = a ^ m * a ^ n 
Arguments: {G : Type u_3} [Group G] (a : G) (m n : ℤ)
Goal: a ^ (m + n) = a ^ m * a ^ n
-- add_zsmul
@[to_additive add_zsmul]
lemma zpow_add (a : G) (m n : ℤ) : a ^ (m + n) = a ^ m * a ^ n 
Arguments: {G : Type u_3} [AddGroup G] (a : G) (m n : ℤ)
Goal: (m + n) • a = m • a + n • a
-- zpow_one_add
@[to_additive one_add_zsmul]
lemma zpow_one_add (a : G) (n : ℤ) : a ^ (1 + n) = a * a ^ n 
Arguments: {G : Type u_3} [Group G] (a : G) (n : ℤ)
Goal: a ^ (1 + n) = a * a ^ n
-- one_add_zsmul
@[to_additive one_add_zsmul]
lemma zpow_one_add (a : G) (n : ℤ) : a ^ (1 + n) = a * a ^ n 
Arguments: {G : Type u_3} [AddGroup G] (a : G) (n : ℤ)
Goal: (1 + n) • a = a + n • a
-- mul_self_zpow
@[to_additive add_zsmul_self]
lemma mul_self_zpow (a : G) (n : ℤ) : a * a ^ n = a ^ (n + 1) 
Arguments: {G : Type u_3} [Group G] (a : G) (n : ℤ)
Goal: a * a ^ n = a ^ (n + 1)
-- add_zsmul_self
@[to_additive add_zsmul_self]
lemma mul_self_zpow (a : G) (n : ℤ) : a * a ^ n = a ^ (n + 1) 
Arguments: {G : Type u_3} [AddGroup G] (a : G) (n : ℤ)
Goal: a + n • a = (n + 1) • a
-- add_self_zsmul
@[to_additive add_self_zsmul]
lemma mul_zpow_self (a : G) (n : ℤ) : a ^ n * a = a ^ (n + 1) 
Arguments: {G : Type u_3} [AddGroup G] (a : G) (n : ℤ)
Goal: n • a + a = (n + 1) • a
-- mul_zpow_self
@[to_additive add_self_zsmul]
lemma mul_zpow_self (a : G) (n : ℤ) : a ^ n * a = a ^ (n + 1) 
Arguments: {G : Type u_3} [Group G] (a : G) (n : ℤ)
Goal: a ^ n * a = a ^ (n + 1)
-- sub_zsmul
@[to_additive sub_zsmul] lemma zpow_sub (a : G) (m n : ℤ) : a ^ (m - n) = a ^ m * (a ^ n)⁻¹ 
Arguments: {G : Type u_3} [AddGroup G] (a : G) (m n : ℤ)
Goal: (m - n) • a = m • a + -(n • a)
-- zpow_sub
@[to_additive sub_zsmul] lemma zpow_sub (a : G) (m n : ℤ) : a ^ (m - n) = a ^ m * (a ^ n)⁻¹ 
Arguments: {G : Type u_3} [Group G] (a : G) (m n : ℤ)
Goal: a ^ (m - n) = a ^ m * (a ^ n)⁻¹
-- zsmul_add_comm
@[to_additive] lemma zpow_mul_comm (a : G) (m n : ℤ) : a ^ m * a ^ n = a ^ n * a ^ m 
Arguments: {G : Type u_3} [AddGroup G] (a : G) (m n : ℤ)
Goal: m • a + n • a = n • a + m • a