ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
Theorem: Finset.mulSupport_of_fiberwise_prod_subset_image
File: Mathlib/Algebra/BigOperators/Finprod.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f✝ g✝ : α → M
a b : α
s✝ t : Set α
inst✝ : DecidableEq β
s : Finset α
f : α → M
g : α → β
⊢ (mulSupport fun b => (filter (fun a => g a = b) s).prod f) ⊆ ↑(image g s)
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f✝ g✝ : α → M
a b : α
s✝ t : Set α
inst✝ : DecidableEq β
s : Finset α
f : α → M
g : α → β
⊢ (mulSupport fun b => (filter (fun a => g a = b) s).prod f) ⊆ g '' ↑s
tactic: simp only [Finset.coe_image, Set.mem_image, Finset.mem_coe, Function.support_subset_iff]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f✝ g✝ : α → M
a b : α
s✝ t : Set α
inst✝ : DecidableEq β
s : Finset α
f : α → M
g : α → β
⊢ (mulSupport fun b => (filter (fun a => g a = b) s).prod f) ⊆ g '' ↑s
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f✝ g✝ : α → M
a b✝ : α
s✝ t : Set α
inst✝ : DecidableEq β
s : Finset α
f : α → M
g : α → β
b : β
h : b ∈ mulSupport fun b => (filter (fun a => g a = b) s).prod f
⊢ b ∈ g '' ↑s
tactic: intro b h
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f✝ g✝ : α → M
a b✝ : α
s✝ t : Set α
inst✝ : DecidableEq β
s : Finset α
f : α → M
g : α → β
b : β
h : b ∈ mulSupport fun b => (filter (fun a => g a = b) s).prod f
⊢ b ∈ g '' ↑s
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f✝ g✝ : α → M
a b✝ : α
s✝ t : Set α
inst✝ : DecidableEq β
s : Finset α
f : α → M
g : α → β
b : β
h : b ∈ mulSupport fun b => (filter (fun a => g a = b) s).prod f
⊢ (filter (fun a => g a = b) s).Nonempty
tactic: suffices (s.filter fun a : α => g a = b).Nonempty by
    simpa only [s.fiber_nonempty_iff_mem_image g b, Finset.mem_image, exists_prop]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
G : Type u_4
M : Type u_5
N : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
f✝ g✝ : α → M
a b✝ : α
s✝ t : Set α
inst✝ : DecidableEq β
s : Finset α
f : α → M
g : α → β
b : β
h : b ∈ mulSupport fun b => (filter (fun a => g a = b) s).prod f
⊢ (filter (fun a => g a = b) s).Nonempty
state_after: no goals
tactic: exact Finset.nonempty_of_prod_ne_one h
Theorem: CategoryTheory.ComposableArrows.homMk₄_app_four
File: Mathlib/CategoryTheory/ComposableArrows.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{?u.323542, u_1} C
n m : ℕ
F G : ComposableArrows C n
f g : ComposableArrows C 4
app₀ : f.obj' 0 ⋯ ⟶ g.obj' 0 ⋯
app₁ : f.obj' 1 ⋯ ⟶ g.obj' 1 ⋯
app₂ : f.obj' 2 ⋯ ⟶ g.obj' 2 ⋯
app₃ : f.obj' 3 ⋯ ⟶ g.obj' 3 ⋯
app₄ : f.obj' 4 ⋯ ⟶ g.obj' 4 ⋯
w₀ : f.map' 0 1 ⋯ ⋯ ≫ app₁ = app₀ ≫ g.map' 0 1 ⋯ ⋯
w₁ : f.map' 1 2 ⋯ ⋯ ≫ app₂ = app₁ ≫ g.map' 1 2 ⋯ ⋯
w₂ : f.map' 2 3 ⋯ ⋯ ≫ app₃ = app₂ ≫ g.map' 2 3 ⋯ ⋯
w₃ : f.map' 3 4 ⋯ ⋯ ≫ app₄ = app₃ ≫ g.map' 3 4 ⋯ ⋯
⊢ 4 < 4 + 1
state_after: no goals
tactic: valid
Theorem: Multiset.Nat.mem_antidiagonal
File: Mathlib/Data/Multiset/NatAntidiagonal.lean

Proof steps:
state_before: n : ℕ
x : ℕ × ℕ
⊢ x ∈ antidiagonal n ↔ x.1 + x.2 = n
state_after: no goals
tactic: rw [antidiagonal, mem_coe, List.Nat.mem_antidiagonal]
Theorem: List.join_eq_nil
File: Mathlib/Data/List/Join.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
l : List α
L : List (List α)
⊢ (l :: L).join = [] ↔ ∀ (l_1 : List α), l_1 ∈ l :: L → l_1 = []
state_after: no goals
tactic: simp only [join, append_eq_nil, join_eq_nil, forall_mem_cons]
Theorem: Finset.insert_idem
File: Mathlib/Data/Finset/Basic.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ t u v : Finset α
a✝ b a : α
s : Finset α
x : α
⊢ x ∈ insert a (insert a s) ↔ x ∈ insert a s
state_after: no goals
tactic: simp only [mem_insert, ← or_assoc, or_self_iff]
Theorem: CharacterModule.intSpanEquivQuotAddOrderOf_symm_apply_coe
File: Mathlib/Algebra/Module/CharacterModule.lean

Proof steps:
state_before: R : Type uR
inst✝³ : CommRing R
A : Type uA
inst✝² : AddCommGroup A
A' : Type u_1
inst✝¹ : AddCommGroup A'
B : Type uB
inst✝ : AddCommGroup B
a : A
⊢ LinearMap.ker (LinearMap.toSpanSingleton ℤ A a) = Ideal.span {↑(addOrderOf a)}
state_after: case h
R : Type uR
inst✝³ : CommRing R
A : Type uA
inst✝² : AddCommGroup A
A' : Type u_1
inst✝¹ : AddCommGroup A'
B : Type uB
inst✝ : AddCommGroup B
a : A
x : ℤ
⊢ x ∈ LinearMap.ker (LinearMap.toSpanSingleton ℤ A a) ↔ x ∈ Ideal.span {↑(addOrderOf a)}
tactic: ext1 x
state_before: case h
R : Type uR
inst✝³ : CommRing R
A : Type uA
inst✝² : AddCommGroup A
A' : Type u_1
inst✝¹ : AddCommGroup A'
B : Type uB
inst✝ : AddCommGroup B
a : A
x : ℤ
⊢ x ∈ LinearMap.ker (LinearMap.toSpanSingleton ℤ A a) ↔ x ∈ Ideal.span {↑(addOrderOf a)}
state_after: no goals
tactic: rw [Ideal.mem_span_singleton, addOrderOf_dvd_iff_zsmul_eq_zero, LinearMap.mem_ker,
      LinearMap.toSpanSingleton_apply]
Theorem: Matroid.basis_iff_mem_maximals
File: Mathlib/Data/Matroid/Basic.lean

Proof steps:
state_before: α : Type u_1
M : Matroid α
B I J X Y : Set α
e : α
hX : autoParam (X ⊆ M.E) _auto✝
⊢ M.Basis I X ↔ I ∈ maximals (fun x x_1 => x ⊆ x_1) {I | M.Indep I ∧ I ⊆ X}
state_after: no goals
tactic: rw [Basis, and_iff_left hX]
Theorem: CategoryTheory.Limits.Pi.map'_id_id
File: Mathlib/CategoryTheory/Limits/Shapes/Products.lean

Proof steps:
state_before: β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
f : α → C
inst✝ : HasProduct f
⊢ (map' id fun a => 𝟙 (f a)) = 𝟙 (∏ᶜ f)
state_after: case h
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
f : α → C
inst✝ : HasProduct f
b✝ : α
⊢ (map' id fun a => 𝟙 (f a)) ≫ π f b✝ = 𝟙 (∏ᶜ f) ≫ π f b✝
tactic: ext
state_before: case h
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝¹ : Category.{v, u} C
f : α → C
inst✝ : HasProduct f
b✝ : α
⊢ (map' id fun a => 𝟙 (f a)) ≫ π f b✝ = 𝟙 (∏ᶜ f) ≫ π f b✝
state_after: no goals
tactic: simp
Theorem: Cauchy.prod
File: Mathlib/Topology/UniformSpace/Cauchy.lean

Proof steps:
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
⊢ Cauchy (f ×ˢ g)
state_after: α : Type u
β : Type v
uniformSpace : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
this : f.NeBot
⊢ Cauchy (f ×ˢ g)
tactic: have := hf.1
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
this : f.NeBot
⊢ Cauchy (f ×ˢ g)
state_after: α : Type u
β : Type v
uniformSpace : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
this✝ : f.NeBot
this : g.NeBot
⊢ Cauchy (f ×ˢ g)
tactic: have := hg.1
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
inst✝ : UniformSpace β
f : Filter α
g : Filter β
hf : Cauchy f
hg : Cauchy g
this✝ : f.NeBot
this : g.NeBot
⊢ Cauchy (f ×ˢ g)
state_after: no goals
tactic: simpa [cauchy_prod_iff, hf.1] using ⟨hf, hg⟩
Theorem: Eq.congr_left
File: .lake/packages/batteries/Batteries/Logic.lean

Proof steps:
state_before: α : Sort u_1
x y z : α
h : x = y
⊢ x = z ↔ y = z
state_after: no goals
tactic: rw [h]
Theorem: isNilpotent_of_pos_nilpotencyClass
File: Mathlib/RingTheory/Nilpotent/Defs.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
hx : 0 < nilpotencyClass x
⊢ IsNilpotent x
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
hx : 0 < nilpotencyClass x
s : Set ℕ := {k | x ^ k = 0}
⊢ IsNilpotent x
tactic: let s : Set ℕ := {k | x ^ k = 0}
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
hx : 0 < nilpotencyClass x
s : Set ℕ := {k | x ^ k = 0}
⊢ IsNilpotent x
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
hx : 0 < nilpotencyClass x
s : Set ℕ := {k | x ^ k = 0}
⊢ s.Nonempty
tactic: change s.Nonempty
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
hx : 0 < nilpotencyClass x
s : Set ℕ := {k | x ^ k = 0}
⊢ s.Nonempty
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
s : Set ℕ := {k | x ^ k = 0}
hx : 0 < sInf s
⊢ s.Nonempty
tactic: change 0 < sInf s at hx
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
s : Set ℕ := {k | x ^ k = 0}
hx : 0 < sInf s
⊢ s.Nonempty
state_after: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
s : Set ℕ := {k | x ^ k = 0}
hx : 0 < sInf s
contra : ¬s.Nonempty
⊢ False
tactic: by_contra contra
state_before: R : Type u_1
S : Type u_2
x y : R
inst✝¹ : Zero R
inst✝ : Pow R ℕ
s : Set ℕ := {k | x ^ k = 0}
hx : 0 < sInf s
contra : ¬s.Nonempty
⊢ False
state_after: no goals
tactic: simp [not_nonempty_iff_eq_empty.mp contra] at hx
Theorem: Group.image_closure
File: Mathlib/Deprecated/Subgroup.lean

Proof steps:
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝¹ : Group G
s✝ : Set G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
s : Set G
⊢ f '' closure s ≤ closure (f '' s)
state_after: case intro.intro
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝¹ : Group G
s✝ : Set G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
s : Set G
x : G
hx : x ∈ closure s
⊢ f x ∈ closure (f '' s)
tactic: rintro _ ⟨x, hx, rfl⟩
state_before: case intro.intro
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝¹ : Group G
s✝ : Set G
inst✝ : Group H
f : G → H
hf : IsGroupHom f
s : Set G
x : G
hx : x ∈ closure s
⊢ f x ∈ closure (f '' s)
state_after: no goals
tactic: exact InClosure.recOn hx
        (by intros _ ha; exact subset_closure (mem_image_of_mem f ha))
        (by
          rw [hf.map_one]
          apply IsSubmonoid.one_mem (closure.isSubgroup _).toIsSubmonoid)
        (by
          intros _ _
          rw [hf.map_inv]
          apply IsSubgroup.inv_mem (closure.isSubgroup _))
        (by
          intros _ _ _ _ ha hb
          rw [hf.map_mul]
          exact (closure.isSubgroup (f '' s)).toIsSubmonoid.mul_mem ha hb)
Theorem: MeasureTheory.JordanDecomposition.toJordanDecomposition_toSignedMeasure
File: Mathlib/MeasureTheory/Decomposition/Jordan.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
inst✝ : MeasurableSpace α
j : JordanDecomposition α
⊢ j.toSignedMeasure = j.toSignedMeasure.toJordanDecomposition.toSignedMeasure
state_after: no goals
tactic: simp
Theorem: Ideal.IsDedekindDomain.ramificationIdx_ne_zero
File: Mathlib/NumberTheory/RamificationInertia.lean

Proof steps:
state_before: R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
⊢ ramificationIdx f p P ≠ 0
state_after: R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
⊢ ramificationIdx f p P ≠ 0
tactic: have hP0 : P ≠ ⊥ := by
    rintro rfl
    have := le_bot_iff.mp le
    contradiction
state_before: R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
⊢ ramificationIdx f p P ≠ 0
state_after: R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
hPirr : Irreducible P
⊢ ramificationIdx f p P ≠ 0
tactic: have hPirr := (Ideal.prime_of_isPrime hP0 hP).irreducible
state_before: R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
hPirr : Irreducible P
⊢ ramificationIdx f p P ≠ 0
state_after: R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
hPirr : Irreducible P
⊢ Multiset.count P (normalizedFactors (map f p)) ≠ 0
tactic: rw [IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count hp0 hP hP0]
state_before: R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
hPirr : Irreducible P
⊢ Multiset.count P (normalizedFactors (map f p)) ≠ 0
state_after: case intro.intro
R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
hPirr : Irreducible P
P' : Ideal S
hP' : P' ∈ normalizedFactors (map f p)
P'_eq : Associated P P'
⊢ Multiset.count P (normalizedFactors (map f p)) ≠ 0
tactic: obtain ⟨P', hP', P'_eq⟩ :=
    exists_mem_normalizedFactors_of_dvd hp0 hPirr (Ideal.dvd_iff_le.mpr le)
state_before: case intro.intro
R : Type u
inst✝² : CommRing R
S : Type v
inst✝¹ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
inst✝ : IsDedekindDomain S
hp0 : map f p ≠ ⊥
hP : P.IsPrime
le : map f p ≤ P
hP0 : P ≠ ⊥
hPirr : Irreducible P
P' : Ideal S
hP' : P' ∈ normalizedFactors (map f p)
P'_eq : Associated P P'
⊢ Multiset.count P (normalizedFactors (map f p)) ≠ 0
state_after: no goals
tactic: rwa [Multiset.count_ne_zero, associated_iff_eq.mp P'_eq]
Theorem: CategoryTheory.Limits.colimit.pre_eq
File: Mathlib/CategoryTheory/Limits/HasLimits.lean

Proof steps:
state_before: J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F : J ⥤ C
inst✝² : HasColimit F
E : K ⥤ J
inst✝¹ : HasColimit (E ⋙ F)
L : Type u₃
inst✝ : Category.{v₃, u₃} L
D : L ⥤ K
s : ColimitCocone (E ⋙ F)
t : ColimitCocone F
⊢ pre F E = (isoColimitCocone s).hom ≫ s.isColimit.desc (Cocone.whisker E t.cocone) ≫ (isoColimitCocone t).inv
state_after: no goals
tactic: aesop_cat
Theorem: SpectrumRestricts.cfcHom_eq_restrict
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Restrict.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
A : Type u_3
p q : A → Prop
inst✝²³ : Semifield R
inst✝²² : StarRing R
inst✝²¹ : MetricSpace R
inst✝²⁰ : TopologicalSemiring R
inst✝¹⁹ : ContinuousStar R
inst✝¹⁸ : Semifield S
inst✝¹⁷ : StarRing S
inst✝¹⁶ : MetricSpace S
inst✝¹⁵ : TopologicalSemiring S
inst✝¹⁴ : ContinuousStar S
inst✝¹³ : TopologicalSpace A
inst✝¹² : Ring A
inst✝¹¹ : StarRing A
inst✝¹⁰ : Algebra S A
inst✝⁹ : ContinuousFunctionalCalculus S q
inst✝⁸ : Algebra R S
inst✝⁷ : Algebra R A
inst✝⁶ : IsScalarTower R S A
inst✝⁵ : StarModule R S
inst✝⁴ : ContinuousSMul R S
inst✝³ : CompleteSpace R
inst✝² : ContinuousFunctionalCalculus R p
inst✝¹ : UniqueContinuousFunctionalCalculus R A
f : C(S, R)
halg : UniformEmbedding ⇑(algebraMap R S)
a : A
hpa : p a
hqa : q a
h : SpectrumRestricts a ⇑f
inst✝ : CompactSpace ↑(spectrum S a)
⊢ cfcHom hpa = starAlgHom (cfcHom hqa) h
state_after: case hφ₁
R : Type u_1
S : Type u_2
A : Type u_3
p q : A → Prop
inst✝²³ : Semifield R
inst✝²² : StarRing R
inst✝²¹ : MetricSpace R
inst✝²⁰ : TopologicalSemiring R
inst✝¹⁹ : ContinuousStar R
inst✝¹⁸ : Semifield S
inst✝¹⁷ : StarRing S
inst✝¹⁶ : MetricSpace S
inst✝¹⁵ : TopologicalSemiring S
inst✝¹⁴ : ContinuousStar S
inst✝¹³ : TopologicalSpace A
inst✝¹² : Ring A
inst✝¹¹ : StarRing A
inst✝¹⁰ : Algebra S A
inst✝⁹ : ContinuousFunctionalCalculus S q
inst✝⁸ : Algebra R S
inst✝⁷ : Algebra R A
inst✝⁶ : IsScalarTower R S A
inst✝⁵ : StarModule R S
inst✝⁴ : ContinuousSMul R S
inst✝³ : CompleteSpace R
inst✝² : ContinuousFunctionalCalculus R p
inst✝¹ : UniqueContinuousFunctionalCalculus R A
f : C(S, R)
halg : UniformEmbedding ⇑(algebraMap R S)
a : A
hpa : p a
hqa : q a
h : SpectrumRestricts a ⇑f
inst✝ : CompactSpace ↑(spectrum S a)
⊢ Continuous ⇑(starAlgHom (cfcHom hqa) h)

case hφ₂
R : Type u_1
S : Type u_2
A : Type u_3
p q : A → Prop
inst✝²³ : Semifield R
inst✝²² : StarRing R
inst✝²¹ : MetricSpace R
inst✝²⁰ : TopologicalSemiring R
inst✝¹⁹ : ContinuousStar R
inst✝¹⁸ : Semifield S
inst✝¹⁷ : StarRing S
inst✝¹⁶ : MetricSpace S
inst✝¹⁵ : TopologicalSemiring S
inst✝¹⁴ : ContinuousStar S
inst✝¹³ : TopologicalSpace A
inst✝¹² : Ring A
inst✝¹¹ : StarRing A
inst✝¹⁰ : Algebra S A
inst✝⁹ : ContinuousFunctionalCalculus S q
inst✝⁸ : Algebra R S
inst✝⁷ : Algebra R A
inst✝⁶ : IsScalarTower R S A
inst✝⁵ : StarModule R S
inst✝⁴ : ContinuousSMul R S
inst✝³ : CompleteSpace R
inst✝² : ContinuousFunctionalCalculus R p
inst✝¹ : UniqueContinuousFunctionalCalculus R A
f : C(S, R)
halg : UniformEmbedding ⇑(algebraMap R S)
a : A
hpa : p a
hqa : q a
h : SpectrumRestricts a ⇑f
inst✝ : CompactSpace ↑(spectrum S a)
⊢ (starAlgHom (cfcHom hqa) h) (ContinuousMap.restrict (spectrum R a) (ContinuousMap.id R)) = a
tactic: apply cfcHom_eq_of_continuous_of_map_id
Theorem: WeierstrassCurve.Projective.smul_fin3
File: Mathlib/AlgebraicGeometry/EllipticCurve/Projective.lean

Proof steps:
state_before: R✝ : Type u
inst✝¹ : CommRing R✝
W : Projective R✝
R : Type u
inst✝ : CommRing R
P : Fin 3 → R
u : Rˣ
⊢ u • P = ![↑u * P 0, ↑u * P 1, ↑u * P 2]
state_after: R✝ : Type u
inst✝¹ : CommRing R✝
W : Projective R✝
R : Type u
inst✝ : CommRing R
P : Fin 3 → R
u : Rˣ
⊢ u • ![P 0, P 1, P 2] = ![↑u * ![P 0, P 1, P 2] 0, ↑u * ![P 0, P 1, P 2] 1, ↑u * ![P 0, P 1, P 2] 2]
tactic: rw [fin3_def P]
state_before: R✝ : Type u
inst✝¹ : CommRing R✝
W : Projective R✝
R : Type u
inst✝ : CommRing R
P : Fin 3 → R
u : Rˣ
⊢ u • ![P 0, P 1, P 2] = ![↑u * ![P 0, P 1, P 2] 0, ↑u * ![P 0, P 1, P 2] 1, ↑u * ![P 0, P 1, P 2] 2]
state_after: R✝ : Type u
inst✝¹ : CommRing R✝
W : Projective R✝
R : Type u
inst✝ : CommRing R
P : Fin 3 → R
u : Rˣ
⊢ ![u • P 0, u • P 1, u • P 2] = ![↑u * P 0, ↑u * P 1, ↑u * P 2]
tactic: matrix_simp
state_before: R✝ : Type u
inst✝¹ : CommRing R✝
W : Projective R✝
R : Type u
inst✝ : CommRing R
P : Fin 3 → R
u : Rˣ
⊢ ![u • P 0, u • P 1, u • P 2] = ![↑u * P 0, ↑u * P 1, ↑u * P 2]
state_after: no goals
tactic: simp only [Units.smul_def, smul_eq_mul]
Theorem: Cardinal.mk_preimage_of_subset_range
File: Mathlib/SetTheory/Cardinal/Basic.lean

Proof steps:
state_before: α β : Type u
c : Cardinal.{?u.230017}
f : α → β
s : Set β
h : s ⊆ range f
⊢ #↑s ≤ #↑(f ⁻¹' s)
state_after: α β : Type u
c : Cardinal.{?u.230017}
f : α → β
s : Set β
h : s ⊆ range f
⊢ lift.{u, u} #↑s ≤ lift.{u, u} #↑(f ⁻¹' s)
tactic: rw [← lift_id #(↑(f ⁻¹' s)), ← lift_id #(↑s)]
state_before: α β : Type u
c : Cardinal.{?u.230017}
f : α → β
s : Set β
h : s ⊆ range f
⊢ lift.{u, u} #↑s ≤ lift.{u, u} #↑(f ⁻¹' s)
state_after: no goals
tactic: exact mk_preimage_of_subset_range_lift f s h
Theorem: map_add_right_nhds_zero
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✝ : α
x : G
⊢ map (fun x_1 => x_1 * x) (𝓝 1) = 𝓝 x
state_after: no goals
tactic: simp
Theorem: AddSubmonoid.mem_sSup_of_mem
File: Mathlib/Algebra/Group/Submonoid/Membership.lean

Proof steps:
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
S : Set (Submonoid M)
s : Submonoid M
hs : s ∈ S
⊢ ∀ {x : M}, x ∈ s → x ∈ sSup S
state_after: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
S : Set (Submonoid M)
s : Submonoid M
hs : s ∈ S
⊢ s ≤ sSup S
tactic: rw [← SetLike.le_def]
state_before: M : Type u_1
A : Type u_2
B : Type u_3
inst✝ : MulOneClass M
S : Set (Submonoid M)
s : Submonoid M
hs : s ∈ S
⊢ s ≤ sSup S
state_after: no goals
tactic: exact le_sSup hs
Theorem: MvPolynomial.mapEquiv_trans
File: Mathlib/Algebra/MvPolynomial/Equiv.lean

Proof steps:
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e✝ : ℕ
s : σ →₀ ℕ
inst✝³ : CommSemiring R
inst✝² : CommSemiring S₁
inst✝¹ : CommSemiring S₂
inst✝ : CommSemiring S₃
e : S₁ ≃+* S₂
f : S₂ ≃+* S₃
p : MvPolynomial σ S₁
⊢ ((mapEquiv σ e).trans (mapEquiv σ f)) p = (mapEquiv σ (e.trans f)) p
state_after: no goals
tactic: simp only [RingEquiv.coe_trans, comp_apply, mapEquiv_apply, RingEquiv.coe_ringHom_trans,
      map_map]
Theorem: Finset.le_sum_schlomilch'
File: Mathlib/Analysis/PSeries.lean

Proof steps:
state_before: M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
⊢ ∑ k ∈ Ico (u 0) (u n), f k ≤ ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
state_after: case zero
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
⊢ ∑ k ∈ Ico (u 0) (u 0), f k ≤ ∑ k ∈ range 0, (u (k + 1) - u k) • f (u k)

case succ
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
ihn : ∑ k ∈ Ico (u 0) (u n), f k ≤ ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
⊢ ∑ k ∈ Ico (u 0) (u (n + 1)), f k ≤ ∑ k ∈ range (n + 1), (u (k + 1) - u k) • f (u k)
tactic: induction' n with n ihn
state_before: case succ
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
ihn : ∑ k ∈ Ico (u 0) (u n), f k ≤ ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
⊢ ∑ k ∈ Ico (u n) (u (n + 1)), f k ≤ (u (n + 1) - u n) • f (u n)
state_after: case succ
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
ihn : ∑ k ∈ Ico (u 0) (u n), f k ≤ ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
this : ∀ k ∈ Ico (u n) (u (n + 1)), f k ≤ f (u n)
⊢ ∑ k ∈ Ico (u n) (u (n + 1)), f k ≤ (u (n + 1) - u n) • f (u n)
tactic: have : ∀ k ∈ Ico (u n) (u (n + 1)), f k ≤ f (u n) := fun k hk =>
    hf (Nat.succ_le_of_lt (h_pos n)) (mem_Ico.mp hk).1
state_before: case succ
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
ihn : ∑ k ∈ Ico (u 0) (u n), f k ≤ ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
this : ∀ k ∈ Ico (u n) (u (n + 1)), f k ≤ f (u n)
⊢ ∑ k ∈ Ico (u n) (u (n + 1)), f k ≤ (u (n + 1) - u n) • f (u n)
state_after: case h.e'_4
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
ihn : ∑ k ∈ Ico (u 0) (u n), f k ≤ ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
this : ∀ k ∈ Ico (u n) (u (n + 1)), f k ≤ f (u n)
⊢ (u (n + 1) - u n) • f (u n) = ∑ i ∈ Ico (u n) (u (n + 1)), f (u n)
tactic: convert sum_le_sum this
state_before: case h.e'_4
M : Type u_1
inst✝ : OrderedAddCommMonoid M
f : ℕ → M
u : ℕ → ℕ
hf : ∀ ⦃m n : ℕ⦄, 0 < m → m ≤ n → f n ≤ f m
h_pos : ∀ (n : ℕ), 0 < u n
hu : Monotone u
n : ℕ
ihn : ∑ k ∈ Ico (u 0) (u n), f k ≤ ∑ k ∈ range n, (u (k + 1) - u k) • f (u k)
this : ∀ k ∈ Ico (u n) (u (n + 1)), f k ≤ f (u n)
⊢ (u (n + 1) - u n) • f (u n) = ∑ i ∈ Ico (u n) (u (n + 1)), f (u n)
state_after: no goals
tactic: simp [pow_succ, mul_two]
Theorem: Ioo_mem_nhdsWithin_Ioi
File: Mathlib/Topology/Order/OrderClosed.lean

Proof steps:
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIciTopology α
inst✝ : TopologicalSpace β
a✝ b✝ c✝ : α
f : α → β
a b c : α
H : b ∈ Ico a c
⊢ Iio c ∩ Ioi b ⊆ Ioo a c
state_after: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIciTopology α
inst✝ : TopologicalSpace β
a✝ b✝ c✝ : α
f : α → β
a b c : α
H : b ∈ Ico a c
⊢ Ioo b c ⊆ Ioo a c
tactic: rw [inter_comm, Ioi_inter_Iio]
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : ClosedIciTopology α
inst✝ : TopologicalSpace β
a✝ b✝ c✝ : α
f : α → β
a b c : α
H : b ∈ Ico a c
⊢ Ioo b c ⊆ Ioo a c
state_after: no goals
tactic: exact Ioo_subset_Ioo_left H.1