ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: IsAddLeftRegular.of_add
File: Mathlib/Algebra/Regular/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝ : Semigroup R
a b : R
ab : IsLeftRegular (a * b)
⊢ Function.Injective ((fun x => a * x) ∘ fun x => b * x)
state_after: no goals
tactic: rwa [comp_mul_left a b]
Theorem: Multiset.count_eq_card_filter_eq
File: Mathlib/Data/Multiset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s : Multiset α
a : α
⊢ count a s = card (filter (fun x => a = x) s)
state_after: no goals
tactic: rw [count, countP_eq_card_filter]
Theorem: WittVector.frobenius_zmodp
File: Mathlib/RingTheory/WittVector/Frobenius.lean

Proof steps:
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CharP R p
x : 𝕎 (ZMod p)
⊢ frobenius x = x
state_after: no goals
tactic: simp only [WittVector.ext_iff, coeff_frobenius_charP, ZMod.pow_card, eq_self_iff_true,
    forall_const]
Theorem: Fintype.card_congr'
File: Mathlib/Data/Fintype/Card.lean

Proof steps:
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
α β : Type u_4
inst✝¹ : Fintype α
inst✝ : Fintype β
h : α = β
⊢ α ≃ β
state_after: no goals
tactic: rw [h]
Theorem: ClosedEmbedding.of_comp_iff
File: Mathlib/Topology/Maps/Basic.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hg : ClosedEmbedding g
⊢ ClosedEmbedding (g ∘ f) ↔ ClosedEmbedding f
state_after: no goals
tactic: simp_rw [closedEmbedding_iff, hg.toEmbedding.of_comp_iff, Set.range_comp,
    ← hg.closed_iff_image_closed]
Theorem: Real.sin_sub
File: Mathlib/Data/Complex/Exponential.lean

Proof steps:
state_before: x y : ℝ
⊢ sin (x - y) = sin x * cos y - cos x * sin y
state_after: no goals
tactic: simp [sub_eq_add_neg, sin_add, sin_neg, cos_neg]
Theorem: OrdinalApprox.lfpApprox_ord_mem_fixedPoint
File: Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean

Proof steps:
state_before: α : Type u
inst✝ : CompleteLattice α
f : α →o α
x : α
h_init : x ≤ f x
⊢ lfpApprox f x (succ #α).ord ∈ fixedPoints ⇑f
state_after: α : Type u
inst✝ : CompleteLattice α
f : α →o α
x : α
h_init : x ≤ f x
a : Ordinal.{u}
h_a : a < (succ #α).ord
b : Ordinal.{u}
h_b : b < (succ #α).ord
h_nab : a ≠ b
h_fab : lfpApprox f x a = lfpApprox f x b
⊢ lfpApprox f x (succ #α).ord ∈ fixedPoints ⇑f
tactic: let ⟨a, h_a, b, h_b, h_nab, h_fab⟩ := exists_lfpApprox_eq_lfpApprox f x
state_before: α : Type u
inst✝ : CompleteLattice α
f : α →o α
x : α
h_init : x ≤ f x
a : Ordinal.{u}
h_a : a < (succ #α).ord
b : Ordinal.{u}
h_b : b < (succ #α).ord
h_nab : a ≠ b
h_fab : lfpApprox f x a = lfpApprox f x b
⊢ lfpApprox f x (succ #α).ord ∈ fixedPoints ⇑f
state_after: no goals
tactic: cases le_total a b with
  | inl h_ab =>
    exact lfpApprox_mem_fixedPoints_of_eq f x h_init
      (h_nab.lt_of_le h_ab) (le_of_lt h_a) h_fab
  | inr h_ba =>
    exact lfpApprox_mem_fixedPoints_of_eq f x h_init
      (h_nab.symm.lt_of_le h_ba) (le_of_lt h_b) (h_fab.symm)
Theorem: volume_euclideanSpace_eq_dirac
File: Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean

Proof steps:
state_before: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : Fintype ι✝
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : InnerProductSpace ℝ F
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
ι : Type u_4
inst✝¹ : Fintype ι
inst✝ : IsEmpty ι
⊢ volume = dirac 0
state_after: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : Fintype ι✝
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : InnerProductSpace ℝ F
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
ι : Type u_4
inst✝¹ : Fintype ι
inst✝ : IsEmpty ι
⊢ dirac ((EuclideanSpace.measurableEquiv ι).symm 0) = dirac 0
tactic: rw [← ((EuclideanSpace.volume_preserving_measurableEquiv ι).symm).map_eq,
    volume_pi_eq_dirac 0, map_dirac (MeasurableEquiv.measurable _)]
state_before: ι✝ : Type u_1
E : Type u_2
F : Type u_3
inst✝⁷ : Fintype ι✝
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : InnerProductSpace ℝ F
inst✝⁴ : FiniteDimensional ℝ F
inst✝³ : MeasurableSpace F
inst✝² : BorelSpace F
ι : Type u_4
inst✝¹ : Fintype ι
inst✝ : IsEmpty ι
⊢ dirac ((EuclideanSpace.measurableEquiv ι).symm 0) = dirac 0
state_after: no goals
tactic: rfl
Theorem: CategoryTheory.GradedObject.comapEq_symm
File: Mathlib/CategoryTheory/GradedObject.lean

Proof steps:
state_before: C : Type u
inst✝ : Category.{v, u} C
β γ : Type w
f g : β → γ
h : f = g
⊢ comapEq C ⋯ = (comapEq C h).symm
state_after: no goals
tactic: aesop_cat
Theorem: WithTop.image_coe_Iic
File: Mathlib/Order/Interval/Set/WithBotTop.lean

Proof steps:
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some '' Iic a = Iic ↑a
state_after: no goals
tactic: rw [← preimage_coe_Iic, image_preimage_eq_inter_range, range_coe,
    inter_eq_self_of_subset_left (Iic_subset_Iio.2 <| coe_lt_top a)]
Theorem: sdiff_sdiff_self
File: Mathlib/Order/Heyting/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : GeneralizedCoheytingAlgebra α
a b c d : α
⊢ (a \ b) \ a = ⊥
state_after: no goals
tactic: rw [sdiff_sdiff_comm, sdiff_self, bot_sdiff]
Theorem: AddMonoidAlgebra.modOf_apply_of_exists_add
File: Mathlib/Algebra/MonoidAlgebra/Division.lean

Proof steps:
state_before: k : Type u_1
G : Type u_2
inst✝¹ : Semiring k
inst✝ : AddCancelCommMonoid G
x : k[G]
g g' : G
h : ∃ d, g' = g + d
⊢ (x %ᵒᶠ g) g' = 0
state_after: no goals
tactic: classical exact Finsupp.filter_apply_neg _ _ <| by rwa [Classical.not_not]
Theorem: Complex.norm_rat
File: Mathlib/Analysis/Complex/Basic.lean

Proof steps:
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
r : ℚ
⊢ ‖↑r‖ = |↑r|
state_after: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
r : ℚ
⊢ ‖↑↑r‖ = |↑r|
tactic: rw [← ofReal_ratCast]
state_before: z : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
r : ℚ
⊢ ‖↑↑r‖ = |↑r|
state_after: no goals
tactic: exact norm_real _
Theorem: CategoryTheory.Functor.commShiftIso_comp_hom_app
File: Mathlib/CategoryTheory/Shift/CommShift.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹¹ : Category.{u_6, u_1} C
inst✝¹⁰ : Category.{u_7, u_2} D
inst✝⁹ : Category.{u_8, u_3} E
F : C ⥤ D
G : D ⥤ E
A : Type u_4
B : Type u_5
inst✝⁸ : AddMonoid A
inst✝⁷ : AddCommMonoid B
inst✝⁶ : HasShift C A
inst✝⁵ : HasShift D A
inst✝⁴ : HasShift E A
inst✝³ : HasShift C B
inst✝² : HasShift D B
inst✝¹ : F.CommShift A
inst✝ : G.CommShift A
a : A
X : C
⊢ ((F ⋙ G).commShiftIso a).hom.app X = G.map ((F.commShiftIso a).hom.app X) ≫ (G.commShiftIso a).hom.app (F.obj X)
state_after: no goals
tactic: simp [commShiftIso, CommShift.iso]
Theorem: integrableOn_Ioi_exp_neg_mul_sq_iff
File: Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean

Proof steps:
state_before: b : ℝ
⊢ IntegrableOn (fun x => rexp (-b * x ^ 2)) (Ioi 0) volume ↔ 0 < b
state_after: b : ℝ
h : IntegrableOn (fun x => rexp (-b * x ^ 2)) (Ioi 0) volume
⊢ 0 < b
tactic: refine ⟨fun h => ?_, fun h => (integrable_exp_neg_mul_sq h).integrableOn⟩
state_before: b : ℝ
h : IntegrableOn (fun x => rexp (-b * x ^ 2)) (Ioi 0) volume
⊢ 0 < b
state_after: b : ℝ
h : IntegrableOn (fun x => rexp (-b * x ^ 2)) (Ioi 0) volume
hb : b ≤ 0
⊢ False
tactic: by_contra! hb
state_before: b : ℝ
h : IntegrableOn (fun x => rexp (-b * x ^ 2)) (Ioi 0) volume
hb : b ≤ 0
⊢ False
state_after: b : ℝ
h : IntegrableOn (fun x => rexp (-b * x ^ 2)) (Ioi 0) volume
hb : b ≤ 0
this : ∫⁻ (x : ℝ) in Ioi 0, 1 ≤ ∫⁻ (x : ℝ) in Ioi 0, ↑‖rexp (-b * x ^ 2)‖₊
⊢ False
tactic: have : ∫⁻ _ : ℝ in Ioi 0, 1 ≤ ∫⁻ x : ℝ in Ioi 0, ‖exp (-b * x ^ 2)‖₊ := by
    apply lintegral_mono (fun x ↦ _)
    simp only [neg_mul, ENNReal.one_le_coe_iff, ← toNNReal_one, toNNReal_le_iff_le_coe,
      Real.norm_of_nonneg (exp_pos _).le, coe_nnnorm, one_le_exp_iff, Right.nonneg_neg_iff]
    exact fun x ↦ mul_nonpos_of_nonpos_of_nonneg hb (sq_nonneg x)
state_before: b : ℝ
h : IntegrableOn (fun x => rexp (-b * x ^ 2)) (Ioi 0) volume
hb : b ≤ 0
this : ∫⁻ (x : ℝ) in Ioi 0, 1 ≤ ∫⁻ (x : ℝ) in Ioi 0, ↑‖rexp (-b * x ^ 2)‖₊
⊢ False
state_after: no goals
tactic: simpa using this.trans_lt h.2
Theorem: MeasureTheory.MeasurePreserving.lintegral_map_equiv
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν✝ : Measure α
inst✝ : MeasurableSpace β
ν : Measure β
f : β → ℝ≥0∞
g : α ≃ᵐ β
hg : MeasurePreserving (⇑g) μ ν
⊢ ∫⁻ (a : β), f a ∂ν = ∫⁻ (a : α), f (g a) ∂μ
state_after: no goals
tactic: rw [← MeasureTheory.lintegral_map_equiv f g, hg.map_eq]
Theorem: Nat.norm_cast_le
File: Mathlib/Analysis/Normed/Field/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
⊢ ‖↑0‖ ≤ ↑0 * ‖1‖
state_after: no goals
tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑(n + 1)‖ ≤ ↑(n + 1) * ‖1‖
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑n + 1‖ ≤ ↑n * ‖1‖ + ‖1‖
tactic: rw [n.cast_succ, n.cast_succ, add_mul, one_mul]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : SeminormedRing α
n : ℕ
⊢ ‖↑n + 1‖ ≤ ↑n * ‖1‖ + ‖1‖
state_after: no goals
tactic: exact norm_add_le_of_le (Nat.norm_cast_le n) le_rfl
Theorem: Function.Embedding.sigmaSet_apply
File: Mathlib/Logic/Embedding/Set.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
s✝ t r : Set α
s : ι → Set α
h : Pairwise (Disjoint on s)
⊢ Injective fun x => ↑x.snd
state_after: case mk.mk.mk.mk
α : Type u_1
ι : Type u_2
s✝ t r : Set α
s : ι → Set α
h : Pairwise (Disjoint on s)
i : ι
x : α
hx : x ∈ s i
j : ι
hx' : (fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩ ∈ s j
⊢ ⟨i, ⟨x, hx⟩⟩ = ⟨j, ⟨(fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩, hx'⟩⟩
tactic: rintro ⟨i, x, hx⟩ ⟨j, -, hx'⟩ rfl
state_before: case mk.mk.mk.mk
α : Type u_1
ι : Type u_2
s✝ t r : Set α
s : ι → Set α
h : Pairwise (Disjoint on s)
i : ι
x : α
hx : x ∈ s i
j : ι
hx' : (fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩ ∈ s j
⊢ ⟨i, ⟨x, hx⟩⟩ = ⟨j, ⟨(fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩, hx'⟩⟩
state_after: case mk.mk.mk.mk
α : Type u_1
ι : Type u_2
s✝ t r : Set α
s : ι → Set α
h : Pairwise (Disjoint on s)
i : ι
x : α
hx : x ∈ s i
hx' : (fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩ ∈ s i
⊢ ⟨i, ⟨x, hx⟩⟩ = ⟨i, ⟨(fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩, hx'⟩⟩
tactic: obtain rfl : i = j := h.eq (not_disjoint_iff.2 ⟨_, hx, hx'⟩)
state_before: case mk.mk.mk.mk
α : Type u_1
ι : Type u_2
s✝ t r : Set α
s : ι → Set α
h : Pairwise (Disjoint on s)
i : ι
x : α
hx : x ∈ s i
hx' : (fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩ ∈ s i
⊢ ⟨i, ⟨x, hx⟩⟩ = ⟨i, ⟨(fun x => ↑x.snd) ⟨i, ⟨x, hx⟩⟩, hx'⟩⟩
state_after: no goals
tactic: rfl
Theorem: ContinuousLinearMap.isUnit_iff_bijective
File: Mathlib/Analysis/Normed/Operator/Banach.lean

Proof steps:
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁹ : RingHomInvPair σ σ'
inst✝⁸ : RingHomInvPair σ' σ
inst✝⁷ : RingHomIsometric σ
inst✝⁶ : RingHomIsometric σ'
E : Type u_3
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_4
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜' F
f✝ : E →SL[σ] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] E
⊢ IsUnit f ↔ Bijective ⇑f
state_after: case mp
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁹ : RingHomInvPair σ σ'
inst✝⁸ : RingHomInvPair σ' σ
inst✝⁷ : RingHomIsometric σ
inst✝⁶ : RingHomIsometric σ'
E : Type u_3
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_4
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜' F
f✝ : E →SL[σ] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] E
⊢ IsUnit f → Bijective ⇑f

case mpr
𝕜 : Type u_1
𝕜' : Type u_2
inst✝¹¹ : NontriviallyNormedField 𝕜
inst✝¹⁰ : NontriviallyNormedField 𝕜'
σ : 𝕜 →+* 𝕜'
σ' : 𝕜' →+* 𝕜
inst✝⁹ : RingHomInvPair σ σ'
inst✝⁸ : RingHomInvPair σ' σ
inst✝⁷ : RingHomIsometric σ
inst✝⁶ : RingHomIsometric σ'
E : Type u_3
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_4
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜' F
f✝ : E →SL[σ] F
inst✝¹ : CompleteSpace F
inst✝ : CompleteSpace E
f : E →L[𝕜] E
⊢ Bijective ⇑f → IsUnit f
tactic: constructor
Theorem: ENNReal.smul_top
File: Mathlib/Data/ENNReal/Operations.lean

Proof steps:
state_before: a b c✝ d : ℝ≥0∞
r p q : ℝ≥0
R : Type u_1
inst✝⁴ : Zero R
inst✝³ : SMulWithZero R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : NoZeroSMulDivisors R ℝ≥0∞
inst✝ : DecidableEq R
c : R
⊢ c • ⊤ = if c = 0 then 0 else ⊤
state_after: a b c✝ d : ℝ≥0∞
r p q : ℝ≥0
R : Type u_1
inst✝⁴ : Zero R
inst✝³ : SMulWithZero R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : NoZeroSMulDivisors R ℝ≥0∞
inst✝ : DecidableEq R
c : R
⊢ (if c • 1 = 0 then 0 else ⊤) = if c = 0 then 0 else ⊤
tactic: rw [← smul_one_mul, mul_top']
state_before: a b c✝ d : ℝ≥0∞
r p q : ℝ≥0
R : Type u_1
inst✝⁴ : Zero R
inst✝³ : SMulWithZero R ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : NoZeroSMulDivisors R ℝ≥0∞
inst✝ : DecidableEq R
c : R
⊢ (if c • 1 = 0 then 0 else ⊤) = if c = 0 then 0 else ⊤
state_after: no goals
tactic: simp_rw [smul_eq_zero, or_iff_left (one_ne_zero' ℝ≥0∞)]
Theorem: Equiv.Perm.mem_support
File: Mathlib/GroupTheory/Perm/Support.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f g : Perm α
x : α
⊢ x ∈ f.support ↔ f x ≠ x
state_after: no goals
tactic: rw [support, mem_filter, and_iff_right (mem_univ x)]
Theorem: Filter.EventuallyEq.congr_continuousWithinAt
File: Mathlib/Topology/ContinuousOn.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f g : α → β
s : Set α
x : α
h : f =ᶠ[𝓝[s] x] g
hx : f x = g x
⊢ ContinuousWithinAt f s x ↔ ContinuousWithinAt g s x
state_after: no goals
tactic: rw [ContinuousWithinAt, hx, tendsto_congr' h, ContinuousWithinAt]
Theorem: IntermediateField.algHomAdjoinIntegralEquiv_symm_apply_gen
File: Mathlib/FieldTheory/Adjoin.lean

Proof steps:
state_before: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α : E
K : Type u
inst✝¹ : Field K
inst✝ : Algebra F K
h : IsIntegral F α
x : { x // x ∈ (minpoly F α).aroots K }
⊢ (aeval ↑x) (minpoly F (adjoin.powerBasis h).gen) = 0
state_after: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α : E
K : Type u
inst✝¹ : Field K
inst✝ : Algebra F K
h : IsIntegral F α
x : { x // x ∈ (minpoly F α).aroots K }
⊢ (aeval ↑x) (minpoly F α) = 0
tactic: rw [adjoin.powerBasis_gen, minpoly_gen]
state_before: F : Type u_1
inst✝⁴ : Field F
E : Type u_2
inst✝³ : Field E
inst✝² : Algebra F E
α : E
K : Type u
inst✝¹ : Field K
inst✝ : Algebra F K
h : IsIntegral F α
x : { x // x ∈ (minpoly F α).aroots K }
⊢ (aeval ↑x) (minpoly F α) = 0
state_after: no goals
tactic: exact (mem_aroots.mp x.2).2
Theorem: CategoryTheory.Coverage.toGrothendieck_eq_sInf
File: Mathlib/CategoryTheory/Sites/Coverage.lean

Proof steps:
state_before: C : Type u_1
D : Type ?u.40512
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Category.{?u.40520, ?u.40512} D
K : Coverage C
⊢ toGrothendieck C K = sInf {J | K ≤ ofGrothendieck C J}
state_after: case a
C : Type u_1
D : Type ?u.40512
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Category.{?u.40520, ?u.40512} D
K : Coverage C
⊢ toGrothendieck C K ≤ sInf {J | K ≤ ofGrothendieck C J}

case a
C : Type u_1
D : Type ?u.40512
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Category.{?u.40520, ?u.40512} D
K : Coverage C
⊢ sInf {J | K ≤ ofGrothendieck C J} ≤ toGrothendieck C K
tactic: apply le_antisymm
Theorem: ProbabilityTheory.IsMeasurableRatCDF.monotone_stieltjesFunctionAux
File: Mathlib/Probability/Kernel/Disintegration/MeasurableStieltjes.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
⊢ Monotone (stieltjesFunctionAux f a)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
⊢ stieltjesFunctionAux f a x ≤ stieltjesFunctionAux f a y
tactic: intro x y hxy
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
⊢ stieltjesFunctionAux f a x ≤ stieltjesFunctionAux f a y
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
this : Nonempty { r' // y < ↑r' }
⊢ stieltjesFunctionAux f a x ≤ stieltjesFunctionAux f a y
tactic: have : Nonempty { r' : ℚ // y < ↑r' } := by
    obtain ⟨r, hrx⟩ := exists_rat_gt y
    exact ⟨⟨r, hrx⟩⟩
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
this : Nonempty { r' // y < ↑r' }
⊢ stieltjesFunctionAux f a x ≤ stieltjesFunctionAux f a y
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
this : Nonempty { r' // y < ↑r' }
⊢ ⨅ q, f a ↑q ≤ ⨅ q, f a ↑q
tactic: simp_rw [IsMeasurableRatCDF.stieltjesFunctionAux_def]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
this : Nonempty { r' // y < ↑r' }
⊢ ⨅ q, f a ↑q ≤ ⨅ q, f a ↑q
state_after: case refine_1
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
this : Nonempty { r' // y < ↑r' }
r : { q' // y < ↑q' }
⊢ BddBelow (range fun q => f a ↑q)

case refine_2
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
this : Nonempty { r' // y < ↑r' }
r : { q' // y < ↑q' }
⊢ { q' // x < ↑q' }

case refine_3
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : MeasurableSpace α
f : α → ℚ → ℝ
hf : IsMeasurableRatCDF f
a : α
x y : ℝ
hxy : x ≤ y
this : Nonempty { r' // y < ↑r' }
r : { q' // y < ↑q' }
⊢ f a ↑?refine_2 = f a ↑r
tactic: refine le_ciInf fun r ↦ (ciInf_le ?_ ?_).trans_eq ?_
Theorem: IsCompactOperator.sub
File: Mathlib/Analysis/Normed/Operator/Compact.lean

Proof steps:
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
R₄ : Type u_4
inst✝¹² : Semiring R₁
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : CommSemiring R₃
inst✝⁹ : CommSemiring R₄
σ₁₂ : R₁ →+* R₂
σ₁₄ : R₁ →+* R₄
σ₃₄ : R₃ →+* R₄
M₁ : Type u_5
M₂ : Type u_6
M₃ : Type u_7
M₄ : Type u_8
inst✝⁸ : TopologicalSpace M₁
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommGroup M₃
inst✝² : TopologicalSpace M₄
inst✝¹ : AddCommGroup M₄
inst✝ : TopologicalAddGroup M₄
f g : M₁ → M₄
hf : IsCompactOperator f
hg : IsCompactOperator g
⊢ IsCompactOperator (f - g)
state_after: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
R₄ : Type u_4
inst✝¹² : Semiring R₁
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : CommSemiring R₃
inst✝⁹ : CommSemiring R₄
σ₁₂ : R₁ →+* R₂
σ₁₄ : R₁ →+* R₄
σ₃₄ : R₃ →+* R₄
M₁ : Type u_5
M₂ : Type u_6
M₃ : Type u_7
M₄ : Type u_8
inst✝⁸ : TopologicalSpace M₁
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommGroup M₃
inst✝² : TopologicalSpace M₄
inst✝¹ : AddCommGroup M₄
inst✝ : TopologicalAddGroup M₄
f g : M₁ → M₄
hf : IsCompactOperator f
hg : IsCompactOperator g
⊢ IsCompactOperator (f + -g)
tactic: rw [sub_eq_add_neg]
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type u_3
R₄ : Type u_4
inst✝¹² : Semiring R₁
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : CommSemiring R₃
inst✝⁹ : CommSemiring R₄
σ₁₂ : R₁ →+* R₂
σ₁₄ : R₁ →+* R₄
σ₃₄ : R₃ →+* R₄
M₁ : Type u_5
M₂ : Type u_6
M₃ : Type u_7
M₄ : Type u_8
inst✝⁸ : TopologicalSpace M₁
inst✝⁷ : AddCommMonoid M₁
inst✝⁶ : TopologicalSpace M₂
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : AddCommGroup M₃
inst✝² : TopologicalSpace M₄
inst✝¹ : AddCommGroup M₄
inst✝ : TopologicalAddGroup M₄
f g : M₁ → M₄
hf : IsCompactOperator f
hg : IsCompactOperator g
⊢ IsCompactOperator (f + -g)
state_after: no goals
tactic: exact hf.add hg.neg
Theorem: Stream'.take_succ'
File: Mathlib/Data/Stream/Init.lean

Proof steps:
state_before: α : Type u
β : Type v
δ : Type w
s : Stream' α
n : ℕ
⊢ take (n + 1 + 1) s = take (n + 1) s ++ [s.get (n + 1)]
state_after: no goals
tactic: rw [take_succ, take_succ' n, ← List.cons_append, ← take_succ, get_tail]
Theorem: CategoryTheory.Limits.pullbackAssoc_hom_fst
File: Mathlib/CategoryTheory/Limits/Shapes/Pullback/Assoc.lean

Proof steps:
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
W X Y Z X₁ X₂ X₃ Y₁ Y₂ : C
f₁ : X₁ ⟶ Y₁
f₂ : X₂ ⟶ Y₁
f₃ : X₂ ⟶ Y₂
f₄ : X₃ ⟶ Y₂
inst✝⁵ : HasPullback f₁ f₂
inst✝⁴ : HasPullback f₃ f₄
inst✝³ : HasPullback (sorryAx (?m.121835 ⟶ X₂) true ≫ f₃) f₄
inst✝² : HasPullback f₁ (sorryAx (?m.127286 ⟶ X₂) true ≫ f₂)
inst✝¹ : HasPullback (pullback.snd f₁ f₂ ≫ f₃) f₄
inst✝ : HasPullback f₁ (pullback.fst f₃ f₄ ≫ f₂)
⊢ (pullbackAssoc f₁ f₂ f₃ f₄).hom ≫ pullback.fst f₁ (pullback.fst f₃ f₄ ≫ f₂) =
    pullback.fst (pullback.snd f₁ f₂ ≫ f₃) f₄ ≫ pullback.fst f₁ f₂
state_after: no goals
tactic: rw [← Iso.eq_inv_comp, pullbackAssoc_inv_fst_fst]
Theorem: vectorSpan_eq_span_vsub_finset_right_ne
File: Mathlib/LinearAlgebra/AffineSpace/AffineSubspace.lean

Proof steps:
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝⁵ : Ring k
inst✝⁴ : AddCommGroup V
inst✝³ : Module k V
inst✝² : AffineSpace V P
ι : Type u_4
inst✝¹ : DecidableEq P
inst✝ : DecidableEq V
s : Finset P
p : P
hp : p ∈ s
⊢ vectorSpan k ↑s = Submodule.span k ↑(Finset.image (fun x => x -ᵥ p) (s.erase p))
state_after: no goals
tactic: simp [vectorSpan_eq_span_vsub_set_right_ne _ (Finset.mem_coe.mpr hp)]
Theorem: Finset.nontrivial_prod_iff
File: Mathlib/Data/Finset/Prod.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s' : Finset α
t t' : Finset β
a : α
b : β
⊢ (s ×ˢ t).Nontrivial ↔ s.Nonempty ∧ t.Nonempty ∧ (s.Nontrivial ∨ t.Nontrivial)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
s s' : Finset α
t t' : Finset β
a : α
b : β
⊢ 1 < s.card * t.card ↔ 0 < s.card ∧ 0 < t.card ∧ (1 < s.card ∨ 1 < t.card)
tactic: simp_rw [← card_pos, ← one_lt_card_iff_nontrivial, card_product]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s' : Finset α
t t' : Finset β
a : α
b : β
⊢ 1 < s.card * t.card ↔ 0 < s.card ∧ 0 < t.card ∧ (1 < s.card ∨ 1 < t.card)
state_after: no goals
tactic: apply Nat.one_lt_mul_iff
Theorem: Finset.prod_induction_nonempty
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝¹ : CommMonoid β
M : Type u_6
inst✝ : CommMonoid M
f : α → M
p : M → Prop
hom : ∀ (a b : M), p a → p b → p (a * b)
nonempty : s.Nonempty
base : ∀ x ∈ s, p (f x)
⊢ Multiset.map (fun x => f x) s.val ≠ ∅
state_after: no goals
tactic: simp [nonempty_iff_ne_empty.mp nonempty]
Theorem: MeasureTheory.setIntegral_nonneg_ae
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s : Set X
hs : MeasurableSet s
hf : ∀ᵐ (x : X) ∂μ, x ∈ s → 0 ≤ f x
⊢ 0 ≤ᶠ[ae (μ.restrict s)] f
state_after: no goals
tactic: rwa [EventuallyLE, ae_restrict_iff' hs]