1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: CauSeq.Completion.inv_mul_cancel
File: Mathlib/Algebra/Order/CauSeq/Completion.lean

tactic: simp only [mk_eq_mk, ne_eq, mk_eq_zero] at hf
state_before: α : Type u_1
inst✝² : LinearOrderedField α
β : Type u_2
inst✝¹ : DivisionRing β
abv : β → α
inst✝ : IsAbsoluteValue abv
x : Cauchy abv
f : CauSeq β abv
hf : ⟦f⟧ ≠ 0
⊢ (⟦f⟧)⁻¹ * ⟦f⟧ = 1
state_after: α : Type u_1
inst✝² : LinearOrderedField α
β : Type u_2
inst✝¹ : DivisionRing β
abv : β → α
inst✝ : IsAbsoluteValue abv
x : Cauchy abv
f : CauSeq β abv
hf : ¬f.LimZero
⊢ (⟦f⟧)⁻¹ * ⟦f⟧ = 1

tactic: simp only [mk_eq_mk, hf, not_false_eq_true, inv_mk, mk_mul]
state_before: α : Type u_1
inst✝² : LinearOrderedField α
β : Type u_2
inst✝¹ : DivisionRing β
abv : β → α
inst✝ : IsAbsoluteValue abv
x : Cauchy abv
f : CauSeq β abv
hf : ¬f.LimZero
⊢ (⟦f⟧)⁻¹ * ⟦f⟧ = 1
state_after: α : Type u_1
inst✝² : LinearOrderedField α
β : Type u_2
inst✝¹ : DivisionRing β
abv : β → α
inst✝ : IsAbsoluteValue abv
x : Cauchy abv
f : CauSeq β abv
hf : ¬f.LimZero
⊢ mk (f.inv ⋯ * f) = 1

tactic: exact Quotient.sound (CauSeq.inv_mul_cancel hf)
state_before: α : Type u_1
inst✝² : LinearOrderedField α
β : Type u_2
inst✝¹ : DivisionRing β
abv : β → α
inst✝ : IsAbsoluteValue abv
x : Cauchy abv
f : CauSeq β abv
hf : ¬f.LimZero
⊢ mk (f.inv ⋯ * f) = 1
state_after: no goals
Theorem: LinearIndependent.eq_zero_of_pair'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: suffices H : s = 0 ∧ 0 = t from ⟨H.1, H.2.symm⟩
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t : R
h' : s • x = t • y
⊢ s = 0 ∧ t = 0
state_after: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t : R
h' : s • x = t • y
⊢ s = 0 ∧ 0 = t

tactic: exact h.eq_of_pair (by simpa using h')
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t : R
h' : s • x = t • y
⊢ s = 0 ∧ 0 = t
state_after: no goals

tactic: simpa using h'
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Ring R
inst✝⁵ : AddCommGroup M
inst✝⁴ : AddCommGroup M'
inst✝³ : AddCommGroup M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x✝ y✝ x y : M
h : LinearIndependent R ![x, y]
s t : R
h' : s • x = t • y
⊢ s • x + 0 • y = 0 • x + t • y
state_after: no goals
Theorem: Fin.lt_rev_iff
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [← rev_lt_rev, rev_rev]
state_before: n m : ℕ
i j : Fin n
⊢ i < j.rev ↔ j < i.rev
state_after: no goals
Theorem: MeasureTheory.Measure.everywherePosSubset_ae_eq_of_measure_ne_top
File: Mathlib/MeasureTheory/Measure/EverywherePos.lean

tactic: have A : μ (s \ μ.everywherePosSubset s) ≠ ∞ :=
  ((measure_mono diff_subset).trans_lt h's.lt_top).ne
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : MeasurableSpace α
μ ν : Measure α
s k : Set α
inst✝¹ : OpensMeasurableSpace α
inst✝ : μ.InnerRegularCompactLTTop
hs : MeasurableSet s
h's : μ s ≠ ⊤
⊢ μ.everywherePosSubset s =ᶠ[ae μ] s
state_after: α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : MeasurableSpace α
μ ν : Measure α
s k : Set α
inst✝¹ : OpensMeasurableSpace α
inst✝ : μ.InnerRegularCompactLTTop
hs : MeasurableSet s
h's : μ s ≠ ⊤
A : μ (s \ μ.everywherePosSubset s) ≠ ⊤
⊢ μ.everywherePosSubset s =ᶠ[ae μ] s

tactic: simp only [ae_eq_set, diff_eq_empty.mpr (everywherePosSubset_subset μ s), measure_empty,
  true_and, (hs.diff hs.everywherePosSubset).measure_eq_iSup_isCompact_of_ne_top A,
  ENNReal.iSup_eq_zero]
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : MeasurableSpace α
μ ν : Measure α
s k : Set α
inst✝¹ : OpensMeasurableSpace α
inst✝ : μ.InnerRegularCompactLTTop
hs : MeasurableSet s
h's : μ s ≠ ⊤
A : μ (s \ μ.everywherePosSubset s) ≠ ⊤
⊢ μ.everywherePosSubset s =ᶠ[ae μ] s
state_after: α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : MeasurableSpace α
μ ν : Measure α
s k : Set α
inst✝¹ : OpensMeasurableSpace α
inst✝ : μ.InnerRegularCompactLTTop
hs : MeasurableSet s
h's : μ s ≠ ⊤
A : μ (s \ μ.everywherePosSubset s) ≠ ⊤
⊢ ∀ i ⊆ s \ μ.everywherePosSubset s, IsCompact i → μ i = 0

tactic: intro k hk h'k
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : MeasurableSpace α
μ ν : Measure α
s k : Set α
inst✝¹ : OpensMeasurableSpace α
inst✝ : μ.InnerRegularCompactLTTop
hs : MeasurableSet s
h's : μ s ≠ ⊤
A : μ (s \ μ.everywherePosSubset s) ≠ ⊤
⊢ ∀ i ⊆ s \ μ.everywherePosSubset s, IsCompact i → μ i = 0
state_after: α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : MeasurableSpace α
μ ν : Measure α
s k✝ : Set α
inst✝¹ : OpensMeasurableSpace α
inst✝ : μ.InnerRegularCompactLTTop
hs : MeasurableSet s
h's : μ s ≠ ⊤
A : μ (s \ μ.everywherePosSubset s) ≠ ⊤
k : Set α
hk : k ⊆ s \ μ.everywherePosSubset s
h'k : IsCompact k
⊢ μ k = 0

tactic: exact measure_eq_zero_of_subset_diff_everywherePosSubset h'k hk
state_before: α : Type u_1
inst✝³ : TopologicalSpace α
inst✝² : MeasurableSpace α
μ ν : Measure α
s k✝ : Set α
inst✝¹ : OpensMeasurableSpace α
inst✝ : μ.InnerRegularCompactLTTop
hs : MeasurableSet s
h's : μ s ≠ ⊤
A : μ (s \ μ.everywherePosSubset s) ≠ ⊤
k : Set α
hk : k ⊆ s \ μ.everywherePosSubset s
h'k : IsCompact k
⊢ μ k = 0
state_after: no goals
Theorem: CategoryTheory.Functor.commShiftIso_comp_hom_app
File: Mathlib/CategoryTheory/Shift/CommShift.lean

tactic: simp [commShiftIso, CommShift.iso]
state_before: C : Type u_1
D : Type u_2
E : Type u_3
inst✝¹¹ : Category.{u_6, u_1} C
inst✝¹⁰ : Category.{u_7, u_2} D
inst✝⁹ : Category.{u_8, u_3} E
F : C ⥤ D
G : D ⥤ E
A : Type u_4
B : Type u_5
inst✝⁸ : AddMonoid A
inst✝⁷ : AddCommMonoid B
inst✝⁶ : HasShift C A
inst✝⁵ : HasShift D A
inst✝⁴ : HasShift E A
inst✝³ : HasShift C B
inst✝² : HasShift D B
inst✝¹ : F.CommShift A
inst✝ : G.CommShift A
a : A
X : C
⊢ ((F ⋙ G).commShiftIso a).hom.app X = G.map ((F.commShiftIso a).hom.app X) ≫ (G.commShiftIso a).hom.app (F.obj X)
state_after: no goals
Theorem: Subfield.sInf_toSubring
File: Mathlib/Algebra/Field/Subfield.lean

tactic: ext x
state_before: K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
s : Set (Subfield K)
⊢ (sInf s).toSubring = ⨅ t ∈ s, t.toSubring
state_after: case h
K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
s : Set (Subfield K)
x : K
⊢ x ∈ (sInf s).toSubring ↔ x ∈ ⨅ t ∈ s, t.toSubring

tactic: rw [mem_toSubring, mem_sInf]
state_before: case h
K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
s : Set (Subfield K)
x : K
⊢ x ∈ (sInf s).toSubring ↔ x ∈ ⨅ t ∈ s, t.toSubring
state_after: case h
K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
s : Set (Subfield K)
x : K
⊢ (∀ p ∈ s, x ∈ p) ↔ x ∈ ⨅ t ∈ s, t.toSubring

tactic: erw [Subring.mem_sInf]
state_before: case h
K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
s : Set (Subfield K)
x : K
⊢ (∀ p ∈ s, x ∈ p) ↔ x ∈ ⨅ t ∈ s, t.toSubring
state_after: case h
K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
s : Set (Subfield K)
x : K
⊢ (∀ p ∈ s, x ∈ p) ↔ ∀ p ∈ Set.range fun t => ⨅ (_ : t ∈ s), t.toSubring, x ∈ p

tactic: exact
  ⟨fun h p ⟨p', hp⟩ => hp ▸ Subring.mem_sInf.mpr fun p ⟨hp', hp⟩ => hp ▸ h _ hp', fun h p hp =>
    h p.toSubring
      ⟨p,
        Subring.ext fun x =>
          ⟨fun hx => Subring.mem_sInf.mp hx _ ⟨hp, rfl⟩, fun hx =>
            Subring.mem_sInf.mpr fun p' ⟨_, p'_eq⟩ => p'_eq ▸ hx⟩⟩⟩
state_before: case h
K : Type u
L : Type v
M : Type w
inst✝² : DivisionRing K
inst✝¹ : DivisionRing L
inst✝ : DivisionRing M
s : Set (Subfield K)
x : K
⊢ (∀ p ∈ s, x ∈ p) ↔ ∀ p ∈ Set.range fun t => ⨅ (_ : t ∈ s), t.toSubring, x ∈ p
state_after: no goals
Theorem: eq_one_of_mul_left
File: Mathlib/Algebra/Group/Units.lean

tactic: rwa [mul_comm]
state_before: α : Type u
inst✝¹ : CommMonoid α
inst✝ : Subsingleton αˣ
a b : α
h : a * b = 1
⊢ b * a = 1
state_after: no goals
Theorem: Batteries.RBNode.toList_node
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: rw [toList, foldr, foldr_cons]
state_before: α : Type u_1
c : RBColor
a : RBNode α
x : α
b : RBNode α
⊢ (node c a x b).toList = a.toList ++ x :: b.toList
state_after: α : Type u_1
c : RBColor
a : RBNode α
x : α
b : RBNode α
⊢ a.toList ++ x :: foldr (fun x x_1 => x :: x_1) b [] = a.toList ++ x :: b.toList

tactic: rfl
state_before: α : Type u_1
c : RBColor
a : RBNode α
x : α
b : RBNode α
⊢ a.toList ++ x :: foldr (fun x x_1 => x :: x_1) b [] = a.toList ++ x :: b.toList
state_after: no goals
Theorem: Matroid.Base.mapEmbedding
File: Mathlib/Data/Matroid/Map.lean

tactic: rw [Matroid.mapEmbedding, map_base_iff]
state_before: α : Type u_1
β : Type u_2
f✝ : α → β
E I s : Set α
M : Matroid α
N : Matroid β
B : Set α
hB : M.Base B
f : α ↪ β
⊢ (M.mapEmbedding f).Base (⇑f '' B)
state_after: α : Type u_1
β : Type u_2
f✝ : α → β
E I s : Set α
M : Matroid α
N : Matroid β
B : Set α
hB : M.Base B
f : α ↪ β
⊢ ∃ B₀, M.Base B₀ ∧ ⇑f '' B = ⇑f '' B₀

tactic: exact ⟨B, hB, rfl⟩
state_before: α : Type u_1
β : Type u_2
f✝ : α → β
E I s : Set α
M : Matroid α
N : Matroid β
B : Set α
hB : M.Base B
f : α ↪ β
⊢ ∃ B₀, M.Base B₀ ∧ ⇑f '' B = ⇑f '' B₀
state_after: no goals
Theorem: ULift.isOpen_iff
File: Mathlib/Topology/Constructions.lean

tactic: rw [ULift.topologicalSpace, ← Equiv.ulift_apply, ← Equiv.ulift.coinduced_symm, ← isOpen_coinduced]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝ : TopologicalSpace X
s : Set (ULift.{v, u} X)
⊢ IsOpen s ↔ IsOpen (up ⁻¹' s)
state_after: no goals
Theorem: CategoryTheory.Limits.limit.post_π
File: Mathlib/CategoryTheory/Limits/HasLimits.lean

tactic: erw [IsLimit.fac]
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
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
j : J
⊢ post F G ≫ π (F ⋙ G) j = G.map (π F j)
state_after: 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
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
j : J
⊢ (G.mapCone (cone F)).π.app j = G.map (π F j)

tactic: rfl
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
D : Type u'
inst✝² : Category.{v', u'} D
F : J ⥤ C
inst✝¹ : HasLimit F
G : C ⥤ D
inst✝ : HasLimit (F ⋙ G)
j : J
⊢ (G.mapCone (cone F)).π.app j = G.map (π F j)
state_after: no goals
Theorem: univLE_total
File: Mathlib/SetTheory/Cardinal/UnivLE.lean

tactic: simp_rw [univLE_iff_cardinal_le]
state_before: ⊢ UnivLE.{u, v} ∨ UnivLE.{v, u}
state_after: ⊢ univ.{u, v + 1} ≤ univ.{v, u + 1} ∨ univ.{v, u + 1} ≤ univ.{u, v + 1}

tactic: apply le_total
state_before: ⊢ univ.{u, v + 1} ≤ univ.{v, u + 1} ∨ univ.{v, u + 1} ≤ univ.{u, v + 1}
state_after: no goals
Theorem: CategoryTheory.Functor.homologySequence_comp
File: Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean

tactic: rw [← Functor.map_comp, comp_distTriang_mor_zero₁₂ _ hT, Functor.map_zero]
state_before: C : Type u_1
D : Type u_2
A : Type u_3
inst✝¹⁶ : Category.{u_5, u_1} C
inst✝¹⁵ : HasZeroObject C
inst✝¹⁴ : HasShift C ℤ
inst✝¹³ : Preadditive C
inst✝¹² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹¹ : Pretriangulated C
inst✝¹⁰ : Category.{?u.53082, u_2} D
inst✝⁹ : HasZeroObject D
inst✝⁸ : HasShift D ℤ
inst✝⁷ : Preadditive D
inst✝⁶ : ∀ (n : ℤ), (shiftFunctor D n).Additive
inst✝⁵ : Pretriangulated D
inst✝⁴ : Category.{u_4, u_3} A
inst✝³ : Abelian A
F : C ⥤ A
inst✝² inst✝¹ : F.IsHomological
inst✝ : F.ShiftSequence ℤ
T T' : Triangle C
hT : T ∈ distinguishedTriangles
hT' : T' ∈ distinguishedTriangles
φ : T ⟶ T'
n₀ n₁ : ℤ
h : n₀ + 1 = n₁
⊢ (F.shift n₀).map T.mor₁ ≫ (F.shift n₀).map T.mor₂ = 0
state_after: no goals
Theorem: IsPrimitiveRoot.integralPowerBasis_gen
File: Mathlib/NumberTheory/Cyclotomic/Rat.lean

tactic: rw [integralPowerBasis, PowerBasis.map_gen, adjoin.powerBasis'_gen]
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝¹ : Field K
inst✝ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
hcycl : IsCyclotomicExtension {p ^ k} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ k)
⊢ (algebraMap (𝓞 K) K) hζ.integralPowerBasis.gen = ↑hζ.toInteger
state_after: p : ℕ+
k : ℕ
K : Type u
inst✝¹ : Field K
inst✝ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
hcycl : IsCyclotomicExtension {p ^ k} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ k)
⊢ (algebraMap (𝓞 K) K) (hζ.adjoinEquivRingOfIntegers ⟨ζ, ⋯⟩) = ↑hζ.toInteger

tactic: simp only [adjoinEquivRingOfIntegers_apply, IsIntegralClosure.algebraMap_lift]
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝¹ : Field K
inst✝ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
hcycl : IsCyclotomicExtension {p ^ k} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ k)
⊢ (algebraMap (𝓞 K) K) (hζ.adjoinEquivRingOfIntegers ⟨ζ, ⋯⟩) = ↑hζ.toInteger
state_after: p : ℕ+
k : ℕ
K : Type u
inst✝¹ : Field K
inst✝ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
hcycl : IsCyclotomicExtension {p ^ k} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ k)
⊢ (algebraMap (↥(adjoin ℤ {ζ})) K) ⟨ζ, ⋯⟩ = ζ

tactic: rfl
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝¹ : Field K
inst✝ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
hcycl : IsCyclotomicExtension {p ^ k} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ k)
⊢ (algebraMap (↥(adjoin ℤ {ζ})) K) ⟨ζ, ⋯⟩ = ζ
state_after: no goals
Theorem: zpow_eq_zpow_emod
File: Mathlib/Algebra/Group/Basic.lean

tactic: rw [Int.emod_add_ediv]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n✝ : ℤ
x : G
m n : ℤ
h : x ^ n = 1
⊢ x ^ m = x ^ (m % n + n * (m / n))
state_after: no goals

tactic: simp [zpow_add, zpow_mul, h]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : Group G
a b c d : G
n✝ : ℤ
x : G
m n : ℤ
h : x ^ n = 1
⊢ x ^ (m % n + n * (m / n)) = x ^ (m % n)
state_after: no goals
Theorem: Submodule.span_attach_biUnion
File: Mathlib/LinearAlgebra/Span.lean

tactic: simp [span_iUnion]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁸ : Semiring R
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
x : M
p p' : Submodule R M
inst✝⁵ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝⁴ : AddCommMonoid M₂
inst✝³ : Module R₂ M₂
F : Type u_8
inst✝² : FunLike F M M₂
inst✝¹ : SemilinearMapClass F σ₁₂ M M₂
s✝ t : Set M
inst✝ : DecidableEq M
α : Type u_9
s : Finset α
f : { x // x ∈ s } → Finset M
⊢ span R ↑(s.attach.biUnion f) = ⨆ x, span R ↑(f x)
state_after: no goals
Theorem: ArithmeticFunction.IsMultiplicative.prodPrimeFactors_add_of_squarefree
File: Mathlib/NumberTheory/ArithmeticFunction.lean

tactic: rw [prodPrimeFactors_apply hn.ne_zero]
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
⊢ (ArithmeticFunction.prodPrimeFactors fun p => (f + g) p) n = (f * g) n
state_after: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
⊢ ∏ p ∈ n.primeFactors, (f + g) p = (f * g) n

tactic: simp_rw [add_apply (f:=f) (g:=g)]
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
⊢ ∏ p ∈ n.primeFactors, (f + g) p = (f * g) n
state_after: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
⊢ ∏ x ∈ n.primeFactors, (f x + g x) = (f * g) n

tactic: apply Finset.sum_congr rfl
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
⊢ ∑ t ∈ n.primeFactors.powerset, (∏ i ∈ t, f i) * ∏ i ∈ n.primeFactors \ t, g i =
    ∑ i ∈ (↑n.factors).toFinset.powerset, f i.val.prod * g (n / i.val.prod)
state_after: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
⊢ ∀ x ∈ n.primeFactors.powerset, (∏ i ∈ x, f i) * ∏ i ∈ n.primeFactors \ x, g i = f x.val.prod * g (n / x.val.prod)

tactic: intro t ht
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
⊢ ∀ x ∈ n.primeFactors.powerset, (∏ i ∈ x, f i) * ∏ i ∈ n.primeFactors \ x, g i = f x.val.prod * g (n / x.val.prod)
state_after: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
t : Finset ℕ
ht : t ∈ n.primeFactors.powerset
⊢ (∏ i ∈ t, f i) * ∏ i ∈ n.primeFactors \ t, g i = f t.val.prod * g (n / t.val.prod)

tactic: rw [t.prod_val, Function.id_def,
  ← prod_primeFactors_sdiff_of_squarefree hn (Finset.mem_powerset.mp ht),
  hf.map_prod_of_subset_primeFactors n t (Finset.mem_powerset.mp ht),
  ← hg.map_prod_of_subset_primeFactors n (_ \ t) Finset.sdiff_subset]
state_before: R : Type u_1
inst✝ : CommSemiring R
f g : ArithmeticFunction R
hf : f.IsMultiplicative
hg : g.IsMultiplicative
n : ℕ
hn : Squarefree n
t : Finset ℕ
ht : t ∈ n.primeFactors.powerset
⊢ (∏ i ∈ t, f i) * ∏ i ∈ n.primeFactors \ t, g i = f t.val.prod * g (n / t.val.prod)
state_after: no goals
Theorem: ContinuousMapZero.toNNReal_smul
File: Mathlib/Topology/ContinuousFunction/UniqueCFC.lean

tactic: ext x
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
⊢ (r • f).toNNReal = r • f.toNNReal
state_after: case h.a
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)

tactic: by_cases h : 0 ≤ f x
state_before: case h.a
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)
state_after: case pos
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
h : 0 ≤ f x
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)

case neg
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
h : ¬0 ≤ f x
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)

tactic: simpa [max_eq_left h, NNReal.smul_def] using mul_nonneg r.coe_nonneg h
state_before: case pos
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
h : 0 ≤ f x
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)
state_after: no goals

tactic: push_neg at h
state_before: case neg
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
h : ¬0 ≤ f x
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)
state_after: case neg
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
h : f x < 0
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)

tactic: simpa [max_eq_right h.le, NNReal.smul_def]
  using mul_nonpos_of_nonneg_of_nonpos r.coe_nonneg h.le
state_before: case neg
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : Zero X
r : ℝ≥0
f : C(X, ℝ)₀
x : X
h : f x < 0
⊢ ↑((r • f).toNNReal x) = ↑((r • f.toNNReal) x)
state_after: no goals
Theorem: ContinuousMap.starAlgHom_ext_map_X
File: Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean

tactic: suffices (⊤ : StarSubalgebra 𝕜 C(s, 𝕜)) ≤ StarAlgHom.equalizer φ ψ from
  StarAlgHom.ext fun x => this mem_top
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : RCLike 𝕜
inst✝⁵ : Ring A
inst✝⁴ : StarRing A
inst✝³ : Algebra 𝕜 A
inst✝² : TopologicalSpace A
inst✝¹ : T2Space A
s : Set 𝕜
inst✝ : CompactSpace ↑s
φ ψ : C(↑s, 𝕜) →⋆ₐ[𝕜] A
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ ((toContinuousMapOnAlgHom s) X) = ψ ((toContinuousMapOnAlgHom s) X)
⊢ φ = ψ
state_after: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : RCLike 𝕜
inst✝⁵ : Ring A
inst✝⁴ : StarRing A
inst✝³ : Algebra 𝕜 A
inst✝² : TopologicalSpace A
inst✝¹ : T2Space A
s : Set 𝕜
inst✝ : CompactSpace ↑s
φ ψ : C(↑s, 𝕜) →⋆ₐ[𝕜] A
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ ((toContinuousMapOnAlgHom s) X) = ψ ((toContinuousMapOnAlgHom s) X)
⊢ ⊤ ≤ StarAlgHom.equalizer φ ψ

tactic: rw [← polynomialFunctions.starClosure_topologicalClosure s]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : RCLike 𝕜
inst✝⁵ : Ring A
inst✝⁴ : StarRing A
inst✝³ : Algebra 𝕜 A
inst✝² : TopologicalSpace A
inst✝¹ : T2Space A
s : Set 𝕜
inst✝ : CompactSpace ↑s
φ ψ : C(↑s, 𝕜) →⋆ₐ[𝕜] A
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ ((toContinuousMapOnAlgHom s) X) = ψ ((toContinuousMapOnAlgHom s) X)
⊢ ⊤ ≤ StarAlgHom.equalizer φ ψ
state_after: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : RCLike 𝕜
inst✝⁵ : Ring A
inst✝⁴ : StarRing A
inst✝³ : Algebra 𝕜 A
inst✝² : TopologicalSpace A
inst✝¹ : T2Space A
s : Set 𝕜
inst✝ : CompactSpace ↑s
φ ψ : C(↑s, 𝕜) →⋆ₐ[𝕜] A
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ ((toContinuousMapOnAlgHom s) X) = ψ ((toContinuousMapOnAlgHom s) X)
⊢ (polynomialFunctions s).starClosure.topologicalClosure ≤ StarAlgHom.equalizer φ ψ

tactic: exact StarSubalgebra.topologicalClosure_minimal
  (polynomialFunctions.starClosure_le_equalizer s φ ψ h) (isClosed_eq hφ hψ)
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : RCLike 𝕜
inst✝⁵ : Ring A
inst✝⁴ : StarRing A
inst✝³ : Algebra 𝕜 A
inst✝² : TopologicalSpace A
inst✝¹ : T2Space A
s : Set 𝕜
inst✝ : CompactSpace ↑s
φ ψ : C(↑s, 𝕜) →⋆ₐ[𝕜] A
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h : φ ((toContinuousMapOnAlgHom s) X) = ψ ((toContinuousMapOnAlgHom s) X)
⊢ (polynomialFunctions s).starClosure.topologicalClosure ≤ StarAlgHom.equalizer φ ψ
state_after: no goals