1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: deriv.lhopital_zero_nhds'
File: Mathlib/Analysis/Calculus/LHopital.lean

tactic: simp only [← Iio_union_Ioi, nhdsWithin_union, tendsto_sup, eventually_sup] at *
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : ∀ᶠ (x : ℝ) in 𝓝[≠] a, DifferentiableAt ℝ f x
hg' : ∀ᶠ (x : ℝ) in 𝓝[≠] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[≠] a) (𝓝 0)
hga : Tendsto g (𝓝[≠] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[≠] a) l
⊢ Tendsto (fun x => f x / g x) (𝓝[≠] a) l
state_after: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : (∀ᶠ (x : ℝ) in 𝓝[<] a, DifferentiableAt ℝ f x) ∧ ∀ᶠ (x : ℝ) in 𝓝[>] a, DifferentiableAt ℝ f x
hg' : (∀ᶠ (x : ℝ) in 𝓝[<] a, deriv g x ≠ 0) ∧ ∀ᶠ (x : ℝ) in 𝓝[>] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[<] a) (𝓝 0) ∧ Tendsto f (𝓝[>] a) (𝓝 0)
hga : Tendsto g (𝓝[<] a) (𝓝 0) ∧ Tendsto g (𝓝[>] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[<] a) l ∧ Tendsto (fun x => deriv f x / deriv g x) (𝓝[>] a) l
⊢ Tendsto (fun x => f x / g x) (𝓝[<] a) l ∧ Tendsto (fun x => f x / g x) (𝓝[>] a) l

tactic: exact ⟨lhopital_zero_nhds_left hdf.1 hg'.1 hfa.1 hga.1 hdiv.1,
  lhopital_zero_nhds_right hdf.2 hg'.2 hfa.2 hga.2 hdiv.2⟩
state_before: a b : ℝ
hab : a < b
l : Filter ℝ
f f' g g' : ℝ → ℝ
hdf : (∀ᶠ (x : ℝ) in 𝓝[<] a, DifferentiableAt ℝ f x) ∧ ∀ᶠ (x : ℝ) in 𝓝[>] a, DifferentiableAt ℝ f x
hg' : (∀ᶠ (x : ℝ) in 𝓝[<] a, deriv g x ≠ 0) ∧ ∀ᶠ (x : ℝ) in 𝓝[>] a, deriv g x ≠ 0
hfa : Tendsto f (𝓝[<] a) (𝓝 0) ∧ Tendsto f (𝓝[>] a) (𝓝 0)
hga : Tendsto g (𝓝[<] a) (𝓝 0) ∧ Tendsto g (𝓝[>] a) (𝓝 0)
hdiv : Tendsto (fun x => deriv f x / deriv g x) (𝓝[<] a) l ∧ Tendsto (fun x => deriv f x / deriv g x) (𝓝[>] a) l
⊢ Tendsto (fun x => f x / g x) (𝓝[<] a) l ∧ Tendsto (fun x => f x / g x) (𝓝[>] a) l
state_after: no goals
Theorem: hasFTaylorSeriesUpTo_top_iff
File: Mathlib/Analysis/Calculus/ContDiff/Defs.lean

tactic: simp only [← hasFTaylorSeriesUpToOn_univ_iff, hasFTaylorSeriesUpToOn_top_iff]
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
⊢ HasFTaylorSeriesUpTo ⊤ f p ↔ ∀ (n : ℕ), HasFTaylorSeriesUpTo (↑n) f p
state_after: no goals
Theorem: imageSubobjectMap_comp_imageToKernel
File: Mathlib/Algebra/Homology/ImageToKernel.lean

tactic: ext
state_before: ι : Type u_1
V : Type u
inst✝¹⁴ : Category.{v, u} V
inst✝¹³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
inst✝¹² : HasImage f
g : B ⟶ C
inst✝¹¹ : HasKernel g
w : f ≫ g = 0
A' B' C' : V
f' : A' ⟶ B'
inst✝¹⁰ : HasImage f'
g' : B' ⟶ C'
inst✝⁹ : HasKernel g'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
inst✝⁸ : HasImageMap α
β : Arrow.mk g ⟶ Arrow.mk g'
A₁ B₁ C₁ : V
f₁ : A₁ ⟶ B₁
inst✝⁷ : HasImage f₁
g₁ : B₁ ⟶ C₁
inst✝⁶ : HasKernel g₁
w₁ : f₁ ≫ g₁ = 0
A₂ B₂ C₂ : V
f₂ : A₂ ⟶ B₂
inst✝⁵ : HasImage f₂
g₂ : B₂ ⟶ C₂
inst✝⁴ : HasKernel g₂
w₂ : f₂ ≫ g₂ = 0
A₃ B₃ C₃ : V
f₃ : A₃ ⟶ B₃
inst✝³ : HasImage f₃
g₃ : B₃ ⟶ C₃
inst✝² : HasKernel g₃
w₃ : f₃ ≫ g₃ = 0
α₁ : Arrow.mk f₁ ⟶ Arrow.mk f₂
inst✝¹ : HasImageMap α₁
β₁ : Arrow.mk g₁ ⟶ Arrow.mk g₂
α₂ : Arrow.mk f₂ ⟶ Arrow.mk f₃
inst✝ : HasImageMap α₂
β₂ : Arrow.mk g₂ ⟶ Arrow.mk g₃
p : α.right = β.left
⊢ imageToKernel f g w ≫ kernelSubobjectMap β = imageSubobjectMap α ≫ imageToKernel f' g' w'
state_after: case h
ι : Type u_1
V : Type u
inst✝¹⁴ : Category.{v, u} V
inst✝¹³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
inst✝¹² : HasImage f
g : B ⟶ C
inst✝¹¹ : HasKernel g
w : f ≫ g = 0
A' B' C' : V
f' : A' ⟶ B'
inst✝¹⁰ : HasImage f'
g' : B' ⟶ C'
inst✝⁹ : HasKernel g'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
inst✝⁸ : HasImageMap α
β : Arrow.mk g ⟶ Arrow.mk g'
A₁ B₁ C₁ : V
f₁ : A₁ ⟶ B₁
inst✝⁷ : HasImage f₁
g₁ : B₁ ⟶ C₁
inst✝⁶ : HasKernel g₁
w₁ : f₁ ≫ g₁ = 0
A₂ B₂ C₂ : V
f₂ : A₂ ⟶ B₂
inst✝⁵ : HasImage f₂
g₂ : B₂ ⟶ C₂
inst✝⁴ : HasKernel g₂
w₂ : f₂ ≫ g₂ = 0
A₃ B₃ C₃ : V
f₃ : A₃ ⟶ B₃
inst✝³ : HasImage f₃
g₃ : B₃ ⟶ C₃
inst✝² : HasKernel g₃
w₃ : f₃ ≫ g₃ = 0
α₁ : Arrow.mk f₁ ⟶ Arrow.mk f₂
inst✝¹ : HasImageMap α₁
β₁ : Arrow.mk g₁ ⟶ Arrow.mk g₂
α₂ : Arrow.mk f₂ ⟶ Arrow.mk f₃
inst✝ : HasImageMap α₂
β₂ : Arrow.mk g₂ ⟶ Arrow.mk g₃
p : α.right = β.left
⊢ (imageToKernel f g w ≫ kernelSubobjectMap β) ≫ (kernelSubobject g').arrow =
    (imageSubobjectMap α ≫ imageToKernel f' g' w') ≫ (kernelSubobject g').arrow

tactic: simp [p]
state_before: case h
ι : Type u_1
V : Type u
inst✝¹⁴ : Category.{v, u} V
inst✝¹³ : HasZeroMorphisms V
A B C : V
f : A ⟶ B
inst✝¹² : HasImage f
g : B ⟶ C
inst✝¹¹ : HasKernel g
w : f ≫ g = 0
A' B' C' : V
f' : A' ⟶ B'
inst✝¹⁰ : HasImage f'
g' : B' ⟶ C'
inst✝⁹ : HasKernel g'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
inst✝⁸ : HasImageMap α
β : Arrow.mk g ⟶ Arrow.mk g'
A₁ B₁ C₁ : V
f₁ : A₁ ⟶ B₁
inst✝⁷ : HasImage f₁
g₁ : B₁ ⟶ C₁
inst✝⁶ : HasKernel g₁
w₁ : f₁ ≫ g₁ = 0
A₂ B₂ C₂ : V
f₂ : A₂ ⟶ B₂
inst✝⁵ : HasImage f₂
g₂ : B₂ ⟶ C₂
inst✝⁴ : HasKernel g₂
w₂ : f₂ ≫ g₂ = 0
A₃ B₃ C₃ : V
f₃ : A₃ ⟶ B₃
inst✝³ : HasImage f₃
g₃ : B₃ ⟶ C₃
inst✝² : HasKernel g₃
w₃ : f₃ ≫ g₃ = 0
α₁ : Arrow.mk f₁ ⟶ Arrow.mk f₂
inst✝¹ : HasImageMap α₁
β₁ : Arrow.mk g₁ ⟶ Arrow.mk g₂
α₂ : Arrow.mk f₂ ⟶ Arrow.mk f₃
inst✝ : HasImageMap α₂
β₂ : Arrow.mk g₂ ⟶ Arrow.mk g₃
p : α.right = β.left
⊢ (imageToKernel f g w ≫ kernelSubobjectMap β) ≫ (kernelSubobject g').arrow =
    (imageSubobjectMap α ≫ imageToKernel f' g' w') ≫ (kernelSubobject g').arrow
state_after: no goals
Theorem: NonUnitalAlgebra.eq_top_iff
File: Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean

tactic: rw [h]
state_before: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S : NonUnitalSubalgebra R A
h : S = ⊤
x : A
⊢ x ∈ S
state_after: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S : NonUnitalSubalgebra R A
h : S = ⊤
x : A
⊢ x ∈ ⊤

tactic: exact mem_top
state_before: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S : NonUnitalSubalgebra R A
h : S = ⊤
x : A
⊢ x ∈ ⊤
state_after: no goals

tactic: ext x
state_before: F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S : NonUnitalSubalgebra R A
h : ∀ (x : A), x ∈ S
⊢ S = ⊤
state_after: case h
F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S : NonUnitalSubalgebra R A
h : ∀ (x : A), x ∈ S
x : A
⊢ x ∈ S ↔ x ∈ ⊤

tactic: exact ⟨fun _ => mem_top, fun _ => h x⟩
state_before: case h
F : Type u_1
R : Type u
A : Type v
B : Type w
inst✝¹⁰ : CommSemiring R
inst✝⁹ : NonUnitalNonAssocSemiring A
inst✝⁸ : Module R A
inst✝⁷ : IsScalarTower R A A
inst✝⁶ : SMulCommClass R A A
inst✝⁵ : NonUnitalNonAssocSemiring B
inst✝⁴ : Module R B
inst✝³ : IsScalarTower R B B
inst✝² : SMulCommClass R B B
inst✝¹ : FunLike F A B
inst✝ : NonUnitalAlgHomClass F R A B
S : NonUnitalSubalgebra R A
h : ∀ (x : A), x ∈ S
x : A
⊢ x ∈ S ↔ x ∈ ⊤
state_after: no goals
Theorem: Module.Projective.of_equiv
File: Mathlib/Algebra/Module/Projective.lean

tactic: ext
state_before: R : Type u
inst✝¹¹ : Ring R
P : Type v
inst✝¹⁰ : AddCommGroup P
inst✝⁹ : Module R P
R₀ : Type ?u.62316
M : Type u_1
N : Type ?u.65608
inst✝⁸ : CommRing R₀
inst✝⁷ : Algebra R₀ R
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R₀ M
inst✝⁴ : Module R M
inst✝³ : IsScalarTower R₀ R M
inst✝² : AddCommGroup N
inst✝¹ : Module R₀ N
inst✝ : Projective R M
e : M ≃ₗ[R] P
⊢ ↑e ∘ₗ ↑e.symm = LinearMap.id
state_after: case h
R : Type u
inst✝¹¹ : Ring R
P : Type v
inst✝¹⁰ : AddCommGroup P
inst✝⁹ : Module R P
R₀ : Type ?u.62316
M : Type u_1
N : Type ?u.65608
inst✝⁸ : CommRing R₀
inst✝⁷ : Algebra R₀ R
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R₀ M
inst✝⁴ : Module R M
inst✝³ : IsScalarTower R₀ R M
inst✝² : AddCommGroup N
inst✝¹ : Module R₀ N
inst✝ : Projective R M
e : M ≃ₗ[R] P
x✝ : P
⊢ (↑e ∘ₗ ↑e.symm) x✝ = LinearMap.id x✝

tactic: simp
state_before: case h
R : Type u
inst✝¹¹ : Ring R
P : Type v
inst✝¹⁰ : AddCommGroup P
inst✝⁹ : Module R P
R₀ : Type ?u.62316
M : Type u_1
N : Type ?u.65608
inst✝⁸ : CommRing R₀
inst✝⁷ : Algebra R₀ R
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R₀ M
inst✝⁴ : Module R M
inst✝³ : IsScalarTower R₀ R M
inst✝² : AddCommGroup N
inst✝¹ : Module R₀ N
inst✝ : Projective R M
e : M ≃ₗ[R] P
x✝ : P
⊢ (↑e ∘ₗ ↑e.symm) x✝ = LinearMap.id x✝
state_after: no goals
Theorem: AddMonoidAlgebra.supDegree_zero
File: Mathlib/Algebra/MonoidAlgebra/Degree.lean

tactic: simp [supDegree]
state_before: R : Type u_1
R' : Type u_2
A : Type u_3
T : Type u_4
B : Type u_5
ι : Type u_6
inst✝⁵ : Semiring R
inst✝⁴ : Ring R'
inst✝³ : AddZeroClass A
inst✝² : SemilatticeSup B
inst✝¹ : Add B
inst✝ : OrderBot B
D : A → B
p q : R[A]
⊢ supDegree D 0 = ⊥
state_after: no goals
Theorem: nhdsWithin_Iio_eq_bot_iff
File: Mathlib/Topology/Order/LeftRightNhds.lean

tactic: convert (config := {preTransparency := .default})
  nhdsWithin_Ioi_eq_bot_iff (a := OrderDual.toDual a) using 4
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
⊢ 𝓝[<] a = ⊥ ↔ IsBot a ∨ ∃ b, b ⋖ a
state_after: case h.e'_2.h.e'_2.h.e'_2.h.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
e_1✝ : α = αᵒᵈ
x✝ : α
⊢ x✝ ⋖ a ↔ toDual a ⋖ x✝

tactic: exact ofDual_covBy_ofDual_iff
state_before: case h.e'_2.h.e'_2.h.e'_2.h.h.a
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : OrderTopology α
a : α
e_1✝ : α = αᵒᵈ
x✝ : α
⊢ x✝ ⋖ a ↔ toDual a ⋖ x✝
state_after: no goals
Theorem: isCompact_singleton
File: Mathlib/Topology/Compactness/Compact.lean

tactic: simpa only [principal_singleton] using pure_le_nhds x
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
x : X
f : Filter X
hf : f.NeBot
hfa : f ≤ 𝓟 {x}
⊢ 𝓟 {x} ≤ 𝓝 x
state_after: no goals
Theorem: Complex.cos_add_mul_I
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [cos_add, cos_mul_I, sin_mul_I, mul_assoc]
state_before: x✝ y✝ x y : ℂ
⊢ cos (x + y * I) = cos x * cosh y - sin x * sinh y * I
state_after: no goals
Theorem: PEquiv.single_mul_single_of_ne
File: Mathlib/Data/Matrix/PEquiv.lean

tactic: rw [← toMatrix_trans, single_trans_single_of_ne hb, toMatrix_bot]
state_before: k : Type u_1
l : Type u_2
m : Type u_3
n : Type u_4
α : Type v
inst✝⁴ : Fintype n
inst✝³ : DecidableEq n
inst✝² : DecidableEq k
inst✝¹ : DecidableEq m
inst✝ : Semiring α
b₁ b₂ : n
hb : b₁ ≠ b₂
a : m
c : k
⊢ (single a b₁).toMatrix * (single b₂ c).toMatrix = 0
state_after: no goals
Theorem: Prod.mk_lt_mk_of_lt_of_le
File: Mathlib/Order/Basic.lean

tactic: simp [lt_iff, *]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝¹ : Preorder α
inst✝ : Preorder β
a a₁ a₂ : α
b b₁ b₂ : β
x y : α × β
h₁ : a₁ < a₂
h₂ : b₁ ≤ b₂
⊢ (a₁, b₁) < (a₂, b₂)
state_after: no goals
Theorem: Polynomial.trailingDegree_monomial
File: Mathlib/Algebra/Polynomial/Degree/TrailingDegree.lean

tactic: rw [trailingDegree, support_monomial n ha, min_singleton]
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
ha : a ≠ 0
⊢ ((monomial n) a).trailingDegree = ↑n
state_after: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
ha : a ≠ 0
⊢ ↑n = ↑n

tactic: rfl
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
ha : a ≠ 0
⊢ ↑n = ↑n
state_after: no goals
Theorem: EMetric.preimage_smul_ball
File: Mathlib/Topology/MetricSpace/IsometricSMul.lean

tactic: rw [preimage_smul, smul_ball]
state_before: M : Type u
G : Type v
X : Type w
inst✝³ : PseudoEMetricSpace X
inst✝² : Group G
inst✝¹ : MulAction G X
inst✝ : IsometricSMul G X
c : G
x : X
r : ℝ≥0∞
⊢ (fun x => c • x) ⁻¹' ball x r = ball (c⁻¹ • x) r
state_after: no goals
Theorem: ENNReal.rpow_intCast
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: cases n <;> simp only [Int.ofNat_eq_coe, Int.cast_natCast, rpow_natCast, zpow_natCast,
  Int.cast_negSucc, rpow_neg, zpow_negSucc]
state_before: x : ℝ≥0∞
n : ℤ
⊢ x ^ ↑n = x ^ n
state_after: no goals
Theorem: CategoryTheory.Limits.Multicofork.condition
File: Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean

tactic: rw [← K.snd_app_right, ← K.fst_app_right]
state_before: C : Type u
inst✝ : Category.{v, u} C
I : MultispanIndex C
K : Multicofork I
a : I.L
⊢ I.fst a ≫ K.π (I.fstFrom a) = I.snd a ≫ K.π (I.sndFrom a)
state_after: no goals
Theorem: CauSeq.limZero_sub_rev
File: Mathlib/Algebra/Order/CauSeq/Basic.lean

tactic: simpa using neg_limZero hfg
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrderedField α
inst✝¹ : Ring β
abv : β → α
inst✝ : IsAbsoluteValue abv
f g : CauSeq β abv
hfg : (f - g).LimZero
⊢ (g - f).LimZero
state_after: no goals
Theorem: CategoryTheory.Limits.Cones.cone_iso_of_hom_iso
File: Mathlib/CategoryTheory/Limits/Cones.lean

tactic: aesop_cat
state_before: J : Type u₁
inst✝³ : Category.{v₁, u₁} J
K✝ : Type u₂
inst✝² : Category.{v₂, u₂} K✝
C : Type u₃
inst✝¹ : Category.{v₃, u₃} C
D : Type u₄
inst✝ : Category.{v₄, u₄} D
F K : J ⥤ C
c d : Cone K
f : c ⟶ d
i : IsIso f.hom
⊢ f ≫ { hom := inv f.hom, w := ⋯ } = 𝟙 c ∧ { hom := inv f.hom, w := ⋯ } ≫ f = 𝟙 d
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.map_comap
File: Mathlib/MeasureTheory/OuterMeasure/Operations.lean

tactic: simp only [image_preimage_eq_inter_range, Subtype.range_coe]
state_before: α : Type u_1
β✝ : Type u_2
m✝ : OuterMeasure α
β : Type u_3
f : α → β
m : OuterMeasure β
s : Set β
⊢ f '' (f ⁻¹' s) = Subtype.val '' (Subtype.val ⁻¹' s)
state_after: no goals
Theorem: CategoryTheory.IsPushout.zero_left
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: simp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
⊢ CommSq 0 0 (𝟙 X) 0
state_after: no goals

tactic: simp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
⊢ 𝟙 X ≫ ((coprodZeroIso X).symm ≪≫ (pushoutZeroZeroIso X 0).symm).hom = pushout.inl
state_after: no goals

tactic: simp [eq_iff_true_of_subsingleton]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
Z X✝ Y P : C
f : Z ⟶ X✝
g : Z ⟶ Y
inl : X✝ ⟶ P
inr : Y ⟶ P
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X : C
⊢ 0 ≫ ((coprodZeroIso X).symm ≪≫ (pushoutZeroZeroIso X 0).symm).hom = pushout.inr
state_after: no goals
Theorem: Lagrange.eval_basis_not_at_node
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rw [mul_comm, basis_eq_prod_sub_inv_mul_nodal_div hi, eval_mul, eval_C, ←
  nodal_erase_eq_nodal_div hi, eval_nodal, eval_nodal, mul_assoc, ← mul_prod_erase _ _ hi, ←
  mul_assoc (x - v i)⁻¹, inv_mul_cancel (sub_ne_zero_of_ne hxi), one_mul]
state_before: F : Type u_1
inst✝¹ : Field F
ι : Type u_2
inst✝ : DecidableEq ι
s : Finset ι
v r : ι → F
i : ι
x : F
hi : i ∈ s
hxi : x ≠ v i
⊢ eval x (Lagrange.basis s v i) = eval x (nodal s v) * (nodalWeight s v i * (x - v i)⁻¹)
state_after: no goals
Theorem: Multiset.aestronglyMeasurable_prod
File: Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

tactic: simpa only [← Pi.multiset_prod_apply] using s.aestronglyMeasurable_prod' hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝⁵ : Countable ι
m : MeasurableSpace α
μ ν : Measure α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
f g : α → β
M : Type u_5
inst✝² : CommMonoid M
inst✝¹ : TopologicalSpace M
inst✝ : ContinuousMul M
s : Multiset (α → M)
hs : ∀ f ∈ s, AEStronglyMeasurable f μ
⊢ AEStronglyMeasurable (fun x => (Multiset.map (fun f => f x) s).prod) μ
state_after: no goals
Theorem: Rat.neg_def
File: Mathlib/Data/Rat/Defs.lean

tactic: rw [← neg_divInt, num_divInt_den]
state_before: q✝ q : ℚ
⊢ -q = -q.num /. ↑q.den
state_after: no goals
Theorem: SetTheory.PGame.bddBelow_of_small
File: Mathlib/SetTheory/Game/PGame.lean

tactic: simpa using bddBelow_range_of_small (Subtype.val : s → PGame.{u})
state_before: xl xr : Type u
s : Set PGame
inst✝ : Small.{u, u + 1} ↑s
⊢ BddBelow s
state_after: no goals
Theorem: Multiset.foldr_induction'
File: Mathlib/Data/Multiset/Basic.lean

tactic: induction s using Multiset.induction with
| empty => simpa
| cons a s ihs =>
  simp only [forall_mem_cons, foldr_cons] at q_s ⊢
  exact hpqf _ _ q_s.1 (ihs q_s.2)
state_before: α : Type u_1
β : Type v
γ : Type u_2
f : α → β → β
H : LeftCommutative f
x : β
q : α → Prop
p : β → Prop
s : Multiset α
hpqf : ∀ (a : α) (b : β), q a → p b → p (f a b)
px : p x
q_s : ∀ a ∈ s, q a
⊢ p (foldr f H x s)
state_after: no goals

tactic: simpa
state_before: case empty
α : Type u_1
β : Type v
γ : Type u_2
f : α → β → β
H : LeftCommutative f
x : β
q : α → Prop
p : β → Prop
hpqf : ∀ (a : α) (b : β), q a → p b → p (f a b)
px : p x
q_s : ∀ a ∈ 0, q a
⊢ p (foldr f H x 0)
state_after: no goals

tactic: simp only [forall_mem_cons, foldr_cons] at q_s ⊢
state_before: case cons
α : Type u_1
β : Type v
γ : Type u_2
f : α → β → β
H : LeftCommutative f
x : β
q : α → Prop
p : β → Prop
hpqf : ∀ (a : α) (b : β), q a → p b → p (f a b)
px : p x
a : α
s : Multiset α
ihs : (∀ a ∈ s, q a) → p (foldr f H x s)
q_s : ∀ a_1 ∈ a ::ₘ s, q a_1
⊢ p (foldr f H x (a ::ₘ s))
state_after: case cons
α : Type u_1
β : Type v
γ : Type u_2
f : α → β → β
H : LeftCommutative f
x : β
q : α → Prop
p : β → Prop
hpqf : ∀ (a : α) (b : β), q a → p b → p (f a b)
px : p x
a : α
s : Multiset α
ihs : (∀ a ∈ s, q a) → p (foldr f H x s)
q_s : q a ∧ ∀ x ∈ s, q x
⊢ p (f a (foldr f H x s))

tactic: exact hpqf _ _ q_s.1 (ihs q_s.2)
state_before: case cons
α : Type u_1
β : Type v
γ : Type u_2
f : α → β → β
H : LeftCommutative f
x : β
q : α → Prop
p : β → Prop
hpqf : ∀ (a : α) (b : β), q a → p b → p (f a b)
px : p x
a : α
s : Multiset α
ihs : (∀ a ∈ s, q a) → p (foldr f H x s)
q_s : q a ∧ ∀ x ∈ s, q x
⊢ p (f a (foldr f H x s))
state_after: no goals
Theorem: RestrictScalars.addEquiv_symm_map_smul_smul
File: Mathlib/Algebra/Algebra/RestrictScalars.lean

tactic: rw [Algebra.smul_def, mul_smul]
state_before: R : Type u_1
S : Type u_2
M : Type u_3
A : Type u_4
inst✝⁴ : AddCommMonoid M
inst✝³ : CommSemiring R
inst✝² : Semiring S
inst✝¹ : Algebra R S
inst✝ : Module S M
r : R
s : S
x : M
⊢ (addEquiv R S M).symm ((r • s) • x) = r • (addEquiv R S M).symm (s • x)
state_after: R : Type u_1
S : Type u_2
M : Type u_3
A : Type u_4
inst✝⁴ : AddCommMonoid M
inst✝³ : CommSemiring R
inst✝² : Semiring S
inst✝¹ : Algebra R S
inst✝ : Module S M
r : R
s : S
x : M
⊢ (addEquiv R S M).symm ((algebraMap R S) r • s • x) = r • (addEquiv R S M).symm (s • x)

tactic: rfl
state_before: R : Type u_1
S : Type u_2
M : Type u_3
A : Type u_4
inst✝⁴ : AddCommMonoid M
inst✝³ : CommSemiring R
inst✝² : Semiring S
inst✝¹ : Algebra R S
inst✝ : Module S M
r : R
s : S
x : M
⊢ (addEquiv R S M).symm ((algebraMap R S) r • s • x) = r • (addEquiv R S M).symm (s • x)
state_after: no goals
Theorem: tsum_comp_le_tsum_of_inj
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: lift f to α → ℝ≥0 using hn
state_before: α : Type u_1
β✝ : Type u_2
γ : Type u_3
β : Type u_4
f : α → ℝ
hf : Summable f
hn : ∀ (a : α), 0 ≤ f a
i : β → α
hi : Injective i
⊢ tsum (f ∘ i) ≤ tsum f
state_after: case intro
α : Type u_1
β✝ : Type u_2
γ : Type u_3
β : Type u_4
i : β → α
hi : Injective i
f : α → ℝ≥0
hf : Summable fun i => ↑(f i)
⊢ tsum ((fun i => ↑(f i)) ∘ i) ≤ ∑' (i : α), ↑(f i)

tactic: rw [NNReal.summable_coe] at hf
state_before: case intro
α : Type u_1
β✝ : Type u_2
γ : Type u_3
β : Type u_4
i : β → α
hi : Injective i
f : α → ℝ≥0
hf : Summable fun i => ↑(f i)
⊢ tsum ((fun i => ↑(f i)) ∘ i) ≤ ∑' (i : α), ↑(f i)
state_after: case intro
α : Type u_1
β✝ : Type u_2
γ : Type u_3
β : Type u_4
i : β → α
hi : Injective i
f : α → ℝ≥0
hf : Summable f
⊢ tsum ((fun i => ↑(f i)) ∘ i) ≤ ∑' (i : α), ↑(f i)
Theorem: DvdNotUnit.not_unit
File: Mathlib/Algebra/Associated.lean

tactic: obtain ⟨-, x, hx, rfl⟩ := hp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CommMonoidWithZero α
p q : α
hp : DvdNotUnit p q
⊢ ¬IsUnit q
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CommMonoidWithZero α
p x : α
hx : ¬IsUnit x
⊢ ¬IsUnit (p * x)

tactic: exact fun hc => hx (isUnit_iff_dvd_one.mpr (dvd_of_mul_left_dvd (isUnit_iff_dvd_one.mp hc)))
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CommMonoidWithZero α
p x : α
hx : ¬IsUnit x
⊢ ¬IsUnit (p * x)
state_after: no goals
Theorem: geometric_hahn_banach_point_point
File: Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean

tactic: obtain ⟨f, s, t, hs, st, ht⟩ :=
  geometric_hahn_banach_compact_closed (convex_singleton x) isCompact_singleton
    (convex_singleton y) isClosed_singleton (disjoint_singleton.2 hxy)
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : Module ℝ E
inst✝² : ContinuousSMul ℝ E
s t : Set E
x y : E
inst✝¹ : LocallyConvexSpace ℝ E
inst✝ : T1Space E
hxy : x ≠ y
⊢ ∃ f, f x < f y
state_after: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : Module ℝ E
inst✝² : ContinuousSMul ℝ E
s✝ t✝ : Set E
x y : E
inst✝¹ : LocallyConvexSpace ℝ E
inst✝ : T1Space E
hxy : x ≠ y
f : E →L[ℝ] ℝ
s t : ℝ
hs : ∀ a ∈ {x}, f a < s
st : s < t
ht : ∀ b ∈ {y}, t < f b
⊢ ∃ f, f x < f y

tactic: exact ⟨f, by linarith [hs x rfl, ht y rfl]⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : Module ℝ E
inst✝² : ContinuousSMul ℝ E
s✝ t✝ : Set E
x y : E
inst✝¹ : LocallyConvexSpace ℝ E
inst✝ : T1Space E
hxy : x ≠ y
f : E →L[ℝ] ℝ
s t : ℝ
hs : ∀ a ∈ {x}, f a < s
st : s < t
ht : ∀ b ∈ {y}, t < f b
⊢ ∃ f, f x < f y
state_after: no goals

tactic: linarith [hs x rfl, ht y rfl]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁶ : TopologicalSpace E
inst✝⁵ : AddCommGroup E
inst✝⁴ : TopologicalAddGroup E
inst✝³ : Module ℝ E
inst✝² : ContinuousSMul ℝ E
s✝ t✝ : Set E
x y : E
inst✝¹ : LocallyConvexSpace ℝ E
inst✝ : T1Space E
hxy : x ≠ y
f : E →L[ℝ] ℝ
s t : ℝ
hs : ∀ a ∈ {x}, f a < s
st : s < t
ht : ∀ b ∈ {y}, t < f b
⊢ f x < f y
state_after: no goals