ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Mathlib.Tactic.Monoidal.evalComp_cons
theorem evalComp_cons {f g h i j : C} (α : f ⟶ g) (η : g ⟶ h) {ηs : h ⟶ i} {θ : i ⟶ j} {ι : h ⟶ j}
    (pf_ι : ηs ≫ θ = ι)  :
    (α ≫ η ≫ ηs) ≫ θ = α ≫ η ≫ ι 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {f g h i j : C} (α : f ⟶ g) (η : g ⟶ h) {ηs : h ⟶ i} {θ : i ⟶ j} {ι : h ⟶ j} (pf_ι : CategoryTheory.CategoryStruct.comp ηs θ = ι)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp α (CategoryTheory.CategoryStruct.comp η ηs)) θ =
  CategoryTheory.CategoryStruct.comp α (CategoryTheory.CategoryStruct.comp η ι)
-- Mathlib.Tactic.Monoidal.evalWhiskerLeft_nil
@[nolint synTaut]
theorem evalWhiskerLeft_nil (f : C) (α : g ⟶ h) :
    f ◁ α = f ◁ α 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {g h : C} (f : C) (α : g ⟶ h)
Goal: CategoryTheory.MonoidalCategory.whiskerLeft f α = CategoryTheory.MonoidalCategory.whiskerLeft f α
-- Mathlib.Tactic.Monoidal.evalWhiskerLeft_of_cons
theorem evalWhiskerLeft_of_cons
    (α : g ⟶ h) (η : h ⟶ i) {ηs : i ⟶ j} {θ : f ⊗ i ⟶ f ⊗ j} (pf_θ : f ◁ ηs = θ) :
    f ◁ (α ≫ η ≫ ηs) = f ◁ α ≫ f ◁ η ≫ θ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g h i j : C} (α : g ⟶ h) (η : h ⟶ i) {ηs : i ⟶ j} {θ : CategoryTheory.MonoidalCategory.tensorObj f i ⟶ CategoryTheory.MonoidalCategory.tensorObj f j} (pf_θ : CategoryTheory.MonoidalCategory.whiskerLeft f ηs = θ)
Goal: CategoryTheory.MonoidalCategory.whiskerLeft f
    (CategoryTheory.CategoryStruct.comp α (CategoryTheory.CategoryStruct.comp η ηs)) =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft f α)
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft f η) θ)
-- Mathlib.Tactic.Monoidal.evalWhiskerLeft_comp
theorem evalWhiskerLeft_comp {η : h ⟶ i} {θ : g ⊗ h ⟶ g ⊗ i} {ι : f ⊗ g ⊗ h ⟶ f ⊗ g ⊗ i}
    {ι' : f ⊗ g ⊗ h ⟶ (f ⊗ g) ⊗ i} {ι'' : (f ⊗ g) ⊗ h ⟶ (f ⊗ g) ⊗ i}
    (pf_θ : g ◁ η = θ) (pf_ι : f ◁ θ = ι)
    (pf_ι' : ι ≫ (α_ _ _ _).inv = ι') (pf_ι'' : (α_ _ _ _).hom ≫ ι' = ι'') :
    (f ⊗ g) ◁ η = ι'' 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g h i : C} {η : h ⟶ i} {θ : CategoryTheory.MonoidalCategory.tensorObj g h ⟶ CategoryTheory.MonoidalCategory.tensorObj g i} {ι :
  CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj g h) ⟶
    CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj g i)} {ι' :
  CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj g h) ⟶
    CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f g) i} {ι'' :
  CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f g) h ⟶
    CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f g) i} (pf_θ : CategoryTheory.MonoidalCategory.whiskerLeft g η = θ) (pf_ι : CategoryTheory.MonoidalCategory.whiskerLeft f θ = ι) (pf_ι' : CategoryTheory.CategoryStruct.comp ι (CategoryTheory.MonoidalCategory.associator f g i).inv = ι') (pf_ι'' : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator f g h).hom ι' = ι'')
Goal: CategoryTheory.MonoidalCategory.whiskerLeft (CategoryTheory.MonoidalCategory.tensorObj f g) η = ι''
-- Mathlib.Tactic.Monoidal.evalWhiskerLeft_id
theorem evalWhiskerLeft_id {f g : C} {η : f ⟶ g}
    {η' : f ⟶ 𝟙_ C ⊗ g} {η'' : 𝟙_ C ⊗ f ⟶ 𝟙_ C ⊗ g}
    (pf_η' : η ≫ (λ_ _).inv = η') (pf_η'' : (λ_ _).hom ≫ η' = η'') :
    𝟙_ C ◁ η = η'' 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g : C} {η : f ⟶ g} {η' : f ⟶ CategoryTheory.MonoidalCategory.tensorObj (𝟙_ C) g} {η'' : CategoryTheory.MonoidalCategory.tensorObj (𝟙_ C) f ⟶ CategoryTheory.MonoidalCategory.tensorObj (𝟙_ C) g} (pf_η' : CategoryTheory.CategoryStruct.comp η (CategoryTheory.MonoidalCategory.leftUnitor g).inv = η') (pf_η'' : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.leftUnitor f).hom η' = η'')
Goal: CategoryTheory.MonoidalCategory.whiskerLeft (𝟙_ C) η = η''
-- Mathlib.Tactic.Monoidal.eval_comp
theorem eval_comp
    {η η' : f ⟶ g} {θ θ' : g ⟶ h} {ι : f ⟶ h}
    (pf_η : η = η') (pf_θ : θ = θ') (pf_ηθ : η' ≫ θ' = ι) :
    η ≫ θ = ι 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {f g h : C} {η η' : f ⟶ g} {θ θ' : g ⟶ h} {ι : f ⟶ h} (pf_η : η = η') (pf_θ : θ = θ') (pf_ηθ : CategoryTheory.CategoryStruct.comp η' θ' = ι)
Goal: CategoryTheory.CategoryStruct.comp η θ = ι
-- Mathlib.Tactic.Monoidal.eval_whiskerLeft
theorem eval_whiskerLeft
    {η η' : g ⟶ h} {θ : f ⊗ g ⟶ f ⊗ h}
    (pf_η : η = η') (pf_θ : f ◁ η' = θ) :
    f ◁ η = θ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g h : C} {η η' : g ⟶ h} {θ : CategoryTheory.MonoidalCategory.tensorObj f g ⟶ CategoryTheory.MonoidalCategory.tensorObj f h} (pf_η : η = η') (pf_θ : CategoryTheory.MonoidalCategory.whiskerLeft f η' = θ)
Goal: CategoryTheory.MonoidalCategory.whiskerLeft f η = θ
-- Mathlib.Tactic.Monoidal.eval_whiskerRight
theorem eval_whiskerRight
    {η η' : f ⟶ g} {θ : f ⊗ h ⟶ g ⊗ h}
    (pf_η : η = η') (pf_θ : η' ▷ h = θ) :
    η ▷ h = θ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g h : C} {η η' : f ⟶ g} {θ : CategoryTheory.MonoidalCategory.tensorObj f h ⟶ CategoryTheory.MonoidalCategory.tensorObj g h} (pf_η : η = η') (pf_θ : CategoryTheory.MonoidalCategory.whiskerRight η' h = θ)
Goal: CategoryTheory.MonoidalCategory.whiskerRight η h = θ
-- Mathlib.Tactic.Monoidal.eval_of
theorem eval_of (η : f ⟶ g) :
    η = 𝟙 _ ≫ η ≫ 𝟙 _ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {f g : C} (η : f ⟶ g)
Goal: η =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.id f)
    (CategoryTheory.CategoryStruct.comp η (CategoryTheory.CategoryStruct.id g))
-- Mathlib.Tactic.Monoidal.evalWhiskerRight_nil
@[nolint synTaut]
theorem evalWhiskerRight_nil (α : f ⟶ g) (h : C) :
    α ▷ h = α ▷ h 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g : C} (α : f ⟶ g) (h : C)
Goal: CategoryTheory.MonoidalCategory.whiskerRight α h = CategoryTheory.MonoidalCategory.whiskerRight α h
-- Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_of_of
theorem evalWhiskerRight_cons_of_of
    (α : f ⟶ g) (η : g ⟶ h) {ηs : h ⟶ i} {θ : h ⊗ j ⟶ i ⊗ j}
    (pf_θ : ηs ▷ j = θ) :
    (α ≫ η ≫ ηs) ▷ j = α ▷ j ≫ η ▷ j ≫ θ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g h i j : C} (α : f ⟶ g) (η : g ⟶ h) {ηs : h ⟶ i} {θ : CategoryTheory.MonoidalCategory.tensorObj h j ⟶ CategoryTheory.MonoidalCategory.tensorObj i j} (pf_θ : CategoryTheory.MonoidalCategory.whiskerRight ηs j = θ)
Goal: CategoryTheory.MonoidalCategory.whiskerRight
    (CategoryTheory.CategoryStruct.comp α (CategoryTheory.CategoryStruct.comp η ηs)) j =
  CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight α j)
    (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight η j) θ)
-- Mathlib.Tactic.Monoidal.evalWhiskerRight_cons_whisker
theorem evalWhiskerRight_cons_whisker
    {α : g ⟶ f ⊗ h} {η : h ⟶ i} {ηs : f ⊗ i ⟶ j} {k : C}
    {η₁ : h ⊗ k ⟶ i ⊗ k} {η₂ : f ⊗ (h ⊗ k) ⟶ f ⊗ (i ⊗ k)} {ηs₁ : (f ⊗ i) ⊗ k ⟶ j ⊗ k}
    {ηs₂ : f ⊗ (i ⊗ k) ⟶ j ⊗ k} {η₃ : f ⊗ (h ⊗ k) ⟶ j ⊗ k} {η₄ : (f ⊗ h) ⊗ k ⟶ j ⊗ k}
    {η₅ : g ⊗ k ⟶ j ⊗ k}
    (pf_η₁ : (𝟙 _ ≫ η ≫ 𝟙 _ ) ▷ k = η₁) (pf_η₂ : f ◁ η₁ = η₂)
    (pf_ηs₁ : ηs ▷ k = ηs₁) (pf_ηs₂ : (α_ _ _ _).inv ≫ ηs₁ = ηs₂)
    (pf_η₃ : η₂ ≫ ηs₂ = η₃) (pf_η₄ : (α_ _ _ _).hom ≫ η₃ = η₄) (pf_η₅ : α ▷ k ≫ η₄ = η₅) :
    (α ≫ (f ◁ η) ≫ ηs) ▷ k = η₅ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g h i j : C} {α : g ⟶ CategoryTheory.MonoidalCategory.tensorObj f h} {η : h ⟶ i} {ηs : CategoryTheory.MonoidalCategory.tensorObj f i ⟶ j} {k : C} {η₁ : CategoryTheory.MonoidalCategory.tensorObj h k ⟶ CategoryTheory.MonoidalCategory.tensorObj i k} {η₂ :
  CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj h k) ⟶
    CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj i k)} {ηs₁ :
  CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f i) k ⟶
    CategoryTheory.MonoidalCategory.tensorObj j k} {ηs₂ :
  CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj i k) ⟶
    CategoryTheory.MonoidalCategory.tensorObj j k} {η₃ :
  CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj h k) ⟶
    CategoryTheory.MonoidalCategory.tensorObj j k} {η₄ :
  CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f h) k ⟶
    CategoryTheory.MonoidalCategory.tensorObj j k} {η₅ : CategoryTheory.MonoidalCategory.tensorObj g k ⟶ CategoryTheory.MonoidalCategory.tensorObj j k} (pf_η₁ :
  CategoryTheory.MonoidalCategory.whiskerRight
      (CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.id h)
        (CategoryTheory.CategoryStruct.comp η (CategoryTheory.CategoryStruct.id i)))
      k =
    η₁) (pf_η₂ : CategoryTheory.MonoidalCategory.whiskerLeft f η₁ = η₂) (pf_ηs₁ : CategoryTheory.MonoidalCategory.whiskerRight ηs k = ηs₁) (pf_ηs₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator f i k).inv ηs₁ = ηs₂) (pf_η₃ : CategoryTheory.CategoryStruct.comp η₂ ηs₂ = η₃) (pf_η₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator f h k).hom η₃ = η₄) (pf_η₅ : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight α k) η₄ = η₅)
Goal: CategoryTheory.MonoidalCategory.whiskerRight
    (CategoryTheory.CategoryStruct.comp α
      (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft f η) ηs))
    k =
  η₅
-- Mathlib.Tactic.Monoidal.evalWhiskerRight_comp
theorem evalWhiskerRight_comp
    {η : f ⟶ f'} {η₁ : f ⊗ g ⟶ f' ⊗ g} {η₂ : (f ⊗ g) ⊗ h ⟶ (f' ⊗ g) ⊗ h}
    {η₃ : (f ⊗ g) ⊗ h ⟶ f' ⊗ (g ⊗ h)} {η₄ : f ⊗ (g ⊗ h) ⟶ f' ⊗ (g ⊗ h)}
    (pf_η₁ : η ▷ g = η₁) (pf_η₂ : η₁ ▷ h = η₂)
    (pf_η₃ : η₂ ≫ (α_ _ _ _).hom = η₃) (pf_η₄ : (α_ _ _ _).inv ≫ η₃ = η₄) :
    η ▷ (g ⊗ h) = η₄ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f f' g h : C} {η : f ⟶ f'} {η₁ : CategoryTheory.MonoidalCategory.tensorObj f g ⟶ CategoryTheory.MonoidalCategory.tensorObj f' g} {η₂ :
  CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f g) h ⟶
    CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f' g) h} {η₃ :
  CategoryTheory.MonoidalCategory.tensorObj (CategoryTheory.MonoidalCategory.tensorObj f g) h ⟶
    CategoryTheory.MonoidalCategory.tensorObj f' (CategoryTheory.MonoidalCategory.tensorObj g h)} {η₄ :
  CategoryTheory.MonoidalCategory.tensorObj f (CategoryTheory.MonoidalCategory.tensorObj g h) ⟶
    CategoryTheory.MonoidalCategory.tensorObj f' (CategoryTheory.MonoidalCategory.tensorObj g h)} (pf_η₁ : CategoryTheory.MonoidalCategory.whiskerRight η g = η₁) (pf_η₂ : CategoryTheory.MonoidalCategory.whiskerRight η₁ h = η₂) (pf_η₃ : CategoryTheory.CategoryStruct.comp η₂ (CategoryTheory.MonoidalCategory.associator f' g h).hom = η₃) (pf_η₄ : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator f g h).inv η₃ = η₄)
Goal: CategoryTheory.MonoidalCategory.whiskerRight η (CategoryTheory.MonoidalCategory.tensorObj g h) = η₄
-- Mathlib.Tactic.Monoidal.evalWhiskerRight_id
theorem evalWhiskerRight_id
    {η : f ⟶ g} {η₁ : f ⟶ g ⊗ 𝟙_ C} {η₂ : f ⊗ 𝟙_ C ⟶ g ⊗ 𝟙_ C}
    (pf_η₁ : η ≫ (ρ_ _).inv = η₁) (pf_η₂ : (ρ_ _).hom ≫ η₁ = η₂) :
    η ▷ 𝟙_ C = η₂ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g : C} {η : f ⟶ g} {η₁ : f ⟶ CategoryTheory.MonoidalCategory.tensorObj g (𝟙_ C)} {η₂ : CategoryTheory.MonoidalCategory.tensorObj f (𝟙_ C) ⟶ CategoryTheory.MonoidalCategory.tensorObj g (𝟙_ C)} (pf_η₁ : CategoryTheory.CategoryStruct.comp η (CategoryTheory.MonoidalCategory.rightUnitor g).inv = η₁) (pf_η₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.rightUnitor f).hom η₁ = η₂)
Goal: CategoryTheory.MonoidalCategory.whiskerRight η (𝟙_ C) = η₂
-- Mathlib.Tactic.Monoidal.eval_monoidalComp
theorem eval_monoidalComp
    {η η' : f ⟶ g} {α : g ⟶ h} {θ θ' : h ⟶ i} {αθ : g ⟶ i} {ηαθ : f ⟶ i}
    (pf_η : η = η') (pf_θ : θ = θ') (pf_αθ : α ≫ θ' = αθ) (pf_ηαθ : η' ≫ αθ = ηαθ) :
    η ≫ α ≫ θ = ηαθ 
Arguments: {C : Type u} [CategoryTheory.Category.{v, u} C] {f g h i : C} {η η' : f ⟶ g} {α : g ⟶ h} {θ θ' : h ⟶ i} {αθ : g ⟶ i} {ηαθ : f ⟶ i} (pf_η : η = η') (pf_θ : θ = θ') (pf_αθ : CategoryTheory.CategoryStruct.comp α θ' = αθ) (pf_ηαθ : CategoryTheory.CategoryStruct.comp η' αθ = ηαθ)
Goal: CategoryTheory.CategoryStruct.comp η (CategoryTheory.CategoryStruct.comp α θ) = ηαθ
-- mk_eq
theorem mk_eq {α : Type _} (a b a' b' : α) (ha : a = a') (hb : b = b') (h : a' = b') : a = b 
Arguments: {α : Type u_1} (a b a' b' : α) (ha : a = a') (hb : b = b') (h : a' = b')
Goal: a = b
-- Mathlib.Tactic.Abel.const_add_term
theorem const_add_term {α} [AddCommMonoid α] (k n x a a') (h : k + a = a') :
    k + @term α _ n x a = term n x a' 
Arguments: {α : Type u_1} [AddCommMonoid α] (k : α) (n : ℕ) (x a a' : α) (h : k + a = a')
Goal: k + Mathlib.Tactic.Abel.term n x a = Mathlib.Tactic.Abel.term n x a'
-- Mathlib.Tactic.Abel.const_add_termg
theorem const_add_termg {α} [AddCommGroup α] (k n x a a') (h : k + a = a') :
    k + @termg α _ n x a = termg n x a' 
Arguments: {α : Type u_1} [AddCommGroup α] (k : α) (n : ℤ) (x a a' : α) (h : k + a = a')
Goal: k + Mathlib.Tactic.Abel.termg n x a = Mathlib.Tactic.Abel.termg n x a'
-- Mathlib.Tactic.Abel.term_add_const
theorem term_add_const {α} [AddCommMonoid α] (n x a k a') (h : a + k = a') :
    @term α _ n x a + k = term n x a' 
Arguments: {α : Type u_1} [AddCommMonoid α] (n : ℕ) (x a k a' : α) (h : a + k = a')
Goal: Mathlib.Tactic.Abel.term n x a + k = Mathlib.Tactic.Abel.term n x a'
-- Mathlib.Tactic.Abel.term_add_constg
theorem term_add_constg {α} [AddCommGroup α] (n x a k a') (h : a + k = a') :
    @termg α _ n x a + k = termg n x a' 
Arguments: {α : Type u_1} [AddCommGroup α] (n : ℤ) (x a k a' : α) (h : a + k = a')
Goal: Mathlib.Tactic.Abel.termg n x a + k = Mathlib.Tactic.Abel.termg n x a'
-- Mathlib.Tactic.Abel.term_add_term
theorem term_add_term {α} [AddCommMonoid α] (n₁ x a₁ n₂ a₂ n' a') (h₁ : n₁ + n₂ = n')
    (h₂ : a₁ + a₂ = a') : @term α _ n₁ x a₁ + @term α _ n₂ x a₂ = term n' x a' 
Arguments: {α : Type u_1} [AddCommMonoid α] (n₁ : ℕ) (x a₁ : α) (n₂ : ℕ) (a₂ : α) (n' : ℕ) (a' : α) (h₁ : n₁ + n₂ = n') (h₂ : a₁ + a₂ = a')
Goal: Mathlib.Tactic.Abel.term n₁ x a₁ + Mathlib.Tactic.Abel.term n₂ x a₂ = Mathlib.Tactic.Abel.term n' x a'
-- Mathlib.Tactic.Abel.term_add_termg
theorem term_add_termg {α} [AddCommGroup α] (n₁ x a₁ n₂ a₂ n' a')
    (h₁ : n₁ + n₂ = n') (h₂ : a₁ + a₂ = a') :
    @termg α _ n₁ x a₁ + @termg α _ n₂ x a₂ = termg n' x a' 
Arguments: {α : Type u_1} [AddCommGroup α] (n₁ : ℤ) (x a₁ : α) (n₂ : ℤ) (a₂ : α) (n' : ℤ) (a' : α) (h₁ : n₁ + n₂ = n') (h₂ : a₁ + a₂ = a')
Goal: Mathlib.Tactic.Abel.termg n₁ x a₁ + Mathlib.Tactic.Abel.termg n₂ x a₂ = Mathlib.Tactic.Abel.termg n' x a'
-- Mathlib.Tactic.Abel.zero_term
theorem zero_term {α} [AddCommMonoid α] (x a) : @term α _ 0 x a = a 
Arguments: {α : Type u_1} [AddCommMonoid α] (x a : α)
Goal: Mathlib.Tactic.Abel.term 0 x a = a
-- Mathlib.Tactic.Abel.zero_termg
theorem zero_termg {α} [AddCommGroup α] (x a) : @termg α _ 0 x a = a 
Arguments: {α : Type u_1} [AddCommGroup α] (x a : α)
Goal: Mathlib.Tactic.Abel.termg 0 x a = a
-- Mathlib.Tactic.Abel.term_neg
theorem term_neg {α} [AddCommGroup α] (n x a n' a')
    (h₁ : -n = n') (h₂ : -a = a') : -@termg α _ n x a = termg n' x a' 
Arguments: {α : Type u_1} [AddCommGroup α] (n : ℤ) (x a : α) (n' : ℤ) (a' : α) (h₁ : -n = n') (h₂ : -a = a')
Goal: -Mathlib.Tactic.Abel.termg n x a = Mathlib.Tactic.Abel.termg n' x a'
-- Mathlib.Tactic.Abel.zero_smul
theorem zero_smul {α} [AddCommMonoid α] (c) : smul c (0 : α) = 0 
Arguments: {α : Type u_1} [AddCommMonoid α] (c : ℕ)
Goal: Mathlib.Tactic.Abel.smul c 0 = 0
-- Mathlib.Tactic.Abel.zero_smulg
theorem zero_smulg {α} [AddCommGroup α] (c) : smulg c (0 : α) = 0 
Arguments: {α : Type u_1} [AddCommGroup α] (c : ℤ)
Goal: Mathlib.Tactic.Abel.smulg c 0 = 0
-- Mathlib.Tactic.Abel.term_smul
theorem term_smul {α} [AddCommMonoid α] (c n x a n' a')
    (h₁ : c * n = n') (h₂ : smul c a = a') :
    smul c (@term α _ n x a) = term n' x a' 
Arguments: {α : Type u_1} [AddCommMonoid α] (c n : ℕ) (x a : α) (n' : ℕ) (a' : α) (h₁ : c * n = n') (h₂ : Mathlib.Tactic.Abel.smul c a = a')
Goal: Mathlib.Tactic.Abel.smul c (Mathlib.Tactic.Abel.term n x a) = Mathlib.Tactic.Abel.term n' x a'
-- Mathlib.Tactic.Abel.term_smulg
theorem term_smulg {α} [AddCommGroup α] (c n x a n' a')
    (h₁ : c * n = n') (h₂ : smulg c a = a') :
    smulg c (@termg α _ n x a) = termg n' x a' 
Arguments: {α : Type u_1} [AddCommGroup α] (c n : ℤ) (x a : α) (n' : ℤ) (a' : α) (h₁ : c * n = n') (h₂ : Mathlib.Tactic.Abel.smulg c a = a')
Goal: Mathlib.Tactic.Abel.smulg c (Mathlib.Tactic.Abel.termg n x a) = Mathlib.Tactic.Abel.termg n' x a'
-- Mathlib.Tactic.Abel.term_atom
theorem term_atom {α} [AddCommMonoid α] (x : α) : x = term 1 x 0 
Arguments: {α : Type u_1} [AddCommMonoid α] (x : α)
Goal: x = Mathlib.Tactic.Abel.term 1 x 0
-- Mathlib.Tactic.Abel.term_atomg
theorem term_atomg {α} [AddCommGroup α] (x : α) : x = termg 1 x 0 
Arguments: {α : Type u_1} [AddCommGroup α] (x : α)
Goal: x = Mathlib.Tactic.Abel.termg 1 x 0
-- Mathlib.Tactic.Abel.term_atom_pf
theorem term_atom_pf {α} [AddCommMonoid α] (x x' : α) (h : x = x') : x = term 1 x' 0 
Arguments: {α : Type u_1} [AddCommMonoid α] (x x' : α) (h : x = x')
Goal: x = Mathlib.Tactic.Abel.term 1 x' 0
-- Mathlib.Tactic.Abel.term_atom_pfg
theorem term_atom_pfg {α} [AddCommGroup α] (x x' : α) (h : x = x') : x = termg 1 x' 0 
Arguments: {α : Type u_1} [AddCommGroup α] (x x' : α) (h : x = x')
Goal: x = Mathlib.Tactic.Abel.termg 1 x' 0
-- Mathlib.Tactic.Abel.unfold_sub
theorem unfold_sub {α} [SubtractionMonoid α] (a b c : α) (h : a + -b = c) : a - b = c 
Arguments: {α : Type u_1} [SubtractionMonoid α] (a b c : α) (h : a + -b = c)
Goal: a - b = c
-- Mathlib.Tactic.Abel.unfold_smul
theorem unfold_smul {α} [AddCommMonoid α] (n) (x y : α)
    (h : smul n x = y) : n • x = y 
Arguments: {α : Type u_1} [AddCommMonoid α] (n : ℕ) (x y : α) (h : Mathlib.Tactic.Abel.smul n x = y)
Goal: n • x = y
-- Mathlib.Tactic.Abel.unfold_smulg
theorem unfold_smulg {α} [AddCommGroup α] (n : ℕ) (x y : α)
    (h : smulg (Int.ofNat n) x = y) : (n : ℤ) • x = y 
Arguments: {α : Type u_1} [AddCommGroup α] (n : ℕ) (x y : α) (h : Mathlib.Tactic.Abel.smulg (Int.ofNat n) x = y)
Goal: ↑n • x = y
-- Mathlib.Tactic.Abel.unfold_zsmul
theorem unfold_zsmul {α} [AddCommGroup α] (n : ℤ) (x y : α)
    (h : smulg n x = y) : n • x = y 
Arguments: {α : Type u_1} [AddCommGroup α] (n : ℤ) (x y : α) (h : Mathlib.Tactic.Abel.smulg n x = y)
Goal: n • x = y
-- Mathlib.Tactic.Abel.subst_into_smul
lemma subst_into_smul {α} [AddCommMonoid α]
    (l r tl tr t) (prl : l = tl) (prr : r = tr)
    (prt : @smul α _ tl tr = t) : smul l r = t 
Arguments: {α : Type u_1} [AddCommMonoid α] (l : ℕ) (r : α) (tl : ℕ) (tr t : α) (prl : l = tl) (prr : r = tr) (prt : Mathlib.Tactic.Abel.smul tl tr = t)
Goal: Mathlib.Tactic.Abel.smul l r = t
-- Mathlib.Tactic.Abel.subst_into_smulg
lemma subst_into_smulg {α} [AddCommGroup α]
    (l r tl tr t) (prl : l = tl) (prr : r = tr)
    (prt : @smulg α _ tl tr = t) : smulg l r = t 
Arguments: {α : Type u_1} [AddCommGroup α] (l : ℤ) (r : α) (tl : ℤ) (tr t : α) (prl : l = tl) (prr : r = tr) (prt : Mathlib.Tactic.Abel.smulg tl tr = t)
Goal: Mathlib.Tactic.Abel.smulg l r = t
-- Mathlib.Tactic.Abel.subst_into_smul_upcast
lemma subst_into_smul_upcast {α} [AddCommGroup α]
    (l r tl zl tr t) (prl₁ : l = tl) (prl₂ : ↑tl = zl) (prr : r = tr)
    (prt : @smulg α _ zl tr = t) : smul l r = t 
Arguments: {α : Type u_1} [AddCommGroup α] (l : ℕ) (r : α) (tl : ℕ) (zl : ℤ) (tr t : α) (prl₁ : l = tl) (prl₂ : ↑tl = zl) (prr : r = tr) (prt : Mathlib.Tactic.Abel.smulg zl tr = t)
Goal: Mathlib.Tactic.Abel.smul l r = t
-- Mathlib.Tactic.Abel.subst_into_add
lemma subst_into_add {α} [AddCommMonoid α] (l r tl tr t)
    (prl : (l : α) = tl) (prr : r = tr) (prt : tl + tr = t) : l + r = t 
Arguments: {α : Type u_1} [AddCommMonoid α] (l r tl tr t : α) (prl : l = tl) (prr : r = tr) (prt : tl + tr = t)
Goal: l + r = t
-- Mathlib.Tactic.Abel.subst_into_addg
lemma subst_into_addg {α} [AddCommGroup α] (l r tl tr t)
    (prl : (l : α) = tl) (prr : r = tr) (prt : tl + tr = t) : l + r = t 
Arguments: {α : Type u_1} [AddCommGroup α] (l r tl tr t : α) (prl : l = tl) (prr : r = tr) (prt : tl + tr = t)
Goal: l + r = t
-- Mathlib.Tactic.Abel.subst_into_negg
lemma subst_into_negg {α} [AddCommGroup α] (a ta t : α)
    (pra : a = ta) (prt : -ta = t) : -a = t 
Arguments: {α : Type u_1} [AddCommGroup α] (a ta t : α) (pra : a = ta) (prt : -ta = t)
Goal: -a = t
-- Mathlib.Tactic.Abel.term_eq
theorem term_eq {α : Type*} [AddCommMonoid α] (n : ℕ) (x a : α) : term n x a = n • x + a 
Arguments: {α : Type u_1} [AddCommMonoid α] (n : ℕ) (x a : α)
Goal: Mathlib.Tactic.Abel.term n x a = n • x + a
-- Mathlib.Tactic.Abel.termg_eq
theorem termg_eq {α : Type*} [AddCommGroup α] (n : ℤ) (x a : α) : termg n x a = n • x + a 
Arguments: {α : Type u_1} [AddCommGroup α] (n : ℤ) (x a : α)
Goal: Mathlib.Tactic.Abel.termg n x a = n • x + a
-- Mathlib.Tactic.Nontriviality.subsingleton_or_nontrivial_elim
theorem subsingleton_or_nontrivial_elim {p : Prop} {α : Type u}
    (h₁ : Subsingleton α → p) (h₂ : Nontrivial α → p) : p 
Arguments: {p : Prop} {α : Type u} (h₁ : Subsingleton α → p) (h₂ : Nontrivial α → p)
Goal: p
-- Mathlib.Tactic.RingNF.add_assoc_rev
theorem add_assoc_rev (a b c : R) : a + (b + c) = a + b + c 
Arguments: {R : Type u_1} [CommSemiring R] (a b c : R)
Goal: a + (b + c) = a + b + c
-- Mathlib.Tactic.RingNF.mul_assoc_rev
theorem mul_assoc_rev (a b c : R) : a * (b * c) = a * b * c 
Arguments: {R : Type u_1} [CommSemiring R] (a b c : R)
Goal: a * (b * c) = a * b * c
-- Mathlib.Tactic.RingNF.mul_neg
theorem mul_neg {R} [Ring R] (a b : R) : a * -b = -(a * b) 
Arguments: {R : Type u_2} [Ring R] (a b : R)
Goal: a * -b = -(a * b)
-- Mathlib.Tactic.RingNF.add_neg
theorem add_neg {R} [Ring R] (a b : R) : a + -b = a - b 
Arguments: {R : Type u_2} [Ring R] (a b : R)
Goal: a + -b = a - b
-- Mathlib.Tactic.RingNF.nat_rawCast_0
theorem nat_rawCast_0 : (Nat.rawCast 0 : R) = 0 
Arguments: {R : Type u_1} [CommSemiring R]
Goal: Nat.rawCast 0 = 0
-- Mathlib.Tactic.RingNF.nat_rawCast_1
theorem nat_rawCast_1 : (Nat.rawCast 1 : R) = 1 
Arguments: {R : Type u_1} [CommSemiring R]
Goal: Nat.rawCast 1 = 1
-- Mathlib.Tactic.RingNF.nat_rawCast_2
theorem nat_rawCast_2 [Nat.AtLeastTwo n] : (Nat.rawCast n : R) = OfNat.ofNat n 
Arguments: {R : Type u_1} [CommSemiring R] {n : ℕ} [n.AtLeastTwo]
Goal: n.rawCast = OfNat.ofNat n
-- Mathlib.Tactic.RingNF.int_rawCast_neg
theorem int_rawCast_neg {R} [Ring R] : (Int.rawCast (.negOfNat n) : R) = -Nat.rawCast n 
Arguments: {n : ℕ} {R : Type u_2} [Ring R]
Goal: (Int.negOfNat n).rawCast = -n.rawCast
-- Mathlib.Tactic.RingNF.rat_rawCast_pos
theorem rat_rawCast_pos {R} [DivisionRing R] :
    (Rat.rawCast (.ofNat n) d : R) = Nat.rawCast n / Nat.rawCast d 
Arguments: {n d : ℕ} {R : Type u_2} [DivisionRing R]
Goal: Rat.rawCast (Int.ofNat n) d = n.rawCast / d.rawCast
-- Mathlib.Tactic.RingNF.rat_rawCast_neg
theorem rat_rawCast_neg {R} [DivisionRing R] :
    (Rat.rawCast (.negOfNat n) d : R) = Int.rawCast (.negOfNat n) / Nat.rawCast d 
Arguments: {n d : ℕ} {R : Type u_2} [DivisionRing R]
Goal: Rat.rawCast (Int.negOfNat n) d = (Int.negOfNat n).rawCast / d.rawCast
-- CanLift.prf
class CanLift (α β : Sort*) (coe : outParam <| β → α) (cond : outParam <| α → Prop) : Prop where
    prf : ∀ x : α, cond x → ∃ y : β, coe y = x
Arguments: {α : Sort u_1} {β : Sort u_2} {coe : outParam (β → α)} {cond : outParam (α → Prop)} [self : CanLift α β coe cond] (x : α)
Goal: cond x → ∃ y, coe y = x