ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: MeasureTheory.hausdorffMeasure_homothety_image
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
inst✝⁸ : MeasurableSpace Y
inst✝⁷ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
d : ℝ
hd : 0 ≤ d
x : P
c : 𝕜
hc : c ≠ 0
s : Set P
⊢ μH[d] (⇑(IsometryEquiv.vaddConst x) '' ((fun x => c • x) '' (⇑(IsometryEquiv.vaddConst x).symm '' s))) =
    ‖c‖₊ ^ d • μH[d] s
state_after: ι : Type u_1
X : Type u_2
Y : Type u_3
inst✝¹² : EMetricSpace X
inst✝¹¹ : EMetricSpace Y
inst✝¹⁰ : MeasurableSpace X
inst✝⁹ : BorelSpace X
inst✝⁸ : MeasurableSpace Y
inst✝⁷ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
d : ℝ
hd : 0 ≤ d
x : P
c : 𝕜
hc : c ≠ 0
s : Set P
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ μH[d] (⇑(IsometryEquiv.vaddConst x) '' ((fun x => c • x) '' (⇑(IsometryEquiv.vaddConst x).symm '' s))) =
    ‖c‖₊ ^ d • μH[d] s
tactic: borelize E
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
inst✝⁸ : MeasurableSpace Y
inst✝⁷ : BorelSpace Y
𝕜 : Type u_4
E : Type u_5
P : Type u_6
inst✝⁶ : NormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
d : ℝ
hd : 0 ≤ d
x : P
c : 𝕜
hc : c ≠ 0
s : Set P
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ μH[d] (⇑(IsometryEquiv.vaddConst x) '' ((fun x => c • x) '' (⇑(IsometryEquiv.vaddConst x).symm '' s))) =
    ‖c‖₊ ^ d • μH[d] s
state_after: no goals
tactic: rw [IsometryEquiv.hausdorffMeasure_image, Set.image_smul, Measure.hausdorffMeasure_smul₀ hd hc,
    IsometryEquiv.hausdorffMeasure_image]
Theorem: CompHausLike.pullback.hom_ext
File: Mathlib/Topology/Category/CompHausLike/Limits.lean

Proof steps:
state_before: P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
hfst : a ≫ fst f g = b ≫ fst f g
hsnd : a ≫ snd f g = b ≫ snd f g
⊢ a = b
state_after: case w
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
hfst : a ≫ fst f g = b ≫ fst f g
hsnd : a ≫ snd f g = b ≫ snd f g
z : (forget (CompHausLike P)).obj Z
⊢ a z = b z
tactic: ext z
state_before: case w
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
hfst : a ≫ fst f g = b ≫ fst f g
hsnd : a ≫ snd f g = b ≫ snd f g
z : (forget (CompHausLike P)).obj Z
⊢ a z = b z
state_after: case w
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
z : (forget (CompHausLike P)).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ a z = b z
tactic: apply_fun (fun q ↦ q z) at hfst hsnd
state_before: case w
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
z : (forget (CompHausLike P)).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ a z = b z
state_after: case w.a
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
z : (forget (CompHausLike P)).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ ↑(a z) = ↑(b z)
tactic: apply Subtype.ext
state_before: case w.a
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
z : (forget (CompHausLike P)).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ ↑(a z) = ↑(b z)
state_after: case w.a.a
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
z : (forget (CompHausLike P)).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ (↑(a z)).1 = (↑(b z)).1

case w.a.a
P : TopCat → Prop
X Y B : CompHausLike P
f : X ⟶ B
g : Y ⟶ B
inst✝ : HasExplicitPullback f g
Z : CompHausLike P
a b : Z ⟶ pullback f g
z : (forget (CompHausLike P)).obj Z
hfst : (a ≫ fst f g) z = (b ≫ fst f g) z
hsnd : (a ≫ snd f g) z = (b ≫ snd f g) z
⊢ (↑(a z)).2 = (↑(b z)).2
tactic: apply Prod.ext
Theorem: Set.Infinite.exists_accPt_cofinite_inf_principal
File: Mathlib/Topology/Compactness/Compact.lean

Proof steps:
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
s t : Set X
inst✝ : CompactSpace X
hs : s.Infinite
⊢ ∃ x, AccPt x (cofinite ⊓ 𝓟 s)
state_after: no goals
tactic: simpa only [mem_univ, true_and]
    using hs.exists_accPt_cofinite_inf_principal_of_subset_isCompact isCompact_univ s.subset_univ
Theorem: continuousAdd_inf
File: Mathlib/Topology/Algebra/Monoid.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝¹ : TopologicalSpace X
ι' : Sort u_6
inst✝ : Mul M
t₁ t₂ : TopologicalSpace M
h₁ : ContinuousMul M
h₂ : ContinuousMul M
⊢ ContinuousMul M
state_after: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝¹ : TopologicalSpace X
ι' : Sort u_6
inst✝ : Mul M
t₁ t₂ : TopologicalSpace M
h₁ : ContinuousMul M
h₂ : ContinuousMul M
b : Bool
⊢ ContinuousMul M
tactic: refine continuousMul_iInf fun b => ?_
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝¹ : TopologicalSpace X
ι' : Sort u_6
inst✝ : Mul M
t₁ t₂ : TopologicalSpace M
h₁ : ContinuousMul M
h₂ : ContinuousMul M
b : Bool
⊢ ContinuousMul M
state_after: no goals
tactic: cases b <;> assumption
Theorem: WeierstrassCurve.Jacobian.addMap_of_Z_eq_zero_right
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
P : PointClass F
Q : Fin 3 → F
hP : W.NonsingularLift P
hQ : W.Nonsingular Q
hQz : Q z = 0
⊢ W.addMap P ⟦Q⟧ = P
state_after: case mk
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P✝ : PointClass F
Q : Fin 3 → F
hQ : W.Nonsingular Q
hQz : Q z = 0
P : Fin 3 → F
hP : W.NonsingularLift (Quot.mk Setoid.r P)
⊢ W.addMap (Quot.mk Setoid.r P) ⟦Q⟧ = Quot.mk Setoid.r P
tactic: rcases P with ⟨P⟩
state_before: case mk
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P✝ : PointClass F
Q : Fin 3 → F
hQ : W.Nonsingular Q
hQz : Q z = 0
P : Fin 3 → F
hP : W.NonsingularLift (Quot.mk Setoid.r P)
⊢ W.addMap (Quot.mk Setoid.r P) ⟦Q⟧ = Quot.mk Setoid.r P
state_after: case pos
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P✝ : PointClass F
Q : Fin 3 → F
hQ : W.Nonsingular Q
hQz : Q z = 0
P : Fin 3 → F
hP : W.NonsingularLift (Quot.mk Setoid.r P)
hPz : P z = 0
⊢ W.addMap (Quot.mk Setoid.r P) ⟦Q⟧ = Quot.mk Setoid.r P

case neg
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P✝ : PointClass F
Q : Fin 3 → F
hQ : W.Nonsingular Q
hQz : Q z = 0
P : Fin 3 → F
hP : W.NonsingularLift (Quot.mk Setoid.r P)
hPz : ¬P z = 0
⊢ W.addMap (Quot.mk Setoid.r P) ⟦Q⟧ = Quot.mk Setoid.r P
tactic: by_cases hPz : P z = 0
Theorem: Real.sin_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

Proof steps:
state_before: ⊢ sin (π / 2) = 1 ∨ sin (π / 2) = -1
state_after: no goals
tactic: simpa [sq, mul_self_eq_one_iff] using sin_sq_add_cos_sq (π / 2)
state_before: this : sin (π / 2) = 1 ∨ sin (π / 2) = -1
h : sin (π / 2) = -1
⊢ ¬0 < -1
state_after: no goals
tactic: norm_num
Theorem: CategoryTheory.StructuredArrow.isoMk_inv_right
File: Mathlib/CategoryTheory/Comma/StructuredArrow.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
S S' S'' : D
Y Y' Y'' : C
T T' : C ⥤ D
f f' : StructuredArrow S T
g : f.right ≅ f'.right
w : autoParam (f.hom ≫ T.map g.hom = f'.hom) _auto✝
⊢ f.left = f'.left
state_after: no goals
tactic: ext
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
D : Type u₂
inst✝ : Category.{v₂, u₂} D
S S' S'' : D
Y Y' Y'' : C
T T' : C ⥤ D
f f' : StructuredArrow S T
g : f.right ≅ f'.right
w : autoParam (f.hom ≫ T.map g.hom = f'.hom) _auto✝
⊢ (Functor.fromPUnit S).map (eqToIso ⋯).hom ≫ f'.hom = f.hom ≫ T.map g.hom
state_after: no goals
tactic: simpa using w.symm
Theorem: SetTheory.PGame.rightMoves_add_cases
File: Mathlib/SetTheory/Game/PGame.lean

Proof steps:
state_before: xl xr : Type u
x y : PGame
k : (x + y).RightMoves
P : (x + y).RightMoves → Prop
hl : ∀ (j : x.RightMoves), P (toRightMovesAdd (Sum.inl j))
hr : ∀ (j : y.RightMoves), P (toRightMovesAdd (Sum.inr j))
⊢ P k
state_after: xl xr : Type u
x y : PGame
k : (x + y).RightMoves
P : (x + y).RightMoves → Prop
hl : ∀ (j : x.RightMoves), P (toRightMovesAdd (Sum.inl j))
hr : ∀ (j : y.RightMoves), P (toRightMovesAdd (Sum.inr j))
⊢ P (toRightMovesAdd (toRightMovesAdd.symm k))
tactic: rw [← toRightMovesAdd.apply_symm_apply k]
state_before: xl xr : Type u
x y : PGame
k : (x + y).RightMoves
P : (x + y).RightMoves → Prop
hl : ∀ (j : x.RightMoves), P (toRightMovesAdd (Sum.inl j))
hr : ∀ (j : y.RightMoves), P (toRightMovesAdd (Sum.inr j))
⊢ P (toRightMovesAdd (toRightMovesAdd.symm k))
state_after: case inl
xl xr : Type u
x y : PGame
k : (x + y).RightMoves
P : (x + y).RightMoves → Prop
hl : ∀ (j : x.RightMoves), P (toRightMovesAdd (Sum.inl j))
hr : ∀ (j : y.RightMoves), P (toRightMovesAdd (Sum.inr j))
i : x.RightMoves
⊢ P (toRightMovesAdd (Sum.inl i))

case inr
xl xr : Type u
x y : PGame
k : (x + y).RightMoves
P : (x + y).RightMoves → Prop
hl : ∀ (j : x.RightMoves), P (toRightMovesAdd (Sum.inl j))
hr : ∀ (j : y.RightMoves), P (toRightMovesAdd (Sum.inr j))
i : y.RightMoves
⊢ P (toRightMovesAdd (Sum.inr i))
tactic: cases' toRightMovesAdd.symm k with i i
Theorem: Subgroup.normalClosure_eq_iInf
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
s : Set G
⊢ (normalClosure s).Normal
state_after: no goals
tactic: infer_instance
Theorem: intervalIntegral.integral_comp_mul_deriv''
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

Proof steps:
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
f✝¹ : ℝ → E
g' g✝ φ : ℝ → ℝ
a b : ℝ
inst✝ : CompleteSpace E
f✝ f'✝ : ℝ → E
f f' g : ℝ → ℝ
hf : ContinuousOn f [[a, b]]
hff' : ∀ x ∈ Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) (Ioi x) x
hf' : ContinuousOn f' [[a, b]]
hg : ContinuousOn g (f '' [[a, b]])
⊢ ∫ (x : ℝ) in a..b, (g ∘ f) x * f' x = ∫ (u : ℝ) in f a..f b, g u
state_after: no goals
tactic: simpa [mul_comm] using integral_comp_smul_deriv'' hf hff' hf' hg
Theorem: Equiv.Perm.support_conj
File: Mathlib/GroupTheory/Perm/Support.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ τ : Perm α
⊢ (σ * τ * σ⁻¹).support = map (Equiv.toEmbedding σ) τ.support
state_after: case a
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ τ : Perm α
a✝ : α
⊢ a✝ ∈ (σ * τ * σ⁻¹).support ↔ a✝ ∈ map (Equiv.toEmbedding σ) τ.support
tactic: ext
state_before: case a
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ τ : Perm α
a✝ : α
⊢ a✝ ∈ (σ * τ * σ⁻¹).support ↔ a✝ ∈ map (Equiv.toEmbedding σ) τ.support
state_after: no goals
tactic: simp only [mem_map_equiv, Perm.coe_mul, Function.comp_apply, Ne, Perm.mem_support,
    Equiv.eq_symm_apply, inv_def]
Theorem: _private.Mathlib.Logic.Godel.GodelBetaFunction.0.Nat.pairwise_coprime_coprimes
File: Mathlib/Logic/Godel/GodelBetaFunction.lean

Proof steps:
state_before: m : ℕ
a : Fin m → ℕ
⊢ Pairwise (Coprime on Nat.coprimes a)
state_after: m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
⊢ (Coprime on Nat.coprimes a) i j
tactic: intro i j hij
state_before: m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
⊢ (Coprime on Nat.coprimes a) i j
state_after: case inr
m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
this : ∀ {m : ℕ} (a : Fin m → ℕ) ⦃i j : Fin m⦄, i ≠ j → i < j → (Coprime on Nat.coprimes a) i j
ltij : ¬i < j
⊢ (Coprime on Nat.coprimes a) i j

m✝ m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
ltij : i < j
⊢ (Coprime on Nat.coprimes a) i j
tactic: wlog ltij : i < j
state_before: m✝ m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
ltij : i < j
⊢ (Coprime on Nat.coprimes a) i j
state_after: m✝ m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
ltij : i < j
⊢ ((↑i + 1) * (Nat.supOfSeq a)! + 1).Coprime ((↑j + 1) * (Nat.supOfSeq a)! + 1)
tactic: unfold Function.onFun coprimes
state_before: m✝ m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
ltij : i < j
⊢ ((↑i + 1) * (Nat.supOfSeq a)! + 1).Coprime ((↑j + 1) * (Nat.supOfSeq a)! + 1)
state_after: m✝ m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
ltij : i < j
hja : ↑j < Nat.supOfSeq a
⊢ ((↑i + 1) * (Nat.supOfSeq a)! + 1).Coprime ((↑j + 1) * (Nat.supOfSeq a)! + 1)
tactic: have hja : j < supOfSeq a := lt_of_lt_of_le j.prop (le_step (le_max_left _ _))
state_before: m✝ m : ℕ
a : Fin m → ℕ
i j : Fin m
hij : i ≠ j
ltij : i < j
hja : ↑j < Nat.supOfSeq a
⊢ ((↑i + 1) * (Nat.supOfSeq a)! + 1).Coprime ((↑j + 1) * (Nat.supOfSeq a)! + 1)
state_after: no goals
tactic: exact coprime_mul_succ
    (Nat.succ_le_succ $ le_of_lt ltij)
    (Nat.dvd_factorial
      (by simp [Nat.succ_sub_succ, ltij])
      (by simpa only [Nat.succ_sub_succ] using le_of_lt (lt_of_le_of_lt (sub_le j i) hja)))
Theorem: SimpleGraph.EdgeDisjointTriangles.farFromTriangleFree
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝⁴ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
inst✝³ : Fintype α
inst✝² : DecidableRel G.Adj
inst✝¹ : DecidableRel H.Adj
inst✝ : DecidableEq α
hG : G.EdgeDisjointTriangles
tris_big : ε * ↑(Fintype.card α ^ 2) ≤ ↑(G.cliqueFinset 3).card
⊢ (↑(G.cliqueFinset 3)).Pairwise fun x y => (↑x ∩ ↑y).Subsingleton
state_after: no goals
tactic: simpa using hG
Theorem: OrthonormalBasis.abs_det_adjustToOrientation
File: Mathlib/Analysis/InnerProductSpace/Orientation.lean

Proof steps:
state_before: E : Type u_1
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace ℝ E
ι : Type u_2
inst✝¹ : Fintype ι
inst✝ : DecidableEq ι
ne : Nonempty ι
e f : OrthonormalBasis ι ℝ E
x : Orientation ℝ E ι
v : ι → E
⊢ |(e.adjustToOrientation x).toBasis.det v| = |e.toBasis.det v|
state_after: no goals
tactic: simp [toBasis_adjustToOrientation]
Theorem: PrimeSpectrum.primeSpectrumProd_symm_inl
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

Proof steps:
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
⊢ (primeSpectrumProd R S).symm (Sum.inl x) = (comap (RingHom.fst R S)) x
state_after: case asIdeal.h
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
x✝ : R × S
⊢ x✝ ∈ ((primeSpectrumProd R S).symm (Sum.inl x)).asIdeal ↔ x✝ ∈ ((comap (RingHom.fst R S)) x).asIdeal
tactic: ext
state_before: case asIdeal.h
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
x : PrimeSpectrum R
x✝ : R × S
⊢ x✝ ∈ ((primeSpectrumProd R S).symm (Sum.inl x)).asIdeal ↔ x✝ ∈ ((comap (RingHom.fst R S)) x).asIdeal
state_after: no goals
tactic: simp [Ideal.prod]
Theorem: AlgebraicGeometry.image_morphismRestrict_preimage
File: Mathlib/AlgebraicGeometry/Restrict.lean

Proof steps:
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Y.Opens
V : Opens ↑↑(↑U).toPresheafedSpace
⊢ (f ⁻¹ᵁ U).ι ''ᵁ (f ∣_ U) ⁻¹ᵁ V = f ⁻¹ᵁ U.ι ''ᵁ V
state_after: case h
C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Y.Opens
V : Opens ↑↑(↑U).toPresheafedSpace
⊢ ↑((f ⁻¹ᵁ U).ι ''ᵁ (f ∣_ U) ⁻¹ᵁ V) = ↑(f ⁻¹ᵁ U.ι ''ᵁ V)
tactic: ext1
state_before: case h
C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Y.Opens
V : Opens ↑↑(↑U).toPresheafedSpace
⊢ ↑((f ⁻¹ᵁ U).ι ''ᵁ (f ∣_ U) ⁻¹ᵁ V) = ↑(f ⁻¹ᵁ U.ι ''ᵁ V)
state_after: case h.h
C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Y.Opens
V : Opens ↑↑(↑U).toPresheafedSpace
x : ↑↑X.toPresheafedSpace
⊢ x ∈ ↑((f ⁻¹ᵁ U).ι ''ᵁ (f ∣_ U) ⁻¹ᵁ V) ↔ x ∈ ↑(f ⁻¹ᵁ U.ι ''ᵁ V)
tactic: ext x
state_before: case h.h
C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Y.Opens
V : Opens ↑↑(↑U).toPresheafedSpace
x : ↑↑X.toPresheafedSpace
⊢ x ∈ ↑((f ⁻¹ᵁ U).ι ''ᵁ (f ∣_ U) ⁻¹ᵁ V) ↔ x ∈ ↑(f ⁻¹ᵁ U.ι ''ᵁ V)
state_after: case h.h.mp
C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Y.Opens
V : Opens ↑↑(↑U).toPresheafedSpace
x : ↑↑X.toPresheafedSpace
⊢ x ∈ ↑((f ⁻¹ᵁ U).ι ''ᵁ (f ∣_ U) ⁻¹ᵁ V) → x ∈ ↑(f ⁻¹ᵁ U.ι ''ᵁ V)

case h.h.mpr
C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Y.Opens
V : Opens ↑↑(↑U).toPresheafedSpace
x : ↑↑X.toPresheafedSpace
⊢ x ∈ ↑(f ⁻¹ᵁ U.ι ''ᵁ V) → x ∈ ↑((f ⁻¹ᵁ U).ι ''ᵁ (f ∣_ U) ⁻¹ᵁ V)
tactic: constructor
Theorem: AddMonoidHom.noncommCoprod_comp_inl
File: Mathlib/GroupTheory/NoncommCoprod.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : Monoid P
f : M →* P
g : N →* P
comm : ∀ (m : M) (n : N), Commute (f m) (g n)
x : M
⊢ ((f.noncommCoprod g comm).comp (inl M N)) x = f x
state_after: no goals
tactic: simp
Theorem: MeasureTheory.FiniteMeasure.testAgainstNN_add
File: Mathlib/MeasureTheory/Measure/FiniteMeasure.lean

Proof steps:
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
f₁ f₂ : Ω →ᵇ ℝ≥0
⊢ μ.testAgainstNN (f₁ + f₂) = μ.testAgainstNN f₁ + μ.testAgainstNN f₂
state_after: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
f₁ f₂ : Ω →ᵇ ℝ≥0
⊢ ∫⁻ (ω : Ω), ↑(f₁ ω) + ↑(f₂ ω) ∂↑μ = ∫⁻ (ω : Ω), ↑(f₁ ω) ∂↑μ + ∫⁻ (ω : Ω), ↑(f₂ ω) ∂↑μ
tactic: simp only [← ENNReal.coe_inj, BoundedContinuousFunction.coe_add, ENNReal.coe_add, Pi.add_apply,
    testAgainstNN_coe_eq]
state_before: Ω : Type u_1
inst✝⁶ : MeasurableSpace Ω
R : Type u_2
inst✝⁵ : SMul R ℝ≥0
inst✝⁴ : SMul R ℝ≥0∞
inst✝³ : IsScalarTower R ℝ≥0 ℝ≥0∞
inst✝² : IsScalarTower R ℝ≥0∞ ℝ≥0∞
inst✝¹ : TopologicalSpace Ω
inst✝ : OpensMeasurableSpace Ω
μ : FiniteMeasure Ω
f₁ f₂ : Ω →ᵇ ℝ≥0
⊢ ∫⁻ (ω : Ω), ↑(f₁ ω) + ↑(f₂ ω) ∂↑μ = ∫⁻ (ω : Ω), ↑(f₁ ω) ∂↑μ + ∫⁻ (ω : Ω), ↑(f₂ ω) ∂↑μ
state_after: no goals
tactic: exact lintegral_add_left (BoundedContinuousFunction.measurable_coe_ennreal_comp _) _
Theorem: Matrix.toMvPolynomial_mul
File: Mathlib/Algebra/Module/LinearMap/Polynomial.lean

Proof steps:
state_before: m : Type u_1
n : Type u_2
o : Type u_3
R : Type u_4
S : Type u_5
inst✝³ : Fintype n
inst✝² : Fintype o
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
M : Matrix m n R
N : Matrix n o R
i : m
⊢ (M * N).toMvPolynomial i = (bind₁ N.toMvPolynomial) (M.toMvPolynomial i)
state_after: no goals
tactic: simp only [toMvPolynomial, mul_apply, map_sum, Finset.sum_comm (γ := o), bind₁, aeval,
    AlgHom.coe_mk, coe_eval₂Hom, eval₂_monomial, algebraMap_apply, Algebra.id.map_eq_id,
    RingHom.id_apply, C_apply, pow_zero, Finsupp.prod_single_index, pow_one, Finset.mul_sum,
    monomial_mul, zero_add]
Theorem: IntermediateField.adjoin_simple_toSubalgebra_of_integral
File: Mathlib/FieldTheory/Adjoin.lean

Proof steps:
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
α : E
hα : IsIntegral F α
⊢ F⟮α⟯.toSubalgebra = Algebra.adjoin F {α}
state_after: case hS
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
α : E
hα : IsIntegral F α
⊢ ∀ x ∈ {α}, IsAlgebraic F x
tactic: apply adjoin_algebraic_toSubalgebra
state_before: case hS
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
α : E
hα : IsIntegral F α
⊢ ∀ x ∈ {α}, IsAlgebraic F x
state_after: case hS
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
x : E
hα : IsIntegral F x
⊢ IsAlgebraic F x
tactic: rintro x (rfl : x = α)
state_before: case hS
F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
S : Set E
x : E
hα : IsIntegral F x
⊢ IsAlgebraic F x
state_after: no goals
tactic: rwa [isAlgebraic_iff_isIntegral]
Theorem: Ideal.mem_normalizedFactors_iff
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✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p I : Ideal A
hI : I ≠ ⊥
⊢ p ∈ normalizedFactors I ↔ p.IsPrime ∧ I ≤ p
state_after: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p I : Ideal A
hI : I ≠ ⊥
⊢ p ∈ normalizedFactors I ↔ p.IsPrime ∧ p ∣ I
tactic: rw [← Ideal.dvd_iff_le]
state_before: R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p I : Ideal A
hI : I ≠ ⊥
⊢ p ∈ normalizedFactors I ↔ p.IsPrime ∧ p ∣ I
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✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p I : Ideal A
hI : I ≠ ⊥
hp : p = 0
⊢ p ∈ normalizedFactors I ↔ p.IsPrime ∧ p ∣ I

case neg
R : Type u_1
A : Type u_2
K : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Field K
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
p I : Ideal A
hI : I ≠ ⊥
hp : ¬p = 0
⊢ p ∈ normalizedFactors I ↔ p.IsPrime ∧ p ∣ I
tactic: by_cases hp : p = 0