ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: MeasureTheory.Measure.InnerRegularWRT.restrict_of_measure_ne_top
File: Mathlib/MeasureTheory/Measure/Regular.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace α
μ : Measure α
p q : Set α → Prop
U s : Set α
ε r : ℝ≥0∞
h : μ.InnerRegularWRT p fun s => MeasurableSet s ∧ μ s ≠ ⊤
A : Set α
hA : μ A ≠ ⊤
⊢ (μ.restrict A).InnerRegularWRT p fun s => MeasurableSet s
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace α
μ : Measure α
p q : Set α → Prop
U s : Set α
ε r : ℝ≥0∞
h : μ.InnerRegularWRT p fun s => MeasurableSet s ∧ μ s ≠ ⊤
A : Set α
hA : μ A ≠ ⊤
this : Fact (μ A < ⊤)
⊢ (μ.restrict A).InnerRegularWRT p fun s => MeasurableSet s
tactic: have : Fact (μ A < ∞) := ⟨hA.lt_top⟩
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : TopologicalSpace α
μ : Measure α
p q : Set α → Prop
U s : Set α
ε r : ℝ≥0∞
h : μ.InnerRegularWRT p fun s => MeasurableSet s ∧ μ s ≠ ⊤
A : Set α
hA : μ A ≠ ⊤
this : Fact (μ A < ⊤)
⊢ (μ.restrict A).InnerRegularWRT p fun s => MeasurableSet s
state_after: no goals
tactic: exact (restrict h A).trans (of_imp (fun s hs ↦ ⟨hs, measure_ne_top _ _⟩))
Theorem: CategoryTheory.Limits.biproduct.components_matrix
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

Proof steps:
state_before: J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : ⨁ f ⟶ ⨁ g
⊢ (matrix fun j k => components m j k) = m
state_after: case w.w
J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : ⨁ f ⟶ ⨁ g
j✝¹ : K
j✝ : J
⊢ ι f j✝ ≫ (matrix fun j k => components m j k) ≫ π g j✝¹ = ι f j✝ ≫ m ≫ π g j✝¹
tactic: ext
state_before: case w.w
J : Type
inst✝⁴ : Finite J
K : Type
inst✝³ : Finite K
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
inst✝ : HasFiniteBiproducts C
f : J → C
g : K → C
m : ⨁ f ⟶ ⨁ g
j✝¹ : K
j✝ : J
⊢ ι f j✝ ≫ (matrix fun j k => components m j k) ≫ π g j✝¹ = ι f j✝ ≫ m ≫ π g j✝¹
state_after: no goals
tactic: simp [biproduct.components]
Theorem: Int.floor_nonpos
File: Mathlib/Algebra/Order/Floor.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
ha : a ≤ 0
⊢ ⌊a⌋ ≤ 0
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
ha : a ≤ 0
⊢ ↑⌊a⌋ ≤ 0
tactic: rw [← @cast_le α, Int.cast_zero]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a : α
ha : a ≤ 0
⊢ ↑⌊a⌋ ≤ 0
state_after: no goals
tactic: exact (floor_le a).trans ha
Theorem: FractionalIdeal.isNoetherian_zero
File: Mathlib/RingTheory/FractionalIdeal/Operations.lean

Proof steps:
state_before: R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I : Submodule R₁ K
hI : I ≤ ↑0
⊢ I.FG
state_after: R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I : Submodule R₁ K
hI : I = ⊥
⊢ I.FG
tactic: rw [coe_zero, le_bot_iff] at hI
state_before: R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I : Submodule R₁ K
hI : I = ⊥
⊢ I.FG
state_after: R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I : Submodule R₁ K
hI : I = ⊥
⊢ ⊥.FG
tactic: rw [hI]
state_before: R : Type u_1
inst✝⁵ : CommRing R
S : Submonoid R
P : Type u_2
inst✝⁴ : CommRing P
inst✝³ : Algebra R P
loc : IsLocalization S P
R₁ : Type u_3
inst✝² : CommRing R₁
K : Type u_4
inst✝¹ : Field K
inst✝ : Algebra R₁ K
frac : IsFractionRing R₁ K
I : Submodule R₁ K
hI : I = ⊥
⊢ ⊥.FG
state_after: no goals
tactic: exact fg_bot
Theorem: MeasureTheory.setIntegral_le_nonneg
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s✝ s : Set X
hs : MeasurableSet s
hf : StronglyMeasurable f
hfi : Integrable f μ
⊢ ∫ (x : X) in s, f x ∂μ ≤ ∫ (x : X) in {y | 0 ≤ f y}, f x ∂μ
state_after: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s✝ s : Set X
hs : MeasurableSet s
hf : StronglyMeasurable f
hfi : Integrable f μ
⊢ ∫ (x : X), s.indicator f x ∂μ ≤ ∫ (x : X), {a | 0 ≤ f a}.indicator f x ∂μ
tactic: rw [← integral_indicator hs, ←
    integral_indicator (stronglyMeasurable_const.measurableSet_le hf)]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s✝ s : Set X
hs : MeasurableSet s
hf : StronglyMeasurable f
hfi : Integrable f μ
⊢ ∫ (x : X), s.indicator f x ∂μ ≤ ∫ (x : X), {a | 0 ≤ f a}.indicator f x ∂μ
state_after: no goals
tactic: exact
    integral_mono (hfi.indicator hs)
      (hfi.indicator (stronglyMeasurable_const.measurableSet_le hf))
      (indicator_le_indicator_nonneg s f)
Theorem: Complex.neg_re_eq_abs
File: Mathlib/Data/Complex/Order.lean

Proof steps:
state_before: z : ℂ
⊢ -z.re = abs z ↔ z ≤ 0
state_after: z : ℂ
⊢ 0 ≤ -z ↔ z ≤ 0
tactic: rw [← neg_re, ← abs.map_neg, re_eq_abs]
state_before: z : ℂ
⊢ 0 ≤ -z ↔ z ≤ 0
state_after: no goals
tactic: exact neg_nonneg.and <| eq_comm.trans neg_eq_zero
Theorem: AlgebraicGeometry.disjointGlueData_J
File: Mathlib/AlgebraicGeometry/Limits.lean

Proof steps:
state_before: ι : Type u
f : ι → Scheme
i j : __spread✝⁻⁰.J
⊢ IsOpenImmersion (__spread✝⁻⁰.f i j)
state_after: ι : Type u
f : ι → Scheme
i j : __spread✝⁻⁰.J
⊢ IsOpenImmersion (if h : i = j then eqToHom ⋯ else eqToHom ⋯ ≫ (f i).emptyTo)
tactic: dsimp only [GlueData.ofGlueData', GlueData'.f', disjointGlueData']
state_before: ι : Type u
f : ι → Scheme
i j : __spread✝⁻⁰.J
⊢ IsOpenImmersion (if h : i = j then eqToHom ⋯ else eqToHom ⋯ ≫ (f i).emptyTo)
state_after: no goals
tactic: split <;> infer_instance
Theorem: Finset.card_sdiff_add_card
File: Mathlib/Data/Finset/Card.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s✝ t✝ u : Finset α
f : α → β
n : ℕ
inst✝ : DecidableEq α
s t : Finset α
⊢ (s \ t).card + t.card = (s ∪ t).card
state_after: no goals
tactic: rw [← card_union_of_disjoint sdiff_disjoint, sdiff_union_self_eq_union]
Theorem: LinearIndependent.image_of_comp
File: Mathlib/LinearAlgebra/LinearIndependent.lean

Proof steps:
state_before: ι✝ : Type u'
ι'✝ : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι✝ → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
ι : Type u_8
ι' : Type u_9
s : Set ι
f : ι → ι'
g : ι' → M
hs : LinearIndependent R fun (x : ↑s) => g (f ↑x)
⊢ LinearIndependent R fun (x : ↑(f '' s)) => g ↑x
state_after: ι✝ : Type u'
ι'✝ : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι✝ → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
ι : Type u_8
ι' : Type u_9
s : Set ι
f : ι → ι'
g : ι' → M
hs : LinearIndependent R fun (x : ↑s) => g (f ↑x)
a✝ : Nontrivial R
⊢ LinearIndependent R fun (x : ↑(f '' s)) => g ↑x
tactic: nontriviality R
state_before: ι✝ : Type u'
ι'✝ : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι✝ → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
ι : Type u_8
ι' : Type u_9
s : Set ι
f : ι → ι'
g : ι' → M
hs : LinearIndependent R fun (x : ↑s) => g (f ↑x)
a✝ : Nontrivial R
⊢ LinearIndependent R fun (x : ↑(f '' s)) => g ↑x
state_after: ι✝ : Type u'
ι'✝ : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι✝ → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
ι : Type u_8
ι' : Type u_9
s : Set ι
f : ι → ι'
g : ι' → M
hs : LinearIndependent R fun (x : ↑s) => g (f ↑x)
a✝ : Nontrivial R
this : InjOn f s
⊢ LinearIndependent R fun (x : ↑(f '' s)) => g ↑x
tactic: have : InjOn f s := injOn_iff_injective.2 hs.injective.of_comp
state_before: ι✝ : Type u'
ι'✝ : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι✝ → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
ι : Type u_8
ι' : Type u_9
s : Set ι
f : ι → ι'
g : ι' → M
hs : LinearIndependent R fun (x : ↑s) => g (f ↑x)
a✝ : Nontrivial R
this : InjOn f s
⊢ LinearIndependent R fun (x : ↑(f '' s)) => g ↑x
state_after: no goals
tactic: exact (linearIndependent_equiv' (Equiv.Set.imageOfInjOn f s this) rfl).1 hs
Theorem: LinearMap.range_dualMap_eq_dualAnnihilator_ker_of_subtype_range_surjective
File: Mathlib/LinearAlgebra/Dual.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
M' : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
f : M →ₗ[R] M'
hf : Function.Surjective ⇑(range f).subtype.dualMap
⊢ range f.dualMap = (ker f).dualAnnihilator
state_after: R : Type u_1
M : Type u_2
M' : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
f : M →ₗ[R] M'
hf : Function.Surjective ⇑(range f).subtype.dualMap
rr_surj : Function.Surjective ⇑f.rangeRestrict
⊢ range f.dualMap = (ker f).dualAnnihilator
tactic: have rr_surj : Function.Surjective f.rangeRestrict := by
    rw [← range_eq_top, range_rangeRestrict]
state_before: R : Type u_1
M : Type u_2
M' : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
f : M →ₗ[R] M'
hf : Function.Surjective ⇑(range f).subtype.dualMap
rr_surj : Function.Surjective ⇑f.rangeRestrict
⊢ range f.dualMap = (ker f).dualAnnihilator
state_after: R : Type u_1
M : Type u_2
M' : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
f : M →ₗ[R] M'
hf : Function.Surjective ⇑(range f).subtype.dualMap
rr_surj : Function.Surjective ⇑f.rangeRestrict
this : range f.rangeRestrict.dualMap = (ker f.rangeRestrict).dualAnnihilator
⊢ range f.dualMap = (ker f).dualAnnihilator
tactic: have := range_dualMap_eq_dualAnnihilator_ker_of_surjective f.rangeRestrict rr_surj
state_before: R : Type u_1
M : Type u_2
M' : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
f : M →ₗ[R] M'
hf : Function.Surjective ⇑(range f).subtype.dualMap
rr_surj : Function.Surjective ⇑f.rangeRestrict
this : range f.rangeRestrict.dualMap = (ker f.rangeRestrict).dualAnnihilator
⊢ range f.dualMap = (ker f).dualAnnihilator
state_after: case h.e'_2
R : Type u_1
M : Type u_2
M' : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
f : M →ₗ[R] M'
hf : Function.Surjective ⇑(range f).subtype.dualMap
rr_surj : Function.Surjective ⇑f.rangeRestrict
this : range f.rangeRestrict.dualMap = (ker f.rangeRestrict).dualAnnihilator
⊢ range f.dualMap = range f.rangeRestrict.dualMap

case h.e'_3
R : Type u_1
M : Type u_2
M' : Type u_3
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup M'
inst✝ : Module R M'
f : M →ₗ[R] M'
hf : Function.Surjective ⇑(range f).subtype.dualMap
rr_surj : Function.Surjective ⇑f.rangeRestrict
this : range f.rangeRestrict.dualMap = (ker f.rangeRestrict).dualAnnihilator
⊢ (ker f).dualAnnihilator = (ker f.rangeRestrict).dualAnnihilator
tactic: convert this using 1
Theorem: Filter.le_pure_iff
File: Mathlib/Order/Filter/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l f : Filter α
a : α
⊢ f ≤ pure a ↔ {a} ∈ f
state_after: no goals
tactic: rw [← principal_singleton, le_principal_iff]
Theorem: Real.tendsto_exp_nhds_zero_nhds_one
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

Proof steps:
state_before: α : Type u_1
x y z : ℝ
l : Filter α
⊢ Tendsto rexp (𝓝 0) (𝓝 1)
state_after: case h.e'_5.h.e'_3
α : Type u_1
x y z : ℝ
l : Filter α
⊢ 1 = rexp 0
tactic: convert continuous_exp.tendsto 0
state_before: case h.e'_5.h.e'_3
α : Type u_1
x y z : ℝ
l : Filter α
⊢ 1 = rexp 0
state_after: no goals
tactic: simp
Theorem: Mathlib.Tactic.ComputeDegree.coeff_intCast_ite
File: Mathlib/Tactic/ComputeDegree.lean

Proof steps:
state_before: R : Type u_1
inst✝ : Ring R
n : ℕ
a : ℤ
⊢ (↑a).coeff n = ↑(if n = 0 then a else 0)
state_after: no goals
tactic: simp only [← C_eq_intCast, coeff_C, Int.cast_ite, Int.cast_zero]
Theorem: LinearOrderedField.le_inducedMap_mul_self_of_mem_cutMap
File: Mathlib/Algebra/Order/CompleteField.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a : α
b✝ : β
q : ℚ
ha : 0 < a
b : β
hb : b ∈ cutMap β (a * a)
⊢ b ≤ inducedMap α β a * inducedMap α β a
state_after: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a : α
b : β
q✝ : ℚ
ha : 0 < a
q : ℚ
hb : q ∈ {t | ↑t < a * a}
⊢ ↑q ≤ inducedMap α β a * inducedMap α β a
tactic: obtain ⟨q, hb, rfl⟩ := hb
state_before: case intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a : α
b : β
q✝ : ℚ
ha : 0 < a
q : ℚ
hb : q ∈ {t | ↑t < a * a}
⊢ ↑q ≤ inducedMap α β a * inducedMap α β a
state_after: case intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a : α
b : β
q✝ : ℚ
ha : 0 < a
q : ℚ
hb : q ∈ {t | ↑t < a * a}
q' : ℚ
hq' : 0 < q'
hqq' : ↑q < ↑q' ^ 2
hqa : ↑q' ^ 2 < a * a
⊢ ↑q ≤ inducedMap α β a * inducedMap α β a
tactic: obtain ⟨q', hq', hqq', hqa⟩ := exists_rat_pow_btwn two_ne_zero hb (mul_self_pos.2 ha.ne')
state_before: case intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a : α
b : β
q✝ : ℚ
ha : 0 < a
q : ℚ
hb : q ∈ {t | ↑t < a * a}
q' : ℚ
hq' : 0 < q'
hqq' : ↑q < ↑q' ^ 2
hqa : ↑q' ^ 2 < a * a
⊢ ↑q ≤ inducedMap α β a * inducedMap α β a
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a : α
b : β
q✝ : ℚ
ha : 0 < a
q : ℚ
hb : q ∈ {t | ↑t < a * a}
q' : ℚ
hq' : 0 < q'
hqq' : ↑q < ↑q' ^ 2
hqa : ↑q' ^ 2 < a * a
⊢ ↑q ≤ ↑q' ^ 2

F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝³ : LinearOrderedField α
inst✝² : ConditionallyCompleteLinearOrderedField β
inst✝¹ : ConditionallyCompleteLinearOrderedField γ
inst✝ : Archimedean α
a : α
b : β
q✝ : ℚ
ha : 0 < a
q : ℚ
hb : q ∈ {t | ↑t < a * a}
q' : ℚ
hq' : 0 < q'
hqq' : ↑q < ↑q' ^ 2
hqa : ↑q' ^ 2 < a * a
⊢ ↑q' ^ 2 ≤ inducedMap α β a * inducedMap α β a
tactic: trans (q' : β) ^ 2
Theorem: Real.logb_pos_of_base_lt_one
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

Proof steps:
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
hx : 0 < x
hx' : x < 1
⊢ 0 < logb b x
state_after: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
hx : 0 < x
hx' : x < 1
⊢ x < 1
tactic: rw [logb_pos_iff_of_base_lt_one b_pos b_lt_one hx]
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
hx : 0 < x
hx' : x < 1
⊢ x < 1
state_after: no goals
tactic: exact hx'
Theorem: Polynomial.smul_comp
File: Mathlib/Algebra/Polynomial/Eval.lean

Proof steps:
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝³ : Semiring R
p✝ q✝ r : R[X]
inst✝² : Monoid S
inst✝¹ : DistribMulAction S R
inst✝ : IsScalarTower S R R
s : S
p q : R[X]
⊢ (s • p).comp q = s • p.comp q
state_after: no goals
tactic: rw [← smul_one_smul R s p, comp, comp, eval₂_smul, ← smul_eq_C_mul, smul_assoc, one_smul]
Theorem: Nat.mem_properDivisors
File: Mathlib/NumberTheory/Divisors.lean

Proof steps:
state_before: n m : ℕ
⊢ n ∈ m.properDivisors ↔ n ∣ m ∧ n < m
state_after: case inl
n : ℕ
⊢ n ∈ properDivisors 0 ↔ n ∣ 0 ∧ n < 0

case inr
n m : ℕ
hm : m ≠ 0
⊢ n ∈ m.properDivisors ↔ n ∣ m ∧ n < m
tactic: rcases eq_or_ne m 0 with (rfl | hm)
state_before: case inr
n m : ℕ
hm : m ≠ 0
⊢ n ∈ m.properDivisors ↔ n ∣ m ∧ n < m
state_after: no goals
tactic: simp only [and_comm, ← filter_dvd_eq_properDivisors hm, mem_filter, mem_range]
Theorem: List.cons_subset
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

Proof steps:
state_before: α✝ : Type u_1
a : α✝
l m : List α✝
⊢ a :: l ⊆ m ↔ a ∈ m ∧ l ⊆ m
state_after: no goals
tactic: simp only [subset_def, mem_cons, or_imp, forall_and, forall_eq]
Theorem: LinearIsometryEquiv.coe_toAffineIsometryEquiv
File: Mathlib/Analysis/NormedSpace/AffineIsometry.lean

Proof steps:
state_before: 𝕜 : Type u_1
V : Type u_2
V₁ : Type u_3
V₁' : Type u_4
V₂ : Type u_5
V₃ : Type u_6
V₄ : Type u_7
P₁ : Type u_8
P₁' : Type u_9
P : Type u_10
P₂ : Type u_11
P₃ : Type u_12
P₄ : Type u_13
inst✝²⁴ : NormedField 𝕜
inst✝²³ : SeminormedAddCommGroup V
inst✝²² : NormedSpace 𝕜 V
inst✝²¹ : PseudoMetricSpace P
inst✝²⁰ : NormedAddTorsor V P
inst✝¹⁹ : SeminormedAddCommGroup V₁
inst✝¹⁸ : NormedSpace 𝕜 V₁
inst✝¹⁷ : PseudoMetricSpace P₁
inst✝¹⁶ : NormedAddTorsor V₁ P₁
inst✝¹⁵ : SeminormedAddCommGroup V₁'
inst✝¹⁴ : NormedSpace 𝕜 V₁'
inst✝¹³ : MetricSpace P₁'
inst✝¹² : NormedAddTorsor V₁' P₁'
inst✝¹¹ : SeminormedAddCommGroup V₂
inst✝¹⁰ : NormedSpace 𝕜 V₂
inst✝⁹ : PseudoMetricSpace P₂
inst✝⁸ : NormedAddTorsor V₂ P₂
inst✝⁷ : SeminormedAddCommGroup V₃
inst✝⁶ : NormedSpace 𝕜 V₃
inst✝⁵ : PseudoMetricSpace P₃
inst✝⁴ : NormedAddTorsor V₃ P₃
inst✝³ : SeminormedAddCommGroup V₄
inst✝² : NormedSpace 𝕜 V₄
inst✝¹ : PseudoMetricSpace P₄
inst✝ : NormedAddTorsor V₄ P₄
e : V ≃ₗᵢ[𝕜] V₂
⊢ ⇑e.toAffineIsometryEquiv = ⇑e
state_after: no goals
tactic: rfl
Theorem: Nat.Prime.mod_four_ne_three_of_dvd_isSquare_neg_one
File: Mathlib/NumberTheory/SumTwoSquares.lean

Proof steps:
state_before: p n : ℕ
hpp : Prime p
hp : p ∣ n
hs : IsSquare (-1)
⊢ p % 4 ≠ 3
state_after: case intro
p n : ℕ
hpp : Prime p
hp : p ∣ n
hs : IsSquare (-1)
y : ZMod p
h : -1 = y * y
⊢ p % 4 ≠ 3
tactic: obtain ⟨y, h⟩ := ZMod.isSquare_neg_one_of_dvd hp hs
state_before: case intro
p n : ℕ
hpp : Prime p
hp : p ∣ n
hs : IsSquare (-1)
y : ZMod p
h : -1 = y * y
⊢ p % 4 ≠ 3
state_after: case intro
p n : ℕ
hpp : Prime p
hp : p ∣ n
hs : IsSquare (-1)
y : ZMod p
h : y ^ 2 = -1 ^ 2
⊢ p % 4 ≠ 3
tactic: rw [← sq, eq_comm, show (-1 : ZMod p) = -1 ^ 2 by ring] at h
state_before: case intro
p n : ℕ
hpp : Prime p
hp : p ∣ n
hs : IsSquare (-1)
y : ZMod p
h : y ^ 2 = -1 ^ 2
⊢ p % 4 ≠ 3
state_after: case intro
p n : ℕ
hpp : Prime p
hp : p ∣ n
hs : IsSquare (-1)
y : ZMod p
h : y ^ 2 = -1 ^ 2
this : Fact (Prime p)
⊢ p % 4 ≠ 3
tactic: haveI : Fact p.Prime := ⟨hpp⟩
state_before: case intro
p n : ℕ
hpp : Prime p
hp : p ∣ n
hs : IsSquare (-1)
y : ZMod p
h : y ^ 2 = -1 ^ 2
this : Fact (Prime p)
⊢ p % 4 ≠ 3
state_after: no goals
tactic: exact ZMod.mod_four_ne_three_of_sq_eq_neg_sq' one_ne_zero h
Theorem: Seminorm.uniformSpace_eq_of_hasBasis
File: Mathlib/Analysis/Seminorm.lean

Proof steps:
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
ι : Sort u_13
inst✝² : UniformSpace E
inst✝¹ : UniformAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p' : ι → Prop
s : ι → Set E
p : Seminorm 𝕜 E
hb : (𝓝 0).HasBasis p' s
h₁ : ∃ r, p.closedBall 0 r ∈ 𝓝 0
h₂ : ∀ (i : ι), p' i → ∃ r > 0, p.ball 0 r ⊆ s i
⊢ inst✝² = PseudoMetricSpace.toUniformSpace
state_after: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
ι : Sort u_13
inst✝² : UniformSpace E
inst✝¹ : UniformAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p' : ι → Prop
s : ι → Set E
p : Seminorm 𝕜 E
hb : (𝓝 0).HasBasis p' s
h₁ : ∃ r, p.closedBall 0 r ∈ 𝓝 0
h₂ : ∀ (i : ι), p' i → ∃ r > 0, p.ball 0 r ⊆ s i
⊢ 𝓝 0 = 𝓝 0
tactic: refine UniformAddGroup.ext ‹_› p.toAddGroupSeminorm.toSeminormedAddCommGroup.to_uniformAddGroup ?_
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
ι : Sort u_13
inst✝² : UniformSpace E
inst✝¹ : UniformAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p' : ι → Prop
s : ι → Set E
p : Seminorm 𝕜 E
hb : (𝓝 0).HasBasis p' s
h₁ : ∃ r, p.closedBall 0 r ∈ 𝓝 0
h₂ : ∀ (i : ι), p' i → ∃ r > 0, p.ball 0 r ⊆ s i
⊢ 𝓝 0 = 𝓝 0
state_after: case a
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
ι : Sort u_13
inst✝² : UniformSpace E
inst✝¹ : UniformAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p' : ι → Prop
s : ι → Set E
p : Seminorm 𝕜 E
hb : (𝓝 0).HasBasis p' s
h₁ : ∃ r, p.closedBall 0 r ∈ 𝓝 0
h₂ : ∀ (i : ι), p' i → ∃ r > 0, p.ball 0 r ⊆ s i
⊢ 𝓝 0 ≤ 𝓝 0

case a
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι✝ : Type u_12
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : SeminormedRing 𝕝
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module 𝕜 E
inst✝³ : Module 𝕝 E
ι : Sort u_13
inst✝² : UniformSpace E
inst✝¹ : UniformAddGroup E
inst✝ : ContinuousConstSMul 𝕜 E
p' : ι → Prop
s : ι → Set E
p : Seminorm 𝕜 E
hb : (𝓝 0).HasBasis p' s
h₁ : ∃ r, p.closedBall 0 r ∈ 𝓝 0
h₂ : ∀ (i : ι), p' i → ∃ r > 0, p.ball 0 r ⊆ s i
⊢ 𝓝 0 ≤ 𝓝 0
tactic: apply le_antisymm
Theorem: ZFSet.IsTransitive.inter
File: Mathlib/SetTheory/ZFC/Ordinal.lean

Proof steps:
state_before: x y z✝ : ZFSet
hx : x.IsTransitive
hy : y.IsTransitive
z : ZFSet
hz : z ∈ x ∩ y
w : ZFSet
hw : w ∈ z
⊢ w ∈ x ∩ y
state_after: x y z✝ : ZFSet
hx : x.IsTransitive
hy : y.IsTransitive
z : ZFSet
hz : z ∈ x ∧ z ∈ y
w : ZFSet
hw : w ∈ z
⊢ w ∈ x ∧ w ∈ y
tactic: rw [mem_inter] at hz ⊢
state_before: x y z✝ : ZFSet
hx : x.IsTransitive
hy : y.IsTransitive
z : ZFSet
hz : z ∈ x ∧ z ∈ y
w : ZFSet
hw : w ∈ z
⊢ w ∈ x ∧ w ∈ y
state_after: no goals
tactic: exact ⟨hx.mem_trans hw hz.1, hy.mem_trans hw hz.2⟩