ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Part.div_mem_div
File: Mathlib/Data/Part.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Div α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ma / mb ∈ a / b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Div α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 / a = ma / mb
tactic: simp [div_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : Div α
a b : Part α
ma mb : α
ha : ma ∈ a
hb : mb ∈ b
⊢ ∃ a_1 ∈ a, ∃ a ∈ b, a_1 / a = ma / mb
state_after: no goals
tactic: aesop
Theorem: preNormEDS_neg
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℤ
⊢ preNormEDS b c d (-n) = -preNormEDS b c d n
state_after: no goals
tactic: rw [preNormEDS, Int.sign_neg, Int.cast_neg, neg_mul, Int.natAbs_neg, preNormEDS]
Theorem: NumberField.mixedEmbedding.convexBodyLT'_convex
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

Proof steps:
state_before: K : Type u_1
inst✝ : Field K
f : InfinitePlace K → ℝ≥0
w₀ : { w // w.IsComplex }
⊢ Convex ℝ (convexBodyLT' K f w₀)
state_after: K : Type u_1
inst✝ : Field K
f : InfinitePlace K → ℝ≥0
w₀ x✝¹ : { w // w.IsComplex }
x✝ : x✝¹ ∈ Set.univ
⊢ Convex ℝ (if x✝¹ = w₀ then {x | |x.re| < 1 ∧ |x.im| < ↑(f ↑x✝¹) ^ 2} else ball 0 ↑(f ↑x✝¹))
tactic: refine Convex.prod (convex_pi (fun _ _ => convex_ball _ _)) (convex_pi (fun _ _ => ?_))
state_before: K : Type u_1
inst✝ : Field K
f : InfinitePlace K → ℝ≥0
w₀ x✝¹ : { w // w.IsComplex }
x✝ : x✝¹ ∈ Set.univ
⊢ Convex ℝ (if x✝¹ = w₀ then {x | |x.re| < 1 ∧ |x.im| < ↑(f ↑x✝¹) ^ 2} else ball 0 ↑(f ↑x✝¹))
state_after: case pos
K : Type u_1
inst✝ : Field K
f : InfinitePlace K → ℝ≥0
w₀ x✝¹ : { w // w.IsComplex }
x✝ : x✝¹ ∈ Set.univ
h✝ : x✝¹ = w₀
⊢ Convex ℝ {x | |x.re| < 1 ∧ |x.im| < ↑(f ↑x✝¹) ^ 2}

case neg
K : Type u_1
inst✝ : Field K
f : InfinitePlace K → ℝ≥0
w₀ x✝¹ : { w // w.IsComplex }
x✝ : x✝¹ ∈ Set.univ
h✝ : ¬x✝¹ = w₀
⊢ Convex ℝ (ball 0 ↑(f ↑x✝¹))
tactic: split_ifs
Theorem: MeasureTheory.OuterMeasure.map_ofFunction
File: Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean

Proof steps:
state_before: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
⊢ (map f) (OuterMeasure.ofFunction m m_empty) = OuterMeasure.ofFunction (fun s => m (f ⁻¹' s)) m_empty
state_after: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
⊢ (OuterMeasure.ofFunction (fun s => m (f ⁻¹' s)) m_empty) s ≤ ((map f) (OuterMeasure.ofFunction m m_empty)) s
tactic: refine (map_ofFunction_le _).antisymm fun s => ?_
state_before: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
⊢ (OuterMeasure.ofFunction (fun s => m (f ⁻¹' s)) m_empty) s ≤ ((map f) (OuterMeasure.ofFunction m m_empty)) s
state_after: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
⊢ ∀ (i : ℕ → Set α), f ⁻¹' s ⊆ iUnion i → ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), m (f ⁻¹' t n) ≤ ∑' (n : ℕ), m (i n)
tactic: simp only [ofFunction_apply, map_apply, le_iInf_iff]
state_before: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
⊢ ∀ (i : ℕ → Set α), f ⁻¹' s ⊆ iUnion i → ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), m (f ⁻¹' t n) ≤ ∑' (n : ℕ), m (i n)
state_after: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
t : ℕ → Set α
ht : f ⁻¹' s ⊆ iUnion t
⊢ ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), m (f ⁻¹' t n) ≤ ∑' (n : ℕ), m (t n)
tactic: intro t ht
state_before: α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
t : ℕ → Set α
ht : f ⁻¹' s ⊆ iUnion t
⊢ ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), m (f ⁻¹' t n) ≤ ∑' (n : ℕ), m (t n)
state_after: case refine_1
α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
t : ℕ → Set α
ht : f ⁻¹' s ⊆ iUnion t
⊢ s ⊆ ⋃ n, (range f)ᶜ ∪ f '' t n

case refine_2
α : Type u_1
m : Set α → ℝ≥0∞
m_empty : m ∅ = 0
β : Type u_2
f : α → β
hf : Injective f
s : Set β
t : ℕ → Set α
ht : f ⁻¹' s ⊆ iUnion t
⊢ ∑' (n : ℕ), m (f ⁻¹' (fun n => (range f)ᶜ ∪ f '' t n) n) ≤ ∑' (n : ℕ), m (t n)
tactic: refine iInf_le_of_le (fun n => (range f)ᶜ ∪ f '' t n) (iInf_le_of_le ?_ ?_)
Theorem: Set.indicator_add_eq_left
File: Mathlib/Algebra/Group/Indicator.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
⊢ (mulSupport f).mulIndicator (f * g) = f
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
x : α
hx : x ∈ mulSupport f
⊢ (f * g) x = f x
tactic: refine (mulIndicator_congr fun x hx => ?_).trans mulIndicator_mulSupport
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
x : α
hx : x ∈ mulSupport f
⊢ (f * g) x = f x
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
x : α
hx : x ∈ mulSupport f
this : g x = 1
⊢ (f * g) x = f x
tactic: have : g x = 1 := nmem_mulSupport.1 (disjoint_left.1 h hx)
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
M : Type u_4
N : Type u_5
inst✝ : MulOneClass M
s t : Set α
f✝ g✝ : α → M
a : α
f g : α → M
h : Disjoint (mulSupport f) (mulSupport g)
x : α
hx : x ∈ mulSupport f
this : g x = 1
⊢ (f * g) x = f x
state_after: no goals
tactic: rw [Pi.mul_apply, this, mul_one]
Theorem: CompleteLattice.isSupFiniteCompact_iff_all_elements_compact
File: Mathlib/Order/CompactlyGenerated/Basic.lean

Proof steps:
state_before: ι : Sort u_1
α : Type u_2
inst✝ : CompleteLattice α
f : ι → α
⊢ IsSupFiniteCompact α ↔ ∀ (k : α), IsCompactElement k
state_after: case refine_1
ι : Sort u_1
α : Type u_2
inst✝ : CompleteLattice α
f : ι → α
h : IsSupFiniteCompact α
k : α
s : Set α
hs : k ≤ sSup s
⊢ ∃ t, ↑t ⊆ s ∧ k ≤ t.sup id

case refine_2
ι : Sort u_1
α : Type u_2
inst✝ : CompleteLattice α
f : ι → α
h : ∀ (k : α), IsCompactElement k
s : Set α
⊢ ∃ t, ↑t ⊆ s ∧ sSup s = t.sup id
tactic: refine ⟨fun h k s hs => ?_, fun h s => ?_⟩
Theorem: TrivSqZeroExt.inr_mul_inr
File: Mathlib/Algebra/TrivSqZeroExt.lean

Proof steps:
state_before: R : Type u
M : Type v
inst✝³ : Semiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Module Rᵐᵒᵖ M
m₁ m₂ : M
⊢ 0 •> m₂ + m₁ <• 0 = 0
state_after: no goals
tactic: rw [zero_smul, zero_add, op_zero, zero_smul]
Theorem: IsLocalizedModule.mk'_zero
File: Mathlib/Algebra/Module/LocalizedModule.lean

Proof steps:
state_before: R : Type u_1
inst✝¹² : CommSemiring R
S : Submonoid R
M : Type u_2
M' : Type u_3
M'' : Type u_4
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M'
inst✝⁹ : AddCommMonoid M''
A : Type u_5
inst✝⁸ : CommSemiring A
inst✝⁷ : Algebra R A
inst✝⁶ : Module A M'
inst✝⁵ : IsLocalization S A
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M''
inst✝¹ : IsScalarTower R A M'
f : M →ₗ[R] M'
g : M →ₗ[R] M''
inst✝ : IsLocalizedModule S f
s : ↥S
⊢ mk' f 0 s = 0
state_after: no goals
tactic: rw [← zero_smul R (0 : M), mk'_smul, zero_smul]
Theorem: Finset.prod_nonneg_of_card_nonpos_even
File: Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedCommRing β
f : α → β
inst✝ : DecidablePred fun x => f x ≤ 0
s : Finset α
h0 : Even (filter (fun x => f x ≤ 0) s).card
x : α
x✝ : x ∈ s
⊢ 0 ≤ (if f x ≤ 0 then -1 else 1) * f x
state_after: case pos
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedCommRing β
f : α → β
inst✝ : DecidablePred fun x => f x ≤ 0
s : Finset α
h0 : Even (filter (fun x => f x ≤ 0) s).card
x : α
x✝ : x ∈ s
hx : f x ≤ 0
⊢ 0 ≤ -1 * f x

case neg
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedCommRing β
f : α → β
inst✝ : DecidablePred fun x => f x ≤ 0
s : Finset α
h0 : Even (filter (fun x => f x ≤ 0) s).card
x : α
x✝ : x ∈ s
hx : ¬f x ≤ 0
⊢ 0 ≤ 1 * f x
tactic: split_ifs with hx
state_before: case neg
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedCommRing β
f : α → β
inst✝ : DecidablePred fun x => f x ≤ 0
s : Finset α
h0 : Even (filter (fun x => f x ≤ 0) s).card
x : α
x✝ : x ∈ s
hx : ¬f x ≤ 0
⊢ 0 ≤ 1 * f x
state_after: case neg
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedCommRing β
f : α → β
inst✝ : DecidablePred fun x => f x ≤ 0
s : Finset α
h0 : Even (filter (fun x => f x ≤ 0) s).card
x : α
x✝ : x ∈ s
hx : 0 < f x
⊢ 0 ≤ f x
tactic: simp? at hx ⊢ says simp only [not_le, one_mul] at hx ⊢
state_before: case neg
α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedCommRing β
f : α → β
inst✝ : DecidablePred fun x => f x ≤ 0
s : Finset α
h0 : Even (filter (fun x => f x ≤ 0) s).card
x : α
x✝ : x ∈ s
hx : 0 < f x
⊢ 0 ≤ f x
state_after: no goals
tactic: exact le_of_lt hx
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrderedCommRing β
f : α → β
inst✝ : DecidablePred fun x => f x ≤ 0
s : Finset α
h0 : Even (filter (fun x => f x ≤ 0) s).card
⊢ ∏ x ∈ s, (if f x ≤ 0 then -1 else 1) * f x = ∏ x ∈ s, f x
state_after: no goals
tactic: rw [Finset.prod_mul_distrib, Finset.prod_ite, Finset.prod_const_one, mul_one,
        Finset.prod_const, neg_one_pow_eq_pow_mod_two, Nat.even_iff.1 h0, pow_zero, one_mul]
Theorem: rank_le
File: Mathlib/LinearAlgebra/Dimension/Finite.lean

Proof steps:
state_before: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → s.card ≤ n
⊢ Module.rank R M ≤ ↑n
state_after: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → s.card ≤ n
⊢ ⨆ ι, #↑↑ι ≤ ↑n
tactic: rw [Module.rank_def]
state_before: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → s.card ≤ n
⊢ ⨆ ι, #↑↑ι ≤ ↑n
state_after: case h
R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → s.card ≤ n
⊢ ∀ (i : { s // LinearIndependent (ι := { x // x ∈ s }) R Subtype.val }), #↑↑i ≤ ↑n
tactic: apply ciSup_le'
state_before: case h
R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → s.card ≤ n
⊢ ∀ (i : { s // LinearIndependent (ι := { x // x ∈ s }) R Subtype.val }), #↑↑i ≤ ↑n
state_after: case h.mk
R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → s.card ≤ n
s : Set M
li : LinearIndependent (ι := { x // x ∈ s }) R Subtype.val
⊢ #↑↑⟨s, li⟩ ≤ ↑n
tactic: rintro ⟨s, li⟩
state_before: case h.mk
R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M₁
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M₁
n : ℕ
H : ∀ (s : Finset M), (LinearIndependent R fun i => ↑i) → s.card ≤ n
s : Set M
li : LinearIndependent (ι := { x // x ∈ s }) R Subtype.val
⊢ #↑↑⟨s, li⟩ ≤ ↑n
state_after: no goals
tactic: exact linearIndependent_bounded_of_finset_linearIndependent_bounded H _ li
Theorem: Complex.logDeriv_tendsto
File: Mathlib/Analysis/Complex/LocallyUniformLimit.lean

Proof steps:
state_before: E : Type u_1
ι✝ : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι✝
F : ι✝ → ℂ → E
f✝ g✝ : ℂ → E
ι : Type u_3
p : Filter ι
f : ι → ℂ → ℂ
g : ℂ → ℂ
s : Set ℂ
hs : IsOpen s
x : ↑s
hF : TendstoLocallyUniformlyOn f g p s
hf : ∀ᶠ (n : ι) in p, DifferentiableOn ℂ (f n) s
hg : g ↑x ≠ 0
⊢ Tendsto (fun n => logDeriv (f n) ↑x) p (𝓝 (logDeriv g ↑x))
state_after: E : Type u_1
ι✝ : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι✝
F : ι✝ → ℂ → E
f✝ g✝ : ℂ → E
ι : Type u_3
p : Filter ι
f : ι → ℂ → ℂ
g : ℂ → ℂ
s : Set ℂ
hs : IsOpen s
x : ↑s
hF : TendstoLocallyUniformlyOn f g p s
hf : ∀ᶠ (n : ι) in p, DifferentiableOn ℂ (f n) s
hg : g ↑x ≠ 0
⊢ Tendsto (fun n => (deriv (f n) / f n) ↑x) p (𝓝 ((deriv g / g) ↑x))
tactic: simp_rw [logDeriv]
state_before: E : Type u_1
ι✝ : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
inst✝ : CompleteSpace E
U K : Set ℂ
z : ℂ
M r δ : ℝ
φ : Filter ι✝
F : ι✝ → ℂ → E
f✝ g✝ : ℂ → E
ι : Type u_3
p : Filter ι
f : ι → ℂ → ℂ
g : ℂ → ℂ
s : Set ℂ
hs : IsOpen s
x : ↑s
hF : TendstoLocallyUniformlyOn f g p s
hf : ∀ᶠ (n : ι) in p, DifferentiableOn ℂ (f n) s
hg : g ↑x ≠ 0
⊢ Tendsto (fun n => (deriv (f n) / f n) ↑x) p (𝓝 ((deriv g / g) ↑x))
state_after: no goals
tactic: apply Tendsto.div ((hF.deriv hf hs).tendsto_at x.2) (hF.tendsto_at x.2) hg
Theorem: Finset.prod_range_one
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 β
f : ℕ → β
⊢ ∏ k ∈ range 1, f k = f 0
state_after: no goals
tactic: rw [range_one, prod_singleton]
Theorem: IsCompact.uniformContinuousOn_of_continuous
File: Mathlib/Topology/UniformSpace/Compact.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
⊢ UniformContinuousOn f s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
⊢ UniformContinuous (s.restrict f)
tactic: rw [uniformContinuousOn_iff_restrict]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : IsCompact s
hf : ContinuousOn f s
⊢ UniformContinuous (s.restrict f)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : CompactSpace ↑s
hf : ContinuousOn f s
⊢ UniformContinuous (s.restrict f)
tactic: rw [isCompact_iff_compactSpace] at hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : CompactSpace ↑s
hf : ContinuousOn f s
⊢ UniformContinuous (s.restrict f)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : CompactSpace ↑s
hf : Continuous (s.restrict f)
⊢ UniformContinuous (s.restrict f)
tactic: rw [continuousOn_iff_continuous_restrict] at hf
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
s : Set α
f : α → β
hs : CompactSpace ↑s
hf : Continuous (s.restrict f)
⊢ UniformContinuous (s.restrict f)
state_after: no goals
tactic: exact CompactSpace.uniformContinuous_of_continuous hf
Theorem: CategoryTheory.Linear.leftComp_apply
File: Mathlib/CategoryTheory/Linear/Basic.lean

Proof steps:
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type w
inst✝¹ : Semiring R
inst✝ : Linear R C
X Y Z : C
f : X ⟶ Y
⊢ ∀ (x y : Y ⟶ Z), (fun g => f ≫ g) (x + y) = (fun g => f ≫ g) x + (fun g => f ≫ g) y
state_after: no goals
tactic: simp
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type w
inst✝¹ : Semiring R
inst✝ : Linear R C
X Y Z : C
f : X ⟶ Y
⊢ ∀ (m : R) (x : Y ⟶ Z),
    { toFun := fun g => f ≫ g, map_add' := ⋯ }.toFun (m • x) =
      (RingHom.id R) m • { toFun := fun g => f ≫ g, map_add' := ⋯ }.toFun x
state_after: no goals
tactic: simp
Theorem: Ideal.exists_radical_pow_le_of_fg
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
R : Type u_3
inst✝ : CommSemiring R
I : Ideal R
h : I.radical.FG
⊢ ∃ n, I.radical ^ n ≤ I
state_after: R✝ : Type u_1
M : Type u_2
inst✝³ : Semiring R✝
inst✝² : AddCommMonoid M
inst✝¹ : Module R✝ M
R : Type u_3
inst✝ : CommSemiring R
I : Ideal R
h : I.radical.FG
this : I.radical ≤ I.radical
⊢ ∃ n, I.radical ^ n ≤ I
tactic: have := le_refl I.radical
state_before: R✝ : Type u_1
M : Type u_2
inst✝³ : Semiring R✝
inst✝² : AddCommMonoid M
inst✝¹ : Module R✝ M
R : Type u_3
inst✝ : CommSemiring R
I : Ideal R
h : I.radical.FG
this : I.radical ≤ I.radical
⊢ ∃ n, I.radical ^ n ≤ I
state_after: R✝ : Type u_1
M : Type u_2
inst✝³ : Semiring R✝
inst✝² : AddCommMonoid M
inst✝¹ : Module R✝ M
R : Type u_3
inst✝ : CommSemiring R
I : Ideal R
h : I.radical.FG
⊢ I.radical ≤ I.radical → ∃ n, I.radical ^ n ≤ I
tactic: revert this
state_before: R✝ : Type u_1
M : Type u_2
inst✝³ : Semiring R✝
inst✝² : AddCommMonoid M
inst✝¹ : Module R✝ M
R : Type u_3
inst✝ : CommSemiring R
I : Ideal R
h : I.radical.FG
⊢ I.radical ≤ I.radical → ∃ n, I.radical ^ n ≤ I
state_after: case refine_1
R✝ : Type u_1
M : Type u_2
inst✝³ : Semiring R✝
inst✝² : AddCommMonoid M
inst✝¹ : Module R✝ M
R : Type u_3
inst✝ : CommSemiring R
I : Ideal R
h : I.radical.FG
⊢ ∀ (x : R), (fun J => J ≤ I.radical → ∃ n, J ^ n ≤ I) (Submodule.span R {x})

case refine_2
R✝ : Type u_1
M : Type u_2
inst✝³ : Semiring R✝
inst✝² : AddCommMonoid M
inst✝¹ : Module R✝ M
R : Type u_3
inst✝ : CommSemiring R
I : Ideal R
h : I.radical.FG
⊢ ∀ (M₁ M₂ : Submodule R R),
    (fun J => J ≤ I.radical → ∃ n, J ^ n ≤ I) M₁ →
      (fun J => J ≤ I.radical → ∃ n, J ^ n ≤ I) M₂ → (fun J => J ≤ I.radical → ∃ n, J ^ n ≤ I) (M₁ ⊔ M₂)
tactic: refine Submodule.fg_induction _ _ (fun J => J ≤ I.radical → ∃ n : ℕ, J ^ n ≤ I) ?_ ?_ _ h
Theorem: frobeniusEquiv_symm_comp_frobenius
File: Mathlib/FieldTheory/Perfect.lean

Proof steps:
state_before: R : Type u_1
p m n : ℕ
inst✝² : CommSemiring R
inst✝¹ : ExpChar R p
inst✝ : PerfectRing R p
⊢ (↑(frobeniusEquiv R p).symm).comp (frobenius R p) = RingHom.id R
state_after: case a
R : Type u_1
p m n : ℕ
inst✝² : CommSemiring R
inst✝¹ : ExpChar R p
inst✝ : PerfectRing R p
x✝ : R
⊢ ((↑(frobeniusEquiv R p).symm).comp (frobenius R p)) x✝ = (RingHom.id R) x✝
tactic: ext
state_before: case a
R : Type u_1
p m n : ℕ
inst✝² : CommSemiring R
inst✝¹ : ExpChar R p
inst✝ : PerfectRing R p
x✝ : R
⊢ ((↑(frobeniusEquiv R p).symm).comp (frobenius R p)) x✝ = (RingHom.id R) x✝
state_after: no goals
tactic: simp
Theorem: Finsupp.some_single_some
File: Mathlib/Data/Finsupp/Basic.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 : α
m : M
⊢ (single (Option.some a) m).some = single a m
state_after: no goals
tactic: classical
    ext b
    simp [single_apply]
Theorem: MeasureTheory.addMeasure_map_restrict_apply
File: Mathlib/MeasureTheory/Group/FundamentalDomain.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
α : Type u_3
β : Type u_4
E : Type u_5
inst✝² : Group G
inst✝¹ : MulAction G α
inst✝ : MeasurableSpace α
μ : Measure α
s : Set α
U : Set (Quotient α_mod_G)
meas_U : MeasurableSet U
⊢ (Measure.map (Quotient.mk α_mod_G) (μ.restrict s)) U = μ (Quotient.mk α_mod_G ⁻¹' U ∩ s)
state_after: no goals
tactic: rw [map_apply (f := π) (fun V hV ↦ measurableSet_quotient.mp hV) meas_U,
    Measure.restrict_apply (t := (Quotient.mk α_mod_G ⁻¹' U)) (measurableSet_quotient.mp meas_U)]
Theorem: PiTensorProduct.span_tprod_eq_top
File: Mathlib/LinearAlgebra/PiTensorProduct.lean

Proof steps:
state_before: ι : Type u_1
ι₂ : Type u_2
ι₃ : Type u_3
R : Type u_4
inst✝⁷ : CommSemiring R
R₁ : Type u_5
R₂ : Type u_6
s : ι → Type u_7
inst✝⁶ : (i : ι) → AddCommMonoid (s i)
inst✝⁵ : (i : ι) → Module R (s i)
M : Type u_8
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
E : Type u_9
inst✝² : AddCommMonoid E
inst✝¹ : Module R E
F : Type u_10
inst✝ : AddCommMonoid F
t : ⨂[R] (i : ι), s i
x✝¹ : R
x✝ : (i : ι) → s i
⊢ (tprod R) x✝ ∈ Set.range ⇑(tprod R)
state_after: no goals
tactic: simp only [Set.mem_range, exists_apply_eq_apply]
Theorem: Nat.coprime_sub_self_right
File: Mathlib/Data/Nat/GCD/Basic.lean

Proof steps:
state_before: m n : ℕ
h : m ≤ n
⊢ m.Coprime (n - m) ↔ m.Coprime n
state_after: no goals
tactic: rw [Coprime, Coprime, gcd_sub_self_right h]
Theorem: FirstOrder.Language.Substructure.fg_iff_exists_fin_generating_family
File: Mathlib/ModelTheory/FinitelyGenerated.lean

Proof steps:
state_before: L : Language
M : Type u_1
inst✝ : L.Structure M
N : L.Substructure M
⊢ N.FG ↔ ∃ n s, (closure L).toFun (range s) = N
state_after: L : Language
M : Type u_1
inst✝ : L.Structure M
N : L.Substructure M
⊢ (∃ S, S.Finite ∧ (closure L).toFun S = N) ↔ ∃ n s, (closure L).toFun (range s) = N
tactic: rw [fg_def]
state_before: L : Language
M : Type u_1
inst✝ : L.Structure M
N : L.Substructure M
⊢ (∃ S, S.Finite ∧ (closure L).toFun S = N) ↔ ∃ n s, (closure L).toFun (range s) = N
state_after: case mp
L : Language
M : Type u_1
inst✝ : L.Structure M
N : L.Substructure M
⊢ (∃ S, S.Finite ∧ (closure L).toFun S = N) → ∃ n s, (closure L).toFun (range s) = N

case mpr
L : Language
M : Type u_1
inst✝ : L.Structure M
N : L.Substructure M
⊢ (∃ n s, (closure L).toFun (range s) = N) → ∃ S, S.Finite ∧ (closure L).toFun S = N
tactic: constructor
Theorem: Real.le_rpow_inv_iff_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

Proof steps:
state_before: x y z : ℝ
n : ℕ
hx : 0 ≤ x
hy : 0 ≤ y
hz : 0 < z
⊢ x ≤ y ^ z⁻¹ ↔ x ^ z ≤ y
state_after: no goals
tactic: rw [← rpow_le_rpow_iff hx _ hz, rpow_inv_rpow] <;> positivity
Theorem: NumberField.InfinitePlace.even_nat_card_aut_of_not_isUnramified
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

Proof steps:
state_before: k : Type u_1
inst✝⁸ : Field k
K : Type u_2
inst✝⁷ : Field K
F : Type u_3
inst✝⁶ : Field F
inst✝⁵ : NumberField K
inst✝⁴ : Algebra k K
inst✝³ : Algebra k F
inst✝² : Algebra K F
inst✝¹ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w : InfinitePlace K
inst✝ : IsGalois k K
hw : ¬IsUnramified k w
⊢ Even (Nat.card (K ≃ₐ[k] K))
state_after: case pos
k : Type u_1
inst✝⁸ : Field k
K : Type u_2
inst✝⁷ : Field K
F : Type u_3
inst✝⁶ : Field F
inst✝⁵ : NumberField K
inst✝⁴ : Algebra k K
inst✝³ : Algebra k F
inst✝² : Algebra K F
inst✝¹ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w : InfinitePlace K
inst✝ : IsGalois k K
hw : ¬IsUnramified k w
H : Finite (K ≃ₐ[k] K)
⊢ Even (Nat.card (K ≃ₐ[k] K))

case neg
k : Type u_1
inst✝⁸ : Field k
K : Type u_2
inst✝⁷ : Field K
F : Type u_3
inst✝⁶ : Field F
inst✝⁵ : NumberField K
inst✝⁴ : Algebra k K
inst✝³ : Algebra k F
inst✝² : Algebra K F
inst✝¹ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w : InfinitePlace K
inst✝ : IsGalois k K
hw : ¬IsUnramified k w
H : ¬Finite (K ≃ₐ[k] K)
⊢ Even (Nat.card (K ≃ₐ[k] K))
tactic: by_cases H : Finite (K ≃ₐ[k] K)
Theorem: WeierstrassCurve.Jacobian.map_dblU
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

Proof steps:
state_before: R : Type u
inst✝² : CommRing R
W' : Jacobian R
F : Type v
inst✝¹ : Field F
W : Jacobian F
S : Type u_1
inst✝ : CommRing S
f : R →+* S
P Q : Fin 3 → R
⊢ dblU (map W' f) (⇑f ∘ P) = f (W'.dblU P)
state_after: no goals
tactic: simp [dblU, map_polynomialX, ← eval₂_id, eval₂_comp_left]