1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsLocalization.eq_iff_exists
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: apply_fun algebraMap R S at h
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
x y : R
x✝ : ∃ c, ↑c * x = ↑c * y
c : ↥M
h : ↑c * x = ↑c * y
⊢ (algebraMap R S) x = (algebraMap R S) y
state_after: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
x y : R
x✝ : ∃ c, ↑c * x = ↑c * y
c : ↥M
h : (algebraMap R S) (↑c * x) = (algebraMap R S) (↑c * y)
⊢ (algebraMap R S) x = (algebraMap R S) y

tactic: rw [map_mul, map_mul] at h
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
x y : R
x✝ : ∃ c, ↑c * x = ↑c * y
c : ↥M
h : (algebraMap R S) (↑c * x) = (algebraMap R S) (↑c * y)
⊢ (algebraMap R S) x = (algebraMap R S) y
state_after: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
x y : R
x✝ : ∃ c, ↑c * x = ↑c * y
c : ↥M
h : (algebraMap R S) ↑c * (algebraMap R S) x = (algebraMap R S) ↑c * (algebraMap R S) y
⊢ (algebraMap R S) x = (algebraMap R S) y

tactic: exact (IsLocalization.map_units S c).mul_right_inj.mp h
state_before: R : Type u_1
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_3
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
x y : R
x✝ : ∃ c, ↑c * x = ↑c * y
c : ↥M
h : (algebraMap R S) ↑c * (algebraMap R S) x = (algebraMap R S) ↑c * (algebraMap R S) y
⊢ (algebraMap R S) x = (algebraMap R S) y
state_after: no goals
Theorem: spanPoints_nonempty
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

tactic: constructor
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 : Set P
⊢ (spanPoints k s).Nonempty ↔ s.Nonempty
state_after: case mp
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 : Set P
⊢ (spanPoints k s).Nonempty → s.Nonempty

case mpr
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 : Set P
⊢ s.Nonempty → (spanPoints k s).Nonempty

tactic: contrapose
state_before: case mp
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 : Set P
⊢ (spanPoints k s).Nonempty → s.Nonempty
state_after: case mp
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 : Set P
⊢ ¬s.Nonempty → ¬(spanPoints k s).Nonempty

tactic: rw [Set.not_nonempty_iff_eq_empty, Set.not_nonempty_iff_eq_empty]
state_before: case mp
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 : Set P
⊢ ¬s.Nonempty → ¬(spanPoints k s).Nonempty
state_after: case mp
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 : Set P
⊢ s = ∅ → spanPoints k s = ∅

tactic: intro h
state_before: case mp
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 : Set P
⊢ s = ∅ → spanPoints k s = ∅
state_after: case mp
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 : Set P
h : s = ∅
⊢ spanPoints k s = ∅

tactic: simp [h, spanPoints]
state_before: case mp
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 : Set P
h : s = ∅
⊢ spanPoints k s = ∅
state_after: no goals

tactic: exact fun h => h.mono (subset_spanPoints _ _)
state_before: case mpr
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 : Set P
⊢ s.Nonempty → (spanPoints k s).Nonempty
state_after: no goals
Theorem: List.subperm_singleton_iff
File: Mathlib/Data/List/Perm.lean

tactic: constructor
state_before: α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
⊢ l <+~ [a] ↔ l = [] ∨ l = [a]
state_after: case mp
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
⊢ l <+~ [a] → l = [] ∨ l = [a]

case mpr
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
⊢ l = [] ∨ l = [a] → l <+~ [a]

tactic: rw [subperm_iff]
state_before: case mp
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
⊢ l <+~ [a] → l = [] ∨ l = [a]
state_after: case mp
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
⊢ (∃ l_1, l_1 ~ [a] ∧ l <+ l_1) → l = [] ∨ l = [a]

tactic: rintro ⟨s, hla, h⟩
state_before: case mp
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
⊢ (∃ l_1, l_1 ~ [a] ∧ l <+ l_1) → l = [] ∨ l = [a]
state_after: case mp.intro.intro
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
s : List α
hla : s ~ [a]
h : l <+ s
⊢ l = [] ∨ l = [a]

tactic: rwa [perm_singleton.mp hla, sublist_singleton] at h
state_before: case mp.intro.intro
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
s : List α
hla : s ~ [a]
h : l <+ s
⊢ l = [] ∨ l = [a]
state_after: no goals

tactic: rintro (rfl | rfl)
state_before: case mpr
α : Type u_1
β : Type u_2
l l₁ l₂ : List α
a : α
⊢ l = [] ∨ l = [a] → l <+~ [a]
state_after: case mpr.inl
α : Type u_1
β : Type u_2
l₁ l₂ : List α
a : α
⊢ [] <+~ [a]

case mpr.inr
α : Type u_1
β : Type u_2
l₁ l₂ : List α
a : α
⊢ [a] <+~ [a]

tactic: exacts [nil_subperm, Subperm.refl _]
state_before: case mpr.inl
α : Type u_1
β : Type u_2
l₁ l₂ : List α
a : α
⊢ [] <+~ [a]

case mpr.inr
α : Type u_1
β : Type u_2
l₁ l₂ : List α
a : α
⊢ [a] <+~ [a]
state_after: no goals
Theorem: Filter.inv_nhdsWithin_ne_zero
File: Mathlib/Analysis/Normed/Field/Basic.lean

tactic: rw [← inv_cobounded₀, inv_inv]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NormedDivisionRing α
a : α
⊢ (𝓝[≠] 0)⁻¹ = cobounded α
state_after: no goals
Theorem: PadicInt.valuation_p
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: simp [valuation]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
⊢ (↑p).valuation = 1
state_after: no goals
Theorem: Finset.cons_eq_insert
File: Mathlib/Data/Finset/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t u v : Finset α
a✝¹ b a✝ : α
s : Finset α
h : a✝ ∉ s
a : α
⊢ a ∈ cons a✝ s h ↔ a ∈ insert a✝ s
state_after: no goals
Theorem: MeasureTheory.Integrable.re
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: rw [← memℒp_one_iff_integrable] at hf ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
hf : Integrable f μ
⊢ Integrable (fun x => RCLike.re (f x)) μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
hf : Memℒp f 1 μ
⊢ Memℒp (fun x => RCLike.re (f x)) 1 μ

tactic: exact hf.re
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝³ : MeasurableSpace δ
inst✝² : NormedAddCommGroup β
inst✝¹ : NormedAddCommGroup γ
𝕜 : Type u_5
inst✝ : RCLike 𝕜
f : α → 𝕜
hf : Memℒp f 1 μ
⊢ Memℒp (fun x => RCLike.re (f x)) 1 μ
state_after: no goals
Theorem: EuclideanGeometry.sin_oangle_right_mul_dist_of_oangle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean

tactic: have hs : (∡ p₂ p₃ p₁).sign = 1 := by rw [oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₂ p₃ p₁).sin * dist p₁ p₃ = dist p₁ p₂
state_after: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₂ p₃ p₁).sign = 1
⊢ (∡ p₂ p₃ p₁).sin * dist p₁ p₃ = dist p₁ p₂

tactic: rw [oangle_eq_angle_of_sign_eq_one hs, Real.Angle.sin_coe,
  sin_angle_mul_dist_of_angle_eq_pi_div_two (angle_eq_pi_div_two_of_oangle_eq_pi_div_two h)]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
hs : (∡ p₂ p₃ p₁).sign = 1
⊢ (∡ p₂ p₃ p₁).sin * dist p₁ p₃ = dist p₁ p₂
state_after: no goals

tactic: rw [oangle_rotate_sign, h, Real.Angle.sign_coe_pi_div_two]
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₂ p₃ : P
h : ∡ p₁ p₂ p₃ = ↑(π / 2)
⊢ (∡ p₂ p₃ p₁).sign = 1
state_after: no goals
Theorem: uniformity_le_symm
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [map_swap_eq_comap_swap]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
⊢ 𝓤 α ≤ Prod.swap <$> 𝓤 α
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
⊢ 𝓤 α ≤ comap Prod.swap (𝓤 α)

tactic: exact tendsto_swap_uniformity.le_comap
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
⊢ 𝓤 α ≤ comap Prod.swap (𝓤 α)
state_after: no goals
Theorem: Polynomial.toFinsupp_eq_one
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [← toFinsupp_one, toFinsupp_inj]
state_before: R : Type u
a✝ b : R
m n : ℕ
inst✝ : Semiring R
p q a : R[X]
⊢ a.toFinsupp = 1 ↔ a = 1
state_after: no goals
Theorem: Fintype.prod_ite_eq_ite_exists
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: simp [prod_ite_one univ p (by simpa using h)]
state_before: ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α✝
a✝ : α✝
f g : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
p : ι → Prop
inst✝ : DecidablePred p
h : ∀ (i j : ι), p i → p j → i = j
a : α
⊢ (∏ i : ι, if p i then a else 1) = if ∃ i, p i then a else 1
state_after: no goals

tactic: simpa using h
state_before: ι✝ : Type u_1
κ✝ : Type u_2
α✝ : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α✝
a✝ : α✝
f g : α✝ → β
ι : Type u_6
κ : Type u_7
α : Type u_8
inst✝³ : Fintype ι
inst✝² : Fintype κ
inst✝¹ : CommMonoid α
p : ι → Prop
inst✝ : DecidablePred p
h : ∀ (i j : ι), p i → p j → i = j
a : α
⊢ ∀ i ∈ univ, ∀ j ∈ univ, p i → p j → i = j
state_after: no goals
Theorem: MvPolynomial.vars_pow
File: Mathlib/Algebra/MvPolynomial/Variables.lean

tactic: induction' n with n ih
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
n : ℕ
⊢ (φ ^ n).vars ⊆ φ.vars
state_after: case zero
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
⊢ (φ ^ 0).vars ⊆ φ.vars

case succ
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
n : ℕ
ih : (φ ^ n).vars ⊆ φ.vars
⊢ (φ ^ (n + 1)).vars ⊆ φ.vars

tactic: simp
state_before: case zero
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
⊢ (φ ^ 0).vars ⊆ φ.vars
state_after: no goals

tactic: rw [pow_succ']
state_before: case succ
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
n : ℕ
ih : (φ ^ n).vars ⊆ φ.vars
⊢ (φ ^ (n + 1)).vars ⊆ φ.vars
state_after: case succ
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
n : ℕ
ih : (φ ^ n).vars ⊆ φ.vars
⊢ (φ * φ ^ n).vars ⊆ φ.vars

tactic: apply Finset.Subset.trans (vars_mul _ _)
state_before: case succ
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
n : ℕ
ih : (φ ^ n).vars ⊆ φ.vars
⊢ (φ * φ ^ n).vars ⊆ φ.vars
state_after: case succ
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
n : ℕ
ih : (φ ^ n).vars ⊆ φ.vars
⊢ φ.vars ∪ (φ ^ n).vars ⊆ φ.vars

tactic: exact Finset.union_subset (Finset.Subset.refl _) ih
state_before: case succ
R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q φ : MvPolynomial σ R
n : ℕ
ih : (φ ^ n).vars ⊆ φ.vars
⊢ φ.vars ∪ (φ ^ n).vars ⊆ φ.vars
state_after: no goals
Theorem: Equiv.exists_congr
File: Mathlib/Logic/Equiv/Defs.lean

tactic: simp [h]
state_before: α : Sort u
β : Sort v
γ : Sort w
p : α → Prop
q : β → Prop
e : α ≃ β
h : ∀ (a : α), p a ↔ q (e a)
⊢ (∃ b, p (e.symm b)) ↔ ∃ b, q b
state_after: no goals
Theorem: MeasureTheory.dirac_ne_dirac
File: Mathlib/MeasureTheory/Measure/Dirac.lean

tactic: obtain ⟨A, A_mble, x_in_A, y_notin_A⟩ := exists_measurableSet_of_ne x_ne_y
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
a : α
inst✝ : MeasurableSpace.SeparatesPoints α
x y : α
x_ne_y : x ≠ y
⊢ dirac x ≠ dirac y
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
a : α
inst✝ : MeasurableSpace.SeparatesPoints α
x y : α
x_ne_y : x ≠ y
A : Set α
A_mble : MeasurableSet A
x_in_A : x ∈ A
y_notin_A : y ∉ A
⊢ dirac x ≠ dirac y

tactic: exact dirac_ne_dirac_iff_exists_measurableSet.mpr ⟨A, A_mble, x_in_A, y_notin_A⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
δ : Type u_3
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
s : Set α
a : α
inst✝ : MeasurableSpace.SeparatesPoints α
x y : α
x_ne_y : x ≠ y
A : Set α
A_mble : MeasurableSet A
x_in_A : x ∈ A
y_notin_A : y ∉ A
⊢ dirac x ≠ dirac y
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.nonsingular_of_Z_eq_zero
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: simp only [nonsingular_iff, hPz, add_zero, sub_zero, zero_sub, mul_zero,
  zero_pow <| OfNat.ofNat_ne_zero _, neg_ne_zero]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hPz : P z = 0
⊢ W'.Nonsingular P ↔ W'.Equation P ∧ (3 * P x ^ 2 ≠ 0 ∨ 2 * P y ≠ 0 ∨ W'.a₁ * P x * P y ≠ 0)
state_after: no goals
Theorem: Real.tendsto_pow_mul_exp_neg_atTop_nhds_zero
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: rw [comp_apply, inv_eq_one_div, div_div_eq_mul_div, one_mul, div_eq_mul_inv, exp_neg]
state_before: α : Type u_1
x✝ y z : ℝ
l : Filter α
n : ℕ
x : ℝ
⊢ ((fun r => r⁻¹) ∘ fun x => rexp x / x ^ n) x = x ^ n * rexp (-x)
state_after: no goals
Theorem: FractionalIdeal.count_maximal
File: Mathlib/RingTheory/DedekindDomain/Factorization.lean

tactic: split_ifs with h
state_before: R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v w : HeightOneSpectrum R
⊢ count K v ↑w.asIdeal = if w = v then 1 else 0
state_after: case pos
R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v w : HeightOneSpectrum R
h : w = v
⊢ count K v ↑w.asIdeal = 1

case neg
R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v w : HeightOneSpectrum R
h : ¬w = v
⊢ count K v ↑w.asIdeal = 0

tactic: rw [h, count_self]
state_before: case pos
R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v w : HeightOneSpectrum R
h : w = v
⊢ count K v ↑w.asIdeal = 1
state_after: no goals

tactic: exact count_maximal_coprime K v h
state_before: case neg
R : Type u_1
inst✝⁴ : CommRing R
K : Type u_2
inst✝³ : Field K
inst✝² : Algebra R K
inst✝¹ : IsFractionRing R K
inst✝ : IsDedekindDomain R
v w : HeightOneSpectrum R
h : ¬w = v
⊢ count K v ↑w.asIdeal = 0
state_after: no goals
Theorem: Set.pairwise_disjoint_Ioo_add_intCast
File: Mathlib/Algebra/Order/Interval/Set/Group.lean

tactic: simpa only [zsmul_one, Int.cast_add, Int.cast_one, ← add_assoc] using
  pairwise_disjoint_Ioo_add_zsmul a (1 : α)
state_before: α : Type u_1
inst✝ : OrderedRing α
a : α
⊢ Pairwise (Disjoint on fun n => Ioo (a + ↑n) (a + ↑n + 1))
state_after: no goals
Theorem: ProbabilityTheory.kernel.ext_fun_iff
File: Mathlib/Probability/Kernel/Basic.lean

tactic: rw [h]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
κ η : ↥(kernel α β)
h : κ = η
a : α
f : β → ℝ≥0∞
x✝ : Measurable f
⊢ ∫⁻ (b : β), f b ∂κ a = ∫⁻ (b : β), f b ∂η a
state_after: no goals
Theorem: prevD_eq_zero
File: Mathlib/Algebra/Homology/Homotopy.lean

tactic: dsimp [prevD]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g : C ⟶ D
h k : D ⟶ E
i✝ : ι
f : (i j : ι) → C.X i ⟶ D.X j
i : ι
hi : ¬c.Rel (c.prev i) i
⊢ (prevD i) f = 0
state_after: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g : C ⟶ D
h k : D ⟶ E
i✝ : ι
f : (i j : ι) → C.X i ⟶ D.X j
i : ι
hi : ¬c.Rel (c.prev i) i
⊢ f i (c.prev i) ≫ D.d (c.prev i) i = 0

tactic: rw [shape _ _ _ hi, comp_zero]
state_before: ι : Type u_1
V : Type u
inst✝¹ : Category.{v, u} V
inst✝ : Preadditive V
c : ComplexShape ι
C D E : HomologicalComplex V c
f✝ g : C ⟶ D
h k : D ⟶ E
i✝ : ι
f : (i j : ι) → C.X i ⟶ D.X j
i : ι
hi : ¬c.Rel (c.prev i) i
⊢ f i (c.prev i) ≫ D.d (c.prev i) i = 0
state_after: no goals
Theorem: MulEquiv.coe_monoidHom_comp_coe_monoidHom_symm
File: Mathlib/Algebra/Group/Equiv/Basic.lean

tactic: ext
state_before: F : Type u_1
α : Type u_2
β : Type u_3
A : Type u_4
B : Type u_5
M : Type u_6
N : Type u_7
P : Type u_8
Q : Type u_9
G : Type u_10
H : Type u_11
inst✝³ : EquivLike F α β
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
e : M ≃* N
⊢ (↑e).comp ↑e.symm = MonoidHom.id N
state_after: case h
F : Type u_1
α : Type u_2
β : Type u_3
A : Type u_4
B : Type u_5
M : Type u_6
N : Type u_7
P : Type u_8
Q : Type u_9
G : Type u_10
H : Type u_11
inst✝³ : EquivLike F α β
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
e : M ≃* N
x✝ : N
⊢ ((↑e).comp ↑e.symm) x✝ = (MonoidHom.id N) x✝

tactic: simp
state_before: case h
F : Type u_1
α : Type u_2
β : Type u_3
A : Type u_4
B : Type u_5
M : Type u_6
N : Type u_7
P : Type u_8
Q : Type u_9
G : Type u_10
H : Type u_11
inst✝³ : EquivLike F α β
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
e : M ≃* N
x✝ : N
⊢ ((↑e).comp ↑e.symm) x✝ = (MonoidHom.id N) x✝
state_after: no goals
Theorem: CategoryTheory.eval_map
File: Mathlib/CategoryTheory/Sites/Types.lean

tactic: simp_rw [eval, ← FunctorToTypes.map_comp_apply, ← op_comp]
state_before: S : Type uᵒᵖ ⥤ Type u
α β : Type u
f : β ⟶ α
s : S.obj { unop := α }
x : β
⊢ eval S β (S.map f.op s) x = eval S α s (f x)
state_after: S : Type uᵒᵖ ⥤ Type u
α β : Type u
f : β ⟶ α
s : S.obj { unop := α }
x : β
⊢ S.map ((↾fun x_1 => x) ≫ f).op s = S.map (↾fun x_1 => f x).op s

tactic: rfl
state_before: S : Type uᵒᵖ ⥤ Type u
α β : Type u
f : β ⟶ α
s : S.obj { unop := α }
x : β
⊢ S.map ((↾fun x_1 => x) ≫ f).op s = S.map (↾fun x_1 => f x).op s
state_after: no goals
Theorem: spectrum.subset_closedBall_norm_mul
File: Mathlib/Analysis/NormedSpace/Spectrum.lean

tactic: simp [norm_le_norm_mul_of_mem hk]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝³ : NormedField 𝕜
inst✝² : NormedRing A
inst✝¹ : NormedAlgebra 𝕜 A
inst✝ : CompleteSpace A
a : A
k : 𝕜
hk : k ∈ σ a
⊢ k ∈ Metric.closedBall 0 (‖a‖ * ‖1‖)
state_after: no goals
Theorem: finprod_mem_finset_product₃
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: classical
  rw [finprod_mem_finset_product']
  simp_rw [finprod_mem_finset_product']
  simp
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
f✝ g : α → M
a b : α
s✝ t : Set α
γ : Type u_7
s : Finset (α × β × γ)
f : α × β × γ → M
⊢ ∏ᶠ (abc : α × β × γ) (_ : abc ∈ s), f abc = ∏ᶠ (a : α) (b : β) (c : γ) (_ : (a, b, c) ∈ s), f (a, b, c)
state_after: no goals

tactic: rw [finprod_mem_finset_product']
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
f✝ g : α → M
a b : α
s✝ t : Set α
γ : Type u_7
s : Finset (α × β × γ)
f : α × β × γ → M
⊢ ∏ᶠ (abc : α × β × γ) (_ : abc ∈ s), f abc = ∏ᶠ (a : α) (b : β) (c : γ) (_ : (a, b, c) ∈ s), f (a, b, c)
state_after: α : 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
f✝ g : α → M
a b : α
s✝ t : Set α
γ : Type u_7
s : Finset (α × β × γ)
f : α × β × γ → M
⊢ ∏ᶠ (a : α) (b : β × γ) (_ : b ∈ Finset.image Prod.snd (Finset.filter (fun ab => ab.1 = a) s)), f (a, b) =
    ∏ᶠ (a : α) (b : β) (c : γ) (_ : (a, b, c) ∈ s), f (a, b, c)

tactic: simp_rw [finprod_mem_finset_product']
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
f✝ g : α → M
a b : α
s✝ t : Set α
γ : Type u_7
s : Finset (α × β × γ)
f : α × β × γ → M
⊢ ∏ᶠ (a : α) (b : β × γ) (_ : b ∈ Finset.image Prod.snd (Finset.filter (fun ab => ab.1 = a) s)), f (a, b) =
    ∏ᶠ (a : α) (b : β) (c : γ) (_ : (a, b, c) ∈ s), f (a, b, c)
state_after: α : 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
f✝ g : α → M
a b : α
s✝ t : Set α
γ : Type u_7
s : Finset (α × β × γ)
f : α × β × γ → M
⊢ ∏ᶠ (a : α) (a_1 : β) (b : γ) (_ :
      b ∈
        Finset.image Prod.snd
          (Finset.filter (fun ab => ab.1 = a_1) (Finset.image Prod.snd (Finset.filter (fun ab => ab.1 = a) s)))),
      f (a, a_1, b) =
    ∏ᶠ (a : α) (b : β) (c : γ) (_ : (a, b, c) ∈ s), f (a, b, c)

tactic: simp
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
f✝ g : α → M
a b : α
s✝ t : Set α
γ : Type u_7
s : Finset (α × β × γ)
f : α × β × γ → M
⊢ ∏ᶠ (a : α) (a_1 : β) (b : γ) (_ :
      b ∈
        Finset.image Prod.snd
          (Finset.filter (fun ab => ab.1 = a_1) (Finset.image Prod.snd (Finset.filter (fun ab => ab.1 = a) s)))),
      f (a, a_1, b) =
    ∏ᶠ (a : α) (b : β) (c : γ) (_ : (a, b, c) ∈ s), f (a, b, c)
state_after: no goals
Theorem: Asymptotics.isEquivalent_zero_iff_isBigO_zero
File: Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

tactic: refine ⟨IsEquivalent.isBigO, fun h ↦ ?_⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
⊢ u ~[l] 0 ↔ u =O[l] 0
state_after: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
h : u =O[l] 0
⊢ u ~[l] 0

tactic: rw [isEquivalent_zero_iff_eventually_zero, eventuallyEq_iff_exists_mem]
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
h : u =O[l] 0
⊢ u ~[l] 0
state_after: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
h : u =O[l] 0
⊢ ∃ s ∈ l, Set.EqOn u 0 s

tactic: exact ⟨{ x : α | u x = 0 }, isBigO_zero_right_iff.mp h, fun x hx ↦ hx⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
h : u =O[l] 0
⊢ ∃ s ∈ l, Set.EqOn u 0 s
state_after: no goals