ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: VectorFourier.norm_fourierIntegral_le_integral_norm
File: Mathlib/Analysis/Fourier/FourierTransform.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝¹¹ : CommRing 𝕜
V : Type u_2
inst✝¹⁰ : AddCommGroup V
inst✝⁹ : Module 𝕜 V
inst✝⁸ : MeasurableSpace V
W : Type u_3
inst✝⁷ : AddCommGroup W
inst✝⁶ : Module 𝕜 W
E : Type u_4
F : Type u_5
G : Type u_6
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℂ F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℂ G
e : AddChar 𝕜 ↥𝕊
μ : Measure V
L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜
f : V → E
w : W
⊢ ‖fourierIntegral e μ L f w‖ ≤ ∫ (v : V), ‖f v‖ ∂μ
state_after: 𝕜 : Type u_1
inst✝¹¹ : CommRing 𝕜
V : Type u_2
inst✝¹⁰ : AddCommGroup V
inst✝⁹ : Module 𝕜 V
inst✝⁸ : MeasurableSpace V
W : Type u_3
inst✝⁷ : AddCommGroup W
inst✝⁶ : Module 𝕜 W
E : Type u_4
F : Type u_5
G : Type u_6
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℂ F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℂ G
e : AddChar 𝕜 ↥𝕊
μ : Measure V
L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜
f : V → E
w : W
⊢ ∫ (a : V), ‖e (-(L a) w) • f a‖ ∂μ = ∫ (v : V), ‖f v‖ ∂μ
tactic: refine (norm_integral_le_integral_norm _).trans (le_of_eq ?_)
state_before: 𝕜 : Type u_1
inst✝¹¹ : CommRing 𝕜
V : Type u_2
inst✝¹⁰ : AddCommGroup V
inst✝⁹ : Module 𝕜 V
inst✝⁸ : MeasurableSpace V
W : Type u_3
inst✝⁷ : AddCommGroup W
inst✝⁶ : Module 𝕜 W
E : Type u_4
F : Type u_5
G : Type u_6
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℂ F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℂ G
e : AddChar 𝕜 ↥𝕊
μ : Measure V
L : V →ₗ[𝕜] W →ₗ[𝕜] 𝕜
f : V → E
w : W
⊢ ∫ (a : V), ‖e (-(L a) w) • f a‖ ∂μ = ∫ (v : V), ‖f v‖ ∂μ
state_after: no goals
tactic: simp_rw [norm_circle_smul]
Theorem: Multiset.disjoint_toFinset
File: Mathlib/Data/Finset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
m1 m2 : Multiset α
⊢ _root_.Disjoint m1.toFinset m2.toFinset ↔ m1.Disjoint m2
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
m1 m2 : Multiset α
⊢ (∀ a ∈ m1.toFinset, ∀ b ∈ m2.toFinset, a ≠ b) ↔ m1.Disjoint m2
tactic: rw [Finset.disjoint_iff_ne]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
m1 m2 : Multiset α
⊢ (∀ a ∈ m1.toFinset, ∀ b ∈ m2.toFinset, a ≠ b) ↔ m1.Disjoint m2
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
m1 m2 : Multiset α
h : ∀ a ∈ m1.toFinset, ∀ b ∈ m2.toFinset, a ≠ b
a : α
ha1 : a ∈ m1
ha2 : a ∈ m2
⊢ False

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
m1 m2 : Multiset α
⊢ m1.Disjoint m2 → ∀ a ∈ m1.toFinset, ∀ b ∈ m2.toFinset, a ≠ b
tactic: refine ⟨fun h a ha1 ha2 => ?_, ?_⟩
Theorem: IsClosedMap.mapClusterPt_iff_lift'_closure
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
F : Filter X
f_closed : IsClosedMap f
f_cont : Continuous f
y : Y
⊢ MapClusterPt y F f ↔ (F.lift' closure ⊓ 𝓟 (f ⁻¹' {y})).NeBot
state_after: no goals
tactic: rw [MapClusterPt, clusterPt_iff_lift'_closure', f_closed.lift'_closure_map_eq f_cont,
      ← comap_principal, ← map_neBot_iff f, Filter.push_pull, principal_singleton]
Theorem: TopologicalSpace.noetherianSpace_iff_opens
File: Mathlib/Topology/NoetherianSpace.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
⊢ NoetherianSpace α ↔ ∀ (s : Opens α), IsCompact ↑s
state_after: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
⊢ (∀ (k : Opens α), CompleteLattice.IsCompactElement k) ↔ ∀ (s : Opens α), IsCompact ↑s
tactic: rw [noetherianSpace_iff, CompleteLattice.wellFounded_iff_isSupFiniteCompact,
    CompleteLattice.isSupFiniteCompact_iff_all_elements_compact]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : TopologicalSpace α
inst✝ : TopologicalSpace β
⊢ (∀ (k : Opens α), CompleteLattice.IsCompactElement k) ↔ ∀ (s : Opens α), IsCompact ↑s
state_after: no goals
tactic: exact forall_congr' Opens.isCompactElement_iff
Theorem: Continuous.div_const
File: Mathlib/Topology/Algebra/GroupWithZero.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G₀ : Type u_3
inst✝³ : DivInvMonoid G₀
inst✝² : TopologicalSpace G₀
inst✝¹ : ContinuousMul G₀
f : α → G₀
s : Set α
l : Filter α
inst✝ : TopologicalSpace α
hf : Continuous f
y : G₀
⊢ Continuous fun x => f x / y
state_after: no goals
tactic: simpa only [div_eq_mul_inv] using hf.mul continuous_const
Theorem: MeasureTheory.Measure.mkMetric_le_liminf_sum
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
inst✝¹ : MeasurableSpace X
inst✝ : BorelSpace X
β : Type u_4
ι : β → Type u_5
hι : (n : β) → Fintype (ι n)
s : Set X
l : Filter β
r : β → ℝ≥0∞
hr : Tendsto r l (𝓝 0)
t : (n : β) → ι n → Set X
ht : ∀ᶠ (n : β) in l, ∀ (i : ι n), diam (t n i) ≤ r n
hst : ∀ᶠ (n : β) in l, s ⊆ ⋃ i, t n i
m : ℝ≥0∞ → ℝ≥0∞
⊢ (mkMetric m) s ≤ liminf (fun n => ∑ i : ι n, m (diam (t n i))) l
state_after: no goals
tactic: simpa only [tsum_fintype] using mkMetric_le_liminf_tsum s r hr t ht hst m
Theorem: CategoryTheory.Limits.Bicone.toBinaryBiconeFunctor_obj_inl
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

Proof steps:
state_before: J : Type w
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
D : Type uD
inst✝¹ : Category.{uD', uD} D
inst✝ : HasZeroMorphisms D
X Y : C
b : Bicone (pairFunction X Y)
⊢ b.ι WalkingPair.left ≫ b.π WalkingPair.left = 𝟙 X
state_after: no goals
tactic: simp [Bicone.ι_π]
state_before: J : Type w
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
D : Type uD
inst✝¹ : Category.{uD', uD} D
inst✝ : HasZeroMorphisms D
X Y : C
b : Bicone (pairFunction X Y)
⊢ b.ι WalkingPair.right ≫ b.π WalkingPair.left = 0
state_after: no goals
tactic: simp [Bicone.ι_π]
state_before: J : Type w
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
D : Type uD
inst✝¹ : Category.{uD', uD} D
inst✝ : HasZeroMorphisms D
X Y : C
b : Bicone (pairFunction X Y)
⊢ b.ι WalkingPair.left ≫ b.π WalkingPair.right = 0
state_after: no goals
tactic: simp [Bicone.ι_π]
state_before: J : Type w
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
D : Type uD
inst✝¹ : Category.{uD', uD} D
inst✝ : HasZeroMorphisms D
X Y : C
b : Bicone (pairFunction X Y)
⊢ b.ι WalkingPair.right ≫ b.π WalkingPair.right = 𝟙 Y
state_after: no goals
tactic: simp [Bicone.ι_π]
Theorem: natCast_floor_eq_intCast_floor
File: Mathlib/Algebra/Order/Floor.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
a : α
ha : 0 ≤ a
⊢ ↑⌊a⌋₊ = ↑⌊a⌋
state_after: no goals
tactic: rw [← Int.ofNat_floor_eq_floor ha, Int.cast_natCast]
Theorem: isLUB_supClosure
File: Mathlib/Order/SupClosed.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
s t : Set α
a b : α
⊢ IsLUB (supClosure s) a ↔ IsLUB s a
state_after: no goals
tactic: simp [IsLUB]
Theorem: Subgroup.bot_or_exists_ne_one
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

Proof steps:
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ H = ⊥ ∨ ∃ x ∈ H, x ≠ 1
state_after: case h.e'_2.a
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ (∃ x ∈ H, x ≠ 1) ↔ Nontrivial ↥H
tactic: convert H.bot_or_nontrivial
state_before: case h.e'_2.a
G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝³ : Group G
inst✝² : Group G'
inst✝¹ : Group G''
A : Type u_4
inst✝ : AddGroup A
H✝ K H : Subgroup G
⊢ (∃ x ∈ H, x ≠ 1) ↔ Nontrivial ↥H
state_after: no goals
tactic: rw [nontrivial_iff_exists_ne_one]
Theorem: exists_unique_eq'
File: Mathlib/Logic/Basic.lean

Proof steps:
state_before: α : Sort u_1
β : Sort u_2
p q : α → Prop
a' : α
⊢ ∃! a, a' = a
state_after: no goals
tactic: simp only [ExistsUnique, and_self, forall_eq', exists_eq']
Theorem: Real.hasDerivAt_mul_log
File: Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean

Proof steps:
state_before: x : ℝ
hx : x ≠ 0
⊢ HasDerivAt (fun x => x * log x) (log x + 1) x
state_after: x : ℝ
hx : x ≠ 0
⊢ DifferentiableAt ℝ (fun x => x * log x) x
tactic: rw [← deriv_mul_log hx, hasDerivAt_deriv_iff]
state_before: x : ℝ
hx : x ≠ 0
⊢ DifferentiableAt ℝ (fun x => x * log x) x
state_after: x : ℝ
hx : x ≠ 0
⊢ {0}ᶜ ∈ 𝓝 x
tactic: refine DifferentiableOn.differentiableAt differentiableOn_mul_log ?_
state_before: x : ℝ
hx : x ≠ 0
⊢ {0}ᶜ ∈ 𝓝 x
state_after: no goals
tactic: simp [hx]
Theorem: FractionalIdeal.div_eq_mul_inv
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
I J : FractionalIdeal A⁰ K
⊢ I / J = I * J⁻¹
state_after: case pos
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
I J : FractionalIdeal A⁰ K
hJ : J = 0
⊢ I / J = I * J⁻¹

case neg
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
I J : FractionalIdeal A⁰ K
hJ : ¬J = 0
⊢ I / J = I * J⁻¹
tactic: by_cases hJ : J = 0
state_before: case neg
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
I J : FractionalIdeal A⁰ K
hJ : ¬J = 0
⊢ I / J = I * J⁻¹
state_after: case neg.refine_1
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
I J : FractionalIdeal A⁰ K
hJ : ¬J = 0
⊢ I / J * J ≤ I * J⁻¹ * J

case neg.refine_2
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
I J : FractionalIdeal A⁰ K
hJ : ¬J = 0
⊢ I * J⁻¹ * J ≤ I
tactic: refine le_antisymm ((mul_right_le_iff hJ).mp ?_) ((le_div_iff_mul_le hJ).mpr ?_)
state_before: case neg.refine_2
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : Algebra A K
inst✝¹ : IsFractionRing A K
inst✝ : IsDedekindDomain A
I J : FractionalIdeal A⁰ K
hJ : ¬J = 0
⊢ I * J⁻¹ * J ≤ I
state_after: no goals
tactic: rw [mul_assoc, mul_comm J⁻¹, FractionalIdeal.mul_inv_cancel hJ, mul_one]
Theorem: midpoint_add_sub
File: Mathlib/LinearAlgebra/AffineSpace/Midpoint.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : Ring R
inst✝⁶ : Invertible 2
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x✝ y✝ z : P
x y : V
⊢ midpoint R (x + y) (x - y) = x
state_after: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : Ring R
inst✝⁶ : Invertible 2
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x✝ y✝ z : P
x y : V
⊢ midpoint R (x - y) (x + y) = x
tactic: rw [midpoint_comm]
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝⁷ : Ring R
inst✝⁶ : Invertible 2
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
x✝ y✝ z : P
x y : V
⊢ midpoint R (x - y) (x + y) = x
state_after: no goals
tactic: simp
Theorem: Set.image2_comm
File: Mathlib/Data/Set/NAry.lean

Proof steps:
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
f f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
g : β → α → γ
h_comm : ∀ (a : α) (b : β), f a b = g b a
⊢ image2 (fun a b => f b a) t s = image2 g t s
state_after: no goals
tactic: simp_rw [h_comm]
Theorem: Sbtw.oangle_eq_add_pi_left
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean

Proof steps:
state_before: V : Type u_1
P : Type u_2
inst✝⁴ : NormedAddCommGroup V
inst✝³ : InnerProductSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
hd2 : Fact (finrank ℝ V = 2)
inst✝ : Module.Oriented ℝ V (Fin 2)
p₁ p₁' p₂ p₃ : P
h : Sbtw ℝ p₁ p₂ p₁'
hp₃p₂ : p₃ ≠ p₂
⊢ ∡ p₁ p₂ p₃ = ∡ p₁' p₂ p₃ + ↑π
state_after: no goals
tactic: rw [← h.oangle₁₂₃_eq_pi, oangle_add_swap h.left_ne h.right_ne hp₃p₂]
Theorem: isMeagre_iff_countable_union_isNowhereDense
File: Mathlib/Topology/GDelta.lean

Proof steps:
state_before: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : Set X
⊢ IsMeagre s ↔ ∃ S, (∀ t ∈ S, IsNowhereDense t) ∧ S.Countable ∧ s ⊆ ⋃₀ S
state_after: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : Set X
⊢ (∃ x, (∀ t ∈ compl '' x, IsOpen t) ∧ (∀ t ∈ compl '' x, Dense t) ∧ (compl '' x).Countable ∧ ⋂₀ (compl '' x) ⊆ sᶜ) ↔
    ∃ S, (∀ t ∈ S, IsNowhereDense t) ∧ S.Countable ∧ s ⊆ ⋃₀ S
tactic: rw [IsMeagre, mem_residual_iff, compl_bijective.surjective.image_surjective.exists]
state_before: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : Set X
⊢ (∃ x, (∀ t ∈ compl '' x, IsOpen t) ∧ (∀ t ∈ compl '' x, Dense t) ∧ (compl '' x).Countable ∧ ⋂₀ (compl '' x) ⊆ sᶜ) ↔
    ∃ S, (∀ t ∈ S, IsNowhereDense t) ∧ S.Countable ∧ s ⊆ ⋃₀ S
state_after: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : Set X
⊢ (∃ x, (∀ ⦃x_1 : Set X⦄, x_1 ∈ x → IsClosed x_1 ∧ IsNowhereDense x_1) ∧ (compl '' x).Countable ∧ s ⊆ ⋃₀ x) ↔
    ∃ S, (∀ t ∈ S, IsNowhereDense t) ∧ S.Countable ∧ s ⊆ ⋃₀ S
tactic: simp_rw [← and_assoc, ← forall_and, forall_mem_image, ← isClosed_isNowhereDense_iff_compl,
    sInter_image, ← compl_iUnion₂, compl_subset_compl, ← sUnion_eq_biUnion, and_assoc]
state_before: X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : Set X
⊢ (∃ x, (∀ ⦃x_1 : Set X⦄, x_1 ∈ x → IsClosed x_1 ∧ IsNowhereDense x_1) ∧ (compl '' x).Countable ∧ s ⊆ ⋃₀ x) ↔
    ∃ S, (∀ t ∈ S, IsNowhereDense t) ∧ S.Countable ∧ s ⊆ ⋃₀ S
state_after: case refine_1
X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : Set X
x✝ : ∃ x, (∀ ⦃x_1 : Set X⦄, x_1 ∈ x → IsClosed x_1 ∧ IsNowhereDense x_1) ∧ (compl '' x).Countable ∧ s ⊆ ⋃₀ x
S : Set (Set X)
hS : ∀ ⦃x : Set X⦄, x ∈ S → IsClosed x ∧ IsNowhereDense x
hc : (compl '' S).Countable
hsub : s ⊆ ⋃₀ S
⊢ S.Countable

case refine_2
X✝ : Type u_1
Y : Type u_2
ι : Type u_3
ι' : Sort u_4
X : Type u_5
inst✝ : TopologicalSpace X
s : Set X
⊢ (∃ S, (∀ t ∈ S, IsNowhereDense t) ∧ S.Countable ∧ s ⊆ ⋃₀ S) →
    ∃ x, (∀ ⦃x_1 : Set X⦄, x_1 ∈ x → IsClosed x_1 ∧ IsNowhereDense x_1) ∧ (compl '' x).Countable ∧ s ⊆ ⋃₀ x
tactic: refine ⟨fun ⟨S, hS, hc, hsub⟩ ↦ ⟨S, fun s hs ↦ (hS hs).2, ?_, hsub⟩, ?_⟩
Theorem: dvd_geom_sum₂_iff_of_dvd_sub
File: Mathlib/NumberTheory/Multiplicity.lean

Proof steps:
state_before: R : Type u_1
n : ℕ
inst✝ : CommRing R
a b x✝ y✝ x y p : R
h : p ∣ x - y
⊢ p ∣ ∑ i ∈ range n, x ^ i * y ^ (n - 1 - i) ↔ p ∣ ↑n * y ^ (n - 1)
state_after: R : Type u_1
n : ℕ
inst✝ : CommRing R
a b x✝ y✝ x y p : R
h : (Ideal.Quotient.mk (span {p})) x = (Ideal.Quotient.mk (span {p})) y
⊢ p ∣ ∑ i ∈ range n, x ^ i * y ^ (n - 1 - i) ↔ p ∣ ↑n * y ^ (n - 1)
tactic: rw [← mem_span_singleton, ← Ideal.Quotient.eq] at h
state_before: R : Type u_1
n : ℕ
inst✝ : CommRing R
a b x✝ y✝ x y p : R
h : (Ideal.Quotient.mk (span {p})) x = (Ideal.Quotient.mk (span {p})) y
⊢ p ∣ ∑ i ∈ range n, x ^ i * y ^ (n - 1 - i) ↔ p ∣ ↑n * y ^ (n - 1)
state_after: no goals
tactic: simp only [← mem_span_singleton, ← eq_zero_iff_mem, RingHom.map_geom_sum₂, h, geom_sum₂_self,
    _root_.map_mul, map_pow, map_natCast]
Theorem: CategoryTheory.Limits.coprod.map_inl_inr_codiag
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
X✝ Y✝ X Y : C
inst✝¹ : HasBinaryCoproduct X Y
inst✝ : HasBinaryCoproduct (X ⨿ Y) (X ⨿ Y)
⊢ map inl inr ≫ codiag (X ⨿ Y) = 𝟙 (X ⨿ Y)
state_after: no goals
tactic: simp
Theorem: MeasureTheory.addHaarMeasure_eq_volume
File: Mathlib/MeasureTheory/Measure/Lebesgue/EqHaar.lean

Proof steps:
state_before: ⊢ addHaarMeasure Icc01 = volume
state_after: case h.e'_2

⊢ addHaarMeasure Icc01 = volume ↑Icc01 • addHaarMeasure Icc01
tactic: convert (addHaarMeasure_unique volume Icc01).symm
state_before: case h.e'_2

⊢ addHaarMeasure Icc01 = volume ↑Icc01 • addHaarMeasure Icc01
state_after: no goals
tactic: simp [Icc01]
Theorem: CategoryTheory.Limits.map_π_preserves_coequalizer_inv
File: Mathlib/CategoryTheory/Limits/Preserves/Shapes/Equalizers.lean

Proof steps:
state_before: C : Type u₁
inst✝⁴ : Category.{v₁, u₁} C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
G : C ⥤ D
X Y Z : C
f g : X ⟶ Y
h : Y ⟶ Z
w : f ≫ h = g ≫ h
inst✝² : HasCoequalizer f g
inst✝¹ : HasCoequalizer (G.map f) (G.map g)
inst✝ : PreservesColimit (parallelPair f g) G
⊢ G.map (coequalizer.π f g) ≫ (PreservesCoequalizer.iso G f g).inv = coequalizer.π (G.map f) (G.map g)
state_after: no goals
tactic: rw [← ι_comp_coequalizerComparison_assoc, ← PreservesCoequalizer.iso_hom, Iso.hom_inv_id,
    comp_id]
Theorem: Fermat42.exists_odd_minimal
File: Mathlib/NumberTheory/FLT/Four.lean

Proof steps:
state_before: a b c : ℤ
h : Fermat42 a b c
⊢ ∃ a0 b0 c0, Minimal a0 b0 c0 ∧ a0 % 2 = 1
state_after: case intro.intro.intro
a b c : ℤ
h : Fermat42 a b c
a0 b0 c0 : ℤ
hf : Minimal a0 b0 c0
⊢ ∃ a0 b0 c0, Minimal a0 b0 c0 ∧ a0 % 2 = 1
tactic: obtain ⟨a0, b0, c0, hf⟩ := exists_minimal h
state_before: case intro.intro.intro
a b c : ℤ
h : Fermat42 a b c
a0 b0 c0 : ℤ
hf : Minimal a0 b0 c0
⊢ ∃ a0 b0 c0, Minimal a0 b0 c0 ∧ a0 % 2 = 1
state_after: case intro.intro.intro.inl
a b c : ℤ
h : Fermat42 a b c
a0 b0 c0 : ℤ
hf : Minimal a0 b0 c0
hap : a0 % 2 = 0
⊢ ∃ a0 b0 c0, Minimal a0 b0 c0 ∧ a0 % 2 = 1

case intro.intro.intro.inr
a b c : ℤ
h : Fermat42 a b c
a0 b0 c0 : ℤ
hf : Minimal a0 b0 c0
hap : a0 % 2 = 1
⊢ ∃ a0 b0 c0, Minimal a0 b0 c0 ∧ a0 % 2 = 1
tactic: cases' Int.emod_two_eq_zero_or_one a0 with hap hap
state_before: case intro.intro.intro.inr
a b c : ℤ
h : Fermat42 a b c
a0 b0 c0 : ℤ
hf : Minimal a0 b0 c0
hap : a0 % 2 = 1
⊢ ∃ a0 b0 c0, Minimal a0 b0 c0 ∧ a0 % 2 = 1
state_after: no goals
tactic: exact ⟨a0, ⟨b0, ⟨c0, hf, hap⟩⟩⟩
Theorem: CategoryTheory.Idempotents.KaroubiHomologicalComplexEquivalence.Functor.obj_d_f
File: Mathlib/CategoryTheory/Idempotents/HomologicalComplex.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{?u.3910, u_1} C
inst✝ : Preadditive C
ι : Type u_2
c : ComplexShape ι
P : Karoubi (HomologicalComplex C c)
n : ι
⊢ P.p.f n ≫ P.p.f n = P.p.f n
state_after: no goals
tactic: simpa only [HomologicalComplex.comp_f] using HomologicalComplex.congr_hom P.idem n
state_before: C : Type u_1
inst✝¹ : Category.{?u.3910, u_1} C
inst✝ : Preadditive C
ι : Type u_2
c : ComplexShape ι
P : Karoubi (HomologicalComplex C c)
i j : ι
hij : ¬c.Rel i j
⊢ (fun i j => { f := P.p.f i ≫ P.X.d i j, comm := ⋯ }) i j = 0
state_after: C : Type u_1
inst✝¹ : Category.{?u.3910, u_1} C
inst✝ : Preadditive C
ι : Type u_2
c : ComplexShape ι
P : Karoubi (HomologicalComplex C c)
i j : ι
hij : ¬c.Rel i j
⊢ P.p.f i ≫ P.X.d i j = 0
tactic: simp only [hom_eq_zero_iff, P.X.shape i j hij, Limits.comp_zero]
state_before: C : Type u_1
inst✝¹ : Category.{?u.3910, u_1} C
inst✝ : Preadditive C
ι : Type u_2
c : ComplexShape ι
P : Karoubi (HomologicalComplex C c)
i j : ι
hij : ¬c.Rel i j
⊢ P.p.f i ≫ P.X.d i j = 0
state_after: no goals
tactic: aesop_cat
Theorem: AlgebraicGeometry.IsAffineOpen.fromSpec_preimage_basicOpen
File: Mathlib/AlgebraicGeometry/AffineScheme.lean

Proof steps:
state_before: X Y : Scheme
U : X.Opens
hU : IsAffineOpen U
f : ↑Γ(X, U)
⊢ hU.fromSpec ⁻¹ᵁ X.basicOpen f = PrimeSpectrum.basicOpen f
state_after: no goals
tactic: rw [fromSpec_preimage_basicOpen', ← basicOpen_eq_of_affine]
Theorem: Codisjoint.left_le_of_le_inf_left
File: Mathlib/Order/Disjoint.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : DistribLattice α
inst✝ : OrderTop α
a b c : α
h : b ⊓ a ≤ c
hd : Codisjoint b c
⊢ a ⊓ b ≤ c
state_after: no goals
tactic: rwa [inf_comm]
Theorem: not_fermatLastTheoremFor_one
File: Mathlib/NumberTheory/FLT/Basic.lean

Proof steps:
state_before: h : FermatLastTheoremFor 1
⊢ 1 ≠ 0
state_after: no goals
tactic: norm_num
state_before: h : FermatLastTheoremFor 1
⊢ 1 ≠ 0
state_after: no goals
tactic: norm_num
state_before: h : FermatLastTheoremFor 1
⊢ 2 ≠ 0
state_after: no goals
tactic: norm_num
state_before: h : FermatLastTheoremFor 1
⊢ 1 ^ 1 + 1 ^ 1 = 2 ^ 1
state_after: no goals
tactic: norm_num
Theorem: SimpleGraph.Path.not_mem_edges_of_loop
File: Mathlib/Combinatorics/SimpleGraph/Path.lean

Proof steps:
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v : V
e : Sym2 V
p : G.Path v v
⊢ e ∉ (↑p).edges
state_after: no goals
tactic: simp [p.loop_eq]
Theorem: PartialHomeomorph.restr_source_inter
File: Mathlib/Topology/PartialHomeomorph.lean

Proof steps:
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
s : Set X
⊢ e.restr (e.source ∩ s) = e.restr s
state_after: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
s : Set X
⊢ (e.restr (e.source ∩ s)).source = (e.restr s).source
tactic: refine PartialHomeomorph.ext _ _ (fun x => rfl) (fun x => rfl) ?_
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
s : Set X
⊢ (e.restr (e.source ∩ s)).source = (e.restr s).source
state_after: no goals
tactic: simp [e.open_source.interior_eq, ← inter_assoc]
Theorem: Real.sinh_strictMono
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Deriv.lean

Proof steps:
state_before: x y z : ℝ
⊢ ∀ (x : ℝ), 0 < deriv sinh x
state_after: x y z : ℝ
⊢ ∀ (x : ℝ), 0 < cosh x
tactic: rw [Real.deriv_sinh]
state_before: x y z : ℝ
⊢ ∀ (x : ℝ), 0 < cosh x
state_after: no goals
tactic: exact cosh_pos