1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.hausdorffMeasure_homothety_image
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

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
⊢ μ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: rw [IsometryEquiv.hausdorffMeasure_image, Set.image_smul, Measure.hausdorffMeasure_smul₀ hd hc,
  IsometryEquiv.hausdorffMeasure_image]
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: simpa only [Set.image_image]
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 :
  μH[d] (⇑(IsometryEquiv.vaddConst x) '' ((fun x => c • x) '' (⇑(IsometryEquiv.vaddConst x).symm '' s))) =
    ‖c‖₊ ^ d • μH[d] s
⊢ μH[d] (⇑(AffineMap.homothety x c) '' s) = ‖c‖₊ ^ d • μH[d] s
state_after: no goals
Theorem: MeasureTheory.Measure.restrict_union_add_inter₀
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: rw [← restrict_inter_add_diff₀ (s ∪ t) ht, union_inter_cancel_right, union_diff_right, ←
  restrict_inter_add_diff₀ s ht, add_comm, ← add_assoc, add_right_comm]
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 α
ht : NullMeasurableSet t μ
⊢ μ.restrict (s ∪ t) + μ.restrict (s ∩ t) = μ.restrict s + μ.restrict t
state_after: no goals
Theorem: Nat.count_zero
File: Mathlib/Data/Nat/Count.lean

tactic: rw [count, List.range_zero, List.countP, List.countP.go]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
⊢ count p 0 = 0
state_after: no goals
Theorem: LinearMap.exists_extend
File: Mathlib/LinearAlgebra/Basis/VectorSpace.lean

tactic: rw [LinearMap.comp_assoc, hg, f.comp_id]
state_before: ι : Type u_1
ι' : Type u_2
K : Type u_3
V : Type u_4
V' : Type u_5
inst✝⁴ : DivisionRing K
inst✝³ : AddCommGroup V
inst✝² : AddCommGroup V'
inst✝¹ : Module K V
inst✝ : Module K V'
v : ι → V
s t : Set V
x y z : V
p : Submodule K V
f : ↥p →ₗ[K] V'
g : V →ₗ[K] ↥p
hg : g ∘ₗ p.subtype = id
⊢ (f ∘ₗ g) ∘ₗ p.subtype = f
state_after: no goals
Theorem: List.length_revzip
File: Mathlib/Data/List/Zip.lean

tactic: simp only [revzip, length_zip, length_reverse, min_self]
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
l : List α
⊢ l.revzip.length = l.length
state_after: no goals
Theorem: NumberField.canonicalEmbedding.nnnorm_eq
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean

tactic: simp_rw [Pi.nnnorm_def, apply_at]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : K
⊢ ‖(canonicalEmbedding K) x‖₊ = Finset.univ.sup fun φ => ‖φ x‖₊
state_after: no goals
Theorem: Nat.prime_def_le_sqrt
File: Mathlib/Data/Nat/Prime.lean

tactic: rcases le_total m k with mk | km
state_before: n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = m * k
⊢ False
state_after: case inl
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = m * k
mk : m ≤ k
⊢ False

case inr
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = m * k
km : k ≤ m
⊢ False

tactic: exact this mk m2 e
state_before: case inl
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = m * k
mk : m ≤ k
⊢ False
state_after: no goals

tactic: rw [mul_comm] at e
state_before: case inr
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = m * k
km : k ≤ m
⊢ False
state_after: case inr
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = k * m
km : k ≤ m
⊢ False

tactic: refine this km (lt_of_mul_lt_mul_right ?_ (zero_le m)) e
state_before: case inr
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = k * m
km : k ≤ m
⊢ False
state_after: case inr
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = k * m
km : k ≤ m
⊢ 1 * m < k * m

tactic: rwa [one_mul, ← e]
state_before: case inr
n p : ℕ
p2 : 2 ≤ p
a : ∀ (m : ℕ), 2 ≤ m → m ≤ p.sqrt → ¬m ∣ p
this : ∀ {m k : ℕ}, m ≤ k → 1 < m → p ≠ m * k
m : ℕ
m2 : 2 ≤ m
l : m < p
x✝ : m ∣ p
k : ℕ
e : p = k * m
km : k ≤ m
⊢ 1 * m < k * m
state_after: no goals
Theorem: MvPolynomial.coeff_rename_embDomain
File: Mathlib/Algebra/MvPolynomial/Rename.lean

tactic: rw [Finsupp.embDomain_eq_mapDomain f, coeff_rename_mapDomain f f.injective]
state_before: σ : Type u_1
τ : Type u_2
α : Type u_3
R : Type u_4
S : Type u_5
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
f : σ ↪ τ
φ : MvPolynomial σ R
d : σ →₀ ℕ
⊢ coeff (embDomain f d) ((rename ⇑f) φ) = coeff d φ
state_after: no goals
Theorem: List.get?_zip_eq_some
File: Mathlib/Data/List/Zip.lean

tactic: simp [getElem?_zip_eq_some]
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
l₁ : List α
l₂ : List β
z : α × β
i : ℕ
⊢ (l₁.zip l₂).get? i = some z ↔ l₁.get? i = some z.1 ∧ l₂.get? i = some z.2
state_after: no goals
Theorem: Real.arccos_cos
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rw [arccos, ← sin_pi_div_two_sub, arcsin_sin] <;> simp [sub_eq_add_neg] <;> linarith
state_before: x✝ y x : ℝ
hx₁ : 0 ≤ x
hx₂ : x ≤ π
⊢ arccos (cos x) = x
state_after: no goals
Theorem: CategoryTheory.isoClosure_eq_self
File: Mathlib/CategoryTheory/ClosedUnderIsomorphisms.lean

tactic: apply le_antisymm
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
P Q : C → Prop
inst✝ : ClosedUnderIsomorphisms P
⊢ isoClosure P = P
state_after: case a
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
P Q : C → Prop
inst✝ : ClosedUnderIsomorphisms P
⊢ isoClosure P ≤ P

case a
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
P Q : C → Prop
inst✝ : ClosedUnderIsomorphisms P
⊢ P ≤ isoClosure P

tactic: intro X ⟨Y, hY, ⟨e⟩⟩
state_before: case a
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
P Q : C → Prop
inst✝ : ClosedUnderIsomorphisms P
⊢ isoClosure P ≤ P
state_after: case a
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
P Q : C → Prop
inst✝ : ClosedUnderIsomorphisms P
X Y : C
hY : P Y
e : X ≅ Y
⊢ P X

tactic: exact mem_of_iso P e.symm hY
state_before: case a
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
P Q : C → Prop
inst✝ : ClosedUnderIsomorphisms P
X Y : C
hY : P Y
e : X ≅ Y
⊢ P X
state_after: no goals

tactic: exact le_isoClosure P
state_before: case a
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
P Q : C → Prop
inst✝ : ClosedUnderIsomorphisms P
⊢ P ≤ isoClosure P
state_after: no goals
Theorem: IsOpen.analyticSet_image
File: Mathlib/MeasureTheory/Constructions/Polish.lean

tactic: rw [image_eq_range]
state_before: α : Type u_1
ι : Type u_2
inst✝² : TopologicalSpace α
β : Type u_3
inst✝¹ : TopologicalSpace β
inst✝ : PolishSpace β
s : Set β
hs : IsOpen s
f : β → α
f_cont : Continuous f
⊢ AnalyticSet (f '' s)
state_after: α : Type u_1
ι : Type u_2
inst✝² : TopologicalSpace α
β : Type u_3
inst✝¹ : TopologicalSpace β
inst✝ : PolishSpace β
s : Set β
hs : IsOpen s
f : β → α
f_cont : Continuous f
⊢ AnalyticSet (range fun x => f ↑x)

tactic: haveI : PolishSpace s := hs.polishSpace
state_before: α : Type u_1
ι : Type u_2
inst✝² : TopologicalSpace α
β : Type u_3
inst✝¹ : TopologicalSpace β
inst✝ : PolishSpace β
s : Set β
hs : IsOpen s
f : β → α
f_cont : Continuous f
⊢ AnalyticSet (range fun x => f ↑x)
state_after: α : Type u_1
ι : Type u_2
inst✝² : TopologicalSpace α
β : Type u_3
inst✝¹ : TopologicalSpace β
inst✝ : PolishSpace β
s : Set β
hs : IsOpen s
f : β → α
f_cont : Continuous f
this : PolishSpace ↑s
⊢ AnalyticSet (range fun x => f ↑x)

tactic: exact analyticSet_range_of_polishSpace (f_cont.comp continuous_subtype_val)
state_before: α : Type u_1
ι : Type u_2
inst✝² : TopologicalSpace α
β : Type u_3
inst✝¹ : TopologicalSpace β
inst✝ : PolishSpace β
s : Set β
hs : IsOpen s
f : β → α
f_cont : Continuous f
this : PolishSpace ↑s
⊢ AnalyticSet (range fun x => f ↑x)
state_after: no goals
Theorem: LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_eq_bot
File: Mathlib/Analysis/InnerProductSpace/Spectrum.lean

tactic: have hT' : IsSymmetric _ :=
  hT.restrict_invariant hT.orthogonalComplement_iSup_eigenspaces_invariant
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
inst✝ : FiniteDimensional 𝕜 E
⊢ (⨆ μ, eigenspace T μ)ᗮ = ⊥
state_after: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
inst✝ : FiniteDimensional 𝕜 E
hT' : (T.restrict ⋯).IsSymmetric
⊢ (⨆ μ, eigenspace T μ)ᗮ = ⊥

tactic: haveI :=
  hT'.subsingleton_of_no_eigenvalue_finiteDimensional hT.orthogonalComplement_iSup_eigenspaces
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
inst✝ : FiniteDimensional 𝕜 E
hT' : (T.restrict ⋯).IsSymmetric
⊢ (⨆ μ, eigenspace T μ)ᗮ = ⊥
state_after: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
inst✝ : FiniteDimensional 𝕜 E
hT' : (T.restrict ⋯).IsSymmetric
this : Subsingleton ↥(⨆ μ, eigenspace T μ)ᗮ
⊢ (⨆ μ, eigenspace T μ)ᗮ = ⊥

tactic: exact Submodule.eq_bot_of_subsingleton
state_before: 𝕜 : Type u_1
inst✝³ : RCLike 𝕜
E : Type u_2
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
T : E →ₗ[𝕜] E
hT : T.IsSymmetric
inst✝ : FiniteDimensional 𝕜 E
hT' : (T.restrict ⋯).IsSymmetric
this : Subsingleton ↥(⨆ μ, eigenspace T μ)ᗮ
⊢ (⨆ μ, eigenspace T μ)ᗮ = ⊥
state_after: no goals
Theorem: Matrix.col_mulVec
File: Mathlib/Data/Matrix/RowCol.lean

tactic: ext
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : n → α
⊢ col ι (M *ᵥ v) = M * col ι v
state_after: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : n → α
i✝ : m
j✝ : ι
⊢ col ι (M *ᵥ v) i✝ j✝ = (M * col ι v) i✝ j✝

tactic: rfl
state_before: case a
l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
R : Type u_5
α : Type v
β : Type w
ι : Type u_6
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
M : Matrix m n α
v : n → α
i✝ : m
j✝ : ι
⊢ col ι (M *ᵥ v) i✝ j✝ = (M * col ι v) i✝ j✝
state_after: no goals
Theorem: norm_div_le
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simpa [dist_eq_norm_div] using dist_triangle a 1 b
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a✝ a₁ a₂ b✝ b₁ b₂ : E
r r₁ r₂ : ℝ
a b : E
⊢ ‖a / b‖ ≤ ‖a‖ + ‖b‖
state_after: no goals
Theorem: tsub_eq_tsub_min
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rcases le_total a b with h | h
state_before: α : Type u_1
inst✝² : CanonicallyLinearOrderedAddCommMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a✝ b✝ c d a b : α
⊢ a - b = a - min a b
state_after: case inl
α : Type u_1
inst✝² : CanonicallyLinearOrderedAddCommMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a✝ b✝ c d a b : α
h : a ≤ b
⊢ a - b = a - min a b

case inr
α : Type u_1
inst✝² : CanonicallyLinearOrderedAddCommMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a✝ b✝ c d a b : α
h : b ≤ a
⊢ a - b = a - min a b

tactic: rw [min_eq_left h, tsub_self, tsub_eq_zero_of_le h]
state_before: case inl
α : Type u_1
inst✝² : CanonicallyLinearOrderedAddCommMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a✝ b✝ c d a b : α
h : a ≤ b
⊢ a - b = a - min a b
state_after: no goals

tactic: rw [min_eq_right h]
state_before: case inr
α : Type u_1
inst✝² : CanonicallyLinearOrderedAddCommMonoid α
inst✝¹ : Sub α
inst✝ : OrderedSub α
a✝ b✝ c d a b : α
h : b ≤ a
⊢ a - b = a - min a b
state_after: no goals
Theorem: AddMonoidAlgebra.algHom_ext_iff
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: rintro rfl _
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁵ : CommSemiring k
inst✝⁴ : AddMonoid G
A : Type u₃
inst✝³ : Semiring A
inst✝² : Algebra k A
B : Type u_3
inst✝¹ : Semiring B
inst✝ : Algebra k B
φ₁ φ₂ : k[G] →ₐ[k] A
⊢ φ₁ = φ₂ → ∀ (x : G), φ₁ (Finsupp.single x 1) = φ₂ (Finsupp.single x 1)
state_after: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁵ : CommSemiring k
inst✝⁴ : AddMonoid G
A : Type u₃
inst✝³ : Semiring A
inst✝² : Algebra k A
B : Type u_3
inst✝¹ : Semiring B
inst✝ : Algebra k B
φ₁ : k[G] →ₐ[k] A
x✝ : G
⊢ φ₁ (Finsupp.single x✝ 1) = φ₁ (Finsupp.single x✝ 1)

tactic: rfl
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁵ : CommSemiring k
inst✝⁴ : AddMonoid G
A : Type u₃
inst✝³ : Semiring A
inst✝² : Algebra k A
B : Type u_3
inst✝¹ : Semiring B
inst✝ : Algebra k B
φ₁ : k[G] →ₐ[k] A
x✝ : G
⊢ φ₁ (Finsupp.single x✝ 1) = φ₁ (Finsupp.single x✝ 1)
state_after: no goals
Theorem: MeasureTheory.hausdorffMeasure_affineSegment
File: Mathlib/MeasureTheory/Measure/Hausdorff.lean

tactic: rw [affineSegment, hausdorffMeasure_lineMap_image, hausdorffMeasure_real, Real.volume_Icc,
  sub_zero, ENNReal.ofReal_one, ← Algebra.algebraMap_eq_smul_one]
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✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
x y : P
⊢ μH[1] (affineSegment ℝ x y) = edist x y
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✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
x y : P
⊢ (algebraMap ℝ≥0 ℝ≥0∞) (nndist x y) = edist x y

tactic: exact (edist_nndist _ _).symm
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✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : MeasurableSpace P
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor E P
inst✝ : BorelSpace P
x y : P
⊢ (algebraMap ℝ≥0 ℝ≥0∞) (nndist x y) = edist x y
state_after: no goals
Theorem: Polynomial.eval₂_at_ofNat
File: Mathlib/Algebra/Polynomial/Eval.lean

tactic: simp [OfNat.ofNat]
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]
x : R
S : Type u_1
inst✝¹ : Semiring S
f : R →+* S
n : ℕ
inst✝ : n.AtLeastTwo
⊢ eval₂ f (OfNat.ofNat n) p = f (eval (OfNat.ofNat n) p)
state_after: no goals
Theorem: RegularSpace.inf
File: Mathlib/Topology/Separation.lean

tactic: exact regularSpace_iInf (Bool.forall_bool.2 ⟨h₂, h₁⟩)
state_before: X✝ : Type u_1
Y : Type u_2
inst✝¹ : TopologicalSpace X✝
inst✝ : RegularSpace X✝
x : X✝
s : Set X✝
X : Type u_3
t₁ t₂ : TopologicalSpace X
h₁ : RegularSpace X
h₂ : RegularSpace X
⊢ RegularSpace X
state_after: no goals
Theorem: Sym.card_sym_eq_multichoose
File: Mathlib/Data/Sym/Card.lean

tactic: rw [← card_sym_fin_eq_multichoose]
state_before: α✝ : Type u_1
β : Type u_2
n : ℕ
α : Type u_3
k : ℕ
inst✝¹ : Fintype α
inst✝ : Fintype (Sym α k)
⊢ Fintype.card (Sym α k) = (Fintype.card α).multichoose k
state_after: α✝ : Type u_1
β : Type u_2
n : ℕ
α : Type u_3
k : ℕ
inst✝¹ : Fintype α
inst✝ : Fintype (Sym α k)
⊢ Fintype.card (Sym α k) = Fintype.card (Sym (Fin (Fintype.card α)) k)

tactic: exact Fintype.card_congr (equivCongr (equivFin α))
state_before: α✝ : Type u_1
β : Type u_2
n : ℕ
α : Type u_3
k : ℕ
inst✝¹ : Fintype α
inst✝ : Fintype (Sym α k)
⊢ Fintype.card (Sym α k) = Fintype.card (Sym (Fin (Fintype.card α)) k)
state_after: no goals
Theorem: Orientation.inner_rightAngleRotation_swap
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: simp
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ⟪x, o.rightAngleRotation y⟫_ℝ = -⟪o.rightAngleRotation x, y⟫_ℝ
state_after: no goals
Theorem: HahnSeries.embDomain_injective
File: Mathlib/RingTheory/HahnSeries/Basic.lean

tactic: ext g
state_before: Γ : Type u_1
R : Type u_2
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r : R
Γ' : Type u_3
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
x y : HahnSeries Γ R
xy : embDomain f x = embDomain f y
⊢ x = y
state_after: case coeff.h
Γ : Type u_1
R : Type u_2
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r : R
Γ' : Type u_3
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
x y : HahnSeries Γ R
xy : embDomain f x = embDomain f y
g : Γ
⊢ x.coeff g = y.coeff g

tactic: rw [HahnSeries.ext_iff, Function.funext_iff] at xy
state_before: case coeff.h
Γ : Type u_1
R : Type u_2
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r : R
Γ' : Type u_3
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
x y : HahnSeries Γ R
xy : embDomain f x = embDomain f y
g : Γ
⊢ x.coeff g = y.coeff g
state_after: case coeff.h
Γ : Type u_1
R : Type u_2
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r : R
Γ' : Type u_3
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
x y : HahnSeries Γ R
xy : ∀ (a : Γ'), (embDomain f x).coeff a = (embDomain f y).coeff a
g : Γ
⊢ x.coeff g = y.coeff g

tactic: have xyg := xy (f g)
state_before: case coeff.h
Γ : Type u_1
R : Type u_2
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r : R
Γ' : Type u_3
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
x y : HahnSeries Γ R
xy : ∀ (a : Γ'), (embDomain f x).coeff a = (embDomain f y).coeff a
g : Γ
⊢ x.coeff g = y.coeff g
state_after: case coeff.h
Γ : Type u_1
R : Type u_2
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r : R
Γ' : Type u_3
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
x y : HahnSeries Γ R
xy : ∀ (a : Γ'), (embDomain f x).coeff a = (embDomain f y).coeff a
g : Γ
xyg : (embDomain f x).coeff (f g) = (embDomain f y).coeff (f g)
⊢ x.coeff g = y.coeff g

tactic: rwa [embDomain_coeff, embDomain_coeff] at xyg
state_before: case coeff.h
Γ : Type u_1
R : Type u_2
inst✝² : PartialOrder Γ
inst✝¹ : Zero R
a b : Γ
r : R
Γ' : Type u_3
inst✝ : PartialOrder Γ'
f : Γ ↪o Γ'
x y : HahnSeries Γ R
xy : ∀ (a : Γ'), (embDomain f x).coeff a = (embDomain f y).coeff a
g : Γ
xyg : (embDomain f x).coeff (f g) = (embDomain f y).coeff (f g)
⊢ x.coeff g = y.coeff g
state_after: no goals
Theorem: Mathlib.Tactic.Abel.term_add_constg
File: Mathlib/Tactic/Abel.lean

tactic: simp [h.symm, termg, add_assoc]
state_before: α : Type u_1
inst✝ : AddCommGroup α
n : ℤ
x a k a' : α
h : a + k = a'
⊢ termg n x a + k = termg n x a'
state_after: no goals
Theorem: List.prod_le_pow_card
File: Mathlib/Algebra/Order/BigOperators/Group/List.lean

tactic: simpa only [map_id', map_const', prod_replicate] using prod_le_prod' h
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
P : Type u_5
M₀ : Type u_6
G : Type u_7
R : Type u_8
inst✝³ : Monoid M
inst✝² : Preorder M
inst✝¹ : CovariantClass M M (Function.swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : CovariantClass M M (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
l : List M
n : M
h : ∀ x ∈ l, x ≤ n
⊢ l.prod ≤ n ^ l.length
state_after: no goals
Theorem: CategoryTheory.Presheaf.isLocallySurjective_of_isLocallySurjective_fac
File: Mathlib/CategoryTheory/Sites/LocallySurjective.lean

tactic: subst fac
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Cᵒᵖ ⥤ A
f₁ : F₁ ⟶ F₂
f₂ : F₂ ⟶ F₃
f₃ : F₁ ⟶ F₃
fac : f₁ ≫ f₂ = f₃
inst✝ : IsLocallySurjective J f₃
⊢ IsLocallySurjective J f₂
state_after: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Cᵒᵖ ⥤ A
f₁ : F₁ ⟶ F₂
f₂ : F₂ ⟶ F₃
inst✝ : IsLocallySurjective J (f₁ ≫ f₂)
⊢ IsLocallySurjective J f₂

tactic: exact isLocallySurjective_of_isLocallySurjective J f₁ f₂
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝² : Category.{v', u'} A
inst✝¹ : ConcreteCategory A
F₁ F₂ F₃ : Cᵒᵖ ⥤ A
f₁ : F₁ ⟶ F₂
f₂ : F₂ ⟶ F₃
inst✝ : IsLocallySurjective J (f₁ ≫ f₂)
⊢ IsLocallySurjective J f₂
state_after: no goals