1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Subgroupoid.isTotallyDisconnected_iff
File: Mathlib/CategoryTheory/Groupoid/Subgroupoid.lean

tactic: constructor
state_before: C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ S.IsTotallyDisconnected ↔ ∀ (c d : C), (S.arrows c d).Nonempty → c = d
state_after: case mp
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ S.IsTotallyDisconnected → ∀ (c d : C), (S.arrows c d).Nonempty → c = d

case mpr
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ (∀ (c d : C), (S.arrows c d).Nonempty → c = d) → S.IsTotallyDisconnected

tactic: rintro h c d ⟨f, fS⟩
state_before: case mp
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ S.IsTotallyDisconnected → ∀ (c d : C), (S.arrows c d).Nonempty → c = d
state_after: case mp.intro
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : S.IsTotallyDisconnected
c d : C
f : c ⟶ d
fS : f ∈ S.arrows c d
⊢ c = d

tactic: have := h ⟨c, mem_objs_of_src S fS⟩ ⟨d, mem_objs_of_tgt S fS⟩ ⟨f, fS⟩
state_before: case mp.intro
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : S.IsTotallyDisconnected
c d : C
f : c ⟶ d
fS : f ∈ S.arrows c d
⊢ c = d
state_after: case mp.intro
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : S.IsTotallyDisconnected
c d : C
f : c ⟶ d
fS : f ∈ S.arrows c d
this : ⟨c, ⋯⟩ = ⟨d, ⋯⟩
⊢ c = d

tactic: exact congr_arg Subtype.val this
state_before: case mp.intro
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : S.IsTotallyDisconnected
c d : C
f : c ⟶ d
fS : f ∈ S.arrows c d
this : ⟨c, ⋯⟩ = ⟨d, ⋯⟩
⊢ c = d
state_after: no goals

tactic: rintro h ⟨c, hc⟩ ⟨d, hd⟩ ⟨f, fS⟩
state_before: case mpr
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
⊢ (∀ (c d : C), (S.arrows c d).Nonempty → c = d) → S.IsTotallyDisconnected
state_after: case mpr.mk.mk.mk
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : ∀ (c d : C), (S.arrows c d).Nonempty → c = d
c : C
hc : c ∈ S.objs
d : C
hd : d ∈ S.objs
f : ↑⟨c, hc⟩ ⟶ ↑⟨d, hd⟩
fS : f ∈ S.arrows ↑⟨c, hc⟩ ↑⟨d, hd⟩
⊢ ⟨c, hc⟩ = ⟨d, hd⟩

tactic: simp only [Subtype.mk_eq_mk]
state_before: case mpr.mk.mk.mk
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : ∀ (c d : C), (S.arrows c d).Nonempty → c = d
c : C
hc : c ∈ S.objs
d : C
hd : d ∈ S.objs
f : ↑⟨c, hc⟩ ⟶ ↑⟨d, hd⟩
fS : f ∈ S.arrows ↑⟨c, hc⟩ ↑⟨d, hd⟩
⊢ ⟨c, hc⟩ = ⟨d, hd⟩
state_after: case mpr.mk.mk.mk
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : ∀ (c d : C), (S.arrows c d).Nonempty → c = d
c : C
hc : c ∈ S.objs
d : C
hd : d ∈ S.objs
f : ↑⟨c, hc⟩ ⟶ ↑⟨d, hd⟩
fS : f ∈ S.arrows ↑⟨c, hc⟩ ↑⟨d, hd⟩
⊢ c = d

tactic: exact h c d ⟨f, fS⟩
state_before: case mpr.mk.mk.mk
C : Type u
inst✝ : Groupoid C
S : Subgroupoid C
h : ∀ (c d : C), (S.arrows c d).Nonempty → c = d
c : C
hc : c ∈ S.objs
d : C
hd : d ∈ S.objs
f : ↑⟨c, hc⟩ ⟶ ↑⟨d, hd⟩
fS : f ∈ S.arrows ↑⟨c, hc⟩ ↑⟨d, hd⟩
⊢ c = d
state_after: no goals
Theorem: tprod_singleton
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: rw [← coe_singleton, Finset.tprod_subtype', prod_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a a₁ a₂ : α
b : β
f : β → α
⊢ ∏' (x : ↑{b}), f ↑x = f b
state_after: no goals
Theorem: Real.Angle.toReal_eq_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: nth_rw 1 [← toReal_zero]
state_before: θ : Angle
⊢ θ.toReal = 0 ↔ θ = 0
state_after: θ : Angle
⊢ θ.toReal = toReal 0 ↔ θ = 0

tactic: exact toReal_inj
state_before: θ : Angle
⊢ θ.toReal = toReal 0 ↔ θ = 0
state_after: no goals
Theorem: pow_mul
File: Mathlib/Algebra/Group/Defs.lean

tactic: rw [Nat.mul_zero, pow_zero, pow_zero]
state_before: G : Type u_1
M : Type u_2
inst✝ : Monoid M
a✝ b c : M
m✝ n : ℕ
a : M
m : ℕ
⊢ a ^ (m * 0) = (a ^ m) ^ 0
state_after: no goals

tactic: rw [Nat.mul_succ, pow_add, pow_succ, pow_mul]
state_before: G : Type u_1
M : Type u_2
inst✝ : Monoid M
a✝ b c : M
m✝ n✝ : ℕ
a : M
m n : ℕ
⊢ a ^ (m * (n + 1)) = (a ^ m) ^ (n + 1)
state_after: no goals
Theorem: Algebra.smul_leftMulMatrix_algebraMap
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: ext ⟨i, k⟩ ⟨j, k'⟩
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
inst✝⁸ : Ring T
inst✝⁷ : Algebra R S
inst✝⁶ : Algebra S T
inst✝⁵ : Algebra R T
inst✝⁴ : IsScalarTower R S T
m : Type u_4
n : Type u_5
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
b : Basis m R S
c : Basis n S T
x : S
⊢ (leftMulMatrix (b.smul c)) ((algebraMap S T) x) = blockDiagonal fun x_1 => (leftMulMatrix b) x
state_after: case a.mk.mk
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
inst✝⁸ : Ring T
inst✝⁷ : Algebra R S
inst✝⁶ : Algebra S T
inst✝⁵ : Algebra R T
inst✝⁴ : IsScalarTower R S T
m : Type u_4
n : Type u_5
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
b : Basis m R S
c : Basis n S T
x : S
i : m
k : n
j : m
k' : n
⊢ (leftMulMatrix (b.smul c)) ((algebraMap S T) x) (i, k) (j, k') =
    blockDiagonal (fun x_1 => (leftMulMatrix b) x) (i, k) (j, k')

tactic: rw [smul_leftMulMatrix, AlgHom.commutes, blockDiagonal_apply, algebraMap_matrix_apply]
state_before: case a.mk.mk
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
inst✝⁸ : Ring T
inst✝⁷ : Algebra R S
inst✝⁶ : Algebra S T
inst✝⁵ : Algebra R T
inst✝⁴ : IsScalarTower R S T
m : Type u_4
n : Type u_5
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
b : Basis m R S
c : Basis n S T
x : S
i : m
k : n
j : m
k' : n
⊢ (leftMulMatrix (b.smul c)) ((algebraMap S T) x) (i, k) (j, k') =
    blockDiagonal (fun x_1 => (leftMulMatrix b) x) (i, k) (j, k')
state_after: case a.mk.mk
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
inst✝⁸ : Ring T
inst✝⁷ : Algebra R S
inst✝⁶ : Algebra S T
inst✝⁵ : Algebra R T
inst✝⁴ : IsScalarTower R S T
m : Type u_4
n : Type u_5
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
b : Basis m R S
c : Basis n S T
x : S
i : m
k : n
j : m
k' : n
⊢ (leftMulMatrix b) (if (i, k).2 = (j, k').2 then (algebraMap S S) x else 0) (i, k).1 (j, k').1 =
    if (i, k).2 = (j, k').2 then (leftMulMatrix b) x (i, k).1 (j, k').1 else 0

tactic: split_ifs with h <;> simp only at h <;> simp [h]
state_before: case a.mk.mk
R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
inst✝⁸ : Ring T
inst✝⁷ : Algebra R S
inst✝⁶ : Algebra S T
inst✝⁵ : Algebra R T
inst✝⁴ : IsScalarTower R S T
m : Type u_4
n : Type u_5
inst✝³ : Fintype m
inst✝² : Fintype n
inst✝¹ : DecidableEq m
inst✝ : DecidableEq n
b : Basis m R S
c : Basis n S T
x : S
i : m
k : n
j : m
k' : n
⊢ (leftMulMatrix b) (if (i, k).2 = (j, k').2 then (algebraMap S S) x else 0) (i, k).1 (j, k').1 =
    if (i, k).2 = (j, k').2 then (leftMulMatrix b) x (i, k).1 (j, k').1 else 0
state_after: no goals
Theorem: Polynomial.coeff_C
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: convert coeff_monomial (a := a) (m := n) (n := 0) using 2
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ (C a).coeff n = if n = 0 then a else 0
state_after: case h.e'_3.h₁.a
R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ n = 0 ↔ 0 = n

tactic: simp [eq_comm]
state_before: case h.e'_3.h₁.a
R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ n = 0 ↔ 0 = n
state_after: no goals
Theorem: Rep.ρ_inv_self_apply
File: Mathlib/RepresentationTheory/Rep.lean

tactic: rw [← map_mul, inv_mul_self, map_one, LinearMap.one_apply]
state_before: k G✝ : Type u
inst✝² : CommRing k
inst✝¹ : Monoid G✝
G : Type u
inst✝ : Group G
A : Rep k G
g : G
x : CoeSort.coe A
⊢ (A.ρ g⁻¹ * A.ρ g) x = x
state_after: no goals
Theorem: MeasureTheory.piPremeasure_pi
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: simp [hs, piPremeasure]
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
hs : (univ.pi s).Nonempty
⊢ piPremeasure m (univ.pi s) = ∏ i : ι, (m i) (s i)
state_after: no goals
Theorem: MeasureTheory.Integrable.exists_boundedContinuous_integral_sub_le
File: Mathlib/MeasureTheory/Function/ContinuousMapDense.lean

tactic: simp only [← memℒp_one_iff_integrable, ← snorm_one_eq_lintegral_nnnorm, ← ENNReal.ofReal_one]
  at hf ⊢
state_before: α : Type u_1
inst✝⁶ : MeasurableSpace α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : T4Space α
inst✝³ : BorelSpace α
E : Type u_2
inst✝² : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝¹ : NormedSpace ℝ E
inst✝ : μ.WeaklyRegular
f : α → E
hf : Integrable f μ
ε : ℝ
hε : 0 < ε
⊢ ∃ g, ∫ (x : α), ‖f x - g x‖ ∂μ ≤ ε ∧ Integrable (⇑g) μ
state_after: α : Type u_1
inst✝⁶ : MeasurableSpace α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : T4Space α
inst✝³ : BorelSpace α
E : Type u_2
inst✝² : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝¹ : NormedSpace ℝ E
inst✝ : μ.WeaklyRegular
f : α → E
ε : ℝ
hε : 0 < ε
hf : Memℒp f (ENNReal.ofReal 1) μ
⊢ ∃ g, ∫ (x : α), ‖f x - g x‖ ∂μ ≤ ε ∧ Memℒp (⇑g) (ENNReal.ofReal 1) μ

tactic: simpa using hf.exists_boundedContinuous_integral_rpow_sub_le zero_lt_one hε
state_before: α : Type u_1
inst✝⁶ : MeasurableSpace α
inst✝⁵ : TopologicalSpace α
inst✝⁴ : T4Space α
inst✝³ : BorelSpace α
E : Type u_2
inst✝² : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝¹ : NormedSpace ℝ E
inst✝ : μ.WeaklyRegular
f : α → E
ε : ℝ
hε : 0 < ε
hf : Memℒp f (ENNReal.ofReal 1) μ
⊢ ∃ g, ∫ (x : α), ‖f x - g x‖ ∂μ ≤ ε ∧ Memℒp (⇑g) (ENNReal.ofReal 1) μ
state_after: no goals
Theorem: NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing_injective
File: Mathlib/Algebra/Ring/Ext.lean

tactic: rintro ⟨⟩ ⟨⟩ _
state_before: R : Type u
⊢ Function.Injective (@toNonUnitalNonAssocRing R)
state_after: case mk.mk
R : Type u
toNonUnitalNonAssocRing✝¹ : NonUnitalNonAssocRing R
mul_comm✝¹ : ∀ (a b : R), a * b = b * a
toNonUnitalNonAssocRing✝ : NonUnitalNonAssocRing R
mul_comm✝ : ∀ (a b : R), a * b = b * a
a✝ : toNonUnitalNonAssocRing = toNonUnitalNonAssocRing
⊢ mk mul_comm✝¹ = mk mul_comm✝

tactic: congr
state_before: case mk.mk
R : Type u
toNonUnitalNonAssocRing✝¹ : NonUnitalNonAssocRing R
mul_comm✝¹ : ∀ (a b : R), a * b = b * a
toNonUnitalNonAssocRing✝ : NonUnitalNonAssocRing R
mul_comm✝ : ∀ (a b : R), a * b = b * a
a✝ : toNonUnitalNonAssocRing = toNonUnitalNonAssocRing
⊢ mk mul_comm✝¹ = mk mul_comm✝
state_after: no goals
Theorem: tendsto_const_div_atTop_nhds_zero_nat
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: simpa only [mul_zero] using tendsto_const_nhds.mul tendsto_inverse_atTop_nhds_zero_nat
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
C : ℝ
⊢ Tendsto (fun n => C / ↑n) atTop (𝓝 0)
state_after: no goals
Theorem: Subsemigroup.mem_sup_left
File: Mathlib/Algebra/Group/Subsemigroup/Membership.lean

tactic: have : S ≤ S ⊔ T := le_sup_left
state_before: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S T : Subsemigroup M
⊢ ∀ {x : M}, x ∈ S → x ∈ S ⊔ T
state_after: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S T : Subsemigroup M
this : S ≤ S ⊔ T
⊢ ∀ {x : M}, x ∈ S → x ∈ S ⊔ T

tactic: tauto
state_before: ι : Sort u_1
M : Type u_2
A : Type u_3
B : Type u_4
inst✝ : Mul M
S T : Subsemigroup M
this : S ≤ S ⊔ T
⊢ ∀ {x : M}, x ∈ S → x ∈ S ⊔ T
state_after: no goals
Theorem: MeasureTheory.generateSetAlgebra_mono
File: Mathlib/MeasureTheory/SetAlgebra.lean

tactic: intro s hs
state_before: α : Type u_1
𝒜 : Set (Set α)
s t : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
⊢ generateSetAlgebra 𝒜 ⊆ generateSetAlgebra ℬ
state_after: α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
s : Set α
hs : s ∈ generateSetAlgebra 𝒜
⊢ s ∈ generateSetAlgebra ℬ

tactic: induction hs with
| base t t_mem => exact self_subset_generateSetAlgebra (h t_mem)
| empty => exact isSetAlgebra_generateSetAlgebra.empty_mem
| compl t _ t_mem => exact isSetAlgebra_generateSetAlgebra.compl_mem t_mem
| union t u _ _ t_mem u_mem => exact isSetAlgebra_generateSetAlgebra.union_mem t_mem u_mem
state_before: α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
s : Set α
hs : s ∈ generateSetAlgebra 𝒜
⊢ s ∈ generateSetAlgebra ℬ
state_after: no goals

tactic: exact self_subset_generateSetAlgebra (h t_mem)
state_before: case base
α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
s t : Set α
t_mem : t ∈ 𝒜
⊢ t ∈ generateSetAlgebra ℬ
state_after: no goals

tactic: exact isSetAlgebra_generateSetAlgebra.empty_mem
state_before: case empty
α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
s : Set α
⊢ ∅ ∈ generateSetAlgebra ℬ
state_after: no goals

tactic: exact isSetAlgebra_generateSetAlgebra.compl_mem t_mem
state_before: case compl
α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
s t : Set α
hs✝ : generateSetAlgebra 𝒜 t
t_mem : t ∈ generateSetAlgebra ℬ
⊢ tᶜ ∈ generateSetAlgebra ℬ
state_after: no goals

tactic: exact isSetAlgebra_generateSetAlgebra.union_mem t_mem u_mem
state_before: case union
α : Type u_1
𝒜 : Set (Set α)
s✝ t✝ : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
s t u : Set α
hs✝ : generateSetAlgebra 𝒜 t
ht✝ : generateSetAlgebra 𝒜 u
t_mem : t ∈ generateSetAlgebra ℬ
u_mem : u ∈ generateSetAlgebra ℬ
⊢ t ∪ u ∈ generateSetAlgebra ℬ
state_after: no goals
Theorem: Complex.sin_eq_neg_one_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: rw [← neg_eq_iff_eq_neg, ← cos_add_pi_div_two, cos_eq_one_iff]
state_before: x : ℂ
⊢ sin x = -1 ↔ ∃ k, -(↑π / 2) + ↑k * (2 * ↑π) = x
state_after: x : ℂ
⊢ (∃ k, ↑k * (2 * ↑π) = x + ↑π / 2) ↔ ∃ k, -(↑π / 2) + ↑k * (2 * ↑π) = x

tactic: simp only [← sub_eq_neg_add, sub_eq_iff_eq_add]
state_before: x : ℂ
⊢ (∃ k, ↑k * (2 * ↑π) = x + ↑π / 2) ↔ ∃ k, -(↑π / 2) + ↑k * (2 * ↑π) = x
state_after: no goals
Theorem: Real.tan_eq_sin_div_cos
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [tan_eq_sin_div_cos]
state_before: x y : ℝ
⊢ ↑(tan x) = ↑(sin x / cos x)
state_after: no goals
Theorem: CategoryTheory.OverPresheafAux.YonedaCollection.map₂_fst
File: Mathlib/CategoryTheory/Comma/Presheaf.lean

tactic: simp [map₂]
state_before: C : Type u
inst✝ : Category.{v, u} C
A : Cᵒᵖ ⥤ Type v
F : (CostructuredArrow yoneda A)ᵒᵖ ⥤ Type v
X Y : C
f : X ⟶ Y
p : YonedaCollection F Y
⊢ (map₂ F f p).fst = yoneda.map f ≫ p.fst
state_after: no goals
Theorem: Set.Icc.one_sub_mem
File: Mathlib/Algebra/Order/Interval/Set/Instances.lean

tactic: rw [mem_Icc] at *
state_before: α : Type u_1
inst✝¹ : OrderedSemiring α
β : Type u_2
inst✝ : OrderedRing β
t : β
ht : t ∈ Icc 0 1
⊢ 1 - t ∈ Icc 0 1
state_after: α : Type u_1
inst✝¹ : OrderedSemiring α
β : Type u_2
inst✝ : OrderedRing β
t : β
ht : 0 ≤ t ∧ t ≤ 1
⊢ 0 ≤ 1 - t ∧ 1 - t ≤ 1

tactic: exact ⟨sub_nonneg.2 ht.2, (sub_le_self_iff _).2 ht.1⟩
state_before: α : Type u_1
inst✝¹ : OrderedSemiring α
β : Type u_2
inst✝ : OrderedRing β
t : β
ht : 0 ≤ t ∧ t ≤ 1
⊢ 0 ≤ 1 - t ∧ 1 - t ≤ 1
state_after: no goals
Theorem: Filter.tendsto_const_mul_pow_atTop_iff
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: refine ⟨fun h => ⟨?_, ?_⟩, fun h => tendsto_const_mul_pow_atTop h.1 h.2⟩
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
n : ℕ
⊢ Tendsto (fun x => c * x ^ n) atTop atTop ↔ n ≠ 0 ∧ 0 < c
state_after: case refine_1
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
n : ℕ
h : Tendsto (fun x => c * x ^ n) atTop atTop
⊢ n ≠ 0

case refine_2
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
n : ℕ
h : Tendsto (fun x => c * x ^ n) atTop atTop
⊢ 0 < c

tactic: rintro rfl
state_before: case refine_1
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
n : ℕ
h : Tendsto (fun x => c * x ^ n) atTop atTop
⊢ n ≠ 0
state_after: case refine_1
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
h : Tendsto (fun x => c * x ^ 0) atTop atTop
⊢ False

tactic: simp only [pow_zero, not_tendsto_const_atTop] at h
state_before: case refine_1
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
h : Tendsto (fun x => c * x ^ 0) atTop atTop
⊢ False
state_after: no goals

tactic: rcases ((h.eventually_gt_atTop 0).and (eventually_ge_atTop 0)).exists with ⟨k, hck, hk⟩
state_before: case refine_2
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
n : ℕ
h : Tendsto (fun x => c * x ^ n) atTop atTop
⊢ 0 < c
state_after: case refine_2.intro.intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
n : ℕ
h : Tendsto (fun x => c * x ^ n) atTop atTop
k : α
hck : 0 < c * k ^ n
hk : 0 ≤ k
⊢ 0 < c

tactic: exact pos_of_mul_pos_left hck (pow_nonneg hk _)
state_before: case refine_2.intro.intro
ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : LinearOrderedSemifield α
l : Filter β
f : β → α
r c : α
n : ℕ
h : Tendsto (fun x => c * x ^ n) atTop atTop
k : α
hck : 0 < c * k ^ n
hk : 0 ≤ k
⊢ 0 < c
state_after: no goals
Theorem: NumberField.InfinitePlace.IsUnramified.comap_algHom
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rw [InfinitePlace.isUnramified_iff_mult_le, ← InfinitePlace.comap_comp, f.comp_algebraMap, h.eq]
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
w : InfinitePlace F
h : IsUnramified k w
f : K →ₐ[k] F
⊢ IsUnramified k (w.comap ↑f)
state_after: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
w : InfinitePlace F
h : IsUnramified k w
f : K →ₐ[k] F
⊢ (w.comap ↑f).mult ≤ w.mult

tactic: exact InfinitePlace.mult_comap_le _ _
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w✝ : InfinitePlace K
w : InfinitePlace F
h : IsUnramified k w
f : K →ₐ[k] F
⊢ (w.comap ↑f).mult ≤ w.mult
state_after: no goals
Theorem: Mathlib.Meta.NormNum.isNat_neg_of_isNegNat
File: Mathlib/Tactic/NormNum/DivMod.lean

tactic: simp [h.out]
state_before: a : ℤ
b : ℕ
h : IsInt a (Int.negOfNat b)
⊢ -a = ↑b
state_after: no goals
Theorem: toIocMod_sub_self
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIocMod, sub_sub_cancel_left, neg_smul]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIocMod hp a b - b = -toIocDiv hp a b • p
state_after: no goals
Theorem: IsExposed.mono
File: Mathlib/Analysis/Convex/Exposed.lean

tactic: rintro ⟨w, hw⟩
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A B C : Set E
X : Finset E
x : E
hC : IsExposed 𝕜 A C
hBA : B ⊆ A
hCB : C ⊆ B
⊢ IsExposed 𝕜 B C
state_after: case intro
𝕜 : Type u_1
E : Type u_2
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A B C : Set E
X : Finset E
x : E
hC : IsExposed 𝕜 A C
hBA : B ⊆ A
hCB : C ⊆ B
w : E
hw : w ∈ C
⊢ ∃ l, C = {x | x ∈ B ∧ ∀ y ∈ B, l y ≤ l x}

tactic: obtain ⟨l, rfl⟩ := hC ⟨w, hw⟩
state_before: case intro
𝕜 : Type u_1
E : Type u_2
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l : E →L[𝕜] 𝕜
A B C : Set E
X : Finset E
x : E
hC : IsExposed 𝕜 A C
hBA : B ⊆ A
hCB : C ⊆ B
w : E
hw : w ∈ C
⊢ ∃ l, C = {x | x ∈ B ∧ ∀ y ∈ B, l y ≤ l x}
state_after: case intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l✝ : E →L[𝕜] 𝕜
A B : Set E
X : Finset E
x : E
hBA : B ⊆ A
w : E
l : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x}
hCB : {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x} ⊆ B
hw : w ∈ {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x}
⊢ ∃ l_1, {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x} = {x | x ∈ B ∧ ∀ y ∈ B, l_1 y ≤ l_1 x}

tactic: exact ⟨l, Subset.antisymm (fun x hx => ⟨hCB hx, fun y hy => hx.2 y (hBA hy)⟩) fun x hx =>
  ⟨hBA hx.1, fun y hy => (hw.2 y hy).trans (hx.2 w (hCB hw))⟩⟩
state_before: case intro.intro
𝕜 : Type u_1
E : Type u_2
inst✝⁴ : TopologicalSpace 𝕜
inst✝³ : OrderedRing 𝕜
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
l✝ : E →L[𝕜] 𝕜
A B : Set E
X : Finset E
x : E
hBA : B ⊆ A
w : E
l : E →L[𝕜] 𝕜
hC : IsExposed 𝕜 A {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x}
hCB : {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x} ⊆ B
hw : w ∈ {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x}
⊢ ∃ l_1, {x | x ∈ A ∧ ∀ y ∈ A, l y ≤ l x} = {x | x ∈ B ∧ ∀ y ∈ B, l_1 y ≤ l_1 x}
state_after: no goals
Theorem: LieModule.weightSpaceChain_def'
File: Mathlib/Algebra/Lie/Weights/Chain.lean

tactic: have : ∀ (k : ℤ), k ∈ Ioo p q ↔ k ∈ Finset.Ioo p q := by simp
state_before: R : Type u_1
L : Type u_2
inst✝⁷ : CommRing R
inst✝⁶ : LieRing L
inst✝⁵ : LieAlgebra R L
M : Type u_3
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : LieAlgebra.IsNilpotent R L
χ₁ χ₂ : L → R
p q : ℤ
⊢ weightSpaceChain M χ₁ χ₂ p q = ⨆ k ∈ Finset.Ioo p q, weightSpace M (k • χ₁ + χ₂)
state_after: R : Type u_1
L : Type u_2
inst✝⁷ : CommRing R
inst✝⁶ : LieRing L
inst✝⁵ : LieAlgebra R L
M : Type u_3
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : LieAlgebra.IsNilpotent R L
χ₁ χ₂ : L → R
p q : ℤ
this : ∀ (k : ℤ), k ∈ Ioo p q ↔ k ∈ Finset.Ioo p q
⊢ weightSpaceChain M χ₁ χ₂ p q = ⨆ k ∈ Finset.Ioo p q, weightSpace M (k • χ₁ + χ₂)

tactic: simp_rw [weightSpaceChain_def, this]
state_before: R : Type u_1
L : Type u_2
inst✝⁷ : CommRing R
inst✝⁶ : LieRing L
inst✝⁵ : LieAlgebra R L
M : Type u_3
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : LieAlgebra.IsNilpotent R L
χ₁ χ₂ : L → R
p q : ℤ
this : ∀ (k : ℤ), k ∈ Ioo p q ↔ k ∈ Finset.Ioo p q
⊢ weightSpaceChain M χ₁ χ₂ p q = ⨆ k ∈ Finset.Ioo p q, weightSpace M (k • χ₁ + χ₂)
state_after: no goals

tactic: simp
state_before: R : Type u_1
L : Type u_2
inst✝⁷ : CommRing R
inst✝⁶ : LieRing L
inst✝⁵ : LieAlgebra R L
M : Type u_3
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : LieRingModule L M
inst✝¹ : LieModule R L M
inst✝ : LieAlgebra.IsNilpotent R L
χ₁ χ₂ : L → R
p q : ℤ
⊢ ∀ (k : ℤ), k ∈ Ioo p q ↔ k ∈ Finset.Ioo p q
state_after: no goals
Theorem: Set.preimage_inl_image_inr
File: Mathlib/Data/Set/Image.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s✝ t : Set α
s : Set β
⊢ Sum.inl ⁻¹' (Sum.inr '' s) = ∅
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s✝ t : Set α
s : Set β
x✝ : α
⊢ x✝ ∈ Sum.inl ⁻¹' (Sum.inr '' s) ↔ x✝ ∈ ∅

tactic: simp
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : ι → α
s✝ t : Set α
s : Set β
x✝ : α
⊢ x✝ ∈ Sum.inl ⁻¹' (Sum.inr '' s) ↔ x✝ ∈ ∅
state_after: no goals