1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CategoryTheory.Limits.Bicone.ι_of_isLimit
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: rw [ht.fac]
state_before: J : Type w
C : Type uC
inst✝³ : Category.{uC', uC} C
inst✝² : HasZeroMorphisms C
D : Type uD
inst✝¹ : Category.{uD', uD} D
inst✝ : HasZeroMorphisms D
F f : J → C
t : Bicone f
ht : IsLimit t.toCone
j : J
j' : Discrete J
⊢ t.ι j ≫ t.toCone.π.app j' = ht.lift (Fan.mk (f j) fun j' => if h : j = j' then eqToHom ⋯ else 0) ≫ t.toCone.π.app j'
state_after: J : Type w
C : Type uC
inst✝³ : Category.{uC', uC} C
inst✝² : HasZeroMorphisms C
D : Type uD
inst✝¹ : Category.{uD', uD} D
inst✝ : HasZeroMorphisms D
F f : J → C
t : Bicone f
ht : IsLimit t.toCone
j : J
j' : Discrete J
⊢ t.ι j ≫ t.toCone.π.app j' = (Fan.mk (f j) fun j' => if h : j = j' then eqToHom ⋯ else 0).π.app j'

tactic: simp [t.ι_π]
state_before: J : Type w
C : Type uC
inst✝³ : Category.{uC', uC} C
inst✝² : HasZeroMorphisms C
D : Type uD
inst✝¹ : Category.{uD', uD} D
inst✝ : HasZeroMorphisms D
F f : J → C
t : Bicone f
ht : IsLimit t.toCone
j : J
j' : Discrete J
⊢ t.ι j ≫ t.toCone.π.app j' = (Fan.mk (f j) fun j' => if h : j = j' then eqToHom ⋯ else 0).π.app j'
state_after: no goals
Theorem: MeasureTheory.FiniteMeasure.average_eq_integral_normalize
File: Mathlib/MeasureTheory/Measure/ProbabilityMeasure.lean

tactic: rw [μ.toMeasure_normalize_eq_of_nonzero nonzero, average]
state_before: Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ average (↑μ) f = ∫ (ω : Ω), f ω ∂↑μ.normalize
state_after: Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ ∫ (x : Ω), f x ∂(↑μ univ)⁻¹ • ↑μ = ∫ (ω : Ω), f ω ∂μ.mass⁻¹ • ↑μ

tactic: congr
state_before: Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ ∫ (x : Ω), f x ∂(↑μ univ)⁻¹ • ↑μ = ∫ (ω : Ω), f ω ∂μ.mass⁻¹ • ↑μ
state_after: case e_μ.e_a
Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ (↑μ univ)⁻¹ = ↑ENNReal.ofNNRealHom.toMonoidWithZeroHom μ.mass⁻¹

tactic: simp [ENNReal.coe_inv (μ.mass_nonzero_iff.mpr nonzero), ennreal_mass]
state_before: case e_μ.e_a
Ω : Type u_1
inst✝² : Nonempty Ω
m0 : MeasurableSpace Ω
μ : FiniteMeasure Ω
E : Type u_2
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
nonzero : μ ≠ 0
f : Ω → E
⊢ (↑μ univ)⁻¹ = ↑ENNReal.ofNNRealHom.toMonoidWithZeroHom μ.mass⁻¹
state_after: no goals
Theorem: Polynomial.rootMultiplicity_eq_multiplicity
File: Mathlib/Algebra/Polynomial/Div.lean

tactic: simp [multiplicity, rootMultiplicity, Part.Dom]
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a✝ b : R
n : ℕ
inst✝² : Ring R
p✝ q : R[X]
inst✝¹ : DecidableEq R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R[X]
a : R
⊢ rootMultiplicity a p = if h0 : p = 0 then 0 else (multiplicity (X - C a) p).get ⋯
state_after: R : Type u
S : Type v
T : Type w
A : Type z
a✝ b : R
n : ℕ
inst✝² : Ring R
p✝ q : R[X]
inst✝¹ : DecidableEq R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R[X]
a : R
⊢ (if h : p = 0 then 0 else Nat.find ⋯) = if h : p = 0 then 0 else Nat.find ⋯

tactic: congr
state_before: R : Type u
S : Type v
T : Type w
A : Type z
a✝ b : R
n : ℕ
inst✝² : Ring R
p✝ q : R[X]
inst✝¹ : DecidableEq R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R[X]
a : R
⊢ (if h : p = 0 then 0 else Nat.find ⋯) = if h : p = 0 then 0 else Nat.find ⋯
state_after: case e_e
R : Type u
S : Type v
T : Type w
A : Type z
a✝ b : R
n : ℕ
inst✝² : Ring R
p✝ q : R[X]
inst✝¹ : DecidableEq R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R[X]
a : R
⊢ (fun h => Nat.find ⋯) = fun h => Nat.find ⋯

tactic: funext
state_before: case e_e
R : Type u
S : Type v
T : Type w
A : Type z
a✝ b : R
n : ℕ
inst✝² : Ring R
p✝ q : R[X]
inst✝¹ : DecidableEq R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R[X]
a : R
⊢ (fun h => Nat.find ⋯) = fun h => Nat.find ⋯
state_after: case e_e.h
R : Type u
S : Type v
T : Type w
A : Type z
a✝ b : R
n : ℕ
inst✝² : Ring R
p✝ q : R[X]
inst✝¹ : DecidableEq R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R[X]
a : R
x✝ : ¬p = 0
⊢ Nat.find ⋯ = Nat.find ⋯

tactic: congr
state_before: case e_e.h
R : Type u
S : Type v
T : Type w
A : Type z
a✝ b : R
n : ℕ
inst✝² : Ring R
p✝ q : R[X]
inst✝¹ : DecidableEq R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R[X]
a : R
x✝ : ¬p = 0
⊢ Nat.find ⋯ = Nat.find ⋯
state_after: no goals
Theorem: Even.zpow_abs
File: Mathlib/Algebra/Order/Field/Power.lean

tactic: cases' abs_choice a with h h <;> simp only [h, hp.neg_zpow _]
state_before: α : Type u_1
inst✝ : LinearOrderedField α
a✝ b c d : α
n p : ℤ
hp : Even p
a : α
⊢ |a| ^ p = a ^ p
state_after: no goals
Theorem: LinearMap.compMultilinearMap_alternatization
File: Mathlib/LinearAlgebra/Alternating/Basic.lean

tactic: ext
state_before: R : Type u_1
inst✝¹⁴ : Semiring R
M : Type u_2
inst✝¹³ : AddCommMonoid M
inst✝¹² : Module R M
N : Type u_3
inst✝¹¹ : AddCommMonoid N
inst✝¹⁰ : Module R N
P : Type u_4
inst✝⁹ : AddCommMonoid P
inst✝⁸ : Module R P
M' : Type u_5
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
N' : Type u_6
inst✝⁵ : AddCommGroup N'
inst✝⁴ : Module R N'
ι : Type u_7
ι' : Type u_8
ι'' : Type u_9
N'₂ : Type u_10
inst✝³ : AddCommGroup N'₂
inst✝² : Module R N'₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
g : N' →ₗ[R] N'₂
f : MultilinearMap R (fun x => M) N'
⊢ MultilinearMap.alternatization (g.compMultilinearMap f) = g.compAlternatingMap (MultilinearMap.alternatization f)
state_after: case H
R : Type u_1
inst✝¹⁴ : Semiring R
M : Type u_2
inst✝¹³ : AddCommMonoid M
inst✝¹² : Module R M
N : Type u_3
inst✝¹¹ : AddCommMonoid N
inst✝¹⁰ : Module R N
P : Type u_4
inst✝⁹ : AddCommMonoid P
inst✝⁸ : Module R P
M' : Type u_5
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
N' : Type u_6
inst✝⁵ : AddCommGroup N'
inst✝⁴ : Module R N'
ι : Type u_7
ι' : Type u_8
ι'' : Type u_9
N'₂ : Type u_10
inst✝³ : AddCommGroup N'₂
inst✝² : Module R N'₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
g : N' →ₗ[R] N'₂
f : MultilinearMap R (fun x => M) N'
x✝ : ι → M
⊢ (MultilinearMap.alternatization (g.compMultilinearMap f)) x✝ =
    (g.compAlternatingMap (MultilinearMap.alternatization f)) x✝

tactic: simp [MultilinearMap.alternatization_def]
state_before: case H
R : Type u_1
inst✝¹⁴ : Semiring R
M : Type u_2
inst✝¹³ : AddCommMonoid M
inst✝¹² : Module R M
N : Type u_3
inst✝¹¹ : AddCommMonoid N
inst✝¹⁰ : Module R N
P : Type u_4
inst✝⁹ : AddCommMonoid P
inst✝⁸ : Module R P
M' : Type u_5
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
N' : Type u_6
inst✝⁵ : AddCommGroup N'
inst✝⁴ : Module R N'
ι : Type u_7
ι' : Type u_8
ι'' : Type u_9
N'₂ : Type u_10
inst✝³ : AddCommGroup N'₂
inst✝² : Module R N'₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
g : N' →ₗ[R] N'₂
f : MultilinearMap R (fun x => M) N'
x✝ : ι → M
⊢ (MultilinearMap.alternatization (g.compMultilinearMap f)) x✝ =
    (g.compAlternatingMap (MultilinearMap.alternatization f)) x✝
state_after: no goals
Theorem: CategoryTheory.Abelian.epi_fst_of_isLimit
File: Mathlib/CategoryTheory/Abelian/Basic.lean

tactic: haveI : Epi (NatTrans.app (limit.cone (cospan f g)).π WalkingCospan.left) :=
  Abelian.epi_pullback_of_epi_g f g
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi g
s : PullbackCone f g
hs : IsLimit s
⊢ Epi s.fst
state_after: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi g
s : PullbackCone f g
hs : IsLimit s
this : Epi ((limit.cone (cospan f g)).π.app WalkingCospan.left)
⊢ Epi s.fst

tactic: apply epi_of_epi_fac (IsLimit.conePointUniqueUpToIso_hom_comp (limit.isLimit _) hs _)
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Abelian C
inst✝¹ : HasPullbacks C
W X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝ : Epi g
s : PullbackCone f g
hs : IsLimit s
this : Epi ((limit.cone (cospan f g)).π.app WalkingCospan.left)
⊢ Epi s.fst
state_after: no goals
Theorem: le_of_lt_wellOrderSucc
File: Mathlib/Order/IsWellOrderLimitElement.lean

tactic: by_contra!
state_before: α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : IsWellOrder α fun x x_1 => x < x_1
a b : α
h : a < wellOrderSucc b
⊢ a ≤ b
state_after: α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : IsWellOrder α fun x x_1 => x < x_1
a b : α
h : a < wellOrderSucc b
this : b < a
⊢ False

tactic: simpa using lt_of_lt_of_le h (wellOrderSucc_le this)
state_before: α : Type u_1
inst✝¹ : LinearOrder α
inst✝ : IsWellOrder α fun x x_1 => x < x_1
a b : α
h : a < wellOrderSucc b
this : b < a
⊢ False
state_after: no goals
Theorem: SimpleGraph.Walk.end_mem_tail_support_of_ne
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: obtain ⟨_, _, _, rfl⟩ := exists_eq_cons_of_ne h p
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
h : u ≠ v
p : G.Walk u v
⊢ v ∈ p.support.tail
state_after: case intro.intro.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
h : u ≠ v
w✝² : V
w✝¹ : G.Adj u w✝²
w✝ : G.Walk w✝² v
⊢ v ∈ (cons w✝¹ w✝).support.tail

tactic: simp
state_before: case intro.intro.intro
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
u v : V
h : u ≠ v
w✝² : V
w✝¹ : G.Adj u w✝²
w✝ : G.Walk w✝² v
⊢ v ∈ (cons w✝¹ w✝).support.tail
state_after: no goals
Theorem: CommRingCat.Colimits.quot_add
File: Mathlib/Algebra/Category/Ring/Colimits.lean

tactic: exact Quot.mk Setoid.r (add x y)
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ CommRingCat
x : ?m.23655
y : ?m.23658
⊢ ColimitType F
state_after: no goals

tactic: exact Quot.mk _ x
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ CommRingCat
x y : Prequotient F
⊢ ColimitType F
state_after: no goals

tactic: exact Quot.mk _ y
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ CommRingCat
x y : Prequotient F
⊢ ColimitType F
state_after: no goals
Theorem: Filter.sup_principal
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [union_subset_iff, mem_sup, mem_principal]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f g : Filter α
s✝ t✝ s t u : Set α
⊢ u ∈ 𝓟 s ⊔ 𝓟 t ↔ u ∈ 𝓟 (s ∪ t)
state_after: no goals
Theorem: Order.Ioo_succ_right_eq_insert_of_not_isMax
File: Mathlib/Order/SuccPred/Basic.lean

tactic: simp_rw [← Iio_inter_Ioi, Iio_succ_eq_insert_of_not_isMax h₂, insert_inter_of_mem (mem_Ioi.2 h₁)]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : PartialOrder α
inst✝ : SuccOrder α
a b : α
h₁ : a < b
h₂ : ¬IsMax b
⊢ Ioo a (succ b) = insert b (Ioo a b)
state_after: no goals
Theorem: PartialHomeomorph.eventually_nhds
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: rw [e.map_nhds_eq hx]
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
x : X
p : Y → Prop
hx : x ∈ e.source
⊢ (∀ᶠ (y : Y) in 𝓝 (↑e x), p y) ↔ ∀ᶠ (b : Y) in map (↑e) (𝓝 x), p b
state_after: no goals
Theorem: Submodule.finrank_eq_zero
File: Mathlib/LinearAlgebra/Dimension/Finite.lean

tactic: rw [← Submodule.rank_eq_zero, ← finrank_eq_rank, ← @Nat.cast_zero Cardinal, Cardinal.natCast_inj]
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
inst✝² : StrongRankCondition R
inst✝¹ : NoZeroSMulDivisors R M
S : Submodule R M
inst✝ : Module.Finite R ↥S
⊢ finrank R ↥S = 0 ↔ S = ⊥
state_after: no goals
Theorem: Nat.image_cast_int_Ici
File: Mathlib/Data/Nat/Cast/SetInterval.lean

tactic: simp [isUpperSet_Ici]
state_before: a : ℕ
⊢ IsUpperSet (range ⇑castOrderEmbedding)
state_after: no goals
Theorem: Set.image_mul_right'
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: simp
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : Group α
s t : Set α
a b : α
⊢ (fun x => x * b⁻¹) '' t = (fun x => x * b) ⁻¹' t
state_after: no goals
Theorem: homology'.map_ι
File: Mathlib/CategoryTheory/Abelian/Homology.lean

tactic: simp [h, β.w.symm]
state_before: A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ f ≫ β.left = α.left ≫ f'
state_after: no goals

tactic: rw [map_eq_lift_desc'_left, lift_ι]
state_before: A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ map w w' α β h ≫ ι f' g' w' = ι f g w ≫ cokernel.map f f' α.left β.left ⋯
state_after: A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ desc' f g w (kernel.ι g ≫ β.left ≫ cokernel.π f') ⋯ = ι f g w ≫ cokernel.map f f' α.left β.left ⋯

tactic: ext
state_before: A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ desc' f g w (kernel.ι g ≫ β.left ≫ cokernel.π f') ⋯ = ι f g w ≫ cokernel.map f f' α.left β.left ⋯
state_after: case h
A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ π' f g w ≫ desc' f g w (kernel.ι g ≫ β.left ≫ cokernel.π f') ⋯ =
    π' f g w ≫ ι f g w ≫ cokernel.map f f' α.left β.left ⋯

tactic: simp only [← Category.assoc]
state_before: case h
A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ π' f g w ≫ desc' f g w (kernel.ι g ≫ β.left ≫ cokernel.π f') ⋯ =
    π' f g w ≫ ι f g w ≫ cokernel.map f f' α.left β.left ⋯
state_after: case h
A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ π' f g w ≫ desc' f g w ((kernel.ι g ≫ β.left) ≫ cokernel.π f') ⋯ =
    (π' f g w ≫ ι f g w) ≫ cokernel.map f f' α.left β.left ⋯

tactic: rw [π'_ι, π'_desc', Category.assoc, Category.assoc, cokernel.π_desc]
state_before: case h
A : Type u
inst✝¹ : Category.{v, u} A
inst✝ : Abelian A
X Y Z : A
f : X ⟶ Y
g : Y ⟶ Z
w : f ≫ g = 0
X' Y' Z' : A
f' : X' ⟶ Y'
g' : Y' ⟶ Z'
w' : f' ≫ g' = 0
α : Arrow.mk f ⟶ Arrow.mk f'
β : Arrow.mk g ⟶ Arrow.mk g'
h : α.right = β.left
⊢ π' f g w ≫ desc' f g w ((kernel.ι g ≫ β.left) ≫ cokernel.π f') ⋯ =
    (π' f g w ≫ ι f g w) ≫ cokernel.map f f' α.left β.left ⋯
state_after: no goals
Theorem: NNReal.measurable_of_tendsto'
File: Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean

tactic: simp_rw [← measurable_coe_nnreal_ennreal_iff] at hf ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u✝ : Set α
inst✝² : MeasurableSpace α
ι : Type u_5
f : ι → α → ℝ≥0
g : α → ℝ≥0
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
hf : ∀ (i : ι), Measurable (f i)
lim : Tendsto f u (𝓝 g)
⊢ Measurable g
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u✝ : Set α
inst✝² : MeasurableSpace α
ι : Type u_5
f : ι → α → ℝ≥0
g : α → ℝ≥0
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
lim : Tendsto f u (𝓝 g)
hf : ∀ (i : ι), Measurable fun x => ↑(f i x)
⊢ Measurable fun x => ↑(g x)

tactic: refine ENNReal.measurable_of_tendsto' u hf ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u✝ : Set α
inst✝² : MeasurableSpace α
ι : Type u_5
f : ι → α → ℝ≥0
g : α → ℝ≥0
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
lim : Tendsto f u (𝓝 g)
hf : ∀ (i : ι), Measurable fun x => ↑(f i x)
⊢ Measurable fun x => ↑(g x)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u✝ : Set α
inst✝² : MeasurableSpace α
ι : Type u_5
f : ι → α → ℝ≥0
g : α → ℝ≥0
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
lim : Tendsto f u (𝓝 g)
hf : ∀ (i : ι), Measurable fun x => ↑(f i x)
⊢ Tendsto (fun i x => ↑(f i x)) u (𝓝 fun x => ↑(g x))

tactic: rw [tendsto_pi_nhds] at lim ⊢
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u✝ : Set α
inst✝² : MeasurableSpace α
ι : Type u_5
f : ι → α → ℝ≥0
g : α → ℝ≥0
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
lim : Tendsto f u (𝓝 g)
hf : ∀ (i : ι), Measurable fun x => ↑(f i x)
⊢ Tendsto (fun i x => ↑(f i x)) u (𝓝 fun x => ↑(g x))
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u✝ : Set α
inst✝² : MeasurableSpace α
ι : Type u_5
f : ι → α → ℝ≥0
g : α → ℝ≥0
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
lim : ∀ (x : α), Tendsto (fun i => f i x) u (𝓝 (g x))
hf : ∀ (i : ι), Measurable fun x => ↑(f i x)
⊢ ∀ (x : α), Tendsto (fun i => ↑(f i x)) u (𝓝 ↑(g x))

tactic: exact fun x => (ENNReal.continuous_coe.tendsto (g x)).comp (lim x)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι✝ : Sort y
s t u✝ : Set α
inst✝² : MeasurableSpace α
ι : Type u_5
f : ι → α → ℝ≥0
g : α → ℝ≥0
u : Filter ι
inst✝¹ : u.NeBot
inst✝ : u.IsCountablyGenerated
lim : ∀ (x : α), Tendsto (fun i => f i x) u (𝓝 (g x))
hf : ∀ (i : ι), Measurable fun x => ↑(f i x)
⊢ ∀ (x : α), Tendsto (fun i => ↑(f i x)) u (𝓝 ↑(g x))
state_after: no goals
Theorem: WeierstrassCurve.baseChange_preΨ'
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: rw [← map_preΨ', map_baseChange]
state_before: R : Type r
S : Type s
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
W : WeierstrassCurve R
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
n : ℕ
⊢ (W.baseChange B).preΨ' n = Polynomial.map (↑f) ((W.baseChange A).preΨ' n)
state_after: no goals
Theorem: LieSubmodule.lcs_le_iff
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: convert lcs_add_le_iff (R := R) (L := L) (M := M) 0 k
state_before: R : Type u
L : Type v
M : 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
k✝ : ℕ
N N₁ N₂ : LieSubmodule R L M
k : ℕ
⊢ lcs k N₁ ≤ N₂ ↔ N₁ ≤ ucs k N₂
state_after: case h.e'_1.h.e'_3.h.e'_10
R : Type u
L : Type v
M : 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
k✝ : ℕ
N N₁ N₂ : LieSubmodule R L M
k : ℕ
⊢ k = 0 + k

tactic: rw [zero_add]
state_before: case h.e'_1.h.e'_3.h.e'_10
R : Type u
L : Type v
M : 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
k✝ : ℕ
N N₁ N₂ : LieSubmodule R L M
k : ℕ
⊢ k = 0 + k
state_after: no goals
Theorem: Module.End.disjoint_iSup_genEigenspace
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: simp_rw [(f.genEigenspace μ₁).mono.directed_le.disjoint_iSup_left,
  (f.genEigenspace μ₂).mono.directed_le.disjoint_iSup_right]
state_before: K R : Type v
V M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : Field K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
inst✝ : NoZeroSMulDivisors R M
f : End R M
μ₁ μ₂ : R
hμ : μ₁ ≠ μ₂
⊢ Disjoint (⨆ k, (f.genEigenspace μ₁) k) (⨆ k, (f.genEigenspace μ₂) k)
state_after: K R : Type v
V M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : Field K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
inst✝ : NoZeroSMulDivisors R M
f : End R M
μ₁ μ₂ : R
hμ : μ₁ ≠ μ₂
⊢ ∀ (i i_1 : ℕ), Disjoint ((f.genEigenspace μ₁) i) ((f.genEigenspace μ₂) i_1)

tactic: exact disjoint_genEigenspace f hμ
state_before: K R : Type v
V M : Type w
inst✝⁶ : CommRing R
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
inst✝³ : Field K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
inst✝ : NoZeroSMulDivisors R M
f : End R M
μ₁ μ₂ : R
hμ : μ₁ ≠ μ₂
⊢ ∀ (i i_1 : ℕ), Disjoint ((f.genEigenspace μ₁) i) ((f.genEigenspace μ₂) i_1)
state_after: no goals
Theorem: Equiv.Perm.cycleFactorsFinset_eq_finset
File: Mathlib/GroupTheory/Perm/Cycle/Factors.lean

tactic: obtain ⟨l, hl, rfl⟩ := s.exists_list_nodup_eq
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f σ : Perm α
s : Finset (Perm α)
⊢ σ.cycleFactorsFinset = s ↔ (∀ f ∈ s, f.IsCycle) ∧ ∃ (h : (↑s).Pairwise Disjoint), s.noncommProd id ⋯ = σ
state_after: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f σ : Perm α
l : List (Perm α)
hl : l.Nodup
⊢ σ.cycleFactorsFinset = l.toFinset ↔
    (∀ f ∈ l.toFinset, f.IsCycle) ∧ ∃ (h : (↑l.toFinset).Pairwise Disjoint), l.toFinset.noncommProd id ⋯ = σ

tactic: simp [cycleFactorsFinset_eq_list_toFinset, hl]
state_before: case intro.intro
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f σ : Perm α
l : List (Perm α)
hl : l.Nodup
⊢ σ.cycleFactorsFinset = l.toFinset ↔
    (∀ f ∈ l.toFinset, f.IsCycle) ∧ ∃ (h : (↑l.toFinset).Pairwise Disjoint), l.toFinset.noncommProd id ⋯ = σ
state_after: no goals
Theorem: Fintype.prod_eq_one_iff_of_one_le
File: Mathlib/Algebra/Order/BigOperators/Group/Finset.lean

tactic: simp [Function.funext_iff]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
G : Type u_6
k : Type u_7
R : Type u_8
inst✝¹ : Fintype ι
inst✝ : OrderedCommMonoid M
f : ι → M
hf : 1 ≤ f
⊢ (∀ i ∈ Finset.univ, f i = 1) ↔ f = 1
state_after: no goals
Theorem: Subgroup.MemLeftTransversals.inv_mul_toFun_mem
File: Mathlib/GroupTheory/Complement.lean

tactic: rw [mul_inv_rev, inv_inv]
state_before: G : Type u_1
inst✝ : Group G
H K : Subgroup G
S T : Set G
hS : S ∈ leftTransversals ↑H
g : G
⊢ ((↑(toFun hS g))⁻¹ * g)⁻¹ = g⁻¹ * ↑(toFun hS g)
state_after: no goals
Theorem: Real.inv_logb_mul_base
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: simp_rw [inv_logb]
state_before: b✝ x y a b : ℝ
h₁ : a ≠ 0
h₂ : b ≠ 0
c : ℝ
⊢ (logb (a * b) c)⁻¹ = (logb a c)⁻¹ + (logb b c)⁻¹
state_after: b✝ x y a b : ℝ
h₁ : a ≠ 0
h₂ : b ≠ 0
c : ℝ
⊢ logb c (a * b) = logb c a + logb c b

tactic: exact logb_mul h₁ h₂
state_before: b✝ x y a b : ℝ
h₁ : a ≠ 0
h₂ : b ≠ 0
c : ℝ
⊢ logb c (a * b) = logb c a + logb c b
state_after: no goals
Theorem: MeasureTheory.pdf.lintegral_pdf_mul
File: Mathlib/Probability/Density.lean

tactic: rw [pdf_def,
  ← lintegral_map' (hf.mono_ac HasPDF.absolutelyContinuous) (HasPDF.aemeasurable X ℙ μ),
  lintegral_rnDeriv_mul HasPDF.absolutelyContinuous hf]
state_before: Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
X : Ω → E
inst✝ : HasPDF X ℙ μ
f : E → ℝ≥0∞
hf : AEMeasurable f μ
⊢ ∫⁻ (x : E), pdf X ℙ μ x * f x ∂μ = ∫⁻ (x : Ω), f (X x) ∂ℙ
state_after: no goals
Theorem: compl_lt_self
File: Mathlib/Order/BooleanAlgebra.lean

tactic: simpa using lt_compl_self (a := xᶜ)
state_before: α : Type u
β : Type u_1
w x y z : α
inst✝¹ : BooleanAlgebra α
inst✝ : Nontrivial α
⊢ xᶜ < x ↔ x = ⊤
state_after: no goals