tasksource/leandojo huggingface dataset:
Theorem: UniformSpace.Completion.map_smul_eq_mul_coe
File: Mathlib/Topology/Algebra/UniformRing.lean

tactic: ext x
state_before: α : Type ?u.206596
inst✝¹⁴ : Ring α
inst✝¹³ : UniformSpace α
inst✝¹² : TopologicalRing α
inst✝¹¹ : UniformAddGroup α
β : Type u
inst✝¹⁰ : UniformSpace β
inst✝⁹ : Ring β
inst✝⁸ : UniformAddGroup β
inst✝⁷ : TopologicalRing β
f : α →+* β
hf : Continuous ↑f
A : Type u_1
inst✝⁶ : Ring A
inst✝⁵ : UniformSpace A
inst✝⁴ : UniformAddGroup A
inst✝³ : TopologicalRing A
R : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Algebra R A
inst✝ : UniformContinuousConstSMul R A
r : R
⊢ Completion.map ((fun x x_1 => x • x_1) r) = (fun x x_1 => x * x_1) (↑((fun x => A) r) (↑(algebraMap R A) r))

tactic: refine' Completion.induction_on x _ fun a => _
state_before: case h
α : Type ?u.206596
inst✝¹⁴ : Ring α
inst✝¹³ : UniformSpace α
inst✝¹² : TopologicalRing α
inst✝¹¹ : UniformAddGroup α
β : Type u
inst✝¹⁰ : UniformSpace β
inst✝⁹ : Ring β
inst✝⁸ : UniformAddGroup β
inst✝⁷ : TopologicalRing β
f : α →+* β
hf : Continuous ↑f
A : Type u_1
inst✝⁶ : Ring A
inst✝⁵ : UniformSpace A
inst✝⁴ : UniformAddGroup A
inst✝³ : TopologicalRing A
R : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Algebra R A
inst✝ : UniformContinuousConstSMul R A
r : R
x : Completion ((fun x => A) r)
⊢ Completion.map ((fun x x_1 => x • x_1) r) x = (fun x x_1 => x * x_1) (↑((fun x => A) r) (↑(algebraMap R A) r)) x

tactic: exact isClosed_eq Completion.continuous_map (continuous_mul_left _)
state_before: case h.refine'_1
α : Type ?u.206596
inst✝¹⁴ : Ring α
inst✝¹³ : UniformSpace α
inst✝¹² : TopologicalRing α
inst✝¹¹ : UniformAddGroup α
β : Type u
inst✝¹⁰ : UniformSpace β
inst✝⁹ : Ring β
inst✝⁸ : UniformAddGroup β
inst✝⁷ : TopologicalRing β
f : α →+* β
hf : Continuous ↑f
A : Type u_1
inst✝⁶ : Ring A
inst✝⁵ : UniformSpace A
inst✝⁴ : UniformAddGroup A
inst✝³ : TopologicalRing A
R : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Algebra R A
inst✝ : UniformContinuousConstSMul R A
r : R
x : Completion ((fun x => A) r)
⊢ IsClosed
    {a |
      Completion.map ((fun x x_1 => x • x_1) r) a = (fun x x_1 => x * x_1) (↑((fun x => A) r) (↑(algebraMap R A) r)) a}

tactic: simp_rw [map_coe (uniformContinuous_const_smul r) a, Algebra.smul_def, coe_mul]
state_before: case h.refine'_2
α : Type ?u.206596
inst✝¹⁴ : Ring α
inst✝¹³ : UniformSpace α
inst✝¹² : TopologicalRing α
inst✝¹¹ : UniformAddGroup α
β : Type u
inst✝¹⁰ : UniformSpace β
inst✝⁹ : Ring β
inst✝⁸ : UniformAddGroup β
inst✝⁷ : TopologicalRing β
f : α →+* β
hf : Continuous ↑f
A : Type u_1
inst✝⁶ : Ring A
inst✝⁵ : UniformSpace A
inst✝⁴ : UniformAddGroup A
inst✝³ : TopologicalRing A
R : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Algebra R A
inst✝ : UniformContinuousConstSMul R A
r : R
x : Completion ((fun x => A) r)
a : (fun x => A) r
⊢ Completion.map ((fun x x_1 => x • x_1) r) (↑((fun x => A) r) a) =
    (fun x x_1 => x * x_1) (↑((fun x => A) r) (↑(algebraMap R A) r)) (↑((fun x => A) r) a)
Theorem: Ordinal.IsFundamentalSequence.zero
File: Mathlib/SetTheory/Cardinal/Cofinality.lean

tactic: rw [cof_zero, ord_zero]
state_before: α : Type ?u.69006
r : α → α → Prop
a o : Ordinal
f✝ : (b : Ordinal) → b < o → Ordinal
f : (b : Ordinal) → b < 0 → Ordinal
⊢ 0 ≤ ord (cof 0)
Theorem: neg_one_eq_one_iff
File: Mathlib/Algebra/CharP/Two.lean

tactic: refine' ⟨fun h => _, fun h => @CharTwo.neg_eq _ _ (ringChar.of_eq h) 1⟩
state_before: R : Type u_1
ι : Type ?u.22943
inst✝¹ : Ring R
inst✝ : Nontrivial R
⊢ -1 = 1 ↔ ringChar R = 2

tactic: rw [eq_comm, ← sub_eq_zero, sub_neg_eq_add, ← Nat.cast_one, ← Nat.cast_add] at h
state_before: R : Type u_1
ι : Type ?u.22943
inst✝¹ : Ring R
inst✝ : Nontrivial R
h : -1 = 1
⊢ ringChar R = 2

tactic: exact ((Nat.dvd_prime Nat.prime_two).mp (ringChar.dvd h)).resolve_left CharP.ringChar_ne_one
state_before: R : Type u_1
ι : Type ?u.22943
inst✝¹ : Ring R
inst✝ : Nontrivial R
h✝ : 1 = -1
h : ↑(1 + 1) = 0
⊢ ringChar R = 2
Theorem: MvPolynomial.supported_univ
File: Mathlib/Data/MvPolynomial/Supported.lean

tactic: simp [Algebra.eq_top_iff, mem_supported]
state_before: σ : Type u_1
τ : Type ?u.126223
R : Type u
S : Type v
r : R
e : ℕ
n m : σ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
s t : Set σ
⊢ supported R Set.univ = ⊤
Theorem: lt_one_of_mul_lt_right
File: Mathlib/Algebra/Order/Monoid/Lemmas.lean

tactic: simpa only [mul_one]
state_before: α : Type u_1
β : Type ?u.23306
inst✝² : MulOneClass α
inst✝¹ : LT α
inst✝ : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b : α
h : a * b < a
⊢ ?m.23646 h * b < ?m.23646 h * 1
Theorem: MeasureTheory.SignedMeasure.toJordanDecomposition_eq
File: Mathlib/MeasureTheory/Decomposition/Jordan.lean

tactic: rw [h, toJordanDecomposition_toSignedMeasure]
state_before: α : Type u_1
β : Type ?u.86482
inst✝ : MeasurableSpace α
s : SignedMeasure α
j : JordanDecomposition α
h : s = toSignedMeasure j
⊢ toJordanDecomposition s = j
Theorem: Function.Embedding.equiv_symm_toEmbedding_trans_toEmbedding
File: Mathlib/Logic/Embedding/Basic.lean

tactic: ext
state_before: α : Sort u_1
β : Sort u_2
e : α ≃ β
⊢ Embedding.trans (Equiv.toEmbedding e.symm) (Equiv.toEmbedding e) = Embedding.refl β

tactic: simp
state_before: case h
α : Sort u_1
β : Sort u_2
e : α ≃ β
x✝ : β
⊢ ↑(Embedding.trans (Equiv.toEmbedding e.symm) (Equiv.toEmbedding e)) x✝ = ↑(Embedding.refl β) x✝
Theorem: NormedAddGroupHom.ker_zero
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: ext
state_before: V : Type ?u.485691
W : Type ?u.485694
V₁ : Type u_1
V₂ : Type u_2
V₃ : Type ?u.485703
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
⊢ ker 0 = ⊤

tactic: simp [mem_ker]
state_before: case h
V : Type ?u.485691
W : Type ?u.485694
V₁ : Type u_1
V₂ : Type u_2
V₃ : Type ?u.485703
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V₁ V₂
g : NormedAddGroupHom V₂ V₃
x✝ : V₁
⊢ x✝ ∈ ker 0 ↔ x✝ ∈ ⊤
Theorem: CauchyFilter.comp_gen
File: Mathlib/Topology/UniformSpace/Completion.lean

tactic: rw [lift'_lift'_assoc]
state_before: α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
⊢ (Filter.lift' (Filter.lift' (𝓤 α) gen) fun s => s ○ s) = Filter.lift' (𝓤 α) fun s => gen s ○ gen s

tactic: exact monotone_gen
state_before: case hg
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
⊢ Monotone gen

tactic: exact monotone_id.compRel monotone_id
state_before: case hh
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
⊢ Monotone fun s => s ○ s

tactic: rw [lift'_lift'_assoc]
state_before: α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
⊢ (Filter.lift' (𝓤 α) fun s => gen (s ○ s)) = Filter.lift' (Filter.lift' (𝓤 α) fun s => s ○ s) gen

tactic: exact monotone_id.compRel monotone_id
state_before: case hg
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
⊢ Monotone fun s => s ○ s

tactic: exact monotone_gen
state_before: case hh
α : Type u
inst✝² : UniformSpace α
β : Type v
γ : Type w
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
⊢ Monotone gen
Theorem: MeasureTheory.integrableOn_Lp_of_measure_ne_top
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: refine' memℒp_one_iff_integrable.mp _
state_before: α : Type u_2
β : Type ?u.1655667
E✝ : Type ?u.1655670
F : Type ?u.1655673
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f✝ g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_1
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
f : { x // x ∈ Lp E p }
hp : 1 ≤ p
hμs : ↑↑μ s ≠ ⊤
⊢ IntegrableOn (↑↑f) s

tactic: have hμ_restrict_univ : (μ.restrict s) Set.univ < ∞ := by
  simpa only [Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply, lt_top_iff_ne_top]
state_before: α : Type u_2
β : Type ?u.1655667
E✝ : Type ?u.1655670
F : Type ?u.1655673
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f✝ g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_1
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
f : { x // x ∈ Lp E p }
hp : 1 ≤ p
hμs : ↑↑μ s ≠ ⊤
⊢ Memℒp (↑↑f) 1

tactic: haveI hμ_finite : IsFiniteMeasure (μ.restrict s) := ⟨hμ_restrict_univ⟩
state_before: α : Type u_2
β : Type ?u.1655667
E✝ : Type ?u.1655670
F : Type ?u.1655673
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f✝ g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_1
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
f : { x // x ∈ Lp E p }
hp : 1 ≤ p
hμs : ↑↑μ s ≠ ⊤
hμ_restrict_univ : ↑↑(Measure.restrict μ s) univ < ⊤
⊢ Memℒp (↑↑f) 1

tactic: exact ((Lp.memℒp _).restrict s).memℒp_of_exponent_le hp
state_before: α : Type u_2
β : Type ?u.1655667
E✝ : Type ?u.1655670
F : Type ?u.1655673
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f✝ g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_1
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
f : { x // x ∈ Lp E p }
hp : 1 ≤ p
hμs : ↑↑μ s ≠ ⊤
hμ_restrict_univ : ↑↑(Measure.restrict μ s) univ < ⊤
hμ_finite : IsFiniteMeasure (Measure.restrict μ s)
⊢ Memℒp (↑↑f) 1

tactic: simpa only [Set.univ_inter, MeasurableSet.univ, Measure.restrict_apply, lt_top_iff_ne_top]
state_before: α : Type u_2
β : Type ?u.1655667
E✝ : Type ?u.1655670
F : Type ?u.1655673
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E✝
f✝ g : α → E✝
s✝ t : Set α
μ ν : Measure α
E : Type u_1
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
s : Set α
f : { x // x ∈ Lp E p }
hp : 1 ≤ p
hμs : ↑↑μ s ≠ ⊤
⊢ ↑↑(Measure.restrict μ s) univ < ⊤
Theorem: Polynomial.map_monic_eq_zero_iff
File: Mathlib/Data/Polynomial/Eval.lean

tactic: simp only [mul_one, hp.leadingCoeff, f.map_one]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
hp : Monic p
hfp : map f p = 0
x : R
⊢ ↑f x = ↑f x * ↑f (leadingCoeff p)

tactic: simp only [hfp, mul_zero, coeff_zero]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
hp : Monic p
hfp : map f p = 0
x : R
⊢ ↑f x * coeff (map f p) (natDegree p) = 0

tactic: simp only [h, coeff_map, coeff_zero]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
a b : R
m n✝ : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Semiring S
f : R →+* S
hp : Monic p
h : ∀ (x : R), ↑f x = 0
n : ℕ
⊢ coeff (map f p) n = coeff 0 n
Theorem: Submonoid.mem_iSup_of_mem
File: Mathlib/GroupTheory/Submonoid/Membership.lean

tactic: rw [←SetLike.le_def]
state_before: M : Type u_2
A : Type ?u.45573
B : Type ?u.45576
inst✝ : MulOneClass M
ι : Sort u_1
S : ι → Submonoid M
i : ι
⊢ ∀ {x : M}, x ∈ S i → x ∈ iSup S

tactic: exact le_iSup _ _
state_before: M : Type u_2
A : Type ?u.45573
B : Type ?u.45576
inst✝ : MulOneClass M
ι : Sort u_1
S : ι → Submonoid M
i : ι
⊢ S i ≤ iSup S
Theorem: CategoryTheory.Idempotents.functorExtension₂_comp_whiskeringLeft_toKaroubi
File: Mathlib/CategoryTheory/Idempotents/FunctorExtension.lean

tactic: simp only [functorExtension₂, Functor.assoc, functorExtension₁_comp_whiskeringLeft_toKaroubi,
  Functor.comp_id]
state_before: C : Type u_1
D : Type u_2
E : Type ?u.69364
inst✝² : Category C
inst✝¹ : Category D
inst✝ : Category E
⊢ functorExtension₂ C D ⋙ (whiskeringLeft C (Karoubi C) (Karoubi D)).obj (toKaroubi C) =
    (whiskeringRight C D (Karoubi D)).obj (toKaroubi D)
Theorem: AlgEquiv.arrowCongr_symm
File: Mathlib/Algebra/Algebra/Equiv.lean

tactic: ext
state_before: R : Type u
A₁ : Type v
A₂ : Type w
A₃ : Type u₁
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A₁
inst✝⁸ : Semiring A₂
inst✝⁷ : Semiring A₃
inst✝⁶ : Algebra R A₁
inst✝⁵ : Algebra R A₂
inst✝⁴ : Algebra R A₃
e : A₁ ≃ₐ[R] A₂
A₁' : Type u_1
A₂' : Type u_2
inst✝³ : Semiring A₁'
inst✝² : Semiring A₂'
inst✝¹ : Algebra R A₁'
inst✝ : Algebra R A₂'
e₁ : A₁ ≃ₐ[R] A₁'
e₂ : A₂ ≃ₐ[R] A₂'
⊢ (arrowCongr e₁ e₂).symm = arrowCongr (symm e₁) (symm e₂)

tactic: rfl
state_before: case H.H
R : Type u
A₁ : Type v
A₂ : Type w
A₃ : Type u₁
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring A₁
inst✝⁸ : Semiring A₂
inst✝⁷ : Semiring A₃
inst✝⁶ : Algebra R A₁
inst✝⁵ : Algebra R A₂
inst✝⁴ : Algebra R A₃
e : A₁ ≃ₐ[R] A₂
A₁' : Type u_1
A₂' : Type u_2
inst✝³ : Semiring A₁'
inst✝² : Semiring A₂'
inst✝¹ : Algebra R A₁'
inst✝ : Algebra R A₂'
e₁ : A₁ ≃ₐ[R] A₁'
e₂ : A₂ ≃ₐ[R] A₂'
x✝¹ : A₁' →ₐ[R] A₂'
x✝ : A₁
⊢ ↑(↑(arrowCongr e₁ e₂).symm x✝¹) x✝ = ↑(↑(arrowCongr (symm e₁) (symm e₂)) x✝¹) x✝
Theorem: Nat.eq_zero_of_mul_eq_zero
File: Mathlib/Init/Data/Nat/Lemmas.lean

tactic: rw [succ_mul]
state_before: n m : ℕ
⊢ succ n * m = 0 → succ n = 0 ∨ m = 0

tactic: intro h
state_before: n m : ℕ
⊢ n * m + m = 0 → succ n = 0 ∨ m = 0

tactic: exact Or.inr (Nat.eq_zero_of_add_eq_zero_left h)
state_before: n m : ℕ
h : n * m + m = 0
⊢ succ n = 0 ∨ m = 0
Theorem: CategoryTheory.Adjunction.homEquiv_naturality_left_symm
File: Mathlib/CategoryTheory/Adjunction/Basic.lean

tactic: rw [homEquiv_counit, F.map_comp, assoc, adj.homEquiv_counit.symm]
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
F : C ⥤ D
G : D ⥤ C
adj : F ⊣ G
X' X : C
Y Y' : D
f : X' ⟶ X
g : X ⟶ G.obj Y
⊢ ↑(homEquiv adj X' Y).symm (f ≫ g) = F.map f ≫ ↑(homEquiv adj X Y).symm g
Theorem: MeasureTheory.Measure.restrict_apply_univ
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [restrict_apply MeasurableSet.univ, Set.univ_inter]
state_before: α : Type u_1
β : Type ?u.285491
γ : Type ?u.285494
δ : Type ?u.285497
ι : Type ?u.285500
R : Type ?u.285503
R' : Type ?u.285506
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t s : Set α
⊢ ↑↑(restrict μ s) univ = ↑↑μ s
Theorem: LieIdeal.map_lowerCentralSeries_le
File: Mathlib/Algebra/Lie/Nilpotent.lean

tactic: induction' k with k ih
state_before: R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
k : ℕ
f : L →ₗ⁅R⁆ L'
⊢ map f (lowerCentralSeries R L L k) ≤ lowerCentralSeries R L' L' k

tactic: simp only [Nat.zero_eq, LieModule.lowerCentralSeries_zero, le_top]
state_before: case zero
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
⊢ map f (lowerCentralSeries R L L Nat.zero) ≤ lowerCentralSeries R L' L' Nat.zero

tactic: simp only [LieModule.lowerCentralSeries_succ]
state_before: case succ
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
k : ℕ
ih : map f (lowerCentralSeries R L L k) ≤ lowerCentralSeries R L' L' k
⊢ map f (lowerCentralSeries R L L (Nat.succ k)) ≤ lowerCentralSeries R L' L' (Nat.succ k)

tactic: exact le_trans (LieIdeal.map_bracket_le f) (LieSubmodule.mono_lie _ _ _ _ le_top ih)
state_before: case succ
R : Type u
L : Type v
L' : Type w
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
k : ℕ
ih : map f (lowerCentralSeries R L L k) ≤ lowerCentralSeries R L' L' k
⊢ map f ⁅⊤, lowerCentralSeries R L L k⁆ ≤ ⁅⊤, lowerCentralSeries R L' L' k⁆
Theorem: BooleanRing.sup_inf_self
File: Mathlib/Algebra/Ring/BooleanRing.lean

tactic: rw [← mul_assoc, mul_self, add_assoc, add_self, add_zero]
state_before: α : Type u_1
β : Type ?u.14060
γ : Type ?u.14063
inst✝² : BooleanRing α
inst✝¹ : BooleanRing β
inst✝ : BooleanRing γ
a b : α
⊢ a + a * b + a * (a * b) = a
Theorem: Asymptotics.isLittleO_neg_right
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simp only [IsLittleO_def]
state_before: α : Type u_1
β : Type ?u.132478
E : Type u_2
F : Type ?u.132484
G : Type ?u.132487
E' : Type ?u.132490
F' : Type u_3
G' : Type ?u.132496
E'' : Type ?u.132499
F'' : Type ?u.132502
G'' : Type ?u.132505
R : Type ?u.132508
R' : Type ?u.132511
𝕜 : Type ?u.132514
𝕜' : Type ?u.132517
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (f =o[l] fun x => -g' x) ↔ f =o[l] g'

tactic: exact forall₂_congr fun _ _ => isBigOWith_neg_right
state_before: α : Type u_1
β : Type ?u.132478
E : Type u_2
F : Type ?u.132484
G : Type ?u.132487
E' : Type ?u.132490
F' : Type u_3
G' : Type ?u.132496
E'' : Type ?u.132499
F'' : Type ?u.132502
G'' : Type ?u.132505
R : Type ?u.132508
R' : Type ?u.132511
𝕜 : Type ?u.132514
𝕜' : Type ?u.132517
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ (∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f fun x => -g' x) ↔ ∀ ⦃c : ℝ⦄, 0 < c → IsBigOWith c l f g'
Theorem: ENNReal.toNNReal_sSup
File: Mathlib/Data/Real/ENNReal.lean

tactic: have hf : ∀ i, ((↑) : s → ℝ≥0∞) i ≠ ∞ := fun ⟨r, rs⟩ => hs r rs
state_before: α : Type ?u.841724
β : Type ?u.841727
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort ?u.841744
f g : ι → ℝ≥0∞
s : Set ℝ≥0∞
hs : ∀ (r : ℝ≥0∞), r ∈ s → r ≠ ⊤
⊢ ENNReal.toNNReal (sSup s) = sSup (ENNReal.toNNReal '' s)

tactic: simpa only [← sSup_range, ← image_eq_range, Subtype.range_coe_subtype] using (toNNReal_iSup hf)
state_before: α : Type ?u.841724
β : Type ?u.841727
a b c d : ℝ≥0∞
r p q : ℝ≥0
ι : Sort ?u.841744
f g : ι → ℝ≥0∞
s : Set ℝ≥0∞
hs : ∀ (r : ℝ≥0∞), r ∈ s → r ≠ ⊤
hf : ∀ (i : { x // x ∈ s }), ↑i ≠ ⊤
⊢ ENNReal.toNNReal (sSup s) = sSup (ENNReal.toNNReal '' s)
Theorem: LowerSet.mem_iInf₂_iff
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simp_rw [mem_iInf_iff]
state_before: α : Type u_1
β : Type ?u.77881
γ : Type ?u.77884
ι : Sort u_2
κ : ι → Sort u_3
inst✝ : LE α
S : Set (LowerSet α)
s t : LowerSet α
a : α
f : (i : ι) → κ i → LowerSet α
⊢ (a ∈ ⨅ (i : ι) (j : κ i), f i j) ↔ ∀ (i : ι) (j : κ i), a ∈ f i j
Theorem: MeasureTheory.OuterMeasure.isCaratheodory_compl
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: simp [IsCaratheodory, diff_eq, add_comm]
state_before: α : Type u
m : OuterMeasure α
s s₁ s₂ : Set α
⊢ IsCaratheodory m s₁ → IsCaratheodory m (s₁ᶜ)
Theorem: CircleDeg1Lift.commute_add_int
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: simpa [sub_eq_add_neg] using f.commute_sub_nat (n + 1)
state_before: f g : CircleDeg1Lift
n : ℕ
⊢ Function.Commute ↑f fun x => x + ↑-[n+1]
Theorem: RatFunc.eval_X
File: Mathlib/FieldTheory/RatFunc.lean

tactic: simp [eval]
state_before: K : Type u
inst✝¹ : Field K
L : Type u_1
inst✝ : Field L
f : K →+* L
a : L
⊢ eval f a X = a
Theorem: LocalEquiv.isImage_source_target
File: Mathlib/Logic/Equiv/LocalEquiv.lean

tactic: simp [hx]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.31348
δ : Type ?u.31351
e : LocalEquiv α β
e' : LocalEquiv β γ
x : α
hx : x ∈ e.source
⊢ ↑e x ∈ e.target ↔ x ∈ e.source
Theorem: Submodule.disjoint_def
File: Mathlib/Algebra/Module/Submodule/Lattice.lean

tactic: simp
state_before: R : Type u_1
S : Type ?u.170489
M : Type u_2
inst✝⁶ : Semiring R
inst✝⁵ : Semiring S
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : Module S M
inst✝¹ : SMul S R
inst✝ : IsScalarTower S R M
p✝ q p p' : Submodule R M
⊢ (∀ (x : M), x ∈ p ∧ x ∈ p' → x ∈ {0}) ↔ ∀ (x : M), x ∈ p → x ∈ p' → x = 0
Theorem: Polynomial.support_opRingEquiv
File: Mathlib/RingTheory/Polynomial/Opposites.lean

tactic: induction' p using MulOpposite.rec' with p
state_before: R : Type u_1
inst✝ : Semiring R
p : R[X]ᵐᵒᵖ
⊢ support (↑(opRingEquiv R) p) = support (unop p)

tactic: cases p
state_before: case h
R : Type u_1
inst✝ : Semiring R
p : R[X]
⊢ support (↑(opRingEquiv R) (op p)) = support (unop (op p))

tactic: exact Finsupp.support_mapRange_of_injective (map_zero _) _ op_injective
state_before: case h.ofFinsupp
R : Type u_1
inst✝ : Semiring R
toFinsupp✝ : AddMonoidAlgebra R ℕ
⊢ support (↑(opRingEquiv R) (op { toFinsupp := toFinsupp✝ })) = support (unop (op { toFinsupp := toFinsupp✝ }))
Theorem: List.exists_erase_eq
File: Std/Data/List/Lemmas.lean

tactic: let ⟨_, l₁, l₂, h₁, e, h₂, h₃⟩ := exists_of_eraseP h (beq_self_eq_true _)
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
h : a ∈ l
⊢ ∃ l₁ l₂, ¬a ∈ l₁ ∧ l = l₁ ++ a :: l₂ ∧ List.erase l a = l₁ ++ l₂

tactic: rw [erase_eq_eraseP]
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
h : a ∈ l
w✝ : α
l₁ l₂ : List α
h₁ : ∀ (b : α), b ∈ l₁ → ¬(a == b) = true
e : (a == w✝) = true
h₂ : l = l₁ ++ w✝ :: l₂
h₃ : eraseP (BEq.beq a) l = l₁ ++ l₂
⊢ ∃ l₁ l₂, ¬a ∈ l₁ ∧ l = l₁ ++ a :: l₂ ∧ List.erase l a = l₁ ++ l₂

tactic: exact ⟨l₁, l₂, fun h => h₁ _ h (beq_self_eq_true _), eq_of_beq e ▸ h₂, h₃⟩
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
h : a ∈ l
w✝ : α
l₁ l₂ : List α
h₁ : ∀ (b : α), b ∈ l₁ → ¬(a == b) = true
e : (a == w✝) = true
h₂ : l = l₁ ++ w✝ :: l₂
h₃ : eraseP (BEq.beq a) l = l₁ ++ l₂
⊢ ∃ l₁ l₂, ¬a ∈ l₁ ∧ l = l₁ ++ a :: l₂ ∧ eraseP (fun b => decide (a = b)) l = l₁ ++ l₂
Theorem: riesz_extension
File: Mathlib/Analysis/Convex/Cone/Basic.lean

tactic: rcases RieszExtension.exists_top s f nonneg dense
  with ⟨⟨g_dom, g⟩, ⟨-, hfg⟩, rfl : g_dom = ⊤, hgs⟩
state_before: 𝕜 : Type ?u.280700
E : Type u_1
F : Type ?u.280706
G : Type ?u.280709
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s : ConvexCone ℝ E
f : E →ₗ.[ℝ] ℝ
nonneg : ∀ (x : { x // x ∈ f.domain }), ↑x ∈ s → 0 ≤ ↑f x
dense : ∀ (y : E), ∃ x, ↑x + y ∈ s
⊢ ∃ g, (∀ (x : { x // x ∈ f.domain }), ↑g ↑x = ↑f x) ∧ ∀ (x : E), x ∈ s → 0 ≤ ↑g x

tactic: refine' ⟨g.comp (LinearMap.id.codRestrict ⊤ fun _ ↦ trivial), _, _⟩
state_before: case intro.mk.intro.intro.intro
𝕜 : Type ?u.280700
E : Type u_1
F : Type ?u.280706
G : Type ?u.280709
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s : ConvexCone ℝ E
f : E →ₗ.[ℝ] ℝ
nonneg : ∀ (x : { x // x ∈ f.domain }), ↑x ∈ s → 0 ≤ ↑f x
dense : ∀ (y : E), ∃ x, ↑x + y ∈ s
g : { x // x ∈ ⊤ } →ₗ[ℝ] ℝ
hfg :
  ∀ ⦃x : { x // x ∈ f.domain }⦄ ⦃y : { x // x ∈ { domain := ⊤, toFun := g }.domain }⦄,
    ↑x = ↑y → ↑f x = ↑{ domain := ⊤, toFun := g } y
hgs : ∀ (x : { x // x ∈ { domain := ⊤, toFun := g }.domain }), ↑x ∈ s → 0 ≤ ↑{ domain := ⊤, toFun := g } x
⊢ ∃ g, (∀ (x : { x // x ∈ f.domain }), ↑g ↑x = ↑f x) ∧ ∀ (x : E), x ∈ s → 0 ≤ ↑g x

tactic: exact fun x => (hfg rfl).symm
state_before: case intro.mk.intro.intro.intro.refine'_1
𝕜 : Type ?u.280700
E : Type u_1
F : Type ?u.280706
G : Type ?u.280709
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s : ConvexCone ℝ E
f : E →ₗ.[ℝ] ℝ
nonneg : ∀ (x : { x // x ∈ f.domain }), ↑x ∈ s → 0 ≤ ↑f x
dense : ∀ (y : E), ∃ x, ↑x + y ∈ s
g : { x // x ∈ ⊤ } →ₗ[ℝ] ℝ
hfg :
  ∀ ⦃x : { x // x ∈ f.domain }⦄ ⦃y : { x // x ∈ { domain := ⊤, toFun := g }.domain }⦄,
    ↑x = ↑y → ↑f x = ↑{ domain := ⊤, toFun := g } y
hgs : ∀ (x : { x // x ∈ { domain := ⊤, toFun := g }.domain }), ↑x ∈ s → 0 ≤ ↑{ domain := ⊤, toFun := g } x
⊢ ∀ (x : { x // x ∈ f.domain }), ↑(comp g (LinearMap.codRestrict ⊤ LinearMap.id (_ : E → True))) ↑x = ↑f x

tactic: exact fun x hx => hgs ⟨x, _⟩ hx
state_before: case intro.mk.intro.intro.intro.refine'_2
𝕜 : Type ?u.280700
E : Type u_1
F : Type ?u.280706
G : Type ?u.280709
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s : ConvexCone ℝ E
f : E →ₗ.[ℝ] ℝ
nonneg : ∀ (x : { x // x ∈ f.domain }), ↑x ∈ s → 0 ≤ ↑f x
dense : ∀ (y : E), ∃ x, ↑x + y ∈ s
g : { x // x ∈ ⊤ } →ₗ[ℝ] ℝ
hfg :
  ∀ ⦃x : { x // x ∈ f.domain }⦄ ⦃y : { x // x ∈ { domain := ⊤, toFun := g }.domain }⦄,
    ↑x = ↑y → ↑f x = ↑{ domain := ⊤, toFun := g } y
hgs : ∀ (x : { x // x ∈ { domain := ⊤, toFun := g }.domain }), ↑x ∈ s → 0 ≤ ↑{ domain := ⊤, toFun := g } x
⊢ ∀ (x : E), x ∈ s → 0 ≤ ↑(comp g (LinearMap.codRestrict ⊤ LinearMap.id (_ : E → True))) x