1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsCyclotomicExtension.zeta_isRoot
File: Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean

tactic: convert aeval_zeta n A B using 0
state_before: p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : IsCyclotomicExtension {n} A B
inst✝¹ : IsDomain B
inst✝ : NeZero ↑↑n
⊢ (cyclotomic (↑n) B).IsRoot (zeta n A B)
state_after: case a
p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : IsCyclotomicExtension {n} A B
inst✝¹ : IsDomain B
inst✝ : NeZero ↑↑n
⊢ (cyclotomic (↑n) B).IsRoot (zeta n A B) ↔ (aeval (zeta n A B)) (cyclotomic (↑n) A) = 0

tactic: rw [IsRoot.def, aeval_def, eval₂_eq_eval_map, map_cyclotomic]
state_before: case a
p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : Algebra A B
inst✝² : IsCyclotomicExtension {n} A B
inst✝¹ : IsDomain B
inst✝ : NeZero ↑↑n
⊢ (cyclotomic (↑n) B).IsRoot (zeta n A B) ↔ (aeval (zeta n A B)) (cyclotomic (↑n) A) = 0
state_after: no goals
Theorem: CategoryTheory.Abelian.Pseudoelement.comp_apply
File: Mathlib/CategoryTheory/Abelian/Pseudoelements.lean

tactic: simp only [app]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q R : C
f : P ⟶ Q
g : Q ⟶ R
a : Pseudoelement P
x : Over P
⊢ (fun g_1 => app (f ≫ g) g_1) x ≈ (fun g_1 => app g g_1) ((fun g => app f g) x)
state_after: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q R : C
f : P ⟶ Q
g : Q ⟶ R
a : Pseudoelement P
x : Over P
⊢ Over.mk (x.hom ≫ f ≫ g) ≈ Over.mk ((Over.mk (x.hom ≫ f)).hom ≫ g)

tactic: rw [← Category.assoc, Over.coe_hom]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Abelian C
P Q R : C
f : P ⟶ Q
g : Q ⟶ R
a : Pseudoelement P
x : Over P
⊢ Over.mk (x.hom ≫ f ≫ g) ≈ Over.mk ((Over.mk (x.hom ≫ f)).hom ≫ g)
state_after: no goals
Theorem: Cubic.degree_of_b_eq_zero
File: Mathlib/Algebra/CubicDiscriminant.lean

tactic: simpa only [of_b_eq_zero ha hb] using degree_linear_le
state_before: R : Type u_1
S : Type u_2
F : Type u_3
K : Type u_4
P Q : Cubic R
a b c d a' b' c' d' : R
inst✝ : Semiring R
ha : P.a = 0
hb : P.b = 0
⊢ P.toPoly.degree ≤ 1
state_after: no goals
Theorem: IsClosed.everywherePosSubset
File: Mathlib/MeasureTheory/Measure/EverywherePos.lean

tactic: rcases exists_isOpen_everywherePosSubset_eq_diff μ s with ⟨u, u_open, hu⟩
state_before: α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ ν : Measure α
s k : Set α
hs : IsClosed s
⊢ IsClosed (μ.everywherePosSubset s)
state_after: case intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ ν : Measure α
s k : Set α
hs : IsClosed s
u : Set α
u_open : IsOpen u
hu : μ.everywherePosSubset s = s \ u
⊢ IsClosed (μ.everywherePosSubset s)

tactic: rw [hu]
state_before: case intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ ν : Measure α
s k : Set α
hs : IsClosed s
u : Set α
u_open : IsOpen u
hu : μ.everywherePosSubset s = s \ u
⊢ IsClosed (μ.everywherePosSubset s)
state_after: case intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ ν : Measure α
s k : Set α
hs : IsClosed s
u : Set α
u_open : IsOpen u
hu : μ.everywherePosSubset s = s \ u
⊢ IsClosed (s \ u)

tactic: exact hs.sdiff u_open
state_before: case intro.intro
α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ ν : Measure α
s k : Set α
hs : IsClosed s
u : Set α
u_open : IsOpen u
hu : μ.everywherePosSubset s = s \ u
⊢ IsClosed (s \ u)
state_after: no goals
Theorem: ExteriorAlgebra.leftInverse_map_iff
File: Mathlib/LinearAlgebra/ExteriorAlgebra/Basic.lean

tactic: refine ⟨fun h x => ?_, fun h => CliffordAlgebra.leftInverse_map_of_leftInverse _ _ h⟩
state_before: R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
f : M →ₗ[R] N
g : N →ₗ[R] M
⊢ LeftInverse ⇑(map g) ⇑(map f) ↔ LeftInverse ⇑g ⇑f
state_after: R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
f : M →ₗ[R] N
g : N →ₗ[R] M
h : LeftInverse ⇑(map g) ⇑(map f)
x : M
⊢ g (f x) = x

tactic: simpa using h (ι _ x)
state_before: R : Type u1
inst✝⁸ : CommRing R
M : Type u2
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
A : Type u_1
inst✝⁵ : Semiring A
inst✝⁴ : Algebra R A
N : Type u4
N' : Type u5
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : AddCommGroup N'
inst✝ : Module R N'
f : M →ₗ[R] N
g : N →ₗ[R] M
h : LeftInverse ⇑(map g) ⇑(map f)
x : M
⊢ g (f x) = x
state_after: no goals
Theorem: MeasureTheory.exists_pos_measure_of_cover
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

tactic: contrapose! hμ with H
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ i, U i = univ
hμ : μ ≠ 0
⊢ ∃ i, 0 < μ (U i)
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ i, U i = univ
H : ∀ (i : ι), μ (U i) ≤ 0
⊢ μ = 0

tactic: rw [← measure_univ_eq_zero, ← hU]
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ i, U i = univ
H : ∀ (i : ι), μ (U i) ≤ 0
⊢ μ = 0
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ i, U i = univ
H : ∀ (i : ι), μ (U i) ≤ 0
⊢ μ (⋃ i, U i) = 0

tactic: exact measure_iUnion_null fun i => nonpos_iff_eq_zero.1 (H i)
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
inst✝ : Countable ι
U : ι → Set α
hU : ⋃ i, U i = univ
H : ∀ (i : ι), μ (U i) ≤ 0
⊢ μ (⋃ i, U i) = 0
state_after: no goals
Theorem: NNReal.tsum_mul_left
File: Mathlib/Topology/Instances/NNReal.lean

tactic: simp only [coe_tsum, NNReal.coe_mul, tsum_mul_left]
state_before: α : Type u_1
a : ℝ≥0
f : α → ℝ≥0
⊢ ↑(∑' (x : α), a * f x) = ↑(a * ∑' (x : α), f x)
state_after: no goals
Theorem: Set.range_list_getD
File: Mathlib/Data/Set/List.lean

tactic: simp only [range_list_get?, image_insert_eq, Option.getD, image_image, image_id']
state_before: α : Type u_1
β : Type u_2
l : List α
d : α
⊢ (fun o => o.getD d) '' range l.get? = insert d {x | x ∈ l}
state_after: no goals
Theorem: Polynomial.natDegree_add_C
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rcases eq_or_ne p 0 with rfl | hp
state_before: R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
⊢ (p + C a).natDegree = p.natDegree
state_after: case inl
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type u_1
a : R
⊢ (0 + C a).natDegree = natDegree 0

case inr
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
⊢ (p + C a).natDegree = p.natDegree

tactic: by_cases hpd : p.degree ≤ 0
state_before: case inr
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
⊢ (p + C a).natDegree = p.natDegree
state_after: case pos
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
hpd : p.degree ≤ 0
⊢ (p + C a).natDegree = p.natDegree

case neg
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
hpd : ¬p.degree ≤ 0
⊢ (p + C a).natDegree = p.natDegree

tactic: simp
state_before: case inl
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p q : R[X]
ι : Type u_1
a : R
⊢ (0 + C a).natDegree = natDegree 0
state_after: no goals

tactic: rw [eq_C_of_degree_le_zero hpd, ← C_add, natDegree_C, natDegree_C]
state_before: case pos
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
hpd : p.degree ≤ 0
⊢ (p + C a).natDegree = p.natDegree
state_after: no goals

tactic: rw [not_le, degree_eq_natDegree hp, Nat.cast_pos, ← natDegree_C a] at hpd
state_before: case neg
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
hpd : ¬p.degree ≤ 0
⊢ (p + C a).natDegree = p.natDegree
state_after: case neg
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
hpd : (C a).natDegree < p.natDegree
⊢ (p + C a).natDegree = p.natDegree

tactic: exact natDegree_add_eq_left_of_natDegree_lt hpd
state_before: case neg
R : Type u
S : Type v
a✝ b c d : R
n m : ℕ
inst✝ : Semiring R
p✝ p q : R[X]
ι : Type u_1
a : R
hp : p ≠ 0
hpd : (C a).natDegree < p.natDegree
⊢ (p + C a).natDegree = p.natDegree
state_after: no goals
Theorem: Filter.EventuallyEq.derivWithin_eq
File: Mathlib/Analysis/Calculus/Deriv/Basic.lean

tactic: unfold derivWithin
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
hs : f₁ =ᶠ[𝓝[s] x] f
hx : f₁ x = f x
⊢ derivWithin f₁ s x = derivWithin f s x
state_after: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
hs : f₁ =ᶠ[𝓝[s] x] f
hx : f₁ x = f x
⊢ (fderivWithin 𝕜 f₁ s x) 1 = (fderivWithin 𝕜 f s x) 1

tactic: rw [hs.fderivWithin_eq hx]
state_before: 𝕜 : Type u
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type v
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type w
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
hs : f₁ =ᶠ[𝓝[s] x] f
hx : f₁ x = f x
⊢ (fderivWithin 𝕜 f₁ s x) 1 = (fderivWithin 𝕜 f s x) 1
state_after: no goals
Theorem: Continuous.fourier_inversion_inv
File: Mathlib/Analysis/Fourier/Inversion.lean

tactic: ext v
state_before: V : Type u_1
E : Type u_2
inst✝⁷ : NormedAddCommGroup V
inst✝⁶ : InnerProductSpace ℝ V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : FiniteDimensional ℝ V
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
f : V → E
inst✝ : CompleteSpace E
h : Continuous f
hf : Integrable f volume
h'f : Integrable (𝓕 f) volume
⊢ 𝓕 (𝓕⁻ f) = f
state_after: case h
V : Type u_1
E : Type u_2
inst✝⁷ : NormedAddCommGroup V
inst✝⁶ : InnerProductSpace ℝ V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : FiniteDimensional ℝ V
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
f : V → E
inst✝ : CompleteSpace E
h : Continuous f
hf : Integrable f volume
h'f : Integrable (𝓕 f) volume
v : V
⊢ 𝓕 (𝓕⁻ f) v = f v

tactic: exact hf.fourier_inversion_inv h'f h.continuousAt
state_before: case h
V : Type u_1
E : Type u_2
inst✝⁷ : NormedAddCommGroup V
inst✝⁶ : InnerProductSpace ℝ V
inst✝⁵ : MeasurableSpace V
inst✝⁴ : BorelSpace V
inst✝³ : FiniteDimensional ℝ V
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℂ E
f : V → E
inst✝ : CompleteSpace E
h : Continuous f
hf : Integrable f volume
h'f : Integrable (𝓕 f) volume
v : V
⊢ 𝓕 (𝓕⁻ f) v = f v
state_after: no goals
Theorem: schnirelmannDensity_congr'
File: Mathlib/Combinatorics/Schnirelmann.lean

tactic: rw [schnirelmannDensity, schnirelmannDensity]
state_before: A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ schnirelmannDensity A = schnirelmannDensity B
state_after: A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ ⨅ n, ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n = ⨅ n, ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n

tactic: congr
state_before: A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ ⨅ n, ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n = ⨅ n, ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n
state_after: case e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ (fun n => ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n) = fun n =>
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n

tactic: ext ⟨n, hn⟩
state_before: case e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
⊢ (fun n => ↑(filter (fun x => x ∈ A) (Ioc 0 ↑n)).card / ↑↑n) = fun n =>
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑n)).card / ↑↑n
state_after: case e_s.h.mk
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ ↑(filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩ =
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩

tactic: congr 3
state_before: case e_s.h.mk
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ ↑(filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩ =
    ↑(filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)).card / ↑↑⟨n, hn⟩
state_after: case e_s.h.mk.e_a.e_a.e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) = filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)

tactic: ext x
state_before: case e_s.h.mk.e_a.e_a.e_s
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
⊢ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) = filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)
state_after: case e_s.h.mk.e_a.e_a.e_s.a
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
x : ℕ
⊢ x ∈ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) ↔ x ∈ filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)

tactic: aesop
state_before: case e_s.h.mk.e_a.e_a.e_s.a
A : Set ℕ
inst✝¹ : DecidablePred fun x => x ∈ A
B : Set ℕ
inst✝ : DecidablePred fun x => x ∈ B
h : ∀ n > 0, n ∈ A ↔ n ∈ B
n : ℕ
hn : 0 < n
x : ℕ
⊢ x ∈ filter (fun x => x ∈ A) (Ioc 0 ↑⟨n, hn⟩) ↔ x ∈ filter (fun x => x ∈ B) (Ioc 0 ↑⟨n, hn⟩)
state_after: no goals
Theorem: IsLindelof.union
File: Mathlib/Topology/Compactness/Lindelof.lean

tactic: rw [union_eq_iUnion]
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
ht : IsLindelof t
⊢ IsLindelof (s ∪ t)
state_after: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
ht : IsLindelof t
⊢ IsLindelof (⋃ b, bif b then s else t)

tactic: exact isLindelof_iUnion fun b => by cases b <;> assumption
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
ht : IsLindelof t
⊢ IsLindelof (⋃ b, bif b then s else t)
state_after: no goals

tactic: cases b <;> assumption
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
hs : IsLindelof s
ht : IsLindelof t
b : Bool
⊢ IsLindelof (bif b then s else t)
state_after: no goals
Theorem: WithTop.coe_sSup'
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: change _ = ite _ _ _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ↑(sSup s) = sSup ((fun a => ↑a) '' s)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ↑(sSup s) =
    if ⊤ ∈ (fun a => ↑a) '' s then ⊤
    else
      if BddAbove ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s)) then ↑(sSup ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s))) else ⊤

tactic: rw [if_neg, preimage_image_eq, if_pos hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ↑(sSup s) =
    if ⊤ ∈ (fun a => ↑a) '' s then ⊤
    else
      if BddAbove ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s)) then ↑(sSup ((fun a => ↑a) ⁻¹' ((fun a => ↑a) '' s))) else ⊤
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ Injective fun a => ↑a

case hnc
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ⊤ ∉ (fun a => ↑a) '' s

tactic: exact Option.some_injective _
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ Injective fun a => ↑a
state_after: no goals

tactic: rintro ⟨x, _, ⟨⟩⟩
state_before: case hnc
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : SupSet α
s : Set α
hs : BddAbove s
⊢ ⊤ ∉ (fun a => ↑a) '' s
state_after: no goals
Theorem: CategoryTheory.Equivalence.changeFunctor_refl
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: aesop_cat
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
e : C ≌ D
⊢ e.changeFunctor (Iso.refl e.functor) = e
state_after: no goals
Theorem: csSup_eq_univ_of_not_bddAbove
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: rw [csSup_of_not_bddAbove hs, csSup_of_not_bddAbove (s := univ)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrder α
s✝ t : Set α
a b : α
s : Set α
hs : ¬BddAbove s
⊢ sSup s = sSup univ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrder α
s✝ t : Set α
a b : α
s : Set α
hs : ¬BddAbove s
⊢ ¬BddAbove univ

tactic: contrapose! hs
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrder α
s✝ t : Set α
a b : α
s : Set α
hs : ¬BddAbove s
⊢ ¬BddAbove univ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrder α
s✝ t : Set α
a b : α
s : Set α
hs : BddAbove univ
⊢ BddAbove s

tactic: exact hs.mono (subset_univ _)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝ : ConditionallyCompleteLinearOrder α
s✝ t : Set α
a b : α
s : Set α
hs : BddAbove univ
⊢ BddAbove s
state_after: no goals
Theorem: minpoly.dvd_map_of_isScalarTower
File: Mathlib/FieldTheory/Minpoly/Field.lean

tactic: refine minpoly.dvd K x ?_
state_before: A✝ : Type u_1
B : Type u_2
inst✝⁹ : Field A✝
inst✝⁸ : Ring B
inst✝⁷ : Algebra A✝ B
x✝ : B
A : Type u_3
K : Type u_4
R : Type u_5
inst✝⁶ : CommRing A
inst✝⁵ : Field K
inst✝⁴ : CommRing R
inst✝³ : Algebra A K
inst✝² : Algebra A R
inst✝¹ : Algebra K R
inst✝ : IsScalarTower A K R
x : R
⊢ minpoly K x ∣ map (algebraMap A K) (minpoly A x)
state_after: A✝ : Type u_1
B : Type u_2
inst✝⁹ : Field A✝
inst✝⁸ : Ring B
inst✝⁷ : Algebra A✝ B
x✝ : B
A : Type u_3
K : Type u_4
R : Type u_5
inst✝⁶ : CommRing A
inst✝⁵ : Field K
inst✝⁴ : CommRing R
inst✝³ : Algebra A K
inst✝² : Algebra A R
inst✝¹ : Algebra K R
inst✝ : IsScalarTower A K R
x : R
⊢ (Polynomial.aeval x) (map (algebraMap A K) (minpoly A x)) = 0

tactic: rw [aeval_map_algebraMap, minpoly.aeval]
state_before: A✝ : Type u_1
B : Type u_2
inst✝⁹ : Field A✝
inst✝⁸ : Ring B
inst✝⁷ : Algebra A✝ B
x✝ : B
A : Type u_3
K : Type u_4
R : Type u_5
inst✝⁶ : CommRing A
inst✝⁵ : Field K
inst✝⁴ : CommRing R
inst✝³ : Algebra A K
inst✝² : Algebra A R
inst✝¹ : Algebra K R
inst✝ : IsScalarTower A K R
x : R
⊢ (Polynomial.aeval x) (map (algebraMap A K) (minpoly A x)) = 0
state_after: no goals
Theorem: SetLike.algebraMap_mem_graded
File: Mathlib/Algebra/DirectSum/Internal.lean

tactic: rw [Algebra.algebraMap_eq_smul_one]
state_before: ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : CommSemiring S
inst✝² : Semiring R
inst✝¹ : Algebra S R
A : ι → Submodule S R
inst✝ : GradedOne A
s : S
⊢ (algebraMap S R) s ∈ A 0
state_after: ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : CommSemiring S
inst✝² : Semiring R
inst✝¹ : Algebra S R
A : ι → Submodule S R
inst✝ : GradedOne A
s : S
⊢ s • 1 ∈ A 0

tactic: exact (A 0).smul_mem s <| SetLike.one_mem_graded _
state_before: ι : Type u_1
σ : Type u_2
S : Type u_3
R : Type u_4
inst✝⁴ : Zero ι
inst✝³ : CommSemiring S
inst✝² : Semiring R
inst✝¹ : Algebra S R
A : ι → Submodule S R
inst✝ : GradedOne A
s : S
⊢ s • 1 ∈ A 0
state_after: no goals
Theorem: interior_eq_nhds'
File: Mathlib/Topology/Basic.lean

tactic: simp only [mem_interior, mem_nhds_iff, mem_setOf_eq]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x✝ : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
x : X
⊢ x ∈ interior s ↔ x ∈ {x | s ∈ 𝓝 x}
state_after: no goals
Theorem: MeasureTheory.Measure.restrict_restrict_of_subset
File: Mathlib/MeasureTheory/Measure/Restrict.lean

tactic: ext1 u hu
state_before: R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
⊢ (μ.restrict t).restrict s = μ.restrict s
state_after: case h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ ((μ.restrict t).restrict s) u = (μ.restrict s) u

tactic: rw [restrict_apply hu, restrict_apply hu, restrict_eq_self]
state_before: case h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ ((μ.restrict t).restrict s) u = (μ.restrict s) u
state_after: case h.h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ u ∩ s ⊆ t

tactic: exact inter_subset_right.trans h
state_before: case h.h
R : Type u_1
α : Type u_2
β : Type u_3
δ : Type u_4
γ : Type u_5
ι : Type u_6
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ u ∩ s ⊆ t
state_after: no goals
Theorem: ENNReal.toReal_le_coe_of_le_coe
File: Mathlib/Data/ENNReal/Basic.lean

tactic: lift a to ℝ≥0 using ne_top_of_le_ne_top coe_ne_top h
state_before: α : Type u_1
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a : ℝ≥0∞
b : ℝ≥0
h : a ≤ ↑b
⊢ a.toReal ≤ ↑b
state_after: case intro
α : Type u_1
a✝ b✝ c d : ℝ≥0∞
r p q b a : ℝ≥0
h : ↑a ≤ ↑b
⊢ (↑a).toReal ≤ ↑b

tactic: simpa using h
state_before: case intro
α : Type u_1
a✝ b✝ c d : ℝ≥0∞
r p q b a : ℝ≥0
h : ↑a ≤ ↑b
⊢ (↑a).toReal ≤ ↑b
state_after: no goals