1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Functor.additive_of_comp_faithful
File: Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean

tactic: rw [← Functor.comp_map, G.map_add, (F ⋙ G).map_add, Functor.comp_map, Functor.comp_map]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝⁹ : Category.{u_4, u_1} C
inst✝⁸ : Category.{u_5, u_2} D
inst✝⁷ : Category.{u_6, u_3} E
inst✝⁶ : Preadditive C
inst✝⁵ : Preadditive D
inst✝⁴ : Preadditive E
F✝ : C ⥤ D
inst✝³ : F✝.Additive
F : C ⥤ D
G : D ⥤ E
inst✝² : G.Additive
inst✝¹ : (F ⋙ G).Additive
inst✝ : G.Faithful
x✝¹ x✝ : C
f₁ f₂ : x✝¹ ⟶ x✝
⊢ G.map (F.map (f₁ + f₂)) = G.map (F.map f₁ + F.map f₂)
state_after: no goals
Theorem: AddLECancellable.lt_of_tsub_lt_tsub_left_of_le
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: conv_lhs at h => rw [← tsub_add_cancel_of_le hca]
state_before: α : Type u_1
inst✝⁶ : AddCommSemigroup α
inst✝⁵ : PartialOrder α
inst✝⁴ : ExistsAddOfLE α
inst✝³ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
hb : AddLECancellable b
hca : c ≤ a
h : a - b < a - c
⊢ c < b
state_after: α : Type u_1
inst✝⁶ : AddCommSemigroup α
inst✝⁵ : PartialOrder α
inst✝⁴ : ExistsAddOfLE α
inst✝³ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
hb : AddLECancellable b
hca : c ≤ a
h : a - c + c - b < a - c
⊢ c < b

tactic: exact lt_of_add_lt_add_left (hb.lt_add_of_tsub_lt_right h)
state_before: α : Type u_1
inst✝⁶ : AddCommSemigroup α
inst✝⁵ : PartialOrder α
inst✝⁴ : ExistsAddOfLE α
inst✝³ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1
hb : AddLECancellable b
hca : c ≤ a
h : a - c + c - b < a - c
⊢ c < b
state_after: no goals
Theorem: MeasureTheory.measure_smul_setAverage
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: haveI := Fact.mk h.lt_top
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ ν : Measure α
s✝ t : Set α
f✝ g f : α → E
s : Set α
h : μ s ≠ ⊤
⊢ (μ s).toReal • ⨍ (x : α) in s, f x ∂μ = ∫ (x : α) in s, f x ∂μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ ν : Measure α
s✝ t : Set α
f✝ g f : α → E
s : Set α
h : μ s ≠ ⊤
this : Fact (μ s < ⊤)
⊢ (μ s).toReal • ⨍ (x : α) in s, f x ∂μ = ∫ (x : α) in s, f x ∂μ

tactic: rw [← measure_smul_average, restrict_apply_univ]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ ν : Measure α
s✝ t : Set α
f✝ g f : α → E
s : Set α
h : μ s ≠ ⊤
this : Fact (μ s < ⊤)
⊢ (μ s).toReal • ⨍ (x : α) in s, f x ∂μ = ∫ (x : α) in s, f x ∂μ
state_after: no goals
Theorem: Polynomial.derivative_X_add_C_sq
File: Mathlib/Algebra/Polynomial/Derivative.lean

tactic: rw [derivative_sq, derivative_X_add_C, mul_one]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommSemiring R
c : R
⊢ derivative ((X + C c) ^ 2) = C 2 * (X + C c)
state_after: no goals
Theorem: Rel.core_inter
File: Mathlib/Data/Rel.lean

tactic: simp [mem_core, imp_and, forall_and]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s t : Set β
⊢ ∀ (x : α), x ∈ r.core (s ∩ t) ↔ x ∈ r.core s ∩ r.core t
state_after: no goals
Theorem: subset_mul_closure_one
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: have : s ⊆ s * ({1} : Set G) := by simpa using Subset.rfl
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s✝ t s : Set G
⊢ s ⊆ s * closure {1}
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s✝ t s : Set G
this : s ⊆ s * {1}
⊢ s ⊆ s * closure {1}

tactic: exact this.trans (smul_subset_smul_left subset_closure)
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s✝ t s : Set G
this : s ⊆ s * {1}
⊢ s ⊆ s * closure {1}
state_after: no goals

tactic: simpa using Subset.rfl
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
s✝ t s : Set G
⊢ s ⊆ s * {1}
state_after: no goals
Theorem: MeasureTheory.Measure.rnDeriv_self
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: have h := rnDeriv_add_singularPart μ μ
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) + μ.singularPart μ = μ
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1

tactic: rw [singularPart_self, add_zero] at h
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) + μ.singularPart μ = μ
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1

tactic: have h_one : μ = μ.withDensity 1 := by simp
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ
h_one : μ = μ.withDensity 1
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1

tactic: conv_rhs at h => rw [h_one]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ
h_one : μ = μ.withDensity 1
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ.withDensity 1
h_one : μ = μ.withDensity 1
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1

tactic: rwa [withDensity_eq_iff_of_sigmaFinite (measurable_rnDeriv _ _).aemeasurable] at h
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ.withDensity 1
h_one : μ = μ.withDensity 1
⊢ μ.rnDeriv μ =ᶠ[ae μ] fun x => 1
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ.withDensity 1
h_one : μ = μ.withDensity 1
⊢ AEMeasurable 1 μ

tactic: exact aemeasurable_const
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ.withDensity 1
h_one : μ = μ.withDensity 1
⊢ AEMeasurable 1 μ
state_after: no goals

tactic: simp
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν μ : Measure α
inst✝ : SigmaFinite μ
h : μ.withDensity (μ.rnDeriv μ) = μ
⊢ μ = μ.withDensity 1
state_after: no goals
Theorem: Mod_.id_hom'
File: Mathlib/CategoryTheory/Monoidal/Mod_.lean

tactic: rfl
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
A : Mon_ C
M✝ M : Mod_ A
⊢ (𝟙 M).hom = 𝟙 M.X
state_after: no goals
Theorem: GaloisConnection.l_ciSup
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: rw [iSup, gc.l_csSup (range_nonempty _) hf, iSup_range']
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : Nonempty ι
l : α → β
u : β → α
gc : GaloisConnection l u
f : ι → α
hf : BddAbove (range f)
⊢ l (⨆ i, f i) = ⨆ i, l (f i)
state_after: no goals
Theorem: IsPrimitiveRoot.prod_pow_sub_one_eq_order
File: Mathlib/RingTheory/RootsOfUnity/Lemmas.lean

tactic: have : (-1 : R) ^ n = ∏ k ∈ range n, -1 := by rw [prod_const, card_range]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
n : ℕ
μ : R
hμ : IsPrimitiveRoot μ (n + 1)
⊢ (-1) ^ n * ∏ k ∈ range n, (μ ^ (k + 1) - 1) = ↑n + 1
state_after: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
n : ℕ
μ : R
hμ : IsPrimitiveRoot μ (n + 1)
this : (-1) ^ n = ∏ k ∈ range n, -1
⊢ (-1) ^ n * ∏ k ∈ range n, (μ ^ (k + 1) - 1) = ↑n + 1

tactic: simp only [this, ← prod_mul_distrib, neg_one_mul, neg_sub, ← prod_one_sub_pow_eq_order hμ]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
n : ℕ
μ : R
hμ : IsPrimitiveRoot μ (n + 1)
this : (-1) ^ n = ∏ k ∈ range n, -1
⊢ (-1) ^ n * ∏ k ∈ range n, (μ ^ (k + 1) - 1) = ↑n + 1
state_after: no goals

tactic: rw [prod_const, card_range]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : IsDomain R
n : ℕ
μ : R
hμ : IsPrimitiveRoot μ (n + 1)
⊢ (-1) ^ n = ∏ k ∈ range n, -1
state_after: no goals
Theorem: DirectSum.coe_decompose_mul_of_left_mem
File: Mathlib/RingTheory/GradedAlgebra/Basic.lean

tactic: lift a to 𝒜 i using a_mem
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
σ : Type u_4
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddCommMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
a b : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
a_mem : a ∈ 𝒜 i
⊢ ↑(((decompose 𝒜) (a * b)) n) = if i ≤ n then a * ↑(((decompose 𝒜) b) (n - i)) else 0
state_after: case intro
ι : Type u_1
R : Type u_2
A : Type u_3
σ : Type u_4
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddCommMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
b : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
a : ↥(𝒜 i)
⊢ ↑(((decompose 𝒜) (↑a * b)) n) = if i ≤ n then ↑a * ↑(((decompose 𝒜) b) (n - i)) else 0

tactic: rw [decompose_mul, decompose_coe, coe_of_mul_apply]
state_before: case intro
ι : Type u_1
R : Type u_2
A : Type u_3
σ : Type u_4
inst✝⁹ : Semiring A
inst✝⁸ : DecidableEq ι
inst✝⁷ : CanonicallyOrderedAddCommMonoid ι
inst✝⁶ : SetLike σ A
inst✝⁵ : AddSubmonoidClass σ A
𝒜 : ι → σ
inst✝⁴ : GradedRing 𝒜
b : A
n✝ i : ι
inst✝³ : Sub ι
inst✝² : OrderedSub ι
inst✝¹ : ContravariantClass ι ι (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
n : ι
inst✝ : Decidable (i ≤ n)
a : ↥(𝒜 i)
⊢ ↑(((decompose 𝒜) (↑a * b)) n) = if i ≤ n then ↑a * ↑(((decompose 𝒜) b) (n - i)) else 0
state_after: no goals
Theorem: isReduced_of_injective
File: Mathlib/RingTheory/Nilpotent/Defs.lean

tactic: constructor
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
⊢ IsReduced R
state_after: case eq_zero
R : Type u_1
S : Type u_2
x y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
⊢ ∀ (x : R), IsNilpotent x → x = 0

tactic: intro x hx
state_before: case eq_zero
R : Type u_1
S : Type u_2
x y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
⊢ ∀ (x : R), IsNilpotent x → x = 0
state_after: case eq_zero
R : Type u_1
S : Type u_2
x✝ y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
x : R
hx : IsNilpotent x
⊢ x = 0

tactic: apply hf
state_before: case eq_zero
R : Type u_1
S : Type u_2
x✝ y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
x : R
hx : IsNilpotent x
⊢ x = 0
state_after: case eq_zero.a
R : Type u_1
S : Type u_2
x✝ y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
x : R
hx : IsNilpotent x
⊢ f x = f 0

tactic: rw [map_zero]
state_before: case eq_zero.a
R : Type u_1
S : Type u_2
x✝ y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
x : R
hx : IsNilpotent x
⊢ f x = f 0
state_after: case eq_zero.a
R : Type u_1
S : Type u_2
x✝ y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
x : R
hx : IsNilpotent x
⊢ f x = 0

tactic: exact (hx.map f).eq_zero
state_before: case eq_zero.a
R : Type u_1
S : Type u_2
x✝ y : R
inst✝⁴ : MonoidWithZero R
inst✝³ : MonoidWithZero S
F : Type u_3
inst✝² : FunLike F R S
inst✝¹ : MonoidWithZeroHomClass F R S
f : F
hf : Injective ⇑f
inst✝ : IsReduced S
x : R
hx : IsNilpotent x
⊢ f x = 0
state_after: no goals
Theorem: TopCat.Presheaf.pushforwardToOfIso_app
File: Mathlib/Topology/Sheaves/Presheaf.lean

tactic: simp [Opens.map, Set.preimage_preimage]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
H₁ : X ≅ Y
ℱ : Presheaf C Y
𝒢 : Presheaf C X
H₂ : ℱ ⟶ H₁.hom _* 𝒢
U : (Opens ↑X)ᵒᵖ
⊢ (Opens.map H₁.hom).op.obj { unop := (Opens.map H₁.inv).obj U.unop } = U
state_after: no goals

tactic: simp [pushforwardToOfIso, Equivalence.toAdjunction]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : TopCat
H₁ : X ≅ Y
ℱ : Presheaf C Y
𝒢 : Presheaf C X
H₂ : ℱ ⟶ H₁.hom _* 𝒢
U : (Opens ↑X)ᵒᵖ
⊢ (pushforwardToOfIso H₁ H₂).app U = H₂.app { unop := (Opens.map H₁.inv).obj U.unop } ≫ 𝒢.map (eqToHom ⋯)
state_after: no goals
Theorem: MeasureTheory.L2.mem_L1_inner
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: simp_rw [mem_Lp_iff_snorm_lt_top, snorm_aeeqFun]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
⊢ AEEqFun.mk (fun x => ⟪↑↑f x, ↑↑g x⟫_𝕜) ⋯ ∈ Lp 𝕜 1 μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
⊢ snorm (fun x => ⟪↑↑f x, ↑↑g x⟫_𝕜) 1 μ < ⊤

tactic: exact snorm_inner_lt_top f g
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
⊢ snorm (fun x => ⟪↑↑f x, ↑↑g x⟫_𝕜) 1 μ < ⊤
state_after: no goals
Theorem: Quiver.Hom.cast_eq_iff_heq
File: Mathlib/Combinatorics/Quiver/Cast.lean

tactic: rw [Hom.cast_eq_cast]
state_before: U : Type u_1
inst✝ : Quiver U
u v u' v' : U
hu : u = u'
hv : v = v'
e : u ⟶ v
e' : u' ⟶ v'
⊢ cast hu hv e = e' ↔ HEq e e'
state_after: U : Type u_1
inst✝ : Quiver U
u v u' v' : U
hu : u = u'
hv : v = v'
e : u ⟶ v
e' : u' ⟶ v'
⊢ _root_.cast ⋯ e = e' ↔ HEq e e'

tactic: exact _root_.cast_eq_iff_heq
state_before: U : Type u_1
inst✝ : Quiver U
u v u' v' : U
hu : u = u'
hv : v = v'
e : u ⟶ v
e' : u' ⟶ v'
⊢ _root_.cast ⋯ e = e' ↔ HEq e e'
state_after: no goals
Theorem: ENNReal.smul_iSup
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp only [← smul_one_mul c (f _), ← smul_one_mul c (iSup f), ENNReal.mul_iSup]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a b c✝ d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
ι : Sort u_4
R : Type u_5
inst✝¹ : SMul R ℝ≥0∞
inst✝ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
f : ι → ℝ≥0∞
c : R
⊢ c • ⨆ i, f i = ⨆ i, c • f i
state_after: no goals
Theorem: Set.biUnion_range_preimage_singleton
File: Mathlib/Data/Set/Lattice.lean

tactic: rw [biUnion_preimage_singleton, preimage_range]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
⊢ ⋃ y ∈ range f, f ⁻¹' {y} = univ
state_after: no goals
Theorem: Finset.map_comm
File: Mathlib/Data/Finset/Image.lean

tactic: simp_rw [map_map, Embedding.trans, Function.comp, h_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f✝ : α ↪ β
s : Finset α
β' : Type u_4
f : β ↪ γ
g : α ↪ β
f' : α ↪ β'
g' : β' ↪ γ
h_comm : ∀ (a : α), f (g a) = g' (f' a)
⊢ map f (map g s) = map g' (map f' s)
state_after: no goals
Theorem: slope_neg
File: Mathlib/LinearAlgebra/AffineSpace/Slope.lean

tactic: simp only [slope_def_module, neg_sub_neg, ← smul_neg, neg_sub]
state_before: k : Type u_1
E : Type u_2
PE : Type u_3
inst✝³ : Field k
inst✝² : AddCommGroup E
inst✝¹ : Module k E
inst✝ : AddTorsor E PE
f : k → E
x y : k
⊢ slope (fun t => -f t) x y = -slope f x y
state_after: no goals
Theorem: MeasureTheory.Measure.toSignedMeasure_sub_apply
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [VectorMeasure.sub_apply, toSignedMeasure_apply_measurable hi,
  Measure.toSignedMeasure_apply_measurable hi]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
i : Set α
hi : MeasurableSet i
⊢ ↑(μ.toSignedMeasure - ν.toSignedMeasure) i = (μ i).toReal - (ν i).toReal
state_after: no goals
Theorem: Quaternion.coeComplex_mul
File: Mathlib/Analysis/Quaternion.lean

tactic: ext <;> simp
state_before: z w : ℂ
⊢ ↑(z * w) = ↑z * ↑w
state_after: no goals
Theorem: finprod_cond_eq_right
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: simp [@eq_comm _ a]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g : α → M
a b : α
s t : Set α
⊢ ∏ᶠ (i : α) (_ : a = i), f i = f a
state_after: no goals
Theorem: lie_sub
File: Mathlib/Algebra/Lie/Basic.lean

tactic: simp [sub_eq_add_neg]
state_before: R : Type u
L : Type v
M : Type w
N : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
t : R
x y z : L
m n : M
⊢ ⁅x, m - n⁆ = ⁅x, m⁆ - ⁅x, n⁆
state_after: no goals
Theorem: Polynomial.X_pow_add_C_ne_one
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: simpa only [natDegree_X_pow_add_C, natDegree_one] using congr_arg natDegree h
state_before: R : Type u
S : Type v
a✝ b c d : R
n✝ m : ℕ
inst✝¹ : Nontrivial R
inst✝ : Semiring R
n : ℕ
hn : 0 < n
a : R
h : X ^ n + C a = 1
⊢ n = 0
state_after: no goals
Theorem: Finset.noncommProd_insert_of_not_mem'
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: simp only [← cons_eq_insert _ _ ha, noncommProd_cons']
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f✝ : α → β → β
op : α → α → α
inst✝² : Monoid β
inst✝¹ : Monoid γ
inst✝ : DecidableEq α
s : Finset α
a : α
f : α → β
comm : (↑(insert a s)).Pairwise fun a b => Commute (f a) (f b)
ha : a ∉ s
⊢ (insert a s).noncommProd f comm = s.noncommProd f ⋯ * f a
state_after: no goals
Theorem: Subbimodule.smul_mem
File: Mathlib/Algebra/Module/Bimodule.lean

tactic: suffices a • m = a ⊗ₜ[R] (1 : B) • m by exact this.symm ▸ p.smul_mem _ hm
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
a : A
m : M
hm : m ∈ p
⊢ a • m ∈ p
state_after: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
a : A
m : M
hm : m ∈ p
⊢ a • m = a ⊗ₜ[R] 1 • m

tactic: simp [TensorProduct.Algebra.smul_def]
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
a : A
m : M
hm : m ∈ p
⊢ a • m = a ⊗ₜ[R] 1 • m
state_after: no goals

tactic: exact this.symm ▸ p.smul_mem _ hm
state_before: R : Type u_1
A : Type u_2
B : Type u_3
M : Type u_4
inst✝¹¹ : CommSemiring R
inst✝¹⁰ : AddCommMonoid M
inst✝⁹ : Module R M
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Module A M
inst✝⁵ : Module B M
inst✝⁴ : Algebra R A
inst✝³ : Algebra R B
inst✝² : IsScalarTower R A M
inst✝¹ : IsScalarTower R B M
inst✝ : SMulCommClass A B M
p : Submodule (A ⊗[R] B) M
a : A
m : M
hm : m ∈ p
this : a • m = a ⊗ₜ[R] 1 • m
⊢ a • m ∈ p
state_after: no goals
Theorem: RightCancelMonoid.toMonoid_injective
File: Mathlib/Algebra/Group/Ext.lean

tactic: rintro @⟨@⟨⟩⟩ @⟨@⟨⟩⟩ h
state_before: M : Type u
⊢ Injective (@toMonoid M)
state_after: case mk.mk.mk.mk
M : Type u
toOne✝¹ : One M
npow✝¹ : ℕ → M → M
npow_zero✝¹ : ∀ (x : M), npow✝¹ 0 x = 1
toSemigroup✝¹ : Semigroup M
mul_right_cancel✝¹ : ∀ (a b c : M), a * b = c * b → a = c
one_mul✝¹ : ∀ (a : M), 1 * a = a
mul_one✝¹ : ∀ (a : M), a * 1 = a
npow_succ✝¹ : ∀ (n : ℕ) (x : M), npow✝¹ (n + 1) x = npow✝¹ n x * x
toOne✝ : One M
npow✝ : ℕ → M → M
npow_zero✝ : ∀ (x : M), npow✝ 0 x = 1
toSemigroup✝ : Semigroup M
mul_right_cancel✝ : ∀ (a b c : M), a * b = c * b → a = c
one_mul✝ : ∀ (a : M), 1 * a = a
mul_one✝ : ∀ (a : M), a * 1 = a
npow_succ✝ : ∀ (n : ℕ) (x : M), npow✝ (n + 1) x = npow✝ n x * x
h : toMonoid = toMonoid
⊢ mk one_mul✝¹ mul_one✝¹ npow✝¹ npow_zero✝¹ npow_succ✝¹ = mk one_mul✝ mul_one✝ npow✝ npow_zero✝ npow_succ✝

tactic: congr <;> injection h
state_before: case mk.mk.mk.mk
M : Type u
toOne✝¹ : One M
npow✝¹ : ℕ → M → M
npow_zero✝¹ : ∀ (x : M), npow✝¹ 0 x = 1
toSemigroup✝¹ : Semigroup M
mul_right_cancel✝¹ : ∀ (a b c : M), a * b = c * b → a = c
one_mul✝¹ : ∀ (a : M), 1 * a = a
mul_one✝¹ : ∀ (a : M), a * 1 = a
npow_succ✝¹ : ∀ (n : ℕ) (x : M), npow✝¹ (n + 1) x = npow✝¹ n x * x
toOne✝ : One M
npow✝ : ℕ → M → M
npow_zero✝ : ∀ (x : M), npow✝ 0 x = 1
toSemigroup✝ : Semigroup M
mul_right_cancel✝ : ∀ (a b c : M), a * b = c * b → a = c
one_mul✝ : ∀ (a : M), 1 * a = a
mul_one✝ : ∀ (a : M), a * 1 = a
npow_succ✝ : ∀ (n : ℕ) (x : M), npow✝ (n + 1) x = npow✝ n x * x
h : toMonoid = toMonoid
⊢ mk one_mul✝¹ mul_one✝¹ npow✝¹ npow_zero✝¹ npow_succ✝¹ = mk one_mul✝ mul_one✝ npow✝ npow_zero✝ npow_succ✝
state_after: no goals