ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: HasStrictDerivAt.clm_apply
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
G✝ : Type u_1
inst✝³ : NormedAddCommGroup G✝
inst✝² : NormedSpace 𝕜 G✝
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
G : Type u_2
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
c : 𝕜 → F →L[𝕜] G
c' : F →L[𝕜] G
d : 𝕜 → E →L[𝕜] F
d' : E →L[𝕜] F
u : 𝕜 → F
u' : F
hc : HasStrictDerivAt c c' x
hu : HasStrictDerivAt u u' x
⊢ HasStrictDerivAt (fun y => (c y) (u y)) (c' (u x) + (c x) u') x
state_after: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
G✝ : Type u_1
inst✝³ : NormedAddCommGroup G✝
inst✝² : NormedSpace 𝕜 G✝
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
G : Type u_2
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
c : 𝕜 → F →L[𝕜] G
c' : F →L[𝕜] G
d : 𝕜 → E →L[𝕜] F
d' : E →L[𝕜] F
u : 𝕜 → F
u' : F
hc : HasStrictDerivAt c c' x
hu : HasStrictDerivAt u u' x
this : HasStrictDerivAt (fun y => (c y) (u y)) (((c x).comp (smulRight 1 u') + (smulRight 1 c').flip (u x)) 1) x
⊢ HasStrictDerivAt (fun y => (c y) (u y)) (c' (u x) + (c x) u') x
tactic: have := (hc.hasStrictFDerivAt.clm_apply hu.hasStrictFDerivAt).hasStrictDerivAt
state_before: 𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace 𝕜 F
E : Type w
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
G✝ : Type u_1
inst✝³ : NormedAddCommGroup G✝
inst✝² : NormedSpace 𝕜 G✝
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
G : Type u_2
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
c : 𝕜 → F →L[𝕜] G
c' : F →L[𝕜] G
d : 𝕜 → E →L[𝕜] F
d' : E →L[𝕜] F
u : 𝕜 → F
u' : F
hc : HasStrictDerivAt c c' x
hu : HasStrictDerivAt u u' x
this : HasStrictDerivAt (fun y => (c y) (u y)) (((c x).comp (smulRight 1 u') + (smulRight 1 c').flip (u x)) 1) x
⊢ HasStrictDerivAt (fun y => (c y) (u y)) (c' (u x) + (c x) u') x
state_after: no goals
tactic: rwa [add_apply, comp_apply, flip_apply, smulRight_apply, smulRight_apply, one_apply, one_smul,
    one_smul, add_comm] at this
Theorem: OrderIso.isLUB_image'
File: Mathlib/Order/Bounds/OrderIso.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
f : α ≃o β
s : Set α
x : α
⊢ IsLUB (⇑f '' s) (f x) ↔ IsLUB s x
state_after: no goals
tactic: rw [isLUB_image, f.symm_apply_apply]
Theorem: NNReal.tendsto_tsum_compl_atTop_zero
File: Mathlib/Topology/Instances/NNReal.lean

Proof steps:
state_before: α : Type u_1
f : α → ℝ≥0
⊢ Tendsto (fun s => ∑' (b : { x // x ∉ s }), f ↑b) atTop (𝓝 0)
state_after: α : Type u_1
f : α → ℝ≥0
⊢ Tendsto (fun a => ∑' (a_1 : { x // x ∉ a }), ↑(f ↑a_1)) atTop (𝓝 0)
tactic: simp_rw [← tendsto_coe, coe_tsum, NNReal.coe_zero]
state_before: α : Type u_1
f : α → ℝ≥0
⊢ Tendsto (fun a => ∑' (a_1 : { x // x ∉ a }), ↑(f ↑a_1)) atTop (𝓝 0)
state_after: no goals
tactic: exact tendsto_tsum_compl_atTop_zero fun a : α => (f a : ℝ)
Theorem: AdicCompletion.transitionMap_eq
File: Mathlib/RingTheory/AdicCompletion/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝⁴ : CommRing R
I : Ideal R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
N : Type u_3
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
⊢ transitionMap I M ⋯ = LinearMap.id
state_after: case h.h
R : Type u_1
inst✝⁴ : CommRing R
I : Ideal R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
N : Type u_3
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
x✝ : M
⊢ (transitionMap I M ⋯ ∘ₗ (I ^ n • ⊤).mkQ) x✝ = (LinearMap.id ∘ₗ (I ^ n • ⊤).mkQ) x✝
tactic: ext
state_before: case h.h
R : Type u_1
inst✝⁴ : CommRing R
I : Ideal R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
N : Type u_3
inst✝¹ : AddCommGroup N
inst✝ : Module R N
n : ℕ
x✝ : M
⊢ (transitionMap I M ⋯ ∘ₗ (I ^ n • ⊤).mkQ) x✝ = (LinearMap.id ∘ₗ (I ^ n • ⊤).mkQ) x✝
state_after: no goals
tactic: simp
Theorem: Ideal.isCoprime_span_singleton_iff
File: Mathlib/RingTheory/Ideal/Operations.lean

Proof steps:
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
x y : R
⊢ IsCoprime (span {x}) (span {y}) ↔ IsCoprime x y
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
x y : R
⊢ (∃ a b, y ∣ b ∧ a * x + b = 1) ↔ IsCoprime x y
tactic: simp_rw [isCoprime_iff_codisjoint, codisjoint_iff, eq_top_iff_one, mem_span_singleton_sup,
    mem_span_singleton]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
x y : R
⊢ (∃ a b, y ∣ b ∧ a * x + b = 1) ↔ IsCoprime x y
state_after: case mp
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
x y : R
⊢ (∃ a b, y ∣ b ∧ a * x + b = 1) → IsCoprime x y

case mpr
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
x y : R
⊢ IsCoprime x y → ∃ a b, y ∣ b ∧ a * x + b = 1
tactic: constructor
Theorem: Summable.map_iff_of_leftInverse
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α
inst✝⁶ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
inst✝⁵ : CommMonoid γ
inst✝⁴ : TopologicalSpace γ
G : Type u_5
G' : Type u_6
inst✝³ : FunLike G α γ
inst✝² : MonoidHomClass G α γ
inst✝¹ : FunLike G' γ α
inst✝ : MonoidHomClass G' γ α
g : G
g' : G'
hg : Continuous ⇑g
hg' : Continuous ⇑g'
hinv : LeftInverse ⇑g' ⇑g
h : Multipliable (⇑g ∘ f)
⊢ Multipliable f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α
inst✝⁶ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
inst✝⁵ : CommMonoid γ
inst✝⁴ : TopologicalSpace γ
G : Type u_5
G' : Type u_6
inst✝³ : FunLike G α γ
inst✝² : MonoidHomClass G α γ
inst✝¹ : FunLike G' γ α
inst✝ : MonoidHomClass G' γ α
g : G
g' : G'
hg : Continuous ⇑g
hg' : Continuous ⇑g'
hinv : LeftInverse ⇑g' ⇑g
h : Multipliable (⇑g ∘ f)
this : Multipliable (⇑g' ∘ ⇑g ∘ f)
⊢ Multipliable f
tactic: have := h.map _ hg'
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁷ : CommMonoid α
inst✝⁶ : TopologicalSpace α
f g✝ : β → α
a b : α
s : Finset β
inst✝⁵ : CommMonoid γ
inst✝⁴ : TopologicalSpace γ
G : Type u_5
G' : Type u_6
inst✝³ : FunLike G α γ
inst✝² : MonoidHomClass G α γ
inst✝¹ : FunLike G' γ α
inst✝ : MonoidHomClass G' γ α
g : G
g' : G'
hg : Continuous ⇑g
hg' : Continuous ⇑g'
hinv : LeftInverse ⇑g' ⇑g
h : Multipliable (⇑g ∘ f)
this : Multipliable (⇑g' ∘ ⇑g ∘ f)
⊢ Multipliable f
state_after: no goals
tactic: rwa [← Function.comp.assoc, hinv.id] at this
Theorem: Asymptotics.IsEquivalent.tendsto_const
File: Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
c : β
hu : u ~[l] const α c
⊢ Tendsto u l (𝓝 c)
state_after: case inl
α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
hu : u ~[l] const α 0
⊢ Tendsto u l (𝓝 0)

case inr
α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
c : β
hu : u ~[l] const α c
h : ¬c = 0
⊢ Tendsto u l (𝓝 c)
tactic: rcases em <| c = 0 with rfl | h
Theorem: MeasureTheory.condexpL1_smul
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL1.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : RCLike 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (μ.trim hm)
f✝ g : α → F'
s : Set α
c : 𝕜
f : α → F'
⊢ condexpL1 hm μ (c • f) = c • condexpL1 hm μ f
state_after: α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : RCLike 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (μ.trim hm)
f✝ g : α → F'
s : Set α
c : 𝕜
f : α → F'
⊢ ∀ (c : 𝕜) (s : Set α) (x : F'), (condexpInd F' hm μ s) (c • x) = c • (condexpInd F' hm μ s) x
tactic: refine setToFun_smul _ ?_ c f
state_before: α : Type u_1
β : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹¹ : RCLike 𝕜
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : NormedSpace 𝕜 F
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : NormedSpace 𝕜 F'
inst✝⁶ : NormedSpace ℝ F'
inst✝⁵ : CompleteSpace F'
inst✝⁴ : NormedAddCommGroup G
inst✝³ : NormedAddCommGroup G'
inst✝² : NormedSpace ℝ G'
inst✝¹ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
hm : m ≤ m0
inst✝ : SigmaFinite (μ.trim hm)
f✝ g : α → F'
s : Set α
c : 𝕜
f : α → F'
⊢ ∀ (c : 𝕜) (s : Set α) (x : F'), (condexpInd F' hm μ s) (c • x) = c • (condexpInd F' hm μ s) x
state_after: no goals
tactic: exact fun c _ x => condexpInd_smul' c x
Theorem: Complex.tan_ne_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

Proof steps:
state_before: θ : ℂ
⊢ tan θ ≠ 0 ↔ ∀ (k : ℤ), ↑k * ↑π / 2 ≠ θ
state_after: no goals
tactic: rw [← not_exists, not_iff_not, tan_eq_zero_iff]
Theorem: MeasureTheory.Measure.integrableOn_toReal_rnDeriv
File: Mathlib/MeasureTheory/Decomposition/RadonNikodym.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
⊢ IntegrableOn (fun x => (μ.rnDeriv ν x).toReal) s ν
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
⊢ ∫⁻ (x : α) in s, μ.rnDeriv ν x ∂ν ≠ ⊤
tactic: refine integrable_toReal_of_lintegral_ne_top (Measure.measurable_rnDeriv _ _).aemeasurable ?_
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
s : Set α
hμs : μ s ≠ ⊤
⊢ ∫⁻ (x : α) in s, μ.rnDeriv ν x ∂ν ≠ ⊤
state_after: no goals
tactic: exact ((setLIntegral_rnDeriv_le _).trans_lt hμs.lt_top).ne
Theorem: measurable_neg_iff
File: Mathlib/MeasureTheory/Group/Arithmetic.lean

Proof steps:
state_before: α✝ : Type u_1
G✝ : Type u_2
α : Type u_3
inst✝⁵ : Inv G✝
inst✝⁴ : MeasurableSpace G✝
inst✝³ : MeasurableInv G✝
m : MeasurableSpace α
f✝ : α → G✝
μ : Measure α
G : Type u_4
inst✝² : Group G
inst✝¹ : MeasurableSpace G
inst✝ : MeasurableInv G
f : α → G
h : Measurable fun x => (f x)⁻¹
⊢ Measurable f
state_after: no goals
tactic: simpa only [inv_inv] using h.inv
Theorem: Multiset.sum_eq_sum_toEnumFinset
File: Mathlib/Data/Multiset/Fintype.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : DecidableEq α
m✝ : Multiset α
inst✝ : CommMonoid α
m : Multiset α
⊢ m.prod = ∏ x ∈ m.toEnumFinset, x.1
state_after: case e_a
α : Type u_1
inst✝¹ : DecidableEq α
m✝ : Multiset α
inst✝ : CommMonoid α
m : Multiset α
⊢ m = map (fun x => x.1) m.toEnumFinset.val
tactic: congr
state_before: case e_a
α : Type u_1
inst✝¹ : DecidableEq α
m✝ : Multiset α
inst✝ : CommMonoid α
m : Multiset α
⊢ m = map (fun x => x.1) m.toEnumFinset.val
state_after: no goals
tactic: simp
Theorem: IsCoprime.sq_add_sq_ne_zero
File: Mathlib/RingTheory/Coprime/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝ : LinearOrderedCommRing R
a b : R
h : IsCoprime a b
⊢ a ^ 2 + b ^ 2 ≠ 0
state_after: R : Type u_1
inst✝ : LinearOrderedCommRing R
a b : R
h : IsCoprime a b
h' : a ^ 2 + b ^ 2 = 0
⊢ False
tactic: intro h'
state_before: R : Type u_1
inst✝ : LinearOrderedCommRing R
a b : R
h : IsCoprime a b
h' : a ^ 2 + b ^ 2 = 0
⊢ False
state_after: case intro
R : Type u_1
inst✝ : LinearOrderedCommRing R
a b : R
h : IsCoprime a b
h' : a ^ 2 + b ^ 2 = 0
ha : a ^ 2 = 0
hb : b ^ 2 = 0
⊢ False
tactic: obtain ⟨ha, hb⟩ := (add_eq_zero_iff' (sq_nonneg _) (sq_nonneg _)).mp h'
state_before: case intro
R : Type u_1
inst✝ : LinearOrderedCommRing R
a b : R
h : IsCoprime a b
h' : a ^ 2 + b ^ 2 = 0
ha : a ^ 2 = 0
hb : b ^ 2 = 0
⊢ False
state_after: case intro
R : Type u_1
inst✝ : LinearOrderedCommRing R
b : R
hb : b ^ 2 = 0
h : IsCoprime 0 b
h' : 0 ^ 2 + b ^ 2 = 0
ha : 0 ^ 2 = 0
⊢ False
tactic: obtain rfl := pow_eq_zero ha
state_before: case intro
R : Type u_1
inst✝ : LinearOrderedCommRing R
b : R
hb : b ^ 2 = 0
h : IsCoprime 0 b
h' : 0 ^ 2 + b ^ 2 = 0
ha : 0 ^ 2 = 0
⊢ False
state_after: case intro
R : Type u_1
inst✝ : LinearOrderedCommRing R
ha hb : 0 ^ 2 = 0
h : IsCoprime 0 0
h' : 0 ^ 2 + 0 ^ 2 = 0
⊢ False
tactic: obtain rfl := pow_eq_zero hb
state_before: case intro
R : Type u_1
inst✝ : LinearOrderedCommRing R
ha hb : 0 ^ 2 = 0
h : IsCoprime 0 0
h' : 0 ^ 2 + 0 ^ 2 = 0
⊢ False
state_after: no goals
tactic: exact not_isCoprime_zero_zero h
Theorem: Fin.zero_eq_one_iff
File: Mathlib/Data/Fin/Basic.lean

Proof steps:
state_before: n m : ℕ
inst✝ : NeZero n
⊢ 0 = 1 ↔ n = 1
state_after: no goals
tactic: rw [eq_comm, one_eq_zero_iff]
Theorem: Filter.tendsto_inf
File: Mathlib/Order/Filter/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l : Filter α
f : α → β
x : Filter α
y₁ y₂ : Filter β
⊢ Tendsto f x (y₁ ⊓ y₂) ↔ Tendsto f x y₁ ∧ Tendsto f x y₂
state_after: no goals
tactic: simp only [Tendsto, le_inf_iff, iff_self_iff]
Theorem: Finite.card_eq_zero_iff
File: Mathlib/Data/Finite/Card.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
⊢ Nat.card α = 0 ↔ IsEmpty α
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
this : Fintype α
⊢ Nat.card α = 0 ↔ IsEmpty α
tactic: haveI := Fintype.ofFinite α
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Finite α
this : Fintype α
⊢ Nat.card α = 0 ↔ IsEmpty α
state_after: no goals
tactic: simp only [Nat.card_eq_fintype_card, Fintype.card_eq_zero_iff]
Theorem: FirstOrder.Language.empty_card
File: Mathlib/ModelTheory/Basic.lean

Proof steps:
state_before: L : Language
L' : Language
⊢ Language.empty.card = 0
state_after: no goals
tactic: simp [card_eq_card_functions_add_card_relations]
Theorem: PNat.prod_factorMultiset
File: Mathlib/Data/PNat/Factors.lean

Proof steps:
state_before: n : ℕ+
⊢ ↑n.factorMultiset.prod = ↑n
state_after: n : ℕ+
⊢ ↑(PrimeMultiset.ofNatList (↑n).primeFactorsList ⋯).prod = ↑n
tactic: dsimp [factorMultiset]
state_before: n : ℕ+
⊢ ↑(PrimeMultiset.ofNatList (↑n).primeFactorsList ⋯).prod = ↑n
state_after: n : ℕ+
⊢ (↑n).primeFactorsList.prod = ↑n
tactic: rw [PrimeMultiset.prod_ofNatList]
state_before: n : ℕ+
⊢ (↑n).primeFactorsList.prod = ↑n
state_after: no goals
tactic: exact Nat.prod_primeFactorsList n.ne_zero
Theorem: hasStrictFDerivAt_iff_hasStrictDerivAt
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

Proof steps:
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f'✝ f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
f' : 𝕜 →L[𝕜] F
⊢ HasStrictFDerivAt f f' x ↔ HasStrictDerivAt f (f' 1) x
state_after: no goals
tactic: simp [HasStrictDerivAt, HasStrictFDerivAt]
Theorem: Multipliable.comp_injective
File: Mathlib/Topology/Algebra/InfiniteSum/Group.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : CommGroup α
inst✝² : UniformSpace α
inst✝¹ : UniformGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : CompleteSpace α
i : γ → β
hf : Multipliable f
hi : Injective i
⊢ Multipliable (f ∘ i)
state_after: no goals
tactic: simpa only [Set.mulIndicator_range_comp] using
    (hi.multipliable_iff (fun x hx ↦ Set.mulIndicator_of_not_mem hx _)).2
    (hf.mulIndicator (Set.range i))
Theorem: SemiconjBy.units_inv_right
File: Mathlib/Algebra/Group/Semiconj/Units.lean

Proof steps:
state_before: M : Type u_1
G : Type u_2
inst✝ : Monoid M
a : M
x y : Mˣ
h : SemiconjBy a ↑x ↑y
⊢ a * ↑x⁻¹ = ↑y⁻¹ * (↑y * a) * ↑x⁻¹
state_after: no goals
tactic: rw [Units.inv_mul_cancel_left]
state_before: M : Type u_1
G : Type u_2
inst✝ : Monoid M
a : M
x y : Mˣ
h : SemiconjBy a ↑x ↑y
⊢ ↑y⁻¹ * (↑y * a) * ↑x⁻¹ = ↑y⁻¹ * a
state_after: no goals
tactic: rw [← h.eq, mul_assoc, Units.mul_inv_cancel_right]
Theorem: gauge_lt_one_eq_self_of_isOpen
File: Mathlib/Analysis/Convex/Gauge.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
hs₁ : Convex ℝ s
hs₀ : 0 ∈ s
hs₂ : IsOpen s
⊢ {x | gauge s x < 1} = s
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
hs₁ : Convex ℝ s
hs₀ : 0 ∈ s
hs₂ : IsOpen s
⊢ s ⊆ {x | gauge s x < 1}
tactic: refine (gauge_lt_one_subset_self hs₁ ‹_› <| absorbent_nhds_zero <| hs₂.mem_nhds hs₀).antisymm ?_
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
hs₁ : Convex ℝ s
hs₀ : 0 ∈ s
hs₂ : IsOpen s
⊢ s ⊆ {x | gauge s x < 1}
state_after: case h.e'_3
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
hs₁ : Convex ℝ s
hs₀ : 0 ∈ s
hs₂ : IsOpen s
⊢ s = interior s
tactic: convert interior_subset_gauge_lt_one s
state_before: case h.e'_3
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
s t : Set E
x : E
a : ℝ
inst✝¹ : TopologicalSpace E
inst✝ : ContinuousSMul ℝ E
hs₁ : Convex ℝ s
hs₀ : 0 ∈ s
hs₂ : IsOpen s
⊢ s = interior s
state_after: no goals
tactic: exact hs₂.interior_eq.symm
Theorem: Equiv.swap_apply_self
File: Mathlib/Logic/Equiv/Basic.lean

Proof steps:
state_before: α : Sort u_1
inst✝ : DecidableEq α
i j a : α
⊢ (swap i j) ((swap i j) a) = a
state_after: no goals
tactic: rw [← Equiv.trans_apply, Equiv.swap_swap, Equiv.refl_apply]
Theorem: Real.sqrt_eq_iff_mul_self_eq_of_pos
File: Mathlib/Data/Real/Sqrt.lean

Proof steps:
state_before: x y : ℝ
h : 0 < y
⊢ √x = y ↔ y * y = x
state_after: no goals
tactic: simp [sqrt_eq_cases, h.ne', h.le]
Theorem: Complex.differentiable_Gammaℝ_inv
File: Mathlib/Analysis/SpecialFunctions/Gamma/Deligne.lean

Proof steps:
state_before: ⊢ Differentiable ℂ fun s => s.Gammaℝ⁻¹
state_after: ⊢ Differentiable ℂ fun s => (↑π ^ (-s / 2))⁻¹ * (Gamma (s / 2))⁻¹
tactic: conv => enter [2, s]; rw [Gammaℝ, mul_inv]
state_before: ⊢ Differentiable ℂ fun s => (↑π ^ (-s / 2))⁻¹ * (Gamma (s / 2))⁻¹
state_after: case refine_1
s : ℂ
⊢ DifferentiableAt ℂ (fun s => ↑π ^ (-s / 2)) s

case refine_2

⊢ Differentiable ℂ fun s => (Gamma (s / 2))⁻¹
tactic: refine Differentiable.mul (fun s ↦ .inv ?_ (by simp [pi_ne_zero])) ?_
Theorem: FermatLastTheoremForThreeGen.Solution.a_add_eta_mul_b
File: Mathlib/NumberTheory/FLT/Three.lean

Proof steps:
state_before: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
⊢ S.a + ↑η * S.b = S.a + S.b + λ * S.b
state_after: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
⊢ S.a + hζ.toInteger * S.b = S.a + S.b + λ * S.b
tactic: rw [coe_eta]
state_before: K : Type u_1
inst✝³ : Field K
inst✝² : NumberField K
inst✝¹ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
S : Solution hζ
S' : Solution' hζ
inst✝ : DecidableRel fun a b => a ∣ b
⊢ S.a + hζ.toInteger * S.b = S.a + S.b + λ * S.b
state_after: no goals
tactic: ring
Theorem: Finpartition.exists_subset_part_bijOn
File: Mathlib/Order/Partition/Finpartition.lean

Proof steps:
state_before: α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
⊢ ∃ r ⊆ s, Set.BijOn P.part ↑r ↑P.parts
state_after: case intro.intro
α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
r : Set α
hrs : r ⊆ ↑s
hr : Set.BijOn P.part r ↑P.parts
⊢ ∃ r ⊆ s, Set.BijOn P.part ↑r ↑P.parts
tactic: obtain ⟨r, hrs, hr⟩ := P.part_surjOn.exists_bijOn_subset
state_before: case intro.intro
α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
r : Set α
hrs : r ⊆ ↑s
hr : Set.BijOn P.part r ↑P.parts
⊢ ∃ r ⊆ s, Set.BijOn P.part ↑r ↑P.parts
state_after: case intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
r : Finset α
hrs : ↑r ⊆ ↑s
hr : Set.BijOn P.part ↑r ↑P.parts
⊢ ∃ r ⊆ s, Set.BijOn P.part ↑r ↑P.parts
tactic: lift r to Finset α using s.finite_toSet.subset hrs
state_before: case intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
s t u : Finset α
P : Finpartition s
a : α
r : Finset α
hrs : ↑r ⊆ ↑s
hr : Set.BijOn P.part ↑r ↑P.parts
⊢ ∃ r ⊆ s, Set.BijOn P.part ↑r ↑P.parts
state_after: no goals
tactic: exact ⟨r, mod_cast hrs, hr⟩
Theorem: Behrend.map_monotone
File: Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
n d✝ k N : ℕ
x✝ : Fin n → ℕ
d : ℕ
x y : Fin n → ℕ
h : x ≤ y
⊢ (map d) x ≤ (map d) y
state_after: α : Type u_1
β : Type u_2
n d✝ k N : ℕ
x✝ : Fin n → ℕ
d : ℕ
x y : Fin n → ℕ
h : x ≤ y
⊢ ∑ i : Fin n, x i * d ^ ↑i ≤ ∑ i : Fin n, y i * d ^ ↑i
tactic: dsimp
state_before: α : Type u_1
β : Type u_2
n d✝ k N : ℕ
x✝ : Fin n → ℕ
d : ℕ
x y : Fin n → ℕ
h : x ≤ y
⊢ ∑ i : Fin n, x i * d ^ ↑i ≤ ∑ i : Fin n, y i * d ^ ↑i
state_after: no goals
tactic: exact sum_le_sum fun i _ => Nat.mul_le_mul_right _ <| h i
Theorem: Matrix.transpose_add
File: Mathlib/Data/Matrix/Basic.lean

Proof steps:
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝ : Add α
M N : Matrix m n α
⊢ (M + N)ᵀ = Mᵀ + Nᵀ
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝ : Add α
M N : Matrix m n α
i✝ : n
j✝ : m
⊢ (M + N)ᵀ i✝ j✝ = (Mᵀ + Nᵀ) i✝ j✝
tactic: ext
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝ : Add α
M N : Matrix m n α
i✝ : n
j✝ : m
⊢ (M + N)ᵀ i✝ j✝ = (Mᵀ + Nᵀ) i✝ j✝
state_after: no goals
tactic: simp
Theorem: selfZPow_zero
File: Mathlib/RingTheory/Localization/Away/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝³ : CommRing R
x : R
B : Type u_2
inst✝² : CommRing B
inst✝¹ : Algebra R B
inst✝ : IsLocalization.Away x B
⊢ selfZPow x B 0 = 1
state_after: no goals
tactic: simp [selfZPow_of_nonneg _ _ le_rfl]
Theorem: Function.eq_update_self_iff
File: Mathlib/Logic/Function/Basic.lean

Proof steps:
state_before: α : Sort u
β : α → Sort v
α' : Sort w
inst✝¹ : DecidableEq α
inst✝ : DecidableEq α'
f g : (a : α) → β a
a : α
b : β a
⊢ f = update f a b ↔ f a = b
state_after: no goals
tactic: simp [eq_update_iff]
Theorem: least_ascending_central_series_length_eq_nilpotencyClass
File: Mathlib/GroupTheory/Nilpotent.lean

Proof steps:
state_before: G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
hG : Group.IsNilpotent G
⊢ Nat.find ⋯ = Group.nilpotencyClass G
state_after: case refine_1
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
hG : Group.IsNilpotent G
⊢ ∀ (n : ℕ), upperCentralSeries G n = ⊤ → ∃ H, IsAscendingCentralSeries H ∧ H n = ⊤

case refine_2
G : Type u_1
inst✝¹ : Group G
H : Subgroup G
inst✝ : H.Normal
hG : Group.IsNilpotent G
⊢ ∀ (n : ℕ), (∃ H, IsAscendingCentralSeries H ∧ H n = ⊤) → upperCentralSeries G n = ⊤
tactic: refine le_antisymm (Nat.find_mono ?_) (Nat.find_mono ?_)