1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LocalizedModule.smul'_mul
File: Mathlib/Algebra/Module/LocalizedModule.lean

tactic: induction p₁, p₂ using induction_on₂ with | _ a₁ s₁ a₂ s₂ => _
state_before: R : Type u
inst✝⁷ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
T : Type u_1
inst✝⁴ : CommSemiring T
inst✝³ : Algebra R T
inst✝² : IsLocalization S T
A : Type u_2
inst✝¹ : Semiring A
inst✝ : Algebra R A
x : T
p₁ p₂ : LocalizedModule S A
⊢ x • p₁ * p₂ = x • (p₁ * p₂)
state_after: case h
R : Type u
inst✝⁷ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
T : Type u_1
inst✝⁴ : CommSemiring T
inst✝³ : Algebra R T
inst✝² : IsLocalization S T
A : Type u_2
inst✝¹ : Semiring A
inst✝ : Algebra R A
x : T
a₁ s₁ : A
a₂ s₂ : ↥S
⊢ x • mk a₁ a₂ * mk s₁ s₂ = x • (mk a₁ a₂ * mk s₁ s₂)

tactic: rw [mk_mul_mk, smul_def, smul_def, mk_mul_mk, mul_assoc, smul_mul_assoc]
state_before: case h
R : Type u
inst✝⁷ : CommSemiring R
S : Submonoid R
M : Type v
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
T : Type u_1
inst✝⁴ : CommSemiring T
inst✝³ : Algebra R T
inst✝² : IsLocalization S T
A : Type u_2
inst✝¹ : Semiring A
inst✝ : Algebra R A
x : T
a₁ s₁ : A
a₂ s₂ : ↥S
⊢ x • mk a₁ a₂ * mk s₁ s₂ = x • (mk a₁ a₂ * mk s₁ s₂)
state_after: no goals
Theorem: MvPolynomial.vars_monomial_single
File: Mathlib/Algebra/MvPolynomial/Variables.lean

tactic: rw [vars_monomial hr, Finsupp.support_single_ne_zero _ he]
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
inst✝ : CommSemiring S
f : R →+* S
i : σ
e : ℕ
r : R
he : e ≠ 0
hr : r ≠ 0
⊢ ((monomial (Finsupp.single i e)) r).vars = {i}
state_after: no goals
Theorem: Matrix.isHermitian_conjTranspose_mul_mul
File: Mathlib/LinearAlgebra/Matrix/Hermitian.lean

tactic: simp only [IsHermitian, conjTranspose_mul, conjTranspose_conjTranspose, hA.eq, Matrix.mul_assoc]
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
A✝ : Matrix n n α
inst✝⁴ : NonUnitalSemiring α
inst✝³ : StarRing α
inst✝² : NonUnitalSemiring β
inst✝¹ : StarRing β
inst✝ : Fintype m
A : Matrix m m α
B : Matrix m n α
hA : A.IsHermitian
⊢ (Bᴴ * A * B).IsHermitian
state_after: no goals
Theorem: support_comp_inv_smul
File: Mathlib/Data/Set/Pointwise/Support.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : Zero γ
c : α
f : β → γ
⊢ (support fun x => f (c⁻¹ • x)) = c • support f
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : Zero γ
c : α
f : β → γ
x : β
⊢ (x ∈ support fun x => f (c⁻¹ • x)) ↔ x ∈ c • support f

tactic: simp only [mem_smul_set_iff_inv_smul_mem, mem_support]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Group α
inst✝¹ : MulAction α β
inst✝ : Zero γ
c : α
f : β → γ
x : β
⊢ (x ∈ support fun x => f (c⁻¹ • x)) ↔ x ∈ c • support f
state_after: no goals
Theorem: SemiconjBy.add_left
File: Mathlib/Algebra/Ring/Semiconj.lean

tactic: simp only [SemiconjBy, left_distrib, right_distrib, ha.eq, hb.eq]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : Distrib R
a b x y : R
ha : SemiconjBy a x y
hb : SemiconjBy b x y
⊢ SemiconjBy (a + b) x y
state_after: no goals
Theorem: countable_of_isolated_left'
File: Mathlib/Topology/Order/Basic.lean

tactic: simpa only [← covBy_iff_Ioo_eq] using countable_setOf_covBy_left
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderTopology α
inst✝ : SecondCountableTopology α
⊢ {x | ∃ y < x, Ioo y x = ∅}.Countable
state_after: no goals
Theorem: PowerSeries.rescale_zero_apply
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: simp
state_before: R : Type u_1
inst✝ : CommSemiring R
⊢ (rescale 0) X = (C R) ((constantCoeff R) X)
state_after: no goals
Theorem: Real.cos_sub_cos
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [cos_sub_cos]
state_before: x y : ℝ
⊢ ↑(cos x - cos y) = ↑(-2 * sin ((x + y) / 2) * sin ((x - y) / 2))
state_after: no goals
Theorem: CategoryTheory.Limits.Types.isConnected_iff_of_final
File: Mathlib/CategoryTheory/Limits/IsConnected.lean

tactic: rw [isConnected_iff_colimit_constPUnitFunctor_iso_pUnit.{max v u v₂ u₂} C,
  isConnected_iff_colimit_constPUnitFunctor_iso_pUnit.{max v u v₂ u₂} D]
state_before: C✝ : Type u
inst✝³ : Category.{v, u} C✝
C : Type u
D : Type u₂
inst✝² : Category.{v, u} C
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
inst✝ : F.Final
⊢ IsConnected C ↔ IsConnected D
state_after: C✝ : Type u
inst✝³ : Category.{v, u} C✝
C : Type u
D : Type u₂
inst✝² : Category.{v, u} C
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
inst✝ : F.Final
⊢ Nonempty (colimit (constPUnitFunctor C) ≅ PUnit.{(max v u v₂ u₂) + 1}) ↔
    Nonempty (colimit (constPUnitFunctor D) ≅ PUnit.{(max v u v₂ u₂) + 1})

tactic: exact Equiv.nonempty_congr <| Iso.isoCongrLeft <|
  CategoryTheory.Functor.Final.colimitIso F <| constPUnitFunctor.{max u v u₂ v₂} D
state_before: C✝ : Type u
inst✝³ : Category.{v, u} C✝
C : Type u
D : Type u₂
inst✝² : Category.{v, u} C
inst✝¹ : Category.{v₂, u₂} D
F : C ⥤ D
inst✝ : F.Final
⊢ Nonempty (colimit (constPUnitFunctor C) ≅ PUnit.{(max v u v₂ u₂) + 1}) ↔
    Nonempty (colimit (constPUnitFunctor D) ≅ PUnit.{(max v u v₂ u₂) + 1})
state_after: no goals
Theorem: List.get_insertNth_add_succ
File: Mathlib/Data/List/InsertNth.lean

tactic: rwa [length_insertNth _ _ (by omega), Nat.succ_lt_succ_iff]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n k : ℕ
hk' : n + k < l.length
⊢ n + k + 1 < (insertNth n x l).length
state_after: no goals

tactic: omega
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n k : ℕ
hk' : n + k < l.length
⊢ n ≤ l.length
state_after: no goals

tactic: simp [getElem_insertNth_add_succ, hk, hk']
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
a : α
l : List α
x : α
n k : ℕ
hk' : n + k < l.length
hk : optParam (n + k + 1 < (insertNth n x l).length) ⋯
⊢ (insertNth n x l).get ⟨n + k + 1, hk⟩ = l.get ⟨n + k, hk'⟩
state_after: no goals
Theorem: Metric.continuousOn_iff'
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: simp [ContinuousOn, continuousWithinAt_iff']
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s✝ : Set α
inst✝ : TopologicalSpace β
f : β → α
s : Set β
⊢ ContinuousOn f s ↔ ∀ b ∈ s, ∀ ε > 0, ∀ᶠ (x : β) in 𝓝[s] b, dist (f x) (f b) < ε
state_after: no goals
Theorem: irrational_div_nat_iff
File: Mathlib/Data/Real/Irrational.lean

tactic: rw [← cast_natCast, irrational_div_rat_iff, Nat.cast_ne_zero]
state_before: q : ℚ
m : ℤ
n : ℕ
x : ℝ
⊢ Irrational (x / ↑n) ↔ n ≠ 0 ∧ Irrational x
state_after: no goals
Theorem: Set.preimage_const_sub_uIcc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp_rw [← Icc_min_max, preimage_const_sub_Icc]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a b c d : α
⊢ (fun x => a - x) ⁻¹' [[b, c]] = [[a - b, a - c]]
state_after: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a b c d : α
⊢ Icc (a - max b c) (a - min b c) = Icc (min (a - b) (a - c)) (max (a - b) (a - c))

tactic: simp only [sub_eq_add_neg, min_add_add_left, max_add_add_left, min_neg_neg, max_neg_neg]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
a b c d : α
⊢ Icc (a - max b c) (a - min b c) = Icc (min (a - b) (a - c)) (max (a - b) (a - c))
state_after: no goals
Theorem: CochainComplex.HomComplex.Cochain.comp_assoc_of_second_is_zero_cochain
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: omega
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n m n₁ n₃ n₁₃ : ℤ
z₁ : Cochain F G n₁
z₂ : Cochain G K 0
z₃ : Cochain K L n₃
h₁₃ : n₁ + n₃ = n₁₃
⊢ n₁ + 0 + n₃ = n₁₃
state_after: no goals
Theorem: Set.uIoc_of_le
File: Mathlib/Order/Interval/Set/UnorderedInterval.lean

tactic: simp [uIoc, h]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
s : Set α
a a₁ a₂ b b₁ b₂ c d x : α
h : a ≤ b
⊢ Ι a b = Ioc a b
state_after: no goals
Theorem: List.mem_permutationsAux2'
File: Mathlib/Data/List/Permutation.lean

tactic: apply mem_permutationsAux2
state_before: α : Type u_1
β : Type u_2
t : α
ts ys l : List α
⊢ l ∈ (permutationsAux2 t ts [] ys fun x => [] ++ x).2 ↔ ∃ l₁ l₂, l₂ ≠ [] ∧ ys = l₁ ++ l₂ ∧ l = l₁ ++ t :: l₂ ++ ts
state_after: no goals

tactic: funext _
state_before: α : Type u_1
β : Type u_2
t : α
ts ys l : List α
⊢ id = fun x => [] ++ x
state_after: case h
α : Type u_1
β : Type u_2
t : α
ts ys l x✝ : List α
⊢ id x✝ = [] ++ x✝

tactic: rfl
state_before: case h
α : Type u_1
β : Type u_2
t : α
ts ys l x✝ : List α
⊢ id x✝ = [] ++ x✝
state_after: no goals
Theorem: lt_sup_iff
File: Mathlib/Order/Lattice.lean

tactic: exact ⟨fun h =>
  (le_total c b).imp
    (fun bc => by rwa [sup_eq_left.2 bc] at h)
    (fun bc => by rwa [sup_eq_right.2 bc] at h),
  fun h => h.elim lt_sup_of_lt_left lt_sup_of_lt_right⟩
state_before: α : Type u
β : Type v
inst✝ : LinearOrder α
a b c d : α
⊢ a < b ⊔ c ↔ a < b ∨ a < c
state_after: no goals

tactic: rwa [sup_eq_left.2 bc] at h
state_before: α : Type u
β : Type v
inst✝ : LinearOrder α
a b c d : α
h : a < b ⊔ c
bc : c ≤ b
⊢ a < b
state_after: no goals

tactic: rwa [sup_eq_right.2 bc] at h
state_before: α : Type u
β : Type v
inst✝ : LinearOrder α
a b c d : α
h : a < b ⊔ c
bc : b ≤ c
⊢ a < c
state_after: no goals
Theorem: Polynomial.derivative_C_mul_X_pow
File: Mathlib/Algebra/Polynomial/Derivative.lean

tactic: rw [C_mul_X_pow_eq_monomial, C_mul_X_pow_eq_monomial, derivative_monomial]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a✝ b : R
n✝ : ℕ
inst✝ : Semiring R
a : R
n : ℕ
⊢ derivative (C a * X ^ n) = C (a * ↑n) * X ^ (n - 1)
state_after: no goals
Theorem: ContDiff.sum
File: Mathlib/Analysis/Calculus/ContDiff/Basic.lean

tactic: simp only [← contDiffOn_univ] at *
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type u_2
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
ι : Type u_3
f : ι → E → F
s : Finset ι
h : ∀ i ∈ s, ContDiff 𝕜 n fun x => f i x
⊢ ContDiff 𝕜 n fun x => ∑ i ∈ s, f i x
state_after: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type u_2
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
ι : Type u_3
f : ι → E → F
s : Finset ι
h : ∀ i ∈ s, ContDiffOn 𝕜 n (fun x => f i x) univ
⊢ ContDiffOn 𝕜 n (fun x => ∑ i ∈ s, f i x) univ

tactic: exact ContDiffOn.sum h
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type u_2
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s✝ s₁ t u : Set E
f✝ f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
ι : Type u_3
f : ι → E → F
s : Finset ι
h : ∀ i ∈ s, ContDiffOn 𝕜 n (fun x => f i x) univ
⊢ ContDiffOn 𝕜 n (fun x => ∑ i ∈ s, f i x) univ
state_after: no goals
Theorem: FixedPoints.minpoly.eval₂
File: Mathlib/FieldTheory/Fixed.lean

tactic: rw [← prodXSubSMul.eval G F x, Polynomial.eval₂_eq_eval_map]
state_before: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Fintype G
x : F
⊢ Polynomial.eval₂ (subfield G F).subtype x (minpoly G F x) = 0
state_after: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Fintype G
x : F
⊢ Polynomial.eval x (Polynomial.map (subfield G F).subtype (minpoly G F x)) = Polynomial.eval x (prodXSubSMul G F x)

tactic: simp only [minpoly, Polynomial.map_toSubring]
state_before: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Fintype G
x : F
⊢ Polynomial.eval x (Polynomial.map (subfield G F).subtype (minpoly G F x)) = Polynomial.eval x (prodXSubSMul G F x)
state_after: no goals
Theorem: SimpleGraph.neighborSet_union_compl_neighborSet_eq
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext w
state_before: ι : Sort u_1
V : Type u
G✝ : SimpleGraph V
a b c u v✝ w : V
e : Sym2 V
G : SimpleGraph V
v : V
⊢ G.neighborSet v ∪ Gᶜ.neighborSet v = {v}ᶜ
state_after: case h
ι : Sort u_1
V : Type u
G✝ : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
G : SimpleGraph V
v w : V
⊢ w ∈ G.neighborSet v ∪ Gᶜ.neighborSet v ↔ w ∈ {v}ᶜ

tactic: have h := @ne_of_adj _ G
state_before: case h
ι : Sort u_1
V : Type u
G✝ : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
G : SimpleGraph V
v w : V
⊢ w ∈ G.neighborSet v ∪ Gᶜ.neighborSet v ↔ w ∈ {v}ᶜ
state_after: case h
ι : Sort u_1
V : Type u
G✝ : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
G : SimpleGraph V
v w : V
h : ∀ {a b : V}, G.Adj a b → a ≠ b
⊢ w ∈ G.neighborSet v ∪ Gᶜ.neighborSet v ↔ w ∈ {v}ᶜ

tactic: simp_rw [Set.mem_union, mem_neighborSet, compl_adj, Set.mem_compl_iff, Set.mem_singleton_iff]
state_before: case h
ι : Sort u_1
V : Type u
G✝ : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
G : SimpleGraph V
v w : V
h : ∀ {a b : V}, G.Adj a b → a ≠ b
⊢ w ∈ G.neighborSet v ∪ Gᶜ.neighborSet v ↔ w ∈ {v}ᶜ
state_after: case h
ι : Sort u_1
V : Type u
G✝ : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
G : SimpleGraph V
v w : V
h : ∀ {a b : V}, G.Adj a b → a ≠ b
⊢ G.Adj v w ∨ v ≠ w ∧ ¬G.Adj v w ↔ ¬w = v

tactic: tauto
state_before: case h
ι : Sort u_1
V : Type u
G✝ : SimpleGraph V
a b c u v✝ w✝ : V
e : Sym2 V
G : SimpleGraph V
v w : V
h : ∀ {a b : V}, G.Adj a b → a ≠ b
⊢ G.Adj v w ∨ v ≠ w ∧ ¬G.Adj v w ↔ ¬w = v
state_after: no goals
Theorem: IsDedekindDomain.HeightOneSpectrum.IntValuation.le_max_iff_min_le
File: Mathlib/RingTheory/DedekindDomain/AdicValuation.lean

tactic: rw [le_max_iff, ofAdd_le, ofAdd_le, neg_le_neg_iff, neg_le_neg_iff, Int.ofNat_le, Int.ofNat_le,
  ← min_le_iff]
state_before: R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDedekindDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
v : HeightOneSpectrum R
a b c : ℕ
⊢ ofAdd (-↑c) ≤ max (ofAdd (-↑a)) (ofAdd (-↑b)) ↔ min a b ≤ c
state_after: no goals
Theorem: SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eq
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext <;> simp (config := { contextual := true }) [imp_false]
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G' : G.Subgraph
s : Set V
⊢ G'.deleteVerts (s ∩ G'.verts) = G'.deleteVerts s
state_after: no goals
Theorem: PMF.support_uniformOfFintype
File: Mathlib/Probability/Distributions/Uniform.lean

tactic: simp [mem_support_iff]
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
inst✝³ : Fintype α✝
inst✝² : Nonempty α✝
α : Type u_4
inst✝¹ : Fintype α
inst✝ : Nonempty α
x : α
⊢ x ∈ (uniformOfFintype α).support ↔ x ∈ ⊤
state_after: no goals
Theorem: minpoly.degree_eq_one_iff
File: Mathlib/FieldTheory/Minpoly/Basic.lean

tactic: refine ⟨minpoly.mem_range_of_degree_eq_one _ _, ?_⟩
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
x : B
inst✝ : Nontrivial B
⊢ (minpoly A x).degree = 1 ↔ x ∈ (algebraMap A B).range
state_after: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
x : B
inst✝ : Nontrivial B
⊢ x ∈ (algebraMap A B).range → (minpoly A x).degree = 1

tactic: rintro ⟨x, rfl⟩
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
x : B
inst✝ : Nontrivial B
⊢ x ∈ (algebraMap A B).range → (minpoly A x).degree = 1
state_after: case intro
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
inst✝ : Nontrivial B
x : A
⊢ (minpoly A ((algebraMap A B) x)).degree = 1

tactic: haveI := Module.nontrivial A B
state_before: case intro
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
inst✝ : Nontrivial B
x : A
⊢ (minpoly A ((algebraMap A B) x)).degree = 1
state_after: case intro
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
inst✝ : Nontrivial B
x : A
this : Nontrivial A
⊢ (minpoly A ((algebraMap A B) x)).degree = 1

tactic: exact (degree_X_sub_C x ▸ minpoly.min A (algebraMap A B x) (monic_X_sub_C x) (by simp)).antisymm
  (Nat.WithBot.add_one_le_of_lt <| minpoly.degree_pos isIntegral_algebraMap)
state_before: case intro
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
inst✝ : Nontrivial B
x : A
this : Nontrivial A
⊢ (minpoly A ((algebraMap A B) x)).degree = 1
state_after: no goals

tactic: simp
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝³ : CommRing A
inst✝² : Ring B
inst✝¹ : Algebra A B
inst✝ : Nontrivial B
x : A
this : Nontrivial A
⊢ (Polynomial.aeval ((algebraMap A B) x)) (X - C x) = 0
state_after: no goals
Theorem: MultilinearMap.mkContinuousLinear_norm_le'
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: dsimp only [mkContinuousLinear]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : G →ₗ[𝕜] MultilinearMap 𝕜 E G'
C : ℝ
H : ∀ (x : G) (m : (i : ι) → E i), ‖(f x) m‖ ≤ C * ‖x‖ * ∏ i : ι, ‖m i‖
⊢ ‖mkContinuousLinear f C H‖ ≤ max C 0
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : G →ₗ[𝕜] MultilinearMap 𝕜 E G'
C : ℝ
H : ∀ (x : G) (m : (i : ι) → E i), ‖(f x) m‖ ≤ C * ‖x‖ * ∏ i : ι, ‖m i‖
⊢ ‖{ toFun := fun x => (f x).mkContinuous (C * ‖x‖) ⋯, map_add' := ⋯, map_smul' := ⋯ }.mkContinuous (max C 0) ⋯‖ ≤
    max C 0

tactic: exact LinearMap.mkContinuous_norm_le _ (le_max_right _ _) _
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹² : Fintype ι
inst✝¹¹ : Fintype ι'
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁸ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝⁷ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁶ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁵ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁴ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝³ : SeminormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : SeminormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f : G →ₗ[𝕜] MultilinearMap 𝕜 E G'
C : ℝ
H : ∀ (x : G) (m : (i : ι) → E i), ‖(f x) m‖ ≤ C * ‖x‖ * ∏ i : ι, ‖m i‖
⊢ ‖{ toFun := fun x => (f x).mkContinuous (C * ‖x‖) ⋯, map_add' := ⋯, map_smul' := ⋯ }.mkContinuous (max C 0) ⋯‖ ≤
    max C 0
state_after: no goals
Theorem: CategoryTheory.Limits.IsColimit.coconePointUniqueUpToIso_inv_desc
File: Mathlib/CategoryTheory/Limits/IsLimit.lean

tactic: simp
state_before: J : Type u₁
inst✝² : Category.{v₁, u₁} J
K : Type u₂
inst✝¹ : Category.{v₂, u₂} K
C : Type u₃
inst✝ : Category.{v₃, u₃} C
F : J ⥤ C
r s t : Cocone F
P : IsColimit s
Q : IsColimit t
⊢ ∀ (j : J), t.ι.app j ≫ (P.coconePointUniqueUpToIso Q).inv ≫ P.desc r = r.ι.app j
state_after: no goals
Theorem: Mathlib.Meta.Positivity.min_ne
File: Mathlib/Tactic/Positivity/Basic.lean

tactic: rw [min_def]
state_before: R : Type u_1
inst✝ : LinearOrder R
a b c : R
ha : a ≠ c
hb : b ≠ c
⊢ min a b ≠ c
state_after: R : Type u_1
inst✝ : LinearOrder R
a b c : R
ha : a ≠ c
hb : b ≠ c
⊢ (if a ≤ b then a else b) ≠ c

tactic: split_ifs <;> assumption
state_before: R : Type u_1
inst✝ : LinearOrder R
a b c : R
ha : a ≠ c
hb : b ≠ c
⊢ (if a ≤ b then a else b) ≠ c
state_after: no goals
Theorem: GeneralizedContinuedFraction.exists_rat_eq_nth_convergent
File: Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean

tactic: rcases exists_rat_eq_nth_numerator v n with ⟨Aₙ, nth_num_eq⟩
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
⊢ ∃ q, (of v).convergents n = ↑q
state_after: case intro
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
Aₙ : ℚ
nth_num_eq : (of v).numerators n = ↑Aₙ
⊢ ∃ q, (of v).convergents n = ↑q

tactic: rcases exists_rat_eq_nth_denominator v n with ⟨Bₙ, nth_denom_eq⟩
state_before: case intro
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
Aₙ : ℚ
nth_num_eq : (of v).numerators n = ↑Aₙ
⊢ ∃ q, (of v).convergents n = ↑q
state_after: case intro.intro
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
Aₙ : ℚ
nth_num_eq : (of v).numerators n = ↑Aₙ
Bₙ : ℚ
nth_denom_eq : (of v).denominators n = ↑Bₙ
⊢ ∃ q, (of v).convergents n = ↑q

tactic: use Aₙ / Bₙ
state_before: case intro.intro
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
Aₙ : ℚ
nth_num_eq : (of v).numerators n = ↑Aₙ
Bₙ : ℚ
nth_denom_eq : (of v).denominators n = ↑Bₙ
⊢ ∃ q, (of v).convergents n = ↑q
state_after: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
Aₙ : ℚ
nth_num_eq : (of v).numerators n = ↑Aₙ
Bₙ : ℚ
nth_denom_eq : (of v).denominators n = ↑Bₙ
⊢ (of v).convergents n = ↑(Aₙ / Bₙ)

tactic: simp [nth_num_eq, nth_denom_eq, convergent_eq_num_div_denom]
state_before: case h
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
Aₙ : ℚ
nth_num_eq : (of v).numerators n = ↑Aₙ
Bₙ : ℚ
nth_denom_eq : (of v).denominators n = ↑Bₙ
⊢ (of v).convergents n = ↑(Aₙ / Bₙ)
state_after: no goals
Theorem: Polynomial.ofFinsupp_sub
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: rw [sub_eq_add_neg, ofFinsupp_add, ofFinsupp_neg]
state_before: R✝ : Type u
a✝ b✝ : R✝
m n : ℕ
inst✝¹ : Semiring R✝
p q : R✝[X]
R : Type u
inst✝ : Ring R
a b : R[ℕ]
⊢ { toFinsupp := a - b } = { toFinsupp := a } - { toFinsupp := b }
state_after: R✝ : Type u
a✝ b✝ : R✝
m n : ℕ
inst✝¹ : Semiring R✝
p q : R✝[X]
R : Type u
inst✝ : Ring R
a b : R[ℕ]
⊢ { toFinsupp := a } + -{ toFinsupp := b } = { toFinsupp := a } - { toFinsupp := b }

tactic: rfl
state_before: R✝ : Type u
a✝ b✝ : R✝
m n : ℕ
inst✝¹ : Semiring R✝
p q : R✝[X]
R : Type u
inst✝ : Ring R
a b : R[ℕ]
⊢ { toFinsupp := a } + -{ toFinsupp := b } = { toFinsupp := a } - { toFinsupp := b }
state_after: no goals