ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: LinearMap.IsSymmetric.coe_reApplyInnerSelf_apply
File: Mathlib/Analysis/InnerProductSpace/Symmetric.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →L[𝕜] E
hT : (↑T).IsSymmetric
x : E
⊢ ↑(T.reApplyInnerSelf x) = ⟪T x, x⟫_𝕜
state_after: case intro
𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →L[𝕜] E
hT : (↑T).IsSymmetric
x : E
r : ℝ
hr : ⟪T x, x⟫_𝕜 = ↑r
⊢ ↑(T.reApplyInnerSelf x) = ⟪T x, x⟫_𝕜

𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →L[𝕜] E
hT : (↑T).IsSymmetric
x : E
⊢ ∃ r, ⟪T x, x⟫_𝕜 = ↑r
tactic: rsuffices ⟨r, hr⟩ : ∃ r : ℝ, ⟪T x, x⟫ = r
state_before: 𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →L[𝕜] E
hT : (↑T).IsSymmetric
x : E
⊢ ∃ r, ⟪T x, x⟫_𝕜 = ↑r
state_after: 𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →L[𝕜] E
hT : (↑T).IsSymmetric
x : E
⊢ (starRingEnd 𝕜) ⟪T x, x⟫_𝕜 = ⟪T x, x⟫_𝕜
tactic: rw [← conj_eq_iff_real]
state_before: 𝕜 : Type u_1
E : Type u_2
E' : Type u_3
F : Type u_4
G : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : InnerProductSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : InnerProductSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : InnerProductSpace 𝕜 G
inst✝¹ : NormedAddCommGroup E'
inst✝ : InnerProductSpace ℝ E'
T : E →L[𝕜] E
hT : (↑T).IsSymmetric
x : E
⊢ (starRingEnd 𝕜) ⟪T x, x⟫_𝕜 = ⟪T x, x⟫_𝕜
state_after: no goals
tactic: exact hT.conj_inner_sym x x
Theorem: harmonic_floor_le_one_add_log
File: Mathlib/NumberTheory/Harmonic/Bounds.lean

Proof steps:
state_before: y : ℝ
hy : 1 ≤ y
⊢ ↑(harmonic ⌊y⌋₊) ≤ 1 + Real.log y
state_after: y : ℝ
hy : 1 ≤ y
⊢ 1 + Real.log ↑⌊y⌋₊ ≤ 1 + Real.log y
tactic: refine (harmonic_le_one_add_log _).trans ?_
state_before: y : ℝ
hy : 1 ≤ y
⊢ 1 + Real.log ↑⌊y⌋₊ ≤ 1 + Real.log y
state_after: case bc.hx
y : ℝ
hy : 1 ≤ y
⊢ 0 < ↑⌊y⌋₊

case bc.hxy
y : ℝ
hy : 1 ≤ y
⊢ ↑⌊y⌋₊ ≤ y
tactic: gcongr
Theorem: Nat.modEq_and_modEq_iff_modEq_mul
File: Mathlib/Data/Nat/ModEq.lean

Proof steps:
state_before: m✝ n✝ a✝ b✝ c d a b m n : ℕ
hmn : m.Coprime n
h : a ≡ b [MOD m] ∧ a ≡ b [MOD n]
⊢ a ≡ b [MOD m * n]
state_after: m✝ n✝ a✝ b✝ c d a b m n : ℕ
hmn : m.Coprime n
h : m ∣ (↑b - ↑a).natAbs ∧ n ∣ (↑b - ↑a).natAbs
⊢ a ≡ b [MOD m * n]
tactic: rw [Nat.modEq_iff_dvd, Nat.modEq_iff_dvd, ← Int.dvd_natAbs, Int.natCast_dvd_natCast,
      ← Int.dvd_natAbs, Int.natCast_dvd_natCast] at h
state_before: m✝ n✝ a✝ b✝ c d a b m n : ℕ
hmn : m.Coprime n
h : m ∣ (↑b - ↑a).natAbs ∧ n ∣ (↑b - ↑a).natAbs
⊢ a ≡ b [MOD m * n]
state_after: m✝ n✝ a✝ b✝ c d a b m n : ℕ
hmn : m.Coprime n
h : m ∣ (↑b - ↑a).natAbs ∧ n ∣ (↑b - ↑a).natAbs
⊢ m * n ∣ (↑b - ↑a).natAbs
tactic: rw [Nat.modEq_iff_dvd, ← Int.dvd_natAbs, Int.natCast_dvd_natCast]
state_before: m✝ n✝ a✝ b✝ c d a b m n : ℕ
hmn : m.Coprime n
h : m ∣ (↑b - ↑a).natAbs ∧ n ∣ (↑b - ↑a).natAbs
⊢ m * n ∣ (↑b - ↑a).natAbs
state_after: no goals
tactic: exact hmn.mul_dvd_of_dvd_of_dvd h.1 h.2
Theorem: inv_pow_le_inv_pow_of_le
File: Mathlib/Algebra/Order/Field/Basic.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m✝ n✝ : ℤ
a1 : 1 ≤ a
m n : ℕ
mn : m ≤ n
⊢ (a ^ n)⁻¹ ≤ (a ^ m)⁻¹
state_after: no goals
tactic: convert one_div_pow_le_one_div_pow_of_le a1 mn using 1 <;> simp
Theorem: Prod.snd_zmod_cast
File: Mathlib/Data/ZMod/Basic.lean

Proof steps:
state_before: n : ℕ
R : Type u_1
inst✝¹ : AddGroupWithOne R
S : Type u_2
inst✝ : AddGroupWithOne S
a : ZMod n
⊢ a.cast.2 = a.cast
state_after: case zero
R : Type u_1
inst✝¹ : AddGroupWithOne R
S : Type u_2
inst✝ : AddGroupWithOne S
a : ZMod 0
⊢ a.cast.2 = a.cast

case succ
R : Type u_1
inst✝¹ : AddGroupWithOne R
S : Type u_2
inst✝ : AddGroupWithOne S
n✝ : ℕ
a : ZMod (n✝ + 1)
⊢ a.cast.2 = a.cast
tactic: cases n
Theorem: derivWithin_of_mem_nhds
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

Proof steps:
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 L₁ L₂ : Filter 𝕜
h : s ∈ 𝓝 x
⊢ derivWithin f s x = deriv f x
state_after: no goals
tactic: simp only [derivWithin, deriv, fderivWithin_of_mem_nhds h]
Theorem: CategoryTheory.GrothendieckTopology.CoversTop.ext
File: Mathlib/CategoryTheory/Sites/CoversTop.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
I : Type u_1
Y : I → C
hY : J.CoversTop Y
F : Sheaf J A
c : Cone F.val
hc : IsLimit c
X : A
f g : X ⟶ c.pt
h : ∀ (i : I), f ≫ c.π.app (Opposite.op (Y i)) = g ≫ c.π.app (Opposite.op (Y i))
⊢ f = g
state_after: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
I : Type u_1
Y : I → C
hY : J.CoversTop Y
F : Sheaf J A
c : Cone F.val
hc : IsLimit c
X : A
f g : X ⟶ c.pt
h : ∀ (i : I), f ≫ c.π.app (Opposite.op (Y i)) = g ≫ c.π.app (Opposite.op (Y i))
Z : Cᵒᵖ
⊢ ∀ (I_1 : (hY.cover (Opposite.unop Z)).Arrow),
    (f ≫ c.π.app Z) ≫ F.val.map I_1.f.op = (g ≫ c.π.app Z) ≫ F.val.map I_1.f.op
tactic: refine hc.hom_ext (fun Z => F.2.hom_ext (hY.cover Z.unop) _ _ ?_)
state_before: C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
I : Type u_1
Y : I → C
hY : J.CoversTop Y
F : Sheaf J A
c : Cone F.val
hc : IsLimit c
X : A
f g : X ⟶ c.pt
h : ∀ (i : I), f ≫ c.π.app (Opposite.op (Y i)) = g ≫ c.π.app (Opposite.op (Y i))
Z : Cᵒᵖ
⊢ ∀ (I_1 : (hY.cover (Opposite.unop Z)).Arrow),
    (f ≫ c.π.app Z) ≫ F.val.map I_1.f.op = (g ≫ c.π.app Z) ≫ F.val.map I_1.f.op
state_after: case mk.intro.intro
C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
I : Type u_1
Y : I → C
hY : J.CoversTop Y
F : Sheaf J A
c : Cone F.val
hc : IsLimit c
X : A
f g : X ⟶ c.pt
h : ∀ (i : I), f ≫ c.π.app (Opposite.op (Y i)) = g ≫ c.π.app (Opposite.op (Y i))
Z : Cᵒᵖ
W : C
a : W ⟶ Opposite.unop Z
i : I
b : W ⟶ Y i
⊢ (f ≫ c.π.app Z) ≫ F.val.map { Y := W, f := a, hf := ⋯ }.f.op =
    (g ≫ c.π.app Z) ≫ F.val.map { Y := W, f := a, hf := ⋯ }.f.op
tactic: rintro ⟨W, a, ⟨i, ⟨b⟩⟩⟩
state_before: case mk.intro.intro
C : Type u
inst✝¹ : Category.{v, u} C
J : GrothendieckTopology C
A : Type u'
inst✝ : Category.{v', u'} A
I : Type u_1
Y : I → C
hY : J.CoversTop Y
F : Sheaf J A
c : Cone F.val
hc : IsLimit c
X : A
f g : X ⟶ c.pt
h : ∀ (i : I), f ≫ c.π.app (Opposite.op (Y i)) = g ≫ c.π.app (Opposite.op (Y i))
Z : Cᵒᵖ
W : C
a : W ⟶ Opposite.unop Z
i : I
b : W ⟶ Y i
⊢ (f ≫ c.π.app Z) ≫ F.val.map { Y := W, f := a, hf := ⋯ }.f.op =
    (g ≫ c.π.app Z) ≫ F.val.map { Y := W, f := a, hf := ⋯ }.f.op
state_after: no goals
tactic: simpa using h i =≫ F.1.map b.op
Theorem: Module.End.IsSemisimple.maxGenEigenspace_eq_eigenspace
File: Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
f g : End R M
hf : f.IsSemisimple
μ : R
⊢ f.maxGenEigenspace μ = f.eigenspace μ
state_after: no goals
tactic: simp_rw [maxGenEigenspace, ← (f.genEigenspace μ).monotone.iSup_nat_add 1,
    hf.genEigenspace_eq_eigenspace μ (Nat.zero_lt_succ _), ciSup_const]
Theorem: SmoothPartitionOfUnity.exists_isSubordinate_chartAt_source_of_isClosed
File: Mathlib/Geometry/Manifold/PartitionOfUnity.lean

Proof steps:
state_before: ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : T2Space M
inst✝ : SigmaCompactSpace M
s : Set M
hs : IsClosed s
⊢ ∃ f, f.IsSubordinate fun x => (chartAt H ↑x).source
state_after: ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : T2Space M
inst✝ : SigmaCompactSpace M
s : Set M
hs : IsClosed s
x : M
hx : x ∈ s
⊢ x ∈ ⋃ i, (chartAt H ↑i).source
tactic: apply exists_isSubordinate _ hs _ (fun i ↦ (chartAt H _).open_source) (fun x hx ↦ ?_)
state_before: ι : Type uι
E : Type uE
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : FiniteDimensional ℝ E
F : Type uF
inst✝⁷ : NormedAddCommGroup F
inst✝⁶ : NormedSpace ℝ F
H : Type uH
inst✝⁵ : TopologicalSpace H
I : ModelWithCorners ℝ E H
M : Type uM
inst✝⁴ : TopologicalSpace M
inst✝³ : ChartedSpace H M
inst✝² : SmoothManifoldWithCorners I M
inst✝¹ : T2Space M
inst✝ : SigmaCompactSpace M
s : Set M
hs : IsClosed s
x : M
hx : x ∈ s
⊢ x ∈ ⋃ i, (chartAt H ↑i).source
state_after: no goals
tactic: exact mem_iUnion_of_mem ⟨x, hx⟩ (mem_chart_source H x)
Theorem: Filter.limsup_sup_filter
File: Mathlib/Order/LiminfLimsup.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
g : Filter β
⊢ limsup u (f ⊔ g) = limsup u f ⊔ limsup u g
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
g : Filter β
⊢ limsup u (f ⊔ g) ≤ limsup u f ⊔ limsup u g
tactic: refine le_antisymm ?_
    (sup_le (limsup_le_limsup_of_le le_sup_left) (limsup_le_limsup_of_le le_sup_right))
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
g : Filter β
⊢ limsup u (f ⊔ g) ≤ limsup u f ⊔ limsup u g
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
g : Filter β
⊢ ∀ (i : α),
    (∀ᶠ (n : β) in f, u n ≤ i) →
      ∀ (i_1 : α), (∀ᶠ (n : β) in g, u n ≤ i_1) → sInf {a | ∀ᶠ (n : β) in f ⊔ g, u n ≤ a} ≤ i ⊔ i_1
tactic: simp_rw [limsup_eq, sInf_sup_eq, sup_sInf_eq, mem_setOf_eq, le_iInf₂_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
g : Filter β
⊢ ∀ (i : α),
    (∀ᶠ (n : β) in f, u n ≤ i) →
      ∀ (i_1 : α), (∀ᶠ (n : β) in g, u n ≤ i_1) → sInf {a | ∀ᶠ (n : β) in f ⊔ g, u n ≤ a} ≤ i ⊔ i_1
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
g : Filter β
a : α
ha : ∀ᶠ (n : β) in f, u n ≤ a
b : α
hb : ∀ᶠ (n : β) in g, u n ≤ b
⊢ sInf {a | ∀ᶠ (n : β) in f ⊔ g, u n ≤ a} ≤ a ⊔ b
tactic: intro a ha b hb
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
ι' : Type u_5
inst✝ : CompleteDistribLattice α
f : Filter β
p q : β → Prop
u : β → α
g : Filter β
a : α
ha : ∀ᶠ (n : β) in f, u n ≤ a
b : α
hb : ∀ᶠ (n : β) in g, u n ≤ b
⊢ sInf {a | ∀ᶠ (n : β) in f ⊔ g, u n ≤ a} ≤ a ⊔ b
state_after: no goals
tactic: exact sInf_le ⟨ha.mono fun _ h ↦ h.trans le_sup_left, hb.mono fun _ h ↦ h.trans le_sup_right⟩
Theorem: LowerSet.disjoint_coe
File: Mathlib/Order/UpperLower/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝ : LE α
S : Set (LowerSet α)
s t : LowerSet α
a : α
⊢ Disjoint ↑s ↑t ↔ Disjoint s t
state_after: no goals
tactic: simp [disjoint_iff, SetLike.ext'_iff]
Theorem: Order.Ico_succ_right_of_not_isMax
File: Mathlib/Order/SuccPred/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : SuccOrder α
a b : α
hb : ¬IsMax b
⊢ Ico a (succ b) = Icc a b
state_after: no goals
tactic: rw [← Ici_inter_Iio, Iio_succ_of_not_isMax hb, Ici_inter_Iic]
Theorem: floorDiv_le_ceilDiv
File: Mathlib/Algebra/Order/Floor/Div.lean

Proof steps:
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝⁵ : LinearOrderedAddCommMonoid α
inst✝⁴ : OrderedAddCommMonoid β
inst✝³ : SMulZeroClass α β
inst✝² : PosSMulReflectLE α β
inst✝¹ : FloorDiv α β
inst✝ : CeilDiv α β
a : α
b c : β
⊢ b ⌊/⌋ a ≤ b ⌈/⌉ a
state_after: case inl
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝⁵ : LinearOrderedAddCommMonoid α
inst✝⁴ : OrderedAddCommMonoid β
inst✝³ : SMulZeroClass α β
inst✝² : PosSMulReflectLE α β
inst✝¹ : FloorDiv α β
inst✝ : CeilDiv α β
a : α
b c : β
ha : a ≤ 0
⊢ b ⌊/⌋ a ≤ b ⌈/⌉ a

case inr
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝⁵ : LinearOrderedAddCommMonoid α
inst✝⁴ : OrderedAddCommMonoid β
inst✝³ : SMulZeroClass α β
inst✝² : PosSMulReflectLE α β
inst✝¹ : FloorDiv α β
inst✝ : CeilDiv α β
a : α
b c : β
ha : 0 < a
⊢ b ⌊/⌋ a ≤ b ⌈/⌉ a
tactic: obtain ha | ha := le_or_lt a 0
Theorem: MeasureTheory.exists_mem_forall_mem_nhdsWithin_pos_measure
File: Mathlib/MeasureTheory/OuterMeasure/Basic.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝³ : FunLike F (Set α) ℝ≥0∞
inst✝² : OuterMeasureClass F α
μ : F
s✝ t : Set α
inst✝¹ : TopologicalSpace α
inst✝ : SecondCountableTopology α
s : Set α
hs : μ s ≠ 0
⊢ ∃ x ∈ s, ∀ t ∈ 𝓝[s] x, 0 < μ t
state_after: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝³ : FunLike F (Set α) ℝ≥0∞
inst✝² : OuterMeasureClass F α
μ : F
s✝ t : Set α
inst✝¹ : TopologicalSpace α
inst✝ : SecondCountableTopology α
s : Set α
hs : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, μ t ≤ 0
⊢ μ s = 0
tactic: contrapose! hs
state_before: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝³ : FunLike F (Set α) ℝ≥0∞
inst✝² : OuterMeasureClass F α
μ : F
s✝ t : Set α
inst✝¹ : TopologicalSpace α
inst✝ : SecondCountableTopology α
s : Set α
hs : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, μ t ≤ 0
⊢ μ s = 0
state_after: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝³ : FunLike F (Set α) ℝ≥0∞
inst✝² : OuterMeasureClass F α
μ : F
s✝ t : Set α
inst✝¹ : TopologicalSpace α
inst✝ : SecondCountableTopology α
s : Set α
hs : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, μ t = 0
⊢ μ s = 0
tactic: simp only [nonpos_iff_eq_zero] at hs
state_before: α : Type u_1
ι : Type u_2
F : Type u_3
inst✝³ : FunLike F (Set α) ℝ≥0∞
inst✝² : OuterMeasureClass F α
μ : F
s✝ t : Set α
inst✝¹ : TopologicalSpace α
inst✝ : SecondCountableTopology α
s : Set α
hs : ∀ x ∈ s, ∃ t ∈ 𝓝[s] x, μ t = 0
⊢ μ s = 0
state_after: no goals
tactic: exact measure_null_of_locally_null s hs
Theorem: MeasureTheory.trim_trim
File: Mathlib/MeasureTheory/Measure/Trim.lean

Proof steps:
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
⊢ (μ.trim hm₂).trim hm₁₂ = μ.trim ⋯
state_after: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
t : Set α
ht : MeasurableSet t
⊢ ((μ.trim hm₂).trim hm₁₂) t = (μ.trim ⋯) t
tactic: refine @Measure.ext _ m₁ _ _ (fun t ht => ?_)
state_before: α : Type u_1
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
m₁ m₂ : MeasurableSpace α
hm₁₂ : m₁ ≤ m₂
hm₂ : m₂ ≤ m0
t : Set α
ht : MeasurableSet t
⊢ ((μ.trim hm₂).trim hm₁₂) t = (μ.trim ⋯) t
state_after: no goals
tactic: rw [trim_measurableSet_eq hm₁₂ ht, trim_measurableSet_eq (hm₁₂.trans hm₂) ht,
    trim_measurableSet_eq hm₂ (hm₁₂ t ht)]
Theorem: Filter.HasBasis.eq_bot_iff
File: Mathlib/Order/Filter/Bases.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
hl : l.HasBasis p s
⊢ (∀ {i : ι}, p i → (s i).Nonempty) ↔ ¬∃ i, p i ∧ s i = ∅
state_after: no goals
tactic: simp only [not_exists, not_and, nonempty_iff_ne_empty]
Theorem: PiTensorProduct.mapL_add
File: Mathlib/Analysis/NormedSpace/PiTensorProduct/InjectiveSeminorm.lean

Proof steps:
state_before: ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u v : E i →L[𝕜] E' i
⊢ mapL (update f i (u + v)) = mapL (update f i u) + mapL (update f i v)
state_after: case h
ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u v : E i →L[𝕜] E' i
x : ⨂[𝕜] (i : ι), E i
⊢ (mapL (update f i (u + v))) x = (mapL (update f i u) + mapL (update f i v)) x
tactic: ext x
state_before: case h
ι : Type uι
inst✝¹⁰ : Fintype ι
𝕜 : Type u𝕜
inst✝⁹ : NontriviallyNormedField 𝕜
E : ι → Type uE
inst✝⁸ : (i : ι) → SeminormedAddCommGroup (E i)
inst✝⁷ : (i : ι) → NormedSpace 𝕜 (E i)
F : Type uF
inst✝⁶ : SeminormedAddCommGroup F
inst✝⁵ : NormedSpace 𝕜 F
E' : ι → Type u_1
E'' : ι → Type u_2
inst✝⁴ : (i : ι) → SeminormedAddCommGroup (E' i)
inst✝³ : (i : ι) → NormedSpace 𝕜 (E' i)
inst✝² : (i : ι) → SeminormedAddCommGroup (E'' i)
inst✝¹ : (i : ι) → NormedSpace 𝕜 (E'' i)
g : (i : ι) → E' i →L[𝕜] E'' i
f : (i : ι) → E i →L[𝕜] E' i
inst✝ : DecidableEq ι
i : ι
u v : E i →L[𝕜] E' i
x : ⨂[𝕜] (i : ι), E i
⊢ (mapL (update f i (u + v))) x = (mapL (update f i u) + mapL (update f i v)) x
state_after: no goals
tactic: simp only [mapL_apply, mapL_add_smul_aux, ContinuousLinearMap.coe_add, PiTensorProduct.map_add,
    LinearMap.add_apply, ContinuousLinearMap.add_apply]
Theorem: List.Sublist.trans
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

Proof steps:
state_before: α : Type u_1
l₁ l₂ l₃ : List α
h₁ : l₁ <+ l₂
h₂ : l₂ <+ l₃
⊢ l₁ <+ l₃
state_after: no goals
tactic: induction h₂ generalizing l₁ with
  | slnil => exact h₁
  | cons _ _ IH => exact (IH h₁).cons _
  | @cons₂ l₂ _ a _ IH =>
    generalize e : a :: l₂ = l₂'
    match e ▸ h₁ with
    | .slnil => apply nil_sublist
    | .cons a' h₁' => cases e; apply (IH h₁').cons
    | .cons₂ a' h₁' => cases e; apply (IH h₁').cons₂
Theorem: Finsupp.total_comp_lmapDomain
File: Mathlib/LinearAlgebra/Finsupp.lean

Proof steps:
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
⊢ Finsupp.total α' M' R v' ∘ₗ lmapDomain R R f = Finsupp.total α M' R (v' ∘ f)
state_after: case h.h
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
a✝ : α
⊢ ((Finsupp.total α' M' R v' ∘ₗ lmapDomain R R f) ∘ₗ lsingle a✝) 1 = (Finsupp.total α M' R (v' ∘ f) ∘ₗ lsingle a✝) 1
tactic: ext
state_before: case h.h
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α → α'
a✝ : α
⊢ ((Finsupp.total α' M' R v' ∘ₗ lmapDomain R R f) ∘ₗ lsingle a✝) 1 = (Finsupp.total α M' R (v' ∘ f) ∘ₗ lsingle a✝) 1
state_after: no goals
tactic: simp
Theorem: Finset.truncatedInf_of_isAntichain
File: Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ s.truncatedInf a = a
state_after: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ a ≤ s.truncatedInf a
tactic: refine le_antisymm truncatedInf_le ?_
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ a ≤ s.truncatedInf a
state_after: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ ∀ (b : α), b ∈ s ∧ b ≤ a → a ≤ id b
tactic: simp_rw [truncatedInf_of_mem (subset_upperClosure ha), le_inf'_iff, mem_filter]
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
⊢ ∀ (b : α), b ∈ s ∧ b ≤ a → a ≤ id b
state_after: case intro
α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
b : α
hb : b ∈ s
hba : b ≤ a
⊢ a ≤ id b
tactic: rintro b ⟨hb, hba⟩
state_before: case intro
α : Type u_1
β : Type u_2
inst✝⁶ : SemilatticeInf α
inst✝⁵ : BoundedOrder α
inst✝⁴ : DecidableRel fun x x_1 => x ≤ x_1
inst✝³ : SemilatticeInf β
inst✝² : BoundedOrder β
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s t : Finset α
a : α
inst✝ : DecidableEq α
hs : IsAntichain (fun x x_1 => x ≤ x_1) ↑s
ha : a ∈ s
b : α
hb : b ∈ s
hba : b ≤ a
⊢ a ≤ id b
state_after: no goals
tactic: exact (hs.eq hb ha hba).ge