ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: convex_openSegment
File: Mathlib/Analysis/Convex/Basic.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝² : StrictOrderedCommSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
a b : E
⊢ Convex 𝕜 (openSegment 𝕜 a b)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝² : StrictOrderedCommSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
a b : E
⊢ ∀ ⦃x : E⦄, x ∈ openSegment 𝕜 a b → ∀ ⦃y : E⦄, y ∈ openSegment 𝕜 a b → openSegment 𝕜 x y ⊆ openSegment 𝕜 a b
tactic: rw [convex_iff_openSegment_subset]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝² : StrictOrderedCommSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
a b : E
⊢ ∀ ⦃x : E⦄, x ∈ openSegment 𝕜 a b → ∀ ⦃y : E⦄, y ∈ openSegment 𝕜 a b → openSegment 𝕜 x y ⊆ openSegment 𝕜 a b
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝² : StrictOrderedCommSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
a✝ b✝ : E
ap bp : 𝕜
hap : 0 < ap
hbp : 0 < bp
habp : ap + bp = 1
aq bq : 𝕜
haq : 0 < aq
hbq : 0 < bq
habq : aq + bq = 1
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • (ap • a✝ + bp • b✝) + b • (aq • a✝ + bq • b✝) ∈ openSegment 𝕜 a✝ b✝
tactic: rintro p ⟨ap, bp, hap, hbp, habp, rfl⟩ q ⟨aq, bq, haq, hbq, habq, rfl⟩ z ⟨a, b, ha, hb, hab, rfl⟩
state_before: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝² : StrictOrderedCommSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
a✝ b✝ : E
ap bp : 𝕜
hap : 0 < ap
hbp : 0 < bp
habp : ap + bp = 1
aq bq : 𝕜
haq : 0 < aq
hbq : 0 < bq
habq : aq + bq = 1
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • (ap • a✝ + bp • b✝) + b • (aq • a✝ + bq • b✝) ∈ openSegment 𝕜 a✝ b✝
state_after: case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_1
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝² : StrictOrderedCommSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
a✝ b✝ : E
ap bp : 𝕜
hap : 0 < ap
hbp : 0 < bp
habp : ap + bp = 1
aq bq : 𝕜
haq : 0 < aq
hbq : 0 < bq
habq : aq + bq = 1
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a * ap + b * aq + (a * bp + b * bq) = 1

case intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.intro.refine_2
𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝² : StrictOrderedCommSemiring 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
a✝ b✝ : E
ap bp : 𝕜
hap : 0 < ap
hbp : 0 < bp
habp : ap + bp = 1
aq bq : 𝕜
haq : 0 < aq
hbq : 0 < bq
habq : aq + bq = 1
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ (a * ap + b * aq) • a✝ + (a * bp + b * bq) • b✝ = a • (ap • a✝ + bp • b✝) + b • (aq • a✝ + bq • b✝)
tactic: refine ⟨a * ap + b * aq, a * bp + b * bq, by positivity, by positivity, ?_, ?_⟩
Theorem: Fin.insertNth_apply_below
File: Mathlib/Data/Fin/Tuple/Basic.lean

Proof steps:
state_before: m n : ℕ
α : Fin (n + 1) → Type u
β : Type v
i j : Fin (n + 1)
h : j < i
x : α i
p : (k : Fin n) → α (i.succAbove k)
⊢ i.insertNth x p j = Eq.recOn ⋯ (p (j.castPred ⋯))
state_after: no goals
tactic: rw [insertNth, succAboveCases, dif_neg (Fin.ne_of_lt h), dif_pos h]
Theorem: Int.preimage_Ioc
File: Mathlib/Algebra/Order/Floor.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
⊢ Int.cast ⁻¹' Ioc a b = Ioc ⌊a⌋ ⌊b⌋
state_after: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Ioc a b ↔ x✝ ∈ Ioc ⌊a⌋ ⌊b⌋
tactic: ext
state_before: case h
F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
z : ℤ
a✝ a b : α
x✝ : ℤ
⊢ x✝ ∈ Int.cast ⁻¹' Ioc a b ↔ x✝ ∈ Ioc ⌊a⌋ ⌊b⌋
state_after: no goals
tactic: simp [floor_lt, le_floor]
Theorem: Finset.card_Icc_finset
File: Mathlib/Data/Finset/Interval.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
⊢ (Icc s t).card = 2 ^ (t.card - s.card)
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
⊢ Set.InjOn (fun x => s ∪ x) ↑(t \ s).powerset
tactic: rw [← card_sdiff h, ← card_powerset, Icc_eq_image_powerset h, Finset.card_image_iff]
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
⊢ Set.InjOn (fun x => s ∪ x) ↑(t \ s).powerset
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
hu : u ∈ ↑(t \ s).powerset
v : Finset α
hv : v ∈ ↑(t \ s).powerset
huv : s ⊔ u = s ⊔ v
⊢ u = v
tactic: rintro u hu v hv (huv : s ⊔ u = s ⊔ v)
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
hu : u ∈ ↑(t \ s).powerset
v : Finset α
hv : v ∈ ↑(t \ s).powerset
huv : s ⊔ u = s ⊔ v
⊢ u = v
state_after: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
hu : u ⊆ t \ s
v : Finset α
hv : v ⊆ t \ s
huv : s ⊔ u = s ⊔ v
⊢ u = v
tactic: rw [mem_coe, mem_powerset] at hu hv
state_before: α : Type u_1
β : Type u_2
inst✝ : DecidableEq α
s t : Finset α
h : s ⊆ t
u : Finset α
hu : u ⊆ t \ s
v : Finset α
hv : v ⊆ t \ s
huv : s ⊔ u = s ⊔ v
⊢ u = v
state_after: no goals
tactic: rw [← (disjoint_sdiff.mono_right hu : Disjoint s u).sup_sdiff_cancel_left, ←
    (disjoint_sdiff.mono_right hv : Disjoint s v).sup_sdiff_cancel_left, huv]
Theorem: Algebra.FiniteType.iff_quotient_freeAlgebra
File: Mathlib/RingTheory/FiniteType.lean

Proof steps:
state_before: R : Type uR
S : Type uS
A : Type uA
B : Type uB
M : Type uM
N : Type uN
inst✝¹⁰ : CommSemiring R
inst✝⁹ : CommSemiring S
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R S
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
⊢ FiniteType R A ↔ ∃ s f, Surjective ⇑f
state_after: case mp
R : Type uR
S : Type uS
A : Type uA
B : Type uB
M : Type uM
N : Type uN
inst✝¹⁰ : CommSemiring R
inst✝⁹ : CommSemiring S
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R S
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
⊢ FiniteType R A → ∃ s f, Surjective ⇑f

case mpr
R : Type uR
S : Type uS
A : Type uA
B : Type uB
M : Type uM
N : Type uN
inst✝¹⁰ : CommSemiring R
inst✝⁹ : CommSemiring S
inst✝⁸ : Semiring A
inst✝⁷ : Semiring B
inst✝⁶ : Algebra R S
inst✝⁵ : Algebra R A
inst✝⁴ : Algebra R B
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
⊢ (∃ s f, Surjective ⇑f) → FiniteType R A
tactic: constructor
Theorem: Rel.preimage_univ
File: Mathlib/Data/Rel.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
⊢ r.preimage Set.univ = r.dom
state_after: no goals
tactic: rw [preimage, image_univ, codom_inv]
Theorem: WfDvdMonoid.of_wellFounded_associates
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

Proof steps:
state_before: α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
⊢ WellFounded DvdNotUnit
state_after: case h.e'_2.h.h.h.e
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
x✝¹ x✝ : Associates α
⊢ DvdNotUnit = LT.lt
tactic: convert h
state_before: case h.e'_2.h.h.h.e
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
x✝¹ x✝ : Associates α
⊢ DvdNotUnit = LT.lt
state_after: case h.e'_2.h.h.h.e.h.h.a
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
x✝³ x✝² x✝¹ x✝ : Associates α
⊢ DvdNotUnit x✝¹ x✝ ↔ x✝¹ < x✝
tactic: ext
state_before: case h.e'_2.h.h.h.e.h.h.a
α : Type u_1
inst✝ : CancelCommMonoidWithZero α
h : WellFounded fun x x_1 => x < x_1
x✝³ x✝² x✝¹ x✝ : Associates α
⊢ DvdNotUnit x✝¹ x✝ ↔ x✝¹ < x✝
state_after: no goals
tactic: exact Associates.dvdNotUnit_iff_lt
Theorem: hasProd_ite_div_hasProd
File: Mathlib/Topology/Algebra/InfiniteSum/Group.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : CommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : DecidableEq β
hf : HasProd f a
b : β
⊢ HasProd (fun n => if n = b then 1 else f n) (a / f b)
state_after: case h.e'_5
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : CommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : DecidableEq β
hf : HasProd f a
b : β
⊢ (fun n => if n = b then 1 else f n) = update f b 1

case h.e'_6
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : CommGroup α
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalGroup α
f g : β → α
a a₁ a₂ : α
inst✝ : DecidableEq β
hf : HasProd f a
b : β
⊢ a / f b = 1 / f b * a
tactic: convert hf.update b 1 using 1
Theorem: exists_nhds_ne_neBot
File: Mathlib/Topology/Compactness/Compact.lean

Proof steps:
state_before: X✝ : Type u
Y : Type v
ι : Type u_1
inst✝⁴ : TopologicalSpace X✝
inst✝³ : TopologicalSpace Y
s t : Set X✝
X : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : CompactSpace X
inst✝ : Infinite X
⊢ ∃ z, (𝓝[≠] z).NeBot
state_after: no goals
tactic: simpa [AccPt] using (@infinite_univ X _).exists_accPt_principal
Theorem: CategoryTheory.Idempotents.Karoubi.decompId_i_naturality
File: Mathlib/CategoryTheory/Idempotents/Karoubi.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{?u.41862, u_1} C
P Q : Karoubi C
f : P ⟶ Q
⊢ { X := P.X, p := 𝟙 P.X, idem := ⋯ } ⟶ { X := Q.X, p := 𝟙 Q.X, idem := ⋯ }
state_after: no goals
tactic: exact Hom.mk f.f (by simp)
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
P Q : Karoubi C
f : P ⟶ Q
⊢ f ≫ Q.decompId_i = P.decompId_i ≫ { f := f.f, comm := ⋯ }
state_after: no goals
tactic: aesop_cat
Theorem: IsDedekindDomain.HeightOneSpectrum.intValuation.le_max_iff_min_le
File: Mathlib/RingTheory/DedekindDomain/AdicValuation.lean

Proof steps:
state_before: R : Type u_1
inst✝⁴ : CommRing R
inst✝³ : IsDedekindDomain R
K : Type u_2
inst✝² : Field K
inst✝¹ : Algebra R K
inst✝ : IsFractionRing R K
v : HeightOneSpectrum R
a b c : ℕ
⊢ ofAdd (-↑c) ≤ max (ofAdd (-↑a)) (ofAdd (-↑b)) ↔ min a b ≤ c
state_after: no goals
tactic: rw [le_max_iff, ofAdd_le, ofAdd_le, neg_le_neg_iff, neg_le_neg_iff, Int.ofNat_le, Int.ofNat_le, ←
    min_le_iff]
Theorem: CategoryTheory.Functor.IsLocallyFaithful.ext
File: Mathlib/CategoryTheory/Sites/LocallyFullyFaithful.lean

Proof steps:
state_before: C : Type uC
inst✝³ : Category.{vC, uC} C
D : Type uD
inst✝² : Category.{vD, uD} D
G✝ : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type u_1
inst✝¹ : Category.{?u.9506, u_1} A
G : C ⥤ D
inst✝ : G.IsLocallyFaithful K
ℱ : SheafOfTypes K
X Y : C
i₁ i₂ : X ⟶ Y
e : G.map i₁ = G.map i₂
s t : ℱ.val.obj (op (G.obj X))
h : ∀ ⦃Z : C⦄ (j : Z ⟶ X), j ≫ i₁ = j ≫ i₂ → ℱ.val.map (G.map j).op s = ℱ.val.map (G.map j).op t
⊢ s = t
state_after: C : Type uC
inst✝³ : Category.{vC, uC} C
D : Type uD
inst✝² : Category.{vD, uD} D
G✝ : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type u_1
inst✝¹ : Category.{?u.9506, u_1} A
G : C ⥤ D
inst✝ : G.IsLocallyFaithful K
ℱ : SheafOfTypes K
X Y : C
i₁ i₂ : X ⟶ Y
e : G.map i₁ = G.map i₂
s t : ℱ.val.obj (op (G.obj X))
h : ∀ ⦃Z : C⦄ (j : Z ⟶ X), j ≫ i₁ = j ≫ i₂ → ℱ.val.map (G.map j).op s = ℱ.val.map (G.map j).op t
⊢ ∀ ⦃Y_1 : D⦄ ⦃f : Y_1 ⟶ G.obj X⦄,
    (Sieve.functorPushforward G (Sieve.equalizer i₁ i₂)).arrows f → ℱ.val.map f.op s = ℱ.val.map f.op t
tactic: apply (ℱ.cond _ (G.functorPushforward_equalizer_mem K i₁ i₂ e)).isSeparatedFor.ext
state_before: C : Type uC
inst✝³ : Category.{vC, uC} C
D : Type uD
inst✝² : Category.{vD, uD} D
G✝ : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type u_1
inst✝¹ : Category.{?u.9506, u_1} A
G : C ⥤ D
inst✝ : G.IsLocallyFaithful K
ℱ : SheafOfTypes K
X Y : C
i₁ i₂ : X ⟶ Y
e : G.map i₁ = G.map i₂
s t : ℱ.val.obj (op (G.obj X))
h : ∀ ⦃Z : C⦄ (j : Z ⟶ X), j ≫ i₁ = j ≫ i₂ → ℱ.val.map (G.map j).op s = ℱ.val.map (G.map j).op t
⊢ ∀ ⦃Y_1 : D⦄ ⦃f : Y_1 ⟶ G.obj X⦄,
    (Sieve.functorPushforward G (Sieve.equalizer i₁ i₂)).arrows f → ℱ.val.map f.op s = ℱ.val.map f.op t
state_after: case intro.intro.intro.intro
C : Type uC
inst✝³ : Category.{vC, uC} C
D : Type uD
inst✝² : Category.{vD, uD} D
G✝ : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type u_1
inst✝¹ : Category.{?u.9506, u_1} A
G : C ⥤ D
inst✝ : G.IsLocallyFaithful K
ℱ : SheafOfTypes K
X Y : C
i₁ i₂ : X ⟶ Y
e : G.map i₁ = G.map i₂
s t : ℱ.val.obj (op (G.obj X))
h : ∀ ⦃Z : C⦄ (j : Z ⟶ X), j ≫ i₁ = j ≫ i₂ → ℱ.val.map (G.map j).op s = ℱ.val.map (G.map j).op t
Z : D
W : C
iWX : W ⟶ X
iZW : Z ⟶ G.obj W
hiWX : (Sieve.equalizer i₁ i₂).arrows iWX
⊢ ℱ.val.map (iZW ≫ G.map iWX).op s = ℱ.val.map (iZW ≫ G.map iWX).op t
tactic: rintro Z _ ⟨W, iWX, iZW, hiWX, rfl⟩
state_before: case intro.intro.intro.intro
C : Type uC
inst✝³ : Category.{vC, uC} C
D : Type uD
inst✝² : Category.{vD, uD} D
G✝ : C ⥤ D
J : GrothendieckTopology C
K : GrothendieckTopology D
A : Type u_1
inst✝¹ : Category.{?u.9506, u_1} A
G : C ⥤ D
inst✝ : G.IsLocallyFaithful K
ℱ : SheafOfTypes K
X Y : C
i₁ i₂ : X ⟶ Y
e : G.map i₁ = G.map i₂
s t : ℱ.val.obj (op (G.obj X))
h : ∀ ⦃Z : C⦄ (j : Z ⟶ X), j ≫ i₁ = j ≫ i₂ → ℱ.val.map (G.map j).op s = ℱ.val.map (G.map j).op t
Z : D
W : C
iWX : W ⟶ X
iZW : Z ⟶ G.obj W
hiWX : (Sieve.equalizer i₁ i₂).arrows iWX
⊢ ℱ.val.map (iZW ≫ G.map iWX).op s = ℱ.val.map (iZW ≫ G.map iWX).op t
state_after: no goals
tactic: simp [h iWX hiWX]
Theorem: cfc_comp_const_mul
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Unital.lean

Proof steps:
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : CommSemiring R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : TopologicalSemiring R
inst✝⁶ : ContinuousStar R
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Ring A
inst✝³ : StarRing A
inst✝² : Algebra R A
inst✝¹ : ContinuousFunctionalCalculus R p
f✝ g : R → R
a✝ : A
ha✝ : autoParam (p a✝) _auto✝
hf✝ : autoParam (ContinuousOn f✝ (spectrum R a✝)) _auto✝
hg : autoParam (ContinuousOn g (spectrum R a✝)) _auto✝
inst✝ : UniqueContinuousFunctionalCalculus R A
r : R
f : R → R
a : A
hf : autoParam (ContinuousOn f ((fun x => r * x) '' spectrum R a)) _auto✝
ha : autoParam (p a) _auto✝
⊢ cfc (fun x => f (r * x)) a = cfc f (r • a)
state_after: no goals
tactic: rw [cfc_comp' .., cfc_const_mul_id ..]
Theorem: SeminormFamily.withSeminorms_of_nhds
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

Proof steps:
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
h : 𝓝 0 = AddGroupFilterBasis.toFilterBasis.filter
⊢ WithSeminorms p
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
h : 𝓝 0 = AddGroupFilterBasis.toFilterBasis.filter
⊢ 𝓝 0 = 𝓝 0
tactic: refine
    ⟨TopologicalAddGroup.ext inferInstance p.addGroupFilterBasis.isTopologicalAddGroup ?_⟩
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
h : 𝓝 0 = AddGroupFilterBasis.toFilterBasis.filter
⊢ 𝓝 0 = 𝓝 0
state_after: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
h : 𝓝 0 = AddGroupFilterBasis.toFilterBasis.filter
⊢ 𝓝 0 = AddGroupFilterBasis.toFilterBasis.filter
tactic: rw [AddGroupFilterBasis.nhds_zero_eq]
state_before: 𝕜 : Type u_1
𝕜₂ : Type u_2
𝕝 : Type u_3
𝕝₂ : Type u_4
E : Type u_5
F : Type u_6
G : Type u_7
ι : Type u_8
ι' : Type u_9
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
t : TopologicalSpace E
inst✝ : TopologicalAddGroup E
p : SeminormFamily 𝕜 E ι
h : 𝓝 0 = AddGroupFilterBasis.toFilterBasis.filter
⊢ 𝓝 0 = AddGroupFilterBasis.toFilterBasis.filter
state_after: no goals
tactic: exact h
Theorem: Bornology.IsVonNBounded.neg
File: Mathlib/Analysis/LocallyConvex/Bounded.lean

Proof steps:
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddGroup E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : DistribMulAction 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
U : Set E
hU : U ∈ 𝓝 0
⊢ Absorbs 𝕜 U (-s)
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddGroup E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : DistribMulAction 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
U : Set E
hU : U ∈ 𝓝 0
⊢ Absorbs 𝕜 (- -U) (-s)
tactic: rw [← neg_neg U]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddGroup E
inst✝² : TopologicalSpace E
inst✝¹ : TopologicalAddGroup E
inst✝ : DistribMulAction 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
U : Set E
hU : U ∈ 𝓝 0
⊢ Absorbs 𝕜 (- -U) (-s)
state_after: no goals
tactic: exact (hs <| neg_mem_nhds_zero _ hU).neg_neg
Theorem: CategoryTheory.LocalizerMorphism.IsLocalizedEquivalence.of_isLocalization_of_isLocalization
File: Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean

Proof steps:
state_before: C₁ : Type u₁
C₂ : Type u₂
C₃ : Type u₃
D₁ : Type u₄
D₂ : Type u₅
D₃ : Type u₆
inst✝⁸ : Category.{v₁, u₁} C₁
inst✝⁷ : Category.{v₂, u₂} C₂
inst✝⁶ : Category.{v₃, u₃} C₃
inst✝⁵ : Category.{v₄, u₄} D₁
inst✝⁴ : Category.{v₅, u₅} D₂
inst✝³ : Category.{v₆, u₆} D₃
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
W₃ : MorphismProperty C₃
Φ : LocalizerMorphism W₁ W₂
L₁ : C₁ ⥤ D₁
inst✝² : L₁.IsLocalization W₁
L₂ : C₂ ⥤ D₂
inst✝¹ : L₂.IsLocalization W₂
G : D₁ ⥤ D₂
inst✝ : (Φ.functor ⋙ L₂).IsLocalization W₁
⊢ Φ.IsLocalizedEquivalence
state_after: C₁ : Type u₁
C₂ : Type u₂
C₃ : Type u₃
D₁ : Type u₄
D₂ : Type u₅
D₃ : Type u₆
inst✝⁸ : Category.{v₁, u₁} C₁
inst✝⁷ : Category.{v₂, u₂} C₂
inst✝⁶ : Category.{v₃, u₃} C₃
inst✝⁵ : Category.{v₄, u₄} D₁
inst✝⁴ : Category.{v₅, u₅} D₂
inst✝³ : Category.{v₆, u₆} D₃
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
W₃ : MorphismProperty C₃
Φ : LocalizerMorphism W₁ W₂
L₁ : C₁ ⥤ D₁
inst✝² : L₁.IsLocalization W₁
L₂ : C₂ ⥤ D₂
inst✝¹ : L₂.IsLocalization W₂
G : D₁ ⥤ D₂
inst✝ : (Φ.functor ⋙ L₂).IsLocalization W₁
this : CatCommSq Φ.functor (Φ.functor ⋙ L₂) L₂ (𝟭 D₂)
⊢ Φ.IsLocalizedEquivalence
tactic: have : CatCommSq Φ.functor (Φ.functor ⋙ L₂) L₂ (𝟭 D₂) :=
    CatCommSq.mk (Functor.rightUnitor _).symm
state_before: C₁ : Type u₁
C₂ : Type u₂
C₃ : Type u₃
D₁ : Type u₄
D₂ : Type u₅
D₃ : Type u₆
inst✝⁸ : Category.{v₁, u₁} C₁
inst✝⁷ : Category.{v₂, u₂} C₂
inst✝⁶ : Category.{v₃, u₃} C₃
inst✝⁵ : Category.{v₄, u₄} D₁
inst✝⁴ : Category.{v₅, u₅} D₂
inst✝³ : Category.{v₆, u₆} D₃
W₁ : MorphismProperty C₁
W₂ : MorphismProperty C₂
W₃ : MorphismProperty C₃
Φ : LocalizerMorphism W₁ W₂
L₁ : C₁ ⥤ D₁
inst✝² : L₁.IsLocalization W₁
L₂ : C₂ ⥤ D₂
inst✝¹ : L₂.IsLocalization W₂
G : D₁ ⥤ D₂
inst✝ : (Φ.functor ⋙ L₂).IsLocalization W₁
this : CatCommSq Φ.functor (Φ.functor ⋙ L₂) L₂ (𝟭 D₂)
⊢ Φ.IsLocalizedEquivalence
state_after: no goals
tactic: exact IsLocalizedEquivalence.mk' Φ (Φ.functor ⋙ L₂) L₂ (𝟭 D₂)
Theorem: div_left_inj
File: Mathlib/Algebra/Group/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
⊢ b / a = c / a ↔ b = c
state_after: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
⊢ b * a⁻¹ = c * a⁻¹ ↔ b = c
tactic: rw [div_eq_mul_inv, div_eq_mul_inv]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n : ℤ
⊢ b * a⁻¹ = c * a⁻¹ ↔ b = c
state_after: no goals
tactic: exact mul_left_inj _
Theorem: MonoidAlgebra.single_pow
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

Proof steps:
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Monoid G
a : G
b : k
⊢ single a b ^ 0 = single (a ^ 0) (b ^ 0)
state_after: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Monoid G
a : G
b : k
⊢ 1 = single 1 1
tactic: simp only [pow_zero]
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Monoid G
a : G
b : k
⊢ 1 = single 1 1
state_after: no goals
tactic: rfl
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝¹ : Semiring k
inst✝ : Monoid G
a : G
b : k
n : ℕ
⊢ single a b ^ (n + 1) = single (a ^ (n + 1)) (b ^ (n + 1))
state_after: no goals
tactic: simp only [pow_succ, single_pow n, single_mul_single]
Theorem: _private.Mathlib.Algebra.Category.ModuleCat.Monoidal.Basic.0.ModuleCat.MonoidalCategory.pentagon_aux
File: Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean

Proof steps:
state_before: R : Type u
inst✝⁸ : CommRing R
W : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
inst✝⁷ : AddCommMonoid W
inst✝⁶ : AddCommMonoid X
inst✝⁵ : AddCommMonoid Y
inst✝⁴ : AddCommMonoid Z
inst✝³ : Module R W
inst✝² : Module R X
inst✝¹ : Module R Y
inst✝ : Module R Z
⊢ (LinearMap.lTensor W ↑(assoc R X Y Z) ∘ₗ ↑(assoc R W (X ⊗[R] Y) Z)) ∘ₗ LinearMap.rTensor Z ↑(assoc R W X Y) =
    ↑(assoc R W X (Y ⊗[R] Z)) ∘ₗ ↑(assoc R (W ⊗[R] X) Y Z)
state_after: case H
R : Type u
inst✝⁸ : CommRing R
W : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
inst✝⁷ : AddCommMonoid W
inst✝⁶ : AddCommMonoid X
inst✝⁵ : AddCommMonoid Y
inst✝⁴ : AddCommMonoid Z
inst✝³ : Module R W
inst✝² : Module R X
inst✝¹ : Module R Y
inst✝ : Module R Z
⊢ ∀ (w : W) (x : X) (y : Y) (z : Z),
    ((LinearMap.lTensor W ↑(assoc R X Y Z) ∘ₗ ↑(assoc R W (X ⊗[R] Y) Z)) ∘ₗ LinearMap.rTensor Z ↑(assoc R W X Y))
        (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z) =
      (↑(assoc R W X (Y ⊗[R] Z)) ∘ₗ ↑(assoc R (W ⊗[R] X) Y Z)) (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z)
tactic: apply TensorProduct.ext_fourfold
state_before: case H
R : Type u
inst✝⁸ : CommRing R
W : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
inst✝⁷ : AddCommMonoid W
inst✝⁶ : AddCommMonoid X
inst✝⁵ : AddCommMonoid Y
inst✝⁴ : AddCommMonoid Z
inst✝³ : Module R W
inst✝² : Module R X
inst✝¹ : Module R Y
inst✝ : Module R Z
⊢ ∀ (w : W) (x : X) (y : Y) (z : Z),
    ((LinearMap.lTensor W ↑(assoc R X Y Z) ∘ₗ ↑(assoc R W (X ⊗[R] Y) Z)) ∘ₗ LinearMap.rTensor Z ↑(assoc R W X Y))
        (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z) =
      (↑(assoc R W X (Y ⊗[R] Z)) ∘ₗ ↑(assoc R (W ⊗[R] X) Y Z)) (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z)
state_after: case H
R : Type u
inst✝⁸ : CommRing R
W : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
inst✝⁷ : AddCommMonoid W
inst✝⁶ : AddCommMonoid X
inst✝⁵ : AddCommMonoid Y
inst✝⁴ : AddCommMonoid Z
inst✝³ : Module R W
inst✝² : Module R X
inst✝¹ : Module R Y
inst✝ : Module R Z
w : W
x : X
y : Y
z : Z
⊢ ((LinearMap.lTensor W ↑(assoc R X Y Z) ∘ₗ ↑(assoc R W (X ⊗[R] Y) Z)) ∘ₗ LinearMap.rTensor Z ↑(assoc R W X Y))
      (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z) =
    (↑(assoc R W X (Y ⊗[R] Z)) ∘ₗ ↑(assoc R (W ⊗[R] X) Y Z)) (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z)
tactic: intro w x y z
state_before: case H
R : Type u
inst✝⁸ : CommRing R
W : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
inst✝⁷ : AddCommMonoid W
inst✝⁶ : AddCommMonoid X
inst✝⁵ : AddCommMonoid Y
inst✝⁴ : AddCommMonoid Z
inst✝³ : Module R W
inst✝² : Module R X
inst✝¹ : Module R Y
inst✝ : Module R Z
w : W
x : X
y : Y
z : Z
⊢ ((LinearMap.lTensor W ↑(assoc R X Y Z) ∘ₗ ↑(assoc R W (X ⊗[R] Y) Z)) ∘ₗ LinearMap.rTensor Z ↑(assoc R W X Y))
      (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z) =
    (↑(assoc R W X (Y ⊗[R] Z)) ∘ₗ ↑(assoc R (W ⊗[R] X) Y Z)) (((w ⊗ₜ[R] x) ⊗ₜ[R] y) ⊗ₜ[R] z)
state_after: no goals
tactic: rfl