1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Finsupp.addHom_ext
File: Mathlib/Data/Finsupp/Defs.lean

tactic: refine AddMonoidHom.eq_of_eqOn_denseM add_closure_setOf_eq_single ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H✝ : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M
inst✝ : AddZeroClass N
f g : (α →₀ M) →+ N
H : ∀ (x : α) (y : M), f (single x y) = g (single x y)
⊢ f = g
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H✝ : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M
inst✝ : AddZeroClass N
f g : (α →₀ M) →+ N
H : ∀ (x : α) (y : M), f (single x y) = g (single x y)
⊢ Set.EqOn ⇑f ⇑g {f | ∃ a b, f = single a b}

tactic: rintro _ ⟨x, y, rfl⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H✝ : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M
inst✝ : AddZeroClass N
f g : (α →₀ M) →+ N
H : ∀ (x : α) (y : M), f (single x y) = g (single x y)
⊢ Set.EqOn ⇑f ⇑g {f | ∃ a b, f = single a b}
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H✝ : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M
inst✝ : AddZeroClass N
f g : (α →₀ M) →+ N
H : ∀ (x : α) (y : M), f (single x y) = g (single x y)
x : α
y : M
⊢ f (single x y) = g (single x y)

tactic: apply H
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H✝ : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddZeroClass M
inst✝ : AddZeroClass N
f g : (α →₀ M) →+ N
H : ∀ (x : α) (y : M), f (single x y) = g (single x y)
x : α
y : M
⊢ f (single x y) = g (single x y)
state_after: no goals
Theorem: Stream'.WSeq.toList'_cons
File: Mathlib/Data/Seq/WSeq.lean

tactic: simp [toList, cons]
state_before: α : Type u
β : Type v
γ : Type w
l : List α
s : WSeq α
a : α
⊢ (Computation.corec
        (fun x =>
          match x with
          | (l, s) =>
            match Seq.destruct s with
            | none => Sum.inl l.reverse
            | some (none, s') => Sum.inr (l, s')
            | some (some a, s') => Sum.inr (a :: l, s'))
        (l, cons a s)).destruct =
    Sum.inr
      (Computation.corec
        (fun x =>
          match x with
          | (l, s) =>
            match Seq.destruct s with
            | none => Sum.inl l.reverse
            | some (none, s') => Sum.inr (l, s')
            | some (some a, s') => Sum.inr (a :: l, s'))
        (a :: l, s))
state_after: no goals
Theorem: Ordnode.delta_lt_false
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: decide
state_before: α : Type u_1
a b : ℕ
h₁ : delta * a < b
h₂ : delta * b < a
⊢ 0 < delta
state_after: no goals

tactic: simpa [mul_assoc] using Nat.mul_le_mul_right a (by decide : 1 ≤ delta * delta)
state_before: α : Type u_1
a b : ℕ
h₁ : delta * a < b
h₂ : delta * b < a
⊢ a ≤ delta * (delta * a)
state_after: no goals

tactic: decide
state_before: α : Type u_1
a b : ℕ
h₁ : delta * a < b
h₂ : delta * b < a
⊢ 1 ≤ delta * delta
state_after: no goals
Theorem: CategoryTheory.Limits.Fork.app_one_eq_ι_comp_right
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: rw [← s.app_zero_eq_ι, ← s.w right, parallelPair_map_right]
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y : C
f g : X ⟶ Y
s : Fork f g
⊢ s.π.app one = s.ι ≫ g
state_after: no goals
Theorem: Matroid.Indep.restrict_eq_freeOn
File: Mathlib/Data/Matroid/Constructions.lean

tactic: rwa [restrict_eq_freeOn_iff]
state_before: α : Type u_1
M : Matroid α
E B I X R J : Set α
hI : M.Indep I
⊢ M ↾ I = freeOn I
state_after: no goals
Theorem: Surreal.dyadicMap_apply
File: Mathlib/SetTheory/Surreal/Dyadic.lean

tactic: rw [← Localization.mk_eq_mk']
state_before: m : ℤ
p : ↥(Submonoid.powers 2)
⊢ dyadicMap (IsLocalization.mk' (Localization (Submonoid.powers 2)) m p) = ↑m * powHalf (Submonoid.log p)
state_after: m : ℤ
p : ↥(Submonoid.powers 2)
⊢ dyadicMap (Localization.mk m p) = ↑m * powHalf (Submonoid.log p)

tactic: rfl
state_before: m : ℤ
p : ↥(Submonoid.powers 2)
⊢ dyadicMap (Localization.mk m p) = ↑m * powHalf (Submonoid.log p)
state_after: no goals
Theorem: MulAction.pow_period_smul
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [period_eq_minimalPeriod, ← smul_iterate_apply, iterate_minimalPeriod]
state_before: α : Type v
G : Type u
inst✝³ : Group G
inst✝² : MulAction G α
M : Type u
inst✝¹ : Monoid M
inst✝ : MulAction M α
m : M
a : α
⊢ m ^ period m a • a = a
state_after: no goals
Theorem: TopCat.Presheaf.germ_ext
File: Mathlib/Topology/Sheaves/Stalks.lean

tactic: erw [← F.germ_res iWU ⟨x, hxW⟩, ← F.germ_res iWV ⟨x, hxW⟩, comp_apply, comp_apply, ih]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasColimits C
X Y Z : TopCat
inst✝ : ConcreteCategory C
F : Presheaf C X
U V : Opens ↑X
x : ↑X
hxU : x ∈ U
hxV : x ∈ V
W : Opens ↑X
hxW : x ∈ W
iWU : W ⟶ U
iWV : W ⟶ V
sU : (forget C).obj (F.obj { unop := U })
sV : (forget C).obj (F.obj { unop := V })
ih : (F.map iWU.op) sU = (F.map iWV.op) sV
⊢ (F.germ ⟨x, hxU⟩) sU = (F.germ ⟨x, hxV⟩) sV
state_after: no goals
Theorem: Matrix.toLinAlgEquiv_toMatrixAlgEquiv
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: rw [← Matrix.toLinAlgEquiv_symm, AlgEquiv.apply_symm_apply]
state_before: R : Type u_1
inst✝⁹ : CommSemiring R
l : Type u_2
m : Type u_3
n : Type u_4
inst✝⁸ : Fintype n
inst✝⁷ : Fintype m
inst✝⁶ : DecidableEq n
M₁ : Type u_5
M₂ : Type u_6
inst✝⁵ : AddCommMonoid M₁
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R M₁
inst✝² : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
M₃ : Type u_7
inst✝¹ : AddCommMonoid M₃
inst✝ : Module R M₃
v₃ : Basis l R M₃
f : M₁ →ₗ[R] M₁
⊢ (toLinAlgEquiv v₁) ((toMatrixAlgEquiv v₁) f) = f
state_after: no goals
Theorem: algebraMap_nonneg
File: Mathlib/Algebra/Order/Module/Algebra.lean

tactic: simpa using algebraMap_mono β ha
state_before: α : Type u_1
β : Type u_2
inst✝³ : OrderedCommSemiring α
inst✝² : OrderedSemiring β
inst✝¹ : Algebra α β
inst✝ : SMulPosMono α β
a : α
ha : 0 ≤ a
⊢ 0 ≤ (algebraMap α β) a
state_after: no goals
Theorem: MeasureTheory.AEEqFun.Integrable.add
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: refine induction_on₂ f g fun f hf g hg hfi hgi => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f g : α →ₘ[μ] β
⊢ f.Integrable → g.Integrable → (f + g).Integrable
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : (mk f hf).Integrable
hgi : (mk g hg).Integrable
⊢ (mk f hf + mk g hg).Integrable

tactic: simp only [integrable_mk, mk_add_mk] at hfi hgi ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : (mk f hf).Integrable
hgi : (mk g hg).Integrable
⊢ (mk f hf + mk g hg).Integrable
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : MeasureTheory.Integrable f μ
hgi : MeasureTheory.Integrable g μ
⊢ MeasureTheory.Integrable (f + g) μ

tactic: exact hfi.add hgi
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f✝ g✝ : α →ₘ[μ] β
f : α → β
hf : AEStronglyMeasurable f μ
g : α → β
hg : AEStronglyMeasurable g μ
hfi : MeasureTheory.Integrable f μ
hgi : MeasureTheory.Integrable g μ
⊢ MeasureTheory.Integrable (f + g) μ
state_after: no goals
Theorem: CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility_hom_app_val
File: Mathlib/CategoryTheory/Sites/CoverLifting.lean

tactic: apply sheafifyLift_unique
state_before: C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_4, u_1} C
inst✝⁷ : Category.{u_3, u_2} D
G : C ⥤ D
A : Type w
inst✝⁶ : Category.{w', w} A
inst✝⁵ : ∀ (X : Dᵒᵖ), HasLimitsOfShape (StructuredArrow X G.op) A
J : GrothendieckTopology C
K : GrothendieckTopology D
inst✝⁴ : G.IsCocontinuous J K
inst✝³ : HasWeakSheafify J A
inst✝² : HasWeakSheafify K A
inst✝¹ : G.IsCocontinuous J K
inst✝ : G.IsContinuous J K
F : Dᵒᵖ ⥤ A
⊢ ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val =
    sheafifyLift J (whiskerLeft G.op (toSheafify K F)) ⋯
state_after: case a
C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_4, u_1} C
inst✝⁷ : Category.{u_3, u_2} D
G : C ⥤ D
A : Type w
inst✝⁶ : Category.{w', w} A
inst✝⁵ : ∀ (X : Dᵒᵖ), HasLimitsOfShape (StructuredArrow X G.op) A
J : GrothendieckTopology C
K : GrothendieckTopology D
inst✝⁴ : G.IsCocontinuous J K
inst✝³ : HasWeakSheafify J A
inst✝² : HasWeakSheafify K A
inst✝¹ : G.IsCocontinuous J K
inst✝ : G.IsContinuous J K
F : Dᵒᵖ ⥤ A
⊢ toSheafify J (((whiskeringLeft Cᵒᵖ Dᵒᵖ A).obj G.op).obj F) ≫
      ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val =
    whiskerLeft G.op (toSheafify K F)

tactic: apply toSheafify_pullbackSheafificationCompatibility
state_before: case a
C : Type u_1
D : Type u_2
inst✝⁸ : Category.{u_4, u_1} C
inst✝⁷ : Category.{u_3, u_2} D
G : C ⥤ D
A : Type w
inst✝⁶ : Category.{w', w} A
inst✝⁵ : ∀ (X : Dᵒᵖ), HasLimitsOfShape (StructuredArrow X G.op) A
J : GrothendieckTopology C
K : GrothendieckTopology D
inst✝⁴ : G.IsCocontinuous J K
inst✝³ : HasWeakSheafify J A
inst✝² : HasWeakSheafify K A
inst✝¹ : G.IsCocontinuous J K
inst✝ : G.IsContinuous J K
F : Dᵒᵖ ⥤ A
⊢ toSheafify J (((whiskeringLeft Cᵒᵖ Dᵒᵖ A).obj G.op).obj F) ≫
      ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val =
    whiskerLeft G.op (toSheafify K F)
state_after: no goals
Theorem: HomologicalComplex.opcyclesMap_comp_descOpcycles
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

tactic: rw [← φ.comm_assoc, hk, comp_zero]
state_before: C : Type u_1
inst✝⁴ : Category.{?u.98919, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ✝ : K ⟶ L
ψ : L ⟶ M
i j✝ k✝ : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
A : C
k : L.X i ⟶ A
j : ι
hj : c.prev i = j
hk : L.d j i ≫ k = 0
φ : K ⟶ L
⊢ K.d j i ≫ φ.f i ≫ k = 0
state_after: no goals

tactic: simp only [← cancel_epi (K.pOpcycles i), p_opcyclesMap_assoc, p_descOpcycles]
state_before: C : Type u_1
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K L M : HomologicalComplex C c
φ✝ : K ⟶ L
ψ : L ⟶ M
i j✝ k✝ : ι
inst✝² : K.HasHomology i
inst✝¹ : L.HasHomology i
inst✝ : M.HasHomology i
A : C
k : L.X i ⟶ A
j : ι
hj : c.prev i = j
hk : L.d j i ≫ k = 0
φ : K ⟶ L
⊢ opcyclesMap φ i ≫ L.descOpcycles k j hj hk = K.descOpcycles (φ.f i ≫ k) j hj ⋯
state_after: no goals
Theorem: List.mem_zip
File: Mathlib/Data/List/Zip.lean

tactic: cases' h with _ _ _ h
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
a : α
b : β
head✝¹ : α
l₁ : List α
head✝ : β
l₂ : List β
h : (a, b) ∈ (head✝¹ :: l₁).zip (head✝ :: l₂)
⊢ a ∈ head✝¹ :: l₁ ∧ b ∈ head✝ :: l₂
state_after: case head
α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
a : α
b : β
l₁ : List α
l₂ : List β
⊢ a ∈ a :: l₁ ∧ b ∈ b :: l₂

case tail
α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
a : α
b : β
head✝¹ : α
l₁ : List α
head✝ : β
l₂ : List β
h : Mem (a, b) (zipWith Prod.mk l₁ l₂)
⊢ a ∈ head✝¹ :: l₁ ∧ b ∈ head✝ :: l₂

tactic: simp
state_before: case head
α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
a : α
b : β
l₁ : List α
l₂ : List β
⊢ a ∈ a :: l₁ ∧ b ∈ b :: l₂
state_after: no goals

tactic: have := mem_zip h
state_before: case tail
α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
a : α
b : β
head✝¹ : α
l₁ : List α
head✝ : β
l₂ : List β
h : Mem (a, b) (zipWith Prod.mk l₁ l₂)
⊢ a ∈ head✝¹ :: l₁ ∧ b ∈ head✝ :: l₂
state_after: case tail
α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
a : α
b : β
head✝¹ : α
l₁ : List α
head✝ : β
l₂ : List β
h : Mem (a, b) (zipWith Prod.mk l₁ l₂)
this : a ∈ l₁ ∧ b ∈ l₂
⊢ a ∈ head✝¹ :: l₁ ∧ b ∈ head✝ :: l₂

tactic: exact ⟨Mem.tail _ this.1, Mem.tail _ this.2⟩
state_before: case tail
α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
a : α
b : β
head✝¹ : α
l₁ : List α
head✝ : β
l₂ : List β
h : Mem (a, b) (zipWith Prod.mk l₁ l₂)
this : a ∈ l₁ ∧ b ∈ l₂
⊢ a ∈ head✝¹ :: l₁ ∧ b ∈ head✝ :: l₂
state_after: no goals
Theorem: Finsupp.card_support_eq_zero
File: Mathlib/Data/Finsupp/Defs.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α →₀ M
⊢ f.support.card = 0 ↔ f = 0
state_after: no goals
Theorem: Commute.mul_inv_cancel
File: Mathlib/Algebra/Group/Commute/Defs.lean

tactic: rw [h.eq, mul_inv_cancel_right]
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : Group G
a b : G
h : Commute a b
⊢ a * b * a⁻¹ = b
state_after: no goals
Theorem: MeasureTheory.integrable_indicatorConstLp
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rw [integrable_congr indicatorConstLp_coeFn, integrable_indicator_iff hs, IntegrableOn,
  integrable_const_iff, lt_top_iff_ne_top]
state_before: α : Type u_1
β : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_5
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : E
⊢ Integrable (↑↑(indicatorConstLp p hs hμs c)) μ
state_after: α : Type u_1
β : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_5
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : E
⊢ c = 0 ∨ (μ.restrict s) univ ≠ ⊤

tactic: right
state_before: α : Type u_1
β : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_5
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : E
⊢ c = 0 ∨ (μ.restrict s) univ ≠ ⊤
state_after: case h
α : Type u_1
β : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_5
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : E
⊢ (μ.restrict s) univ ≠ ⊤

tactic: simpa only [Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply] using hμs
state_before: case h
α : Type u_1
β : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_5
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : E
⊢ (μ.restrict s) univ ≠ ⊤
state_after: no goals
Theorem: mem_zpowers_of_prime_card
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

tactic: simp_rw [zpowers_eq_top_of_prime_card h hg, Subgroup.mem_top]
state_before: α : Type u
a : α
inst✝¹ : Group α
G : Type u_1
inst✝ : Group G
x✝ : Fintype G
p : ℕ
hp : Fact (Nat.Prime p)
h : Fintype.card G = p
g g' : G
hg : g ≠ 1
⊢ g' ∈ zpowers g
state_after: no goals
Theorem: Nat.count_of_forall_not
File: Mathlib/Data/Nat/Count.lean

tactic: rw [count_eq_card_filter_range, filter_false_of_mem, card_empty]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
hp : ∀ n' < n, ¬p n'
⊢ count p n = 0
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
hp : ∀ n' < n, ¬p n'
⊢ ∀ x ∈ range n, ¬p x

tactic: simpa only [Finset.mem_range]
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
hp : ∀ n' < n, ¬p n'
⊢ ∀ x ∈ range n, ¬p x
state_after: no goals
Theorem: Ordinal.IsFundamentalSequence.monotone
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rcases lt_or_eq_of_le hij with (hij | rfl)
state_before: α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
i j : Ordinal.{u}
hi : i < o
hj : j < o
hij : i ≤ j
⊢ f i hi ≤ f j hj
state_after: case inl
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
i j : Ordinal.{u}
hi : i < o
hj : j < o
hij✝ : i ≤ j
hij : i < j
⊢ f i hi ≤ f j hj

case inr
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
i : Ordinal.{u}
hi hj : i < o
hij : i ≤ i
⊢ f i hi ≤ f i hj

tactic: exact (hf.2.1 hi hj hij).le
state_before: case inl
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
i j : Ordinal.{u}
hi : i < o
hj : j < o
hij✝ : i ≤ j
hij : i < j
⊢ f i hi ≤ f j hj
state_after: no goals

tactic: rfl
state_before: case inr
α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f : (b : Ordinal.{u}) → b < o → Ordinal.{u}
hf : a.IsFundamentalSequence o f
i : Ordinal.{u}
hi hj : i < o
hij : i ≤ i
⊢ f i hi ≤ f i hj
state_after: no goals
Theorem: MvPolynomial.eval₂Hom_comp_bind₂
File: Mathlib/Algebra/MvPolynomial/Monad.lean

tactic: ext : 2 <;> simp
state_before: σ : Type u_1
τ : Type u_2
R : Type u_3
S : Type u_4
T : Type u_5
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : CommSemiring T
f✝ : σ → MvPolynomial τ R
f : S →+* T
g : σ → T
h : R →+* MvPolynomial σ S
⊢ (eval₂Hom f g).comp (bind₂ h) = eval₂Hom ((eval₂Hom f g).comp h) g
state_after: no goals
Theorem: contDiffOn_succ_iff_fderiv_apply
File: Mathlib/Analysis/Calculus/ContDiff/FiniteDimension.lean

tactic: rw [contDiffOn_succ_iff_fderivWithin hs, contDiffOn_clm_apply]
state_before: 𝕜 : Type u_1
inst✝¹⁰ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁹ : NormedAddCommGroup D
inst✝⁸ : NormedSpace 𝕜 D
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : CompleteSpace 𝕜
inst✝ : FiniteDimensional 𝕜 E
n : ℕ
f : E → F
s : Set E
hs : UniqueDiffOn 𝕜 s
⊢ ContDiffOn 𝕜 (↑(n + 1)) f s ↔
    DifferentiableOn 𝕜 f s ∧ ∀ (y : E), ContDiffOn 𝕜 (↑n) (fun x => (fderivWithin 𝕜 f s x) y) s
state_after: no goals
Theorem: MeasureTheory.Integrable.nnnorm_toL1
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: simpa [Integrable.toL1, snorm, snorm'] using ENNReal.coe_toNNReal hf.2.ne
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → β
hf : Integrable f μ
⊢ ↑‖toL1 f hf‖₊ = ∫⁻ (a : α), ↑‖f a‖₊ ∂μ
state_after: no goals
Theorem: even_neg_two
File: Mathlib/Algebra/Ring/Parity.lean

tactic: simp only [even_neg, even_two]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝ : Ring α
a b : α
n : ℕ
⊢ Even (-2)
state_after: no goals
Theorem: nhdsWithin_pos_comap_mul_left
File: Mathlib/Topology/Algebra/Order/Field.lean

tactic: rw [nhdsWithin, comap_inf, comap_principal, preimage_const_mul_Ioi _ hx, zero_div]
state_before: 𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
x : 𝕜
hx : 0 < x
⊢ comap (fun x_1 => x * x_1) (𝓝[>] 0) = 𝓝[>] 0
state_after: 𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
x : 𝕜
hx : 0 < x
⊢ comap (fun x_1 => x * x_1) (𝓝 0) ⊓ 𝓟 (Ioi 0) = 𝓝 0 ⊓ 𝓟 (Ioi 0)

tactic: congr 1
state_before: 𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
x : 𝕜
hx : 0 < x
⊢ comap (fun x_1 => x * x_1) (𝓝 0) ⊓ 𝓟 (Ioi 0) = 𝓝 0 ⊓ 𝓟 (Ioi 0)
state_after: case e_a
𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
x : 𝕜
hx : 0 < x
⊢ comap (fun x_1 => x * x_1) (𝓝 0) = 𝓝 0

tactic: refine ((Homeomorph.mulLeft₀ x hx.ne').comap_nhds_eq _).trans ?_
state_before: case e_a
𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
x : 𝕜
hx : 0 < x
⊢ comap (fun x_1 => x * x_1) (𝓝 0) = 𝓝 0
state_after: case e_a
𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
x : 𝕜
hx : 0 < x
⊢ 𝓝 ((Homeomorph.mulLeft₀ x ⋯).symm 0) = 𝓝 0

tactic: simp
state_before: case e_a
𝕜 : Type u_1
α : Type u_2
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
l : Filter α
f g : α → 𝕜
x : 𝕜
hx : 0 < x
⊢ 𝓝 ((Homeomorph.mulLeft₀ x ⋯).symm 0) = 𝓝 0
state_after: no goals
Theorem: MeasureTheory.snormEssSup_measure_zero
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: simp [snormEssSup]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
⊢ snormEssSup f 0 = 0
state_after: no goals
Theorem: exists_mem_ne_zero_of_rank_pos
File: Mathlib/LinearAlgebra/Dimension/Finite.lean

tactic: rw [eq, rank_bot] at h
state_before: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁸ : Ring R
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M'
inst✝⁵ : AddCommGroup M₁
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M₁
inst✝¹ : Nontrivial R
inst✝ : NoZeroSMulDivisors R M
s : Submodule R M
h : 0 < Module.rank R ↥s
eq : s = ⊥
⊢ False
state_after: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁸ : Ring R
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M'
inst✝⁵ : AddCommGroup M₁
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M₁
inst✝¹ : Nontrivial R
inst✝ : NoZeroSMulDivisors R M
s : Submodule R M
h : 0 < 0
eq : s = ⊥
⊢ False

tactic: exact lt_irrefl _ h
state_before: R : Type u
M M₁ : Type v
M' : Type v'
ι : Type w
inst✝⁸ : Ring R
inst✝⁷ : AddCommGroup M
inst✝⁶ : AddCommGroup M'
inst✝⁵ : AddCommGroup M₁
inst✝⁴ : Module R M
inst✝³ : Module R M'
inst✝² : Module R M₁
inst✝¹ : Nontrivial R
inst✝ : NoZeroSMulDivisors R M
s : Submodule R M
h : 0 < 0
eq : s = ⊥
⊢ False
state_after: no goals
Theorem: Function.Injective.injOn_range
File: Mathlib/Data/Set/Function.lean

tactic: rintro _ ⟨x, rfl⟩ _ ⟨y, rfl⟩ H
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
h : Injective (g ∘ f)
⊢ InjOn g (range f)
state_after: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
h : Injective (g ∘ f)
x y : α
H : g (f x) = g (f y)
⊢ f x = f y

tactic: exact congr_arg f (h H)
state_before: case intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
π : α → Type u_5
s s₁ s₂ : Set α
t t₁ t₂ : Set β
p : Set γ
f f₁ f₂ f₃ : α → β
g g₁ g₂ : β → γ
f' f₁' f₂' : β → α
g' : γ → β
a : α
b : β
h : Injective (g ∘ f)
x y : α
H : g (f x) = g (f y)
⊢ f x = f y
state_after: no goals
Theorem: String.all_eq
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: rw [all, any_eq, List.all_eq_not_any_not]
state_before: s : String
p : Char → Bool
⊢ s.all p = s.data.all p
state_after: no goals