1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.setToFun_measure_zero
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: have : f =ᵐ[μ] 0 := by simp [h, EventuallyEq]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
h : μ = 0
⊢ setToFun μ T hT f = 0
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
h : μ = 0
this : f =ᶠ[ae μ] 0
⊢ setToFun μ T hT f = 0

tactic: rw [setToFun_congr_ae hT this, setToFun_zero]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
h : μ = 0
this : f =ᶠ[ae μ] 0
⊢ setToFun μ T hT f = 0
state_after: no goals

tactic: simp [h, EventuallyEq]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
h : μ = 0
⊢ f =ᶠ[ae μ] 0
state_after: no goals
Theorem: CochainComplex.shiftFunctorAdd_inv_app_f
File: Mathlib/Algebra/Homology/HomotopyCategory/Shift.lean

tactic: dsimp
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
a b n : ℤ
⊢ n + { as := b }.as + { as := a }.as = n + { as := a + b }.as
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
a b n : ℤ
⊢ n + b + a = n + (a + b)

tactic: rw [add_comm a, add_assoc]
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : Preadditive D
K : CochainComplex C ℤ
a b n : ℤ
⊢ n + b + a = n + (a + b)
state_after: no goals
Theorem: LinearMap.ker_le_comap
File: Mathlib/Algebra/Module/Submodule/Ker.lean

tactic: simp [mem_ker.mp hx]
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
K : Type u_5
M : Type u_6
M₁ : Type u_7
M₂ : Type u_8
M₃ : Type u_9
V : Type u_10
V₂ : Type u_11
inst✝¹² : Semiring R
inst✝¹¹ : Semiring R₂
inst✝¹⁰ : Semiring R₃
inst✝⁹ : AddCommMonoid M
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁶ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝⁵ : Module R M
inst✝⁴ : Module R₂ M₂
inst✝³ : Module R₃ M₃
σ₂₁ : R₂ →+* R
τ₁₂ : R →+* R₂
τ₂₃ : R₂ →+* R₃
τ₁₃ : R →+* R₃
inst✝² : RingHomCompTriple τ₁₂ τ₂₃ τ₁₃
F : Type u_12
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F τ₁₂ M M₂
p : Submodule R₂ M₂
f : M →ₛₗ[τ₁₂] M₂
x : M
hx : x ∈ ker f
⊢ x ∈ comap f p
state_after: no goals
Theorem: Function.invFunOn_image_image_subset
File: Mathlib/Data/Set/Function.lean

tactic: rintro _ ⟨_, ⟨x,hx,rfl⟩, rfl⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s✝ s₁ s₂ : Set α
t : Set β
f✝ : α → β
inst✝ : Nonempty α
f : α → β
s : Set α
⊢ invFunOn f s '' (f '' s) ⊆ s
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s✝ s₁ s₂ : Set α
t : Set β
f✝ : α → β
inst✝ : Nonempty α
f : α → β
s : Set α
x : α
hx : x ∈ s
⊢ invFunOn f s (f x) ∈ s

tactic: exact invFunOn_apply_mem hx
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s✝ s₁ s₂ : Set α
t : Set β
f✝ : α → β
inst✝ : Nonempty α
f : α → β
s : Set α
x : α
hx : x ∈ s
⊢ invFunOn f s (f x) ∈ s
state_after: no goals
Theorem: CharacterModule.exists_character_apply_ne_zero_of_ne_zero
File: Mathlib/Algebra/Module/CharacterModule.lean

tactic: rwa [← hc]
state_before: R : Type uR
inst✝³ : CommRing R
A : Type uA
inst✝² : AddCommGroup A
A' : Type u_1
inst✝¹ : AddCommGroup A'
B : Type uB
inst✝ : AddCommGroup B
a : A
ne_zero : a ≠ 0
c : CharacterModule A
hc : (dual (Submodule.span ℤ {a}).subtype) c = ofSpanSingleton a
h : c a = 0
⊢ (ofSpanSingleton a) ⟨a, ⋯⟩ = 0
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.W_of_isLocallyBijective
File: Mathlib/CategoryTheory/Sites/LocallyBijective.lean

tactic: rw [W_iff_isLocallyBijective]
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝⁴ : Category.{v', u'} A
inst✝³ : ConcreteCategory A
inst✝² : J.WEqualsLocallyBijective A
X Y : Cᵒᵖ ⥤ A
f : X ⟶ Y
inst✝¹ : Presheaf.IsLocallyInjective J f
inst✝ : Presheaf.IsLocallySurjective J f
⊢ J.W 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
inst✝² : J.WEqualsLocallyBijective A
X Y : Cᵒᵖ ⥤ A
f : X ⟶ Y
inst✝¹ : Presheaf.IsLocallyInjective J f
inst✝ : Presheaf.IsLocallySurjective J f
⊢ Presheaf.IsLocallyInjective J f ∧ Presheaf.IsLocallySurjective J f

tactic: constructor <;> infer_instance
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝⁴ : Category.{v', u'} A
inst✝³ : ConcreteCategory A
inst✝² : J.WEqualsLocallyBijective A
X Y : Cᵒᵖ ⥤ A
f : X ⟶ Y
inst✝¹ : Presheaf.IsLocallyInjective J f
inst✝ : Presheaf.IsLocallySurjective J f
⊢ Presheaf.IsLocallyInjective J f ∧ Presheaf.IsLocallySurjective J f
state_after: no goals
Theorem: Filter.set_eventuallyEq_iff_inf_principal
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [eventuallyLE_antisymm_iff, le_antisymm_iff, set_eventuallyLE_iff_inf_principal_le]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
l✝ : Filter α
s t : Set α
l : Filter α
⊢ s =ᶠ[l] t ↔ l ⊓ 𝓟 s = l ⊓ 𝓟 t
state_after: no goals
Theorem: MeasureTheory.condexpIndSMul_empty
File: Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean

tactic: rw [condexpIndSMul, indicatorConstLp_empty]
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
x : G
⊢ condexpIndSMul hm ⋯ ⋯ x = 0
state_after: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
x : G
⊢ (compLpL 2 μ (toSpanSingleton ℝ x)) ↑((condexpL2 ℝ ℝ hm) 0) = 0

tactic: simp only [Submodule.coe_zero, ContinuousLinearMap.map_zero]
state_before: α : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
G' : Type u_6
𝕜 : Type u_7
p : ℝ≥0∞
inst✝¹⁹ : RCLike 𝕜
inst✝¹⁸ : NormedAddCommGroup E
inst✝¹⁷ : InnerProductSpace 𝕜 E
inst✝¹⁶ : CompleteSpace E
inst✝¹⁵ : NormedAddCommGroup E'
inst✝¹⁴ : InnerProductSpace 𝕜 E'
inst✝¹³ : CompleteSpace E'
inst✝¹² : NormedSpace ℝ E'
inst✝¹¹ : NormedAddCommGroup F
inst✝¹⁰ : NormedSpace 𝕜 F
inst✝⁹ : NormedAddCommGroup G
inst✝⁸ : NormedAddCommGroup G'
inst✝⁷ : NormedSpace ℝ G'
inst✝⁶ : CompleteSpace G'
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
E'' : Type u_8
𝕜' : Type u_9
inst✝⁵ : RCLike 𝕜'
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : InnerProductSpace 𝕜' E''
inst✝² : CompleteSpace E''
inst✝¹ : NormedSpace ℝ E''
inst✝ : NormedSpace ℝ G
hm : m ≤ m0
x : G
⊢ (compLpL 2 μ (toSpanSingleton ℝ x)) ↑((condexpL2 ℝ ℝ hm) 0) = 0
state_after: no goals
Theorem: eventually_nhds_norm_smul_sub_lt
File: Mathlib/Analysis/NormedSpace/Basic.lean

tactic: fun_prop
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝⁴ : NormedField 𝕜
inst✝³ : SeminormedAddCommGroup E
inst✝² : SeminormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace 𝕜 F
c : 𝕜
x : E
ε : ℝ
h : 0 < ε
⊢ Continuous fun y => ‖c • (y - x)‖
state_after: no goals

tactic: simp
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝⁴ : NormedField 𝕜
inst✝³ : SeminormedAddCommGroup E
inst✝² : SeminormedAddCommGroup F
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace 𝕜 F
c : 𝕜
x : E
ε : ℝ
h : 0 < ε
⊢ ‖c • (x - x)‖ = 0
state_after: no goals
Theorem: Function.Commute.minimalPeriod_of_comp_dvd_lcm
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [← isPeriodicPt_iff_minimalPeriod_dvd]
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
g : α → α
h : Function.Commute f g
⊢ minimalPeriod (f ∘ g) x ∣ (minimalPeriod f x).lcm (minimalPeriod g x)
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
g : α → α
h : Function.Commute f g
⊢ IsPeriodicPt (f ∘ g) ((minimalPeriod f x).lcm (minimalPeriod g x)) x

tactic: exact (isPeriodicPt_minimalPeriod f x).comp_lcm h (isPeriodicPt_minimalPeriod g x)
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
g : α → α
h : Function.Commute f g
⊢ IsPeriodicPt (f ∘ g) ((minimalPeriod f x).lcm (minimalPeriod g x)) x
state_after: no goals
Theorem: Multiset.add_product
File: Mathlib/Data/Multiset/Bind.lean

tactic: simp [SProd.sprod, product]
state_before: α : Type u_1
β : Type v
γ : Type u_2
δ : Type u_3
a : α
b : β
s✝ : Multiset α
t✝ : Multiset β
s t : Multiset α
u : Multiset β
⊢ (s + t) ×ˢ u = s ×ˢ u + t ×ˢ u
state_after: no goals
Theorem: CochainComplex.HomComplex.δ_comp_zero_cocycle
File: Mathlib/Algebra/Homology/HomotopyCategory/HomComplex.lean

tactic: by_cases hnm : n + 1 = m
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n✝ m✝ n : ℤ
z₁ : Cochain F G n
z₂ : Cocycle G K 0
m : ℤ
⊢ δ n m (z₁.comp ↑z₂ ⋯) = (δ n m z₁).comp ↑z₂ ⋯
state_after: case pos
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n✝ m✝ n : ℤ
z₁ : Cochain F G n
z₂ : Cocycle G K 0
m : ℤ
hnm : n + 1 = m
⊢ δ n m (z₁.comp ↑z₂ ⋯) = (δ n m z₁).comp ↑z₂ ⋯

case neg
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n✝ m✝ n : ℤ
z₁ : Cochain F G n
z₂ : Cocycle G K 0
m : ℤ
hnm : ¬n + 1 = m
⊢ δ n m (z₁.comp ↑z₂ ⋯) = (δ n m z₁).comp ↑z₂ ⋯

tactic: simp [δ_comp_zero_cochain _ _ _ hnm]
state_before: case pos
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n✝ m✝ n : ℤ
z₁ : Cochain F G n
z₂ : Cocycle G K 0
m : ℤ
hnm : n + 1 = m
⊢ δ n m (z₁.comp ↑z₂ ⋯) = (δ n m z₁).comp ↑z₂ ⋯
state_after: no goals

tactic: simp [δ_shape _ _ hnm]
state_before: case neg
C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type u_1
inst✝¹ : Ring R
inst✝ : Linear R C
F G K L : CochainComplex C ℤ
n✝ m✝ n : ℤ
z₁ : Cochain F G n
z₂ : Cocycle G K 0
m : ℤ
hnm : ¬n + 1 = m
⊢ δ n m (z₁.comp ↑z₂ ⋯) = (δ n m z₁).comp ↑z₂ ⋯
state_after: no goals
Theorem: LieAlgebra.InvariantForm.orthogonal_isCompl_coe_submodule
File: Mathlib/Algebra/Lie/InvariantForm.lean

tactic: rw [orthogonal_toSubmodule, LinearMap.BilinForm.isCompl_orthogonal_iff_disjoint hΦ_refl,
    ← orthogonal_toSubmodule _ hΦ_inv, ← LieSubmodule.disjoint_iff_coe_toSubmodule]
state_before: K : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : Field K
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra K L
inst✝³ : AddCommGroup M
inst✝² : Module K M
inst✝¹ : LieRingModule L M
inst✝ : Module.Finite K L
Φ : LinearMap.BilinForm K L
hΦ_nondeg : Φ.Nondegenerate
hΦ_inv : LinearMap.BilinForm.lieInvariant L Φ
hΦ_refl : Φ.IsRefl
hL : ∀ (I : LieIdeal K L), IsAtom I → ¬IsLieAbelian ↥↑I
I : LieIdeal K L
hI : IsAtom I
⊢ IsCompl ↑I ↑(orthogonal Φ hΦ_inv I)
state_after: K : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : Field K
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra K L
inst✝³ : AddCommGroup M
inst✝² : Module K M
inst✝¹ : LieRingModule L M
inst✝ : Module.Finite K L
Φ : LinearMap.BilinForm K L
hΦ_nondeg : Φ.Nondegenerate
hΦ_inv : LinearMap.BilinForm.lieInvariant L Φ
hΦ_refl : Φ.IsRefl
hL : ∀ (I : LieIdeal K L), IsAtom I → ¬IsLieAbelian ↥↑I
I : LieIdeal K L
hI : IsAtom I
⊢ Disjoint I (orthogonal Φ hΦ_inv I)

tactic: exact orthogonal_disjoint Φ hΦ_nondeg hΦ_inv hL I hI
state_before: K : Type u_1
L : Type u_2
M : Type u_3
inst✝⁶ : Field K
inst✝⁵ : LieRing L
inst✝⁴ : LieAlgebra K L
inst✝³ : AddCommGroup M
inst✝² : Module K M
inst✝¹ : LieRingModule L M
inst✝ : Module.Finite K L
Φ : LinearMap.BilinForm K L
hΦ_nondeg : Φ.Nondegenerate
hΦ_inv : LinearMap.BilinForm.lieInvariant L Φ
hΦ_refl : Φ.IsRefl
hL : ∀ (I : LieIdeal K L), IsAtom I → ¬IsLieAbelian ↥↑I
I : LieIdeal K L
hI : IsAtom I
⊢ Disjoint I (orthogonal Φ hΦ_inv I)
state_after: no goals
Theorem: eq_rec_constant
File: .lake/packages/batteries/Batteries/Logic.lean

tactic: cases h
state_before: α : Sort u_1
a a' : α
β : Sort u_2
y : β
h : a = a'
⊢ h ▸ y = y
state_after: case refl
α : Sort u_1
a : α
β : Sort u_2
y : β
⊢ ⋯ ▸ y = y

tactic: rfl
state_before: case refl
α : Sort u_1
a : α
β : Sort u_2
y : β
⊢ ⋯ ▸ y = y
state_after: no goals
Theorem: Subgroup.rank_congr
File: Mathlib/GroupTheory/Finiteness.lean

tactic: subst h
state_before: M : Type u_1
N : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : AddMonoid N
G : Type u_3
H✝ : Type u_4
inst✝³ : Group G
inst✝² : AddGroup H✝
H K : Subgroup G
inst✝¹ : Group.FG ↥H
inst✝ : Group.FG ↥K
h : H = K
⊢ Group.rank ↥H = Group.rank ↥K
state_after: M : Type u_1
N : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : AddMonoid N
G : Type u_3
H✝ : Type u_4
inst✝³ : Group G
inst✝² : AddGroup H✝
H : Subgroup G
inst✝¹ inst✝ : Group.FG ↥H
⊢ Group.rank ↥H = Group.rank ↥H

tactic: rfl
state_before: M : Type u_1
N : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : AddMonoid N
G : Type u_3
H✝ : Type u_4
inst✝³ : Group G
inst✝² : AddGroup H✝
H : Subgroup G
inst✝¹ inst✝ : Group.FG ↥H
⊢ Group.rank ↥H = Group.rank ↥H
state_after: no goals
Theorem: Int.abs_lt_one_iff
File: Mathlib/Algebra/Order/Group/Int.lean

tactic: rw [← zero_add 1, lt_add_one_iff, abs_nonpos_iff]
state_before: a : ℤ
⊢ |a| < 1 ↔ a = 0
state_after: no goals
Theorem: Real.le_toNNReal_iff_coe_le'
File: Mathlib/Data/NNReal/Basic.lean

tactic: simp only [(hp.trans_le r.coe_nonneg).not_le, toNNReal_eq_zero.2 hp.le, hr.not_le]
state_before: r : ℝ≥0
p : ℝ
hr : 0 < r
hp : p < 0
⊢ r ≤ p.toNNReal ↔ ↑r ≤ p
state_after: no goals
Theorem: HasDerivAt.rpow_const
File: Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean

tactic: rw [← hasDerivWithinAt_univ] at *
state_before: f g : ℝ → ℝ
f' g' x y p : ℝ
s : Set ℝ
hf : HasDerivAt f f' x
hx : f x ≠ 0 ∨ 1 ≤ p
⊢ HasDerivAt (fun y => f y ^ p) (f' * p * f x ^ (p - 1)) x
state_after: f g : ℝ → ℝ
f' g' x y p : ℝ
s : Set ℝ
hf : HasDerivWithinAt f f' Set.univ x
hx : f x ≠ 0 ∨ 1 ≤ p
⊢ HasDerivWithinAt (fun y => f y ^ p) (f' * p * f x ^ (p - 1)) Set.univ x

tactic: exact hf.rpow_const hx
state_before: f g : ℝ → ℝ
f' g' x y p : ℝ
s : Set ℝ
hf : HasDerivWithinAt f f' Set.univ x
hx : f x ≠ 0 ∨ 1 ≤ p
⊢ HasDerivWithinAt (fun y => f y ^ p) (f' * p * f x ^ (p - 1)) Set.univ x
state_after: no goals
Theorem: Commute.invOf_left
File: Mathlib/Algebra/Group/Invertible/Basic.lean

tactic: simp [mul_assoc]
state_before: α : Type u
inst✝¹ : Monoid α
a b : α
inst✝ : Invertible b
h : Commute b a
⊢ ⅟b * a = ⅟b * (a * b * ⅟b)
state_after: no goals

tactic: rw [h.eq]
state_before: α : Type u
inst✝¹ : Monoid α
a b : α
inst✝ : Invertible b
h : Commute b a
⊢ ⅟b * (a * b * ⅟b) = ⅟b * (b * a * ⅟b)
state_after: no goals

tactic: simp [mul_assoc]
state_before: α : Type u
inst✝¹ : Monoid α
a b : α
inst✝ : Invertible b
h : Commute b a
⊢ ⅟b * (b * a * ⅟b) = a * ⅟b
state_after: no goals
Theorem: CategoryTheory.GrothendieckTopology.toSheafify_naturality
File: Mathlib/CategoryTheory/Sites/ConcreteSheafification.lean

tactic: dsimp [sheafifyMap, sheafify, toSheafify]
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P Q : Cᵒᵖ ⥤ D
η : P ⟶ Q
⊢ η ≫ J.toSheafify Q = J.toSheafify P ≫ J.sheafifyMap η
state_after: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P Q : Cᵒᵖ ⥤ D
η : P ⟶ Q
⊢ η ≫ J.toPlus Q ≫ J.plusMap (J.toPlus Q) = (J.toPlus P ≫ J.plusMap (J.toPlus P)) ≫ J.plusMap (J.plusMap η)

tactic: simp
state_before: C : Type u
inst✝³ : Category.{v, u} C
J : GrothendieckTopology C
D : Type w
inst✝² : Category.{max v u, w} D
inst✝¹ : ∀ (P : Cᵒᵖ ⥤ D) (X : C) (S : J.Cover X), HasMultiequalizer (S.index P)
inst✝ : ∀ (X : C), HasColimitsOfShape (J.Cover X)ᵒᵖ D
P Q : Cᵒᵖ ⥤ D
η : P ⟶ Q
⊢ η ≫ J.toPlus Q ≫ J.plusMap (J.toPlus Q) = (J.toPlus P ≫ J.plusMap (J.toPlus P)) ≫ J.plusMap (J.plusMap η)
state_after: no goals
Theorem: Num.cast_to_int
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← to_nat_to_int, Int.cast_natCast, cast_to_nat]
state_before: α : Type u_1
inst✝ : AddGroupWithOne α
n : Num
⊢ ↑↑n = ↑n
state_after: no goals
Theorem: CategoryTheory.NonPreadditiveAbelian.add_neg
File: Mathlib/CategoryTheory/Abelian/NonPreadditive.lean

tactic: rw [add_def, neg_neg]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : NonPreadditiveAbelian C
X Y : C
a b : X ⟶ Y
⊢ a + -b = a - b
state_after: no goals
Theorem: neg_eq_self
File: Mathlib/Algebra/Module/Defs.lean

tactic: rw [eq_comm, self_eq_neg R M]
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝⁴ : Semiring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : CharZero R
v : M
⊢ -v = v ↔ v = 0
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.Y_sub_Y_add_Y_sub_negY
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: linear_combination (norm := (rw [negY, negY]; ring1)) -W'.a₁ * P z * Q z * hx
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
hx : P x * Q z ^ 2 = Q x * P z ^ 2
⊢ P y * Q z ^ 3 - Q y * P z ^ 3 + (P y * Q z ^ 3 - W'.negY Q * P z ^ 3) = (P y - W'.negY P) * Q z ^ 3
state_after: no goals

tactic: rw [negY, negY]
state_before: case a
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
hx : P x * Q z ^ 2 = Q x * P z ^ 2
⊢ P y * Q z ^ 3 - Q y * P z ^ 3 + (P y * Q z ^ 3 - W'.negY Q * P z ^ 3) - (P y - W'.negY P) * Q z ^ 3 -
      (-W'.a₁ * P z * Q z * (P x * Q z ^ 2) - -W'.a₁ * P z * Q z * (Q x * P z ^ 2)) =
    0
state_after: case a
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
hx : P x * Q z ^ 2 = Q x * P z ^ 2
⊢ P y * Q z ^ 3 - Q y * P z ^ 3 + (P y * Q z ^ 3 - (-Q y - W'.a₁ * Q x * Q z - W'.a₃ * Q z ^ 3) * P z ^ 3) -
        (P y - (-P y - W'.a₁ * P x * P z - W'.a₃ * P z ^ 3)) * Q z ^ 3 -
      (-W'.a₁ * P z * Q z * (P x * Q z ^ 2) - -W'.a₁ * P z * Q z * (Q x * P z ^ 2)) =
    0

tactic: ring1
state_before: case a
R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P Q : Fin 3 → R
hx : P x * Q z ^ 2 = Q x * P z ^ 2
⊢ P y * Q z ^ 3 - Q y * P z ^ 3 + (P y * Q z ^ 3 - (-Q y - W'.a₁ * Q x * Q z - W'.a₃ * Q z ^ 3) * P z ^ 3) -
        (P y - (-P y - W'.a₁ * P x * P z - W'.a₃ * P z ^ 3)) * Q z ^ 3 -
      (-W'.a₁ * P z * Q z * (P x * Q z ^ 2) - -W'.a₁ * P z * Q z * (Q x * P z ^ 2)) =
    0
state_after: no goals
Theorem: Polynomial.Monic.comp
File: Mathlib/Algebra/Polynomial/RingDivision.lean

tactic: rw [Monic.def, leadingCoeff_comp h, Monic.def.1 hp, Monic.def.1 hq, one_pow, one_mul]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝¹ : CommRing R
inst✝ : IsDomain R
p q : R[X]
hp : p.Monic
hq : q.Monic
h : q.natDegree ≠ 0
⊢ (p.comp q).Monic
state_after: no goals
Theorem: List.Sublist.prod_dvd_prod
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: obtain ⟨l, hl⟩ := h.exists_perm_append
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : CommMonoid M
l₁ l₂ : List M
h : l₁ <+ l₂
⊢ l₁.prod ∣ l₂.prod
state_after: case intro
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : CommMonoid M
l₁ l₂ : List M
h : l₁ <+ l₂
l : List M
hl : l₂ ~ l₁ ++ l
⊢ l₁.prod ∣ l₂.prod

tactic: rw [hl.prod_eq, prod_append]
state_before: case intro
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : CommMonoid M
l₁ l₂ : List M
h : l₁ <+ l₂
l : List M
hl : l₂ ~ l₁ ++ l
⊢ l₁.prod ∣ l₂.prod
state_after: case intro
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : CommMonoid M
l₁ l₂ : List M
h : l₁ <+ l₂
l : List M
hl : l₂ ~ l₁ ++ l
⊢ l₁.prod ∣ l₁.prod * l.prod

tactic: exact dvd_mul_right _ _
state_before: case intro
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝ : CommMonoid M
l₁ l₂ : List M
h : l₁ <+ l₂
l : List M
hl : l₂ ~ l₁ ++ l
⊢ l₁.prod ∣ l₁.prod * l.prod
state_after: no goals