ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: NormedField.punctured_nhds_neBot
File: Mathlib/Analysis/Normed/Field/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
⊢ (𝓝[≠] x).NeBot
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
⊢ ∀ ε > 0, ∃ b ∈ {x}ᶜ, dist x b < ε
tactic: rw [← mem_closure_iff_nhdsWithin_neBot, Metric.mem_closure_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
⊢ ∀ ε > 0, ∃ b ∈ {x}ᶜ, dist x b < ε
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε
tactic: rintro ε ε0
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε
tactic: rcases exists_norm_lt α ε0 with ⟨b, hb0, hbε⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ ∃ b ∈ {x}ᶜ, dist x b < ε
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ dist x (x + b) < ε
tactic: refine ⟨x + b, mt (Set.mem_singleton_iff.trans add_right_eq_self).1 <| norm_pos_iff.1 hb0, ?_⟩
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
inst✝ : NontriviallyNormedField α
x : α
ε : ℝ
ε0 : ε > 0
b : α
hb0 : 0 < ‖b‖
hbε : ‖b‖ < ε
⊢ dist x (x + b) < ε
state_after: no goals
tactic: rwa [dist_comm, dist_eq_norm, add_sub_cancel_left]
Theorem: List.tendsto_cons
File: Mathlib/Topology/List.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
l : List α
⊢ Tendsto (fun p => p.1 :: p.2) (𝓝 a ×ˢ 𝓝 l) (𝓝 (a :: l))
state_after: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
l : List α
⊢ (Filter.map (fun a b => (a, b).1 :: (a, b).2) (𝓝 a)).seq (𝓝 l) ≤ Seq.seq (cons <$> 𝓝 a) fun x => 𝓝 l
tactic: rw [nhds_cons, Tendsto, Filter.map_prod]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
a : α
l : List α
⊢ (Filter.map (fun a b => (a, b).1 :: (a, b).2) (𝓝 a)).seq (𝓝 l) ≤ Seq.seq (cons <$> 𝓝 a) fun x => 𝓝 l
state_after: no goals
tactic: exact le_rfl
Theorem: sub_sq'
File: Mathlib/Algebra/Ring/Commute.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : CommRing R
a b : R
⊢ (a - b) ^ 2 = a ^ 2 + b ^ 2 - 2 * a * b
state_after: no goals
tactic: rw [sub_eq_add_neg, add_sq', neg_sq, mul_neg, ← sub_eq_add_neg]
Theorem: Batteries.RBNode.reverse_balance2
File: .lake/packages/batteries/Batteries/Data/RBMap/WF.lean

Proof steps:
state_before: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (l.balance2 v r).reverse = r.reverse.balance1 v l.reverse
state_after: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (l.balance2 v r).reverse = (r.reverse.balance1 v l.reverse).reverse.reverse
tactic: refine Eq.trans ?_ (reverse_reverse _)
state_before: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (l.balance2 v r).reverse = (r.reverse.balance1 v l.reverse).reverse.reverse
state_after: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (l.balance2 v r).reverse = (l.reverse.reverse.balance2 v r.reverse.reverse).reverse
tactic: rw [reverse_balance1]
state_before: α : Type u_1
l : RBNode α
v : α
r : RBNode α
⊢ (l.balance2 v r).reverse = (l.reverse.reverse.balance2 v r.reverse.reverse).reverse
state_after: no goals
tactic: simp
Theorem: List.fst_lt_add_of_mem_enumFrom
File: Mathlib/Data/List/Enum.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
x : ℕ × α
n : ℕ
l : List α
h : x ∈ enumFrom n l
⊢ x.1 < n + l.length
state_after: case intro
α : Type u_1
β : Type u_2
n : ℕ
l : List α
i : Fin (enumFrom n l).length
h : (enumFrom n l).get i ∈ enumFrom n l
⊢ ((enumFrom n l).get i).1 < n + l.length
tactic: rcases mem_iff_get.1 h with ⟨i, rfl⟩
state_before: case intro
α : Type u_1
β : Type u_2
n : ℕ
l : List α
i : Fin (enumFrom n l).length
h : (enumFrom n l).get i ∈ enumFrom n l
⊢ ((enumFrom n l).get i).1 < n + l.length
state_after: no goals
tactic: simpa using i.is_lt
Theorem: Polynomial.Monic.natDegree_pow
File: Mathlib/Algebra/Polynomial/Monic.lean

Proof steps:
state_before: R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
⊢ (p ^ n).natDegree = n * p.natDegree
state_after: case zero
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
⊢ (p ^ 0).natDegree = 0 * p.natDegree

case succ
R : Type u
S : Type v
a b : R
m n✝ : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hp : p.Monic
n : ℕ
hn : (p ^ n).natDegree = n * p.natDegree
⊢ (p ^ (n + 1)).natDegree = (n + 1) * p.natDegree
tactic: induction' n with n hn
Theorem: CochainComplex.mappingCone.lift_f
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{?u.225048, u_1} C
inst✝³ : Category.{?u.225052, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
α : Cocycle K F 1
β : Cochain K G 0
eq : δ 0 1 β + (↑α).comp (Cochain.ofHom φ) ⋯ = 0
p q : ℤ
hpq : p + 1 = q
⊢ q + -1 = p
state_after: no goals
tactic: omega
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.225052, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
α : Cocycle K F 1
β : Cochain K G 0
eq : δ 0 1 β + (↑α).comp (Cochain.ofHom φ) ⋯ = 0
p q : ℤ
hpq : p + 1 = q
⊢ (lift φ α β eq).f p = (↑α).v p q hpq ≫ (inl φ).v q p ⋯ + β.v p p ⋯ ≫ (inr φ).f p
state_after: no goals
tactic: simp [ext_to_iff _ _ _ hpq]
Theorem: CategoryTheory.Presieve.FamilyOfElements.IsAmalgamation.compPresheafMap
File: Mathlib/CategoryTheory/Sites/IsSheafFor.lean

Proof steps:
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : P.obj (op X)
f : P ⟶ Q
h : x.IsAmalgamation t
⊢ (FamilyOfElements.compPresheafMap f x).IsAmalgamation (f.app (op X) t)
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : P.obj (op X)
f : P ⟶ Q
h : x.IsAmalgamation t
Y : C
g : Y ⟶ X
hg : R g
⊢ Q.map g.op (f.app (op X) t) = FamilyOfElements.compPresheafMap f x g hg
tactic: intro Y g hg
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : P.obj (op X)
f : P ⟶ Q
h : x.IsAmalgamation t
Y : C
g : Y ⟶ X
hg : R g
⊢ Q.map g.op (f.app (op X) t) = FamilyOfElements.compPresheafMap f x g hg
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : P.obj (op X)
f : P ⟶ Q
h : x.IsAmalgamation t
Y : C
g : Y ⟶ X
hg : R g
⊢ Q.map g.op (f.app (op X) t) = f.app (op Y) (x g hg)
tactic: dsimp [FamilyOfElements.compPresheafMap]
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : P.obj (op X)
f : P ⟶ Q
h : x.IsAmalgamation t
Y : C
g : Y ⟶ X
hg : R g
⊢ Q.map g.op (f.app (op X) t) = f.app (op Y) (x g hg)
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : P.obj (op X)
f : P ⟶ Q
h : x.IsAmalgamation t
Y : C
g : Y ⟶ X
hg : R g
⊢ (f.app (op X) ≫ Q.map g.op) t = f.app (op Y) (x g hg)
tactic: change (f.app _ ≫ Q.map _) _ = _
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : P.obj (op X)
f : P ⟶ Q
h : x.IsAmalgamation t
Y : C
g : Y ⟶ X
hg : R g
⊢ (f.app (op X) ≫ Q.map g.op) t = f.app (op Y) (x g hg)
state_after: no goals
tactic: rw [← f.naturality, types_comp_apply, h g hg]
Theorem: tsum_star
File: Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : StarAddMonoid α
inst✝¹ : ContinuousStar α
f : β → α
a : α
inst✝ : T2Space α
⊢ star (∑' (b : β), f b) = ∑' (b : β), star (f b)
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : StarAddMonoid α
inst✝¹ : ContinuousStar α
f : β → α
a : α
inst✝ : T2Space α
hf : Summable f
⊢ star (∑' (b : β), f b) = ∑' (b : β), star (f b)

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : StarAddMonoid α
inst✝¹ : ContinuousStar α
f : β → α
a : α
inst✝ : T2Space α
hf : ¬Summable f
⊢ star (∑' (b : β), f b) = ∑' (b : β), star (f b)
tactic: by_cases hf : Summable f
Theorem: Finset.pimage_union
File: Mathlib/Data/Finset/PImage.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝³ : DecidableEq β
f g : α →. β
inst✝² : (x : α) → Decidable (f x).Dom
inst✝¹ : (x : α) → Decidable (g x).Dom
s t : Finset α
b : β
inst✝ : DecidableEq α
⊢ ↑(pimage f (s ∪ t)) = ↑(pimage f s ∪ pimage f t)
state_after: no goals
tactic: simp only [coe_pimage, coe_union, ← PFun.image_union]
Theorem: MeasureTheory.IsSetAlgebra.generateSetAlgebra_subset
File: Mathlib/MeasureTheory/SetAlgebra.lean

Proof steps:
state_before: α : Type u_1
𝒜 : Set (Set α)
s t : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
hℬ : IsSetAlgebra ℬ
⊢ generateSetAlgebra 𝒜 ⊆ ℬ
state_after: α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
hℬ : IsSetAlgebra ℬ
s : Set α
hs : s ∈ generateSetAlgebra 𝒜
⊢ s ∈ ℬ
tactic: intro s hs
state_before: α : Type u_1
𝒜 : Set (Set α)
s✝ t : Set α
ℬ : Set (Set α)
h : 𝒜 ⊆ ℬ
hℬ : IsSetAlgebra ℬ
s : Set α
hs : s ∈ generateSetAlgebra 𝒜
⊢ s ∈ ℬ
state_after: no goals
tactic: induction hs with
  | base t t_mem => exact h t_mem
  | empty => exact hℬ.empty_mem
  | compl t _ t_mem => exact hℬ.compl_mem t_mem
  | union t u _ _ t_mem u_mem => exact hℬ.union_mem t_mem u_mem
Theorem: MeasureTheory.OuterMeasure.mkMetric'.trim_pre
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

Proof steps:
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r✝ : ℝ≥0∞
μ : OuterMeasure X
s : Set X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
m : Set X → ℝ≥0∞
hcl : ∀ (s : Set X), m (closure s) = m s
r : ℝ≥0∞
⊢ (pre m r).trim = pre m r
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r✝ : ℝ≥0∞
μ : OuterMeasure X
s✝ : Set X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
m : Set X → ℝ≥0∞
hcl : ∀ (s : Set X), m (closure s) = m s
r : ℝ≥0∞
s : Set X
hs : diam s ≤ r
⊢ (pre m r).trim s ≤ m s
tactic: refine le_antisymm (le_pre.2 fun s hs => ?_) (le_trim _)
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r✝ : ℝ≥0∞
μ : OuterMeasure X
s✝ : Set X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
m : Set X → ℝ≥0∞
hcl : ∀ (s : Set X), m (closure s) = m s
r : ℝ≥0∞
s : Set X
hs : diam s ≤ r
⊢ (pre m r).trim s ≤ m s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r✝ : ℝ≥0∞
μ : OuterMeasure X
s✝ : Set X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
m : Set X → ℝ≥0∞
hcl : ∀ (s : Set X), m (closure s) = m s
r : ℝ≥0∞
s : Set X
hs : diam s ≤ r
⊢ ⨅ t, ⨅ (_ : s ⊆ t), ⨅ (_ : MeasurableSet t), (pre m r) t ≤ m s
tactic: rw [trim_eq_iInf]
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r✝ : ℝ≥0∞
μ : OuterMeasure X
s✝ : Set X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
m : Set X → ℝ≥0∞
hcl : ∀ (s : Set X), m (closure s) = m s
r : ℝ≥0∞
s : Set X
hs : diam s ≤ r
⊢ ⨅ t, ⨅ (_ : s ⊆ t), ⨅ (_ : MeasurableSet t), (pre m r) t ≤ m s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r✝ : ℝ≥0∞
μ : OuterMeasure X
s✝ : Set X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
m : Set X → ℝ≥0∞
hcl : ∀ (s : Set X), m (closure s) = m s
r : ℝ≥0∞
s : Set X
hs : diam s ≤ r
⊢ diam (closure s) ≤ r
tactic: refine iInf_le_of_le (closure s) <| iInf_le_of_le subset_closure <|
    iInf_le_of_le measurableSet_closure ((pre_le ?_).trans_eq (hcl _))
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝³ : EMetricSpace X
inst✝² : EMetricSpace Y
m✝ : Set X → ℝ≥0∞
r✝ : ℝ≥0∞
μ : OuterMeasure X
s✝ : Set X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
m : Set X → ℝ≥0∞
hcl : ∀ (s : Set X), m (closure s) = m s
r : ℝ≥0∞
s : Set X
hs : diam s ≤ r
⊢ diam (closure s) ≤ r
state_after: no goals
tactic: rwa [diam_closure]
Theorem: CategoryTheory.Comma.eqToHom_right
File: Mathlib/CategoryTheory/Comma/Basic.lean

Proof steps:
state_before: A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.17862, u_1} A'
inst✝¹ : Category.{?u.17866, u_2} B'
inst✝ : Category.{?u.17870, u_3} T'
L : A ⥤ T
R : B ⥤ T
X Y : Comma L R
H : X = Y
⊢ X.right = Y.right
state_after: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.17862, u_1} A'
inst✝¹ : Category.{?u.17866, u_2} B'
inst✝ : Category.{?u.17870, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ X.right = X.right
tactic: cases H
state_before: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.17862, u_1} A'
inst✝¹ : Category.{?u.17866, u_2} B'
inst✝ : Category.{?u.17870, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ X.right = X.right
state_after: no goals
tactic: rfl
state_before: A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.17862, u_1} A'
inst✝¹ : Category.{?u.17866, u_2} B'
inst✝ : Category.{?u.17870, u_3} T'
L : A ⥤ T
R : B ⥤ T
X Y : Comma L R
H : X = Y
⊢ (eqToHom H).right = eqToHom ⋯
state_after: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.17862, u_1} A'
inst✝¹ : Category.{?u.17866, u_2} B'
inst✝ : Category.{?u.17870, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ (eqToHom ⋯).right = eqToHom ⋯
tactic: cases H
state_before: case refl
A : Type u₁
inst✝⁵ : Category.{v₁, u₁} A
B : Type u₂
inst✝⁴ : Category.{v₂, u₂} B
T : Type u₃
inst✝³ : Category.{v₃, u₃} T
A' : Type u_1
B' : Type u_2
T' : Type u_3
inst✝² : Category.{?u.17862, u_1} A'
inst✝¹ : Category.{?u.17866, u_2} B'
inst✝ : Category.{?u.17870, u_3} T'
L : A ⥤ T
R : B ⥤ T
X : Comma L R
⊢ (eqToHom ⋯).right = eqToHom ⋯
state_after: no goals
tactic: rfl
Theorem: Int.gcd_self
File: Mathlib/Data/Int/GCD.lean

Proof steps:
state_before: i : ℤ
⊢ i.gcd i = i.natAbs
state_after: no goals
tactic: simp [gcd]
Theorem: ENNReal.essSup_liminf_le
File: Mathlib/MeasureTheory/Function/EssSup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
f✝ : α → ℝ≥0∞
ι : Type u_3
inst✝¹ : Countable ι
inst✝ : LinearOrder ι
f : ι → α → ℝ≥0∞
⊢ essSup (fun x => liminf (fun n => f n x) atTop) μ ≤ liminf (fun n => essSup (fun x => f n x) μ) atTop
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
f✝ : α → ℝ≥0∞
ι : Type u_3
inst✝¹ : Countable ι
inst✝ : LinearOrder ι
f : ι → α → ℝ≥0∞
⊢ limsup (fun x => liminf (fun n => f n x) atTop) (ae μ) ≤ liminf (fun n => limsup (fun x => f n x) (ae μ)) atTop
tactic: simp_rw [essSup]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
f✝ : α → ℝ≥0∞
ι : Type u_3
inst✝¹ : Countable ι
inst✝ : LinearOrder ι
f : ι → α → ℝ≥0∞
⊢ limsup (fun x => liminf (fun n => f n x) atTop) (ae μ) ≤ liminf (fun n => limsup (fun x => f n x) (ae μ)) atTop
state_after: no goals
tactic: exact ENNReal.limsup_liminf_le_liminf_limsup fun a b => f b a
Theorem: AddAction.continuousVAdd_compHom
File: Mathlib/Topology/Algebra/MulAction.lean

Proof steps:
state_before: M : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : Monoid M
inst✝³ : MulAction M X
inst✝² : ContinuousSMul M X
N : Type u_5
inst✝¹ : TopologicalSpace N
inst✝ : Monoid N
f : N →* M
hf : Continuous ⇑f
⊢ ContinuousSMul N X
state_after: M : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : Monoid M
inst✝³ : MulAction M X
inst✝² : ContinuousSMul M X
N : Type u_5
inst✝¹ : TopologicalSpace N
inst✝ : Monoid N
f : N →* M
hf : Continuous ⇑f
x✝ : MulAction N X := compHom X f
⊢ ContinuousSMul N X
tactic: let _ : MulAction N X := MulAction.compHom _ f
state_before: M : Type u_1
X : Type u_2
Y : Type u_3
α : Type u_4
inst✝⁷ : TopologicalSpace M
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y
inst✝⁴ : Monoid M
inst✝³ : MulAction M X
inst✝² : ContinuousSMul M X
N : Type u_5
inst✝¹ : TopologicalSpace N
inst✝ : Monoid N
f : N →* M
hf : Continuous ⇑f
x✝ : MulAction N X := compHom X f
⊢ ContinuousSMul N X
state_after: no goals
tactic: exact ⟨(hf.comp continuous_fst).smul continuous_snd⟩
Theorem: RatFunc.num_algebraMap
File: Mathlib/FieldTheory/RatFunc/Basic.lean

Proof steps:
state_before: K : Type u
inst✝ : Field K
p : K[X]
⊢ ((algebraMap K[X] (RatFunc K)) p).num = p
state_after: no goals
tactic: convert num_div p 1 <;> simp
Theorem: Finset.erase_sdiff_comm
File: Mathlib/Data/Finset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t✝ u v : Finset α
a✝ b : α
s t : Finset α
a : α
⊢ s.erase a \ t = (s \ t).erase a
state_after: no goals
tactic: simp_rw [erase_eq, sdiff_right_comm]
Theorem: MeasureTheory.hasPDF_of_pdf_ne_zero
File: Mathlib/Probability/Density.lean

Proof steps:
state_before: Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
X : Ω → E
hac : map X ℙ ≪ μ
hpdf : ¬pdf X ℙ μ =ᶠ[ae μ] 0
⊢ HasPDF X ℙ μ
state_after: case refine_1
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
X : Ω → E
hac : map X ℙ ≪ μ
hpdf : ¬pdf X ℙ μ =ᶠ[ae μ] 0
⊢ AEMeasurable X ℙ

case refine_2
Ω : Type u_1
E : Type u_2
inst✝ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
X : Ω → E
hac : map X ℙ ≪ μ
hpdf : ¬pdf X ℙ μ =ᶠ[ae μ] 0
⊢ (map X ℙ).HaveLebesgueDecomposition μ
tactic: refine ⟨?_, ?_, hac⟩
Theorem: Finsupp.card_support_eq_one'
File: Mathlib/Data/Finsupp/Defs.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
a a' : α
b : M
f : α →₀ M
⊢ f.support.card = 1 ↔ ∃ a b, b ≠ 0 ∧ f = single a b
state_after: no goals
tactic: simp only [card_eq_one, support_eq_singleton']
Theorem: IsPrimitiveRoot.eq_pow_of_mem_rootsOfUnity'
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
⊢ ∃ i < k, ζ ^ i = ↑ξ
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
⊢ ∃ i < k, ζ ^ i = ↑ξ
tactic: have hζ' : IsPrimitiveRoot (hζ.isUnit hk).unit (⟨k, hk⟩ : ℕ+) := isUnit_unit hk hζ
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
⊢ ∃ i < k, ζ ^ i = ↑ξ
state_after: case intro.intro
M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
i : ℕ
hi₁ : i < ↑⟨k, hk⟩
hi₂ : ⋯.unit ^ i = ξ
⊢ ∃ i < k, ζ ^ i = ↑ξ
tactic: obtain ⟨i, hi₁, hi₂⟩ := hζ'.eq_pow_of_mem_rootsOfUnity hξ
state_before: case intro.intro
M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝⁴ : CommMonoid M
inst✝³ : CommMonoid N
inst✝² : DivisionCommMonoid G
k✝ l : ℕ
inst✝¹ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k✝
inst✝ : IsDomain R
k : ℕ
hk : 0 < k
ζ : R
hζ : IsPrimitiveRoot ζ k
ξ : Rˣ
hξ : ξ ∈ rootsOfUnity ⟨k, hk⟩ R
hζ' : IsPrimitiveRoot ⋯.unit ↑⟨k, hk⟩
i : ℕ
hi₁ : i < ↑⟨k, hk⟩
hi₂ : ⋯.unit ^ i = ξ
⊢ ∃ i < k, ζ ^ i = ↑ξ
state_after: no goals
tactic: simpa only [Units.val_pow_eq_pow_val, IsUnit.unit_spec]
    using ⟨i, hi₁, congrArg ((↑) : Rˣ → R) hi₂⟩
Theorem: Set.image_fintype_sum_pi
File: Mathlib/Data/Set/Pointwise/BigOperators.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
F : Type u_4
inst✝⁴ : FunLike F α β
inst✝³ : CommMonoid α
inst✝² : CommMonoid β
inst✝¹ : MonoidHomClass F α β
inst✝ : Fintype ι
S : ι → Set α
⊢ (fun f => ∏ i : ι, f i) '' univ.pi S = ∏ i : ι, S i
state_after: no goals
tactic: simpa only [Finset.coe_univ] using image_finset_prod_pi Finset.univ S
Theorem: Finset.min'_lt_max'_of_card
File: Mathlib/Data/Finset/Lattice.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s : Finset α
H : s.Nonempty
x : α
h₂ : 1 < s.card
⊢ 0 < s.card
state_after: no goals
tactic: omega
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s : Finset α
H : s.Nonempty
x : α
h₂ : 1 < s.card
⊢ 0 < s.card
state_after: no goals
tactic: omega
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s : Finset α
H : s.Nonempty
x : α
h₂ : 1 < s.card
⊢ s.min' ⋯ < s.max' ⋯
state_after: case intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s : Finset α
H : s.Nonempty
x : α
h₂ : 1 < s.card
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : a ≠ b
⊢ s.min' ⋯ < s.max' ⋯
tactic: rcases one_lt_card.1 h₂ with ⟨a, ha, b, hb, hab⟩
state_before: case intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
ι : Type u_5
κ : Type u_6
inst✝ : LinearOrder α
s : Finset α
H : s.Nonempty
x : α
h₂ : 1 < s.card
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : a ≠ b
⊢ s.min' ⋯ < s.max' ⋯
state_after: no goals
tactic: exact s.min'_lt_max' ha hb hab