ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: TensorAlgebra.toDirectSum_comp_ofDirectSum
File: Mathlib/LinearAlgebra/TensorAlgebra/ToTensorPower.lean

Proof steps:
state_before: R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
⊢ toDirectSum.comp ofDirectSum = AlgHom.id R (⨁ (n : ℕ), ⨂[R]^n M)
state_after: case h.H.H
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
i✝ : ℕ
x✝ : Fin i✝ → M
⊢ (((toDirectSum.comp ofDirectSum).toLinearMap ∘ₗ DirectSum.lof R ℕ (fun i => ⨂[R]^i M) i✝).compMultilinearMap
        (PiTensorProduct.tprod R))
      x✝ =
    (((AlgHom.id R (⨁ (n : ℕ), ⨂[R]^n M)).toLinearMap ∘ₗ DirectSum.lof R ℕ (fun i => ⨂[R]^i M) i✝).compMultilinearMap
        (PiTensorProduct.tprod R))
      x✝
tactic: ext
state_before: case h.H.H
R : Type u_1
M : Type u_2
inst✝² : CommSemiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
i✝ : ℕ
x✝ : Fin i✝ → M
⊢ (((toDirectSum.comp ofDirectSum).toLinearMap ∘ₗ DirectSum.lof R ℕ (fun i => ⨂[R]^i M) i✝).compMultilinearMap
        (PiTensorProduct.tprod R))
      x✝ =
    (((AlgHom.id R (⨁ (n : ℕ), ⨂[R]^n M)).toLinearMap ∘ₗ DirectSum.lof R ℕ (fun i => ⨂[R]^i M) i✝).compMultilinearMap
        (PiTensorProduct.tprod R))
      x✝
state_after: no goals
tactic: simp [DirectSum.lof_eq_of, -tprod_apply, toDirectSum_tensorPower_tprod]
Theorem: SimpleGraph.Path.map_injective
File: Mathlib/Combinatorics/SimpleGraph/Path.lean

Proof steps:
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
hinj : Injective ⇑f
u v : V
⊢ Injective (Path.map f hinj)
state_after: case mk.mk
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
hinj : Injective ⇑f
u v : V
p : G.Walk u v
hp : p.IsPath
p' : G.Walk u v
hp' : p'.IsPath
h : Path.map f hinj ⟨p, hp⟩ = Path.map f hinj ⟨p', hp'⟩
⊢ ⟨p, hp⟩ = ⟨p', hp'⟩
tactic: rintro ⟨p, hp⟩ ⟨p', hp'⟩ h
state_before: case mk.mk
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
hinj : Injective ⇑f
u v : V
p : G.Walk u v
hp : p.IsPath
p' : G.Walk u v
hp' : p'.IsPath
h : Path.map f hinj ⟨p, hp⟩ = Path.map f hinj ⟨p', hp'⟩
⊢ ⟨p, hp⟩ = ⟨p', hp'⟩
state_after: case mk.mk
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
hinj : Injective ⇑f
u v : V
p : G.Walk u v
hp : p.IsPath
p' : G.Walk u v
hp' : p'.IsPath
h : Walk.map f p = Walk.map f p'
⊢ ⟨p, hp⟩ = ⟨p', hp'⟩
tactic: simp only [Path.map, Subtype.coe_mk, Subtype.mk.injEq] at h
state_before: case mk.mk
V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
f : G →g G'
hinj : Injective ⇑f
u v : V
p : G.Walk u v
hp : p.IsPath
p' : G.Walk u v
hp' : p'.IsPath
h : Walk.map f p = Walk.map f p'
⊢ ⟨p, hp⟩ = ⟨p', hp'⟩
state_after: no goals
tactic: simp [Walk.map_injective_of_injective hinj u v h]
Theorem: Stream'.Seq.ofStream_cons
File: Mathlib/Data/Seq/Seq.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
a : α
s : Stream' α
⊢ ↑(a :: s) = cons a ↑s
state_after: case a
α : Type u
β : Type v
γ : Type w
a : α
s : Stream' α
⊢ ↑↑(a :: s) = ↑(cons a ↑s)
tactic: apply Subtype.eq
state_before: case a
α : Type u
β : Type v
γ : Type w
a : α
s : Stream' α
⊢ ↑↑(a :: s) = ↑(cons a ↑s)
state_after: case a
α : Type u
β : Type v
γ : Type w
a : α
s : Stream' α
⊢ Stream'.map some (a :: s) = some a :: Stream'.map some s
tactic: simp only [ofStream, cons]
state_before: case a
α : Type u
β : Type v
γ : Type w
a : α
s : Stream' α
⊢ Stream'.map some (a :: s) = some a :: Stream'.map some s
state_after: no goals
tactic: rw [Stream'.map_cons]
Theorem: SeminormedAddCommGroup.mem_closure_iff
File: Mathlib/Analysis/Normed/Group/Basic.lean

Proof steps:
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝³ : SeminormedGroup E
inst✝² : SeminormedGroup F
inst✝¹ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
inst✝ : FunLike 𝓕 E F
⊢ a ∈ closure s ↔ ∀ (ε : ℝ), 0 < ε → ∃ b ∈ s, ‖a / b‖ < ε
state_after: no goals
tactic: simp [Metric.mem_closure_iff, dist_eq_norm_div]
Theorem: QuadraticMap.associated_toQuadraticMap
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
inst✝⁹ : CommRing R
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R N
inst✝⁴ : CommSemiring S
inst✝³ : Algebra S R
inst✝² : Module S N
inst✝¹ : IsScalarTower S R N
inst✝ : Invertible 2
B₁ : BilinMap R M R
Q : QuadraticMap R M N
B : BilinMap R M R
x y : M
⊢ (((associatedHom S) B.toQuadraticMap) x) y = ⅟2 • ((B x) y + (B y) x)
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
inst✝⁹ : CommRing R
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R N
inst✝⁴ : CommSemiring S
inst✝³ : Algebra S R
inst✝² : Module S N
inst✝¹ : IsScalarTower S R N
inst✝ : Invertible 2
B₁ : BilinMap R M R
Q : QuadraticMap R M N
B : BilinMap R M R
x y : M
⊢ ⅟2 * ((B x) x + (B y) x + ((B x) y + (B y) y) - (B x) x - (B y) y) = ⅟2 * ((B x) y + (B y) x)
tactic: simp only [associated_apply, LinearMap.BilinMap.toQuadraticMap_apply, map_add,
    LinearMap.add_apply, smul_eq_mul]
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
inst✝⁹ : CommRing R
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
inst✝⁶ : AddCommGroup N
inst✝⁵ : Module R N
inst✝⁴ : CommSemiring S
inst✝³ : Algebra S R
inst✝² : Module S N
inst✝¹ : IsScalarTower S R N
inst✝ : Invertible 2
B₁ : BilinMap R M R
Q : QuadraticMap R M N
B : BilinMap R M R
x y : M
⊢ ⅟2 * ((B x) x + (B y) x + ((B x) y + (B y) y) - (B x) x - (B y) y) = ⅟2 * ((B x) y + (B y) x)
state_after: no goals
tactic: abel_nf
Theorem: ContinuousOn.le_sSup_image_Icc
File: Mathlib/Topology/Algebra/Order/Compact.lean

Proof steps:
state_before: α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f (Icc a b)
hc : c ∈ Icc a b
⊢ f c ≤ sSup (f '' Icc a b)
state_after: α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f (Icc a b)
hc : c ∈ Icc a b
this : f c ∈ f '' Icc a b
⊢ f c ≤ sSup (f '' Icc a b)
tactic: have := mem_image_of_mem f hc
state_before: α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f (Icc a b)
hc : c ∈ Icc a b
this : f c ∈ f '' Icc a b
⊢ f c ≤ sSup (f '' Icc a b)
state_after: α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f (Icc a b)
hc : c ∈ Icc a b
this : f c ∈ Icc (sInf (f '' Icc a b)) (sSup (f '' Icc a b))
⊢ f c ≤ sSup (f '' Icc a b)
tactic: rw [h.image_Icc (hc.1.trans hc.2)] at this
state_before: α✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝⁷ : ConditionallyCompleteLinearOrder α
inst✝⁶ : TopologicalSpace α
inst✝⁵ : OrderTopology α
inst✝⁴ : TopologicalSpace β
inst✝³ : TopologicalSpace γ
inst✝² : DenselyOrdered α
inst✝¹ : ConditionallyCompleteLinearOrder β
inst✝ : OrderTopology β
f : α → β
a b c : α
h : ContinuousOn f (Icc a b)
hc : c ∈ Icc a b
this : f c ∈ Icc (sInf (f '' Icc a b)) (sSup (f '' Icc a b))
⊢ f c ≤ sSup (f '' Icc a b)
state_after: no goals
tactic: exact this.2
Theorem: rtendsto'_nhds
File: Mathlib/Topology/Partial.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
inst✝ : TopologicalSpace X
r : Rel Y X
l : Filter Y
x : X
⊢ RTendsto' r l (𝓝 x) ↔ ∀ (s : Set X), IsOpen s → x ∈ s → r.preimage s ∈ l
state_after: X : Type u_1
Y : Type u_2
inst✝ : TopologicalSpace X
r : Rel Y X
l : Filter Y
x : X
⊢ (∀ s ∈ 𝓝 x, r.preimage s ∈ l) ↔ ∀ (s : Set X), IsOpen s → x ∈ s → r.preimage s ∈ l
tactic: rw [rtendsto'_def]
state_before: X : Type u_1
Y : Type u_2
inst✝ : TopologicalSpace X
r : Rel Y X
l : Filter Y
x : X
⊢ (∀ s ∈ 𝓝 x, r.preimage s ∈ l) ↔ ∀ (s : Set X), IsOpen s → x ∈ s → r.preimage s ∈ l
state_after: case hf
X : Type u_1
Y : Type u_2
inst✝ : TopologicalSpace X
r : Rel Y X
l : Filter Y
x : X
⊢ ∀ (s t : Set X), s ⊆ t → r.preimage s ⊆ r.preimage t
tactic: apply all_mem_nhds_filter
state_before: case hf
X : Type u_1
Y : Type u_2
inst✝ : TopologicalSpace X
r : Rel Y X
l : Filter Y
x : X
⊢ ∀ (s t : Set X), s ⊆ t → r.preimage s ⊆ r.preimage t
state_after: no goals
tactic: apply Rel.preimage_mono
Theorem: DomAddAct.vadd_Lp_neg
File: Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean

Proof steps:
state_before: M : Type u_1
N : Type u_2
α : Type u_3
E : Type u_4
inst✝⁶ : MeasurableSpace M
inst✝⁵ : MeasurableSpace N
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝² : SMul M α
inst✝¹ : SMulInvariantMeasure M α μ
inst✝ : MeasurableSMul M α
c : Mᵈᵐᵃ
f : ↥(Lp E p μ)
⊢ c • -f = -(c • f)
state_after: case mk.mk
M : Type u_1
N : Type u_2
α : Type u_3
E : Type u_4
inst✝⁶ : MeasurableSpace M
inst✝⁵ : MeasurableSpace N
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝² : SMul M α
inst✝¹ : SMulInvariantMeasure M α μ
inst✝ : MeasurableSMul M α
c : Mᵈᵐᵃ
val✝ : α →ₘ[μ] E
a✝ : { f // AEStronglyMeasurable f μ }
property✝ : Quot.mk Setoid.r a✝ ∈ Lp E p μ
⊢ c • -⟨Quot.mk Setoid.r a✝, property✝⟩ = -(c • ⟨Quot.mk Setoid.r a✝, property✝⟩)
tactic: rcases f with ⟨⟨_⟩, _⟩
state_before: case mk.mk
M : Type u_1
N : Type u_2
α : Type u_3
E : Type u_4
inst✝⁶ : MeasurableSpace M
inst✝⁵ : MeasurableSpace N
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
μ : Measure α
p : ℝ≥0∞
inst✝² : SMul M α
inst✝¹ : SMulInvariantMeasure M α μ
inst✝ : MeasurableSMul M α
c : Mᵈᵐᵃ
val✝ : α →ₘ[μ] E
a✝ : { f // AEStronglyMeasurable f μ }
property✝ : Quot.mk Setoid.r a✝ ∈ Lp E p μ
⊢ c • -⟨Quot.mk Setoid.r a✝, property✝⟩ = -(c • ⟨Quot.mk Setoid.r a✝, property✝⟩)
state_after: no goals
tactic: rfl
Theorem: _private.Mathlib.Combinatorics.SimpleGraph.Triangle.Removal.0.SimpleGraph.aux
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean

Proof steps:
state_before: α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Fintype α
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
s t : Finset α
P : Finpartition univ
ε : ℝ
n k : ℕ
hk : 0 < k
hn : k ≤ n
⊢ n < 2 * k * (n / k)
state_after: α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Fintype α
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
s t : Finset α
P : Finpartition univ
ε : ℝ
n k : ℕ
hk : 0 < k
hn : k ≤ n
⊢ n % k < k * (n / k)
tactic: rw [mul_assoc, two_mul, ← add_lt_add_iff_right (n % k), add_right_comm, add_assoc,
    mod_add_div n k, add_comm, add_lt_add_iff_right]
state_before: α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Fintype α
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
s t : Finset α
P : Finpartition univ
ε : ℝ
n k : ℕ
hk : 0 < k
hn : k ≤ n
⊢ n % k < k * (n / k)
state_after: α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Fintype α
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
s t : Finset α
P : Finpartition univ
ε : ℝ
n k : ℕ
hk : 0 < k
hn : k ≤ n
⊢ k ≤ k * (n / k)
tactic: apply (mod_lt n hk).trans_le
state_before: α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Fintype α
G : SimpleGraph α
inst✝ : DecidableRel G.Adj
s t : Finset α
P : Finpartition univ
ε : ℝ
n k : ℕ
hk : 0 < k
hn : k ≤ n
⊢ k ≤ k * (n / k)
state_after: no goals
tactic: simpa using Nat.mul_le_mul_left k ((Nat.one_le_div_iff hk).2 hn)
Theorem: Urysohns.CU.approx_le_succ
File: Mathlib/Topology/UrysohnsLemma.lean

Proof steps:
state_before: X : Type u_1
inst✝ : TopologicalSpace X
P : Set X → Prop
c : CU P
n : ℕ
x : X
⊢ approx n c x ≤ approx (n + 1) c x
state_after: case zero
X : Type u_1
inst✝ : TopologicalSpace X
P : Set X → Prop
x : X
c : CU P
⊢ approx 0 c x ≤ approx (0 + 1) c x

case succ
X : Type u_1
inst✝ : TopologicalSpace X
P : Set X → Prop
x : X
n : ℕ
ihn : ∀ (c : CU P), approx n c x ≤ approx (n + 1) c x
c : CU P
⊢ approx (n + 1) c x ≤ approx (n + 1 + 1) c x
tactic: induction' n with n ihn generalizing c
Theorem: Nat.doubleFactorial_eq_prod_odd
File: Mathlib/Data/Nat/Factorial/DoubleFactorial.lean

Proof steps:
state_before: n : ℕ
⊢ (2 * (n + 1) + 1)‼ = ∏ i ∈ Finset.range (n + 1), (2 * (i + 1) + 1)
state_after: n : ℕ
⊢ (2 * n + 1 + 2)‼ = (2 * n + 1 + 2) * (2 * n + 1)‼
tactic: rw [Finset.prod_range_succ, ← doubleFactorial_eq_prod_odd _, mul_comm (2 * n + 1)‼,
      (by ring : 2 * (n + 1) + 1 = 2 * n + 1 + 2)]
state_before: n : ℕ
⊢ (2 * n + 1 + 2)‼ = (2 * n + 1 + 2) * (2 * n + 1)‼
state_after: no goals
tactic: rfl
Theorem: ContinuousMap.tendsto_compactOpen_iff_forall
File: Mathlib/Topology/CompactOpen.lean

Proof steps:
state_before: α : Type u_1
X : Type u_2
Y : Type u_3
Z : Type u_4
T : Type u_5
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace T
K : Set X
U : Set Y
ι : Type u_6
l : Filter ι
F : ι → C(X, Y)
f : C(X, Y)
⊢ Tendsto F l (𝓝 f) ↔ ∀ (K : Set X), IsCompact K → Tendsto (fun i => restrict K (F i)) l (𝓝 (restrict K f))
state_after: no goals
tactic: simp [nhds_iInf, nhds_induced, Filter.tendsto_comap_iff, Function.comp]
Theorem: Function.Embedding.equiv_toEmbedding_trans_symm_toEmbedding
File: Mathlib/Logic/Embedding/Basic.lean

Proof steps:
state_before: α : Sort u_1
β : Sort u_2
e : α ≃ β
⊢ e.toEmbedding.trans e.symm.toEmbedding = Embedding.refl α
state_after: case h
α : Sort u_1
β : Sort u_2
e : α ≃ β
x✝ : α
⊢ (e.toEmbedding.trans e.symm.toEmbedding) x✝ = (Embedding.refl α) x✝
tactic: ext
state_before: case h
α : Sort u_1
β : Sort u_2
e : α ≃ β
x✝ : α
⊢ (e.toEmbedding.trans e.symm.toEmbedding) x✝ = (Embedding.refl α) x✝
state_after: no goals
tactic: simp
Theorem: MeasureTheory.MeasurePreserving.setLIntegral_comp_preimage
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν✝ : Measure α
mb : MeasurableSpace β
ν : Measure β
g : α → β
hg : MeasurePreserving g μ ν
s : Set β
hs : MeasurableSet s
f : β → ℝ≥0∞
hf : Measurable f
⊢ ∫⁻ (a : α) in g ⁻¹' s, f (g a) ∂μ = ∫⁻ (b : β) in s, f b ∂ν
state_after: no goals
tactic: rw [← hg.map_eq, setLIntegral_map hs hf hg.measurable]
Theorem: Finpartition.card_mono
File: Mathlib/Order/Partition/Finpartition.lean

Proof steps:
state_before: α : Type u_1
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
a : α
P Q : Finpartition a
h : P ≤ Q
⊢ Q.parts.card ≤ P.parts.card
state_after: no goals
tactic: classical
    have : ∀ b ∈ Q.parts, ∃ c ∈ P.parts, c ≤ b := fun b ↦ exists_le_of_le h
    choose f hP hf using this
    rw [← card_attach]
    refine card_le_card_of_injOn (fun b ↦ f _ b.2) (fun b _ ↦ hP _ b.2) fun b _ c _ h ↦ ?_
    exact
      Subtype.coe_injective
        (Q.disjoint.elim b.2 c.2 fun H ↦
          P.ne_bot (hP _ b.2) <| disjoint_self.1 <| H.mono (hf _ b.2) <| h.le.trans <| hf _ c.2)
Theorem: CompleteLattice.Independent.setIndependent_range
File: Mathlib/Order/SupIndep.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
⊢ SetIndependent (range t)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
⊢ Independent Subtype.val
tactic: rw [setIndependent_iff]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
⊢ Independent Subtype.val
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ : Independent t
ht : Independent (Subtype.val ∘ rangeFactorization t)
⊢ Independent Subtype.val
tactic: rw [← coe_comp_rangeFactorization t] at ht
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ : Independent t
ht : Independent (Subtype.val ∘ rangeFactorization t)
⊢ Independent Subtype.val
state_after: no goals
tactic: exact ht.comp' surjective_onto_range
Theorem: Inducing.frechetUrysohnSpace
File: Mathlib/Topology/Sequences.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
⊢ FrechetUrysohnSpace X
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
hx : x ∈ closure s
⊢ x ∈ seqClosure s
tactic: refine ⟨fun s x hx ↦ ?_⟩
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
hx : x ∈ closure s
⊢ x ∈ seqClosure s
state_after: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
hx : ∃ x_1, (∀ (n : ℕ), x_1 n ∈ f '' s) ∧ Tendsto x_1 atTop (𝓝 (f x))
⊢ x ∈ seqClosure s
tactic: rw [hf.closure_eq_preimage_closure_image, mem_preimage, mem_closure_iff_seq_limit] at hx
state_before: X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
hx : ∃ x_1, (∀ (n : ℕ), x_1 n ∈ f '' s) ∧ Tendsto x_1 atTop (𝓝 (f x))
⊢ x ∈ seqClosure s
state_after: case intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
u : ℕ → Y
hus : ∀ (n : ℕ), u n ∈ f '' s
hu : Tendsto u atTop (𝓝 (f x))
⊢ x ∈ seqClosure s
tactic: rcases hx with ⟨u, hus, hu⟩
state_before: case intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
u : ℕ → Y
hus : ∀ (n : ℕ), u n ∈ f '' s
hu : Tendsto u atTop (𝓝 (f x))
⊢ x ∈ seqClosure s
state_after: case intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
u : ℕ → Y
hu : Tendsto u atTop (𝓝 (f x))
v : ℕ → X
hv : ∀ (n : ℕ), v n ∈ s
hvu : ∀ (n : ℕ), f (v n) = u n
⊢ x ∈ seqClosure s
tactic: choose v hv hvu using hus
state_before: case intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
u : ℕ → Y
hu : Tendsto u atTop (𝓝 (f x))
v : ℕ → X
hv : ∀ (n : ℕ), v n ∈ s
hvu : ∀ (n : ℕ), f (v n) = u n
⊢ x ∈ seqClosure s
state_after: case intro.intro
X : Type u_1
Y : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : FrechetUrysohnSpace Y
f : X → Y
hf : Inducing f
s : Set X
x : X
u : ℕ → Y
hu : Tendsto u atTop (𝓝 (f x))
v : ℕ → X
hv : ∀ (n : ℕ), v n ∈ s
hvu : ∀ (n : ℕ), f (v n) = u n
⊢ Tendsto v atTop (𝓝 x)
tactic: refine ⟨v, hv, ?_⟩
Theorem: CategoryTheory.Functor.toEventualRanges_obj
File: Mathlib/CategoryTheory/CofilteredSystem.lean

Proof steps:
state_before: J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i✝ j k : J
s : Set (F.obj i✝)
inst✝ : IsCofilteredOrEmpty J
i : J
⊢ { obj := fun j => ↑(F.eventualRange j),
          map := fun {X Y} f => MapsTo.restrict (F.map f) (F.eventualRange X) (F.eventualRange Y) ⋯ }.map
      (𝟙 i) =
    𝟙
      ({ obj := fun j => ↑(F.eventualRange j),
            map := fun {X Y} f => MapsTo.restrict (F.map f) (F.eventualRange X) (F.eventualRange Y) ⋯ }.obj
        i)
state_after: J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i✝ j k : J
s : Set (F.obj i✝)
inst✝ : IsCofilteredOrEmpty J
i : J
⊢ (fun x => ⟨𝟙 (F.obj i) ↑x, ⋯⟩) = 𝟙 ↑(F.eventualRange i)
tactic: simp only [MapsTo.restrict, Subtype.map_def, F.map_id]
state_before: J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i✝ j k : J
s : Set (F.obj i✝)
inst✝ : IsCofilteredOrEmpty J
i : J
⊢ (fun x => ⟨𝟙 (F.obj i) ↑x, ⋯⟩) = 𝟙 ↑(F.eventualRange i)
state_after: case h.a
J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i✝ j k : J
s : Set (F.obj i✝)
inst✝ : IsCofilteredOrEmpty J
i : J
a✝ : { x // x ∈ F.eventualRange i }
⊢ ↑⟨𝟙 (F.obj i) ↑a✝, ⋯⟩ = ↑(𝟙 (↑(F.eventualRange i)) a✝)
tactic: ext
state_before: case h.a
J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i✝ j k : J
s : Set (F.obj i✝)
inst✝ : IsCofilteredOrEmpty J
i : J
a✝ : { x // x ∈ F.eventualRange i }
⊢ ↑⟨𝟙 (F.obj i) ↑a✝, ⋯⟩ = ↑(𝟙 (↑(F.eventualRange i)) a✝)
state_after: no goals
tactic: rfl
state_before: J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i j k : J
s : Set (F.obj i)
inst✝ : IsCofilteredOrEmpty J
X✝ Y✝ Z✝ : J
x✝¹ : X✝ ⟶ Y✝
x✝ : Y✝ ⟶ Z✝
⊢ { obj := fun j => ↑(F.eventualRange j),
          map := fun {X Y} f => MapsTo.restrict (F.map f) (F.eventualRange X) (F.eventualRange Y) ⋯ }.map
      (x✝¹ ≫ x✝) =
    { obj := fun j => ↑(F.eventualRange j),
            map := fun {X Y} f => MapsTo.restrict (F.map f) (F.eventualRange X) (F.eventualRange Y) ⋯ }.map
        x✝¹ ≫
      { obj := fun j => ↑(F.eventualRange j),
            map := fun {X Y} f => MapsTo.restrict (F.map f) (F.eventualRange X) (F.eventualRange Y) ⋯ }.map
        x✝
state_after: J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i j k : J
s : Set (F.obj i)
inst✝ : IsCofilteredOrEmpty J
X✝ Y✝ Z✝ : J
x✝¹ : X✝ ⟶ Y✝
x✝ : Y✝ ⟶ Z✝
⊢ (fun x => ⟨(F.map x✝¹ ≫ F.map x✝) ↑x, ⋯⟩) = (fun x => ⟨F.map x✝¹ ↑x, ⋯⟩) ≫ fun x => ⟨F.map x✝ ↑x, ⋯⟩
tactic: simp only [MapsTo.restrict, Subtype.map_def, F.map_comp]
state_before: J : Type u
inst✝¹ : Category.{?u.24358, u} J
F : J ⥤ Type v
i j k : J
s : Set (F.obj i)
inst✝ : IsCofilteredOrEmpty J
X✝ Y✝ Z✝ : J
x✝¹ : X✝ ⟶ Y✝
x✝ : Y✝ ⟶ Z✝
⊢ (fun x => ⟨(F.map x✝¹ ≫ F.map x✝) ↑x, ⋯⟩) = (fun x => ⟨F.map x✝¹ ↑x, ⋯⟩) ≫ fun x => ⟨F.map x✝ ↑x, ⋯⟩
state_after: no goals
tactic: rfl
Theorem: Finset.sum_nsmul_assoc
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 β
s : Finset ι
f : ι → ℕ
a : β
⊢ ∏ i ∈ ∅, a ^ f i = a ^ ∑ i ∈ ∅, f i
state_after: no goals
tactic: simp
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 β
s : Finset ι
f : ι → ℕ
a : β
x✝³ : ι
x✝² : Finset ι
x✝¹ : x✝³ ∉ x✝²
x✝ : ∏ i ∈ x✝², a ^ f i = a ^ ∑ i ∈ x✝², f i
⊢ ∏ i ∈ cons x✝³ x✝² x✝¹, a ^ f i = a ^ ∑ i ∈ cons x✝³ x✝² x✝¹, f i
state_after: no goals
tactic: simp [prod_cons, sum_cons, pow_add, *]
Theorem: Multiset.eq_zero_of_forall_not_mem
File: Mathlib/Data/Multiset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type v
γ : Type u_2
s : Multiset α
l : List α
H : ∀ (x : α), x ∉ Quot.mk Setoid.r l
⊢ Quot.mk Setoid.r l = 0
state_after: α : Type u_1
β : Type v
γ : Type u_2
s : Multiset α
l : List α
H : ∀ (x : α), x ∉ Quot.mk Setoid.r l
⊢ Quot.mk Setoid.r [] = 0
tactic: rw [eq_nil_iff_forall_not_mem.mpr H]
state_before: α : Type u_1
β : Type v
γ : Type u_2
s : Multiset α
l : List α
H : ∀ (x : α), x ∉ Quot.mk Setoid.r l
⊢ Quot.mk Setoid.r [] = 0
state_after: no goals
tactic: rfl
Theorem: Real.sqrt_ne_zero'
File: Mathlib/Data/Real/Sqrt.lean

Proof steps:
state_before: x y : ℝ
⊢ √x ≠ 0 ↔ 0 < x
state_after: no goals
tactic: rw [← not_le, not_iff_not, sqrt_eq_zero']