ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Monotone.isCoboundedUnder_le_of_isCobounded
File: Mathlib/Order/LiminfLimsup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝² : LinearOrder R
inst✝¹ : LinearOrder S
f : R → S
f_incr : Monotone f
inst✝ : F.NeBot
cobdd : IsCobounded (fun x x_1 => x ≤ x_1) F
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) F f
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝² : LinearOrder R
inst✝¹ : LinearOrder S
f : R → S
f_incr : Monotone f
inst✝ : F.NeBot
cobdd : IsCobounded (fun x x_1 => x ≤ x_1) F
l : R
hl : ∃ᶠ (x : R) in F, l ≤ x
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) F f
tactic: obtain ⟨l, hl⟩ := IsCobounded.frequently_ge cobdd
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
R : Type u_6
S : Type u_7
F : Filter R
inst✝² : LinearOrder R
inst✝¹ : LinearOrder S
f : R → S
f_incr : Monotone f
inst✝ : F.NeBot
cobdd : IsCobounded (fun x x_1 => x ≤ x_1) F
l : R
hl : ∃ᶠ (x : R) in F, l ≤ x
⊢ IsCoboundedUnder (fun x x_1 => x ≤ x_1) F f
state_after: no goals
tactic: exact IsCobounded.of_frequently_ge <| f_incr.frequently_ge_map_of_frequently_ge hl
Theorem: IsDedekindDomain.HeightOneSpectrum.intValuation.map_mul'
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
x y : R
⊢ v.intValuationDef (x * y) = v.intValuationDef x * v.intValuationDef y
state_after: 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
x y : R
⊢ (if x * y = 0 then 0
    else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x * y})).factors)))) =
    (if x = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x})).factors)))) *
      if y = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {y})).factors)))
tactic: simp only [intValuationDef]
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
x y : R
⊢ (if x * y = 0 then 0
    else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x * y})).factors)))) =
    (if x = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x})).factors)))) *
      if y = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {y})).factors)))
state_after: case pos
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
x y : R
hx : x = 0
⊢ (if x * y = 0 then 0
    else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x * y})).factors)))) =
    (if x = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x})).factors)))) *
      if y = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {y})).factors)))

case neg
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
x y : R
hx : ¬x = 0
⊢ (if x * y = 0 then 0
    else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x * y})).factors)))) =
    (if x = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {x})).factors)))) *
      if y = 0 then 0 else ↑(ofAdd (-↑((Associates.mk v.asIdeal).count (Associates.mk (Ideal.span {y})).factors)))
tactic: by_cases hx : x = 0
Theorem: MeasurableSpace.measurable_mapNatBool
File: Mathlib/MeasureTheory/MeasurableSpace/CountablyGenerated.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : CountablyGenerated α
⊢ Measurable (mapNatBool α)
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : CountablyGenerated α
⊢ ∀ (a : ℕ), Measurable fun x => mapNatBool α x a
tactic: rw [measurable_pi_iff]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : CountablyGenerated α
⊢ ∀ (a : ℕ), Measurable fun x => mapNatBool α x a
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : CountablyGenerated α
n : ℕ
⊢ MeasurableSet ((fun x => mapNatBool α x n) ⁻¹' {true})
tactic: refine fun n ↦ measurable_to_bool ?_
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : CountablyGenerated α
n : ℕ
⊢ MeasurableSet ((fun x => mapNatBool α x n) ⁻¹' {true})
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : CountablyGenerated α
n : ℕ
⊢ MeasurableSet (natGeneratingSequence α n)
tactic: simp only [preimage, mem_singleton_iff, mapNatBool,
    Bool.decide_iff, setOf_mem_eq]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : CountablyGenerated α
n : ℕ
⊢ MeasurableSet (natGeneratingSequence α n)
state_after: no goals
tactic: apply measurableSet_natGeneratingSequence
Theorem: Filter.frequently_imp_distrib
File: Mathlib/Order/Filter/Basic.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f : Filter α
p q : α → Prop
⊢ (∃ᶠ (x : α) in f, p x → q x) ↔ (∀ᶠ (x : α) in f, p x) → ∃ᶠ (x : α) in f, q x
state_after: no goals
tactic: simp [imp_iff_not_or]
Theorem: NumberField.mixedEmbedding.nnnorm_eq_sup_normAtPlace
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean

Proof steps:
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ ‖x‖₊ = univ.sup fun w => ⟨(normAtPlace w) x, ⋯⟩
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
this : univ = image (fun w => ↑w) univ ∪ image (fun w => ↑w) univ
⊢ ‖x‖₊ = univ.sup fun w => ⟨(normAtPlace w) x, ⋯⟩
tactic: have :
      (univ : Finset (InfinitePlace K)) =
      (univ.image (fun w : {w : InfinitePlace K // IsReal w} ↦ w.1)) ∪
      (univ.image (fun w : {w : InfinitePlace K // IsComplex w} ↦ w.1)) := by
    ext; simp [isReal_or_isComplex]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
this : univ = image (fun w => ↑w) univ ∪ image (fun w => ↑w) univ
⊢ ‖x‖₊ = univ.sup fun w => ⟨(normAtPlace w) x, ⋯⟩
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
this : univ = image (fun w => ↑w) univ ∪ image (fun w => ↑w) univ
⊢ max (univ.sup fun b => ‖x.1 b‖₊) (univ.sup fun b => ‖x.2 b‖₊) =
    max (univ.sup ((fun w => ⟨(normAtPlace w) x, ⋯⟩) ∘ fun w => ↑w))
      (univ.sup ((fun w => ⟨(normAtPlace w) x, ⋯⟩) ∘ fun w => ↑w))
tactic: rw [this, sup_union, univ.sup_image, univ.sup_image, sup_eq_max,
    Prod.nnnorm_def', Pi.nnnorm_def, Pi.nnnorm_def]
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
this : univ = image (fun w => ↑w) univ ∪ image (fun w => ↑w) univ
⊢ max (univ.sup fun b => ‖x.1 b‖₊) (univ.sup fun b => ‖x.2 b‖₊) =
    max (univ.sup ((fun w => ⟨(normAtPlace w) x, ⋯⟩) ∘ fun w => ↑w))
      (univ.sup ((fun w => ⟨(normAtPlace w) x, ⋯⟩) ∘ fun w => ↑w))
state_after: case e_a.e_f
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
this : univ = image (fun w => ↑w) univ ∪ image (fun w => ↑w) univ
⊢ (fun b => ‖x.1 b‖₊) = (fun w => ⟨(normAtPlace w) x, ⋯⟩) ∘ fun w => ↑w

case e_a.e_f
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
this : univ = image (fun w => ↑w) univ ∪ image (fun w => ↑w) univ
⊢ (fun b => ‖x.2 b‖₊) = (fun w => ⟨(normAtPlace w) x, ⋯⟩) ∘ fun w => ↑w
tactic: congr
Theorem: specializingMap_iff_isClosed_image_closure_singleton
File: Mathlib/Topology/Inseparable.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
hf : Continuous f
⊢ SpecializingMap f ↔ ∀ (x : X), IsClosed (f '' closure {x})
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y z : X
s : Set X
f g : X → Y
hf : Continuous f
h : SpecializingMap f
x : X
⊢ IsClosed (f '' closure {x})
tactic: refine ⟨fun h x ↦ ?_, fun h ↦ specializingMap_iff_stableUnderSpecialization_image_singleton.mpr
    (fun x ↦ (h x).stableUnderSpecialization)⟩
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y z : X
s : Set X
f g : X → Y
hf : Continuous f
h : SpecializingMap f
x : X
⊢ IsClosed (f '' closure {x})
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y z : X
s : Set X
f g : X → Y
hf : Continuous f
h : SpecializingMap f
x : X
⊢ IsClosed (closure {f x})
tactic: rw [(specializingMap_iff_closure_singleton hf).mp h x]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x✝ y z : X
s : Set X
f g : X → Y
hf : Continuous f
h : SpecializingMap f
x : X
⊢ IsClosed (closure {f x})
state_after: no goals
tactic: exact isClosed_closure
Theorem: LinearOrder.ext
File: Mathlib/Order/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
A B : LinearOrder α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
⊢ A = B
state_after: case a.a.a.le.h.h.a
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
A B : LinearOrder α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
x y : α
⊢ x ≤ y ↔ x ≤ y
tactic: ext x y
state_before: case a.a.a.le.h.h.a
ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
A B : LinearOrder α
H : ∀ (x y : α), x ≤ y ↔ x ≤ y
x y : α
⊢ x ≤ y ↔ x ≤ y
state_after: no goals
tactic: exact H x y
Theorem: SimpleGraph.TripartiteFromTriangles.cliqueFinset_eq_image
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝⁷ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
inst✝⁶ : DecidableEq α
inst✝⁵ : DecidableEq β
inst✝⁴ : DecidableEq γ
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : Fintype γ
inst✝ : NoAccidental t
⊢ ↑((graph t).cliqueFinset 3) = ↑(image (⇑toTriangle) t)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝⁷ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
inst✝⁶ : DecidableEq α
inst✝⁵ : DecidableEq β
inst✝⁴ : DecidableEq γ
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : Fintype γ
inst✝ : NoAccidental t
⊢ (graph t).cliqueSet 3 = ⇑toTriangle '' ↑t
tactic: push_cast
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
𝕜 : Type u_4
inst✝⁷ : LinearOrderedField 𝕜
t : Finset (α × β × γ)
a a' : α
b b' : β
c c' : γ
x : α × β × γ
ε : 𝕜
inst✝⁶ : DecidableEq α
inst✝⁵ : DecidableEq β
inst✝⁴ : DecidableEq γ
inst✝³ : Fintype α
inst✝² : Fintype β
inst✝¹ : Fintype γ
inst✝ : NoAccidental t
⊢ (graph t).cliqueSet 3 = ⇑toTriangle '' ↑t
state_after: no goals
tactic: exact cliqueSet_eq_image _
Theorem: QuadraticMap.PosDef.anisotropic
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

Proof steps:
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
R₂ : Type u
inst✝⁶ : CommSemiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R₂ M
inst✝³ : PartialOrder N
inst✝² : AddCommMonoid N
inst✝¹ : Module R₂ N
inst✝ : CovariantClass N N (fun x x_1 => x + x_1) fun x x_1 => x < x_1
Q₂ : QuadraticMap R₂ M N
n : Type u_8
Q : QuadraticMap R₂ M N
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
⊢ 0 < 0
state_after: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
R₂ : Type u
inst✝⁶ : CommSemiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R₂ M
inst✝³ : PartialOrder N
inst✝² : AddCommMonoid N
inst✝¹ : Module R₂ N
inst✝ : CovariantClass N N (fun x x_1 => x + x_1) fun x x_1 => x < x_1
Q₂ : QuadraticMap R₂ M N
n : Type u_8
Q : QuadraticMap R₂ M N
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < Q x
⊢ 0 < 0
tactic: have := hQ _ hx
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
R₂ : Type u
inst✝⁶ : CommSemiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R₂ M
inst✝³ : PartialOrder N
inst✝² : AddCommMonoid N
inst✝¹ : Module R₂ N
inst✝ : CovariantClass N N (fun x x_1 => x + x_1) fun x x_1 => x < x_1
Q₂ : QuadraticMap R₂ M N
n : Type u_8
Q : QuadraticMap R₂ M N
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < Q x
⊢ 0 < 0
state_after: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
R₂ : Type u
inst✝⁶ : CommSemiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R₂ M
inst✝³ : PartialOrder N
inst✝² : AddCommMonoid N
inst✝¹ : Module R₂ N
inst✝ : CovariantClass N N (fun x x_1 => x + x_1) fun x x_1 => x < x_1
Q₂ : QuadraticMap R₂ M N
n : Type u_8
Q : QuadraticMap R₂ M N
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < 0
⊢ 0 < 0
tactic: rw [hQx] at this
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
A : Type u_7
R₂ : Type u
inst✝⁶ : CommSemiring R₂
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R₂ M
inst✝³ : PartialOrder N
inst✝² : AddCommMonoid N
inst✝¹ : Module R₂ N
inst✝ : CovariantClass N N (fun x x_1 => x + x_1) fun x x_1 => x < x_1
Q₂ : QuadraticMap R₂ M N
n : Type u_8
Q : QuadraticMap R₂ M N
hQ : Q.PosDef
x : M
hQx : Q x = 0
hx : ¬x = 0
this : 0 < 0
⊢ 0 < 0
state_after: no goals
tactic: exact this
Theorem: CategoryTheory.GlueData.mapGlueData_J
File: Mathlib/CategoryTheory/GlueData.lean

Proof steps:
state_before: C : Type u₁
inst✝¹ : Category.{v, u₁} C
C' : Type u₂
inst✝ : Category.{v, u₂} C'
D : GlueData C
F : C ⥤ C'
H : (i j k : D.J) → PreservesLimit (cospan (D.f i j) (D.f i k)) F
i : D.J
⊢ (fun i j => F.map (D.t i j)) i i = 𝟙 ((fun i => F.obj (D.V i)) (i, i))
state_after: no goals
tactic: simp [D.t_id i]
state_before: C : Type u₁
inst✝¹ : Category.{v, u₁} C
C' : Type u₂
inst✝ : Category.{v, u₂} C'
D : GlueData C
F : C ⥤ C'
H : (i j k : D.J) → PreservesLimit (cospan (D.f i j) (D.f i k)) F
i j k : D.J
⊢ (fun i j k =>
          (PreservesPullback.iso F (D.f i j) (D.f i k)).inv ≫
            F.map (D.t' i j k) ≫ (PreservesPullback.iso F (D.f j k) (D.f j i)).hom)
        i j k ≫
      pullback.snd ((fun i j => F.map (D.f i j)) j k) ((fun i j => F.map (D.f i j)) j i) =
    pullback.fst ((fun i j => F.map (D.f i j)) i j) ((fun i j => F.map (D.f i j)) i k) ≫
      (fun i j => F.map (D.t i j)) i j
state_after: no goals
tactic: simpa [Iso.inv_comp_eq] using congr_arg (fun f => F.map f) (D.t_fac i j k)
state_before: C : Type u₁
inst✝¹ : Category.{v, u₁} C
C' : Type u₂
inst✝ : Category.{v, u₂} C'
D : GlueData C
F : C ⥤ C'
H : (i j k : D.J) → PreservesLimit (cospan (D.f i j) (D.f i k)) F
i j k : D.J
⊢ (fun i j k =>
          (PreservesPullback.iso F (D.f i j) (D.f i k)).inv ≫
            F.map (D.t' i j k) ≫ (PreservesPullback.iso F (D.f j k) (D.f j i)).hom)
        i j k ≫
      (fun i j k =>
            (PreservesPullback.iso F (D.f i j) (D.f i k)).inv ≫
              F.map (D.t' i j k) ≫ (PreservesPullback.iso F (D.f j k) (D.f j i)).hom)
          j k i ≫
        (fun i j k =>
            (PreservesPullback.iso F (D.f i j) (D.f i k)).inv ≫
              F.map (D.t' i j k) ≫ (PreservesPullback.iso F (D.f j k) (D.f j i)).hom)
          k i j =
    𝟙 (pullback ((fun i j => F.map (D.f i j)) i j) ((fun i j => F.map (D.f i j)) i k))
state_after: no goals
tactic: simp only [Category.assoc, Iso.hom_inv_id_assoc, ← Functor.map_comp_assoc, D.cocycle,
      Iso.inv_hom_id, CategoryTheory.Functor.map_id, Category.id_comp]
Theorem: Finset.prod_of_isEmpty
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

Proof steps:
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f g : α → β
inst✝¹ : CommMonoid β
inst✝ : IsEmpty α
s : Finset α
⊢ ∏ i ∈ s, f i = 1
state_after: no goals
tactic: rw [eq_empty_of_isEmpty s, prod_empty]
Theorem: ContinuousLinearEquiv.comp_hasFDerivWithinAt_iff'
File: Mathlib/Analysis/Calculus/FDeriv/Equiv.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f✝ f₀ f₁ g : E → F
f'✝ f₀' f₁' g' e : E →L[𝕜] F
x✝ : E
s✝ t : Set E
L L₁ L₂ : Filter E
iso : E ≃L[𝕜] F
f : G → E
s : Set G
x : G
f' : G →L[𝕜] F
⊢ HasFDerivWithinAt (⇑iso ∘ f) f' s x ↔ HasFDerivWithinAt f ((↑iso.symm).comp f') s x
state_after: no goals
tactic: rw [← iso.comp_hasFDerivWithinAt_iff, ← ContinuousLinearMap.comp_assoc, iso.coe_comp_coe_symm,
    ContinuousLinearMap.id_comp]
Theorem: wbtw_or_wbtw_smul_vadd_of_nonneg
File: Mathlib/Analysis/Convex/Between.lean

Proof steps:
state_before: R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x : P
v : V
r₁ r₂ : R
hr₁ : 0 ≤ r₁
hr₂ : 0 ≤ r₂
⊢ Wbtw R x (r₁ • v +ᵥ x) (r₂ • v +ᵥ x) ∨ Wbtw R x (r₂ • v +ᵥ x) (r₁ • v +ᵥ x)
state_after: case inl
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x : P
v : V
r₁ r₂ : R
hr₁ : 0 ≤ r₁
hr₂ : 0 ≤ r₂
h : r₁ ≤ r₂
⊢ Wbtw R x (r₁ • v +ᵥ x) (r₂ • v +ᵥ x) ∨ Wbtw R x (r₂ • v +ᵥ x) (r₁ • v +ᵥ x)

case inr
R : Type u_1
V : Type u_2
V' : Type u_3
P : Type u_4
P' : Type u_5
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x : P
v : V
r₁ r₂ : R
hr₁ : 0 ≤ r₁
hr₂ : 0 ≤ r₂
h : r₂ ≤ r₁
⊢ Wbtw R x (r₁ • v +ᵥ x) (r₂ • v +ᵥ x) ∨ Wbtw R x (r₂ • v +ᵥ x) (r₁ • v +ᵥ x)
tactic: rcases le_total r₁ r₂ with (h | h)
Theorem: MeasureTheory.eLpNorm'_le_eLpNorm'_of_exponent_le
File: Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ✝ : Measure α
f : α → E
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
μ : Measure α
inst✝ : IsProbabilityMeasure μ
hf : AEStronglyMeasurable f μ
⊢ eLpNorm' f p μ ≤ eLpNorm' f q μ
state_after: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ✝ : Measure α
f : α → E
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
μ : Measure α
inst✝ : IsProbabilityMeasure μ
hf : AEStronglyMeasurable f μ
h_le_μ : eLpNorm' f p μ ≤ eLpNorm' f q μ * μ Set.univ ^ (1 / p - 1 / q)
⊢ eLpNorm' f p μ ≤ eLpNorm' f q μ
tactic: have h_le_μ := eLpNorm'_le_eLpNorm'_mul_rpow_measure_univ hp0_lt hpq hf
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ✝ : Measure α
f : α → E
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
μ : Measure α
inst✝ : IsProbabilityMeasure μ
hf : AEStronglyMeasurable f μ
h_le_μ : eLpNorm' f p μ ≤ eLpNorm' f q μ * μ Set.univ ^ (1 / p - 1 / q)
⊢ eLpNorm' f p μ ≤ eLpNorm' f q μ
state_after: no goals
tactic: rwa [measure_univ, ENNReal.one_rpow, mul_one] at h_le_μ
Theorem: TopologicalGroup.ext
File: Mathlib/Topology/Algebra/Group/Basic.lean

Proof steps:
state_before: G✝ : Type w
H : Type x
α : Type u
β : Type v
inst✝⁴ : TopologicalSpace G✝
inst✝³ : Group G✝
inst✝² : TopologicalGroup G✝
inst✝¹ : TopologicalSpace α
f : α → G✝
s : Set α
x✝ : α
G : Type u_1
inst✝ : Group G
t t' : TopologicalSpace G
tg : TopologicalGroup G
tg' : TopologicalGroup G
h : 𝓝 1 = 𝓝 1
x : G
⊢ 𝓝 x = 𝓝 x
state_after: no goals
tactic: rw [← @nhds_translation_mul_inv G t _ _ x, ← @nhds_translation_mul_inv G t' _ _ x, ← h]
Theorem: MeasureTheory.withDensity_zero
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

Proof steps:
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
⊢ μ.withDensity 0 = 0
state_after: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
s : Set α
hs : MeasurableSet s
⊢ (μ.withDensity 0) s = 0 s
tactic: ext1 s hs
state_before: case h
α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
s : Set α
hs : MeasurableSet s
⊢ (μ.withDensity 0) s = 0 s
state_after: no goals
tactic: simp [withDensity_apply _ hs]
Theorem: Associates.count_mul
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

Proof steps:
state_before: α : Type u_1
inst✝⁴ : CancelCommMonoidWithZero α
inst✝³ : UniqueFactorizationMonoid α
inst✝² : DecidableEq (Associates α)
inst✝¹ : (p : Associates α) → Decidable (Irreducible p)
inst✝ : DecidableEq (Associates α)
a : Associates α
ha : a ≠ 0
b : Associates α
hb : b ≠ 0
p : Associates α
hp : Irreducible p
⊢ p.count (a * b).factors = p.count a.factors + p.count b.factors
state_after: case intro.intro
α : Type u_1
inst✝⁴ : CancelCommMonoidWithZero α
inst✝³ : UniqueFactorizationMonoid α
inst✝² : DecidableEq (Associates α)
inst✝¹ : (p : Associates α) → Decidable (Irreducible p)
inst✝ : DecidableEq (Associates α)
b : Associates α
hb : b ≠ 0
p : Associates α
hp : Irreducible p
a0 : α
nza : a0 ≠ 0
ha : Associates.mk a0 ≠ 0
⊢ p.count (Associates.mk a0 * b).factors = p.count (Associates.mk a0).factors + p.count b.factors
tactic: obtain ⟨a0, nza, rfl⟩ := exists_non_zero_rep ha
state_before: case intro.intro
α : Type u_1
inst✝⁴ : CancelCommMonoidWithZero α
inst✝³ : UniqueFactorizationMonoid α
inst✝² : DecidableEq (Associates α)
inst✝¹ : (p : Associates α) → Decidable (Irreducible p)
inst✝ : DecidableEq (Associates α)
b : Associates α
hb : b ≠ 0
p : Associates α
hp : Irreducible p
a0 : α
nza : a0 ≠ 0
ha : Associates.mk a0 ≠ 0
⊢ p.count (Associates.mk a0 * b).factors = p.count (Associates.mk a0).factors + p.count b.factors
state_after: case intro.intro.intro.intro
α : Type u_1
inst✝⁴ : CancelCommMonoidWithZero α
inst✝³ : UniqueFactorizationMonoid α
inst✝² : DecidableEq (Associates α)
inst✝¹ : (p : Associates α) → Decidable (Irreducible p)
inst✝ : DecidableEq (Associates α)
p : Associates α
hp : Irreducible p
a0 : α
nza : a0 ≠ 0
ha : Associates.mk a0 ≠ 0
b0 : α
nzb : b0 ≠ 0
hb : Associates.mk b0 ≠ 0
⊢ p.count (Associates.mk a0 * Associates.mk b0).factors =
    p.count (Associates.mk a0).factors + p.count (Associates.mk b0).factors
tactic: obtain ⟨b0, nzb, rfl⟩ := exists_non_zero_rep hb
state_before: case intro.intro.intro.intro
α : Type u_1
inst✝⁴ : CancelCommMonoidWithZero α
inst✝³ : UniqueFactorizationMonoid α
inst✝² : DecidableEq (Associates α)
inst✝¹ : (p : Associates α) → Decidable (Irreducible p)
inst✝ : DecidableEq (Associates α)
p : Associates α
hp : Irreducible p
a0 : α
nza : a0 ≠ 0
ha : Associates.mk a0 ≠ 0
b0 : α
nzb : b0 ≠ 0
hb : Associates.mk b0 ≠ 0
⊢ p.count (Associates.mk a0 * Associates.mk b0).factors =
    p.count (Associates.mk a0).factors + p.count (Associates.mk b0).factors
state_after: no goals
tactic: rw [factors_mul, factors_mk a0 nza, factors_mk b0 nzb, ← FactorSet.coe_add, count_some hp,
    Multiset.count_add, count_some hp, count_some hp]
Theorem: Cardinal.lift_lt_aleph0
File: Mathlib/SetTheory/Cardinal/Basic.lean

Proof steps:
state_before: α β : Type u
c : Cardinal.{u}
⊢ lift.{v, u} c < ℵ₀ ↔ c < ℵ₀
state_after: no goals
tactic: rw [← lift_aleph0.{v, u}, lift_lt]