tasksource/leandojo huggingface dataset:
Theorem: Complex.isTheta_exp_arg_mul_im
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: rcases hl with ⟨b, hb⟩
state_before: α : Type u_1
l : Filter α
f g : α → ℂ
hl : IsBoundedUnder (fun x x_1 => x ≤ x_1) l fun x => Abs.abs (g x).im
⊢ (fun x => Real.exp (arg (f x) * (g x).im)) =Θ[l] fun x => 1

tactic: refine' Real.isTheta_exp_comp_one.2 ⟨π * b, _⟩
state_before: case intro
α : Type u_1
l : Filter α
f g : α → ℂ
b : ℝ
hb : ∀ᶠ (x : ℝ) in Filter.map (fun x => Abs.abs (g x).im) l, (fun x x_1 => x ≤ x_1) x b
⊢ (fun x => Real.exp (arg (f x) * (g x).im)) =Θ[l] fun x => 1

tactic: rw [eventually_map] at hb⊢
state_before: case intro
α : Type u_1
l : Filter α
f g : α → ℂ
b : ℝ
hb : ∀ᶠ (x : ℝ) in Filter.map (fun x => Abs.abs (g x).im) l, (fun x x_1 => x ≤ x_1) x b
⊢ ∀ᶠ (x : ℝ) in Filter.map (fun x => Abs.abs (arg (f x) * (g x).im)) l, (fun x x_1 => x ≤ x_1) x (π * b)

tactic: refine' hb.mono fun x hx => _
state_before: case intro
α : Type u_1
l : Filter α
f g : α → ℂ
b : ℝ
hb : ∀ᶠ (a : α) in l, (fun x x_1 => x ≤ x_1) (Abs.abs (g a).im) b
⊢ ∀ᶠ (a : α) in l, (fun x x_1 => x ≤ x_1) (Abs.abs (arg (f a) * (g a).im)) (π * b)

tactic: erw [abs_mul]
state_before: case intro
α : Type u_1
l : Filter α
f g : α → ℂ
b : ℝ
hb : ∀ᶠ (a : α) in l, (fun x x_1 => x ≤ x_1) (Abs.abs (g a).im) b
x : α
hx : (fun x x_1 => x ≤ x_1) (Abs.abs (g x).im) b
⊢ (fun x x_1 => x ≤ x_1) (Abs.abs (arg (f x) * (g x).im)) (π * b)

tactic: exact mul_le_mul (abs_arg_le_pi _) hx (abs_nonneg _) Real.pi_pos.le
state_before: case intro
α : Type u_1
l : Filter α
f g : α → ℂ
b : ℝ
hb : ∀ᶠ (a : α) in l, (fun x x_1 => x ≤ x_1) (Abs.abs (g a).im) b
x : α
hx : (fun x x_1 => x ≤ x_1) (Abs.abs (g x).im) b
⊢ (fun x x_1 => x ≤ x_1) (Abs.abs (arg (f x)) * Abs.abs (g x).im) (π * b)
Theorem: Polynomial.mem_iff_eq_smul_annIdealGenerator
File: Mathlib/LinearAlgebra/AnnihilatingPolynomial.lean

tactic: simp_rw [@eq_comm _ p, ← mem_span_singleton, ← span_singleton_annIdealGenerator 𝕜 a, Ideal.span]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝² : Field 𝕜
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
p : 𝕜[X]
a : A
⊢ p ∈ annIdeal 𝕜 a ↔ ∃ s, p = s • annIdealGenerator 𝕜 a
Theorem: PrimeMultiset.to_ofPNatMultiset
File: Mathlib/Data/PNat/Factors.lean

tactic: dsimp [ofPNatMultiset, toPNatMultiset]
state_before: v : Multiset ℕ+
h : ∀ (p : ℕ+), p ∈ v → PNat.Prime p
⊢ toPNatMultiset (ofPNatMultiset v h) = v

tactic: have : (fun (p : ℕ+) (h : p.Prime) => (Coe.coe : Nat.Primes → ℕ+) ⟨p, h⟩) = fun p _ => id p := by
  funext p h
  apply Subtype.eq
  rfl
state_before: v : Multiset ℕ+
h : ∀ (p : ℕ+), p ∈ v → PNat.Prime p
⊢ Multiset.map Coe.coe (Multiset.pmap (fun p hp => { val := ↑p, property := hp }) v h) = v

tactic: rw [Multiset.map_pmap, this, Multiset.pmap_eq_map, Multiset.map_id]
state_before: v : Multiset ℕ+
h : ∀ (p : ℕ+), p ∈ v → PNat.Prime p
this : (fun p h => Coe.coe { val := ↑p, property := h }) = fun p x => id p
⊢ Multiset.map Coe.coe (Multiset.pmap (fun p hp => { val := ↑p, property := hp }) v h) = v

tactic: funext p h
state_before: v : Multiset ℕ+
h : ∀ (p : ℕ+), p ∈ v → PNat.Prime p
⊢ (fun p h => Coe.coe { val := ↑p, property := h }) = fun p x => id p

tactic: apply Subtype.eq
state_before: case h.h
v : Multiset ℕ+
h✝ : ∀ (p : ℕ+), p ∈ v → PNat.Prime p
p : ℕ+
h : PNat.Prime p
⊢ Coe.coe { val := ↑p, property := h } = id p

tactic: rfl
state_before: case h.h.a
v : Multiset ℕ+
h✝ : ∀ (p : ℕ+), p ∈ v → PNat.Prime p
p : ℕ+
h : PNat.Prime p
⊢ ↑(Coe.coe { val := ↑p, property := h }) = ↑(id p)
Theorem: CategoryTheory.Limits.Trident.ofCone_π
File: Mathlib/CategoryTheory/Limits/Shapes/WideEqualizers.lean

tactic: cases j <;> aesop_cat
state_before: J : Type w
C : Type u
inst✝ : Category C
X Y : C
f : J → (X ⟶ Y)
F : WalkingParallelFamily J ⥤ C
t : Cone F
j : WalkingParallelFamily J
⊢ F.obj j = (parallelFamily fun j => F.map (line j)).obj j
Theorem: Real.isLittleO_pow_exp_atTop
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: simpa [isLittleO_iff_tendsto fun x hx => ((exp_pos x).ne' hx).elim] using
  tendsto_div_pow_mul_exp_add_atTop 1 0 n zero_ne_one
state_before: α : Type ?u.185497
x y z : ℝ
l : Filter α
n : ℕ
⊢ (fun x => x ^ n) =o[atTop] exp
Theorem: Complex.continuousOn_prod_circle_transform_function
File: Mathlib/MeasureTheory/Integral/CircleTransform.lean

tactic: simp_rw [← one_div]
state_before: E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z : ℂ
⊢ ContinuousOn (fun w => (circleMap z R w.snd - w.fst)⁻¹ ^ 2) (closedBall z r ×ˢ univ)

tactic: apply_rules [ContinuousOn.pow, ContinuousOn.div, continuousOn_const]
state_before: E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z : ℂ
⊢ ContinuousOn (fun w => (1 / (circleMap z R w.snd - w.fst)) ^ 2) (closedBall z r ×ˢ univ)

tactic: refine' ((continuous_circleMap z R).continuousOn.comp continuousOn_snd fun _ => And.right).sub
  (continuousOn_id.comp continuousOn_fst fun _ => And.left)
state_before: case hf.hg
E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z : ℂ
⊢ ContinuousOn (fun x => circleMap z R x.snd - x.fst) (closedBall z r ×ˢ univ)

case hf.h₀
E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z : ℂ
⊢ ∀ (x : ℂ × ℝ), x ∈ closedBall z r ×ˢ univ → circleMap z R x.snd - x.fst ≠ 0

tactic: simp only [mem_prod, Ne.def, and_imp, Prod.forall]
state_before: case hf.h₀
E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z : ℂ
⊢ ∀ (x : ℂ × ℝ), x ∈ closedBall z r ×ˢ univ → circleMap z R x.snd - x.fst ≠ 0

tactic: intro a b ha _
state_before: case hf.h₀
E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z : ℂ
⊢ ∀ (a : ℂ) (b : ℝ), a ∈ closedBall z r → b ∈ univ → ¬circleMap z R b - a = 0

tactic: have ha2 : a ∈ ball z R := by simp at *; linarith
state_before: case hf.h₀
E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z a : ℂ
b : ℝ
ha : a ∈ closedBall z r
a✝ : b ∈ univ
⊢ ¬circleMap z R b - a = 0

tactic: exact sub_ne_zero.2 (circleMap_ne_mem_ball ha2 b)
state_before: case hf.h₀
E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z a : ℂ
b : ℝ
ha : a ∈ closedBall z r
a✝ : b ∈ univ
ha2 : a ∈ ball z R
⊢ ¬circleMap z R b - a = 0

tactic: simp at *
state_before: E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z a : ℂ
b : ℝ
ha : a ∈ closedBall z r
a✝ : b ∈ univ
⊢ a ∈ ball z R

tactic: linarith
state_before: E : Type ?u.57155
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
R✝ : ℝ
z✝ w : ℂ
R r : ℝ
hr : r < R
z a : ℂ
b : ℝ
ha : dist a z ≤ r
a✝ : True
⊢ dist a z < R
Theorem: Behrend.sphere_zero_subset
File: Mathlib/Combinatorics/Additive/Behrend.lean

tactic: simp [sphere, Function.funext_iff]
state_before: α : Type ?u.3289
β : Type ?u.3292
n d k N : ℕ
x✝ x : Fin n → ℕ
⊢ x ∈ sphere n d 0 → x ∈ 0
Theorem: List.prod_le_pow_card
File: Mathlib/Data/List/BigOperators/Basic.lean

tactic: simpa only [map_id'', map_const', prod_replicate] using prod_le_prod' h
state_before: ι : Type ?u.93681
α : Type ?u.93684
M : Type u_1
N : Type ?u.93690
P : Type ?u.93693
M₀ : Type ?u.93696
G : Type ?u.93699
R : Type ?u.93702
inst✝⁵ : Monoid M
inst✝⁴ : Monoid N
inst✝³ : Monoid P
l✝ l₁ l₂ : List M
a : M
inst✝² : Preorder M
inst✝¹ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
l : List M
n : M
h : ∀ (x : M), x ∈ l → x ≤ n
⊢ prod l ≤ n ^ length l
Theorem: Filter.coclosedCompact_eq_cocompact
File: Mathlib/Topology/Separation.lean

tactic: simp only [coclosedCompact, cocompact, iInf_and',
  and_iff_right_of_imp (@IsCompact.isClosed α _ _ _)]
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
γ : Type ?u.130486
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : T2Space α
⊢ coclosedCompact α = cocompact α
Theorem: irreducibleComponents_eq_maximals_closed
File: Mathlib/Topology/SubsetProperties.lean

tactic: ext s
state_before: α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
⊢ irreducibleComponents α = maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}

tactic: constructor
state_before: case h
α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s✝ t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
s : Set α
⊢ s ∈ irreducibleComponents α ↔ s ∈ maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}

tactic: intro H
state_before: case h.mp
α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s✝ t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
s : Set α
⊢ s ∈ irreducibleComponents α → s ∈ maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}

tactic: exact ⟨⟨isClosed_of_mem_irreducibleComponents _ H, H.1⟩, fun x h e => H.2 h.2 e⟩
state_before: case h.mp
α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s✝ t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
s : Set α
H : s ∈ irreducibleComponents α
⊢ s ∈ maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}

tactic: intro H
state_before: case h.mpr
α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s✝ t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
s : Set α
⊢ s ∈ maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s} → s ∈ irreducibleComponents α

tactic: refine' ⟨H.1.2, fun x h e => _⟩
state_before: case h.mpr
α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s✝ t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
s : Set α
H : s ∈ maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}
⊢ s ∈ irreducibleComponents α

tactic: have : closure x ≤ s := H.2 ⟨isClosed_closure, h.closure⟩ (e.trans subset_closure)
state_before: case h.mpr
α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s✝ t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
s : Set α
H : s ∈ maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}
x : Set α
h : x ∈ {s | IsIrreducible s}
e : (fun x x_1 => x ≤ x_1) s x
⊢ (fun x x_1 => x ≤ x_1) x s

tactic: exact le_trans subset_closure this
state_before: case h.mpr
α✝ : Type u
β : Type v
ι : Type ?u.184350
π : ι → Type ?u.184355
inst✝² : TopologicalSpace α✝
inst✝¹ : TopologicalSpace β
s✝ t : Set α✝
α : Type u_1
inst✝ : TopologicalSpace α
s : Set α
H : s ∈ maximals (fun x x_1 => x ≤ x_1) {s | IsClosed s ∧ IsIrreducible s}
x : Set α
h : x ∈ {s | IsIrreducible s}
e : (fun x x_1 => x ≤ x_1) s x
this : closure x ≤ s
⊢ (fun x x_1 => x ≤ x_1) x s
Theorem: UniformOnFun.uniformContinuous_toFun
File: Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean

tactic: rw [uniformContinuous_pi]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.103188
ι : Type ?u.103191
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : ⋃₀ 𝔖 = univ
⊢ UniformContinuous ↑(toFun 𝔖)

tactic: intro x
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.103188
ι : Type ?u.103191
s s' : Set α
x : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : ⋃₀ 𝔖 = univ
⊢ ∀ (i : α), UniformContinuous fun x => ↑(toFun 𝔖) x i

tactic: obtain ⟨s : Set α, hs : s ∈ 𝔖, hxs : x ∈ s⟩ := sUnion_eq_univ_iff.mp h x
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.103188
ι : Type ?u.103191
s s' : Set α
x✝ : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : ⋃₀ 𝔖 = univ
x : α
⊢ UniformContinuous fun x_1 => ↑(toFun 𝔖) x_1 x

tactic: exact uniformContinuous_eval_of_mem β 𝔖 hxs hs
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type ?u.103188
ι : Type ?u.103191
s✝ s' : Set α
x✝ : α
p : Filter ι
g : ι → α
inst✝ : UniformSpace β
𝔖 : Set (Set α)
h : ⋃₀ 𝔖 = univ
x : α
s : Set α
hs : s ∈ 𝔖
hxs : x ∈ s
⊢ UniformContinuous fun x_1 => ↑(toFun 𝔖) x_1 x
Theorem: Std.PairingHeapImp.Heap.WF.tail?
File: Std/Data/PairingHeap.lean

tactic: simp only [Heap.tail?]
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
⊢ Heap.tail? le s = some tl → WF le tl

tactic: intro eq
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
⊢ Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl → WF le tl

tactic: match eq₂ : s.deleteMin le, eq with
| some (a, tl), rfl => exact hwf.deleteMin eq₂
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl : Heap α
hwf : WF le s
eq : Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl
⊢ WF le tl

tactic: exact hwf.deleteMin eq₂
state_before: α : Type u_1
s : Heap α
le : α → α → Bool
tl✝ : Heap α
hwf : WF le s
eq : Option.map (fun x => x.snd) (Heap.deleteMin le s) = some tl✝
a : α
tl : Heap α
eq₂ : Heap.deleteMin le s = some (a, tl)
⊢ WF le ((fun x => x.snd) (a, tl))
Theorem: Nat.dist_tri_right'
File: Mathlib/Data/Nat/Dist.lean

tactic: rw [dist_comm]
state_before: n m : ℕ
⊢ n ≤ m + dist n m

tactic: apply dist_tri_right
state_before: n m : ℕ
⊢ n ≤ m + dist m n
Theorem: CategoryTheory.Limits.limitIsoLimitCurryCompLim_inv_π
File: Mathlib/CategoryTheory/Limits/Fubini.lean

tactic: rw [← cancel_epi (limitIsoLimitCurryCompLim G).hom]
state_before: J K : Type v
inst✝⁵ : SmallCategory J
inst✝⁴ : SmallCategory K
C : Type u
inst✝³ : Category C
F : J ⥤ K ⥤ C
G : J × K ⥤ C
inst✝² : HasLimitsOfShape K C
inst✝¹ : HasLimit G
inst✝ : HasLimit (curry.obj G ⋙ lim)
j : J
k : K
⊢ (limitIsoLimitCurryCompLim G).inv ≫ limit.π G (j, k) = limit.π (curry.obj G ⋙ lim) j ≫ limit.π ((curry.obj G).obj j) k

tactic: simp
state_before: J K : Type v
inst✝⁵ : SmallCategory J
inst✝⁴ : SmallCategory K
C : Type u
inst✝³ : Category C
F : J ⥤ K ⥤ C
G : J × K ⥤ C
inst✝² : HasLimitsOfShape K C
inst✝¹ : HasLimit G
inst✝ : HasLimit (curry.obj G ⋙ lim)
j : J
k : K
⊢ (limitIsoLimitCurryCompLim G).hom ≫ (limitIsoLimitCurryCompLim G).inv ≫ limit.π G (j, k) =
    (limitIsoLimitCurryCompLim G).hom ≫ limit.π (curry.obj G ⋙ lim) j ≫ limit.π ((curry.obj G).obj j) k
Theorem: Set.mulIndicator_one_preimage
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: classical
  rw [mulIndicator_one', preimage_one]
  split_ifs <;> simp
state_before: α : Type u_2
β : Type ?u.24420
ι : Type ?u.24423
M : Type u_1
N : Type ?u.24429
inst✝¹ : One M
inst✝ : One N
s✝ t : Set α
f g : α → M
a : α
s : Set M
⊢ mulIndicator t 1 ⁻¹' s ∈ {univ, ∅}

tactic: rw [mulIndicator_one', preimage_one]
state_before: α : Type u_2
β : Type ?u.24420
ι : Type ?u.24423
M : Type u_1
N : Type ?u.24429
inst✝¹ : One M
inst✝ : One N
s✝ t : Set α
f g : α → M
a : α
s : Set M
⊢ mulIndicator t 1 ⁻¹' s ∈ {univ, ∅}

tactic: split_ifs <;> simp
state_before: α : Type u_2
β : Type ?u.24420
ι : Type ?u.24423
M : Type u_1
N : Type ?u.24429
inst✝¹ : One M
inst✝ : One N
s✝ t : Set α
f g : α → M
a : α
s : Set M
⊢ (if 1 ∈ s then univ else ∅) ∈ {univ, ∅}
Theorem: Subsemigroup.subsingleton_of_subsingleton
File: Mathlib/GroupTheory/Subsemigroup/Basic.lean

tactic: constructor
state_before: M : Type u_1
N : Type ?u.12549
A : Type ?u.12552
inst✝² : Mul M
s : Set M
inst✝¹ : Add A
t : Set A
S : Subsemigroup M
inst✝ : Subsingleton (Subsemigroup M)
⊢ Subsingleton M

tactic: intro x y
state_before: case allEq
M : Type u_1
N : Type ?u.12549
A : Type ?u.12552
inst✝² : Mul M
s : Set M
inst✝¹ : Add A
t : Set A
S : Subsemigroup M
inst✝ : Subsingleton (Subsemigroup M)
⊢ ∀ (a b : M), a = b

tactic: have : ∀ a : M, a ∈ (⊥ : Subsemigroup M) := by simp [Subsingleton.elim (⊥ : Subsemigroup M) ⊤]
state_before: case allEq
M : Type u_1
N : Type ?u.12549
A : Type ?u.12552
inst✝² : Mul M
s : Set M
inst✝¹ : Add A
t : Set A
S : Subsemigroup M
inst✝ : Subsingleton (Subsemigroup M)
x y : M
⊢ x = y

tactic: exact absurd (this x) not_mem_bot
state_before: case allEq
M : Type u_1
N : Type ?u.12549
A : Type ?u.12552
inst✝² : Mul M
s : Set M
inst✝¹ : Add A
t : Set A
S : Subsemigroup M
inst✝ : Subsingleton (Subsemigroup M)
x y : M
this : ∀ (a : M), a ∈ ⊥
⊢ x = y

tactic: simp [Subsingleton.elim (⊥ : Subsemigroup M) ⊤]
state_before: M : Type u_1
N : Type ?u.12549
A : Type ?u.12552
inst✝² : Mul M
s : Set M
inst✝¹ : Add A
t : Set A
S : Subsemigroup M
inst✝ : Subsingleton (Subsemigroup M)
x y : M
⊢ ∀ (a : M), a ∈ ⊥
Theorem: Filter.limsup_le_iSup
File: Mathlib/Order/LiminfLimsup.lean

tactic: isBoundedDefault
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.105167
ι : Type ?u.105170
inst✝ : CompleteLattice α
f : Filter β
u : β → α
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) f u
Theorem: IsLocalization.ext
File: Mathlib/RingTheory/Localization/Basic.lean

tactic: rw [this]
state_before: R : Type u_3
inst✝⁴ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝³ : CommSemiring S
inst✝² : Algebra R S
P : Type u_1
inst✝¹ : CommSemiring P
inst✝ : IsLocalization M S
g : R →+* P
hg : ∀ (y : { x // x ∈ M }), IsUnit (↑g ↑y)
j k : S → P
hj1 : j 1 = 1
hk1 : k 1 = 1
hjm : ∀ (a b : S), j (a * b) = j a * j b
hkm : ∀ (a b : S), k (a * b) = k a * k b
h : ∀ (a : R), j (↑(algebraMap R S) a) = k (↑(algebraMap R S) a)
j' : S →* P := { toOneHom := { toFun := j, map_one' := hj1 }, map_mul' := hjm }
k' : S →* P := { toOneHom := { toFun := k, map_one' := hk1 }, map_mul' := hkm }
this : j' = k'
⊢ j'.toFun = k'.toFun
Theorem: IsBaseChange.equiv_symm_apply
File: Mathlib/RingTheory/IsTensorProduct.lean

tactic: rw [h.equiv.symm_apply_eq, h.equiv_tmul, one_smul]
state_before: R : Type u_1
M : Type v₁
N : Type v₂
S : Type v₃
inst✝¹² : AddCommMonoid M
inst✝¹¹ : AddCommMonoid N
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
inst✝⁸ : Algebra R S
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module S N
inst✝⁴ : IsScalarTower R S N
f : M →ₗ[R] N
h : IsBaseChange S f
P : Type ?u.378484
Q : Type ?u.378487
inst✝³ : AddCommMonoid P
inst✝² : Module R P
inst✝¹ : AddCommMonoid Q
inst✝ : Module S Q
m : M
⊢ ↑(LinearEquiv.symm (equiv h)) (↑f m) = 1 ⊗ₜ[R] m
Theorem: isRadical_iff_squarefree_or_zero
File: Mathlib/Algebra/Squarefree.lean

tactic: rintro rfl
state_before: R : Type u_1
inst✝¹ : CancelCommMonoidWithZero R
inst✝ : GCDMonoid R
x : R
⊢ x = 0 → IsRadical x

tactic: rw [zero_isRadical_iff]
state_before: R : Type u_1
inst✝¹ : CancelCommMonoidWithZero R
inst✝ : GCDMonoid R
⊢ IsRadical 0

tactic: infer_instance
state_before: R : Type u_1
inst✝¹ : CancelCommMonoidWithZero R
inst✝ : GCDMonoid R
⊢ IsReduced R
Theorem: minpoly.eq_X_sub_C_of_algebraMap_inj
File: Mathlib/FieldTheory/Minpoly/Basic.lean

tactic: nontriviality A
state_before: A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
⊢ minpoly A (↑(algebraMap A B) a) = X - ↑C a

tactic: refine' (unique' A _ (monic_X_sub_C a) _ _).symm
state_before: A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
✝ : Nontrivial A
⊢ minpoly A (↑(algebraMap A B) a) = X - ↑C a

tactic: simp_rw [or_iff_not_imp_left]
state_before: case refine'_2
A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
✝ : Nontrivial A
⊢ ∀ (q : A[X]), degree q < degree (X - ↑C a) → q = 0 ∨ ↑(Polynomial.aeval (↑(algebraMap A B) a)) q ≠ 0

tactic: intro q hl h0
state_before: case refine'_2
A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
✝ : Nontrivial A
⊢ ∀ (q : A[X]), degree q < degree (X - ↑C a) → ¬q = 0 → ↑(Polynomial.aeval (↑(algebraMap A B) a)) q ≠ 0

tactic: rw [← natDegree_lt_natDegree_iff h0, natDegree_X_sub_C, Nat.lt_one_iff] at hl
state_before: case refine'_2
A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
✝ : Nontrivial A
q : A[X]
hl : degree q < degree (X - ↑C a)
h0 : ¬q = 0
⊢ ↑(Polynomial.aeval (↑(algebraMap A B) a)) q ≠ 0

tactic: rw [eq_C_of_natDegree_eq_zero hl] at h0⊢
state_before: case refine'_2
A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
✝ : Nontrivial A
q : A[X]
hl : natDegree q = 0
h0 : ¬q = 0
⊢ ↑(Polynomial.aeval (↑(algebraMap A B) a)) q ≠ 0

tactic: rwa [aeval_C, map_ne_zero_iff _ hf, ← C_ne_zero]
state_before: case refine'_2
A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
✝ : Nontrivial A
q : A[X]
hl : natDegree q = 0
h0 : ¬↑C (coeff q 0) = 0
⊢ ↑(Polynomial.aeval (↑(algebraMap A B) a)) (↑C (coeff q 0)) ≠ 0

tactic: rw [map_sub, aeval_C, aeval_X, sub_self]
state_before: case refine'_1
A : Type u_1
B : Type u_2
B' : Type ?u.66784
inst✝² : CommRing A
inst✝¹ : Ring B
inst✝ : Algebra A B
x : B
a : A
hf : Injective ↑(algebraMap A B)
✝ : Nontrivial A
⊢ ↑(Polynomial.aeval (↑(algebraMap A B) a)) (X - ↑C a) = 0
Theorem: AList.mem_erase
File: Mathlib/Data/List/AList.lean

tactic: rw [mem_keys, keys_erase, s.keys_nodup.mem_erase_iff, ← mem_keys]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a a' : α
s : AList β
⊢ a' ∈ erase a s ↔ a' ≠ a ∧ a' ∈ s
Theorem: Asymptotics.SuperpolynomialDecay.param_zpow_mul
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: rw [superpolynomialDecay_iff_zpow_tendsto_zero _ hk] at hf⊢
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
hf : SuperpolynomialDecay l k f
z : ℤ
⊢ SuperpolynomialDecay l k fun a => k a ^ z * f a

tactic: refine' fun z' => (hf <| z' + z).congr' ((hk.eventually_ne_atTop 0).mono fun x hx => _)
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
hf : ∀ (z : ℤ), Tendsto (fun a => k a ^ z * f a) l (𝓝 0)
z : ℤ
⊢ ∀ (z_1 : ℤ), Tendsto (fun a => k a ^ z_1 * (k a ^ z * f a)) l (𝓝 0)

tactic: simp [zpow_add₀ hx, mul_assoc, Pi.mul_apply]
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : LinearOrderedField β
inst✝ : OrderTopology β
hk : Tendsto k l atTop
hf : ∀ (z : ℤ), Tendsto (fun a => k a ^ z * f a) l (𝓝 0)
z z' : ℤ
x : α
hx : k x ≠ 0
⊢ k x ^ (z' + z) * f x = (fun a => k a ^ z' * (k a ^ z * f a)) x