ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- IsUnit.mul_left_inj
@[to_additive]
theorem mul_left_inj (h : IsUnit a) : b * a = c * a ↔ b = c 
Arguments: {M : Type u_1} [Monoid M] {a b c : M} (h : IsUnit a)
Goal: b * a = c * a ↔ b = c
-- IsAddUnit.add_left_inj
@[to_additive]
theorem mul_left_inj (h : IsUnit a) : b * a = c * a ↔ b = c 
Arguments: {M : Type u_1} [AddMonoid M] {a b c : M} (h : IsAddUnit a)
Goal: b + a = c + a ↔ b = c
-- IsAddUnit.add_right_inj
@[to_additive]
theorem mul_right_inj (h : IsUnit a) : a * b = a * c ↔ b = c 
Arguments: {M : Type u_1} [AddMonoid M] {a b c : M} (h : IsAddUnit a)
Goal: a + b = a + c ↔ b = c
-- IsUnit.mul_right_inj
@[to_additive]
theorem mul_right_inj (h : IsUnit a) : a * b = a * c ↔ b = c 
Arguments: {M : Type u_1} [Monoid M] {a b c : M} (h : IsUnit a)
Goal: a * b = a * c ↔ b = c
-- IsUnit.mul_left_cancel
@[to_additive]
protected theorem mul_left_cancel (h : IsUnit a) : a * b = a * c → b = c 
Arguments: {M : Type u_1} [Monoid M] {a b c : M} (h : IsUnit a)
Goal: a * b = a * c → b = c
-- IsAddUnit.add_left_cancel
@[to_additive]
protected theorem mul_left_cancel (h : IsUnit a) : a * b = a * c → b = c 
Arguments: {M : Type u_1} [AddMonoid M] {a b c : M} (h : IsAddUnit a)
Goal: a + b = a + c → b = c
-- IsUnit.mul_right_cancel
@[to_additive]
protected theorem mul_right_cancel (h : IsUnit b) : a * b = c * b → a = c 
Arguments: {M : Type u_1} [Monoid M] {a b c : M} (h : IsUnit b)
Goal: a * b = c * b → a = c
-- IsAddUnit.add_right_cancel
@[to_additive]
protected theorem mul_right_cancel (h : IsUnit b) : a * b = c * b → a = c 
Arguments: {M : Type u_1} [AddMonoid M] {a b c : M} (h : IsAddUnit b)
Goal: a + b = c + b → a = c
-- IsUnit.mul_right_injective
@[to_additive]
protected theorem mul_right_injective (h : IsUnit a) : Injective (a * ·) 
Arguments: {M : Type u_1} [Monoid M] {a : M} (h : IsUnit a)
Goal: Function.Injective fun x => a * x
-- IsAddUnit.add_right_injective
@[to_additive]
protected theorem mul_right_injective (h : IsUnit a) : Injective (a * ·) 
Arguments: {M : Type u_1} [AddMonoid M] {a : M} (h : IsAddUnit a)
Goal: Function.Injective fun x => a + x
-- IsAddUnit.add_left_injective
@[to_additive]
protected theorem mul_left_injective (h : IsUnit b) : Injective (· * b) 
Arguments: {M : Type u_1} [AddMonoid M] {b : M} (h : IsAddUnit b)
Goal: Function.Injective fun x => x + b
-- IsUnit.mul_left_injective
@[to_additive]
protected theorem mul_left_injective (h : IsUnit b) : Injective (· * b) 
Arguments: {M : Type u_1} [Monoid M] {b : M} (h : IsUnit b)
Goal: Function.Injective fun x => x * b
-- IsUnit.isUnit_iff_mulLeft_bijective
@[to_additive]
theorem isUnit_iff_mulLeft_bijective {a : M} :
    IsUnit a ↔ Function.Bijective (a * ·) 
Arguments: {M : Type u_1} [Monoid M] {a : M}
Goal: IsUnit a ↔ Function.Bijective fun x => a * x
-- IsAddUnit.isAddUnit_iff_addLeft_bijective
@[to_additive]
theorem isUnit_iff_mulLeft_bijective {a : M} :
    IsUnit a ↔ Function.Bijective (a * ·) 
Arguments: {M : Type u_1} [AddMonoid M] {a : M}
Goal: IsAddUnit a ↔ Function.Bijective fun x => a + x
-- IsUnit.isUnit_iff_mulRight_bijective
@[to_additive]
theorem isUnit_iff_mulRight_bijective {a : M} :
    IsUnit a ↔ Function.Bijective (· * a) 
Arguments: {M : Type u_1} [Monoid M] {a : M}
Goal: IsUnit a ↔ Function.Bijective fun x => x * a
-- IsAddUnit.isAddUnit_iff_addRight_bijective
@[to_additive]
theorem isUnit_iff_mulRight_bijective {a : M} :
    IsUnit a ↔ Function.Bijective (· * a) 
Arguments: {M : Type u_1} [AddMonoid M] {a : M}
Goal: IsAddUnit a ↔ Function.Bijective fun x => x + a
-- IsUnit.inv_mul_cancel
@[to_additive (attr := simp)]
protected theorem inv_mul_cancel : IsUnit a → a⁻¹ * a = 1 
Arguments: {α : Type u} [DivisionMonoid α] {a : α}
Goal: IsUnit a → a⁻¹ * a = 1
-- IsAddUnit.neg_add_cancel
@[to_additive (attr := simp)]
protected theorem inv_mul_cancel : IsUnit a → a⁻¹ * a = 1 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α}
Goal: IsAddUnit a → -a + a = 0
-- IsUnit.mul_inv_cancel
@[to_additive (attr := simp)]
protected theorem mul_inv_cancel : IsUnit a → a * a⁻¹ = 1 
Arguments: {α : Type u} [DivisionMonoid α] {a : α}
Goal: IsUnit a → a * a⁻¹ = 1
-- IsAddUnit.add_neg_cancel
@[to_additive (attr := simp)]
protected theorem mul_inv_cancel : IsUnit a → a * a⁻¹ = 1 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α}
Goal: IsAddUnit a → a + -a = 0
-- IsUnit.val_unit'
@[to_additive (attr := simps val )
"The element of the additive group of additive units, corresponding to an element of
an additive monoid which is an additive unit. As opposed to `IsAddUnit.addUnit`, the negation is
computable and comes from the negation on `α`. This is useful to transfer properties of negation
in `AddUnits α` to `α`. See also `toAddUnits`."]
def unit' (h : IsUnit a) : αˣ 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a)
Goal: ↑h.unit' = a
-- IsAddUnit.val_addUnit'
@[to_additive (attr := simps val )
"The element of the additive group of additive units, corresponding to an element of
an additive monoid which is an additive unit. As opposed to `IsAddUnit.addUnit`, the negation is
computable and comes from the negation on `α`. This is useful to transfer properties of negation
in `AddUnits α` to `α`. See also `toAddUnits`."]
def unit' (h : IsUnit a) : αˣ 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a)
Goal: ↑h.addUnit' = a
-- IsAddUnit.val_neg_addUnit'
@[to_additive] lemma val_inv_unit' (h : IsUnit a) : ↑(h.unit'⁻¹) = a⁻¹ 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a)
Goal: ↑(-h.addUnit') = -a
-- IsUnit.val_inv_unit'
@[to_additive] lemma val_inv_unit' (h : IsUnit a) : ↑(h.unit'⁻¹) = a⁻¹ 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a)
Goal: ↑h.unit'⁻¹ = a⁻¹
-- IsAddUnit.add_neg_cancel_left
@[to_additive (attr := simp)]
protected lemma mul_inv_cancel_left (h : IsUnit a) : ∀ b, a * (a⁻¹ * b) = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a) (b : α)
Goal: a + (-a + b) = b
-- IsUnit.mul_inv_cancel_left
@[to_additive (attr := simp)]
protected lemma mul_inv_cancel_left (h : IsUnit a) : ∀ b, a * (a⁻¹ * b) = b 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a) (b : α)
Goal: a * (a⁻¹ * b) = b
-- IsUnit.inv_mul_cancel_left
@[to_additive (attr := simp)]
protected lemma inv_mul_cancel_left (h : IsUnit a) : ∀ b, a⁻¹ * (a * b) = b 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a) (b : α)
Goal: a⁻¹ * (a * b) = b
-- IsAddUnit.neg_add_cancel_left
@[to_additive (attr := simp)]
protected lemma inv_mul_cancel_left (h : IsUnit a) : ∀ b, a⁻¹ * (a * b) = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a) (b : α)
Goal: -a + (a + b) = b
-- IsAddUnit.add_neg_cancel_right
@[to_additive (attr := simp)]
protected lemma mul_inv_cancel_right (h : IsUnit b) (a : α) : a * b * b⁻¹ = a 
Arguments: {α : Type u} [SubtractionMonoid α] {b : α} (h : IsAddUnit b) (a : α)
Goal: a + b + -b = a
-- IsUnit.mul_inv_cancel_right
@[to_additive (attr := simp)]
protected lemma mul_inv_cancel_right (h : IsUnit b) (a : α) : a * b * b⁻¹ = a 
Arguments: {α : Type u} [DivisionMonoid α] {b : α} (h : IsUnit b) (a : α)
Goal: a * b * b⁻¹ = a
-- IsAddUnit.neg_add_cancel_right
@[to_additive (attr := simp)]
protected lemma inv_mul_cancel_right (h : IsUnit b) (a : α) : a * b⁻¹ * b = a 
Arguments: {α : Type u} [SubtractionMonoid α] {b : α} (h : IsAddUnit b) (a : α)
Goal: a + -b + b = a
-- IsUnit.inv_mul_cancel_right
@[to_additive (attr := simp)]
protected lemma inv_mul_cancel_right (h : IsUnit b) (a : α) : a * b⁻¹ * b = a 
Arguments: {α : Type u} [DivisionMonoid α] {b : α} (h : IsUnit b) (a : α)
Goal: a * b⁻¹ * b = a
-- IsAddUnit.sub_self
@[to_additive]
protected lemma div_self (h : IsUnit a) : a / a = 1 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a)
Goal: a - a = 0
-- IsUnit.div_self
@[to_additive]
protected lemma div_self (h : IsUnit a) : a / a = 1 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a)
Goal: a / a = 1
-- IsAddUnit.eq_add_neg_iff_add_eq
@[to_additive]
protected lemma eq_mul_inv_iff_mul_eq (h : IsUnit c) : a = b * c⁻¹ ↔ a * c = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit c)
Goal: a = b + -c ↔ a + c = b
-- IsUnit.eq_mul_inv_iff_mul_eq
@[to_additive]
protected lemma eq_mul_inv_iff_mul_eq (h : IsUnit c) : a = b * c⁻¹ ↔ a * c = b 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit c)
Goal: a = b * c⁻¹ ↔ a * c = b
-- IsAddUnit.eq_neg_add_iff_add_eq
@[to_additive]
protected lemma eq_inv_mul_iff_mul_eq (h : IsUnit b) : a = b⁻¹ * c ↔ b * a = c 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit b)
Goal: a = -b + c ↔ b + a = c
-- IsUnit.eq_inv_mul_iff_mul_eq
@[to_additive]
protected lemma eq_inv_mul_iff_mul_eq (h : IsUnit b) : a = b⁻¹ * c ↔ b * a = c 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit b)
Goal: a = b⁻¹ * c ↔ b * a = c
-- IsAddUnit.neg_add_eq_iff_eq_add
@[to_additive]
protected lemma inv_mul_eq_iff_eq_mul (h : IsUnit a) : a⁻¹ * b = c ↔ b = a * c 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit a)
Goal: -a + b = c ↔ b = a + c
-- IsUnit.inv_mul_eq_iff_eq_mul
@[to_additive]
protected lemma inv_mul_eq_iff_eq_mul (h : IsUnit a) : a⁻¹ * b = c ↔ b = a * c 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit a)
Goal: a⁻¹ * b = c ↔ b = a * c
-- IsAddUnit.add_neg_eq_iff_eq_add
@[to_additive]
protected lemma mul_inv_eq_iff_eq_mul (h : IsUnit b) : a * b⁻¹ = c ↔ a = c * b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit b)
Goal: a + -b = c ↔ a = c + b
-- IsUnit.mul_inv_eq_iff_eq_mul
@[to_additive]
protected lemma mul_inv_eq_iff_eq_mul (h : IsUnit b) : a * b⁻¹ = c ↔ a = c * b 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit b)
Goal: a * b⁻¹ = c ↔ a = c * b
-- IsUnit.mul_inv_eq_one
@[to_additive]
protected lemma mul_inv_eq_one (h : IsUnit b) : a * b⁻¹ = 1 ↔ a = b 
Arguments: {α : Type u} [DivisionMonoid α] {a b : α} (h : IsUnit b)
Goal: a * b⁻¹ = 1 ↔ a = b
-- IsAddUnit.add_neg_eq_zero
@[to_additive]
protected lemma mul_inv_eq_one (h : IsUnit b) : a * b⁻¹ = 1 ↔ a = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b : α} (h : IsAddUnit b)
Goal: a + -b = 0 ↔ a = b
-- IsUnit.inv_mul_eq_one
@[to_additive]
protected lemma inv_mul_eq_one (h : IsUnit a) : a⁻¹ * b = 1 ↔ a = b 
Arguments: {α : Type u} [DivisionMonoid α] {a b : α} (h : IsUnit a)
Goal: a⁻¹ * b = 1 ↔ a = b
-- IsAddUnit.neg_add_eq_zero
@[to_additive]
protected lemma inv_mul_eq_one (h : IsUnit a) : a⁻¹ * b = 1 ↔ a = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b : α} (h : IsAddUnit a)
Goal: -a + b = 0 ↔ a = b
-- IsUnit.mul_eq_one_iff_eq_inv
@[to_additive]
protected lemma mul_eq_one_iff_eq_inv (h : IsUnit b) : a * b = 1 ↔ a = b⁻¹ 
Arguments: {α : Type u} [DivisionMonoid α] {a b : α} (h : IsUnit b)
Goal: a * b = 1 ↔ a = b⁻¹
-- IsAddUnit.add_eq_zero_iff_eq_neg
@[to_additive]
protected lemma mul_eq_one_iff_eq_inv (h : IsUnit b) : a * b = 1 ↔ a = b⁻¹ 
Arguments: {α : Type u} [SubtractionMonoid α] {a b : α} (h : IsAddUnit b)
Goal: a + b = 0 ↔ a = -b
-- IsAddUnit.add_eq_zero_iff_neg_eq
@[to_additive]
protected lemma mul_eq_one_iff_inv_eq (h : IsUnit a) : a * b = 1 ↔ a⁻¹ = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b : α} (h : IsAddUnit a)
Goal: a + b = 0 ↔ -a = b
-- IsUnit.mul_eq_one_iff_inv_eq
@[to_additive]
protected lemma mul_eq_one_iff_inv_eq (h : IsUnit a) : a * b = 1 ↔ a⁻¹ = b 
Arguments: {α : Type u} [DivisionMonoid α] {a b : α} (h : IsUnit a)
Goal: a * b = 1 ↔ a⁻¹ = b
-- IsUnit.div_mul_cancel
@[to_additive (attr := simp)]
protected lemma div_mul_cancel (h : IsUnit b) (a : α) : a / b * b = a 
Arguments: {α : Type u} [DivisionMonoid α] {b : α} (h : IsUnit b) (a : α)
Goal: a / b * b = a
-- IsAddUnit.sub_add_cancel
@[to_additive (attr := simp)]
protected lemma div_mul_cancel (h : IsUnit b) (a : α) : a / b * b = a 
Arguments: {α : Type u} [SubtractionMonoid α] {b : α} (h : IsAddUnit b) (a : α)
Goal: a - b + b = a
-- IsUnit.mul_div_cancel_right
@[to_additive (attr := simp)]
protected lemma mul_div_cancel_right (h : IsUnit b) (a : α) : a * b / b = a 
Arguments: {α : Type u} [DivisionMonoid α] {b : α} (h : IsUnit b) (a : α)
Goal: a * b / b = a
-- IsAddUnit.add_sub_cancel_right
@[to_additive (attr := simp)]
protected lemma mul_div_cancel_right (h : IsUnit b) (a : α) : a * b / b = a 
Arguments: {α : Type u} [SubtractionMonoid α] {b : α} (h : IsAddUnit b) (a : α)
Goal: a + b - b = a
-- IsAddUnit.add_zero_sub_cancel
@[to_additive]
protected lemma mul_one_div_cancel (h : IsUnit a) : a * (1 / a) = 1 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a)
Goal: a + (0 - a) = 0
-- IsUnit.mul_one_div_cancel
@[to_additive]
protected lemma mul_one_div_cancel (h : IsUnit a) : a * (1 / a) = 1 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a)
Goal: a * (1 / a) = 1
-- IsUnit.one_div_mul_cancel
@[to_additive]
protected lemma one_div_mul_cancel (h : IsUnit a) : 1 / a * a = 1 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a)
Goal: 1 / a * a = 1
-- IsAddUnit.zero_sub_add_cancel
@[to_additive]
protected lemma one_div_mul_cancel (h : IsUnit a) : 1 / a * a = 1 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a)
Goal: 0 - a + a = 0
-- IsAddUnit.neg
@[to_additive]
lemma inv (h : IsUnit a) : IsUnit a⁻¹ 
Arguments: {α : Type u} [SubtractionMonoid α] {a : α} (h : IsAddUnit a)
Goal: IsAddUnit (-a)
-- IsUnit.inv
@[to_additive]
lemma inv (h : IsUnit a) : IsUnit a⁻¹ 
Arguments: {α : Type u} [DivisionMonoid α] {a : α} (h : IsUnit a)
Goal: IsUnit a⁻¹
-- IsUnit.div
@[to_additive] lemma div (ha : IsUnit a) (hb : IsUnit b) : IsUnit (a / b) 
Arguments: {α : Type u} [DivisionMonoid α] {a b : α} (ha : IsUnit a) (hb : IsUnit b)
Goal: IsUnit (a / b)
-- IsAddUnit.sub
@[to_additive] lemma div (ha : IsUnit a) (hb : IsUnit b) : IsUnit (a / b) 
Arguments: {α : Type u} [SubtractionMonoid α] {a b : α} (ha : IsAddUnit a) (hb : IsAddUnit b)
Goal: IsAddUnit (a - b)
-- IsUnit.div_left_inj
@[to_additive]
protected lemma div_left_inj (h : IsUnit c) : a / c = b / c ↔ a = b 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit c)
Goal: a / c = b / c ↔ a = b
-- IsAddUnit.sub_left_inj
@[to_additive]
protected lemma div_left_inj (h : IsUnit c) : a / c = b / c ↔ a = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit c)
Goal: a - c = b - c ↔ a = b
-- IsAddUnit.sub_eq_iff
@[to_additive]
protected lemma div_eq_iff (h : IsUnit b) : a / b = c ↔ a = c * b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit b)
Goal: a - b = c ↔ a = c + b
-- IsUnit.div_eq_iff
@[to_additive]
protected lemma div_eq_iff (h : IsUnit b) : a / b = c ↔ a = c * b 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit b)
Goal: a / b = c ↔ a = c * b
-- IsUnit.eq_div_iff
@[to_additive]
protected lemma eq_div_iff (h : IsUnit c) : a = b / c ↔ a * c = b 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit c)
Goal: a = b / c ↔ a * c = b
-- IsAddUnit.eq_sub_iff
@[to_additive]
protected lemma eq_div_iff (h : IsUnit c) : a = b / c ↔ a * c = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit c)
Goal: a = b - c ↔ a + c = b
-- IsAddUnit.sub_eq_of_eq_add
@[to_additive]
protected lemma div_eq_of_eq_mul (h : IsUnit b) : a = c * b → a / b = c 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit b)
Goal: a = c + b → a - b = c
-- IsUnit.div_eq_of_eq_mul
@[to_additive]
protected lemma div_eq_of_eq_mul (h : IsUnit b) : a = c * b → a / b = c 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit b)
Goal: a = c * b → a / b = c
-- IsUnit.eq_div_of_mul_eq
@[to_additive]
protected lemma eq_div_of_mul_eq (h : IsUnit c) : a * c = b → a = b / c 
Arguments: {α : Type u} [DivisionMonoid α] {a b c : α} (h : IsUnit c)
Goal: a * c = b → a = b / c
-- IsAddUnit.eq_sub_of_add_eq
@[to_additive]
protected lemma eq_div_of_mul_eq (h : IsUnit c) : a * c = b → a = b / c 
Arguments: {α : Type u} [SubtractionMonoid α] {a b c : α} (h : IsAddUnit c)
Goal: a + c = b → a = b - c
-- IsUnit.div_eq_one_iff_eq
@[to_additive]
protected lemma div_eq_one_iff_eq (h : IsUnit b) : a / b = 1 ↔ a = b 
Arguments: {α : Type u} [DivisionMonoid α] {a b : α} (h : IsUnit b)
Goal: a / b = 1 ↔ a = b
-- IsAddUnit.sub_eq_zero_iff_eq
@[to_additive]
protected lemma div_eq_one_iff_eq (h : IsUnit b) : a / b = 1 ↔ a = b 
Arguments: {α : Type u} [SubtractionMonoid α] {a b : α} (h : IsAddUnit b)
Goal: a - b = 0 ↔ a = b
-- IsAddUnit.sub_add_cancel_right
@[to_additive]
protected lemma div_mul_cancel_right (h : IsUnit b) (a : α) : b / (a * b) = a⁻¹ 
Arguments: {α : Type u} [SubtractionMonoid α] {b : α} (h : IsAddUnit b) (a : α)
Goal: b - (a + b) = -a
-- IsUnit.div_mul_cancel_right
@[to_additive]
protected lemma div_mul_cancel_right (h : IsUnit b) (a : α) : b / (a * b) = a⁻¹ 
Arguments: {α : Type u} [DivisionMonoid α] {b : α} (h : IsUnit b) (a : α)
Goal: b / (a * b) = a⁻¹
-- IsAddUnit.sub_add_left
@[to_additive]
protected lemma div_mul_left (h : IsUnit b) : b / (a * b) = 1 / a 
Arguments: {α : Type u} [SubtractionMonoid α] {a b : α} (h : IsAddUnit b)
Goal: b - (a + b) = 0 - a
-- IsUnit.div_mul_left
@[to_additive]
protected lemma div_mul_left (h : IsUnit b) : b / (a * b) = 1 / a 
Arguments: {α : Type u} [DivisionMonoid α] {a b : α} (h : IsUnit b)
Goal: b / (a * b) = 1 / a
-- IsUnit.mul_div_mul_right
@[to_additive]
protected lemma mul_div_mul_right (h : IsUnit c) (a b : α) : a * c / (b * c) = a / b 
Arguments: {α : Type u} [DivisionMonoid α] {c : α} (h : IsUnit c) (a b : α)
Goal: a * c / (b * c) = a / b
-- IsAddUnit.add_sub_add_right
@[to_additive]
protected lemma mul_div_mul_right (h : IsUnit c) (a b : α) : a * c / (b * c) = a / b 
Arguments: {α : Type u} [SubtractionMonoid α] {c : α} (h : IsAddUnit c) (a b : α)
Goal: a + c - (b + c) = a - b
-- IsUnit.mul_mul_div
@[to_additive]
protected lemma mul_mul_div (a : α) (h : IsUnit b) : a * b * (1 / b) = a 
Arguments: {α : Type u} [DivisionMonoid α] {b : α} (a : α) (h : IsUnit b)
Goal: a * b * (1 / b) = a
-- IsAddUnit.add_add_sub
@[to_additive]
protected lemma mul_mul_div (a : α) (h : IsUnit b) : a * b * (1 / b) = a 
Arguments: {α : Type u} [SubtractionMonoid α] {b : α} (a : α) (h : IsAddUnit b)
Goal: a + b + (0 - b) = a
-- IsUnit.div_mul_cancel_left
@[to_additive]
protected lemma div_mul_cancel_left (h : IsUnit a) (b : α) : a / (a * b) = b⁻¹ 
Arguments: {α : Type u} [DivisionCommMonoid α] {a : α} (h : IsUnit a) (b : α)
Goal: a / (a * b) = b⁻¹
-- IsAddUnit.sub_add_cancel_left
@[to_additive]
protected lemma div_mul_cancel_left (h : IsUnit a) (b : α) : a / (a * b) = b⁻¹ 
Arguments: {α : Type u} [SubtractionCommMonoid α] {a : α} (h : IsAddUnit a) (b : α)
Goal: a - (a + b) = -b
-- IsUnit.div_mul_right
@[to_additive]
protected lemma div_mul_right (h : IsUnit a) (b : α) : a / (a * b) = 1 / b 
Arguments: {α : Type u} [DivisionCommMonoid α] {a : α} (h : IsUnit a) (b : α)
Goal: a / (a * b) = 1 / b
-- IsAddUnit.sub_add_right
@[to_additive]
protected lemma div_mul_right (h : IsUnit a) (b : α) : a / (a * b) = 1 / b 
Arguments: {α : Type u} [SubtractionCommMonoid α] {a : α} (h : IsAddUnit a) (b : α)
Goal: a - (a + b) = 0 - b
-- IsUnit.mul_div_cancel_left
@[to_additive]
protected lemma mul_div_cancel_left (h : IsUnit a) (b : α) : a * b / a = b 
Arguments: {α : Type u} [DivisionCommMonoid α] {a : α} (h : IsUnit a) (b : α)
Goal: a * b / a = b
-- IsAddUnit.add_sub_cancel_left
@[to_additive]
protected lemma mul_div_cancel_left (h : IsUnit a) (b : α) : a * b / a = b 
Arguments: {α : Type u} [SubtractionCommMonoid α] {a : α} (h : IsAddUnit a) (b : α)
Goal: a + b - a = b
-- IsUnit.mul_div_cancel
@[to_additive]
protected lemma mul_div_cancel (h : IsUnit a) (b : α) : a * (b / a) = b 
Arguments: {α : Type u} [DivisionCommMonoid α] {a : α} (h : IsUnit a) (b : α)
Goal: a * (b / a) = b
-- IsAddUnit.add_sub_cancel
@[to_additive]
protected lemma mul_div_cancel (h : IsUnit a) (b : α) : a * (b / a) = b 
Arguments: {α : Type u} [SubtractionCommMonoid α] {a : α} (h : IsAddUnit a) (b : α)
Goal: a + (b - a) = b
-- IsUnit.mul_div_mul_left
@[to_additive]
protected lemma mul_div_mul_left (h : IsUnit c) (a b : α) : c * a / (c * b) = a / b 
Arguments: {α : Type u} [DivisionCommMonoid α] {c : α} (h : IsUnit c) (a b : α)
Goal: c * a / (c * b) = a / b
-- IsAddUnit.add_sub_add_left
@[to_additive]
protected lemma mul_div_mul_left (h : IsUnit c) (a b : α) : c * a / (c * b) = a / b 
Arguments: {α : Type u} [SubtractionCommMonoid α] {c : α} (h : IsAddUnit c) (a b : α)
Goal: c + a - (c + b) = a - b
-- IsAddUnit.add_eq_add_of_sub_eq_sub
@[to_additive]
protected lemma mul_eq_mul_of_div_eq_div (hb : IsUnit b) (hd : IsUnit d)
    (a c : α) (h : a / b = c / d) : a * d = c * b 
Arguments: {α : Type u} [SubtractionCommMonoid α] {b d : α} (hb : IsAddUnit b) (hd : IsAddUnit d) (a c : α) (h : a - b = c - d)
Goal: a + d = c + b
-- IsUnit.mul_eq_mul_of_div_eq_div
@[to_additive]
protected lemma mul_eq_mul_of_div_eq_div (hb : IsUnit b) (hd : IsUnit d)
    (a c : α) (h : a / b = c / d) : a * d = c * b 
Arguments: {α : Type u} [DivisionCommMonoid α] {b d : α} (hb : IsUnit b) (hd : IsUnit d) (a c : α) (h : a / b = c / d)
Goal: a * d = c * b
-- IsUnit.div_eq_div_iff
@[to_additive]
protected lemma div_eq_div_iff (hb : IsUnit b) (hd : IsUnit d) :
    a / b = c / d ↔ a * d = c * b 
Arguments: {α : Type u} [DivisionCommMonoid α] {a b c d : α} (hb : IsUnit b) (hd : IsUnit d)
Goal: a / b = c / d ↔ a * d = c * b
-- IsAddUnit.sub_eq_sub_iff
@[to_additive]
protected lemma div_eq_div_iff (hb : IsUnit b) (hd : IsUnit d) :
    a / b = c / d ↔ a * d = c * b 
Arguments: {α : Type u} [SubtractionCommMonoid α] {a b c d : α} (hb : IsAddUnit b) (hd : IsAddUnit d)
Goal: a - b = c - d ↔ a + d = c + b
-- IsAddUnit.sub_sub_cancel
@[to_additive]
protected lemma div_div_cancel (h : IsUnit a) : a / (a / b) = b 
Arguments: {α : Type u} [SubtractionCommMonoid α] {a b : α} (h : IsAddUnit a)
Goal: a - (a - b) = b
-- IsUnit.div_div_cancel
@[to_additive]
protected lemma div_div_cancel (h : IsUnit a) : a / (a / b) = b 
Arguments: {α : Type u} [DivisionCommMonoid α] {a b : α} (h : IsUnit a)
Goal: a / (a / b) = b
-- IsUnit.div_div_cancel_left
@[to_additive]
protected lemma div_div_cancel_left (h : IsUnit a) : a / b / a = b⁻¹ 
Arguments: {α : Type u} [DivisionCommMonoid α] {a b : α} (h : IsUnit a)
Goal: a / b / a = b⁻¹
-- IsAddUnit.sub_sub_cancel_left
@[to_additive]
protected lemma div_div_cancel_left (h : IsUnit a) : a / b / a = b⁻¹ 
Arguments: {α : Type u} [SubtractionCommMonoid α] {a b : α} (h : IsAddUnit a)
Goal: a - b - a = -b
-- divp_eq_div
@[field_simps]
lemma divp_eq_div [DivisionMonoid α] (a : α) (u : αˣ) : a /ₚ u = a / u 
Arguments: {α : Type u} [DivisionMonoid α] (a : α) (u : αˣ)
Goal: a /ₚ u = a / ↑u
-- AddGroup.isAddUnit
@[to_additive]
lemma Group.isUnit [Group α] (a : α) : IsUnit a 
Arguments: {α : Type u} [AddGroup α] (a : α)
Goal: IsAddUnit a
-- Group.isUnit
@[to_additive]
lemma Group.isUnit [Group α] (a : α) : IsUnit a 
Arguments: {α : Type u} [Group α] (a : α)
Goal: IsUnit a
-- algebraMap.coe_inj
@[norm_cast, simp]
theorem coe_inj {a b : R} : (↑a : A) = ↑b ↔ a = b 
Arguments: {R : Type u_1} {A : Type u_2} [Field R] [CommSemiring A] [Nontrivial A] [Algebra R A] {a b : R}
Goal: ↑a = ↑b ↔ a = b
-- algebraMap.lift_map_eq_zero_iff
@[norm_cast]
theorem lift_map_eq_zero_iff (a : R) : (↑a : A) = 0 ↔ a = 0 
Arguments: {R : Type u_1} {A : Type u_2} [Field R] [CommSemiring A] [Nontrivial A] [Algebra R A] (a : R)
Goal: ↑a = 0 ↔ a = 0
-- algebraMap.coe_inv
@[norm_cast]
theorem coe_inv (r : R) : ↑r⁻¹ = ((↑r)⁻¹ : A) 
Arguments: {R : Type u_1} (A : Type u_2) [Semifield R] [DivisionSemiring A] [Algebra R A] (r : R)
Goal: ↑r⁻¹ = (↑r)⁻¹
-- algebraMap.coe_div
@[norm_cast]
theorem coe_div (r s : R) : ↑(r / s) = (↑r / ↑s : A) 
Arguments: {R : Type u_1} (A : Type u_2) [Semifield R] [DivisionSemiring A] [Algebra R A] (r s : R)
Goal: ↑(r / s) = ↑r / ↑s
-- algebraMap.coe_zpow
@[norm_cast]
theorem coe_zpow (r : R) (z : ℤ) : ↑(r ^ z) = (r : A) ^ z 
Arguments: {R : Type u_1} (A : Type u_2) [Semifield R] [DivisionSemiring A] [Algebra R A] (r : R) (z : ℤ)
Goal: ↑(r ^ z) = ↑r ^ z
-- algebraMap.coe_ratCast
@[norm_cast]
theorem coe_ratCast (q : ℚ) : ↑(q : R) = (q : A) 
Arguments: (R : Type u_1) (A : Type u_2) [Field R] [DivisionRing A] [Algebra R A] (q : ℚ)
Goal: ↑↑q = ↑q