tasksource/leandojo huggingface dataset:
Theorem: FormalMultilinearSeries.summable_nnnorm_mul_pow
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: rw [← NNReal.summable_coe]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.220483
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p✝ : FormalMultilinearSeries 𝕜 E F
r✝ : ℝ≥0
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0
h : ↑r < radius p
⊢ Summable fun n => ‖p n‖₊ * r ^ n

tactic: push_cast
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.220483
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p✝ : FormalMultilinearSeries 𝕜 E F
r✝ : ℝ≥0
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0
h : ↑r < radius p
⊢ Summable fun a => ↑(‖p a‖₊ * r ^ a)

tactic: exact p.summable_norm_mul_pow h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type ?u.220483
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p✝ : FormalMultilinearSeries 𝕜 E F
r✝ : ℝ≥0
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0
h : ↑r < radius p
⊢ Summable fun a => ‖p a‖ * ↑r ^ a
Theorem: Rat.cast_strictMono
File: Mathlib/Data/Rat/Cast.lean

tactic: simpa only [sub_pos, cast_sub] using @cast_pos_of_pos K _ (n - m)
state_before: F : Type ?u.55640
ι : Type ?u.55643
α : Type ?u.55646
β : Type ?u.55649
K : Type u_1
inst✝ : LinearOrderedField K
m n : ℚ
⊢ m < n → ↑m < ↑n
Theorem: Set.image_fintype_prod_pi
File: Mathlib/Data/Set/Pointwise/BigOperators.lean

tactic: simpa only [Finset.coe_univ] using image_finset_prod_pi Finset.univ S
state_before: ι : Type u_1
α : Type u_2
β : Type ?u.90981
F : Type ?u.90984
inst✝³ : CommMonoid α
inst✝² : CommMonoid β
inst✝¹ : MonoidHomClass F α β
inst✝ : Fintype ι
S : ι → Set α
⊢ (fun f => ∏ i : ι, f i) '' pi univ S = ∏ i : ι, S i
Theorem: Finset.Iio_filter_lt
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: ext
state_before: ι : Type ?u.150465
α✝ : Type ?u.150468
inst✝³ : LinearOrder α✝
inst✝² : LocallyFiniteOrder α✝
a✝ b✝ : α✝
α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrderBot α
a b : α
⊢ filter (fun x => x < b) (Iio a) = Iio (min a b)

tactic: simp [and_assoc]
state_before: case a
ι : Type ?u.150465
α✝ : Type ?u.150468
inst✝³ : LinearOrder α✝
inst✝² : LocallyFiniteOrder α✝
a✝¹ b✝ : α✝
α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : LocallyFiniteOrderBot α
a b a✝ : α
⊢ a✝ ∈ filter (fun x => x < b) (Iio a) ↔ a✝ ∈ Iio (min a b)
Theorem: CategoryTheory.Limits.colimitObjIsoColimitCompEvaluation_inv_colimit_map
File: Mathlib/CategoryTheory/Limits/FunctorCategory.lean

tactic: ext
state_before: C : Type u
inst✝⁴ : Category C
D : Type u'
inst✝³ : Category D
J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : HasColimitsOfShape J C
F : J ⥤ K ⥤ C
i j : K
f : i ⟶ j
⊢ (colimitObjIsoColimitCompEvaluation F i).inv ≫ (colimit F).map f =
    colimMap (whiskerLeft F ((evaluation K C).map f)) ≫ (colimitObjIsoColimitCompEvaluation F j).inv

tactic: dsimp
state_before: case w
C : Type u
inst✝⁴ : Category C
D : Type u'
inst✝³ : Category D
J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : HasColimitsOfShape J C
F : J ⥤ K ⥤ C
i j : K
f : i ⟶ j
j✝ : J
⊢ colimit.ι (F ⋙ (evaluation K C).obj i) j✝ ≫ (colimitObjIsoColimitCompEvaluation F i).inv ≫ (colimit F).map f =
    colimit.ι (F ⋙ (evaluation K C).obj i) j✝ ≫
      colimMap (whiskerLeft F ((evaluation K C).map f)) ≫ (colimitObjIsoColimitCompEvaluation F j).inv

tactic: simp
state_before: case w
C : Type u
inst✝⁴ : Category C
D : Type u'
inst✝³ : Category D
J : Type u₁
inst✝² : Category J
K : Type u₂
inst✝¹ : Category K
inst✝ : HasColimitsOfShape J C
F : J ⥤ K ⥤ C
i j : K
f : i ⟶ j
j✝ : J
⊢ colimit.ι (F ⋙ (evaluation K C).obj i) j✝ ≫ (colimitObjIsoColimitCompEvaluation F i).inv ≫ (colimit F).map f =
    colimit.ι (F ⋙ (evaluation K C).obj i) j✝ ≫
      colimMap (whiskerLeft F ((evaluation K C).map f)) ≫ (colimitObjIsoColimitCompEvaluation F j).inv
Theorem: WittVector.one_coeff_zero
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: simp only [wittOne_zero_eq_one, AlgHom.map_one]
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
⊢ ↑(aeval (Function.uncurry fun i => ![].coeff)) (wittOne p 0) = 1
Theorem: Polynomial.coeff_eq_zero_of_natDegree_lt
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: apply coeff_eq_zero_of_degree_lt
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
n : ℕ
h : natDegree p < n
⊢ coeff p n = 0

tactic: by_cases hp : p = 0
state_before: case h
R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
n : ℕ
h : natDegree p < n
⊢ degree p < ↑n

tactic: subst hp
state_before: case pos
R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
n : ℕ
h : natDegree p < n
hp : p = 0
⊢ degree p < ↑n

tactic: exact WithBot.bot_lt_coe n
state_before: case pos
R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
h : natDegree 0 < n
⊢ degree 0 < ↑n

tactic: rwa [degree_eq_natDegree hp, Nat.cast_withBot, Nat.cast_withBot, WithBot.coe_lt_coe]
state_before: case neg
R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
n : ℕ
h : natDegree p < n
hp : ¬p = 0
⊢ degree p < ↑n
Theorem: Matrix.updateRow_conjTranspose
File: Mathlib/Data/Matrix/Basic.lean

tactic: rw [conjTranspose, conjTranspose, transpose_map, transpose_map, updateRow_transpose,
  map_updateColumn]
state_before: l : Type ?u.1227385
m : Type u_2
n : Type u_1
o : Type ?u.1227394
m' : o → Type ?u.1227399
n' : o → Type ?u.1227404
R : Type ?u.1227407
S : Type ?u.1227410
α : Type v
β : Type w
γ : Type ?u.1227417
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝¹ : DecidableEq n
inst✝ : Star α
⊢ updateRow Mᴴ j (star c) = (updateColumn M j c)ᴴ

tactic: rfl
state_before: l : Type ?u.1227385
m : Type u_2
n : Type u_1
o : Type ?u.1227394
m' : o → Type ?u.1227399
n' : o → Type ?u.1227404
R : Type ?u.1227407
S : Type ?u.1227410
α : Type v
β : Type w
γ : Type ?u.1227417
M : Matrix m n α
i : m
j : n
b : n → α
c : m → α
inst✝¹ : DecidableEq n
inst✝ : Star α
⊢ (updateColumn (map M star) j (star c))ᵀ = (updateColumn (map M star) j (star ∘ c))ᵀ
Theorem: MeasureTheory.Measure.add_haar_smul_of_nonneg
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

tactic: rw [add_haar_smul, abs_pow, abs_of_nonneg hr]
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : NormedSpace ℝ E
inst✝⁶ : MeasurableSpace E
inst✝⁵ : BorelSpace E
inst✝⁴ : FiniteDimensional ℝ E
μ : Measure E
inst✝³ : IsAddHaarMeasure μ
F : Type ?u.1940240
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
r : ℝ
hr : 0 ≤ r
s : Set E
⊢ ↑↑μ (r • s) = ENNReal.ofReal (r ^ finrank ℝ E) * ↑↑μ s
Theorem: Part.mul_mem_mul
File: Mathlib/Data/Part.lean

tactic: simp [← ha.2, ← hb.2]
state_before: α : Type u_1
β : Type ?u.56876
γ : Type ?u.56879
inst✝ : Mul α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ get (a * b)
      (_ : ∃ h, ((fun b_1 => (fun y => map y ((fun x => b) ())) (get ((fun x x_1 => x * x_1) <$> a) b_1)) h).Dom) =
    ma * mb

tactic: rfl
state_before: α : Type u_1
β : Type ?u.56876
γ : Type ?u.56879
inst✝ : Mul α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ get (a * b)
      (_ : ∃ h, ((fun b_1 => (fun y => map y ((fun x => b) ())) (get ((fun x x_1 => x * x_1) <$> a) b_1)) h).Dom) =
    get a (_ : a.Dom) * get b (_ : b.Dom)
Theorem: BoxIntegral.Prepartition.IsPartition.existsUnique
File: Mathlib/Analysis/BoxIntegral/Partition/Basic.lean

tactic: rcases h x hx with ⟨J, h, hx⟩
state_before: ι : Type u_1
I J J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
h : IsPartition π
hx : x ∈ I
⊢ ∃! J x_1, x ∈ J

tactic: exact ExistsUnique.intro₂ J h hx fun J' h' hx' => π.eq_of_mem_of_mem h' h hx' hx
state_before: case intro.intro
ι : Type u_1
I J✝ J₁ J₂ : Box ι
π π₁ π₂ : Prepartition I
x : ι → ℝ
πi πi₁ πi₂ : (J : Box ι) → Prepartition J
h✝ : IsPartition π
hx✝ : x ∈ I
J : Box ι
h : J ∈ π
hx : x ∈ J
⊢ ∃! J x_1, x ∈ J
Theorem: Polynomial.mul_X_pow_injective
File: Mathlib/Data/Polynomial/Coeff.lean

tactic: intro P Q hPQ
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
⊢ Function.Injective fun P => X ^ n * P

tactic: simp only at hPQ
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
P Q : R[X]
hPQ : (fun P => X ^ n * P) P = (fun P => X ^ n * P) Q
⊢ P = Q

tactic: ext i
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
P Q : R[X]
hPQ : X ^ n * P = X ^ n * Q
⊢ P = Q

tactic: rw [← coeff_X_pow_mul P n i, hPQ, coeff_X_pow_mul Q n i]
state_before: case a
R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
P Q : R[X]
hPQ : X ^ n * P = X ^ n * Q
i : ℕ
⊢ coeff P i = coeff Q i
Theorem: Nat.Linear.denote_monomialToExpr
File: src/lean/Init/Data/Nat/Linear.lean

tactic: simp [monomialToExpr]
state_before: ctx : Context
k : Nat
v : Var
⊢ Expr.denote ctx (monomialToExpr k v) = k * Var.denote ctx v

tactic: by_cases h : v == fixedVar <;> simp [h, Expr.denote]
state_before: ctx : Context
k : Nat
v : Var
⊢ Expr.denote ctx (bif v == fixedVar then Expr.num k else bif k == 1 then Expr.var v else Expr.mulL k (Expr.var v)) =
    k * Var.denote ctx v

tactic: simp [eq_of_beq h, Var.denote]
state_before: case inl
ctx : Context
k : Nat
v : Var
h : (v == fixedVar) = true
⊢ k = k * Var.denote ctx v

tactic: by_cases h : k == 1 <;> simp [h, Expr.denote]
state_before: case inr
ctx : Context
k : Nat
v : Var
h : ¬(v == fixedVar) = true
⊢ Expr.denote ctx (bif k == 1 then Expr.var v else Expr.mulL k (Expr.var v)) = k * Var.denote ctx v

tactic: simp [eq_of_beq h]
state_before: case inr.inl
ctx : Context
k : Nat
v : Var
h✝ : ¬(v == fixedVar) = true
h : (k == 1) = true
⊢ Var.denote ctx v = k * Var.denote ctx v
Theorem: Polynomial.degree_X_add_C
File: Mathlib/Data/Polynomial/Degree/Definitions.lean

tactic: have : degree (C a) < degree (X : R[X]) :=
  calc
    degree (C a) ≤ 0 := degree_C_le
    _ < 1 := (WithBot.some_lt_some.mpr zero_lt_one)
    _ = degree X := degree_X.symm
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝¹ : Nontrivial R
inst✝ : Semiring R
a : R
⊢ degree (X + ↑C a) = 1

tactic: rw [degree_add_eq_left_of_degree_lt this, degree_X]
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝¹ : Nontrivial R
inst✝ : Semiring R
a : R
this : degree (↑C a) < degree X
⊢ degree (X + ↑C a) = 1
Theorem: Polynomial.not_isUnit_X_sub_C
File: Mathlib/Data/Polynomial/AlgebraMap.lean

tactic: erw [← eval_mul_X_sub_C, hgf, eval_one]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
A' : Type ?u.2110936
B' : Type ?u.2110939
a b : R
n : ℕ
inst✝³ : CommSemiring A'
inst✝² : Semiring B'
inst✝¹ : Ring R
inst✝ : Nontrivial R
r : R
x✝ : IsUnit (X - ↑C r)
g : R[X]
_hfg : (X - ↑C r) * g = 1
hgf : g * (X - ↑C r) = 1
⊢ 0 = 1
Theorem: inv_pos_le_iff_one_le_mul
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [inv_eq_one_div]
state_before: ι : Type ?u.39032
α : Type u_1
β : Type ?u.39038
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
⊢ a⁻¹ ≤ b ↔ 1 ≤ b * a

tactic: exact div_le_iff ha
state_before: ι : Type ?u.39032
α : Type u_1
β : Type ?u.39038
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
ha : 0 < a
⊢ 1 / a ≤ b ↔ 1 ≤ b * a
Theorem: Ordinal.eq_zero_or_opow_omega_le_of_mul_eq_right
File: Mathlib/SetTheory/Ordinal/FixedPoint.lean

tactic: cases' eq_zero_or_pos a with ha ha
state_before: a b : Ordinal
hab : a * b = b
⊢ b = 0 ∨ a ^ ω ≤ b

tactic: rw [or_iff_not_imp_left]
state_before: case inr
a b : Ordinal
hab : a * b = b
ha : 0 < a
⊢ b = 0 ∨ a ^ ω ≤ b

tactic: intro hb
state_before: case inr
a b : Ordinal
hab : a * b = b
ha : 0 < a
⊢ ¬b = 0 → a ^ ω ≤ b

tactic: rw [← nfp_mul_one ha]
state_before: case inr
a b : Ordinal
hab : a * b = b
ha : 0 < a
hb : ¬b = 0
⊢ a ^ ω ≤ b

tactic: rw [← Ne.def, ← one_le_iff_ne_zero] at hb
state_before: case inr
a b : Ordinal
hab : a * b = b
ha : 0 < a
hb : ¬b = 0
⊢ nfp (fun x => a * x) 1 ≤ b

tactic: exact nfp_le_fp (mul_isNormal ha).monotone hb (le_of_eq hab)
state_before: case inr
a b : Ordinal
hab : a * b = b
ha : 0 < a
hb : 1 ≤ b
⊢ nfp (fun x => a * x) 1 ≤ b

tactic: rw [ha, zero_opow omega_ne_zero]
state_before: case inl
a b : Ordinal
hab : a * b = b
ha : a = 0
⊢ b = 0 ∨ a ^ ω ≤ b

tactic: exact Or.inr (Ordinal.zero_le b)
state_before: case inl
a b : Ordinal
hab : a * b = b
ha : a = 0
⊢ b = 0 ∨ 0 ≤ b
Theorem: IsSimpleGroup.comm_iff_isSolvable
File: Mathlib/GroupTheory/Solvable.lean

tactic: cases n
state_before: G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
n : ℕ
hn : derivedSeries G n = ⊥
⊢ ∀ (a b : G), a * b = b * a

tactic: intro a b
state_before: case zero
G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
hn : derivedSeries G Nat.zero = ⊥
⊢ ∀ (a b : G), a * b = b * a

tactic: rw [← hn]
state_before: case zero.refine'_2
G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
hn : derivedSeries G Nat.zero = ⊥
a b : G
⊢ b * a ∈ ⊥

tactic: exact mem_top _
state_before: case zero.refine'_2
G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
hn : derivedSeries G Nat.zero = ⊥
a b : G
⊢ b * a ∈ derivedSeries G Nat.zero

tactic: rw [IsSimpleGroup.derivedSeries_succ] at hn
state_before: case succ
G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
n✝ : ℕ
hn : derivedSeries G (Nat.succ n✝) = ⊥
⊢ ∀ (a b : G), a * b = b * a

tactic: intro a b
state_before: case succ
G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
n✝ : ℕ
hn : _root_.commutator G = ⊥
⊢ ∀ (a b : G), a * b = b * a

tactic: rw [← mul_inv_eq_one, mul_inv_rev, ← mul_assoc, ← mem_bot, ← hn, commutator_eq_closure]
state_before: case succ
G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
n✝ : ℕ
hn : _root_.commutator G = ⊥
a b : G
⊢ a * b = b * a

tactic: exact subset_closure ⟨a, b, rfl⟩
state_before: case succ
G : Type u_1
G' : Type ?u.84178
inst✝² : Group G
inst✝¹ : Group G'
f : G →* G'
inst✝ : IsSimpleGroup G
x✝ : IsSolvable G
n✝ : ℕ
hn : _root_.commutator G = ⊥
a b : G
⊢ a * b * a⁻¹ * b⁻¹ ∈ closure (commutatorSet G)
Theorem: himp_le_himp_himp_himp
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [le_himp_iff, le_himp_iff, inf_assoc, himp_inf_self, ← inf_assoc, himp_inf_self, inf_assoc]
state_before: ι : Type ?u.30631
α : Type u_1
β : Type ?u.30637
inst✝ : GeneralizedHeytingAlgebra α
a b c d : α
⊢ b ⇨ c ≤ (a ⇨ b) ⇨ a ⇨ c

tactic: exact inf_le_left
state_before: ι : Type ?u.30631
α : Type u_1
β : Type ?u.30637
inst✝ : GeneralizedHeytingAlgebra α
a b c d : α
⊢ c ⊓ (b ⊓ a) ≤ c
Theorem: PiNat.shortestPrefixDiff_pos
File: Mathlib/Topology/MetricSpace/PiNat.lean

tactic: rcases hne with ⟨y, hy⟩
state_before: E : ℕ → Type u_1
inst✝¹ : (n : ℕ) → TopologicalSpace (E n)
inst✝ : ∀ (n : ℕ), DiscreteTopology (E n)
s : Set ((n : ℕ) → E n)
hs : IsClosed s
hne : Set.Nonempty s
x : (n : ℕ) → E n
hx : ¬x ∈ s
⊢ 0 < shortestPrefixDiff x s

tactic: exact (zero_le _).trans_lt (firstDiff_lt_shortestPrefixDiff hs hx hy)
state_before: case intro
E : ℕ → Type u_1
inst✝¹ : (n : ℕ) → TopologicalSpace (E n)
inst✝ : ∀ (n : ℕ), DiscreteTopology (E n)
s : Set ((n : ℕ) → E n)
hs : IsClosed s
x : (n : ℕ) → E n
hx : ¬x ∈ s
y : (n : ℕ) → E n
hy : y ∈ s
⊢ 0 < shortestPrefixDiff x s
Theorem: Representation.asAlgebraHom_single_one
File: Mathlib/RepresentationTheory/Basic.lean

tactic: simp
state_before: k : Type u_2
G : Type u_3
V : Type u_1
inst✝³ : CommSemiring k
inst✝² : Monoid G
inst✝¹ : AddCommMonoid V
inst✝ : Module k V
ρ : Representation k G V
g : G
⊢ ↑(asAlgebraHom ρ) (Finsupp.single g 1) = ↑ρ g
Theorem: Seminorm.mem_closedBall_self
File: Mathlib/Analysis/Seminorm.lean

tactic: simp [hr]
state_before: R : Type ?u.804396
R' : Type ?u.804399
𝕜 : Type u_2
𝕜₂ : Type ?u.804405
𝕜₃ : Type ?u.804408
𝕝 : Type ?u.804411
E : Type u_1
E₂ : Type ?u.804417
E₃ : Type ?u.804420
F : Type ?u.804423
G : Type ?u.804426
ι : Type ?u.804429
inst✝² : SeminormedRing 𝕜
inst✝¹ : AddCommGroup E
inst✝ : SMul 𝕜 E
p : Seminorm 𝕜 E
x y : E
r : ℝ
hr : 0 ≤ r
⊢ x ∈ closedBall p x r
Theorem: Polynomial.coeff_X_mul_zero
File: Mathlib/Data/Polynomial/Coeff.lean

tactic: simp
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
⊢ coeff (X * p) 0 = 0
Theorem: Finset.iSup_option_toFinset
File: Mathlib/Data/Finset/Lattice.lean

tactic: simp
state_before: F : Type ?u.432384
α : Type u_1
β : Type u_2
γ : Type ?u.432393
ι : Type ?u.432396
κ : Type ?u.432399
inst✝ : CompleteLattice β
o : Option α
f : α → β
⊢ (⨆ (x : α) (_ : x ∈ Option.toFinset o), f x) = ⨆ (x : α) (_ : x ∈ o), f x
Theorem: Polynomial.reverse_trailingCoeff
File: Mathlib/Data/Polynomial/Reverse.lean

tactic: rw [trailingCoeff, reverse_natTrailingDegree, coeff_zero_reverse]
state_before: R : Type u_1
inst✝ : Semiring R
f✝ f : R[X]
⊢ trailingCoeff (reverse f) = leadingCoeff f
Theorem: Subgroup.mem_iInf
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: simp only [iInf, mem_sInf, Set.forall_range_iff]
state_before: G : Type u_2
G' : Type ?u.188426
inst✝² : Group G
inst✝¹ : Group G'
A : Type ?u.188435
inst✝ : AddGroup A
H K : Subgroup G
ι : Sort u_1
S : ι → Subgroup G
x : G
⊢ (x ∈ ⨅ (i : ι), S i) ↔ ∀ (i : ι), x ∈ S i
Theorem: IsLocalization.integerNormalization_map_to_map
File: Mathlib/RingTheory/Localization/Integral.lean

tactic: rw [coeff_map, coeff_smul]
state_before: R : Type u_2
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_1
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type ?u.42950
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
p : S[X]
b : { x // x ∈ M }
hb : ∀ (i : ℕ), ↑(algebraMap R S) (coeff (integerNormalization M p) i) = ↑b • coeff p i
i : ℕ
⊢ coeff (Polynomial.map (algebraMap R S) (integerNormalization M p)) i = coeff (↑b • p) i

tactic: exact hb i
state_before: R : Type u_2
inst✝⁴ : CommRing R
M : Submonoid R
S : Type u_1
inst✝³ : CommRing S
inst✝² : Algebra R S
P : Type ?u.42950
inst✝¹ : CommRing P
inst✝ : IsLocalization M S
p : S[X]
b : { x // x ∈ M }
hb : ∀ (i : ℕ), ↑(algebraMap R S) (coeff (integerNormalization M p) i) = ↑b • coeff p i
i : ℕ
⊢ ↑(algebraMap R S) (coeff (integerNormalization M p) i) = ↑b • coeff p i
Theorem: Filter.rtendsto'_def
File: Mathlib/Order/Filter/Partial.lean

tactic: unfold RTendsto' rcomap'
state_before: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ RTendsto' r l₁ l₂ ↔ ∀ (s : Set β), s ∈ l₂ → Rel.preimage r s ∈ l₁

tactic: simp [le_def, Rel.mem_image]
state_before: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ l₁ ≤
      { sets := Rel.image (fun s t => Rel.preimage r s ⊆ t) l₂.sets,
        univ_sets := (_ : ∃ x, x ∈ l₂.sets ∧ (fun s t => Rel.preimage r s ⊆ t) x Set.univ),
        sets_of_superset :=
          (_ :
            ∀ {x y : Set α},
              x ∈ Rel.image (fun s t => Rel.preimage r s ⊆ t) l₂.sets →
                x ⊆ y → y ∈ Rel.image (fun s t => Rel.preimage r s ⊆ t) l₂.sets),
        inter_sets :=
          (_ :
            ∀ {x y : Set α},
              x ∈ Rel.image (fun s t => Rel.preimage r s ⊆ t) l₂.sets →
                y ∈ Rel.image (fun s t => Rel.preimage r s ⊆ t) l₂.sets →
                  x ∩ y ∈ Rel.image (fun s t => Rel.preimage r s ⊆ t) l₂.sets) } ↔
    ∀ (s : Set β), s ∈ l₂ → Rel.preimage r s ∈ l₁

tactic: constructor
state_before: α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (x : Set α) (x_1 : Set β), x_1 ∈ l₂ → Rel.preimage r x_1 ⊆ x → x ∈ l₁) ↔
    ∀ (s : Set β), s ∈ l₂ → Rel.preimage r s ∈ l₁

tactic: exact fun h s hs => h _ _ hs Set.Subset.rfl
state_before: case mp
α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (x : Set α) (x_1 : Set β), x_1 ∈ l₂ → Rel.preimage r x_1 ⊆ x → x ∈ l₁) →
    ∀ (s : Set β), s ∈ l₂ → Rel.preimage r s ∈ l₁

tactic: exact fun h s t ht => mem_of_superset (h t ht)
state_before: case mpr
α : Type u
β : Type v
γ : Type w
r : Rel α β
l₁ : Filter α
l₂ : Filter β
⊢ (∀ (s : Set β), s ∈ l₂ → Rel.preimage r s ∈ l₁) →
    ∀ (x : Set α) (x_1 : Set β), x_1 ∈ l₂ → Rel.preimage r x_1 ⊆ x → x ∈ l₁
Theorem: isLittleO_log_rpow_nhds_zero
File: Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean

tactic: simp [abs_of_nonpos (log_nonpos hx.1 hx.2)]
state_before: r : ℝ
hr : r < 0
x : ℝ
hx : x ∈ Set.Icc 0 1
⊢ x ∈ {x | (fun x => (fun x => -abs (log x) ^ 1) x = log x) x}
Theorem: MonoidHom.map_mul_inv
File: Mathlib/Algebra/Hom/Group.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
M : Type ?u.226815
N : Type ?u.226818
P : Type ?u.226821
G : Type ?u.226824
H : Type ?u.226827
F : Type ?u.226830
inst✝³ : Group G
inst✝² : CommGroup H
inst✝¹ : Group α
inst✝ : DivisionMonoid β
f : α →* β
g h : α
⊢ ↑f (g * h⁻¹) = ↑f g * (↑f h)⁻¹
Theorem: List.forall₂_nil_left_iff
File: Mathlib/Data/List/Forall2.lean

tactic: cases H
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.14750
δ : Type ?u.14753
R S : α → β → Prop
P : γ → δ → Prop
Rₐ : α → α → Prop
l : List β
H : Forall₂ R [] l
⊢ l = []

tactic: rfl
state_before: case nil
α : Type u_2
β : Type u_1
γ : Type ?u.14750
δ : Type ?u.14753
R S : α → β → Prop
P : γ → δ → Prop
Rₐ : α → α → Prop
⊢ [] = []

tactic: rintro rfl
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.14750
δ : Type ?u.14753
R S : α → β → Prop
P : γ → δ → Prop
Rₐ : α → α → Prop
l : List β
⊢ l = [] → Forall₂ R [] l

tactic: exact Forall₂.nil
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.14750
δ : Type ?u.14753
R S : α → β → Prop
P : γ → δ → Prop
Rₐ : α → α → Prop
⊢ Forall₂ R [] []
Theorem: tsub_add_tsub_cancel
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: convert tsub_add_cancel_of_le (tsub_le_tsub_right hab c) using 2
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hab : b ≤ a
hcb : c ≤ b
⊢ a - b + (b - c) = a - c

tactic: rw [tsub_tsub, add_tsub_cancel_of_le hcb]
state_before: case h.e'_2.h.e'_5
α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hab : b ≤ a
hcb : c ≤ b
⊢ a - b = a - c - (b - c)
Theorem: Polynomial.coeff_mul_X
File: Mathlib/Data/Polynomial/Coeff.lean

tactic: simpa only [pow_one] using coeff_mul_X_pow p 1 n
state_before: R : Type u
S : Type v
a b : R
n✝ m : ℕ
inst✝ : Semiring R
p✝ q r p : R[X]
n : ℕ
⊢ coeff (p * X) (n + 1) = coeff p n
Theorem: Sym.map_mk
File: Mathlib/Data/Sym/Basic.lean

tactic: simp [hc]
state_before: α : Type ?u.37780
β : Type ?u.37783
n n' m✝ : ℕ
s : Sym α n
a b : α
f : α → β
m : Multiset α
hc : ↑Multiset.card m = n
⊢ ↑Multiset.card (Multiset.map f m) = n
Theorem: FreeAlgebra.lift_comp_ι
File: Mathlib/Algebra/FreeAlgebra.lean

tactic: rw [← lift_symm_apply]
state_before: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
g : FreeAlgebra R X →ₐ[R] A
⊢ ↑(lift R) (↑g ∘ ι R) = g

tactic: exact (lift R).apply_symm_apply g
state_before: R : Type u_1
inst✝² : CommSemiring R
X : Type u_2
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
g : FreeAlgebra R X →ₐ[R] A
⊢ ↑(lift R) (↑(lift R).symm g) = g
Theorem: CategoryTheory.isIso_unop_iff
File: Mathlib/CategoryTheory/Opposites.lean

tactic: rw [← isIso_op_iff f.unop, Quiver.Hom.op_unop]
state_before: C : Type u₁
inst✝ : Category C
X Y : Cᵒᵖ
f : X ⟶ Y
⊢ IsIso f.unop ↔ IsIso f