1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.coyonedaEquiv_naturality
File: Mathlib/CategoryTheory/Yoneda.lean

tactic: change (f.app X ≫ F.map g) (𝟙 X) = f.app Y (g ≫ 𝟙 Y)
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
F : C ⥤ Type v₁
f : coyoneda.obj { unop := X } ⟶ F
g : X ⟶ Y
⊢ F.map g (coyonedaEquiv f) = coyonedaEquiv (coyoneda.map g.op ≫ f)
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
F : C ⥤ Type v₁
f : coyoneda.obj { unop := X } ⟶ F
g : X ⟶ Y
⊢ (f.app X ≫ F.map g) (𝟙 X) = f.app Y (g ≫ 𝟙 Y)

tactic: rw [← f.naturality]
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
F : C ⥤ Type v₁
f : coyoneda.obj { unop := X } ⟶ F
g : X ⟶ Y
⊢ (f.app X ≫ F.map g) (𝟙 X) = f.app Y (g ≫ 𝟙 Y)
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
F : C ⥤ Type v₁
f : coyoneda.obj { unop := X } ⟶ F
g : X ⟶ Y
⊢ ((coyoneda.obj { unop := X }).map g ≫ f.app Y) (𝟙 X) = f.app Y (g ≫ 𝟙 Y)

tactic: dsimp
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
F : C ⥤ Type v₁
f : coyoneda.obj { unop := X } ⟶ F
g : X ⟶ Y
⊢ ((coyoneda.obj { unop := X }).map g ≫ f.app Y) (𝟙 X) = f.app Y (g ≫ 𝟙 Y)
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
F : C ⥤ Type v₁
f : coyoneda.obj { unop := X } ⟶ F
g : X ⟶ Y
⊢ f.app Y (𝟙 X ≫ g) = f.app Y (g ≫ 𝟙 Y)

tactic: simp
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y : C
F : C ⥤ Type v₁
f : coyoneda.obj { unop := X } ⟶ F
g : X ⟶ Y
⊢ f.app Y (𝟙 X ≫ g) = f.app Y (g ≫ 𝟙 Y)
state_after: no goals
Theorem: CategoryTheory.Pretriangulated.Triangle.coyoneda_exact₁
File: Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean

tactic: aesop_cat
state_before: C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : HasZeroObject C
inst✝² : HasShift C ℤ
inst✝¹ : Preadditive C
inst✝ : ∀ (n : ℤ), (CategoryTheory.shiftFunctor C n).Additive
hC : Pretriangulated C
T : Triangle C
hT : T ∈ distinguishedTriangles
X : C
f : X ⟶ (CategoryTheory.shiftFunctor C 1).obj T.obj₁
hf : f ≫ (CategoryTheory.shiftFunctor C 1).map T.mor₁ = 0
⊢ f ≫ T.rotate.rotate.mor₂ = 0
state_after: no goals
Theorem: ball_mul
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: rw [mul_comm, mul_ball]
state_before: E : Type u_1
inst✝ : SeminormedCommGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ ball x δ * s = x • thickening δ s
state_after: no goals
Theorem: iUnion_Icc_add_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [iUnion_Ioc_add_zsmul hp a, univ_subset_iff] using
  iUnion_mono fun n : ℤ => (Ioc_subset_Icc_self : Ioc (a + n • p) (a + (n + 1) • p) ⊆ Icc _ _)
state_before: α : Type u_1
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : Archimedean α
p : α
hp : 0 < p
a : α
⊢ ⋃ n, Icc (a + n • p) (a + (n + 1) • p) = univ
state_after: no goals
Theorem: lt_max_of_sq_lt_mul
File: Mathlib/Algebra/Order/Monoid/Unbundled/Pow.lean

tactic: simpa using min_lt_max_of_mul_lt_mul ((pow_two _).symm.trans_lt h)
state_before: β : Type u_1
G : Type u_2
M : Type u_3
inst✝³ : Monoid M
inst✝² : LinearOrder M
inst✝¹ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass M M (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : M
h : a ^ 2 < b * c
⊢ a < max b c
state_after: no goals
Theorem: AlgebraicGeometry.Scheme.Pullback.t'_snd_snd
File: Mathlib/AlgebraicGeometry/Pullbacks.lean

tactic: simp only [t', Category.assoc, pullbackSymmetry_hom_comp_snd_assoc,
  pullbackRightPullbackFstIso_inv_fst_assoc, pullback.lift_fst_assoc, t_snd,
  pullbackRightPullbackFstIso_hom_fst_assoc]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
X Y Z : Scheme
𝒰 : X.OpenCover
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : ∀ (i : 𝒰.J), HasPullback (𝒰.map i ≫ f) g
i j k : 𝒰.J
⊢ t' 𝒰 f g i j k ≫ pullback.snd ≫ pullback.snd = pullback.fst ≫ pullback.fst ≫ pullback.fst
state_after: no goals
Theorem: AffineSubspace.sOppSide_vadd_left_iff
File: Mathlib/Analysis/Convex/Side.lean

tactic: rw [SOppSide, SOppSide, wOppSide_vadd_left_iff hv, vadd_mem_iff_mem_of_mem_direction hv]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
v : V
hv : v ∈ s.direction
⊢ s.SOppSide (v +ᵥ x) y ↔ s.SOppSide x y
state_after: no goals
Theorem: map_extChartAt_nhds'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).source
state_after: no goals
Theorem: Surreal.Multiplication.mulOption_lt_mul_iff_P3
File: Mathlib/SetTheory/Surreal/Multiplication.lean

tactic: dsimp only [mulOption, quot_sub, quot_add]
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
i : x.LeftMoves
j : y.LeftMoves
⊢ ⟦x.mulOption y i j⟧ < ⟦x * y⟧ ↔ P3 (x.moveLeft i) x (y.moveLeft j) y
state_after: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
i : x.LeftMoves
j : y.LeftMoves
⊢ ⟦x.moveLeft i * y⟧ + ⟦x * y.moveLeft j⟧ - ⟦x.moveLeft i * y.moveLeft j⟧ < ⟦x * y⟧ ↔
    P3 (x.moveLeft i) x (y.moveLeft j) y

tactic: exact sub_lt_iff_lt_add'
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
i : x.LeftMoves
j : y.LeftMoves
⊢ ⟦x.moveLeft i * y⟧ + ⟦x * y.moveLeft j⟧ - ⟦x.moveLeft i * y.moveLeft j⟧ < ⟦x * y⟧ ↔
    P3 (x.moveLeft i) x (y.moveLeft j) y
state_after: no goals
Theorem: WeierstrassCurve.Affine.CoordinateRing.mk_XYIdeal'_mul_mk_XYIdeal'_of_Yeq
File: Mathlib/AlgebraicGeometry/EllipticCurve/Group.lean

tactic: rw [← _root_.map_mul]
state_before: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : CommRing S
W✝ : Affine R
f : R →+* S
F : Type u
inst✝ : Field F
W : Affine F
x y : F
h : W.Nonsingular x y
⊢ ClassGroup.mk (XYIdeal' ⋯) * ClassGroup.mk (XYIdeal' h) = 1
state_after: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : CommRing S
W✝ : Affine R
f : R →+* S
F : Type u
inst✝ : Field F
W : Affine F
x y : F
h : W.Nonsingular x y
⊢ ClassGroup.mk (XYIdeal' ⋯ * XYIdeal' h) = 1

tactic: exact
  (ClassGroup.mk_eq_one_of_coe_ideal <| by exact (FractionalIdeal.coeIdeal_mul ..).symm.trans <|
    FractionalIdeal.coeIdeal_inj.mpr <| XYIdeal_neg_mul h).mpr ⟨_, XClass_ne_zero W _, rfl⟩
state_before: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : CommRing S
W✝ : Affine R
f : R →+* S
F : Type u
inst✝ : Field F
W : Affine F
x y : F
h : W.Nonsingular x y
⊢ ClassGroup.mk (XYIdeal' ⋯ * XYIdeal' h) = 1
state_after: no goals

tactic: exact (FractionalIdeal.coeIdeal_mul ..).symm.trans <|
FractionalIdeal.coeIdeal_inj.mpr <| XYIdeal_neg_mul h
state_before: R : Type u
S : Type v
inst✝² : CommRing R
inst✝¹ : CommRing S
W✝ : Affine R
f : R →+* S
F : Type u
inst✝ : Field F
W : Affine F
x y : F
h : W.Nonsingular x y
⊢ ↑(XYIdeal' ⋯ * XYIdeal' h) = ↑(span {XClass W ?m.539625})
state_after: no goals
Theorem: Vector.ofFn_get
File: Mathlib/Data/Vector/Basic.lean

tactic: rcases v with ⟨l, rfl⟩
state_before: n : ℕ
α : Type u_1
v : Vector α n
⊢ ofFn v.get = v
state_after: case mk
α : Type u_1
l : List α
⊢ ofFn (get ⟨l, ⋯⟩) = ⟨l, ⋯⟩

tactic: apply toList_injective
state_before: case mk
α : Type u_1
l : List α
⊢ ofFn (get ⟨l, ⋯⟩) = ⟨l, ⋯⟩
state_after: case mk.a
α : Type u_1
l : List α
⊢ (ofFn (get ⟨l, ⋯⟩)).toList = toList ⟨l, ⋯⟩

tactic: dsimp
state_before: case mk.a
α : Type u_1
l : List α
⊢ (ofFn (get ⟨l, ⋯⟩)).toList = toList ⟨l, ⋯⟩
state_after: case mk.a
α : Type u_1
l : List α
⊢ (ofFn (get ⟨l, ⋯⟩)).toList = l

tactic: simpa only [toList_ofFn] using List.ofFn_get _
state_before: case mk.a
α : Type u_1
l : List α
⊢ (ofFn (get ⟨l, ⋯⟩)).toList = l
state_after: no goals
Theorem: Mon_.one_leftUnitor
File: Mathlib/CategoryTheory/Monoidal/Mon_.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
M : Mon_ C
⊢ ((λ_ (𝟙_ C)).inv ≫ (𝟙 (𝟙_ C) ⊗ M.one)) ≫ (λ_ M.X).hom = M.one
state_after: no goals
Theorem: TangentBundle.continuousLinearMapAt_model_space
File: Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean

tactic: rw [TangentBundle.trivializationAt_continuousLinearMapAt, coordChange_model_space]
state_before: 𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' : F
⊢ Trivialization.continuousLinearMapAt 𝕜 (trivializationAt F (TangentSpace 𝓘(𝕜, F)) b) b' = 1
state_after: case hb
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' : F
⊢ b' ∈ (trivializationAt F (TangentSpace 𝓘(𝕜, F)) b).baseSet

tactic: apply mem_univ
state_before: case hb
𝕜 : Type u_1
inst✝¹⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedSpace 𝕜 E
E' : Type u_3
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H : Type u_4
inst✝⁹ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
H' : Type u_5
inst✝⁸ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_6
inst✝⁷ : TopologicalSpace M
inst✝⁶ : ChartedSpace H M
inst✝⁵ : SmoothManifoldWithCorners I M
M' : Type u_7
inst✝⁴ : TopologicalSpace M'
inst✝³ : ChartedSpace H' M'
inst✝² : SmoothManifoldWithCorners I' M'
F : Type u_8
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
b b' : F
⊢ b' ∈ (trivializationAt F (TangentSpace 𝓘(𝕜, F)) b).baseSet
state_after: no goals
Theorem: BoxIntegral.Prepartition.ofWithBot_le
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: have : ∀ J : Box ι, ↑J ∈ boxes → ∃ J' ∈ π, J ≤ J' := fun J hJ => by
  simpa only [WithBot.coe_le_coe] using H J hJ WithBot.coe_ne_bot
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
boxes : Finset (WithBot (Box ι))
le_of_mem : ∀ J ∈ boxes, J ≤ ↑I
pairwise_disjoint : (↑boxes).Pairwise Disjoint
H : ∀ J ∈ boxes, J ≠ ⊥ → ∃ J' ∈ π, J ≤ ↑J'
⊢ ofWithBot boxes le_of_mem pairwise_disjoint ≤ π
state_after: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
boxes : Finset (WithBot (Box ι))
le_of_mem : ∀ J ∈ boxes, J ≤ ↑I
pairwise_disjoint : (↑boxes).Pairwise Disjoint
H : ∀ J ∈ boxes, J ≠ ⊥ → ∃ J' ∈ π, J ≤ ↑J'
this : ∀ (J : Box ι), ↑J ∈ boxes → ∃ J' ∈ π, J ≤ J'
⊢ ofWithBot boxes le_of_mem pairwise_disjoint ≤ π

tactic: simpa [ofWithBot, le_def]
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
boxes : Finset (WithBot (Box ι))
le_of_mem : ∀ J ∈ boxes, J ≤ ↑I
pairwise_disjoint : (↑boxes).Pairwise Disjoint
H : ∀ J ∈ boxes, J ≠ ⊥ → ∃ J' ∈ π, J ≤ ↑J'
this : ∀ (J : Box ι), ↑J ∈ boxes → ∃ J' ∈ π, J ≤ J'
⊢ ofWithBot boxes le_of_mem pairwise_disjoint ≤ π
state_after: no goals

tactic: simpa only [WithBot.coe_le_coe] using H J hJ WithBot.coe_ne_bot
state_before: ι : Type u_1
I J✝ J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
boxes : Finset (WithBot (Box ι))
le_of_mem : ∀ J ∈ boxes, J ≤ ↑I
pairwise_disjoint : (↑boxes).Pairwise Disjoint
H : ∀ J ∈ boxes, J ≠ ⊥ → ∃ J' ∈ π, J ≤ ↑J'
J : Box ι
hJ : ↑J ∈ boxes
⊢ ∃ J' ∈ π, J ≤ J'
state_after: no goals
Theorem: CliffordAlgebra.EquivEven.neg_v_mul_e0
File: Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean

tactic: rw [neg_eq_iff_eq_neg]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
m : M
⊢ -((v Q) m * e0 Q) = e0 Q * (v Q) m
state_after: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
m : M
⊢ (v Q) m * e0 Q = -(e0 Q * (v Q) m)

tactic: exact (neg_e0_mul_v _ m).symm
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
m : M
⊢ (v Q) m * e0 Q = -(e0 Q * (v Q) m)
state_after: no goals
Theorem: StarSubalgebra.sInf_toSubalgebra
File: Mathlib/Algebra/Star/Subalgebra.lean

tactic: simp
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
S : Set (StarSubalgebra R A)
⊢ ↑(sInf S).toSubalgebra = ↑(sInf (toSubalgebra '' S))
state_after: no goals
Theorem: finprod_eq_mulIndicator_apply
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: classical convert finprod_eq_if (M := M) (p := a ∈ s) (x := f a)
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
s : Set α
f : α → M
a : α
⊢ ∏ᶠ (_ : a ∈ s), f a = s.mulIndicator f a
state_after: no goals

tactic: convert finprod_eq_if (M := M) (p := a ∈ s) (x := f a)
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
s : Set α
f : α → M
a : α
⊢ ∏ᶠ (_ : a ∈ s), f a = s.mulIndicator f a
state_after: no goals
Theorem: setIntegral_withDensity_eq_setIntegral_smul
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rw [restrict_withDensity hs, integral_withDensity_eq_integral_smul f_meas]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁷ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁶ : RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝¹ : NormedSpace ℝ E
inst✝ : NormedSpace ℝ F
f : X → ℝ≥0
f_meas : Measurable f
g : X → E
s : Set X
hs : MeasurableSet s
⊢ (∫ (x : X) in s, g x ∂μ.withDensity fun x => ↑(f x)) = ∫ (x : X) in s, f x • g x ∂μ
state_after: no goals
Theorem: Pell.pellZd_succ
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: ext <;> simp
state_before: a : ℕ
a1 : 1 < a
n : ℕ
⊢ pellZd a1 (n + 1) = pellZd a1 n * { re := ↑a, im := 1 }
state_after: no goals
Theorem: CategoryTheory.PreGaloisCategory.autMulEquivAutGalois_symm_app
File: Mathlib/CategoryTheory/Galois/Prorepresentability.lean

tactic: rw [← autMulEquivAutGalois_π, MulEquiv.apply_symm_apply]
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : GaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
x : AutGalois F
A : C
inst✝ : IsGalois A
a : ↑(F.obj A)
⊢ ((autMulEquivAutGalois F).symm { unop' := x }).hom.app A a =
    F.map ((AutGalois.π F { obj := A, pt := a, isGalois := ⋯ }) x).hom a
state_after: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : GaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
x : AutGalois F
A : C
inst✝ : IsGalois A
a : ↑(F.obj A)
⊢ F.map ((AutGalois.π F { obj := A, pt := a, isGalois := ⋯ }) (MulOpposite.unop { unop' := x })).hom a =
    F.map ((AutGalois.π F { obj := A, pt := a, isGalois := ⋯ }) x).hom a

tactic: rfl
state_before: C : Type u₁
inst✝³ : Category.{u₂, u₁} C
inst✝² : GaloisCategory C
F : C ⥤ FintypeCat
inst✝¹ : FiberFunctor F
x : AutGalois F
A : C
inst✝ : IsGalois A
a : ↑(F.obj A)
⊢ F.map ((AutGalois.π F { obj := A, pt := a, isGalois := ⋯ }) (MulOpposite.unop { unop' := x })).hom a =
    F.map ((AutGalois.π F { obj := A, pt := a, isGalois := ⋯ }) x).hom a
state_after: no goals
Theorem: min_div_div_left'
File: Mathlib/Algebra/Order/Group/MinMax.lean

tactic: simp only [div_eq_mul_inv, min_mul_mul_left, min_inv_inv']
state_before: α : Type u_1
inst✝ : LinearOrderedCommGroup α
a✝ b✝ c✝ a b c : α
⊢ min (a / b) (a / c) = a / max b c
state_after: no goals
Theorem: AffineSubspace.vadd_mem_iff_mem_of_mem_direction
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: refine ⟨fun h => ?_, fun h => vadd_mem_of_mem_direction hv h⟩
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : v ∈ s.direction
p : P
⊢ v +ᵥ p ∈ s ↔ p ∈ s
state_after: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : v ∈ s.direction
p : P
h : v +ᵥ p ∈ s
⊢ p ∈ s

tactic: convert vadd_mem_of_mem_direction (Submodule.neg_mem _ hv) h
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : v ∈ s.direction
p : P
h : v +ᵥ p ∈ s
⊢ p ∈ s
state_after: case h.e'_4
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : v ∈ s.direction
p : P
h : v +ᵥ p ∈ s
⊢ p = -v +ᵥ (v +ᵥ p)

tactic: simp
state_before: case h.e'_4
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
s : AffineSubspace k P
v : V
hv : v ∈ s.direction
p : P
h : v +ᵥ p ∈ s
⊢ p = -v +ᵥ (v +ᵥ p)
state_after: no goals
Theorem: Ordinal.lt_pred
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: let ⟨c, e⟩ := h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
h : ∃ a, b = succ a
⊢ a < b.pred ↔ succ a < b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
h : ∃ a, b = succ a
c : Ordinal.{u_4}
e : b = succ c
⊢ a < b.pred ↔ succ a < b

tactic: rw [e, pred_succ, succ_lt_succ_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
h : ∃ a, b = succ a
c : Ordinal.{u_4}
e : b = succ c
⊢ a < b.pred ↔ succ a < b
state_after: no goals

tactic: simp only [pred, dif_neg h, succ_lt_of_not_succ h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a b : Ordinal.{u_4}
h : ¬∃ a, b = succ a
⊢ a < b.pred ↔ succ a < b
state_after: no goals
Theorem: CategoryTheory.Functor.rightDerivedNatTrans_id
File: Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean

tactic: aesop_cat
state_before: C : Type u_5
C' : Type ?u.47520
D : Type u_1
D' : Type ?u.47526
H : Type u_3
H' : Type ?u.47532
inst✝⁹ : Category.{u_6, u_5} C
inst✝⁸ : Category.{?u.47540, ?u.47520} C'
inst✝⁷ : Category.{u_4, u_1} D
inst✝⁶ : Category.{?u.47548, ?u.47526} D'
inst✝⁵ : Category.{u_2, u_3} H
inst✝⁴ : Category.{?u.47556, ?u.47532} H'
RF RF' RF'' : D ⥤ H
F F' F'' : C ⥤ H
e : F ≅ F'
L : C ⥤ D
α : F ⟶ L ⋙ RF
α' : F' ⟶ L ⋙ RF'
α'' : F'' ⟶ L ⋙ RF''
α'₂ : F ⟶ L ⋙ RF'
W : MorphismProperty C
inst✝³ : L.IsLocalization W
inst✝² : RF.IsRightDerivedFunctor α W
inst✝¹ : RF'.IsRightDerivedFunctor α' W
inst✝ : RF''.IsRightDerivedFunctor α'' W
⊢ α ≫ whiskerLeft L (RF.rightDerivedNatTrans RF α α W (𝟙 F)) = α ≫ whiskerLeft L (𝟙 RF)
state_after: no goals
Theorem: MeasureTheory.SimpleFunc.piecewise_univ
File: Mathlib/MeasureTheory/Function/SimpleFunc.lean

tactic: set_option tactic.skipAssignedInstances false in
simp; convert Set.piecewise_univ f g
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MeasurableSpace α
f g : α →ₛ β
⊢ ↑(piecewise univ ⋯ f g) = ↑f
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MeasurableSpace α
f g : α →ₛ β
⊢ ↑(piecewise univ ⋯ f g) = ↑f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MeasurableSpace α
f g : α →ₛ β
⊢ univ.piecewise ↑f ↑g = ↑f

tactic: convert Set.piecewise_univ f g
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : MeasurableSpace α
f g : α →ₛ β
⊢ univ.piecewise ↑f ↑g = ↑f
state_after: no goals
Theorem: SetTheory.PGame.quot_right_distrib
File: Mathlib/SetTheory/Game/Basic.lean

tactic: simp only [quot_mul_comm, quot_left_distrib]
state_before: x y z : PGame
⊢ ⟦(x + y) * z⟧ = ⟦x * z⟧ + ⟦y * z⟧
state_after: no goals
Theorem: NumberField.mixedEmbedding.convexBodySumFactor_ne_zero
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: refine div_ne_zero ?_ <| Nat.cast_ne_zero.mpr (Nat.factorial_ne_zero _)
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
⊢ convexBodySumFactor K ≠ 0
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
⊢ 2 ^ NrRealPlaces K * (NNReal.pi / 2) ^ NrComplexPlaces K ≠ 0

tactic: exact mul_ne_zero (pow_ne_zero _ two_ne_zero)
  (pow_ne_zero _ (div_ne_zero NNReal.pi_ne_zero two_ne_zero))
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
⊢ 2 ^ NrRealPlaces K * (NNReal.pi / 2) ^ NrComplexPlaces K ≠ 0
state_after: no goals
Theorem: Multiset.mem_Ioo
File: Mathlib/Order/Interval/Multiset.lean

tactic: rw [Ioo, ← Finset.mem_def, Finset.mem_Ioo]
state_before: α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a b x : α
⊢ x ∈ Ioo a b ↔ a < x ∧ x < b
state_after: no goals
Theorem: FractionalIdeal.spanSingleton_zero
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

tactic: ext
state_before: R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
⊢ spanSingleton S 0 = 0
state_after: case a
R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
x✝ : P
⊢ x✝ ∈ spanSingleton S 0 ↔ x✝ ∈ 0

tactic: simp [Submodule.mem_span_singleton, eq_comm]
state_before: case a
R : Type u_1
inst✝⁶ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁵ : CommRing P
inst✝⁴ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝³ : CommRing R₁
K : Type u_4
inst✝² : Field K
inst✝¹ : Algebra R₁ K
inst✝ : IsFractionRing R₁ K
x✝ : P
⊢ x✝ ∈ spanSingleton S 0 ↔ x✝ ∈ 0
state_after: no goals
Theorem: div_mul_cancel
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [div_eq_mul_inv, inv_mul_cancel_right a b]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a✝ b✝ c d : G
n : ℤ
a b : G
⊢ a / b * b = a
state_after: no goals
Theorem: multiplicity.finite_of_finite_mul_left
File: Mathlib/RingTheory/Multiplicity.lean

tactic: rw [mul_comm]
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid α
a b c : α
⊢ Finite a (b * c) → Finite a c
state_after: α : Type u_1
β : Type u_2
inst✝ : CommMonoid α
a b c : α
⊢ Finite a (c * b) → Finite a c

tactic: exact finite_of_finite_mul_right
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid α
a b c : α
⊢ Finite a (c * b) → Finite a c
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.LeftFractionRel.refl
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean

tactic: simpa only [Category.comp_id] using z.hs
state_before: C : Type u_1
D : Type u_2
inst✝¹ : Category.{u_3, u_1} C
inst✝ : Category.{?u.21593, u_2} D
W : MorphismProperty C
X Y : C
z : W.LeftFraction X Y
⊢ W (z.s ≫ 𝟙 z.Y')
state_after: no goals