ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Tropical.untrop_pow
@[simp]
theorem untrop_pow {α : Type*} [SMul α R] (x : Tropical R) (n : α) :
    untrop (x ^ n) = n • untrop x 
Arguments: {R : Type u} {α : Type u_1} [SMul α R] (x : Tropical R) (n : α)
Goal: Tropical.untrop (x ^ n) = n • Tropical.untrop x
-- Tropical.trop_smul
@[simp]
theorem trop_smul {α : Type*} [SMul α R] (x : R) (n : α) : trop (n • x) = trop x ^ n 
Arguments: {R : Type u} {α : Type u_1} [SMul α R] (x : R) (n : α)
Goal: Tropical.trop (n • x) = Tropical.trop x ^ n
-- Tropical.trop_nsmul
@[simp]
theorem trop_nsmul [AddMonoid R] (x : R) (n : ℕ) : trop (n • x) = trop x ^ n 
Arguments: {R : Type u} [AddMonoid R] (x : R) (n : ℕ)
Goal: Tropical.trop (n • x) = Tropical.trop x ^ n
-- Tropical.untrop_zpow
@[simp]
theorem untrop_zpow [AddGroup R] (x : Tropical R) (n : ℤ) : untrop (x ^ n) = n • untrop x 
Arguments: {R : Type u} [AddGroup R] (x : Tropical R) (n : ℤ)
Goal: Tropical.untrop (x ^ n) = n • Tropical.untrop x
-- Tropical.trop_zsmul
@[simp]
theorem trop_zsmul [AddGroup R] (x : R) (n : ℤ) : trop (n • x) = trop x ^ n 
Arguments: {R : Type u} [AddGroup R] (x : R) (n : ℤ)
Goal: Tropical.trop (n • x) = Tropical.trop x ^ n
-- Tropical.add_pow
@[simp]
theorem add_pow [LinearOrder R] [AddMonoid R] [CovariantClass R R (· + ·) (· ≤ ·)]
    [CovariantClass R R (Function.swap (· + ·)) (· ≤ ·)] (x y : Tropical R) (n : ℕ) :
    (x + y) ^ n = x ^ n + y ^ n 
Arguments: {R : Type u} [LinearOrder R] [AddMonoid R] [CovariantClass R R (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] [CovariantClass R R (Function.swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1] (x y : Tropical R) (n : ℕ)
Goal: (x + y) ^ n = x ^ n + y ^ n
-- Tropical.succ_nsmul
@[simp]
theorem succ_nsmul {R} [LinearOrder R] [OrderTop R] (x : Tropical R) (n : ℕ) : (n + 1) • x = x 
Arguments: {R : Type u_1} [LinearOrder R] [OrderTop R] (x : Tropical R) (n : ℕ)
Goal: (n + 1) • x = x
-- Tropical.mul_eq_zero_iff
theorem mul_eq_zero_iff {R : Type*} [LinearOrderedAddCommMonoid R] {a b : Tropical (WithTop R)} :
    a * b = 0 ↔ a = 0 ∨ b = 0 
Arguments: {R : Type u_1} [LinearOrderedAddCommMonoid R] {a b : Tropical (WithTop R)}
Goal: a * b = 0 ↔ a = 0 ∨ b = 0
-- HomologicalComplex.coneOfHasLimitEval_pt_d
@[simps]
noncomputable def coneOfHasLimitEval : Cone F 
Arguments: {C : Type u_1} {ι : Type u_2} {J : Type u_3} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_3} J] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms C] (F : J ⥤ HomologicalComplex C c) [∀ (n : ι), CategoryTheory.Limits.HasLimit (F ⋙ HomologicalComplex.eval C c n)] (n m : ι)
Goal: (HomologicalComplex.coneOfHasLimitEval F).pt.d n m =
  CategoryTheory.Limits.limMap { app := fun j => (F.obj j).d n m, naturality := ⋯ }
-- HomologicalComplex.coneOfHasLimitEval_pt_X
@[simps]
noncomputable def coneOfHasLimitEval : Cone F 
Arguments: {C : Type u_1} {ι : Type u_2} {J : Type u_3} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_3} J] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms C] (F : J ⥤ HomologicalComplex C c) [∀ (n : ι), CategoryTheory.Limits.HasLimit (F ⋙ HomologicalComplex.eval C c n)] (n : ι)
Goal: (HomologicalComplex.coneOfHasLimitEval F).pt.X n = CategoryTheory.Limits.limit (F ⋙ HomologicalComplex.eval C c n)
-- HomologicalComplex.coneOfHasLimitEval_π_app_f
@[simps]
noncomputable def coneOfHasLimitEval : Cone F 
Arguments: {C : Type u_1} {ι : Type u_2} {J : Type u_3} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_3} J] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms C] (F : J ⥤ HomologicalComplex C c) [∀ (n : ι), CategoryTheory.Limits.HasLimit (F ⋙ HomologicalComplex.eval C c n)] (j : J) (n : ι)
Goal: ((HomologicalComplex.coneOfHasLimitEval F).π.app j).f n =
  CategoryTheory.Limits.limit.π (F ⋙ HomologicalComplex.eval C c n) j
-- HomologicalComplex.coconeOfHasColimitEval_ι_app_f
@[simps]
noncomputable def coconeOfHasColimitEval : Cocone F 
Arguments: {C : Type u_1} {ι : Type u_2} {J : Type u_3} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_3} J] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms C] (F : J ⥤ HomologicalComplex C c) [∀ (n : ι), CategoryTheory.Limits.HasColimit (F ⋙ HomologicalComplex.eval C c n)] (j : J) (n : ι)
Goal: ((HomologicalComplex.coconeOfHasColimitEval F).ι.app j).f n =
  CategoryTheory.Limits.colimit.ι (F ⋙ HomologicalComplex.eval C c n) j
-- HomologicalComplex.coconeOfHasColimitEval_pt_d
@[simps]
noncomputable def coconeOfHasColimitEval : Cocone F 
Arguments: {C : Type u_1} {ι : Type u_2} {J : Type u_3} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_3} J] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms C] (F : J ⥤ HomologicalComplex C c) [∀ (n : ι), CategoryTheory.Limits.HasColimit (F ⋙ HomologicalComplex.eval C c n)] (n m : ι)
Goal: (HomologicalComplex.coconeOfHasColimitEval F).pt.d n m =
  CategoryTheory.Limits.colimMap { app := fun j => (F.obj j).d n m, naturality := ⋯ }
-- HomologicalComplex.coconeOfHasColimitEval_pt_X
@[simps]
noncomputable def coconeOfHasColimitEval : Cocone F 
Arguments: {C : Type u_1} {ι : Type u_2} {J : Type u_3} [CategoryTheory.Category.{u_4, u_1} C] [CategoryTheory.Category.{u_5, u_3} J] {c : ComplexShape ι} [CategoryTheory.Limits.HasZeroMorphisms C] (F : J ⥤ HomologicalComplex C c) [∀ (n : ι), CategoryTheory.Limits.HasColimit (F ⋙ HomologicalComplex.eval C c n)] (n : ι)
Goal: (HomologicalComplex.coconeOfHasColimitEval F).pt.X n = CategoryTheory.Limits.colimit (F ⋙ HomologicalComplex.eval C c n)
-- add_div
theorem add_div (a b c : α) : (a + b) / c = a / c + b / c 
Arguments: {α : Type u_1} [DivisionSemiring α] (a b c : α)
Goal: (a + b) / c = a / c + b / c
-- div_add_div_same
@[field_simps]
theorem div_add_div_same (a b c : α) : a / c + b / c = (a + b) / c 
Arguments: {α : Type u_1} [DivisionSemiring α] (a b c : α)
Goal: a / c + b / c = (a + b) / c
-- same_add_div
theorem same_add_div (h : b ≠ 0) : (b + a) / b = 1 + a / b 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (h : b ≠ 0)
Goal: (b + a) / b = 1 + a / b
-- div_add_same
theorem div_add_same (h : b ≠ 0) : (a + b) / b = a / b + 1 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (h : b ≠ 0)
Goal: (a + b) / b = a / b + 1
-- one_add_div
theorem one_add_div (h : b ≠ 0) : 1 + a / b = (b + a) / b 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (h : b ≠ 0)
Goal: 1 + a / b = (b + a) / b
-- div_add_one
theorem div_add_one (h : b ≠ 0) : a / b + 1 = (a + b) / b 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (h : b ≠ 0)
Goal: a / b + 1 = (a + b) / b
-- inv_add_inv'
theorem inv_add_inv' (ha : a ≠ 0) (hb : b ≠ 0) :
    a⁻¹ + b⁻¹ = a⁻¹ * (a + b) * b⁻¹ 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (ha : a ≠ 0) (hb : b ≠ 0)
Goal: a⁻¹ + b⁻¹ = a⁻¹ * (a + b) * b⁻¹
-- one_div_mul_add_mul_one_div_eq_one_div_add_one_div
theorem one_div_mul_add_mul_one_div_eq_one_div_add_one_div (ha : a ≠ 0) (hb : b ≠ 0) :
    1 / a * (a + b) * (1 / b) = 1 / a + 1 / b 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (ha : a ≠ 0) (hb : b ≠ 0)
Goal: 1 / a * (a + b) * (1 / b) = 1 / a + 1 / b
-- add_div_eq_mul_add_div
theorem add_div_eq_mul_add_div (a b : α) (hc : c ≠ 0) : a + b / c = (a * c + b) / c 
Arguments: {α : Type u_1} [DivisionSemiring α] {c : α} (a b : α) (hc : c ≠ 0)
Goal: a + b / c = (a * c + b) / c
-- add_div'
@[field_simps]
theorem add_div' (a b c : α) (hc : c ≠ 0) : b + a / c = (b * c + a) / c 
Arguments: {α : Type u_1} [DivisionSemiring α] (a b c : α) (hc : c ≠ 0)
Goal: b + a / c = (b * c + a) / c
-- div_add'
@[field_simps]
theorem div_add' (a b c : α) (hc : c ≠ 0) : a / c + b = (a + b * c) / c 
Arguments: {α : Type u_1} [DivisionSemiring α] (a b c : α) (hc : c ≠ 0)
Goal: a / c + b = (a + b * c) / c
-- Commute.div_add_div
protected theorem Commute.div_add_div (hbc : Commute b c) (hbd : Commute b d) (hb : b ≠ 0)
    (hd : d ≠ 0) : a / b + c / d = (a * d + b * c) / (b * d) 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b c d : α} (hbc : Commute b c) (hbd : Commute b d) (hb : b ≠ 0) (hd : d ≠ 0)
Goal: a / b + c / d = (a * d + b * c) / (b * d)
-- Commute.one_div_add_one_div
protected theorem Commute.one_div_add_one_div (hab : Commute a b) (ha : a ≠ 0) (hb : b ≠ 0) :
    1 / a + 1 / b = (a + b) / (a * b) 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (hab : Commute a b) (ha : a ≠ 0) (hb : b ≠ 0)
Goal: 1 / a + 1 / b = (a + b) / (a * b)
-- Commute.inv_add_inv
protected theorem Commute.inv_add_inv (hab : Commute a b) (ha : a ≠ 0) (hb : b ≠ 0) :
    a⁻¹ + b⁻¹ = (a + b) / (a * b) 
Arguments: {α : Type u_1} [DivisionSemiring α] {a b : α} (hab : Commute a b) (ha : a ≠ 0) (hb : b ≠ 0)
Goal: a⁻¹ + b⁻¹ = (a + b) / (a * b)
-- one_div_neg_one_eq_neg_one
theorem one_div_neg_one_eq_neg_one : (1 : K) / -1 = -1 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K]
Goal: 1 / -1 = -1
-- one_div_neg_eq_neg_one_div
theorem one_div_neg_eq_neg_one_div (a : K) : 1 / -a = -(1 / a) 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] (a : K)
Goal: 1 / -a = -(1 / a)
-- div_neg_eq_neg_div
theorem div_neg_eq_neg_div (a b : K) : b / -a = -(b / a) 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] (a b : K)
Goal: b / -a = -(b / a)
-- neg_div
theorem neg_div (a b : K) : -b / a = -(b / a) 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] (a b : K)
Goal: -b / a = -(b / a)
-- neg_div'
@[field_simps]
theorem neg_div' (a b : K) : -(b / a) = -b / a 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] (a b : K)
Goal: -(b / a) = -b / a
-- neg_div_neg_eq
@[simp]
theorem neg_div_neg_eq (a b : K) : -a / -b = a / b 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] (a b : K)
Goal: -a / -b = a / b
-- neg_inv
theorem neg_inv : -a⁻¹ = (-a)⁻¹ 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] {a : K}
Goal: -a⁻¹ = (-a)⁻¹
-- div_neg
theorem div_neg (a : K) : a / -b = -(a / b) 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] {b : K} (a : K)
Goal: a / -b = -(a / b)
-- inv_neg
theorem inv_neg : (-a)⁻¹ = -a⁻¹ 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K] {a : K}
Goal: (-a)⁻¹ = -a⁻¹
-- inv_neg_one
theorem inv_neg_one : (-1 : K)⁻¹ = -1 
Arguments: {K : Type u_3} [DivisionMonoid K] [HasDistribNeg K]
Goal: (-1)⁻¹ = -1
-- div_neg_self
@[simp]
theorem div_neg_self {a : K} (h : a ≠ 0) : a / -a = -1 
Arguments: {K : Type u_3} [DivisionRing K] {a : K} (h : a ≠ 0)
Goal: a / -a = -1
-- neg_div_self
@[simp]
theorem neg_div_self {a : K} (h : a ≠ 0) : -a / a = -1 
Arguments: {K : Type u_3} [DivisionRing K] {a : K} (h : a ≠ 0)
Goal: -a / a = -1
-- div_sub_div_same
theorem div_sub_div_same (a b c : K) : a / c - b / c = (a - b) / c 
Arguments: {K : Type u_3} [DivisionRing K] (a b c : K)
Goal: a / c - b / c = (a - b) / c
-- same_sub_div
theorem same_sub_div {a b : K} (h : b ≠ 0) : (b - a) / b = 1 - a / b 
Arguments: {K : Type u_3} [DivisionRing K] {a b : K} (h : b ≠ 0)
Goal: (b - a) / b = 1 - a / b
-- one_sub_div
theorem one_sub_div {a b : K} (h : b ≠ 0) : 1 - a / b = (b - a) / b 
Arguments: {K : Type u_3} [DivisionRing K] {a b : K} (h : b ≠ 0)
Goal: 1 - a / b = (b - a) / b
-- div_sub_same
theorem div_sub_same {a b : K} (h : b ≠ 0) : (a - b) / b = a / b - 1 
Arguments: {K : Type u_3} [DivisionRing K] {a b : K} (h : b ≠ 0)
Goal: (a - b) / b = a / b - 1
-- div_sub_one
theorem div_sub_one {a b : K} (h : b ≠ 0) : a / b - 1 = (a - b) / b 
Arguments: {K : Type u_3} [DivisionRing K] {a b : K} (h : b ≠ 0)
Goal: a / b - 1 = (a - b) / b
-- sub_div
theorem sub_div (a b c : K) : (a - b) / c = a / c - b / c 
Arguments: {K : Type u_3} [DivisionRing K] (a b c : K)
Goal: (a - b) / c = a / c - b / c
-- inv_sub_inv'
theorem inv_sub_inv' {a b : K} (ha : a ≠ 0) (hb : b ≠ 0) : a⁻¹ - b⁻¹ = a⁻¹ * (b - a) * b⁻¹ 
Arguments: {K : Type u_3} [DivisionRing K] {a b : K} (ha : a ≠ 0) (hb : b ≠ 0)
Goal: a⁻¹ - b⁻¹ = a⁻¹ * (b - a) * b⁻¹
-- one_div_mul_sub_mul_one_div_eq_one_div_add_one_div
theorem one_div_mul_sub_mul_one_div_eq_one_div_add_one_div (ha : a ≠ 0) (hb : b ≠ 0) :
    1 / a * (b - a) * (1 / b) = 1 / a - 1 / b 
Arguments: {K : Type u_3} [DivisionRing K] {a b : K} (ha : a ≠ 0) (hb : b ≠ 0)
Goal: 1 / a * (b - a) * (1 / b) = 1 / a - 1 / b
-- Commute.div_sub_div
protected theorem Commute.div_sub_div (hbc : Commute b c) (hbd : Commute b d) (hb : b ≠ 0)
    (hd : d ≠ 0) : a / b - c / d = (a * d - b * c) / (b * d) 
Arguments: {K : Type u_3} [DivisionRing K] {a b c d : K} (hbc : Commute b c) (hbd : Commute b d) (hb : b ≠ 0) (hd : d ≠ 0)
Goal: a / b - c / d = (a * d - b * c) / (b * d)
-- Commute.inv_sub_inv
protected theorem Commute.inv_sub_inv (hab : Commute a b) (ha : a ≠ 0) (hb : b ≠ 0) :
    a⁻¹ - b⁻¹ = (b - a) / (a * b) 
Arguments: {K : Type u_3} [DivisionRing K] {a b : K} (hab : Commute a b) (ha : a ≠ 0) (hb : b ≠ 0)
Goal: a⁻¹ - b⁻¹ = (b - a) / (a * b)
-- div_add_div
theorem div_add_div (a : α) (c : α) (hb : b ≠ 0) (hd : d ≠ 0) :
    a / b + c / d = (a * d + b * c) / (b * d) 
Arguments: {α : Type u_1} [Semifield α] {b d : α} (a c : α) (hb : b ≠ 0) (hd : d ≠ 0)
Goal: a / b + c / d = (a * d + b * c) / (b * d)
-- one_div_add_one_div
theorem one_div_add_one_div (ha : a ≠ 0) (hb : b ≠ 0) : 1 / a + 1 / b = (a + b) / (a * b) 
Arguments: {α : Type u_1} [Semifield α] {a b : α} (ha : a ≠ 0) (hb : b ≠ 0)
Goal: 1 / a + 1 / b = (a + b) / (a * b)
-- inv_add_inv
theorem inv_add_inv (ha : a ≠ 0) (hb : b ≠ 0) : a⁻¹ + b⁻¹ = (a + b) / (a * b) 
Arguments: {α : Type u_1} [Semifield α] {a b : α} (ha : a ≠ 0) (hb : b ≠ 0)
Goal: a⁻¹ + b⁻¹ = (a + b) / (a * b)
-- div_sub_div
@[field_simps]
theorem div_sub_div (a : K) {b : K} (c : K) {d : K} (hb : b ≠ 0) (hd : d ≠ 0) :
    a / b - c / d = (a * d - b * c) / (b * d) 
Arguments: {K : Type u_3} [Field K] (a : K) {b : K} (c : K) {d : K} (hb : b ≠ 0) (hd : d ≠ 0)
Goal: a / b - c / d = (a * d - b * c) / (b * d)
-- inv_sub_inv
theorem inv_sub_inv {a b : K} (ha : a ≠ 0) (hb : b ≠ 0) : a⁻¹ - b⁻¹ = (b - a) / (a * b) 
Arguments: {K : Type u_3} [Field K] {a b : K} (ha : a ≠ 0) (hb : b ≠ 0)
Goal: a⁻¹ - b⁻¹ = (b - a) / (a * b)
-- sub_div'
@[field_simps]
theorem sub_div' (a b c : K) (hc : c ≠ 0) : b - a / c = (b * c - a) / c 
Arguments: {K : Type u_3} [Field K] (a b c : K) (hc : c ≠ 0)
Goal: b - a / c = (b * c - a) / c
-- div_sub'
@[field_simps]
theorem div_sub' (a b c : K) (hc : c ≠ 0) : a / c - b = (a - c * b) / c 
Arguments: {K : Type u_3} [Field K] (a b c : K) (hc : c ≠ 0)
Goal: a / c - b = (a - c * b) / c
-- RingHom.injective
protected theorem injective [DivisionRing α] [Semiring β] [Nontrivial β] (f : α →+* β) :
    Injective f 
Arguments: {α : Type u_1} {β : Type u_2} [DivisionRing α] [Semiring β] [Nontrivial β] (f : α →+* β)
Goal: Function.Injective ⇑f
-- toDual_ratCast
@[simp] lemma toDual_ratCast [RatCast α] (n : ℚ) : toDual (n : α) = n 
Arguments: {α : Type u_1} [RatCast α] (n : ℚ)
Goal: OrderDual.toDual ↑n = ↑n
-- ofDual_ratCast
@[simp] lemma ofDual_ratCast [RatCast α] (n : ℚ) : (ofDual n : α) = n 
Arguments: {α : Type u_1} [RatCast α] (n : ℚ)
Goal: OrderDual.ofDual ↑n = ↑n
-- toLex_ratCast
@[simp] lemma toLex_ratCast [RatCast α] (n : ℚ) : toLex (n : α) = n 
Arguments: {α : Type u_1} [RatCast α] (n : ℚ)
Goal: toLex ↑n = ↑n
-- ofLex_ratCast
@[simp] lemma ofLex_ratCast [RatCast α] (n : ℚ) : (ofLex n : α) = n 
Arguments: {α : Type u_1} [RatCast α] (n : ℚ)
Goal: ofLex ↑n = ↑n
-- AddTorsor.vsub_vadd'
class AddTorsor (G : outParam Type*) (P : Type*) [AddGroup G] extends AddAction G P,
  VSub G P where
  [nonempty : Nonempty P]
    vsub_vadd' : ∀ p₁ p₂ : P, (p₁ -ᵥ p₂ : G) +ᵥ p₂ = p₁
    vadd_vsub' : ∀ (g : G) (p : P), g +ᵥ p -ᵥ p = g
Arguments: {G : outParam (Type u_1)} {P : Type u_2} [AddGroup G] [self : AddTorsor G P] (p₁ p₂ : P)
Goal: p₁ -ᵥ p₂ +ᵥ p₂ = p₁
-- AddTorsor.vadd_vsub'
class AddTorsor (G : outParam Type*) (P : Type*) [AddGroup G] extends AddAction G P,
  VSub G P where
  [nonempty : Nonempty P]
    vsub_vadd' : ∀ p₁ p₂ : P, (p₁ -ᵥ p₂ : G) +ᵥ p₂ = p₁
    vadd_vsub' : ∀ (g : G) (p : P), g +ᵥ p -ᵥ p = g
Arguments: {G : outParam (Type u_1)} {P : Type u_2} [AddGroup G] [self : AddTorsor G P] (g : G) (p : P)
Goal: g +ᵥ p -ᵥ p = g
-- AddTorsor.nonempty
class AddTorsor (G : outParam Type*) (P : Type*) [AddGroup G] extends AddAction G P,
  VSub G P where
  [nonempty : Nonempty P]
    vsub_vadd' : ∀ p₁ p₂ : P, (p₁ -ᵥ p₂ : G) +ᵥ p₂ = p₁
    vadd_vsub' : ∀ (g : G) (p : P), g +ᵥ p -ᵥ p = g
Arguments: {G : outParam (Type u_1)} {P : Type u_2} [AddGroup G] [self : AddTorsor G P]
Goal: Nonempty P
-- vsub_eq_sub
@[simp]
theorem vsub_eq_sub {G : Type*} [AddGroup G] (g₁ g₂ : G) : g₁ -ᵥ g₂ = g₁ - g₂ 
Arguments: {G : Type u_1} [AddGroup G] (g₁ g₂ : G)
Goal: g₁ -ᵥ g₂ = g₁ - g₂
-- vsub_vadd
@[simp]
theorem vsub_vadd (p₁ p₂ : P) : p₁ -ᵥ p₂ +ᵥ p₂ = p₁ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p₁ p₂ : P)
Goal: p₁ -ᵥ p₂ +ᵥ p₂ = p₁
-- vadd_vsub
@[simp]
theorem vadd_vsub (g : G) (p : P) : g +ᵥ p -ᵥ p = g 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (g : G) (p : P)
Goal: g +ᵥ p -ᵥ p = g
-- vadd_right_cancel
theorem vadd_right_cancel {g₁ g₂ : G} (p : P) (h : g₁ +ᵥ p = g₂ +ᵥ p) : g₁ = g₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {g₁ g₂ : G} (p : P) (h : g₁ +ᵥ p = g₂ +ᵥ p)
Goal: g₁ = g₂
-- vadd_right_cancel_iff
@[simp]
theorem vadd_right_cancel_iff {g₁ g₂ : G} (p : P) : g₁ +ᵥ p = g₂ +ᵥ p ↔ g₁ = g₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {g₁ g₂ : G} (p : P)
Goal: g₁ +ᵥ p = g₂ +ᵥ p ↔ g₁ = g₂
-- vadd_right_injective
theorem vadd_right_injective (p : P) : Function.Injective ((· +ᵥ p) : G → P) 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p : P)
Goal: Function.Injective fun x => x +ᵥ p
-- vadd_vsub_assoc
theorem vadd_vsub_assoc (g : G) (p₁ p₂ : P) : g +ᵥ p₁ -ᵥ p₂ = g + (p₁ -ᵥ p₂) 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (g : G) (p₁ p₂ : P)
Goal: g +ᵥ p₁ -ᵥ p₂ = g + (p₁ -ᵥ p₂)
-- vsub_self
@[simp]
theorem vsub_self (p : P) : p -ᵥ p = (0 : G) 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p : P)
Goal: p -ᵥ p = 0
-- eq_of_vsub_eq_zero
theorem eq_of_vsub_eq_zero {p₁ p₂ : P} (h : p₁ -ᵥ p₂ = (0 : G)) : p₁ = p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {p₁ p₂ : P} (h : p₁ -ᵥ p₂ = 0)
Goal: p₁ = p₂
-- vsub_eq_zero_iff_eq
@[simp]
theorem vsub_eq_zero_iff_eq {p₁ p₂ : P} : p₁ -ᵥ p₂ = (0 : G) ↔ p₁ = p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {p₁ p₂ : P}
Goal: p₁ -ᵥ p₂ = 0 ↔ p₁ = p₂
-- vsub_ne_zero
theorem vsub_ne_zero {p q : P} : p -ᵥ q ≠ (0 : G) ↔ p ≠ q 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {p q : P}
Goal: p -ᵥ q ≠ 0 ↔ p ≠ q
-- vsub_add_vsub_cancel
@[simp]
theorem vsub_add_vsub_cancel (p₁ p₂ p₃ : P) : p₁ -ᵥ p₂ + (p₂ -ᵥ p₃) = p₁ -ᵥ p₃ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p₁ p₂ p₃ : P)
Goal: p₁ -ᵥ p₂ + (p₂ -ᵥ p₃) = p₁ -ᵥ p₃
-- neg_vsub_eq_vsub_rev
@[simp]
theorem neg_vsub_eq_vsub_rev (p₁ p₂ : P) : -(p₁ -ᵥ p₂) = p₂ -ᵥ p₁ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p₁ p₂ : P)
Goal: -(p₁ -ᵥ p₂) = p₂ -ᵥ p₁
-- vadd_vsub_eq_sub_vsub
theorem vadd_vsub_eq_sub_vsub (g : G) (p q : P) : g +ᵥ p -ᵥ q = g - (q -ᵥ p) 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (g : G) (p q : P)
Goal: g +ᵥ p -ᵥ q = g - (q -ᵥ p)
-- vsub_vadd_eq_vsub_sub
theorem vsub_vadd_eq_vsub_sub (p₁ p₂ : P) (g : G) : p₁ -ᵥ (g +ᵥ p₂) = p₁ -ᵥ p₂ - g 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p₁ p₂ : P) (g : G)
Goal: p₁ -ᵥ (g +ᵥ p₂) = p₁ -ᵥ p₂ - g
-- vsub_sub_vsub_cancel_right
@[simp]
theorem vsub_sub_vsub_cancel_right (p₁ p₂ p₃ : P) : p₁ -ᵥ p₃ - (p₂ -ᵥ p₃) = p₁ -ᵥ p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p₁ p₂ p₃ : P)
Goal: p₁ -ᵥ p₃ - (p₂ -ᵥ p₃) = p₁ -ᵥ p₂
-- eq_vadd_iff_vsub_eq
theorem eq_vadd_iff_vsub_eq (p₁ : P) (g : G) (p₂ : P) : p₁ = g +ᵥ p₂ ↔ p₁ -ᵥ p₂ = g 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p₁ : P) (g : G) (p₂ : P)
Goal: p₁ = g +ᵥ p₂ ↔ p₁ -ᵥ p₂ = g
-- vadd_eq_vadd_iff_neg_add_eq_vsub
theorem vadd_eq_vadd_iff_neg_add_eq_vsub {v₁ v₂ : G} {p₁ p₂ : P} :
    v₁ +ᵥ p₁ = v₂ +ᵥ p₂ ↔ -v₁ + v₂ = p₁ -ᵥ p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {v₁ v₂ : G} {p₁ p₂ : P}
Goal: v₁ +ᵥ p₁ = v₂ +ᵥ p₂ ↔ -v₁ + v₂ = p₁ -ᵥ p₂
-- Set.singleton_vsub_self
theorem singleton_vsub_self (p : P) : ({p} : Set P) -ᵥ {p} = {(0 : G)} 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p : P)
Goal: {p} -ᵥ {p} = {0}
-- vadd_vsub_vadd_cancel_right
@[simp]
theorem vadd_vsub_vadd_cancel_right (v₁ v₂ : G) (p : P) : v₁ +ᵥ p -ᵥ (v₂ +ᵥ p) = v₁ - v₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (v₁ v₂ : G) (p : P)
Goal: v₁ +ᵥ p -ᵥ (v₂ +ᵥ p) = v₁ - v₂
-- vsub_left_cancel
theorem vsub_left_cancel {p₁ p₂ p : P} (h : p₁ -ᵥ p = p₂ -ᵥ p) : p₁ = p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {p₁ p₂ p : P} (h : p₁ -ᵥ p = p₂ -ᵥ p)
Goal: p₁ = p₂
-- vsub_left_cancel_iff
@[simp]
theorem vsub_left_cancel_iff {p₁ p₂ p : P} : p₁ -ᵥ p = p₂ -ᵥ p ↔ p₁ = p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {p₁ p₂ p : P}
Goal: p₁ -ᵥ p = p₂ -ᵥ p ↔ p₁ = p₂
-- vsub_left_injective
theorem vsub_left_injective (p : P) : Function.Injective ((· -ᵥ p) : P → G) 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p : P)
Goal: Function.Injective fun x => x -ᵥ p
-- vsub_right_cancel
theorem vsub_right_cancel {p₁ p₂ p : P} (h : p -ᵥ p₁ = p -ᵥ p₂) : p₁ = p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {p₁ p₂ p : P} (h : p -ᵥ p₁ = p -ᵥ p₂)
Goal: p₁ = p₂
-- vsub_right_cancel_iff
@[simp]
theorem vsub_right_cancel_iff {p₁ p₂ p : P} : p -ᵥ p₁ = p -ᵥ p₂ ↔ p₁ = p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] {p₁ p₂ p : P}
Goal: p -ᵥ p₁ = p -ᵥ p₂ ↔ p₁ = p₂
-- vsub_right_injective
theorem vsub_right_injective (p : P) : Function.Injective ((p -ᵥ ·) : P → G) 
Arguments: {G : Type u_1} {P : Type u_2} [AddGroup G] [T : AddTorsor G P] (p : P)
Goal: Function.Injective fun x => p -ᵥ x
-- vsub_sub_vsub_cancel_left
@[simp]
theorem vsub_sub_vsub_cancel_left (p₁ p₂ p₃ : P) : p₃ -ᵥ p₂ - (p₃ -ᵥ p₁) = p₁ -ᵥ p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddCommGroup G] [AddTorsor G P] (p₁ p₂ p₃ : P)
Goal: p₃ -ᵥ p₂ - (p₃ -ᵥ p₁) = p₁ -ᵥ p₂
-- vadd_vsub_vadd_cancel_left
@[simp]
theorem vadd_vsub_vadd_cancel_left (v : G) (p₁ p₂ : P) : v +ᵥ p₁ -ᵥ (v +ᵥ p₂) = p₁ -ᵥ p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddCommGroup G] [AddTorsor G P] (v : G) (p₁ p₂ : P)
Goal: v +ᵥ p₁ -ᵥ (v +ᵥ p₂) = p₁ -ᵥ p₂
-- vsub_vadd_comm
theorem vsub_vadd_comm (p₁ p₂ p₃ : P) : (p₁ -ᵥ p₂ : G) +ᵥ p₃ = p₃ -ᵥ p₂ +ᵥ p₁ 
Arguments: {G : Type u_1} {P : Type u_2} [AddCommGroup G] [AddTorsor G P] (p₁ p₂ p₃ : P)
Goal: p₁ -ᵥ p₂ +ᵥ p₃ = p₃ -ᵥ p₂ +ᵥ p₁
-- vadd_eq_vadd_iff_sub_eq_vsub
theorem vadd_eq_vadd_iff_sub_eq_vsub {v₁ v₂ : G} {p₁ p₂ : P} :
    v₁ +ᵥ p₁ = v₂ +ᵥ p₂ ↔ v₂ - v₁ = p₁ -ᵥ p₂ 
Arguments: {G : Type u_1} {P : Type u_2} [AddCommGroup G] [AddTorsor G P] {v₁ v₂ : G} {p₁ p₂ : P}
Goal: v₁ +ᵥ p₁ = v₂ +ᵥ p₂ ↔ v₂ - v₁ = p₁ -ᵥ p₂
-- vsub_sub_vsub_comm
theorem vsub_sub_vsub_comm (p₁ p₂ p₃ p₄ : P) : p₁ -ᵥ p₂ - (p₃ -ᵥ p₄) = p₁ -ᵥ p₃ - (p₂ -ᵥ p₄) 
Arguments: {G : Type u_1} {P : Type u_2} [AddCommGroup G] [AddTorsor G P] (p₁ p₂ p₃ p₄ : P)
Goal: p₁ -ᵥ p₂ - (p₃ -ᵥ p₄) = p₁ -ᵥ p₃ - (p₂ -ᵥ p₄)
-- Prod.fst_vadd
@[simp]
theorem fst_vadd (v : G × G') (p : P × P') : (v +ᵥ p).1 = v.1 +ᵥ p.1 
Arguments: {G : Type u_1} {G' : Type u_2} {P : Type u_3} {P' : Type u_4} [AddGroup G] [AddGroup G'] [AddTorsor G P] [AddTorsor G' P'] (v : G × G') (p : P × P')
Goal: (v +ᵥ p).1 = v.1 +ᵥ p.1
-- Prod.snd_vadd
@[simp]
theorem snd_vadd (v : G × G') (p : P × P') : (v +ᵥ p).2 = v.2 +ᵥ p.2 
Arguments: {G : Type u_1} {G' : Type u_2} {P : Type u_3} {P' : Type u_4} [AddGroup G] [AddGroup G'] [AddTorsor G P] [AddTorsor G' P'] (v : G × G') (p : P × P')
Goal: (v +ᵥ p).2 = v.2 +ᵥ p.2