ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: AlgebraicGeometry.noetherianSpace_of_isAffineOpen
File: Mathlib/AlgebraicGeometry/Noetherian.lean

Proof steps:
state_before: X : Scheme
U : X.Opens
hU : IsAffineOpen U
inst✝ : IsNoetherianRing ↑Γ(X, U)
⊢ NoetherianSpace ↑↑(↑U).toPresheafedSpace
state_after: X : Scheme
U : X.Opens
hU : IsAffineOpen U
inst✝ : IsNoetherianRing ↑Γ(X, U)
this : IsNoetherianRing ↑Γ(↑U, ⊤)
⊢ NoetherianSpace ↑↑(↑U).toPresheafedSpace
tactic: have : IsNoetherianRing Γ(U, ⊤) := isNoetherianRing_of_ringEquiv _
    (Scheme.restrictFunctorΓ.app (op U)).symm.commRingCatIsoToRingEquiv
state_before: X : Scheme
U : X.Opens
hU : IsAffineOpen U
inst✝ : IsNoetherianRing ↑Γ(X, U)
this : IsNoetherianRing ↑Γ(↑U, ⊤)
⊢ NoetherianSpace ↑↑(↑U).toPresheafedSpace
state_after: no goals
tactic: exact @noetherianSpace_of_isAffine _ hU _
Theorem: Polynomial.Chebyshev.aeval_U
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
inst✝² : CommRing R
inst✝¹ : CommRing A
inst✝ : Algebra R A
x : A
n : ℤ
⊢ (aeval x) (U R n) = eval x (U A n)
state_after: no goals
tactic: rw [aeval_def, eval₂_eq_eval_map, map_U]
Theorem: Polynomial.isPrimitive_iff_content_eq_one
File: Mathlib/RingTheory/Polynomial/Content.lean

Proof steps:
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
⊢ p.IsPrimitive ↔ p.content = 1
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
⊢ (∀ (r : R), C r ∣ p → IsUnit r) ↔ IsUnit p.content
tactic: rw [← normalize_content, normalize_eq_one, IsPrimitive]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
⊢ (∀ (r : R), C r ∣ p → IsUnit r) ↔ IsUnit p.content
state_after: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
⊢ (∀ (r : R), r ∣ p.content → IsUnit r) ↔ IsUnit p.content
tactic: simp_rw [← dvd_content_iff_C_dvd]
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : NormalizedGCDMonoid R
p : R[X]
⊢ (∀ (r : R), r ∣ p.content → IsUnit r) ↔ IsUnit p.content
state_after: no goals
tactic: exact ⟨fun h => h p.content (dvd_refl p.content), fun h r hdvd => isUnit_of_dvd_unit hdvd h⟩
Theorem: Nat.pow_mod
File: Mathlib/Data/Nat/Defs.lean

Proof steps:
state_before: a✝ b✝ c d m n✝ k : ℕ
p q : ℕ → Prop
a b n : ℕ
⊢ a ^ b % n = (a % n) ^ b % n
state_after: no goals
tactic: induction b with
  | zero => rfl
  | succ b ih => simp [Nat.pow_succ, Nat.mul_mod, ih]
Theorem: IsPreconnected.subset_of_closure_inter_subset
File: Mathlib/Topology/Connected/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
hs : IsPreconnected s
hu : IsOpen u
h'u : (s ∩ u).Nonempty
h : closure u ∩ s ⊆ u
A : s ⊆ u ∪ (closure u)ᶜ
⊢ s ⊆ u
state_after: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
hs : IsPreconnected s
hu : IsOpen u
h'u : (s ∩ u).Nonempty
h : closure u ∩ s ⊆ u
A : s ⊆ u ∪ (closure u)ᶜ
⊢ Disjoint u (closure u)ᶜ
tactic: apply hs.subset_left_of_subset_union hu isClosed_closure.isOpen_compl _ A h'u
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
hs : IsPreconnected s
hu : IsOpen u
h'u : (s ∩ u).Nonempty
h : closure u ∩ s ⊆ u
A : s ⊆ u ∪ (closure u)ᶜ
⊢ Disjoint u (closure u)ᶜ
state_after: no goals
tactic: exact disjoint_compl_right.mono_right (compl_subset_compl.2 subset_closure)
Theorem: Submodule.fg_top
File: Mathlib/RingTheory/Finiteness.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
P : Type u_3
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
f : M →ₗ[R] P
N : Submodule R M
h : N.FG
⊢ (map N.subtype ⊤).FG
state_after: no goals
tactic: rwa [map_top, range_subtype]
Theorem: Matrix.Pivot.mul_listTransvecRow_last_col
File: Mathlib/LinearAlgebra/Matrix/Transvection.lean

Proof steps:
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝³ : Field 𝕜
inst✝² : DecidableEq n
inst✝¹ : DecidableEq p
inst✝ : CommRing R
r : ℕ
M : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
i : Fin r ⊕ Unit
⊢ (M * (listTransvecRow M).prod) i (inr ()) = M i (inr ())
state_after: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝³ : Field 𝕜
inst✝² : DecidableEq n
inst✝¹ : DecidableEq p
inst✝ : CommRing R
r : ℕ
M : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
i : Fin r ⊕ Unit
A : (listTransvecRow M).length = r
⊢ (M * (listTransvecRow M).prod) i (inr ()) = M i (inr ())
tactic: have A : (listTransvecRow M).length = r := by simp [listTransvecRow]
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝³ : Field 𝕜
inst✝² : DecidableEq n
inst✝¹ : DecidableEq p
inst✝ : CommRing R
r : ℕ
M : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
i : Fin r ⊕ Unit
A : (listTransvecRow M).length = r
⊢ (M * (listTransvecRow M).prod) i (inr ()) = M i (inr ())
state_after: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝³ : Field 𝕜
inst✝² : DecidableEq n
inst✝¹ : DecidableEq p
inst✝ : CommRing R
r : ℕ
M : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
i : Fin r ⊕ Unit
A : (listTransvecRow M).length = r
⊢ (M * (List.take r (listTransvecRow M)).prod) i (inr ()) = M i (inr ())
tactic: rw [← List.take_length (listTransvecRow M), A]
state_before: n : Type u_1
p : Type u_2
R : Type u₂
𝕜 : Type u_3
inst✝³ : Field 𝕜
inst✝² : DecidableEq n
inst✝¹ : DecidableEq p
inst✝ : CommRing R
r : ℕ
M : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
i : Fin r ⊕ Unit
A : (listTransvecRow M).length = r
⊢ (M * (List.take r (listTransvecRow M)).prod) i (inr ()) = M i (inr ())
state_after: no goals
tactic: simpa using mul_listTransvecRow_last_col_take M i le_rfl
Theorem: TruncatedWittVector.iInf_ker_truncate
File: Mathlib/RingTheory/WittVector/Truncated.lean

Proof steps:
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
⊢ ⨅ i, RingHom.ker (WittVector.truncate i) = ⊥
state_after: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
⊢ ∀ x ∈ ⨅ i, RingHom.ker (WittVector.truncate i), x = 0
tactic: rw [Submodule.eq_bot_iff]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
⊢ ∀ x ∈ ⨅ i, RingHom.ker (WittVector.truncate i), x = 0
state_after: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
hx : x ∈ ⨅ i, RingHom.ker (WittVector.truncate i)
⊢ x = 0
tactic: intro x hx
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
hx : x ∈ ⨅ i, RingHom.ker (WittVector.truncate i)
⊢ x = 0
state_after: case h
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
hx : x ∈ ⨅ i, RingHom.ker (WittVector.truncate i)
n✝ : ℕ
⊢ x.coeff n✝ = WittVector.coeff 0 n✝
tactic: ext
state_before: case h
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
hx : x ∈ ⨅ i, RingHom.ker (WittVector.truncate i)
n✝ : ℕ
⊢ x.coeff n✝ = WittVector.coeff 0 n✝
state_after: case h
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n✝ : ℕ
hx : ∀ (i i_1 : ℕ), i_1 < i → x.coeff i_1 = 0
⊢ x.coeff n✝ = 0
tactic: simp only [WittVector.mem_ker_truncate, Ideal.mem_iInf, WittVector.zero_coeff] at hx ⊢
state_before: case h
p : ℕ
hp : Fact (Nat.Prime p)
n : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n✝ : ℕ
hx : ∀ (i i_1 : ℕ), i_1 < i → x.coeff i_1 = 0
⊢ x.coeff n✝ = 0
state_after: no goals
tactic: exact hx _ _ (Nat.lt_succ_self _)
Theorem: Set.chainHeight_eq_zero_iff
File: Mathlib/Order/Height.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LT α
inst✝ : LT β
s t : Set α
l : List α
a : α
⊢ s.chainHeight = 0 ↔ s = ∅
state_after: no goals
tactic: rw [← not_iff_not, ← Ne, ← ENat.one_le_iff_ne_zero, one_le_chainHeight_iff,
    nonempty_iff_ne_empty]
Theorem: fderivWithin_of_mem_nhds
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 : s ∈ 𝓝 x
⊢ fderivWithin 𝕜 f s x = fderiv 𝕜 f x
state_after: no goals
tactic: rw [← fderivWithin_univ, ← univ_inter s, fderivWithin_inter h]
Theorem: AddCommGroup.modEq_iff_int_modEq
File: Mathlib/Algebra/ModEq.lean

Proof steps:
state_before: α : Type u_1
a b z : ℤ
⊢ a ≡ b [PMOD z] ↔ a ≡ b [ZMOD z]
state_after: no goals
tactic: simp [ModEq, dvd_iff_exists_eq_mul_left, Int.modEq_iff_dvd]
Theorem: LinearMap.closedEmbedding_of_injective
File: Mathlib/Topology/Algebra/Module/FiniteDimension.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : CompleteSpace 𝕜
inst✝¹² : AddCommGroup E
inst✝¹¹ : TopologicalSpace E
inst✝¹⁰ : T2Space E
inst✝⁹ : TopologicalAddGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : ContinuousSMul 𝕜 E
inst✝⁶ : AddCommGroup F
inst✝⁵ : TopologicalSpace F
inst✝⁴ : T2Space F
inst✝³ : TopologicalAddGroup F
inst✝² : Module 𝕜 F
inst✝¹ : ContinuousSMul 𝕜 F
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
g : E ≃ₗ[𝕜] ↥(range f) := LinearEquiv.ofInjective f ⋯
⊢ IsClosed (Set.range ⇑f)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : CompleteSpace 𝕜
inst✝¹² : AddCommGroup E
inst✝¹¹ : TopologicalSpace E
inst✝¹⁰ : T2Space E
inst✝⁹ : TopologicalAddGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : ContinuousSMul 𝕜 E
inst✝⁶ : AddCommGroup F
inst✝⁵ : TopologicalSpace F
inst✝⁴ : T2Space F
inst✝³ : TopologicalAddGroup F
inst✝² : Module 𝕜 F
inst✝¹ : ContinuousSMul 𝕜 F
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
g : E ≃ₗ[𝕜] ↥(range f) := LinearEquiv.ofInjective f ⋯
this : FiniteDimensional 𝕜 ↥(range f)
⊢ IsClosed (Set.range ⇑f)
tactic: haveI := f.finiteDimensional_range
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝¹⁴ : NontriviallyNormedField 𝕜
inst✝¹³ : CompleteSpace 𝕜
inst✝¹² : AddCommGroup E
inst✝¹¹ : TopologicalSpace E
inst✝¹⁰ : T2Space E
inst✝⁹ : TopologicalAddGroup E
inst✝⁸ : Module 𝕜 E
inst✝⁷ : ContinuousSMul 𝕜 E
inst✝⁶ : AddCommGroup F
inst✝⁵ : TopologicalSpace F
inst✝⁴ : T2Space F
inst✝³ : TopologicalAddGroup F
inst✝² : Module 𝕜 F
inst✝¹ : ContinuousSMul 𝕜 F
inst✝ : FiniteDimensional 𝕜 E
f : E →ₗ[𝕜] F
hf : ker f = ⊥
g : E ≃ₗ[𝕜] ↥(range f) := LinearEquiv.ofInjective f ⋯
this : FiniteDimensional 𝕜 ↥(range f)
⊢ IsClosed (Set.range ⇑f)
state_after: no goals
tactic: simpa [LinearMap.range_coe f] using f.range.closed_of_finiteDimensional
Theorem: MeasureTheory.OuterMeasure.restrict_trim
File: Mathlib/MeasureTheory/OuterMeasure/Induced.lean

Proof steps:
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
⊢ ((restrict s) μ).trim = (restrict s) μ.trim
state_after: case refine_1
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ((restrict s) μ).trim t ≤ ((restrict s) μ.trim) t

case refine_2
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t : Set α
ht : MeasurableSet t
⊢ ((restrict s) μ.trim) t ≤ ((restrict s) μ) t
tactic: refine le_antisymm (fun t => ?_) (le_trim_iff.2 fun t ht => ?_)
Theorem: Set.eqOn_singleton
File: Mathlib/Data/Set/Function.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
⊢ EqOn f₁ f₂ {a} ↔ f₁ a = f₂ a
state_after: no goals
tactic: simp [Set.EqOn]
Theorem: Surreal.Multiplication.ih1_swap
File: Mathlib/SetTheory/Surreal/Multiplication.lean

Proof steps:
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih : ∀ (a : Args), ArgsRel a (Args.P1 x y) → P124 a
⊢ ∀ (a : Args), ArgsRel a (Args.P1 y x) → P124 a
state_after: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih :
  ∀ (a : Args),
    TransGen (CutExpand IsOption)
        (match a with
        | Args.P1 x y => {y, x}
        | Args.P24 x₁ x₂ y => {x₁, y, x₂})
        {y, x} →
      P124 a
⊢ ∀ (a : Args),
    TransGen (CutExpand IsOption)
        (match a with
        | Args.P1 x y => {y, x}
        | Args.P24 x₁ x₂ y => {x₁, y, x₂})
        {y, x} →
      P124 a
tactic: simp_rw [ArgsRel, InvImage, Args.toMultiset, Multiset.pair_comm] at ih ⊢
state_before: x x₁ x₂ x₃ x' y y₁ y₂ y₃ y' : PGame
ih :
  ∀ (a : Args),
    TransGen (CutExpand IsOption)
        (match a with
        | Args.P1 x y => {y, x}
        | Args.P24 x₁ x₂ y => {x₁, y, x₂})
        {y, x} →
      P124 a
⊢ ∀ (a : Args),
    TransGen (CutExpand IsOption)
        (match a with
        | Args.P1 x y => {y, x}
        | Args.P24 x₁ x₂ y => {x₁, y, x₂})
        {y, x} →
      P124 a
state_after: no goals
tactic: exact ih
Theorem: CategoryTheory.Limits.Bicones.functoriality_obj_ι
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

Proof steps:
state_before: J : Type w
C : Type uC
inst✝⁴ : Category.{uC', uC} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
F : J → C
G : C ⥤ D
inst✝ : G.PreservesZeroMorphisms
A : Bicone F
i j : J
⊢ G.map (A.ι i ≫ A.π j) = if h : i = j then eqToHom ⋯ else 0
state_after: J : Type w
C : Type uC
inst✝⁴ : Category.{uC', uC} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
F : J → C
G : C ⥤ D
inst✝ : G.PreservesZeroMorphisms
A : Bicone F
i j : J
⊢ G.map (if h : i = j then eqToHom ⋯ else 0) = if h : i = j then eqToHom ⋯ else 0
tactic: rw [A.ι_π]
state_before: J : Type w
C : Type uC
inst✝⁴ : Category.{uC', uC} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
F : J → C
G : C ⥤ D
inst✝ : G.PreservesZeroMorphisms
A : Bicone F
i j : J
⊢ G.map (if h : i = j then eqToHom ⋯ else 0) = if h : i = j then eqToHom ⋯ else 0
state_after: no goals
tactic: aesop_cat
state_before: J : Type w
C : Type uC
inst✝⁴ : Category.{uC', uC} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
F : J → C
G : C ⥤ D
inst✝ : G.PreservesZeroMorphisms
X✝ Y✝ : Bicone F
f : X✝ ⟶ Y✝
j : J
⊢ G.map f.hom ≫
      ((fun A => { pt := G.obj A.pt, π := fun j => G.map (A.π j), ι := fun j => G.map (A.ι j), ι_π := ⋯ }) Y✝).π j =
    ((fun A => { pt := G.obj A.pt, π := fun j => G.map (A.π j), ι := fun j => G.map (A.ι j), ι_π := ⋯ }) X✝).π j
state_after: no goals
tactic: simp [-BiconeMorphism.wπ, ← f.wπ j]
state_before: J : Type w
C : Type uC
inst✝⁴ : Category.{uC', uC} C
inst✝³ : HasZeroMorphisms C
D : Type uD
inst✝² : Category.{uD', uD} D
inst✝¹ : HasZeroMorphisms D
F : J → C
G : C ⥤ D
inst✝ : G.PreservesZeroMorphisms
X✝ Y✝ : Bicone F
f : X✝ ⟶ Y✝
j : J
⊢ ((fun A => { pt := G.obj A.pt, π := fun j => G.map (A.π j), ι := fun j => G.map (A.ι j), ι_π := ⋯ }) X✝).ι j ≫
      G.map f.hom =
    ((fun A => { pt := G.obj A.pt, π := fun j => G.map (A.π j), ι := fun j => G.map (A.ι j), ι_π := ⋯ }) Y✝).ι j
state_after: no goals
tactic: simp [-BiconeMorphism.wι, ← f.wι j]
Theorem: TopologicalSpace.NoetherianSpace.exists_finite_set_closeds_irreducible
File: Mathlib/Topology/NoetherianSpace.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
s : Closeds α
⊢ ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ s = sSup S
state_after: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
s : Closeds α
⊢ ∀ (x : Closeds α),
    (∀ y < x, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S) →
      ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ x = sSup S
tactic: apply wellFounded_closeds.induction s
state_before: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
s : Closeds α
⊢ ∀ (x : Closeds α),
    (∀ y < x, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S) →
      ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ x = sSup S
state_after: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
⊢ ∀ (x : Closeds α),
    (∀ y < x, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S) →
      ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ x = sSup S
tactic: clear s
state_before: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
⊢ ∀ (x : Closeds α),
    (∀ y < x, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S) →
      ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ x = sSup S
state_after: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
s : Closeds α
H : ∀ y < s, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S
⊢ ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ s = sSup S
tactic: intro s H
state_before: α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
s : Closeds α
H : ∀ y < s, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S
⊢ ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ s = sSup S
state_after: case inl
α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
H : ∀ y < ⊥, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S
⊢ ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ ⊥ = sSup S

case inr
α : Type u_1
β : Type u_2
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : NoetherianSpace α
s : Closeds α
H : ∀ y < s, ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ y = sSup S
h₀ : s ≠ ⊥
⊢ ∃ S, S.Finite ∧ (∀ t ∈ S, IsIrreducible ↑t) ∧ s = sSup S
tactic: rcases eq_or_ne s ⊥ with rfl | h₀
Theorem: MeasureTheory.IsSetSemiring.pairwiseDisjoint_union_diffFinset₀
File: Mathlib/MeasureTheory/SetSemiring.lean

Proof steps:
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
hC : IsSetSemiring C
hs : s ∈ C
hI : ↑I ⊆ C
h_dis : (↑I).PairwiseDisjoint id
⊢ (↑I ∪ ↑(hC.diffFinset₀ hs hI)).PairwiseDisjoint id
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
hC : IsSetSemiring C
hs : s ∈ C
hI : ↑I ⊆ C
h_dis : (↑I).PairwiseDisjoint id
⊢ (↑I).PairwiseDisjoint id ∧
    (↑(hC.diffFinset₀ hs hI)).PairwiseDisjoint id ∧
      ∀ ⦃i : Set α⦄, i ∈ ↑I → ∀ ⦃j : Set α⦄, j ∈ ↑(hC.diffFinset₀ hs hI) → i ≠ j → Disjoint (id i) (id j)
tactic: rw [pairwiseDisjoint_union]
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
hC : IsSetSemiring C
hs : s ∈ C
hI : ↑I ⊆ C
h_dis : (↑I).PairwiseDisjoint id
⊢ (↑I).PairwiseDisjoint id ∧
    (↑(hC.diffFinset₀ hs hI)).PairwiseDisjoint id ∧
      ∀ ⦃i : Set α⦄, i ∈ ↑I → ∀ ⦃j : Set α⦄, j ∈ ↑(hC.diffFinset₀ hs hI) → i ≠ j → Disjoint (id i) (id j)
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
hC : IsSetSemiring C
hs : s ∈ C
hI : ↑I ⊆ C
h_dis : (↑I).PairwiseDisjoint id
u : Set α
hu : u ∈ ↑I
v : Set α
hv : v ∈ ↑(hC.diffFinset₀ hs hI)
x✝ : u ≠ v
⊢ Disjoint (id u) (id v)
tactic: refine ⟨h_dis, hC.pairwiseDisjoint_diffFinset₀ hs hI, fun u hu v hv _ ↦ ?_⟩
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
hC : IsSetSemiring C
hs : s ∈ C
hI : ↑I ⊆ C
h_dis : (↑I).PairwiseDisjoint id
u : Set α
hu : u ∈ ↑I
v : Set α
hv : v ∈ ↑(hC.diffFinset₀ hs hI)
x✝ : u ≠ v
⊢ Disjoint (id u) (id v)
state_after: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
hC : IsSetSemiring C
hs : s ∈ C
hI : ↑I ⊆ C
h_dis : (↑I).PairwiseDisjoint id
u : Set α
hu : u ∈ ↑I
v : Set α
hv : v ∈ ↑(hC.diffFinset₀ hs hI)
x✝ : u ≠ v
⊢ Disjoint u v
tactic: simp_rw [id]
state_before: α : Type u_1
C : Set (Set α)
s t : Set α
I : Finset (Set α)
hC : IsSetSemiring C
hs : s ∈ C
hI : ↑I ⊆ C
h_dis : (↑I).PairwiseDisjoint id
u : Set α
hu : u ∈ ↑I
v : Set α
hv : v ∈ ↑(hC.diffFinset₀ hs hI)
x✝ : u ≠ v
⊢ Disjoint u v
state_after: no goals
tactic: exact disjoint_of_subset (subset_sUnion_of_mem hu) (subset_sUnion_of_mem hv)
    (hC.disjoint_sUnion_diffFinset₀ hs hI)
Theorem: ProbabilityTheory.isCondKernelCDF_condCDF
File: Mathlib/Probability/Kernel/Disintegration/CondCdf.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
⊢ IsCondKernelCDF (fun p => condCDF ρ p.2) (Kernel.const Unit ρ) (Kernel.const Unit ρ.fst)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
⊢ IsCondKernelCDF (fun p => stieltjesOfMeasurableRat (fun p r => (preCDF ρ r p.2).toReal) ⋯ ((), p.2))
    (Kernel.const Unit ρ) (Kernel.const Unit ρ.fst)
tactic: simp_rw [condCDF_eq_stieltjesOfMeasurableRat_unit_prod ρ]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
inst✝ : IsFiniteMeasure ρ
⊢ IsCondKernelCDF (fun p => stieltjesOfMeasurableRat (fun p r => (preCDF ρ r p.2).toReal) ⋯ ((), p.2))
    (Kernel.const Unit ρ) (Kernel.const Unit ρ.fst)
state_after: no goals
tactic: exact isCondKernelCDF_stieltjesOfMeasurableRat (isRatCondKernelCDF_preCDF ρ)
Theorem: Finset.sum_Ico_Ico_comm'
File: Mathlib/Algebra/BigOperators/Intervals.lean

Proof steps:
state_before: α : Type u_1
M✝ : Type u_2
inst✝¹ : CommMonoid M✝
s₂ s₁ s : Finset α
a✝ : α
g f✝ : α → M✝
M : Type u_3
inst✝ : AddCommMonoid M
a b : ℕ
f : ℕ → ℕ → M
⊢ ∑ i ∈ Ico a b, ∑ j ∈ Ico (i + 1) b, f i j = ∑ j ∈ Ico a b, ∑ i ∈ Ico a j, f i j
state_after: α : Type u_1
M✝ : Type u_2
inst✝¹ : CommMonoid M✝
s₂ s₁ s : Finset α
a✝ : α
g f✝ : α → M✝
M : Type u_3
inst✝ : AddCommMonoid M
a b : ℕ
f : ℕ → ℕ → M
⊢ ∑ x ∈ (Ico a b).sigma fun i => Ico (i + 1) b, f x.fst x.snd = ∑ x ∈ (Ico a b).sigma (Ico a), f x.snd x.fst
tactic: rw [Finset.sum_sigma', Finset.sum_sigma']
state_before: α : Type u_1
M✝ : Type u_2
inst✝¹ : CommMonoid M✝
s₂ s₁ s : Finset α
a✝ : α
g f✝ : α → M✝
M : Type u_3
inst✝ : AddCommMonoid M
a b : ℕ
f : ℕ → ℕ → M
⊢ ∑ x ∈ (Ico a b).sigma fun i => Ico (i + 1) b, f x.fst x.snd = ∑ x ∈ (Ico a b).sigma (Ico a), f x.snd x.fst
state_after: no goals
tactic: refine sum_nbij' (fun x ↦ ⟨x.2, x.1⟩) (fun x ↦ ⟨x.2, x.1⟩) ?_ ?_ (fun _ _ ↦ rfl) (fun _ _ ↦ rfl)
    (fun _ _ ↦ rfl) <;>
  simp only [Finset.mem_Ico, Sigma.forall, Finset.mem_sigma] <;>
  rintro a b ⟨⟨h₁, h₂⟩, ⟨h₃, h₄⟩⟩ <;>
  omega
Theorem: Equiv.Perm.toList_get_zero
File: Mathlib/GroupTheory/Perm/Cycle/Concrete.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p : Perm α
x : α
h : x ∈ p.support
⊢ (p.toList x).get ⟨0, ⋯⟩ = x
state_after: no goals
tactic: simp [toList]
Theorem: nhds_le_of_le
File: Mathlib/Topology/Basic.lean

Proof steps:
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
f : Filter X
h : x ∈ s
o : IsOpen s
sf : 𝓟 s ≤ f
⊢ 𝓝 x ≤ f
state_after: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
f : Filter X
h : x ∈ s
o : IsOpen s
sf : 𝓟 s ≤ f
⊢ ⨅ s ∈ {s | x ∈ s ∧ IsOpen s}, 𝓟 s ≤ f
tactic: rw [nhds_def]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
f : Filter X
h : x ∈ s
o : IsOpen s
sf : 𝓟 s ≤ f
⊢ ⨅ s ∈ {s | x ∈ s ∧ IsOpen s}, 𝓟 s ≤ f
state_after: no goals
tactic: exact iInf₂_le_of_le s ⟨h, o⟩ sf