ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Ordinal.mod_self
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
a0 : a = 0
⊢ a % a = 0
state_after: no goals
tactic: simp only [a0, zero_mod]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a : Ordinal.{u_4}
a0 : ¬a = 0
⊢ a % a = 0
state_after: no goals
tactic: simp only [mod_def, div_self a0, mul_one, sub_self]
Theorem: WeierstrassCurve.Affine.monic_polynomial
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

Proof steps:
state_before: R : Type u
inst✝ : CommRing R
W : Affine R
⊢ W.polynomial.Monic
state_after: R : Type u
inst✝ : CommRing R
W : Affine R
a✝ : Nontrivial R
⊢ W.polynomial.Monic
tactic: nontriviality R
state_before: R : Type u
inst✝ : CommRing R
W : Affine R
a✝ : Nontrivial R
⊢ W.polynomial.Monic
state_after: no goals
tactic: simpa only [polynomial_eq] using Cubic.monic_of_b_eq_one'
Theorem: EuclideanGeometry.sin_angle_mul_dist_of_angle_eq_pi_div_two
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/RightAngle.lean

Proof steps:
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ∠ p₁ p₂ p₃ = π / 2
⊢ Real.sin (∠ p₂ p₃ p₁) * dist p₁ p₃ = dist p₁ p₂
state_after: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ Real.sin (∠ p₂ p₃ p₁) * dist p₁ p₃ = dist p₁ p₂
tactic: rw [angle, ← inner_eq_zero_iff_angle_eq_pi_div_two, real_inner_comm, ← neg_eq_zero, ←
    inner_neg_left, neg_vsub_eq_vsub_rev] at h
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p₁ p₂ p₃ : P
h : ⟪p₂ -ᵥ p₃, p₁ -ᵥ p₂⟫_ℝ = 0
⊢ Real.sin (∠ p₂ p₃ p₁) * dist p₁ p₃ = dist p₁ p₂
state_after: no goals
tactic: rw [angle, dist_eq_norm_vsub V p₁ p₂, dist_eq_norm_vsub V p₁ p₃, ← vsub_add_vsub_cancel p₁ p₂ p₃,
    add_comm, sin_angle_add_mul_norm_of_inner_eq_zero h]
Theorem: Rat.inv_intCast_den
File: Mathlib/Data/Rat/Lemmas.lean

Proof steps:
state_before: a : ℤ
⊢ (↑a)⁻¹.den = if a = 0 then 1 else a.natAbs
state_after: a : ℤ
⊢ ↑(↑a)⁻¹.den = ↑(if a = 0 then 1 else a.natAbs)
tactic: rw [← Int.ofNat_inj]
state_before: a : ℤ
⊢ ↑(↑a)⁻¹.den = ↑(if a = 0 then 1 else a.natAbs)
state_after: case inl
a : ℤ
lt : a < 0
⊢ ↑(↑a)⁻¹.den = ↑(if a = 0 then 1 else a.natAbs)

case inr.inl

⊢ ↑(↑0)⁻¹.den = ↑(if 0 = 0 then 1 else Int.natAbs 0)

case inr.inr
a : ℤ
gt : 0 < a
⊢ ↑(↑a)⁻¹.den = ↑(if a = 0 then 1 else a.natAbs)
tactic: rcases lt_trichotomy a 0 with lt | rfl | gt
Theorem: ExistsContDiffBumpBase.w_mul_φ_nonneg
File: Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean

Proof steps:
state_before: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
x y : E
⊢ ∀ a ∈ closedBall 0 1, 0 ≤ 1
state_after: no goals
tactic: simp only [zero_le_one, imp_true_iff]
Theorem: Finset.sum_card_bipartiteAbove_eq_sum_card_bipartiteBelow
File: Mathlib/Combinatorics/Enumerative/DoubleCounting.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
r : α → β → Prop
s : Finset α
t : Finset β
a a' : α
b b' : β
inst✝² : DecidablePred (r a)
inst✝¹ : (a : α) → Decidable (r a b)
m n : ℕ
inst✝ : (a : α) → (b : β) → Decidable (r a b)
⊢ ∑ a ∈ s, (bipartiteAbove r t a).card = ∑ b ∈ t, (bipartiteBelow r s b).card
state_after: α : Type u_1
β : Type u_2
r : α → β → Prop
s : Finset α
t : Finset β
a a' : α
b b' : β
inst✝² : DecidablePred (r a)
inst✝¹ : (a : α) → Decidable (r a b)
m n : ℕ
inst✝ : (a : α) → (b : β) → Decidable (r a b)
⊢ (∑ x ∈ s, ∑ a ∈ t, if r x a then 1 else 0) = ∑ x ∈ t, ∑ a ∈ s, if r a x then 1 else 0
tactic: simp_rw [card_eq_sum_ones, bipartiteAbove, bipartiteBelow, sum_filter]
state_before: α : Type u_1
β : Type u_2
r : α → β → Prop
s : Finset α
t : Finset β
a a' : α
b b' : β
inst✝² : DecidablePred (r a)
inst✝¹ : (a : α) → Decidable (r a b)
m n : ℕ
inst✝ : (a : α) → (b : β) → Decidable (r a b)
⊢ (∑ x ∈ s, ∑ a ∈ t, if r x a then 1 else 0) = ∑ x ∈ t, ∑ a ∈ s, if r a x then 1 else 0
state_after: no goals
tactic: exact sum_comm
Theorem: List.sum_zipWith_distrib_left
File: Mathlib/Algebra/BigOperators/Ring/List.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : Semiring R
f : ι → κ → R
a : R
x✝ : List κ
⊢ (zipWith (fun i j => a * f i j) [] x✝).sum = a * (zipWith f [] x✝).sum
state_after: no goals
tactic: simp
state_before: ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : Semiring R
f : ι → κ → R
a : R
x✝ : List ι
⊢ (zipWith (fun i j => a * f i j) x✝ []).sum = a * (zipWith f x✝ []).sum
state_after: no goals
tactic: simp
state_before: ι : Type u_1
κ : Type u_2
M : Type u_3
M₀ : Type u_4
R : Type u_5
inst✝ : Semiring R
f : ι → κ → R
a : R
i : ι
l₁ : List ι
j : κ
l₂ : List κ
⊢ (zipWith (fun i j => a * f i j) (i :: l₁) (j :: l₂)).sum = a * (zipWith f (i :: l₁) (j :: l₂)).sum
state_after: no goals
tactic: simp [sum_zipWith_distrib_left, mul_add]
Theorem: CategoryTheory.IsPreconnected.of_constant_of_preserves_morphisms
File: Mathlib/CategoryTheory/IsConnected.lean

Proof steps:
state_before: J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
h : ∀ {α : Type u₁} (F : J → α), (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂) → ∀ (j j' : J), F j = F j'
α✝ : Type u₁
F : J ⥤ Discrete α✝
j₁✝ j₂✝ : J
f : j₁✝ ⟶ j₂✝
⊢ F.obj j₁✝ = F.obj j₂✝
state_after: case as
J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
h : ∀ {α : Type u₁} (F : J → α), (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂) → ∀ (j j' : J), F j = F j'
α✝ : Type u₁
F : J ⥤ Discrete α✝
j₁✝ j₂✝ : J
f : j₁✝ ⟶ j₂✝
⊢ (F.obj j₁✝).as = (F.obj j₂✝).as
tactic: ext
state_before: case as
J : Type u₁
inst✝¹ : Category.{v₁, u₁} J
K : Type u₂
inst✝ : Category.{v₂, u₂} K
h : ∀ {α : Type u₁} (F : J → α), (∀ {j₁ j₂ : J}, (j₁ ⟶ j₂) → F j₁ = F j₂) → ∀ (j j' : J), F j = F j'
α✝ : Type u₁
F : J ⥤ Discrete α✝
j₁✝ j₂✝ : J
f : j₁✝ ⟶ j₂✝
⊢ (F.obj j₁✝).as = (F.obj j₂✝).as
state_after: no goals
tactic: exact Discrete.eq_of_hom (F.map f)
Theorem: CategoryTheory.Functor.essImageDistTriang_mem_of_iso
File: Mathlib/CategoryTheory/Localization/Triangulated.lean

Proof steps:
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_4, u_1} C
inst✝⁷ : Category.{u_3, u_2} D
L : C ⥤ D
inst✝⁶ : HasShift C ℤ
inst✝⁵ : Preadditive C
inst✝⁴ : HasZeroObject C
inst✝³ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝² : Pretriangulated C
inst✝¹ : HasShift D ℤ
inst✝ : L.CommShift ℤ
T₁ T₂ : Triangle D
e : T₂ ≅ T₁
h : T₁ ∈ L.essImageDistTriang
⊢ T₂ ∈ L.essImageDistTriang
state_after: case intro.intro
C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_4, u_1} C
inst✝⁷ : Category.{u_3, u_2} D
L : C ⥤ D
inst✝⁶ : HasShift C ℤ
inst✝⁵ : Preadditive C
inst✝⁴ : HasZeroObject C
inst✝³ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝² : Pretriangulated C
inst✝¹ : HasShift D ℤ
inst✝ : L.CommShift ℤ
T₁ T₂ : Triangle D
e : T₂ ≅ T₁
T' : Triangle C
e' : T₁ ≅ L.mapTriangle.obj T'
hT' : T' ∈ distinguishedTriangles
⊢ T₂ ∈ L.essImageDistTriang
tactic: obtain ⟨T', e', hT'⟩ := h
state_before: case intro.intro
C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_4, u_1} C
inst✝⁷ : Category.{u_3, u_2} D
L : C ⥤ D
inst✝⁶ : HasShift C ℤ
inst✝⁵ : Preadditive C
inst✝⁴ : HasZeroObject C
inst✝³ : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝² : Pretriangulated C
inst✝¹ : HasShift D ℤ
inst✝ : L.CommShift ℤ
T₁ T₂ : Triangle D
e : T₂ ≅ T₁
T' : Triangle C
e' : T₁ ≅ L.mapTriangle.obj T'
hT' : T' ∈ distinguishedTriangles
⊢ T₂ ∈ L.essImageDistTriang
state_after: no goals
tactic: exact ⟨T', e ≪≫ e', hT'⟩
Theorem: List.lookupAll_length_le_one
File: Mathlib/Data/List/Sigma.lean

Proof steps:
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
h : l.NodupKeys
⊢ (lookupAll a l).length ≤ 1
state_after: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
h : l.NodupKeys
this : (map Sigma.fst (map (Sigma.mk a) (lookupAll a l))).Nodup
⊢ (lookupAll a l).length ≤ 1
tactic: have := Nodup.sublist ((lookupAll_sublist a l).map _) h
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
h : l.NodupKeys
this : (map Sigma.fst (map (Sigma.mk a) (lookupAll a l))).Nodup
⊢ (lookupAll a l).length ≤ 1
state_after: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
h : l.NodupKeys
this : (map (Sigma.fst ∘ Sigma.mk a) (lookupAll a l)).Nodup
⊢ (lookupAll a l).length ≤ 1
tactic: rw [map_map] at this
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
h : l.NodupKeys
this : (map (Sigma.fst ∘ Sigma.mk a) (lookupAll a l)).Nodup
⊢ (lookupAll a l).length ≤ 1
state_after: no goals
tactic: rwa [← nodup_replicate, ← map_const]
Theorem: iteratedDerivWithin_congr
File: Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
R : Type u_3
inst✝³ : Semiring R
inst✝² : Module R F
inst✝¹ : SMulCommClass 𝕜 R F
inst✝ : ContinuousConstSMul R F
n : ℕ
x : 𝕜
s : Set 𝕜
hx : x ∈ s
h : UniqueDiffOn 𝕜 s
f g : 𝕜 → F
hfg : Set.EqOn f g s
⊢ Set.EqOn (iteratedDerivWithin n f s) (iteratedDerivWithin n g s) s
state_after: no goals
tactic: induction n generalizing f g with
  | zero => rwa [iteratedDerivWithin_zero]
  | succ n IH =>
    intro y hy
    have : UniqueDiffWithinAt 𝕜 s y := h.uniqueDiffWithinAt hy
    rw [iteratedDerivWithin_succ this, iteratedDerivWithin_succ this]
    exact derivWithin_congr (IH hfg) (IH hfg hy)
Theorem: Nat.Primrec.add
File: Mathlib/Computability/Primrec.lean

Proof steps:
state_before: p : ℕ
⊢ unpaired (fun z n => Nat.rec (id z) (fun y IH => (unpair (unpair (Nat.pair z (Nat.pair y IH))).2).2.succ) n) p =
    unpaired (fun x x_1 => x + x_1) p
state_after: p : ℕ
⊢ Nat.rec (unpair p).1 (fun y IH => IH + 1) (unpair p).2 = (unpair p).1 + (unpair p).2
tactic: simp
state_before: p : ℕ
⊢ Nat.rec (unpair p).1 (fun y IH => IH + 1) (unpair p).2 = (unpair p).1 + (unpair p).2
state_after: no goals
tactic: induction p.unpair.2 <;> simp [*, Nat.add_assoc]
Theorem: PiTensorProduct.liftIsometry_tprodL
File: Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean

Proof steps:
state_before: ι : Type uι
inst✝⁵ : Fintype ι
𝕜 : Type u𝕜
inst✝⁴ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝³ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
⊢ (liftIsometry 𝕜 E (⨂[𝕜] (i : ι), E i)) (tprodL 𝕜) = ContinuousLinearMap.id 𝕜 (⨂[𝕜] (i : ι), E i)
state_after: case h
ι : Type uι
inst✝⁵ : Fintype ι
𝕜 : Type u𝕜
inst✝⁴ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝³ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x✝ : ⨂[𝕜] (i : ι), E i
⊢ ((liftIsometry 𝕜 E (⨂[𝕜] (i : ι), E i)) (tprodL 𝕜)) x✝ = (ContinuousLinearMap.id 𝕜 (⨂[𝕜] (i : ι), E i)) x✝
tactic: ext _
state_before: case h
ι : Type uι
inst✝⁵ : Fintype ι
𝕜 : Type u𝕜
inst✝⁴ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝³ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝¹ : SeminormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
x✝ : ⨂[𝕜] (i : ι), E i
⊢ ((liftIsometry 𝕜 E (⨂[𝕜] (i : ι), E i)) (tprodL 𝕜)) x✝ = (ContinuousLinearMap.id 𝕜 (⨂[𝕜] (i : ι), E i)) x✝
state_after: no goals
tactic: simp only [liftIsometry_apply_apply, tprodL_coe, lift_tprod, LinearMap.id_coe, id_eq,
    ContinuousLinearMap.coe_id']
Theorem: Submodule.torsionBy_le_torsionBy_of_dvd
File: Mathlib/Algebra/Module/Torsion.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ torsionBy R M a ≤ torsionBy R M b
state_after: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ torsionBySet R M ↑(span R {a}) ≤ torsionBySet R M {b}
tactic: rw [← torsionBySet_span_singleton_eq, ← torsionBySet_singleton_eq]
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ torsionBySet R M ↑(span R {a}) ≤ torsionBySet R M {b}
state_after: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ {b} ⊆ ↑(span R {a})
tactic: apply torsionBySet_le_torsionBySet_of_subset
state_before: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a b : R
dvd : a ∣ b
⊢ {b} ⊆ ↑(span R {a})
state_after: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a c : R
dvd : a ∣ c
⊢ c ∈ ↑(span R {a})
tactic: rintro c (rfl : c = b)
state_before: case st
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
s : Set R
a✝ a c : R
dvd : a ∣ c
⊢ c ∈ ↑(span R {a})
state_after: no goals
tactic: exact Ideal.mem_span_singleton.mpr dvd
Theorem: Mathlib.Meta.NormNum.isInt_ratCast
File: Mathlib/Tactic/NormNum/Inv.lean

Proof steps:
state_before: u : Lean.Level
R : Type u_1
inst✝ : DivisionRing R
n✝ : ℤ
⊢ ↑↑n✝ = ↑n✝
state_after: no goals
tactic: simp
Theorem: AlgebraicIndependent.comp
File: Mathlib/RingTheory/AlgebraicIndependent.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx : AlgebraicIndependent R x
f : ι' → ι
hf : Injective f
⊢ AlgebraicIndependent R (x ∘ f)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx : AlgebraicIndependent R x
f : ι' → ι
hf : Injective f
p q : MvPolynomial ι' R
⊢ (aeval (x ∘ f)) p = (aeval (x ∘ f)) q → p = q
tactic: intro p q
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
hx : AlgebraicIndependent R x
f : ι' → ι
hf : Injective f
p q : MvPolynomial ι' R
⊢ (aeval (x ∘ f)) p = (aeval (x ∘ f)) q → p = q
state_after: no goals
tactic: simpa [aeval_rename, (rename_injective f hf).eq_iff] using @hx (rename f p) (rename f q)
Theorem: EisensteinSeries.summable_one_div_norm_rpow
File: Mathlib/NumberTheory/ModularForms/EisensteinSeries/UniformConvergence.lean

Proof steps:
state_before: z : ℍ
k : ℝ
hk : 2 < k
⊢ Summable fun x => ‖x‖ ^ (-k)
state_after: z : ℍ
k : ℝ
hk : 2 < k
⊢ (∀ (j : ℕ), Summable fun i => ((fun x => ‖x‖ ^ (-k)) ∘ ⇑(finTwoArrowEquiv ℤ).symm) ↑i) ∧
    Summable fun j => ∑' (i : ↑fun i => i ∈ (box j).val), ((fun x => ‖x‖ ^ (-k)) ∘ ⇑(finTwoArrowEquiv ℤ).symm) ↑i

z : ℍ
k : ℝ
hk : 2 < k
⊢ 0 ≤ (fun x => ‖x‖ ^ (-k)) ∘ ⇑(finTwoArrowEquiv ℤ).symm
tactic: rw [← (finTwoArrowEquiv _).symm.summable_iff, summable_partition _ Int.existsUnique_mem_box]
Theorem: PartialHomeomorph.extend_target
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
⊢ (f.extend I).target = ↑I.symm ⁻¹' f.target ∩ range ↑I
state_after: no goals
tactic: simp_rw [extend, PartialEquiv.trans_target, I.target_eq, I.toPartialEquiv_coe_symm, inter_comm]
Theorem: Ideal.isCoprime_tfae
File: Mathlib/RingTheory/Ideal/Operations.lean

Proof steps:
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ [IsCoprime I J, Codisjoint I J, I + J = 1, ∃ i ∈ I, ∃ j ∈ J, i + j = 1, I ⊔ J = ⊤].TFAE
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ [IsCoprime I J, IsCoprime I J, IsCoprime I J, IsCoprime I J, IsCoprime I J].TFAE
tactic: rw [← isCoprime_iff_codisjoint, ← isCoprime_iff_add, ← isCoprime_iff_exists,
      ← isCoprime_iff_sup_eq]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
⊢ [IsCoprime I J, IsCoprime I J, IsCoprime I J, IsCoprime I J, IsCoprime I J].TFAE
state_after: no goals
tactic: simp
Theorem: borel_eq_top_of_countable
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
⊢ borel α = ⊤
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
⊢ MeasurableSet (⋃ x ∈ s, {x})
tactic: refine top_le_iff.1 fun s _ => biUnion_of_singleton s ▸ ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
⊢ MeasurableSet (⋃ x ∈ s, {x})
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
⊢ ∀ b ∈ s, MeasurableSet {b}
tactic: apply MeasurableSet.biUnion s.to_countable
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
⊢ ∀ b ∈ s, MeasurableSet {b}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
x : α
a✝ : x ∈ s
⊢ MeasurableSet {x}
tactic: intro x _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
x : α
a✝ : x ∈ s
⊢ MeasurableSet {x}
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
x : α
a✝ : x ∈ s
⊢ MeasurableSet {x}ᶜ
tactic: apply MeasurableSet.of_compl
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
x : α
a✝ : x ∈ s
⊢ MeasurableSet {x}ᶜ
state_after: case h.a
α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
x : α
a✝ : x ∈ s
⊢ {x}ᶜ ∈ {s | IsOpen s}
tactic: apply GenerateMeasurable.basic
state_before: case h.a
α : Type u_1
β : Type u_2
γ : Type u_3
γ₂ : Type u_4
δ : Type u_5
ι : Sort y
s✝ t u : Set α
inst✝² : TopologicalSpace α
inst✝¹ : T1Space α
inst✝ : Countable α
s : Set α
x✝ : MeasurableSet s
x : α
a✝ : x ∈ s
⊢ {x}ᶜ ∈ {s | IsOpen s}
state_after: no goals
tactic: exact isClosed_singleton.isOpen_compl
Theorem: Derivation.compAlgebraMap_apply
File: Mathlib/RingTheory/Derivation/Basic.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : CommSemiring A
inst✝⁹ : CommSemiring B
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Algebra R A
inst✝⁶ : Algebra R B
inst✝⁵ : Module A M
inst✝⁴ : Module B M
inst✝³ : Module R M
D D1 D2 : Derivation R A M
r : R
a b : A
inst✝² : Algebra A B
inst✝¹ : IsScalarTower R A B
inst✝ : IsScalarTower A B M
d : Derivation R B M
⊢ (↑d ∘ₗ (IsScalarTower.toAlgHom R A B).toLinearMap) 1 = 0
state_after: no goals
tactic: simp
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : CommSemiring A
inst✝⁹ : CommSemiring B
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Algebra R A
inst✝⁶ : Algebra R B
inst✝⁵ : Module A M
inst✝⁴ : Module B M
inst✝³ : Module R M
D D1 D2 : Derivation R A M
r : R
a✝ b✝ : A
inst✝² : Algebra A B
inst✝¹ : IsScalarTower R A B
inst✝ : IsScalarTower A B M
d : Derivation R B M
a b : A
⊢ (↑d ∘ₗ (IsScalarTower.toAlgHom R A B).toLinearMap) (a * b) =
    a • (↑d ∘ₗ (IsScalarTower.toAlgHom R A B).toLinearMap) b + b • (↑d ∘ₗ (IsScalarTower.toAlgHom R A B).toLinearMap) a
state_after: no goals
tactic: simp
Theorem: Multiset.Ico_self
File: Mathlib/Order/Interval/Multiset.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a b c : α
⊢ Ico a a = 0
state_after: no goals
tactic: rw [Ico, Finset.Ico_self, Finset.empty_val]
Theorem: CategoryTheory.Dial.associator_inv_F
File: Mathlib/CategoryTheory/Dialectica/Monoidal.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasFiniteProducts C
inst✝ : HasPullbacks C
X Y Z : Dial C
⊢ ((X.tensorObj Y).tensorObj Z).rel =
    (Subobject.pullback (prod.map (prod.associator X.src Y.src Z.src).hom (prod.associator X.tgt Y.tgt Z.tgt).hom)).obj
      (X.tensorObj (Y.tensorObj Z)).rel
state_after: no goals
tactic: simp [Subobject.inf_pullback, ← Subobject.pullback_comp, inf_assoc]
Theorem: Real.log_div_sqrt_antitoneOn
File: Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean

Proof steps:
state_before: x y : ℝ
⊢ AntitoneOn (fun x => log x / √x) {x | rexp 2 ≤ x}
state_after: x y : ℝ
⊢ AntitoneOn (fun x => log x / x ^ (1 / 2)) {x | rexp 2 ≤ x}
tactic: simp_rw [sqrt_eq_rpow]
state_before: x y : ℝ
⊢ AntitoneOn (fun x => log x / x ^ (1 / 2)) {x | rexp 2 ≤ x}
state_after: case h.e'_6.h.e'_2.h.h.e'_3.h.e'_1
x y x✝ : ℝ
⊢ 2 = 1 / (1 / 2)
tactic: convert @log_div_self_rpow_antitoneOn (1 / 2) (by norm_num)
state_before: case h.e'_6.h.e'_2.h.h.e'_3.h.e'_1
x y x✝ : ℝ
⊢ 2 = 1 / (1 / 2)
state_after: no goals
tactic: norm_num
Theorem: LeftOrdContinuous.map_sup
File: Mathlib/Order/OrdContinuous.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝¹ : SemilatticeSup α
inst✝ : SemilatticeSup β
f : α → β
hf : LeftOrdContinuous f
x y : α
⊢ IsLUB (f '' {x, y}) (f x ⊔ f y)
state_after: no goals
tactic: simp only [image_pair, isLUB_pair]