1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Fin.dist_insertNth_insertNth
File: Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean

tactic: simp only [dist_nndist, Fin.nndist_insertNth_insertNth, NNReal.coe_max]
state_before: α✝ : Type u_1
β : Type u_2
inst✝³ : PseudoMetricSpace α✝
π : β → Type u_3
inst✝² : Fintype β
inst✝¹ : (b : β) → PseudoMetricSpace (π b)
n : ℕ
α : Fin (n + 1) → Type u_4
inst✝ : (i : Fin (n + 1)) → PseudoMetricSpace (α i)
i : Fin (n + 1)
x y : α i
f g : (j : Fin n) → α (i.succAbove j)
⊢ dist (i.insertNth x f) (i.insertNth y g) = max (dist x y) (dist f g)
state_after: no goals
Theorem: CategoryTheory.rightAdjointMate_comp_evaluation
File: Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean

tactic: apply_fun tensorRightHomEquiv _ X (Xᘁ) _
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ fᘁ ▷ X ≫ ε_ X Xᘁ = Yᘁ ◁ f ≫ ε_ Y Yᘁ
state_after: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ (tensorRightHomEquiv Yᘁ X Xᘁ (𝟙_ C)) (fᘁ ▷ X ≫ ε_ X Xᘁ) = (tensorRightHomEquiv Yᘁ X Xᘁ (𝟙_ C)) (Yᘁ ◁ f ≫ ε_ Y Yᘁ)

tactic: simp
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
X Y : C
inst✝¹ : HasRightDual X
inst✝ : HasRightDual Y
f : X ⟶ Y
⊢ (tensorRightHomEquiv Yᘁ X Xᘁ (𝟙_ C)) (fᘁ ▷ X ≫ ε_ X Xᘁ) = (tensorRightHomEquiv Yᘁ X Xᘁ (𝟙_ C)) (Yᘁ ◁ f ≫ ε_ Y Yᘁ)
state_after: no goals
Theorem: LinearMap.iInf_ker_proj
File: Mathlib/LinearAlgebra/Pi.lean

tactic: simp only [mem_iInf, mem_ker, proj_apply] at h
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M₃
φ : ι → Type i
inst✝¹ : (i : ι) → AddCommMonoid (φ i)
inst✝ : (i : ι) → Module R (φ i)
a : (i : ι) → φ i
h : a ∈ ⨅ i, ker (proj i)
⊢ a ∈ ⊥
state_after: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M₃
φ : ι → Type i
inst✝¹ : (i : ι) → AddCommMonoid (φ i)
inst✝ : (i : ι) → Module R (φ i)
a : (i : ι) → φ i
h : ∀ (i : ι), a i = 0
⊢ a ∈ ⊥

tactic: exact (mem_bot _).2 (funext fun i => h i)
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
ι' : Type x'
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M₃
φ : ι → Type i
inst✝¹ : (i : ι) → AddCommMonoid (φ i)
inst✝ : (i : ι) → Module R (φ i)
a : (i : ι) → φ i
h : ∀ (i : ι), a i = 0
⊢ a ∈ ⊥
state_after: no goals
Theorem: SimpleGraph.Walk.chain_dartAdj_darts
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: induction p generalizing d with
| nil => exact List.Chain.nil
| cons h' p ih => exact List.Chain.cons (by exact h) (ih (by rfl))
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
d : G.Dart
v w : V
h : d.toProd.2 = v
p : G.Walk v w
⊢ List.Chain G.DartAdj d p.darts
state_after: no goals

tactic: exact List.Chain.nil
state_before: case nil
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w u✝ : V
d : G.Dart
h : d.toProd.2 = u✝
⊢ List.Chain G.DartAdj d nil.darts
state_after: no goals

tactic: exact List.Chain.cons (by exact h) (ih (by rfl))
state_before: case cons
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w u✝ v✝ w✝ : V
h' : G.Adj u✝ v✝
p : G.Walk v✝ w✝
ih : ∀ {d : G.Dart}, d.toProd.2 = v✝ → List.Chain G.DartAdj d p.darts
d : G.Dart
h : d.toProd.2 = u✝
⊢ List.Chain G.DartAdj d (cons h' p).darts
state_after: no goals

tactic: exact h
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w u✝ v✝ w✝ : V
h' : G.Adj u✝ v✝
p : G.Walk v✝ w✝
ih : ∀ {d : G.Dart}, d.toProd.2 = v✝ → List.Chain G.DartAdj d p.darts
d : G.Dart
h : d.toProd.2 = u✝
⊢ G.DartAdj d { toProd := (u✝, v✝), adj := h' }
state_after: no goals

tactic: rfl
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
v w u✝ v✝ w✝ : V
h' : G.Adj u✝ v✝
p : G.Walk v✝ w✝
ih : ∀ {d : G.Dart}, d.toProd.2 = v✝ → List.Chain G.DartAdj d p.darts
d : G.Dart
h : d.toProd.2 = u✝
⊢ { toProd := (u✝, v✝), adj := h' }.toProd.2 = v✝
state_after: no goals
Theorem: ProbabilityTheory.indepSets_singleton_iff
File: Mathlib/Probability/Independence/Basic.lean

tactic: simp only [IndepSets, kernel.indepSets_singleton_iff, ae_dirac_eq, Filter.eventually_pure,
  kernel.const_apply]
state_before: Ω : Type u_1
ι : Type u_2
β : Type u_3
γ : Type u_4
κ : ι → Type u_5
m₁ m₂ m₃ m' _mΩ : MeasurableSpace Ω
μ : Measure Ω
s t : Set Ω
⊢ IndepSets {s} {t} μ ↔ μ (s ∩ t) = μ s * μ t
state_after: no goals
Theorem: MeasureTheory.snorm_indicator_sub_indicator
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: simp only [Pi.sub_apply, Set.apply_indicator_symmDiff norm_neg]
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
s t : Set α
f : α → E
x : α
⊢ ‖(s.indicator f - t.indicator f) x‖ = ‖(s ∆ t).indicator f x‖
state_after: no goals
Theorem: Ordinal.IsFundamentalSequence.zero
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rw [cof_zero, ord_zero]
state_before: α : Type u_1
r : α → α → Prop
a o : Ordinal.{u}
f✝ : (b : Ordinal.{u}) → b < o → Ordinal.{u}
f : (b : Ordinal.{u_2}) → b < 0 → Ordinal.{u_2}
⊢ 0 ≤ (cof 0).ord
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.map_id
File: Mathlib/CategoryTheory/MorphismProperty/Basic.lean

tactic: rw [map_id_eq_isoClosure, hP.isoClosure_eq]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
D : Type u_1
inst✝ : Category.{?u.19180, u_1} D
P : MorphismProperty C
hP : P.RespectsIso
⊢ P.map (𝟭 C) = P
state_after: no goals
Theorem: Equiv.preimage_piEquivPiSubtypeProd_symm_pi
File: Mathlib/Logic/Equiv/Set.lean

tactic: ext ⟨f, g⟩
state_before: α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
p : α → Prop
inst✝ : DecidablePred p
s : (i : α) → Set (β i)
⊢ ⇑(piEquivPiSubtypeProd p β).symm ⁻¹' univ.pi s = (univ.pi fun i => s ↑i) ×ˢ univ.pi fun i => s ↑i
state_after: case h.mk
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
p : α → Prop
inst✝ : DecidablePred p
s : (i : α) → Set (β i)
f : (i : { x // p x }) → β ↑i
g : (i : { x // ¬p x }) → β ↑i
⊢ (f, g) ∈ ⇑(piEquivPiSubtypeProd p β).symm ⁻¹' univ.pi s ↔ (f, g) ∈ (univ.pi fun i => s ↑i) ×ˢ univ.pi fun i => s ↑i

tactic: simp only [mem_preimage, mem_univ_pi, prod_mk_mem_set_prod_eq, Subtype.forall, ← forall_and]
state_before: case h.mk
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
p : α → Prop
inst✝ : DecidablePred p
s : (i : α) → Set (β i)
f : (i : { x // p x }) → β ↑i
g : (i : { x // ¬p x }) → β ↑i
⊢ (f, g) ∈ ⇑(piEquivPiSubtypeProd p β).symm ⁻¹' univ.pi s ↔ (f, g) ∈ (univ.pi fun i => s ↑i) ×ˢ univ.pi fun i => s ↑i
state_after: case h.mk
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
p : α → Prop
inst✝ : DecidablePred p
s : (i : α) → Set (β i)
f : (i : { x // p x }) → β ↑i
g : (i : { x // ¬p x }) → β ↑i
⊢ (∀ (i : α), (piEquivPiSubtypeProd p β).symm (f, g) i ∈ s i) ↔
    ∀ (x : α), (∀ (b : p x), f ⟨x, b⟩ ∈ s x) ∧ ∀ (b : ¬p x), g ⟨x, b⟩ ∈ s x

tactic: refine forall_congr' fun i => ?_
state_before: case h.mk
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
p : α → Prop
inst✝ : DecidablePred p
s : (i : α) → Set (β i)
f : (i : { x // p x }) → β ↑i
g : (i : { x // ¬p x }) → β ↑i
⊢ (∀ (i : α), (piEquivPiSubtypeProd p β).symm (f, g) i ∈ s i) ↔
    ∀ (x : α), (∀ (b : p x), f ⟨x, b⟩ ∈ s x) ∧ ∀ (b : ¬p x), g ⟨x, b⟩ ∈ s x
state_after: case h.mk
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
p : α → Prop
inst✝ : DecidablePred p
s : (i : α) → Set (β i)
f : (i : { x // p x }) → β ↑i
g : (i : { x // ¬p x }) → β ↑i
i : α
⊢ (piEquivPiSubtypeProd p β).symm (f, g) i ∈ s i ↔ (∀ (b : p i), f ⟨i, b⟩ ∈ s i) ∧ ∀ (b : ¬p i), g ⟨i, b⟩ ∈ s i

tactic: by_cases hi : p i <;> simp [hi]
state_before: case h.mk
α✝ : Sort u
β✝ : Sort v
γ : Sort w
α : Type u_1
β : α → Type u_2
p : α → Prop
inst✝ : DecidablePred p
s : (i : α) → Set (β i)
f : (i : { x // p x }) → β ↑i
g : (i : { x // ¬p x }) → β ↑i
i : α
⊢ (piEquivPiSubtypeProd p β).symm (f, g) i ∈ s i ↔ (∀ (b : p i), f ⟨i, b⟩ ∈ s i) ∧ ∀ (b : ¬p i), g ⟨i, b⟩ ∈ s i
state_after: no goals
Theorem: Cardinal.lift_succ
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rcases lt_lift_iff.1 h with ⟨b, e, h⟩
state_before: α β : Type u
a : Cardinal.{u}
h : lift.{v, u} (succ a) > succ (lift.{v, u} a)
⊢ False
state_after: case intro.intro
α β : Type u
a : Cardinal.{u}
h✝ : lift.{v, u} (succ a) > succ (lift.{v, u} a)
b : Cardinal.{u}
e : lift.{v, u} b = succ (lift.{v, u} a)
h : b < succ a
⊢ False

tactic: rw [lt_succ_iff, ← lift_le, e] at h
state_before: case intro.intro
α β : Type u
a : Cardinal.{u}
h✝ : lift.{v, u} (succ a) > succ (lift.{v, u} a)
b : Cardinal.{u}
e : lift.{v, u} b = succ (lift.{v, u} a)
h : b < succ a
⊢ False
state_after: case intro.intro
α β : Type u
a : Cardinal.{u}
h✝ : lift.{v, u} (succ a) > succ (lift.{v, u} a)
b : Cardinal.{u}
e : lift.{v, u} b = succ (lift.{v, u} a)
h : succ (lift.{v, u} a) ≤ lift.{v, u} a
⊢ False

tactic: exact h.not_lt (lt_succ _)
state_before: case intro.intro
α β : Type u
a : Cardinal.{u}
h✝ : lift.{v, u} (succ a) > succ (lift.{v, u} a)
b : Cardinal.{u}
e : lift.{v, u} b = succ (lift.{v, u} a)
h : succ (lift.{v, u} a) ≤ lift.{v, u} a
⊢ False
state_after: no goals
Theorem: ProbabilityTheory.gaussianPDF_zero_var
File: Mathlib/Probability/Distributions/Gaussian.lean

tactic: ext
state_before: μ : ℝ
⊢ gaussianPDF μ 0 = 0
state_after: case h
μ x✝ : ℝ
⊢ gaussianPDF μ 0 x✝ = 0 x✝

tactic: simp [gaussianPDF]
state_before: case h
μ x✝ : ℝ
⊢ gaussianPDF μ 0 x✝ = 0 x✝
state_after: no goals
Theorem: Finsupp.equivMapDomain_trans
File: Mathlib/Data/Finsupp/Basic.lean

tactic: ext x
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 : α ≃ β
g : β ≃ γ
l : α →₀ M
⊢ equivMapDomain (f.trans g) l = equivMapDomain g (equivMapDomain f l)
state_after: case h
α : 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 : α ≃ β
g : β ≃ γ
l : α →₀ M
x : γ
⊢ (equivMapDomain (f.trans g) l) x = (equivMapDomain g (equivMapDomain f l)) x

tactic: rfl
state_before: case h
α : 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 : α ≃ β
g : β ≃ γ
l : α →₀ M
x : γ
⊢ (equivMapDomain (f.trans g) l) x = (equivMapDomain g (equivMapDomain f l)) x
state_after: no goals
Theorem: CategoryTheory.ShortComplex.leftHomologyMap'_neg
File: Mathlib/Algebra/Homology/ShortComplex/Preadditive.lean

tactic: have γ : LeftHomologyMapData φ h₁ h₂ := default
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
⊢ leftHomologyMap' (-φ) h₁ h₂ = -leftHomologyMap' φ h₁ h₂
state_after: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
γ : LeftHomologyMapData φ h₁ h₂
⊢ leftHomologyMap' (-φ) h₁ h₂ = -leftHomologyMap' φ h₁ h₂

tactic: simp only [γ.leftHomologyMap'_eq, γ.neg.leftHomologyMap'_eq, LeftHomologyMapData.neg_φH]
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
S₁ S₂ S₃ : ShortComplex C
φ φ' : S₁ ⟶ S₂
h₁ : S₁.LeftHomologyData
h₂ : S₂.LeftHomologyData
γ : LeftHomologyMapData φ h₁ h₂
⊢ leftHomologyMap' (-φ) h₁ h₂ = -leftHomologyMap' φ h₁ h₂
state_after: no goals
Theorem: Cardinal.toPartENat_eq_natCast_iff
File: Mathlib/SetTheory/Cardinal/Finite.lean

tactic: rw [eq_comm, Cardinal.natCast_eq_toPartENat_iff, eq_comm]
state_before: α : Type u_1
β : Type u_2
c : Cardinal.{u_3}
n : ℕ
⊢ toPartENat c = ↑n ↔ c = ↑n
state_after: no goals
Theorem: Int.Ioc_filter_modEq_eq
File: Mathlib/Data/Int/CardIntervalMod.lean

tactic: ext x
state_before: a b r : ℤ
hr : 0 < r
v : ℤ
⊢ filter (fun x => x ≡ v [ZMOD r]) (Ioc a b) =
    map { toFun := fun x => x + v, inj' := ⋯ } (filter (fun x => r ∣ x) (Ioc (a - v) (b - v)))
state_after: case a
a b r : ℤ
hr : 0 < r
v x : ℤ
⊢ x ∈ filter (fun x => x ≡ v [ZMOD r]) (Ioc a b) ↔
    x ∈ map { toFun := fun x => x + v, inj' := ⋯ } (filter (fun x => r ∣ x) (Ioc (a - v) (b - v)))

tactic: simp_rw [mem_map, mem_filter, mem_Ioc, Function.Embedding.coeFn_mk, ← eq_sub_iff_add_eq,
  exists_eq_right, modEq_comm, modEq_iff_dvd, sub_lt_sub_iff_right, sub_le_sub_iff_right]
state_before: case a
a b r : ℤ
hr : 0 < r
v x : ℤ
⊢ x ∈ filter (fun x => x ≡ v [ZMOD r]) (Ioc a b) ↔
    x ∈ map { toFun := fun x => x + v, inj' := ⋯ } (filter (fun x => r ∣ x) (Ioc (a - v) (b - v)))
state_after: no goals
Theorem: WittVector.ghostFun_sub
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: ghost_fun_tac X 0 - X 1, ![x.coeff, y.coeff]
state_before: p : ℕ
R : Type u_1
S : Type u_2
T : Type u_3
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type u_4
β : Type u_5
x y : 𝕎 R
⊢ WittVector.ghostFun (x - y) = WittVector.ghostFun x - WittVector.ghostFun y
state_after: no goals
Theorem: SubgroupClass.subset_union
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: rw [or_iff_not_imp_left, SetLike.not_le_iff_exists]
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
M : Type u_5
S : Type u_6
inst✝³ : DivInvMonoid M
inst✝² : SetLike S M
hSM : SubgroupClass S M
H✝ K✝ : S
inst✝¹ : SetLike S G
inst✝ : SubgroupClass S G
H K L : S
h : ↑H ⊆ ↑K ∪ ↑L
⊢ H ≤ K ∨ H ≤ L
state_after: 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
M : Type u_5
S : Type u_6
inst✝³ : DivInvMonoid M
inst✝² : SetLike S M
hSM : SubgroupClass S M
H✝ K✝ : S
inst✝¹ : SetLike S G
inst✝ : SubgroupClass S G
H K L : S
h : ↑H ⊆ ↑K ∪ ↑L
⊢ (∃ x ∈ H, x ∉ K) → H ≤ L
Theorem: CategoryTheory.Iso.trans_assoc
File: Mathlib/CategoryTheory/Iso.lean

tactic: ext
state_before: C : Type u
inst✝ : Category.{v, u} C
X Y Z Z' : C
α : X ≅ Y
β : Y ≅ Z
γ : Z ≅ Z'
⊢ (α ≪≫ β) ≪≫ γ = α ≪≫ β ≪≫ γ
state_after: case w
C : Type u
inst✝ : Category.{v, u} C
X Y Z Z' : C
α : X ≅ Y
β : Y ≅ Z
γ : Z ≅ Z'
⊢ ((α ≪≫ β) ≪≫ γ).hom = (α ≪≫ β ≪≫ γ).hom

tactic: simp only [trans_hom, Category.assoc]
state_before: case w
C : Type u
inst✝ : Category.{v, u} C
X Y Z Z' : C
α : X ≅ Y
β : Y ≅ Z
γ : Z ≅ Z'
⊢ ((α ≪≫ β) ≪≫ γ).hom = (α ≪≫ β ≪≫ γ).hom
state_after: no goals
Theorem: Cardinal.mk_embedding_eq_zero_iff_lt
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: rw [mk_embedding_eq_zero_iff_lift_lt, lift_lt]
state_before: α β : Type u
β' : Type v
⊢ #(α ↪ β) = 0 ↔ #β < #α
state_after: no goals
Theorem: Metric.thickening_eq_biUnion_ball
File: Mathlib/Topology/MetricSpace/Thickening.lean

tactic: ext x
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x : α
X : Type u
inst✝ : PseudoMetricSpace X
δ : ℝ
E : Set X
⊢ thickening δ E = ⋃ x ∈ E, ball x δ
state_after: case h
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x✝ : α
X : Type u
inst✝ : PseudoMetricSpace X
δ : ℝ
E : Set X
x : X
⊢ x ∈ thickening δ E ↔ x ∈ ⋃ x ∈ E, ball x δ

tactic: simp only [mem_iUnion₂, exists_prop]
state_before: case h
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x✝ : α
X : Type u
inst✝ : PseudoMetricSpace X
δ : ℝ
E : Set X
x : X
⊢ x ∈ thickening δ E ↔ x ∈ ⋃ x ∈ E, ball x δ
state_after: case h
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x✝ : α
X : Type u
inst✝ : PseudoMetricSpace X
δ : ℝ
E : Set X
x : X
⊢ x ∈ thickening δ E ↔ ∃ i ∈ E, x ∈ ball i δ

tactic: exact mem_thickening_iff
state_before: case h
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
δ✝ : ℝ
s : Set α
x✝ : α
X : Type u
inst✝ : PseudoMetricSpace X
δ : ℝ
E : Set X
x : X
⊢ x ∈ thickening δ E ↔ ∃ i ∈ E, x ∈ ball i δ
state_after: no goals
Theorem: Finset.coe_insert
File: Mathlib/Data/Finset/Basic.lean

tactic: simp only [mem_coe, mem_insert, Set.mem_insert_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t u v : Finset α
a✝ b a : α
s : Finset α
x : α
⊢ x ∈ ↑(insert a s) ↔ x ∈ insert a ↑s
state_after: no goals
Theorem: nhdsWithin_pi_eq_bot
File: Mathlib/Topology/ContinuousOn.lean

tactic: simp only [nhdsWithin, nhds_pi, pi_inf_principal_pi_eq_bot]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝¹ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝ : (i : ι) → TopologicalSpace (π i)
I : Set ι
s : (i : ι) → Set (π i)
x : (i : ι) → π i
⊢ 𝓝[I.pi s] x = ⊥ ↔ ∃ i ∈ I, 𝓝[s i] x i = ⊥
state_after: no goals
Theorem: Polynomial.degree_C_mul_X_pow
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [C_mul_X_pow_eq_monomial, degree_monomial n ha]
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝ : Semiring R
p q r : R[X]
n : ℕ
ha : a ≠ 0
⊢ (C a * X ^ n).degree = ↑n
state_after: no goals
Theorem: prime_mul_iff
File: Mathlib/Algebra/Associated.lean

tactic: refine ⟨fun h ↦ ?_, ?_⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
⊢ Prime (x * y) ↔ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y
state_after: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
h : Prime (x * y)
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y

case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y → Prime (x * y)

tactic: rcases of_irreducible_mul h.irreducible with hx | hy
state_before: case refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
h : Prime (x * y)
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y
state_after: case refine_1.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
h : Prime (x * y)
hx : IsUnit x
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y

case refine_1.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
h : Prime (x * y)
hy : IsUnit y
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y

tactic: exact Or.inr ⟨hx, (associated_unit_mul_left y x hx).prime h⟩
state_before: case refine_1.inl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
h : Prime (x * y)
hx : IsUnit x
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y
state_after: no goals

tactic: exact Or.inl ⟨(associated_mul_unit_left x y hy).prime h, hy⟩
state_before: case refine_1.inr
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
h : Prime (x * y)
hy : IsUnit y
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y
state_after: no goals

tactic: rintro (⟨hx, hy⟩ | ⟨hx, hy⟩)
state_before: case refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
⊢ Prime x ∧ IsUnit y ∨ IsUnit x ∧ Prime y → Prime (x * y)
state_after: case refine_2.inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
hx : Prime x
hy : IsUnit y
⊢ Prime (x * y)

case refine_2.inr.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
hx : IsUnit x
hy : Prime y
⊢ Prime (x * y)

tactic: exact (associated_mul_unit_left x y hy).symm.prime hx
state_before: case refine_2.inl.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
hx : Prime x
hy : IsUnit y
⊢ Prime (x * y)
state_after: no goals

tactic: exact (associated_unit_mul_right y x hx).prime hy
state_before: case refine_2.inr.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
x y : α
hx : IsUnit x
hy : Prime y
⊢ Prime (x * y)
state_after: no goals
Theorem: mul_mem_cancel_left
File: Mathlib/Algebra/Group/Subgroup/Basic.lean

tactic: simpa using mul_mem (inv_mem h) hab
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
M : Type u_5
S : Type u_6
inst✝³ : DivInvMonoid M
inst✝² : SetLike S M
hSM : SubgroupClass S M
H K : S
inst✝¹ : SetLike S G
inst✝ : SubgroupClass S G
x y : G
h : x ∈ H
hab : x * y ∈ H
⊢ y ∈ H
state_after: no goals
Theorem: MeasureTheory.Integrable.inner_const
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: rw [← memℒp_one_iff_integrable] at hf ⊢
state_before: α : Type u_1
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_2
𝕜 : Type u_3
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
f : α → E
hf : Integrable f μ
c : E
⊢ Integrable (fun x => ⟪f x, c⟫_𝕜) μ
state_after: α : Type u_1
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_2
𝕜 : Type u_3
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
f : α → E
hf : Memℒp f 1 μ
c : E
⊢ Memℒp (fun x => ⟪f x, c⟫_𝕜) 1 μ

tactic: exact hf.inner_const c
state_before: α : Type u_1
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_2
𝕜 : Type u_3
inst✝² : RCLike 𝕜
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace 𝕜 E
f : α → E
hf : Memℒp f 1 μ
c : E
⊢ Memℒp (fun x => ⟪f x, c⟫_𝕜) 1 μ
state_after: no goals
Theorem: deriv_inv
File: Mathlib/Analysis/Calculus/Deriv/Inv.lean

tactic: rcases eq_or_ne x 0 with (rfl | hne)
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
⊢ deriv (fun x => x⁻¹) x = -(x ^ 2)⁻¹
state_after: case inl
𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
s t : Set 𝕜
L : Filter 𝕜
⊢ deriv (fun x => x⁻¹) 0 = -(0 ^ 2)⁻¹

case inr
𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
hne : x ≠ 0
⊢ deriv (fun x => x⁻¹) x = -(x ^ 2)⁻¹

tactic: simp [deriv_zero_of_not_differentiableAt (mt differentiableAt_inv.1 (not_not.2 rfl))]
state_before: case inl
𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
s t : Set 𝕜
L : Filter 𝕜
⊢ deriv (fun x => x⁻¹) 0 = -(0 ^ 2)⁻¹
state_after: no goals

tactic: exact (hasDerivAt_inv hne).deriv
state_before: case inr
𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L : Filter 𝕜
hne : x ≠ 0
⊢ deriv (fun x => x⁻¹) x = -(x ^ 2)⁻¹
state_after: no goals