1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsSimpleModule.ker_toSpanSingleton_isMaximal
File: Mathlib/RingTheory/SimpleModule.lean

tactic: rw [Ideal.isMaximal_def, ← isSimpleModule_iff_isCoatom]
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁶ : Ring R
inst✝⁵ : Ring S
M : Type u_4
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
m✝ : Submodule R M
N : Type u_5
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsSimpleModule R M
m : M
hm : m ≠ 0
⊢ Ideal.IsMaximal (ker (toSpanSingleton R M m))
state_after: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁶ : Ring R
inst✝⁵ : Ring S
M : Type u_4
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
m✝ : Submodule R M
N : Type u_5
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsSimpleModule R M
m : M
hm : m ≠ 0
⊢ IsSimpleModule R (R ⧸ ker (toSpanSingleton R M m))

tactic: exact congr (quotKerEquivOfSurjective _ <| toSpanSingleton_surjective R hm)
state_before: ι : Type u_1
R : Type u_2
S : Type u_3
inst✝⁶ : Ring R
inst✝⁵ : Ring S
M : Type u_4
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
m✝ : Submodule R M
N : Type u_5
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsSimpleModule R M
m : M
hm : m ≠ 0
⊢ IsSimpleModule R (R ⧸ ker (toSpanSingleton R M m))
state_after: no goals
Theorem: TypeVec.append1_drop_last
File: Mathlib/Data/TypeVec.lean

tactic: cases i <;> rfl
state_before: n : ℕ
α : TypeVec.{u_1} (n + 1)
i : Fin2 (n + 1)
⊢ (α.drop ::: α.last) i = α i
state_after: no goals
Theorem: CategoryTheory.ShortComplex.Exact.isZero_X₂_iff
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: constructor
state_before: C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
⊢ IsZero S.X₂ ↔ S.f = 0 ∧ S.g = 0
state_after: case mp
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
⊢ IsZero S.X₂ → S.f = 0 ∧ S.g = 0

case mpr
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
⊢ S.f = 0 ∧ S.g = 0 → IsZero S.X₂

tactic: intro h
state_before: case mp
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
⊢ IsZero S.X₂ → S.f = 0 ∧ S.g = 0
state_after: case mp
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
h : IsZero S.X₂
⊢ S.f = 0 ∧ S.g = 0

tactic: exact ⟨h.eq_of_tgt _ _, h.eq_of_src _ _⟩
state_before: case mp
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
h : IsZero S.X₂
⊢ S.f = 0 ∧ S.g = 0
state_after: no goals

tactic: rintro ⟨hf, hg⟩
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
⊢ S.f = 0 ∧ S.g = 0 → IsZero S.X₂
state_after: case mpr.intro
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
hf : S.f = 0
hg : S.g = 0
⊢ IsZero S.X₂

tactic: exact hS.isZero_X₂ hf hg
state_before: case mpr.intro
C : Type u_1
D : Type u_2
inst✝³ : Category.{u_3, u_1} C
inst✝² : Category.{?u.75102, u_2} D
inst✝¹ : Preadditive C
inst✝ : Preadditive D
S : ShortComplex C
hS : S.Exact
hf : S.f = 0
hg : S.g = 0
⊢ IsZero S.X₂
state_after: no goals
Theorem: Nat.cast_commute
File: Mathlib/Data/Nat/Cast/Commute.lean

tactic: induction n with
| zero => rw [Nat.cast_zero]; exact Commute.zero_left x
| succ n ihn => rw [Nat.cast_succ]; exact ihn.add_left (Commute.one_left x)
state_before: α : Type u_1
β : Type u_2
inst✝ : NonAssocSemiring α
n : ℕ
x : α
⊢ Commute (↑n) x
state_after: no goals

tactic: rw [Nat.cast_zero]
state_before: case zero
α : Type u_1
β : Type u_2
inst✝ : NonAssocSemiring α
x : α
⊢ Commute (↑0) x
state_after: case zero
α : Type u_1
β : Type u_2
inst✝ : NonAssocSemiring α
x : α
⊢ Commute 0 x

tactic: exact Commute.zero_left x
state_before: case zero
α : Type u_1
β : Type u_2
inst✝ : NonAssocSemiring α
x : α
⊢ Commute 0 x
state_after: no goals

tactic: rw [Nat.cast_succ]
state_before: case succ
α : Type u_1
β : Type u_2
inst✝ : NonAssocSemiring α
x : α
n : ℕ
ihn : Commute (↑n) x
⊢ Commute (↑(n + 1)) x
state_after: case succ
α : Type u_1
β : Type u_2
inst✝ : NonAssocSemiring α
x : α
n : ℕ
ihn : Commute (↑n) x
⊢ Commute (↑n + 1) x

tactic: exact ihn.add_left (Commute.one_left x)
state_before: case succ
α : Type u_1
β : Type u_2
inst✝ : NonAssocSemiring α
x : α
n : ℕ
ihn : Commute (↑n) x
⊢ Commute (↑n + 1) x
state_after: no goals
Theorem: List.Ico.filter_le_of_le_bot
File: Mathlib/Data/List/Intervals.lean

tactic: rw [decide_eq_true_eq]
state_before: n m l : ℕ
hln : l ≤ n
k : ℕ
hk : k ∈ Ico n m
⊢ decide (l ≤ k) = true
state_after: n m l : ℕ
hln : l ≤ n
k : ℕ
hk : k ∈ Ico n m
⊢ l ≤ k

tactic: exact le_trans hln (mem.1 hk).1
state_before: n m l : ℕ
hln : l ≤ n
k : ℕ
hk : k ∈ Ico n m
⊢ l ≤ k
state_after: no goals
Theorem: HasStrictFDerivAt.add
File: Mathlib/Analysis/Calculus/FDeriv/Add.lean

tactic: simp only [LinearMap.sub_apply, LinearMap.add_apply, map_sub, map_add, add_apply]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hf : HasStrictFDerivAt f f' x
hg : HasStrictFDerivAt g g' x
y : E × E
⊢ f y.1 - f y.2 - f' (y.1 - y.2) + (g y.1 - g y.2 - g' (y.1 - y.2)) =
    (fun y => f y + g y) y.1 - (fun y => f y + g y) y.2 - (f' + g') (y.1 - y.2)
state_after: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hf : HasStrictFDerivAt f f' x
hg : HasStrictFDerivAt g g' x
y : E × E
⊢ f y.1 - f y.2 - (f' y.1 - f' y.2) + (g y.1 - g y.2 - (g' y.1 - g' y.2)) =
    f y.1 + g y.1 - (f y.2 + g y.2) - (f' y.1 + g' y.1 - (f' y.2 + g' y.2))

tactic: abel
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hf : HasStrictFDerivAt f f' x
hg : HasStrictFDerivAt g g' x
y : E × E
⊢ f y.1 - f y.2 - (f' y.1 - f' y.2) + (g y.1 - g y.2 - (g' y.1 - g' y.2)) =
    f y.1 + g y.1 - (f y.2 + g y.2) - (f' y.1 + g' y.1 - (f' y.2 + g' y.2))
state_after: no goals
Theorem: Module.Baer.extensionOfMax_le
File: Mathlib/Algebra/Module/Injective.lean

tactic: symm
state_before: R : Type u
inst✝⁷ : Ring R
Q : Type v
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R Q
M : Type u_1
N : Type u_2
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup N
inst✝² : Module R M
inst✝¹ : Module R N
i : M →ₗ[R] N
f : M →ₗ[R] Q
inst✝ : Fact (Function.Injective ⇑i)
h : Baer R Q
y : N
x : ↥(extensionOfMax i f).domain
x' : ↥(extensionOfMaxAdjoin i f h y).domain
EQ : ↑x = ↑x'
⊢ ↑(extensionOfMax i f).toLinearPMap x = ↑(extensionOfMaxAdjoin i f h y).toLinearPMap x'
state_after: R : Type u
inst✝⁷ : Ring R
Q : Type v
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R Q
M : Type u_1
N : Type u_2
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup N
inst✝² : Module R M
inst✝¹ : Module R N
i : M →ₗ[R] N
f : M →ₗ[R] Q
inst✝ : Fact (Function.Injective ⇑i)
h : Baer R Q
y : N
x : ↥(extensionOfMax i f).domain
x' : ↥(extensionOfMaxAdjoin i f h y).domain
EQ : ↑x = ↑x'
⊢ ↑(extensionOfMaxAdjoin i f h y).toLinearPMap x' = ↑(extensionOfMax i f).toLinearPMap x

tactic: change ExtensionOfMaxAdjoin.extensionToFun i f h _ = _
state_before: R : Type u
inst✝⁷ : Ring R
Q : Type v
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R Q
M : Type u_1
N : Type u_2
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup N
inst✝² : Module R M
inst✝¹ : Module R N
i : M →ₗ[R] N
f : M →ₗ[R] Q
inst✝ : Fact (Function.Injective ⇑i)
h : Baer R Q
y : N
x : ↥(extensionOfMax i f).domain
x' : ↥(extensionOfMaxAdjoin i f h y).domain
EQ : ↑x = ↑x'
⊢ ↑(extensionOfMaxAdjoin i f h y).toLinearPMap x' = ↑(extensionOfMax i f).toLinearPMap x
state_after: R : Type u
inst✝⁷ : Ring R
Q : Type v
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R Q
M : Type u_1
N : Type u_2
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup N
inst✝² : Module R M
inst✝¹ : Module R N
i : M →ₗ[R] N
f : M →ₗ[R] Q
inst✝ : Fact (Function.Injective ⇑i)
h : Baer R Q
y : N
x : ↥(extensionOfMax i f).domain
x' : ↥(extensionOfMaxAdjoin i f h y).domain
EQ : ↑x = ↑x'
⊢ ExtensionOfMaxAdjoin.extensionToFun i f h x' = ↑(extensionOfMax i f).toLinearPMap x

tactic: rw [ExtensionOfMaxAdjoin.extensionToFun_wd i f h x' x 0 (by simp [EQ]), map_zero,
  add_zero]
state_before: R : Type u
inst✝⁷ : Ring R
Q : Type v
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R Q
M : Type u_1
N : Type u_2
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup N
inst✝² : Module R M
inst✝¹ : Module R N
i : M →ₗ[R] N
f : M →ₗ[R] Q
inst✝ : Fact (Function.Injective ⇑i)
h : Baer R Q
y : N
x : ↥(extensionOfMax i f).domain
x' : ↥(extensionOfMaxAdjoin i f h y).domain
EQ : ↑x = ↑x'
⊢ ExtensionOfMaxAdjoin.extensionToFun i f h x' = ↑(extensionOfMax i f).toLinearPMap x
state_after: no goals

tactic: simp [EQ]
state_before: R : Type u
inst✝⁷ : Ring R
Q : Type v
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R Q
M : Type u_1
N : Type u_2
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup N
inst✝² : Module R M
inst✝¹ : Module R N
i : M →ₗ[R] N
f : M →ₗ[R] Q
inst✝ : Fact (Function.Injective ⇑i)
h : Baer R Q
y : N
x : ↥(extensionOfMax i f).domain
x' : ↥(extensionOfMaxAdjoin i f h y).domain
EQ : ↑x = ↑x'
⊢ ↑x' = ↑x + 0 • y
state_after: no goals
Theorem: exists_pos_mul_lt
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: have : 0 < a / max (b + 1) 1 := div_pos h (lt_max_iff.2 (Or.inr zero_lt_one))
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b✝ c d e : α
m n : ℤ
a : α
h : 0 < a
b : α
⊢ ∃ c, 0 < c ∧ b * c < a
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b✝ c d e : α
m n : ℤ
a : α
h : 0 < a
b : α
this : 0 < a / max (b + 1) 1
⊢ ∃ c, 0 < c ∧ b * c < a

tactic: refine ⟨a / max (b + 1) 1, this, ?_⟩
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b✝ c d e : α
m n : ℤ
a : α
h : 0 < a
b : α
this : 0 < a / max (b + 1) 1
⊢ ∃ c, 0 < c ∧ b * c < a
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b✝ c d e : α
m n : ℤ
a : α
h : 0 < a
b : α
this : 0 < a / max (b + 1) 1
⊢ b * (a / max (b + 1) 1) < a

tactic: rw [← lt_div_iff this, div_div_cancel' h.ne']
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b✝ c d e : α
m n : ℤ
a : α
h : 0 < a
b : α
this : 0 < a / max (b + 1) 1
⊢ b * (a / max (b + 1) 1) < a
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b✝ c d e : α
m n : ℤ
a : α
h : 0 < a
b : α
this : 0 < a / max (b + 1) 1
⊢ b < max (b + 1) 1

tactic: exact lt_max_iff.2 (Or.inl <| lt_add_one _)
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a✝ b✝ c d e : α
m n : ℤ
a : α
h : 0 < a
b : α
this : 0 < a / max (b + 1) 1
⊢ b < max (b + 1) 1
state_after: no goals
Theorem: groupCohomology.mem_twoCocycles_def
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

tactic: rw [Function.funext_iff]
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
f : G × G → CoeSort.coe A
⊢ (dTwo A) f = 0 ↔ ∀ (g h j : G), (A.ρ g) (f (h, j)) - f (g * h, j) + f (g, h * j) - f (g, h) = 0
state_after: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
f : G × G → CoeSort.coe A
⊢ (∀ (a : G × G × G), (dTwo A) f a = 0 a) ↔
    ∀ (g h j : G), (A.ρ g) (f (h, j)) - f (g * h, j) + f (g, h * j) - f (g, h) = 0

tactic: simp only [dTwo_apply, Prod.mk.eta, Pi.zero_apply, Prod.forall]
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
f : G × G → CoeSort.coe A
⊢ (∀ (a : G × G × G), (dTwo A) f a = 0 a) ↔
    ∀ (g h j : G), (A.ρ g) (f (h, j)) - f (g * h, j) + f (g, h * j) - f (g, h) = 0
state_after: no goals
Theorem: dist_triangle4_right
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [add_right_comm, dist_comm y₁]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x₁ y₁ x₂ y₂ : α
⊢ dist x₁ y₁ ≤ dist x₁ x₂ + dist y₁ y₂ + dist x₂ y₂
state_after: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x₁ y₁ x₂ y₂ : α
⊢ dist x₁ y₁ ≤ dist x₁ x₂ + dist x₂ y₂ + dist y₂ y₁

tactic: apply dist_triangle4
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x₁ y₁ x₂ y₂ : α
⊢ dist x₁ y₁ ≤ dist x₁ x₂ + dist x₂ y₂ + dist y₂ y₁
state_after: no goals
Theorem: isUnit_of_mul_eq_one_right
File: Mathlib/Algebra/Group/Units.lean

tactic: rw [mul_comm] at h
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝ : CommMonoid M
a b : M
h : a * b = 1
⊢ IsUnit b
state_after: α : Type u
M : Type u_1
N : Type u_2
inst✝ : CommMonoid M
a b : M
h : b * a = 1
⊢ IsUnit b

tactic: exact isUnit_of_mul_eq_one b a h
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝ : CommMonoid M
a b : M
h : b * a = 1
⊢ IsUnit b
state_after: no goals
Theorem: MeasureTheory.measure_average_le_pos
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: simpa using measure_setAverage_le_pos (Measure.measure_univ_ne_zero.2 hμ) (measure_ne_top _ _)
  hf.integrableOn
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
μ ν : Measure α
s t N : Set α
f : α → ℝ
inst✝ : IsFiniteMeasure μ
hμ : μ ≠ 0
hf : Integrable f μ
⊢ 0 < μ {x | ⨍ (a : α), f a ∂μ ≤ f x}
state_after: no goals
Theorem: LocallyLipschitz.const_min
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: simpa [min_comm] using (hf.min_const a)
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : PseudoEMetricSpace α
f g : α → ℝ
hf : LocallyLipschitz f
a : ℝ
⊢ LocallyLipschitz fun x => min a (f x)
state_after: no goals
Theorem: Matroid.restrict_empty
File: Mathlib/Data/Matroid/Constructions.lean

tactic: simp [← ground_eq_empty_iff]
state_before: α : Type u_1
M✝ : Matroid α
E B I X R J : Set α
M : Matroid α
⊢ M ↾ ∅ = emptyOn α
state_after: no goals
Theorem: Matrix.uniformContinuous
File: Mathlib/Topology/UniformSpace/Matrix.lean

tactic: simp only [UniformContinuous, Matrix.uniformity, Filter.tendsto_iInf, Filter.tendsto_comap_iff]
state_before: m : Type u_1
n : Type u_2
𝕜 : Type u_3
inst✝¹ : UniformSpace 𝕜
β : Type u_4
inst✝ : UniformSpace β
f : β → Matrix m n 𝕜
⊢ UniformContinuous f ↔ ∀ (i : m) (j : n), UniformContinuous fun x => f x i j
state_after: m : Type u_1
n : Type u_2
𝕜 : Type u_3
inst✝¹ : UniformSpace 𝕜
β : Type u_4
inst✝ : UniformSpace β
f : β → Matrix m n 𝕜
⊢ (∀ (i : m) (i_1 : n), Filter.Tendsto ((fun a => (a.1 i i_1, a.2 i i_1)) ∘ fun x => (f x.1, f x.2)) (𝓤 β) (𝓤 𝕜)) ↔
    ∀ (i : m) (j : n), Filter.Tendsto (fun x => (f x.1 i j, f x.2 i j)) (𝓤 β) (𝓤 𝕜)

tactic: apply Iff.intro <;> intro a <;> apply a
state_before: m : Type u_1
n : Type u_2
𝕜 : Type u_3
inst✝¹ : UniformSpace 𝕜
β : Type u_4
inst✝ : UniformSpace β
f : β → Matrix m n 𝕜
⊢ (∀ (i : m) (i_1 : n), Filter.Tendsto ((fun a => (a.1 i i_1, a.2 i i_1)) ∘ fun x => (f x.1, f x.2)) (𝓤 β) (𝓤 𝕜)) ↔
    ∀ (i : m) (j : n), Filter.Tendsto (fun x => (f x.1 i j, f x.2 i j)) (𝓤 β) (𝓤 𝕜)
state_after: no goals
Theorem: closedBall_sub_ball
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: simp_rw [sub_eq_add_neg, neg_ball, closedBall_add_ball hε hδ]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x y z : E
δ ε : ℝ
hε : 0 ≤ ε
hδ : 0 < δ
a b : E
⊢ Metric.closedBall a ε - Metric.ball b δ = Metric.ball (a - b) (ε + δ)
state_after: no goals
Theorem: hasCompactMulSupport_def
File: Mathlib/Topology/Support.lean

tactic: rfl
state_before: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
⊢ HasCompactMulSupport f ↔ IsCompact (closure (mulSupport f))
state_after: no goals
Theorem: Real.Angle.tan_eq_of_two_zsmul_eq
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: exact tan_eq_of_two_nsmul_eq h
state_before: θ ψ : Angle
h : 2 • θ = 2 • ψ
⊢ θ.tan = ψ.tan
state_after: no goals
Theorem: Real.fourierIntegral_eq'
File: Mathlib/Analysis/Fourier/FourierTransform.lean

tactic: simp_rw [fourierIntegral_eq, Submonoid.smul_def, Real.fourierChar_apply, mul_neg, neg_mul]
state_before: E : Type u_1
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace ℂ E
V : Type u_2
inst✝⁹ : NormedAddCommGroup V
inst✝⁸ : InnerProductSpace ℝ V
inst✝⁷ : MeasurableSpace V
inst✝⁶ : BorelSpace V
inst✝⁵ : FiniteDimensional ℝ V
W : Type u_3
inst✝⁴ : NormedAddCommGroup W
inst✝³ : InnerProductSpace ℝ W
inst✝² : MeasurableSpace W
inst✝¹ : BorelSpace W
inst✝ : FiniteDimensional ℝ W
f : V → E
w : V
⊢ 𝓕 f w = ∫ (v : V), Complex.exp (↑(-2 * π * ⟪v, w⟫_ℝ) * Complex.I) • f v
state_after: no goals
Theorem: Set.insert_diff_singleton_comm
File: Mathlib/Data/Set/Basic.lean

tactic: simp_rw [← union_singleton, union_diff_distrib,
  diff_singleton_eq_self (mem_singleton_iff.not.2 hab.symm)]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s✝ s₁ s₂ t t₁ t₂ u : Set α
hab : a ≠ b
s : Set α
⊢ insert a (s \ {b}) = insert a s \ {b}
state_after: no goals
Theorem: RCLike.ofReal_tsum
File: Mathlib/Analysis/Complex/Basic.lean

tactic: by_cases h : Summable f
state_before: α : Type u_1
𝕜 : Type u_2
inst✝ : RCLike 𝕜
f : α → ℝ
⊢ ↑(∑' (a : α), f a) = ∑' (a : α), ↑(f a)
state_after: case pos
α : Type u_1
𝕜 : Type u_2
inst✝ : RCLike 𝕜
f : α → ℝ
h : Summable f
⊢ ↑(∑' (a : α), f a) = ∑' (a : α), ↑(f a)

case neg
α : Type u_1
𝕜 : Type u_2
inst✝ : RCLike 𝕜
f : α → ℝ
h : ¬Summable f
⊢ ↑(∑' (a : α), f a) = ∑' (a : α), ↑(f a)

tactic: exact ContinuousLinearMap.map_tsum ofRealCLM h
state_before: case pos
α : Type u_1
𝕜 : Type u_2
inst✝ : RCLike 𝕜
f : α → ℝ
h : Summable f
⊢ ↑(∑' (a : α), f a) = ∑' (a : α), ↑(f a)
state_after: no goals

tactic: rw [tsum_eq_zero_of_not_summable h,
  tsum_eq_zero_of_not_summable ((summable_ofReal _).not.mpr h), ofReal_zero]
state_before: case neg
α : Type u_1
𝕜 : Type u_2
inst✝ : RCLike 𝕜
f : α → ℝ
h : ¬Summable f
⊢ ↑(∑' (a : α), f a) = ∑' (a : α), ↑(f a)
state_after: no goals
Theorem: Set.eq_of_mem_ordConnectedSection_of_uIcc_subset
File: Mathlib/Order/Interval/Set/OrdConnectedComponent.lean

tactic: rcases hx with ⟨x, rfl⟩
state_before: α : Type u_1
inst✝ : LinearOrder α
s t : Set α
x y z : α
hx : x ∈ s.ordConnectedSection
hy : y ∈ s.ordConnectedSection
h : [[x, y]] ⊆ s
⊢ x = y
state_after: case intro
α : Type u_1
inst✝ : LinearOrder α
s t : Set α
y z : α
hy : y ∈ s.ordConnectedSection
x : ↑s
h : [[s.ordConnectedProj x, y]] ⊆ s
⊢ s.ordConnectedProj x = y

tactic: rcases hy with ⟨y, rfl⟩
state_before: case intro
α : Type u_1
inst✝ : LinearOrder α
s t : Set α
y z : α
hy : y ∈ s.ordConnectedSection
x : ↑s
h : [[s.ordConnectedProj x, y]] ⊆ s
⊢ s.ordConnectedProj x = y
state_after: case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s t : Set α
z : α
x y : ↑s
h : [[s.ordConnectedProj x, s.ordConnectedProj y]] ⊆ s
⊢ s.ordConnectedProj x = s.ordConnectedProj y

tactic: exact
  ordConnectedProj_eq.2
    (mem_ordConnectedComponent_trans
      (mem_ordConnectedComponent_trans (ordConnectedProj_mem_ordConnectedComponent _ _) h)
      (mem_ordConnectedComponent_ordConnectedProj _ _))
state_before: case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s t : Set α
z : α
x y : ↑s
h : [[s.ordConnectedProj x, s.ordConnectedProj y]] ⊆ s
⊢ s.ordConnectedProj x = s.ordConnectedProj y
state_after: no goals
Theorem: inducing_sigma_map
File: Mathlib/Topology/Constructions.lean

tactic: simp only [inducing_iff_nhds, Sigma.forall, Sigma.nhds_mk, Sigma.map_mk, ← map_sigma_mk_comap h₁,
  map_inj sigma_mk_injective]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
ι : Type u_5
κ : Type u_6
σ : ι → Type u_7
τ : κ → Type u_8
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace X
f₁ : ι → κ
f₂ : (i : ι) → σ i → τ (f₁ i)
h₁ : Injective f₁
⊢ Inducing (Sigma.map f₁ f₂) ↔ ∀ (i : ι), Inducing (f₂ i)
state_after: no goals
Theorem: ProbabilityTheory.integrable_toReal_condexpKernel
File: Mathlib/Probability/Kernel/Condexp.lean

tactic: rw [condexpKernel]
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ : IsFiniteMeasure μ
inst✝ : NormedAddCommGroup F
f : Ω → F
s : Set Ω
hs : MeasurableSet s
⊢ Integrable (fun ω => (((condexpKernel μ m) ω) s).toReal) μ
state_after: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ : IsFiniteMeasure μ
inst✝ : NormedAddCommGroup F
f : Ω → F
s : Set Ω
hs : MeasurableSet s
⊢ Integrable (fun ω => (((kernel.comap (condDistrib id id μ) id ⋯) ω) s).toReal) μ

tactic: exact integrable_toReal_condDistrib (aemeasurable_id'' μ (inf_le_right : m ⊓ mΩ ≤ mΩ)) hs
state_before: Ω : Type u_1
F : Type u_2
m mΩ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
μ : Measure Ω
inst✝¹ : IsFiniteMeasure μ
inst✝ : NormedAddCommGroup F
f : Ω → F
s : Set Ω
hs : MeasurableSet s
⊢ Integrable (fun ω => (((kernel.comap (condDistrib id id μ) id ⋯) ω) s).toReal) μ
state_after: no goals
Theorem: Function.FromTypes.curry_uncurry
File: Mathlib/Data/Fin/Tuple/Curry.lean

tactic: rfl
state_before: case zero
τ : Type u
p : Fin 0 → Type u
f : FromTypes p τ
⊢ curry f.uncurry = f
state_after: no goals
Theorem: Subspace.quotAnnihilatorEquiv_apply
File: Mathlib/LinearAlgebra/Dual.lean

tactic: ext
state_before: K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W✝ W : Subspace K V
φ : Module.Dual K V
⊢ W.quotAnnihilatorEquiv (Submodule.Quotient.mk φ) = (dualRestrict W) φ
state_after: case h
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W✝ W : Subspace K V
φ : Module.Dual K V
x✝ : ↥W
⊢ (W.quotAnnihilatorEquiv (Submodule.Quotient.mk φ)) x✝ = ((dualRestrict W) φ) x✝

tactic: rfl
state_before: case h
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W✝ W : Subspace K V
φ : Module.Dual K V
x✝ : ↥W
⊢ (W.quotAnnihilatorEquiv (Submodule.Quotient.mk φ)) x✝ = ((dualRestrict W) φ) x✝
state_after: no goals
Theorem: Nat.image_cast_int_Ico
File: Mathlib/Data/Nat/Cast/SetInterval.lean

tactic: simp [ordConnected_Ici]
state_before: a b : ℕ
⊢ (range ⇑castOrderEmbedding).OrdConnected
state_after: no goals