1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Finset.sizeOf_lt_sizeOf_of_mem
File: Mathlib/Data/Finset/Basic.lean

tactic: cases s
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
s : Finset α
hx : x ∈ s
⊢ sizeOf x < sizeOf s
state_after: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < sizeOf { val := val✝, nodup := nodup✝ }

tactic: dsimp [SizeOf.sizeOf, SizeOf.sizeOf, Multiset.sizeOf]
state_before: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < sizeOf { val := val✝, nodup := nodup✝ }
state_after: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < 1 + Quot.liftOn val✝ (fun m => m._sizeOf_1) ⋯

tactic: rw [add_comm]
state_before: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < 1 + Quot.liftOn val✝ (fun m => m._sizeOf_1) ⋯
state_after: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < Quot.liftOn val✝ (fun m => m._sizeOf_1) ⋯ + 1

tactic: refine lt_trans ?_ (Nat.lt_succ_self _)
state_before: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < Quot.liftOn val✝ (fun m => m._sizeOf_1) ⋯ + 1
state_after: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < Quot.liftOn val✝ (fun m => m._sizeOf_1) ⋯

tactic: exact Multiset.sizeOf_lt_sizeOf_of_mem hx
state_before: case mk
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : SizeOf α
x : α
val✝ : Multiset α
nodup✝ : val✝.Nodup
hx : x ∈ { val := val✝, nodup := nodup✝ }
⊢ sizeOf x < Quot.liftOn val✝ (fun m => m._sizeOf_1) ⋯
state_after: no goals
Theorem: CategoryTheory.comp_eqToHom_iff
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: simp
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y Y' : C
p : Y = Y'
f : X ⟶ Y
g : X ⟶ Y'
h : f ≫ eqToHom p = g
⊢ f = (f ≫ eqToHom p) ≫ eqToHom ⋯
state_after: no goals

tactic: simp [eq_whisker h (eqToHom p)]
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
X Y Y' : C
p : Y = Y'
f : X ⟶ Y
g : X ⟶ Y'
h : f = g ≫ eqToHom ⋯
⊢ f ≫ eqToHom p = g
state_after: no goals
Theorem: Cardinal.IsLimit.aleph0_le
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: by_contra! h'
state_before: α β : Type u
c : Cardinal.{u_1}
h : c.IsLimit
⊢ ℵ₀ ≤ c
state_after: α β : Type u
c : Cardinal.{u_1}
h : c.IsLimit
h' : c < ℵ₀
⊢ False

tactic: rcases lt_aleph0.1 h' with ⟨n, rfl⟩
state_before: α β : Type u
c : Cardinal.{u_1}
h : c.IsLimit
h' : c < ℵ₀
⊢ False
state_after: case intro
α β : Type u
n : ℕ
h : (↑n).IsLimit
h' : ↑n < ℵ₀
⊢ False

tactic: exact not_isLimit_natCast n h
state_before: case intro
α β : Type u
n : ℕ
h : (↑n).IsLimit
h' : ↑n < ℵ₀
⊢ False
state_after: no goals
Theorem: GradedTensorProduct.tmul_one_mul_one_tmul
File: Mathlib/LinearAlgebra/TensorProduct/Graded/Internal.lean

tactic: rw [SetLike.coe_gOne, mul_one]
state_before: case h.e'_3.h.e'_16
R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring ι
inst✝⁸ : Module ι (Additive ℤˣ)
inst✝⁷ : DecidableEq ι
inst✝⁶ : CommRing R
inst✝⁵ : Ring A
inst✝⁴ : Ring B
inst✝³ : Algebra R A
inst✝² : Algebra R B
𝒜 : ι → Submodule R A
ℬ : ι → Submodule R B
inst✝¹ : GradedAlgebra 𝒜
inst✝ : GradedAlgebra ℬ
a₁ : A
b₂ : B
⊢ a₁ = a₁ * ↑GradedMonoid.GOne.one
state_after: no goals

tactic: rw [SetLike.coe_gOne, one_mul]
state_before: case h.e'_3.h.e'_17
R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝⁹ : CommSemiring ι
inst✝⁸ : Module ι (Additive ℤˣ)
inst✝⁷ : DecidableEq ι
inst✝⁶ : CommRing R
inst✝⁵ : Ring A
inst✝⁴ : Ring B
inst✝³ : Algebra R A
inst✝² : Algebra R B
𝒜 : ι → Submodule R A
ℬ : ι → Submodule R B
inst✝¹ : GradedAlgebra 𝒜
inst✝ : GradedAlgebra ℬ
a₁ : A
b₂ : B
⊢ b₂ = ↑GradedMonoid.GOne.one * b₂
state_after: no goals
Theorem: powers.mul_mem
File: Mathlib/Deprecated/Submonoid.lean

tactic: simp only [pow_add, *]
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
x y z : M
x✝¹ : y ∈ powers x
x✝ : z ∈ powers x
n₁ : ℕ
h₁ : x ^ n₁ = y
n₂ : ℕ
h₂ : x ^ n₂ = z
⊢ x ^ (n₁ + n₂) = y * z
state_after: no goals
Theorem: MeasureTheory.snorm'_congr_nnnorm_ae
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: have : (fun x => (‖f x‖₊ : ℝ≥0∞) ^ q) =ᵐ[μ] fun x => (‖g x‖₊ : ℝ≥0∞) ^ q :=
  hfg.mono fun x hx => by simp_rw [hx]
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
f g : α → F
hfg : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ = ‖g x‖₊
⊢ snorm' f q μ = snorm' g q μ
state_after: α : 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
f g : α → F
hfg : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ = ‖g x‖₊
this : (fun x => ↑‖f x‖₊ ^ q) =ᶠ[ae μ] fun x => ↑‖g x‖₊ ^ q
⊢ snorm' f q μ = snorm' g q μ

tactic: simp only [snorm', lintegral_congr_ae this]
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
f g : α → F
hfg : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ = ‖g x‖₊
this : (fun x => ↑‖f x‖₊ ^ q) =ᶠ[ae μ] fun x => ↑‖g x‖₊ ^ q
⊢ snorm' f q μ = snorm' g q μ
state_after: no goals

tactic: simp_rw [hx]
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
f g : α → F
hfg : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ = ‖g x‖₊
x : α
hx : ‖f x‖₊ = ‖g x‖₊
⊢ (fun x => ↑‖f x‖₊ ^ q) x = (fun x => ↑‖g x‖₊ ^ q) x
state_after: no goals
Theorem: subset_sInf_of_within
File: Mathlib/Order/CompleteLatticeIntervals.lean

tactic: simp [dif_pos, h, h', h'']
state_before: ι : Sort u_1
α : Type u_2
s : Set α
inst✝² : Preorder α
inst✝¹ : InfSet α
inst✝ : Inhabited ↑s
t : Set ↑s
h' : t.Nonempty
h'' : BddBelow t
h : sInf (Subtype.val '' t) ∈ s
⊢ sInf (Subtype.val '' t) = ↑(sInf t)
state_after: no goals
Theorem: DihedralGroup.card_conjClasses_odd
File: Mathlib/GroupTheory/SpecificGroups/Dihedral.lean

tactic: rw [← Nat.mul_div_mul_left _ 2 hn.pos, ← card_commute_odd hn, mul_comm,
  card_comm_eq_card_conjClasses_mul_card, nat_card, Nat.mul_div_left _ (mul_pos two_pos hn.pos)]
state_before: n : ℕ
hn : Odd n
⊢ Nat.card (ConjClasses (DihedralGroup n)) = (n + 3) / 2
state_after: no goals
Theorem: DirichletCharacter.changeLevel_one
File: Mathlib/NumberTheory/DirichletCharacter/Basic.lean

tactic: simp [changeLevel]
state_before: R : Type u_1
inst✝ : CommMonoidWithZero R
n : ℕ
χ : DirichletCharacter R n
d : ℕ
h : d ∣ n
⊢ (changeLevel h) 1 = 1
state_after: no goals
Theorem: CategoryTheory.LaxMonoidalFunctor.prod'_ε
File: Mathlib/CategoryTheory/Monoidal/Functor.lean

tactic: dsimp [prod']
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category.{v₃, u₃} E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
⊢ (F.prod' G).ε = (F.ε, G.ε)
state_after: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category.{v₃, u₃} E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
⊢ (F.ε ≫ F.map (𝟙 (𝟙_ C)), G.ε ≫ G.map (𝟙 (𝟙_ C))) = (F.ε, G.ε)

tactic: simp
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : MonoidalCategory C
D : Type u₂
inst✝³ : Category.{v₂, u₂} D
inst✝² : MonoidalCategory D
E : Type u₃
inst✝¹ : Category.{v₃, u₃} E
inst✝ : MonoidalCategory E
F : LaxMonoidalFunctor C D
G : LaxMonoidalFunctor C E
⊢ (F.ε ≫ F.map (𝟙 (𝟙_ C)), G.ε ≫ G.map (𝟙 (𝟙_ C))) = (F.ε, G.ε)
state_after: no goals
Theorem: Int.eq_one_or_neg_one_of_mul_eq_one'
File: Mathlib/Algebra/Group/Int.lean

tactic: have h' : v * u = 1 := mul_comm u v ▸ h
state_before: u v : ℤ
h : u * v = 1
⊢ u = 1 ∧ v = 1 ∨ u = -1 ∧ v = -1
state_after: u v : ℤ
h : u * v = 1
h' : v * u = 1
⊢ u = 1 ∧ v = 1 ∨ u = -1 ∧ v = -1

tactic: obtain rfl | rfl := eq_one_or_neg_one_of_mul_eq_one h <;>
    obtain rfl | rfl := eq_one_or_neg_one_of_mul_eq_one h' <;> tauto
state_before: u v : ℤ
h : u * v = 1
h' : v * u = 1
⊢ u = 1 ∧ v = 1 ∨ u = -1 ∧ v = -1
state_after: no goals
Theorem: FiniteDimensional.one_lt_rank_of_one_lt_finrank
File: Mathlib/LinearAlgebra/Dimension/Finrank.lean

tactic: simpa using lt_rank_of_lt_finrank h
state_before: R : Type u
M : Type v
N : Type w
inst✝⁴ : Ring R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
h : 1 < finrank R M
⊢ 1 < Module.rank R M
state_after: no goals
Theorem: Nat.ceilRoot_eq_zero
File: Mathlib/Data/Nat/Factorization/Root.lean

tactic: simp only [not_and_or, ne_eq, not_not]
state_before: a b n : ℕ
⊢ ¬(n ≠ 0 ∧ a ≠ 0) ↔ n = 0 ∨ a = 0
state_after: no goals
Theorem: inv_lt_iff_one_lt_mul'
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [mul_inv_self]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LT α
inst✝ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : α
⊢ a * a⁻¹ < a * b ↔ 1 < a * b
state_after: no goals
Theorem: Matroid.map_image_base_iff
File: Mathlib/Data/Matroid/Map.lean

tactic: rw [map_base_iff]
state_before: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
⊢ (M.map f hf).Base (f '' B) ↔ M.Base B
state_after: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
⊢ (∃ B₀, M.Base B₀ ∧ f '' B = f '' B₀) ↔ M.Base B

tactic: refine ⟨fun ⟨J, hJ, hIJ⟩ ↦ ?_, fun h ↦ ⟨B, h, rfl⟩⟩
state_before: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
⊢ (∃ B₀, M.Base B₀ ∧ f '' B = f '' B₀) ↔ M.Base B
state_after: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
x✝ : ∃ B₀, M.Base B₀ ∧ f '' B = f '' B₀
J : Set α
hJ : M.Base J
hIJ : f '' B = f '' J
⊢ M.Base B

tactic: rw [hf.image_eq_image_iff hB hJ.subset_ground] at hIJ
state_before: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
x✝ : ∃ B₀, M.Base B₀ ∧ f '' B = f '' B₀
J : Set α
hJ : M.Base J
hIJ : f '' B = f '' J
⊢ M.Base B
state_after: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
x✝ : ∃ B₀, M.Base B₀ ∧ f '' B = f '' B₀
J : Set α
hJ : M.Base J
hIJ : B = J
⊢ M.Base B

tactic: rwa [hIJ]
state_before: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N : Matroid β
hf : InjOn f M.E
B : Set α
hB : B ⊆ M.E
x✝ : ∃ B₀, M.Base B₀ ∧ f '' B = f '' B₀
J : Set α
hJ : M.Base J
hIJ : B = J
⊢ M.Base B
state_after: no goals
Theorem: UpperHalfPlane.modular_S_smul
File: Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean

tactic: rw [specialLinearGroup_apply]
state_before: z : ℍ
⊢ ModularGroup.S • z = mk (-↑z)⁻¹ ⋯
state_after: z : ℍ
⊢ mk
      ((↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 0 0)) * ↑z + ↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 0 1))) /
        (↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 1 0)) * ↑z + ↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 1 1))))
      ⋯ =
    mk (-↑z)⁻¹ ⋯

tactic: simp [ModularGroup.S, neg_div, inv_neg, coeToGL]
state_before: z : ℍ
⊢ mk
      ((↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 0 0)) * ↑z + ↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 0 1))) /
        (↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 1 0)) * ↑z + ↑((algebraMap ℤ ℝ) (↑↑ModularGroup.S 1 1))))
      ⋯ =
    mk (-↑z)⁻¹ ⋯
state_after: no goals
Theorem: Subgroup.subgroupOf_eq_bot
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: rw [disjoint_iff, ← bot_subgroupOf, subgroupOf_inj, bot_inf_eq]
state_before: G : Type u_1
G' : Type u_2
G'' : Type u_3
inst✝⁵ : Group G
inst✝⁴ : Group G'
inst✝³ : Group G''
A : Type u_4
inst✝² : AddGroup A
H✝ K✝ : Subgroup G
k : Set G
N : Type u_5
inst✝¹ : Group N
P : Type u_6
inst✝ : Group P
H K : Subgroup G
⊢ H.subgroupOf K = ⊥ ↔ Disjoint H K
state_after: no goals
Theorem: CategoryTheory.ShortComplex.exact_and_epi_g_iff_g_is_cokernel
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: constructor
state_before: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ S.Exact ∧ Epi S.g ↔ Nonempty (IsColimit (CokernelCofork.ofπ S.g ⋯))
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ S.Exact ∧ Epi S.g → Nonempty (IsColimit (CokernelCofork.ofπ S.g ⋯))

case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ Nonempty (IsColimit (CokernelCofork.ofπ S.g ⋯)) → S.Exact ∧ Epi S.g

tactic: intro ⟨hS, _⟩
state_before: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ S.Exact ∧ Epi S.g → Nonempty (IsColimit (CokernelCofork.ofπ S.g ⋯))
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : S.Exact
right✝ : Epi S.g
⊢ Nonempty (IsColimit (CokernelCofork.ofπ S.g ⋯))

tactic: exact ⟨hS.gIsCokernel⟩
state_before: case mp
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : S.Exact
right✝ : Epi S.g
⊢ Nonempty (IsColimit (CokernelCofork.ofπ S.g ⋯))
state_after: no goals

tactic: intro ⟨hS⟩
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
⊢ Nonempty (IsColimit (CokernelCofork.ofπ S.g ⋯)) → S.Exact ∧ Epi S.g
state_after: case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
⊢ S.Exact ∧ Epi S.g

tactic: exact ⟨S.exact_of_g_is_cokernel hS, epi_of_isColimit_cofork hS⟩
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.163159, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : Balanced C
inst✝ : S.HasHomology
hS : IsColimit (CokernelCofork.ofπ S.g ⋯)
⊢ S.Exact ∧ Epi S.g
state_after: no goals
Theorem: hasMFDerivAt_const
File: Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean

tactic: refine ⟨continuous_const.continuousAt, ?_⟩
state_before: 𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁴ : TopologicalSpace M
inst✝¹³ : ChartedSpace H M
inst✝¹² : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁹ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁸ : TopologicalSpace M'
inst✝⁷ : ChartedSpace H' M'
inst✝⁶ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁵ : NormedAddCommGroup E''
inst✝⁴ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝³ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝² : TopologicalSpace M''
inst✝¹ : ChartedSpace H'' M''
inst✝ : SmoothManifoldWithCorners I'' M''
s : Set M
x✝ : M
c✝ c : M'
x : M
⊢ HasMFDerivAt I I' (fun x => c) x 0
state_after: 𝕜 : Type u_1
inst✝¹⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁷ : NormedAddCommGroup E
inst✝¹⁶ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹⁵ : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹⁴ : TopologicalSpace M
inst✝¹³ : ChartedSpace H M
inst✝¹² : SmoothManifoldWithCorners I M
E' : Type u_5
inst✝¹¹ : NormedAddCommGroup E'
inst✝¹⁰ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁹ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁸ : TopologicalSpace M'
inst✝⁷ : ChartedSpace H' M'
inst✝⁶ : SmoothManifoldWithCorners I' M'
E'' : Type u_8
inst✝⁵ : NormedAddCommGroup E''
inst✝⁴ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝³ : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝² : TopologicalSpace M''
inst✝¹ : ChartedSpace H'' M''
inst✝ : SmoothManifoldWithCorners I'' M''
s : Set M
x✝ : M
c✝ c : M'
x : M
⊢ HasFDerivWithinAt (writtenInExtChartAt I I' x fun x => c) 0 (range ↑I) (↑(extChartAt I x) x)
Theorem: Polynomial.revAt_eq_self_of_lt
File: Mathlib/Algebra/Polynomial/Reverse.lean

tactic: simp [revAt, Nat.not_le.mpr h]
state_before: R : Type u_1
inst✝ : Semiring R
f : R[X]
N i : ℕ
h : N < i
⊢ (revAt N) i = i
state_after: no goals
Theorem: IsLowerSet.nonMemberSubfamily
File: Mathlib/Combinatorics/SetFamily/HarrisKleitman.lean

tactic: simp_rw [mem_coe, mem_nonMemberSubfamily]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s✝ : Finset α
a : α
h : IsLowerSet ↑𝒜
s t : Finset α
hts : t ≤ s
⊢ s ∈ ↑(Finset.nonMemberSubfamily a 𝒜) → t ∈ ↑(Finset.nonMemberSubfamily a 𝒜)
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s✝ : Finset α
a : α
h : IsLowerSet ↑𝒜
s t : Finset α
hts : t ≤ s
⊢ s ∈ 𝒜 ∧ a ∉ s → t ∈ 𝒜 ∧ a ∉ t

tactic: exact And.imp (h hts) (mt <| @hts _)
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s✝ : Finset α
a : α
h : IsLowerSet ↑𝒜
s t : Finset α
hts : t ≤ s
⊢ s ∈ 𝒜 ∧ a ∉ s → t ∈ 𝒜 ∧ a ∉ t
state_after: no goals
Theorem: mul_star_self_nonneg
File: Mathlib/Algebra/Star/Order.lean

tactic: simpa only [star_star] using star_mul_self_nonneg (star r)
state_before: R : Type u
inst✝³ : NonUnitalSemiring R
inst✝² : PartialOrder R
inst✝¹ : StarRing R
inst✝ : StarOrderedRing R
r : R
⊢ 0 ≤ r * star r
state_after: no goals
Theorem: FirstOrder.Language.Term.realize_le
File: Mathlib/ModelTheory/Order.lean

tactic: simp [Term.le]
state_before: L : Language
α : Type w
M : Type w'
n : ℕ
inst✝³ : L.IsOrdered
inst✝² : L.Structure M
inst✝¹ : LE M
inst✝ : L.OrderedStructure M
t₁ t₂ : L.Term (α ⊕ Fin n)
v : α → M
xs : Fin n → M
⊢ (t₁.le t₂).Realize v xs ↔ realize (Sum.elim v xs) t₁ ≤ realize (Sum.elim v xs) t₂
state_after: no goals
Theorem: Multiset.count_eq_of_nodup
File: Mathlib/Data/Multiset/Nodup.lean

tactic: split_ifs with h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : s.Nodup
⊢ count a s = if a ∈ s then 1 else 0
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : s.Nodup
h : a ∈ s
⊢ count a s = 1

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : s.Nodup
h : a ∉ s
⊢ count a s = 0

tactic: exact count_eq_one_of_mem d h
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : s.Nodup
h : a ∈ s
⊢ count a s = 1
state_after: no goals

tactic: exact count_eq_zero_of_not_mem h
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s✝ t : Multiset α
a✝ : α
inst✝ : DecidableEq α
a : α
s : Multiset α
d : s.Nodup
h : a ∉ s
⊢ count a s = 0
state_after: no goals
Theorem: Nat.odd_add
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rw [odd_iff_not_even, even_add, not_iff, odd_iff_not_even]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
m n : ℕ
⊢ Odd (m + n) ↔ (Odd m ↔ Even n)
state_after: no goals
Theorem: algebraicIndependent_empty_iff
File: Mathlib/RingTheory/AlgebraicIndependent.lean

tactic: simp
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
K : Type u_4
A : Type u_5
A' : Type u_6
A'' : Type u_7
V : Type u
V' : Type u_8
x : ι → A
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : CommRing A'
inst✝³ : CommRing A''
inst✝² : Algebra R A
inst✝¹ : Algebra R A'
inst✝ : Algebra R A''
a b : R
⊢ AlgebraicIndependent R Subtype.val ↔ Injective ⇑(algebraMap R A)
state_after: no goals
Theorem: MvPolynomial.NewtonIdentities.sum_filter_pairs_eq_sum_powersetCard_sum
File: Mathlib/RingTheory/MvPolynomial/NewtonIdentities.lean

tactic: apply sum_finset_product
state_before: σ : Type u_1
inst✝² : Fintype σ
inst✝¹ : DecidableEq σ
R : Type u_2
inst✝ : CommRing R
k : ℕ
f : Finset σ × σ → MvPolynomial σ R
⊢ ∑ t ∈ filter (fun t => t.1.card = k) (MvPolynomial.NewtonIdentities.pairs σ k), f t =
    ∑ A ∈ powersetCard k univ, ∑ j ∈ A, f (A, j)
state_after: case h
σ : Type u_1
inst✝² : Fintype σ
inst✝¹ : DecidableEq σ
R : Type u_2
inst✝ : CommRing R
k : ℕ
f : Finset σ × σ → MvPolynomial σ R
⊢ ∀ (p : Finset σ × σ),
    p ∈ filter (fun t => t.1.card = k) (MvPolynomial.NewtonIdentities.pairs σ k) ↔ p.1 ∈ powersetCard k univ ∧ p.2 ∈ p.1

tactic: aesop
state_before: case h
σ : Type u_1
inst✝² : Fintype σ
inst✝¹ : DecidableEq σ
R : Type u_2
inst✝ : CommRing R
k : ℕ
f : Finset σ × σ → MvPolynomial σ R
⊢ ∀ (p : Finset σ × σ),
    p ∈ filter (fun t => t.1.card = k) (MvPolynomial.NewtonIdentities.pairs σ k) ↔ p.1 ∈ powersetCard k univ ∧ p.2 ∈ p.1
state_after: no goals
Theorem: Real.cos_abs
File: Mathlib/Data/Complex/Exponential.lean

tactic: cases le_total x 0 <;> simp only [*, _root_.abs_of_nonneg, abs_of_nonpos, cos_neg]
state_before: x y : ℝ
⊢ cos |x| = cos x
state_after: no goals
Theorem: MeasureTheory.measure_biUnion_le
File: Mathlib/MeasureTheory/OuterMeasure/Basic.lean

tactic: have := hI.to_subtype
state_before: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ✝ : F
s✝ t : Set α
I : Set ι
μ : F
hI : I.Countable
s : ι → Set α
⊢ μ (⋃ i ∈ I, s i) ≤ ∑' (i : ↑I), μ (s ↑i)
state_after: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ✝ : F
s✝ t : Set α
I : Set ι
μ : F
hI : I.Countable
s : ι → Set α
this : Countable ↑I
⊢ μ (⋃ i ∈ I, s i) ≤ ∑' (i : ↑I), μ (s ↑i)

tactic: rw [biUnion_eq_iUnion]
state_before: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ✝ : F
s✝ t : Set α
I : Set ι
μ : F
hI : I.Countable
s : ι → Set α
this : Countable ↑I
⊢ μ (⋃ i ∈ I, s i) ≤ ∑' (i : ↑I), μ (s ↑i)
state_after: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ✝ : F
s✝ t : Set α
I : Set ι
μ : F
hI : I.Countable
s : ι → Set α
this : Countable ↑I
⊢ μ (⋃ x, s ↑x) ≤ ∑' (i : ↑I), μ (s ↑i)

tactic: apply measure_iUnion_le
state_before: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝¹ : FunLike F (Set α) ℝ≥0∞
inst✝ : OuterMeasureClass F α
μ✝ : F
s✝ t : Set α
I : Set ι
μ : F
hI : I.Countable
s : ι → Set α
this : Countable ↑I
⊢ μ (⋃ x, s ↑x) ≤ ∑' (i : ↑I), μ (s ↑i)
state_after: no goals