ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: seminormFromConst_one
File: Mathlib/Analysis/Normed/Ring/SeminormFromConst.lean

Proof steps:
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
⊢ seminormFromConst' hf1 hc hpm 1 = 1
state_after: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
⊢ seminormFromConst_seq c f 1 =ᶠ[atTop] fun x => 1
tactic: apply tendsto_nhds_unique_of_eventuallyEq (seminormFromConst_isLimit hf1 hc hpm 1)
    tendsto_const_nhds
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
⊢ seminormFromConst_seq c f 1 =ᶠ[atTop] fun x => 1
state_after: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
⊢ ∃ a, ∀ (b : ℕ), a ≤ b → seminormFromConst_seq c f 1 b = 1
tactic: simp only [EventuallyEq, eventually_atTop, ge_iff_le]
state_before: R : Type u_1
inst✝ : CommRing R
c : R
f : RingSeminorm R
hf1 : f 1 ≤ 1
hc : f c ≠ 0
hpm : IsPowMul ⇑f
⊢ ∃ a, ∀ (b : ℕ), a ≤ b → seminormFromConst_seq c f 1 b = 1
state_after: no goals
tactic: exact ⟨1, seminormFromConst_seq_one hc hpm⟩
Theorem: AlgebraicGeometry.Scheme.comp_appLE
File: Mathlib/AlgebraicGeometry/Scheme.lean

Proof steps:
state_before: X Y Z : Scheme
f : X ⟶ Y
g : Y ⟶ Z
U : Z.Opens
V : X.Opens
e : V ≤ (f ≫ g) ⁻¹ᵁ U
⊢ Hom.appLE (f ≫ g) U V e = Hom.app g U ≫ Hom.appLE f (g ⁻¹ᵁ U) V e
state_after: no goals
tactic: rw [g.app_eq_appLE, appLE_comp_appLE]
Theorem: Filter.EventuallyEq.fderiv_eq
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : f₁ =ᶠ[𝓝 x] f
⊢ fderiv 𝕜 f₁ x = fderiv 𝕜 f x
state_after: no goals
tactic: rw [← fderivWithin_univ, ← fderivWithin_univ, h.fderivWithin_eq_nhds]
Theorem: le_mul_of_one_le_right
File: Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean

Proof steps:
state_before: α : Type u_1
a b c d : α
inst✝³ : MulOneClass α
inst✝² : Zero α
inst✝¹ : Preorder α
inst✝ : PosMulMono α
ha : 0 ≤ a
h : 1 ≤ b
⊢ a ≤ a * b
state_after: no goals
tactic: simpa only [mul_one] using mul_le_mul_of_nonneg_left h ha
Theorem: Polynomial.coeff_mul_degree_add_degree
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

Proof steps:
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ ∑ x ∈ antidiagonal (p.natDegree + q.natDegree), p.coeff x.1 * q.coeff x.2 = p.coeff p.natDegree * q.coeff q.natDegree
state_after: case refine_1
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ ∀ b ∈ antidiagonal (p.natDegree + q.natDegree), b ≠ (p.natDegree, q.natDegree) → p.coeff b.1 * q.coeff b.2 = 0

case refine_2
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝ : Semiring R
p✝¹ p✝ q✝ : R[X]
ι : Type u_1
p q : R[X]
⊢ (p.natDegree, q.natDegree) ∉ antidiagonal (p.natDegree + q.natDegree) →
    p.coeff (p.natDegree, q.natDegree).1 * q.coeff (p.natDegree, q.natDegree).2 = 0
tactic: refine Finset.sum_eq_single (natDegree p, natDegree q) ?_ ?_
Theorem: ProbabilityTheory.Kernel.snd_map_prod
File: Mathlib/Probability/Kernel/Composition.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : Kernel α β
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
⊢ (κ.map (fun x => (f x, g x)) ⋯).snd = κ.map g hg
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : Kernel α β
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set δ
hs : MeasurableSet s
⊢ ((κ.map (fun x => (f x, g x)) ⋯).snd x) s = ((κ.map g hg) x) s
tactic: ext x s hs
state_before: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : Kernel α β
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set δ
hs : MeasurableSet s
⊢ ((κ.map (fun x => (f x, g x)) ⋯).snd x) s = ((κ.map g hg) x) s
state_after: case h.h
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : Kernel α β
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set δ
hs : MeasurableSet s
⊢ (κ x) ((fun x => (f x, g x)) ⁻¹' {p | p.2 ∈ s}) = (κ x) (g ⁻¹' s)

case h.h.hs
α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f✝ : β → γ
g✝ : γ → α
κ : Kernel α β
f : β → γ
g : β → δ
hf : Measurable f
hg : Measurable g
x : α
s : Set δ
hs : MeasurableSet s
⊢ MeasurableSet {p | p.2 ∈ s}
tactic: rw [snd_apply' _ _ hs, map_apply', map_apply' _ _ _ hs]
Theorem: MeasureTheory.tilted_apply
File: Mathlib/MeasureTheory/Measure/Tilted.lean

Proof steps:
state_before: α : Type u_1
mα : MeasurableSpace α
μ✝ : Measure α
f✝ : α → ℝ
μ : Measure α
inst✝ : SFinite μ
f : α → ℝ
s : Set α
⊢ (μ.tilted f) s = ∫⁻ (a : α) in s, ENNReal.ofReal (rexp (f a) / ∫ (x : α), rexp (f x) ∂μ) ∂μ
state_after: no goals
tactic: rw [Measure.tilted, withDensity_apply' _ s]
Theorem: finprod_def
File: Mathlib/Algebra/BigOperators/Finprod.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f : α → M
inst✝ : Decidable (mulSupport f).Finite
⊢ ∏ᶠ (i : α), f i = if h : (mulSupport f).Finite then ∏ i ∈ h.toFinset, f i else 1
state_after: case pos
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f : α → M
inst✝ : Decidable (mulSupport f).Finite
h : (mulSupport f).Finite
⊢ ∏ᶠ (i : α), f i = ∏ i ∈ h.toFinset, f i

case neg
α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f : α → M
inst✝ : Decidable (mulSupport f).Finite
h : ¬(mulSupport f).Finite
⊢ ∏ᶠ (i : α), f i = 1
tactic: split_ifs with h
Theorem: Pell.IsFundamental.mul_inv_x_pos
File: Mathlib/NumberTheory/Pell.lean

Proof steps:
state_before: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ 0 < (a * a₁⁻¹).x
state_after: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ d * (a.y * a₁.y) < a.x * a₁.x
tactic: simp only [x_mul, x_inv, y_inv, mul_neg, lt_add_neg_iff_add_lt, zero_add]
state_before: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ d * (a.y * a₁.y) < a.x * a₁.x
state_after: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ a.x * (d * (a.y * a₁.y)) < a.x * (a.x * a₁.x)
tactic: refine (mul_lt_mul_left <| zero_lt_one.trans hax).mp ?_
state_before: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ a.x * (d * (a.y * a₁.y)) < a.x * (a.x * a₁.x)
state_after: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ d * a.y * (a.x * a₁.y) < a.x * (a.x * a₁.x)
tactic: rw [(by ring : a.x * (d * (a.y * a₁.y)) = d * a.y * (a.x * a₁.y))]
state_before: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ d * a.y * (a.x * a₁.y) < a.x * (a.x * a₁.x)
state_after: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ d * a.y * (a.y * a₁.x) < a.x * (a.x * a₁.x)
tactic: refine ((mul_le_mul_left <| mul_pos h.d_pos hay).mpr <| x_mul_y_le_y_mul_x h hax hay).trans_lt ?_
state_before: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ d * a.y * (a.y * a₁.x) < a.x * (a.x * a₁.x)
state_after: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ 0 < a.x * (a.x * a₁.x) - (a.x ^ 2 - 1) * a₁.x
tactic: rw [← mul_assoc, mul_assoc d, ← sq, a.prop_y, ← sub_pos]
state_before: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ 0 < a.x * (a.x * a₁.x) - (a.x ^ 2 - 1) * a₁.x
state_after: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ 0 < a₁.x
tactic: ring_nf
state_before: d : ℤ
a₁ : Solution₁ d
h : IsFundamental a₁
a : Solution₁ d
hax : 1 < a.x
hay : 0 < a.y
⊢ 0 < a₁.x
state_after: no goals
tactic: exact zero_lt_one.trans h.1
Theorem: MvPolynomial.monomial_add_single
File: Mathlib/Algebra/MvPolynomial/Basic.lean

Proof steps:
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
⊢ (monomial (s + Finsupp.single n e)) a = (monomial s) a * X n ^ e
state_after: no goals
tactic: rw [X_pow_eq_monomial, monomial_mul, mul_one]
Theorem: SeparationQuotient.map_unique
File: Mathlib/Topology/UniformSpace/Separation.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : α → β
hf : UniformContinuous f
g : SeparationQuotient α → SeparationQuotient β
comm : mk ∘ f = g ∘ mk
⊢ map f = g
state_after: case h.mk
α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : α → β
hf : UniformContinuous f
g : SeparationQuotient α → SeparationQuotient β
comm : mk ∘ f = g ∘ mk
x✝ : SeparationQuotient α
a : α
⊢ map f (Quot.mk Setoid.r a) = g (Quot.mk Setoid.r a)
tactic: ext ⟨a⟩
state_before: case h.mk
α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
f : α → β
hf : UniformContinuous f
g : SeparationQuotient α → SeparationQuotient β
comm : mk ∘ f = g ∘ mk
x✝ : SeparationQuotient α
a : α
⊢ map f (Quot.mk Setoid.r a) = g (Quot.mk Setoid.r a)
state_after: no goals
tactic: calc
    map f ⟦a⟧ = ⟦f a⟧ := map_mk hf a
    _ = g ⟦a⟧ := congr_fun comm a
Theorem: Set.not_bounded_iff
File: Mathlib/Order/RelClasses.lean

Proof steps:
state_before: α : Type u
β : Type v
r✝ : α → α → Prop
s✝ : β → β → Prop
r : α → α → Prop
s : Set α
⊢ ¬Bounded r s ↔ Unbounded r s
state_after: no goals
tactic: simp only [Bounded, Unbounded, not_forall, not_exists, exists_prop, not_and, not_not]
Theorem: PowerSeries.monomial_zero_eq_C_apply
File: Mathlib/RingTheory/PowerSeries/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝ : Semiring R
a : R
⊢ (monomial R 0) a = (C R) a
state_after: no goals
tactic: simp
Theorem: PrimeSpectrum.vanishingIdeal_empty
File: Mathlib/RingTheory/PrimeSpectrum.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ vanishingIdeal ∅ = ⊤
state_after: no goals
tactic: simpa using (gc R).u_top
Theorem: Finsupp.subset_mapRange_neLocus
File: Mathlib/Data/Finsupp/NeLocus.lean

Proof steps:
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁴ : DecidableEq α
inst✝³ : DecidableEq N
inst✝² : Zero N
inst✝¹ : DecidableEq M
inst✝ : Zero M
f g : α →₀ N
F : N → M
F0 : F 0 = 0
x : α
⊢ x ∈ (mapRange F F0 f).neLocus (mapRange F F0 g) → x ∈ f.neLocus g
state_after: no goals
tactic: simpa only [mem_neLocus, mapRange_apply, not_imp_not] using congr_arg F
Theorem: Ordinal.sup_eq_zero_iff
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
⊢ sup f = 0 ↔ ∀ (i : ι), f i = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : sup f = 0
i : ι
⊢ f i = 0
tactic: refine
    ⟨fun h i => ?_, fun h =>
      le_antisymm (sup_le fun i => Ordinal.le_zero.2 (h i)) (Ordinal.zero_le _)⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : sup f = 0
i : ι
⊢ f i = 0
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : sup f = 0
i : ι
⊢ f i ≤ sup f
tactic: rw [← Ordinal.le_zero, ← h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
ι : Type u
f : ι → Ordinal.{max u v}
h : sup f = 0
i : ι
⊢ f i ≤ sup f
state_after: no goals
tactic: exact le_sup f i
Theorem: CategoryTheory.Limits.cospanExt_app_right
File: Mathlib/CategoryTheory/Limits/Shapes/Pullback/Cospan.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
X Y Z X' Y' Z' : C
iX : X ≅ X'
iY : Y ≅ Y'
iZ : Z ≅ Z'
f : X ⟶ Z
g : Y ⟶ Z
f' : X' ⟶ Z'
g' : Y' ⟶ Z'
wf : iX.hom ≫ f' = f ≫ iZ.hom
wg : iY.hom ≫ g' = g ≫ iZ.hom
⊢ (cospanExt iX iY iZ wf wg).app WalkingCospan.right = iY
state_after: no goals
tactic: dsimp [cospanExt]
Theorem: minpoly.subsingleton
File: Mathlib/FieldTheory/Minpoly/Basic.lean

Proof steps:
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
⊢ minpoly A x = 1
state_after: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
⊢ minpoly A x = 1
tactic: nontriviality A
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
⊢ minpoly A x = 1
state_after: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
this : (minpoly A x).degree ≤ degree 1
⊢ minpoly A x = 1
tactic: have := minpoly.min A x monic_one (Subsingleton.elim _ _)
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
this : (minpoly A x).degree ≤ degree 1
⊢ minpoly A x = 1
state_after: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
this : (minpoly A x).degree ≤ 0
⊢ minpoly A x = 1
tactic: rw [degree_one] at this
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
this : (minpoly A x).degree ≤ 0
⊢ minpoly A x = 1
state_after: case inl
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
this : (minpoly A x).degree ≤ 0
h : (minpoly A x).degree ≤ 0
⊢ minpoly A x = 1

case inr
A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁵ : CommRing A
inst✝⁴ : Ring B
inst✝³ : Ring B'
inst✝² : Algebra A B
inst✝¹ : Algebra A B'
x : B
inst✝ : Subsingleton B
a✝ : Nontrivial A
this : (minpoly A x).degree ≤ 0
h : 0 < (minpoly A x).degree
⊢ minpoly A x = 1
tactic: rcases le_or_lt (minpoly A x).degree 0 with h | h
Theorem: AddAction.snd_mem_orbit_of_mem_orbit
File: Mathlib/GroupTheory/GroupAction/Basic.lean

Proof steps:
state_before: M : Type u
inst✝² : Monoid M
α : Type v
inst✝¹ : MulAction M α
β : Type u_1
inst✝ : MulAction M β
x y : α × β
h : x ∈ orbit M y
⊢ x.2 ∈ orbit M y.2
state_after: case intro
M : Type u
inst✝² : Monoid M
α : Type v
inst✝¹ : MulAction M α
β : Type u_1
inst✝ : MulAction M β
y : α × β
g : M
⊢ ((fun m => m • y) g).2 ∈ orbit M y.2
tactic: rcases h with ⟨g, rfl⟩
state_before: case intro
M : Type u
inst✝² : Monoid M
α : Type v
inst✝¹ : MulAction M α
β : Type u_1
inst✝ : MulAction M β
y : α × β
g : M
⊢ ((fun m => m • y) g).2 ∈ orbit M y.2
state_after: no goals
tactic: exact mem_orbit _ _
Theorem: Polynomial.mem_degreeLT
File: Mathlib/RingTheory/Polynomial/Basic.lean

Proof steps:
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ f ∈ degreeLT R n ↔ f.degree < ↑n
state_after: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ (i : ℕ), f ∈ ⨅ (_ : i ≥ n), LinearMap.ker (lcoeff R i)) ↔ f.degree < ↑n
tactic: rw [degreeLT, Submodule.mem_iInf]
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ (i : ℕ), f ∈ ⨅ (_ : i ≥ n), LinearMap.ker (lcoeff R i)) ↔ f.degree < ↑n
state_after: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ f.degree < ↑n
tactic: conv_lhs => intro i; rw [Submodule.mem_iInf]
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ f.degree < ↑n
state_after: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ f.support.sup WithBot.some < ↑n
tactic: rw [degree, Finset.max_eq_sup_coe]
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ f.support.sup WithBot.some < ↑n
state_after: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ ∀ b ∈ f.support, ↑b < ↑n

R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ ⊥ < ↑n
tactic: rw [Finset.sup_lt_iff ?_]
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ ∀ b ∈ f.support, ↑b < ↑n

R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ ⊥ < ↑n
state_after: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ ⊥ < ↑n

R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ ∀ b ∈ f.support, ↑b < ↑n
tactic: rotate_left
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ ∀ b ∈ f.support, ↑b < ↑n
state_after: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ ∀ (b : ℕ), n ≤ b → f.coeff b = 0
tactic: conv_rhs =>
    simp only [mem_support_iff]
    intro b
    rw [Nat.cast_withBot, WithBot.coe_lt_coe, lt_iff_not_le, Ne, not_imp_not]
state_before: R : Type u
S : Type u_1
inst✝ : Semiring R
n : ℕ
f : R[X]
⊢ (∀ i ≥ n, f ∈ LinearMap.ker (lcoeff R i)) ↔ ∀ (b : ℕ), n ≤ b → f.coeff b = 0
state_after: no goals
tactic: rfl
Theorem: iSup_sUnion
File: Mathlib/Data/Set/Lattice.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
inst✝ : CompleteLattice β
S : Set (Set α)
f : α → β
⊢ ⨆ x ∈ ⋃₀ S, f x = ⨆ s ∈ S, ⨆ x ∈ s, f x
state_after: no goals
tactic: rw [sUnion_eq_iUnion, iSup_iUnion, ← iSup_subtype'']
Theorem: ModuleCat.mono_iff_injective
File: Mathlib/Algebra/Category/ModuleCat/EpiMono.lean

Proof steps:
state_before: R : Type u
inst✝² : Ring R
X Y : ModuleCat R
f : X ⟶ Y
M : Type v
inst✝¹ : AddCommGroup M
inst✝ : Module R M
⊢ Mono f ↔ Function.Injective ⇑f
state_after: no goals
tactic: rw [mono_iff_ker_eq_bot, LinearMap.ker_eq_bot]
Theorem: _private.Mathlib.Analysis.SpecialFunctions.Pow.Continuity.0.ENNReal.continuousAt_rpow_const_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean

Proof steps:
state_before: x : ℝ≥0∞
y : ℝ
h : 0 < y
⊢ ContinuousAt (fun a => a ^ y) x
state_after: case pos
x : ℝ≥0∞
y : ℝ
h : 0 < y
hx : x = ⊤
⊢ ContinuousAt (fun a => a ^ y) x

case neg
x : ℝ≥0∞
y : ℝ
h : 0 < y
hx : ¬x = ⊤
⊢ ContinuousAt (fun a => a ^ y) x
tactic: by_cases hx : x = ⊤
state_before: case neg
x : ℝ≥0∞
y : ℝ
h : 0 < y
hx : ¬x = ⊤
⊢ ContinuousAt (fun a => a ^ y) x
state_after: case neg.intro
y : ℝ
h : 0 < y
x : ℝ≥0
⊢ ContinuousAt (fun a => a ^ y) ↑x
tactic: lift x to ℝ≥0 using hx
state_before: case neg.intro
y : ℝ
h : 0 < y
x : ℝ≥0
⊢ ContinuousAt (fun a => a ^ y) ↑x
state_after: case neg.intro
y : ℝ
h : 0 < y
x : ℝ≥0
⊢ ContinuousAt ((fun a => a ^ y) ∘ ofNNReal) x
tactic: rw [continuousAt_coe_iff]
state_before: case neg.intro
y : ℝ
h : 0 < y
x : ℝ≥0
⊢ ContinuousAt ((fun a => a ^ y) ∘ ofNNReal) x
state_after: case h.e'_5
y : ℝ
h : 0 < y
x : ℝ≥0
⊢ (fun a => a ^ y) ∘ ofNNReal = ofNNReal ∘ fun z => z ^ y
tactic: convert continuous_coe.continuousAt.comp (NNReal.continuousAt_rpow_const (Or.inr h.le)) using 1
state_before: case h.e'_5
y : ℝ
h : 0 < y
x : ℝ≥0
⊢ (fun a => a ^ y) ∘ ofNNReal = ofNNReal ∘ fun z => z ^ y
state_after: case h.e'_5.h
y : ℝ
h : 0 < y
x✝ x : ℝ≥0
⊢ ((fun a => a ^ y) ∘ ofNNReal) x = (ofNNReal ∘ fun z => z ^ y) x
tactic: ext1 x
state_before: case h.e'_5.h
y : ℝ
h : 0 < y
x✝ x : ℝ≥0
⊢ ((fun a => a ^ y) ∘ ofNNReal) x = (ofNNReal ∘ fun z => z ^ y) x
state_after: no goals
tactic: simp [coe_rpow_of_nonneg _ h.le]
Theorem: DirectedOn.disjoint_sSup_left
File: Mathlib/Order/CompactlyGenerated/Basic.lean

Proof steps:
state_before: ι : Sort u_1
α : Type u_2
inst✝² : CompleteLattice α
f : ι → α
inst✝¹ : CompleteLattice α
inst✝ : IsCompactlyGenerated α
a b : α
s : Set α
h : DirectedOn (fun x x_1 => x ≤ x_1) s
⊢ Disjoint (sSup s) a ↔ ∀ ⦃b : α⦄, b ∈ s → Disjoint b a
state_after: no goals
tactic: simp_rw [disjoint_iff, h.sSup_inf_eq, iSup_eq_bot]