ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Bornology.isVonNBounded_iff_tendsto_smallSets_nhds
File: Mathlib/Analysis/LocallyConvex/Bounded.lean

Proof steps:
state_before: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S : Set E
⊢ IsVonNBounded 𝕜 S ↔ Tendsto (fun x => x • S) (𝓝 0) (𝓝 0).smallSets
state_after: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S : Set E
⊢ IsVonNBounded 𝕜 S ↔ ∀ t ∈ 𝓝 0, ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ t
tactic: rw [tendsto_smallSets_iff]
state_before: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S : Set E
⊢ IsVonNBounded 𝕜 S ↔ ∀ t ∈ 𝓝 0, ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ t
state_after: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S V : Set E
hV : V ∈ 𝓝 0
⊢ Absorbs 𝕜 V S ↔ ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ V
tactic: refine forall₂_congr fun V hV ↦ ?_
state_before: 𝕜✝ : Type u_1
𝕜' : Type u_2
E✝ : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
𝕜 : Type u_7
E : Type u_8
inst✝³ : NormedDivisionRing 𝕜
inst✝² : AddCommGroup E
inst✝¹ : Module 𝕜 E
inst✝ : TopologicalSpace E
S V : Set E
hV : V ∈ 𝓝 0
⊢ Absorbs 𝕜 V S ↔ ∀ᶠ (x : 𝕜) in 𝓝 0, x • S ⊆ V
state_after: no goals
tactic: simp only [absorbs_iff_eventually_nhds_zero (mem_of_mem_nhds hV), mapsTo', image_smul]
Theorem: IsIntegral.det
File: Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁷ : CommRing R
inst✝⁶ : CommRing A
inst✝⁵ : Ring B
inst✝⁴ : CommRing S
inst✝³ : Algebra R A
inst✝² : Algebra R B
f✝ f : R →+* S
n : Type u_5
inst✝¹ : Fintype n
inst✝ : DecidableEq n
M : Matrix n n A
h : ∀ (i j : n), IsIntegral R (M i j)
⊢ IsIntegral R M.det
state_after: R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁷ : CommRing R
inst✝⁶ : CommRing A
inst✝⁵ : Ring B
inst✝⁴ : CommRing S
inst✝³ : Algebra R A
inst✝² : Algebra R B
f✝ f : R →+* S
n : Type u_5
inst✝¹ : Fintype n
inst✝ : DecidableEq n
M : Matrix n n A
h : ∀ (i j : n), IsIntegral R (M i j)
⊢ IsIntegral R (∑ σ : Equiv.Perm n, Equiv.Perm.sign σ • ∏ i : n, M (σ i) i)
tactic: rw [Matrix.det_apply]
state_before: R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁷ : CommRing R
inst✝⁶ : CommRing A
inst✝⁵ : Ring B
inst✝⁴ : CommRing S
inst✝³ : Algebra R A
inst✝² : Algebra R B
f✝ f : R →+* S
n : Type u_5
inst✝¹ : Fintype n
inst✝ : DecidableEq n
M : Matrix n n A
h : ∀ (i j : n), IsIntegral R (M i j)
⊢ IsIntegral R (∑ σ : Equiv.Perm n, Equiv.Perm.sign σ • ∏ i : n, M (σ i) i)
state_after: no goals
tactic: exact IsIntegral.sum _ fun σ _hσ ↦ (IsIntegral.prod _ fun i _hi => h _ _).zsmul _
Theorem: MulOpposite.semiconjBy_unop
File: Mathlib/Algebra/Group/Opposite.lean

Proof steps:
state_before: α : Type u_1
inst✝ : Mul α
a x y : αᵐᵒᵖ
⊢ SemiconjBy (unop a) (unop y) (unop x) ↔ SemiconjBy a x y
state_after: no goals
tactic: conv_rhs => rw [← op_unop a, ← op_unop x, ← op_unop y, semiconjBy_op]
Theorem: CoxeterSystem.IsReflection.conj
File: Mathlib/GroupTheory/Coxeter/Inversion.lean

Proof steps:
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
t : W
ht : cs.IsReflection t
w : W
⊢ cs.IsReflection (w * t * w⁻¹)
state_after: case intro.intro
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w u : W
i : B
⊢ cs.IsReflection (w * (u * cs.simple i * u⁻¹) * w⁻¹)
tactic: obtain ⟨u, i, rfl⟩ := ht
state_before: case intro.intro
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w u : W
i : B
⊢ cs.IsReflection (w * (u * cs.simple i * u⁻¹) * w⁻¹)
state_after: case h
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w u : W
i : B
⊢ w * (u * cs.simple i * u⁻¹) * w⁻¹ = w * u * cs.simple i * (w * u)⁻¹
tactic: use w * u, i
state_before: case h
B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w u : W
i : B
⊢ w * (u * cs.simple i * u⁻¹) * w⁻¹ = w * u * cs.simple i * (w * u)⁻¹
state_after: no goals
tactic: group
Theorem: MeasureTheory.lpMeasSubgroupToLpTrim_norm_map
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean

Proof steps:
state_before: α : Type u_1
E' : Type u_2
F : Type u_3
F' : Type u_4
𝕜 : Type u_5
p : ℝ≥0∞
inst✝¹⁰ : RCLike 𝕜
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
ι : Type u_6
m m0 : MeasurableSpace α
μ : Measure α
hp : Fact (1 ≤ p)
hm : m ≤ m0
f : ↥(lpMeasSubgroup F m p μ)
⊢ ‖lpMeasSubgroupToLpTrim F p μ hm f‖ = ‖f‖
state_after: α : Type u_1
E' : Type u_2
F : Type u_3
F' : Type u_4
𝕜 : Type u_5
p : ℝ≥0∞
inst✝¹⁰ : RCLike 𝕜
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
ι : Type u_6
m m0 : MeasurableSpace α
μ : Measure α
hp : Fact (1 ≤ p)
hm : m ≤ m0
f : ↥(lpMeasSubgroup F m p μ)
⊢ ‖↑f‖ = ‖f‖
tactic: rw [Lp.norm_def, eLpNorm_trim hm (Lp.stronglyMeasurable _),
    eLpNorm_congr_ae (lpMeasSubgroupToLpTrim_ae_eq hm _), lpMeasSubgroup_coe, ← Lp.norm_def]
state_before: α : Type u_1
E' : Type u_2
F : Type u_3
F' : Type u_4
𝕜 : Type u_5
p : ℝ≥0∞
inst✝¹⁰ : RCLike 𝕜
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : InnerProductSpace 𝕜 E'
inst✝⁷ : CompleteSpace E'
inst✝⁶ : NormedSpace ℝ E'
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace 𝕜 F'
inst✝¹ : NormedSpace ℝ F'
inst✝ : CompleteSpace F'
ι : Type u_6
m m0 : MeasurableSpace α
μ : Measure α
hp : Fact (1 ≤ p)
hm : m ≤ m0
f : ↥(lpMeasSubgroup F m p μ)
⊢ ‖↑f‖ = ‖f‖
state_after: no goals
tactic: congr
Theorem: Ordnode.Bounded.dual_iff
File: Mathlib/Data/Ordmap/Ordset.lean

Proof steps:
state_before: α : Type u_1
inst✝ : Preorder α
t : Ordnode α
o₁ : WithBot α
o₂ : WithTop α
h : t.dual.Bounded o₂ o₁
⊢ t.Bounded o₁ o₂
state_after: α : Type u_1
inst✝ : Preorder α
t : Ordnode α
o₁ : WithBot α
o₂ : WithTop α
h : t.dual.Bounded o₂ o₁
this : t.dual.dual.Bounded o₁ o₂
⊢ t.Bounded o₁ o₂
tactic: have := Bounded.dual h
state_before: α : Type u_1
inst✝ : Preorder α
t : Ordnode α
o₁ : WithBot α
o₂ : WithTop α
h : t.dual.Bounded o₂ o₁
this : t.dual.dual.Bounded o₁ o₂
⊢ t.Bounded o₁ o₂
state_after: no goals
tactic: rwa [dual_dual, OrderDual.Preorder.dual_dual] at this
Theorem: Multiset.sum_map_erase
File: Mathlib/Algebra/BigOperators/Group/Multiset.lean

Proof steps:
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝² : CommMonoid α
inst✝¹ : CommMonoid β
s t : Multiset α
a✝ : α
m : Multiset ι
f g : ι → α
inst✝ : DecidableEq ι
a : ι
h : a ∈ m
⊢ f a * (map f (m.erase a)).prod = (map f m).prod
state_after: no goals
tactic: rw [← m.coe_toList, coe_erase, map_coe, map_coe, prod_coe, prod_coe,
    List.prod_map_erase f (mem_toList.2 h)]
Theorem: NumberField.Units.finrank_eq_rank
File: Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean

Proof steps:
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ inst✝ : NumberField K
⊢ finrank ℝ ({ w // w ≠ w₀ } → ℝ) = rank K
state_after: no goals
tactic: simp only [finrank_fintype_fun_eq_card, Fintype.card_subtype_compl,
    Fintype.card_ofSubsingleton, rank]
Theorem: Finsupp.toMultiset_inf
File: Mathlib/Data/Finsupp/Multiset.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : DecidableEq α
f g : α →₀ ℕ
⊢ toMultiset (f ⊓ g) = toMultiset f ∩ toMultiset g
state_after: case a
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : DecidableEq α
f g : α →₀ ℕ
a✝ : α
⊢ Multiset.count a✝ (toMultiset (f ⊓ g)) = Multiset.count a✝ (toMultiset f ∩ toMultiset g)
tactic: ext
state_before: case a
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝ : DecidableEq α
f g : α →₀ ℕ
a✝ : α
⊢ Multiset.count a✝ (toMultiset (f ⊓ g)) = Multiset.count a✝ (toMultiset f ∩ toMultiset g)
state_after: no goals
tactic: simp_rw [Multiset.count_inter, Finsupp.count_toMultiset, Finsupp.inf_apply, inf_eq_min]
Theorem: AlgebraicGeometry.LocallyRingedSpace.stalkMap_congr
File: Mathlib/Geometry/RingedSpace/LocallyRingedSpace.lean

Proof steps:
state_before: X✝ X Y Z : LocallyRingedSpace
f✝ : X ⟶ Y
g✝ : Y ⟶ Z
f g : X ⟶ Y
hfg : f = g
x x' : ↑X.toTopCat
hxx' : x = x'
⊢ Hom.stalkMap f x ≫ X.presheaf.stalkSpecializes ⋯ = Y.presheaf.stalkSpecializes ⋯ ≫ Hom.stalkMap g x'
state_after: X✝ X Y Z : LocallyRingedSpace
f✝ : X ⟶ Y
g : Y ⟶ Z
f : X ⟶ Y
x x' : ↑X.toTopCat
hxx' : x = x'
⊢ Hom.stalkMap f x ≫ X.presheaf.stalkSpecializes ⋯ = Y.presheaf.stalkSpecializes ⋯ ≫ Hom.stalkMap f x'
tactic: subst hfg
state_before: X✝ X Y Z : LocallyRingedSpace
f✝ : X ⟶ Y
g : Y ⟶ Z
f : X ⟶ Y
x x' : ↑X.toTopCat
hxx' : x = x'
⊢ Hom.stalkMap f x ≫ X.presheaf.stalkSpecializes ⋯ = Y.presheaf.stalkSpecializes ⋯ ≫ Hom.stalkMap f x'
state_after: X✝ X Y Z : LocallyRingedSpace
f✝ : X ⟶ Y
g : Y ⟶ Z
f : X ⟶ Y
x : ↑X.toTopCat
⊢ Hom.stalkMap f x ≫ X.presheaf.stalkSpecializes ⋯ = Y.presheaf.stalkSpecializes ⋯ ≫ Hom.stalkMap f x
tactic: subst hxx'
state_before: X✝ X Y Z : LocallyRingedSpace
f✝ : X ⟶ Y
g : Y ⟶ Z
f : X ⟶ Y
x : ↑X.toTopCat
⊢ Hom.stalkMap f x ≫ X.presheaf.stalkSpecializes ⋯ = Y.presheaf.stalkSpecializes ⋯ ≫ Hom.stalkMap f x
state_after: no goals
tactic: simp
Theorem: Matrix.posSemidef_submatrix_equiv
File: Mathlib/LinearAlgebra/Matrix/PosDef.lean

Proof steps:
state_before: m : Type u_1
n : Type u_2
R : Type u_3
𝕜 : Type u_4
inst✝⁶ : Fintype m
inst✝⁵ : Fintype n
inst✝⁴ : CommRing R
inst✝³ : PartialOrder R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : RCLike 𝕜
M : Matrix n n R
e : m ≃ n
h : (M.submatrix ⇑e ⇑e).PosSemidef
⊢ M.PosSemidef
state_after: no goals
tactic: simpa using h.submatrix e.symm
Theorem: MeasureTheory.Integrable.left_of_add_measure
File: Mathlib/MeasureTheory/Function/L1Space.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
h : Integrable f (μ + ν)
⊢ Integrable f μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
h : Memℒp f 1 (μ + ν)
⊢ Memℒp f 1 μ
tactic: rw [← memℒp_one_iff_integrable] at h ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
h : Memℒp f 1 (μ + ν)
⊢ Memℒp f 1 μ
state_after: no goals
tactic: exact h.left_of_add_measure
Theorem: NumberField.Units.dirichletUnitTheorem.logEmbedding_eq_zero_iff
File: Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean

Proof steps:
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : (𝓞 K)ˣ
⊢ (logEmbedding K) x = 0 ↔ x ∈ torsion K
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : (𝓞 K)ˣ
⊢ (logEmbedding K) x = 0 ↔ ∀ (w : InfinitePlace K), w ((algebraMap (𝓞 K) K) ↑x) = 1
tactic: rw [mem_torsion]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : (𝓞 K)ˣ
⊢ (logEmbedding K) x = 0 ↔ ∀ (w : InfinitePlace K), w ((algebraMap (𝓞 K) K) ↑x) = 1
state_after: case refine_1
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : (𝓞 K)ˣ
h : (logEmbedding K) x = 0
w : InfinitePlace K
⊢ w ((algebraMap (𝓞 K) K) ↑x) = 1

case refine_2
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : (𝓞 K)ˣ
h : ∀ (w : InfinitePlace K), w ((algebraMap (𝓞 K) K) ↑x) = 1
⊢ (logEmbedding K) x = 0
tactic: refine ⟨fun h w => ?_, fun h => ?_⟩
Theorem: Real.mul_logb
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

Proof steps:
state_before: b✝ x y a b c : ℝ
h₁ : b ≠ 0
h₂ : b ≠ 1
h₃ : b ≠ -1
⊢ logb a b * logb b c = logb a c
state_after: b✝ x y a b c : ℝ
h₁ : b ≠ 0
h₂ : b ≠ 1
h₃ : b ≠ -1
⊢ log b / log a * (log c / log b) = log c / log a
tactic: unfold logb
state_before: b✝ x y a b c : ℝ
h₁ : b ≠ 0
h₂ : b ≠ 1
h₃ : b ≠ -1
⊢ log b / log a * (log c / log b) = log c / log a
state_after: no goals
tactic: rw [mul_comm, div_mul_div_cancel _ (log_ne_zero.mpr ⟨h₁, h₂, h₃⟩)]
Theorem: dimH_image_le_of_locally_lipschitzOn
File: Mathlib/Topology/MetricSpace/HausdorffDimension.lean

Proof steps:
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s✝ t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
s : Set X
hf : ∀ x ∈ s, ∃ C, ∃ t ∈ 𝓝[s] x, LipschitzOnWith C f t
⊢ dimH (f '' s) ≤ dimH s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s✝ t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
s : Set X
hf : ∀ x ∈ s, ∃ C, ∃ t ∈ 𝓝[s] x, LipschitzOnWith C f t
this : ∀ x ∈ s, ∃ C, ∃ t ∈ 𝓝[s] x, HolderOnWith C 1 f t
⊢ dimH (f '' s) ≤ dimH s
tactic: have : ∀ x ∈ s, ∃ C : ℝ≥0, ∃ t ∈ 𝓝[s] x, HolderOnWith C 1 f t := by
    simpa only [holderOnWith_one] using hf
state_before: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝² : EMetricSpace X
inst✝¹ : EMetricSpace Y
C K r : ℝ≥0
f✝ : X → Y
s✝ t : Set X
inst✝ : SecondCountableTopology X
f : X → Y
s : Set X
hf : ∀ x ∈ s, ∃ C, ∃ t ∈ 𝓝[s] x, LipschitzOnWith C f t
this : ∀ x ∈ s, ∃ C, ∃ t ∈ 𝓝[s] x, HolderOnWith C 1 f t
⊢ dimH (f '' s) ≤ dimH s
state_after: no goals
tactic: simpa only [ENNReal.coe_one, div_one] using dimH_image_le_of_locally_holder_on zero_lt_one this
Theorem: Nat.dist_tri_right'
File: Mathlib/Data/Nat/Dist.lean

Proof steps:
state_before: n m : ℕ
⊢ n ≤ m + n.dist m
state_after: n m : ℕ
⊢ n ≤ m + m.dist n
tactic: rw [dist_comm]
state_before: n m : ℕ
⊢ n ≤ m + m.dist n
state_after: no goals
tactic: apply dist_tri_right
Theorem: abs_dist_sub_le_dist_add_add
File: Mathlib/Analysis/Normed/Group/Uniform.lean

Proof steps:
state_before: 𝓕 : Type u_1
α : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a a₁✝ a₂✝ b b₁✝ b₂✝ : E
r r₁ r₂ : ℝ
a₁ a₂ b₁ b₂ : E
⊢ |dist a₁ b₁ - dist a₂ b₂| ≤ dist (a₁ * a₂) (b₁ * b₂)
state_after: no goals
tactic: simpa only [dist_mul_left, dist_mul_right, dist_comm b₂] using
    abs_dist_sub_le (a₁ * a₂) (b₁ * b₂) (b₁ * a₂)
Theorem: MeasureTheory.self_mem_ae_restrict
File: Mathlib/MeasureTheory/Measure/Restrict.lean

Proof steps:
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
hs : MeasurableSet s
⊢ s ∈ ae (μ.restrict s)
state_after: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
hs : MeasurableSet s
⊢ ∃ t₁ ∈ ae μ, ∃ t₂, s ⊆ t₂ ∧ s = t₁ ∩ t₂
tactic: simp only [ae_restrict_eq hs, exists_prop, mem_principal, mem_inf_iff]
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
hs : MeasurableSet s
⊢ ∃ t₁ ∈ ae μ, ∃ t₂, s ⊆ t₂ ∧ s = t₁ ∩ t₂
state_after: no goals
tactic: exact ⟨_, univ_mem, s, Subset.rfl, (univ_inter s).symm⟩
Theorem: forall_existsUnique_iff
File: Mathlib/Logic/Function/Basic.lean

Proof steps:
state_before: α : Sort u_1
β : Sort u_2
r : α → β → Prop
⊢ (∀ (a : α), ∃! b, r a b) ↔ ∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b
state_after: case refine_1
α : Sort u_1
β : Sort u_2
r : α → β → Prop
h : ∀ (a : α), ∃! b, r a b
⊢ ∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b

case refine_2
α : Sort u_1
β : Sort u_2
r : α → β → Prop
⊢ (∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b) → ∀ (a : α), ∃! b, r a b
tactic: refine ⟨fun h ↦ ?_, ?_⟩
Theorem: Stream'.mem_of_mem_even
File: Mathlib/Data/Stream/Init.lean

Proof steps:
state_before: α : Type u
β : Type v
δ : Type w
a : α
s : Stream' α
x✝ : a ∈ s.even
n : ℕ
h : (fun b => a = b) (s.even.get n)
⊢ (fun b => a = b) (s.get (2 * n))
state_after: no goals
tactic: rw [h, get_even]
Theorem: eq_or_eq_neg_of_abs_eq
File: Mathlib/Algebra/Order/Group/Unbundled/Abs.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Group α
inst✝ : LinearOrder α
a b : α
h : mabs a = b
⊢ a = b ∨ a = b⁻¹
state_after: no goals
tactic: simpa only [← h, eq_comm (a := |a|ₘ), inv_eq_iff_eq_inv] using mabs_choice a
Theorem: Polynomial.splits_of_map_eq_C
File: Mathlib/Algebra/Polynomial/Splits.lean

Proof steps:
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
a : L
h : map i f = C a
this : DecidableEq L := Classical.decEq L
ha : ¬a = 0
g✝ : L[X]
hg : Irreducible g✝
x✝ : g✝ ∣ map i f
p : L[X]
hp : map i f = g✝ * p
⊢ g✝.degree = 0
state_after: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
a : L
h : map i f = C a
this✝ : DecidableEq L := Classical.decEq L
ha : ¬a = 0
g✝ : L[X]
hg : Irreducible g✝
x✝ : g✝ ∣ map i f
p : L[X]
hp : map i f = g✝ * p
this : (map i f).degree = (g✝ * p).degree
⊢ g✝.degree = 0
tactic: have := congr_arg degree hp
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
a : L
h : map i f = C a
this✝ : DecidableEq L := Classical.decEq L
ha : ¬a = 0
g✝ : L[X]
hg : Irreducible g✝
x✝ : g✝ ∣ map i f
p : L[X]
hp : map i f = g✝ * p
this : (map i f).degree = (g✝ * p).degree
⊢ g✝.degree = 0
state_after: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
a : L
h : map i f = C a
this✝ : DecidableEq L := Classical.decEq L
ha : ¬a = 0
g✝ : L[X]
hg : Irreducible g✝
x✝ : g✝ ∣ map i f
p : L[X]
hp : map i f = g✝ * p
this : g✝.degree = 0 ∧ p.degree = 0
⊢ g✝.degree = 0
tactic: rw [h, degree_C ha, degree_mul, @eq_comm (WithBot ℕ) 0,
                Nat.WithBot.add_eq_zero_iff] at this
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝² : CommRing K
inst✝¹ : Field L
inst✝ : Field F
i : K →+* L
f : K[X]
a : L
h : map i f = C a
this✝ : DecidableEq L := Classical.decEq L
ha : ¬a = 0
g✝ : L[X]
hg : Irreducible g✝
x✝ : g✝ ∣ map i f
p : L[X]
hp : map i f = g✝ * p
this : g✝.degree = 0 ∧ p.degree = 0
⊢ g✝.degree = 0
state_after: no goals
tactic: exact this.1
Theorem: homotopyEquivalences_le_quasiIso
File: Mathlib/Algebra/Homology/QuasiIso.lean

Proof steps:
state_before: ι : Type u_1
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
e : HomotopyEquiv K L
inst✝² : ∀ (i : ι), K.HasHomology i
inst✝¹ : ∀ (i : ι), L.HasHomology i
inst✝ : CategoryWithHomology C
⊢ homotopyEquivalences C c ≤ quasiIso C c
state_after: case intro
ι : Type u_1
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ quasiIso C c e.hom
tactic: rintro K L _ ⟨e, rfl⟩
state_before: case intro
ι : Type u_1
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ quasiIso C c e.hom
state_after: case intro
ι : Type u_1
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ QuasiIso e.hom
tactic: simp only [HomologicalComplex.mem_quasiIso_iff]
state_before: case intro
ι : Type u_1
C : Type u
inst✝⁴ : Category.{v, u} C
inst✝³ : Preadditive C
c : ComplexShape ι
K✝ L✝ : HomologicalComplex C c
e✝ : HomotopyEquiv K✝ L✝
inst✝² : ∀ (i : ι), K✝.HasHomology i
inst✝¹ : ∀ (i : ι), L✝.HasHomology i
inst✝ : CategoryWithHomology C
K L : HomologicalComplex C c
e : HomotopyEquiv K L
⊢ QuasiIso e.hom
state_after: no goals
tactic: infer_instance
Theorem: Int.fract_int_add
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✝ : α
m : ℤ
a : α
⊢ fract (↑m + a) = fract a
state_after: no goals
tactic: rw [add_comm, fract_add_int]
Theorem: Submodule.comap_map_mkQ
File: Mathlib/LinearAlgebra/Quotient.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
⊢ comap p.mkQ (map p.mkQ p') = p ⊔ p'
state_after: no goals
tactic: simp [comap_map_eq, sup_comm]
Theorem: Multiset.ext
File: Mathlib/Data/Multiset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ s t : Multiset α
_l₁ _l₂ : List α
⊢ _l₁ ≈ _l₂ ↔ ∀ (a : α), count a ⟦_l₁⟧ = count a ⟦_l₂⟧
state_after: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ s t : Multiset α
_l₁ _l₂ : List α
⊢ _l₁ ≈ _l₂ ↔ ∀ (a : α), List.count a _l₁ = List.count a _l₂
tactic: simp only [quot_mk_to_coe, filter_coe, mem_coe, coe_count, decide_eq_true_eq]
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ s t : Multiset α
_l₁ _l₂ : List α
⊢ _l₁ ≈ _l₂ ↔ ∀ (a : α), List.count a _l₁ = List.count a _l₂
state_after: no goals
tactic: apply perm_iff_count
Theorem: toIcoMod_sub_eq_sub
File: Mathlib/Algebra/Order/ToIntervalMod.lean

Proof steps:
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
⊢ toIcoMod hp a (b - c) = toIcoMod hp (a + c) b - c
state_after: no goals
tactic: simp_rw [toIcoMod, toIcoDiv_sub_eq_toIcoDiv_add, sub_right_comm]
Theorem: _private.Mathlib.AlgebraicGeometry.EllipticCurve.DivisionPolynomial.Degree.0.WeierstrassCurve.expDegree_cast
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Degree.lean

Proof steps:
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
hn : n ≠ 0
⊢ 2 * ↑(WeierstrassCurve.expDegree n) = ↑n ^ 2 - if Even n then 4 else 1
state_after: case intro.inl
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
hn : 2 * n ≠ 0
⊢ 2 * ↑(WeierstrassCurve.expDegree (2 * n)) = ↑(2 * n) ^ 2 - if Even (2 * n) then 4 else 1

case intro.inr
R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
n : ℕ
hn : 2 * n + 1 ≠ 0
⊢ 2 * ↑(WeierstrassCurve.expDegree (2 * n + 1)) = ↑(2 * n + 1) ^ 2 - if Even (2 * n + 1) then 4 else 1
tactic: rcases n.even_or_odd' with ⟨n, rfl | rfl⟩
Theorem: zsmul_zero
File: Mathlib/Algebra/Group/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a b c d : α
n : ℕ
⊢ 1 ^ ↑n = 1
state_after: no goals
tactic: rw [zpow_natCast, one_pow]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : DivisionMonoid α
a b c d : α
n : ℕ
⊢ 1 ^ Int.negSucc n = 1
state_after: no goals
tactic: rw [zpow_negSucc, one_pow, inv_one]