1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: spectrum.subset_closedBall_norm
File: Mathlib/Analysis/NormedSpace/Spectrum.lean

tactic: simp [norm_le_norm_of_mem hk]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁴ : NormedField 𝕜
inst✝³ : NormedRing A
inst✝² : NormedAlgebra 𝕜 A
inst✝¹ : CompleteSpace A
inst✝ : NormOneClass A
a : A
k : 𝕜
hk : k ∈ σ a
⊢ k ∈ Metric.closedBall 0 ‖a‖
state_after: no goals
Theorem: Real.arctan_inv_2_add_arctan_inv_3
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean

tactic: rw [arctan_add] <;> norm_num
state_before: ⊢ arctan 2⁻¹ + arctan 3⁻¹ = π / 4
state_after: no goals
Theorem: CategoryTheory.Functor.postcomp_map_heq
File: Mathlib/CategoryTheory/EqToHom.lean

tactic: dsimp
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
H : D ⥤ E
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hmap : HEq (F.map f) (G.map f)
⊢ HEq ((F ⋙ H).map f) ((G ⋙ H).map f)
state_after: C : Type u₁
inst✝² : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
H : D ⥤ E
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hmap : HEq (F.map f) (G.map f)
⊢ HEq (H.map (F.map f)) (H.map (G.map f))

tactic: congr
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
β : Sort u_1
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
F G : C ⥤ D
X Y Z : C
f : X ⟶ Y
g : Y ⟶ Z
H : D ⥤ E
hx : F.obj X = G.obj X
hy : F.obj Y = G.obj Y
hmap : HEq (F.map f) (G.map f)
⊢ HEq (H.map (F.map f)) (H.map (G.map f))
state_after: no goals
Theorem: Int.ModEq.cancel_left_div_gcd
File: Mathlib/Data/Int/ModEq.lean

tactic: simpa [mul_comm] using h
state_before: m n a b c d : ℤ
hm : 0 < m
h : c * a ≡ c * b [ZMOD m]
⊢ a * c ≡ b * c [ZMOD m]
state_after: no goals
Theorem: Function.Antiperiodic.neg_eq
File: Mathlib/Algebra/Periodic.lean

tactic: simpa only [zero_add] using h.neg 0
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x : α
inst✝¹ : AddGroup α
inst✝ : InvolutiveNeg β
h : Antiperiodic f c
⊢ f (-c) = -f 0
state_after: no goals
Theorem: MeasureTheory.upcrossingsBefore_zero
File: Mathlib/Probability/Martingale/Upcrossing.lean

tactic: simp [upcrossingsBefore]
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f : ℕ → Ω → ℝ
N n m : ℕ
ω : Ω
ℱ : Filtration ℕ m0
⊢ upcrossingsBefore a b f 0 ω = 0
state_after: no goals
Theorem: Orientation.oangle_neg_orientation_eq_neg
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Basic.lean

tactic: simp [oangle]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x y : V
⊢ (-o).oangle x y = -o.oangle x y
state_after: no goals
Theorem: Polynomial.rootMultiplicity_mul'
File: Mathlib/Algebra/Polynomial/RingDivision.lean

tactic: simp_rw [eval_divByMonic_eq_trailingCoeff_comp] at hpq
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝ : CommRing R
p q : R[X]
x : R
hpq : eval x (p /ₘ (X - C x) ^ rootMultiplicity x p) * eval x (q /ₘ (X - C x) ^ rootMultiplicity x q) ≠ 0
⊢ rootMultiplicity x (p * q) = rootMultiplicity x p + rootMultiplicity x q
state_after: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝ : CommRing R
p q : R[X]
x : R
hpq : (p.comp (X + C x)).trailingCoeff * (q.comp (X + C x)).trailingCoeff ≠ 0
⊢ rootMultiplicity x (p * q) = rootMultiplicity x p + rootMultiplicity x q

tactic: simp_rw [rootMultiplicity_eq_natTrailingDegree, mul_comp, natTrailingDegree_mul' hpq]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝ : CommRing R
p q : R[X]
x : R
hpq : (p.comp (X + C x)).trailingCoeff * (q.comp (X + C x)).trailingCoeff ≠ 0
⊢ rootMultiplicity x (p * q) = rootMultiplicity x p + rootMultiplicity x q
state_after: no goals
Theorem: Polynomial.Monic.natDegree_mul_comm
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: by_cases h : q = 0
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q✝ r : R[X]
hp : p.Monic
q : R[X]
⊢ (p * q).natDegree = (q * p).natDegree
state_after: case pos
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q✝ r : R[X]
hp : p.Monic
q : R[X]
h : q = 0
⊢ (p * q).natDegree = (q * p).natDegree

case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q✝ r : R[X]
hp : p.Monic
q : R[X]
h : ¬q = 0
⊢ (p * q).natDegree = (q * p).natDegree

tactic: rw [hp.natDegree_mul' h, Polynomial.natDegree_mul', add_comm]
state_before: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q✝ r : R[X]
hp : p.Monic
q : R[X]
h : ¬q = 0
⊢ (p * q).natDegree = (q * p).natDegree
state_after: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q✝ r : R[X]
hp : p.Monic
q : R[X]
h : ¬q = 0
⊢ q.leadingCoeff * p.leadingCoeff ≠ 0

tactic: simpa [hp.leadingCoeff, leadingCoeff_ne_zero]
state_before: case neg
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q✝ r : R[X]
hp : p.Monic
q : R[X]
h : ¬q = 0
⊢ q.leadingCoeff * p.leadingCoeff ≠ 0
state_after: no goals

tactic: simp [h]
state_before: case pos
R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q✝ r : R[X]
hp : p.Monic
q : R[X]
h : q = 0
⊢ (p * q).natDegree = (q * p).natDegree
state_after: no goals
Theorem: LieSubmodule.lie_coe_mem_lie
File: Mathlib/Algebra/Lie/IdealOperations.lean

tactic: rw [lieIdeal_oper_eq_span]
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
x : ↥I
m : ↥N
⊢ ⁅↑x, ↑m⁆ ∈ ⁅I, N⁆
state_after: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
x : ↥I
m : ↥N
⊢ ⁅↑x, ↑m⁆ ∈ lieSpan R L {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: apply subset_lieSpan
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
x : ↥I
m : ↥N
⊢ ⁅↑x, ↑m⁆ ∈ lieSpan R L {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: case a
R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
x : ↥I
m : ↥N
⊢ ⁅↑x, ↑m⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}

tactic: use x, m
state_before: case a
R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
x : ↥I
m : ↥N
⊢ ⁅↑x, ↑m⁆ ∈ {m | ∃ x n, ⁅↑x, ↑n⁆ = m}
state_after: no goals
Theorem: continuous_generateFrom_iff
File: Mathlib/Topology/Order.lean

tactic: rw [continuous_iff_coinduced_le, le_generateFrom_iff_subset_isOpen]
state_before: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
t : TopologicalSpace α
b : Set (Set β)
⊢ Continuous f ↔ ∀ s ∈ b, IsOpen (f ⁻¹' s)
state_after: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
t : TopologicalSpace α
b : Set (Set β)
⊢ b ⊆ {s | IsOpen s} ↔ ∀ s ∈ b, IsOpen (f ⁻¹' s)

tactic: simp only [isOpen_coinduced, preimage_id', subset_def, mem_setOf]
state_before: α : Type u
β : Type v
γ : Type u_1
f : α → β
ι : Sort u_2
t : TopologicalSpace α
b : Set (Set β)
⊢ b ⊆ {s | IsOpen s} ↔ ∀ s ∈ b, IsOpen (f ⁻¹' s)
state_after: no goals
Theorem: CategoryTheory.Functor.IsCoverDense.ext
File: Mathlib/CategoryTheory/Sites/DenseSubsite.lean

tactic: apply (ℱ.cond (Sieve.coverByImage G X) (G.is_cover_of_isCoverDense K X)).isSeparatedFor.ext
state_before: C : Type u_1
inst✝⁴ : Category.{u_7, u_1} C
D : Type u_2
inst✝³ : Category.{u_6, u_2} D
E : Type u_3
inst✝² : Category.{?u.7212, u_3} E
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology E
A : Type u_4
inst✝¹ : Category.{?u.7264, u_4} A
G : C ⥤ D
inst✝ : G.IsCoverDense K
ℱ : SheafOfTypes K
X : D
s t : ℱ.val.obj { unop := X }
h : ∀ ⦃Y : C⦄ (f : G.obj Y ⟶ X), ℱ.val.map f.op s = ℱ.val.map f.op t
⊢ s = t
state_after: C : Type u_1
inst✝⁴ : Category.{u_7, u_1} C
D : Type u_2
inst✝³ : Category.{u_6, u_2} D
E : Type u_3
inst✝² : Category.{?u.7212, u_3} E
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology E
A : Type u_4
inst✝¹ : Category.{?u.7264, u_4} A
G : C ⥤ D
inst✝ : G.IsCoverDense K
ℱ : SheafOfTypes K
X : D
s t : ℱ.val.obj { unop := X }
h : ∀ ⦃Y : C⦄ (f : G.obj Y ⟶ X), ℱ.val.map f.op s = ℱ.val.map f.op t
⊢ ∀ ⦃Y : D⦄ ⦃f : Y ⟶ X⦄, (Sieve.coverByImage G X).arrows f → ℱ.val.map f.op s = ℱ.val.map f.op t

tactic: rintro Y _ ⟨Z, f₁, f₂, ⟨rfl⟩⟩
state_before: C : Type u_1
inst✝⁴ : Category.{u_7, u_1} C
D : Type u_2
inst✝³ : Category.{u_6, u_2} D
E : Type u_3
inst✝² : Category.{?u.7212, u_3} E
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology E
A : Type u_4
inst✝¹ : Category.{?u.7264, u_4} A
G : C ⥤ D
inst✝ : G.IsCoverDense K
ℱ : SheafOfTypes K
X : D
s t : ℱ.val.obj { unop := X }
h : ∀ ⦃Y : C⦄ (f : G.obj Y ⟶ X), ℱ.val.map f.op s = ℱ.val.map f.op t
⊢ ∀ ⦃Y : D⦄ ⦃f : Y ⟶ X⦄, (Sieve.coverByImage G X).arrows f → ℱ.val.map f.op s = ℱ.val.map f.op t
state_after: case intro.mk.refl
C : Type u_1
inst✝⁴ : Category.{u_7, u_1} C
D : Type u_2
inst✝³ : Category.{u_6, u_2} D
E : Type u_3
inst✝² : Category.{?u.7212, u_3} E
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology E
A : Type u_4
inst✝¹ : Category.{?u.7264, u_4} A
G : C ⥤ D
inst✝ : G.IsCoverDense K
ℱ : SheafOfTypes K
X : D
s t : ℱ.val.obj { unop := X }
h : ∀ ⦃Y : C⦄ (f : G.obj Y ⟶ X), ℱ.val.map f.op s = ℱ.val.map f.op t
Y : D
Z : C
f₁ : Y ⟶ G.obj Z
f₂ : G.obj Z ⟶ X
⊢ ℱ.val.map (f₁ ≫ f₂).op s = ℱ.val.map (f₁ ≫ f₂).op t

tactic: simp [h f₂]
state_before: case intro.mk.refl
C : Type u_1
inst✝⁴ : Category.{u_7, u_1} C
D : Type u_2
inst✝³ : Category.{u_6, u_2} D
E : Type u_3
inst✝² : Category.{?u.7212, u_3} E
J : GrothendieckTopology C
K : GrothendieckTopology D
L : GrothendieckTopology E
A : Type u_4
inst✝¹ : Category.{?u.7264, u_4} A
G : C ⥤ D
inst✝ : G.IsCoverDense K
ℱ : SheafOfTypes K
X : D
s t : ℱ.val.obj { unop := X }
h : ∀ ⦃Y : C⦄ (f : G.obj Y ⟶ X), ℱ.val.map f.op s = ℱ.val.map f.op t
Y : D
Z : C
f₁ : Y ⟶ G.obj Z
f₂ : G.obj Z ⟶ X
⊢ ℱ.val.map (f₁ ≫ f₂).op s = ℱ.val.map (f₁ ≫ f₂).op t
state_after: no goals
Theorem: mul_singleton_mem_nhds
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: simp only [← iUnion_op_smul_set, mem_singleton_iff, iUnion_iUnion_eq_left]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : ContinuousConstSMul αᵐᵒᵖ α
s t : Set α
a b : α
h : s ∈ 𝓝 b
⊢ s * {a} ∈ 𝓝 (b * a)
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : ContinuousConstSMul αᵐᵒᵖ α
s t : Set α
a b : α
h : s ∈ 𝓝 b
⊢ op a • s ∈ 𝓝 (b * a)

tactic: exact smul_mem_nhds _ h
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : ContinuousConstSMul αᵐᵒᵖ α
s t : Set α
a b : α
h : s ∈ 𝓝 b
⊢ op a • s ∈ 𝓝 (b * a)
state_after: no goals
Theorem: Orientation.rotation_symm
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

tactic: ext
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
⊢ (o.rotation θ).symm = o.rotation (-θ)
state_after: case h
V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
x✝ : V
⊢ (o.rotation θ).symm x✝ = (o.rotation (-θ)) x✝

tactic: simp [o.rotation_apply, o.rotation_symm_apply, sub_eq_add_neg]
state_before: case h
V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
θ : Real.Angle
x✝ : V
⊢ (o.rotation θ).symm x✝ = (o.rotation (-θ)) x✝
state_after: no goals
Theorem: aeSeq.measure_compl_aeSeqSet_eq_zero
File: Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean

tactic: rw [aeSeqSet, compl_compl, measure_toMeasurable]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i) μ
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
⊢ μ (aeSeqSet hf p)ᶜ = 0
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i) μ
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
⊢ μ {x | (∀ (i : ι), f i x = AEMeasurable.mk (f i) ⋯ x) ∧ p x fun n => f n x}ᶜ = 0

tactic: have hf_eq := fun i => (hf i).ae_eq_mk
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i) μ
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
⊢ μ {x | (∀ (i : ι), f i x = AEMeasurable.mk (f i) ⋯ x) ∧ p x fun n => f n x}ᶜ = 0
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i) μ
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
hf_eq : ∀ (i : ι), f i =ᶠ[ae μ] AEMeasurable.mk (f i) ⋯
⊢ μ {x | (∀ (i : ι), f i x = AEMeasurable.mk (f i) ⋯ x) ∧ p x fun n => f n x}ᶜ = 0

tactic: simp_rw [Filter.EventuallyEq, ← ae_all_iff] at hf_eq
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i) μ
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
hf_eq : ∀ (i : ι), f i =ᶠ[ae μ] AEMeasurable.mk (f i) ⋯
⊢ μ {x | (∀ (i : ι), f i x = AEMeasurable.mk (f i) ⋯ x) ∧ p x fun n => f n x}ᶜ = 0
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i) μ
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
hf_eq : ∀ᵐ (a : α) ∂μ, ∀ (i : ι), f i a = AEMeasurable.mk (f i) ⋯ a
⊢ μ {x | (∀ (i : ι), f i x = AEMeasurable.mk (f i) ⋯ x) ∧ p x fun n => f n x}ᶜ = 0

tactic: exact Filter.Eventually.and hf_eq hp
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : MeasurableSpace α
inst✝¹ : MeasurableSpace β
f : ι → α → β
μ : Measure α
p : α → (ι → β) → Prop
inst✝ : Countable ι
hf : ∀ (i : ι), AEMeasurable (f i) μ
hp : ∀ᵐ (x : α) ∂μ, p x fun n => f n x
hf_eq : ∀ᵐ (a : α) ∂μ, ∀ (i : ι), f i a = AEMeasurable.mk (f i) ⋯ a
⊢ μ {x | (∀ (i : ι), f i x = AEMeasurable.mk (f i) ⋯ x) ∧ p x fun n => f n x}ᶜ = 0
state_after: no goals
Theorem: Real.rpow_eq_nhds_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean

tactic: suffices ∀ᶠ x : ℝ × ℝ in 𝓝 p, 0 < x.1 from
  this.mono fun x hx ↦ by
    dsimp only
    rw [rpow_def_of_pos hx]
state_before: p : ℝ × ℝ
hp_fst : 0 < p.1
⊢ (fun x => x.1 ^ x.2) =ᶠ[𝓝 p] fun x => rexp (log x.1 * x.2)
state_after: p : ℝ × ℝ
hp_fst : 0 < p.1
⊢ ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, 0 < x.1

tactic: exact IsOpen.eventually_mem (isOpen_lt continuous_const continuous_fst) hp_fst
state_before: p : ℝ × ℝ
hp_fst : 0 < p.1
⊢ ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, 0 < x.1
state_after: no goals

tactic: dsimp only
state_before: p : ℝ × ℝ
hp_fst : 0 < p.1
this : ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, 0 < x.1
x : ℝ × ℝ
hx : 0 < x.1
⊢ (fun x => x.1 ^ x.2) x = (fun x => rexp (log x.1 * x.2)) x
state_after: p : ℝ × ℝ
hp_fst : 0 < p.1
this : ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, 0 < x.1
x : ℝ × ℝ
hx : 0 < x.1
⊢ x.1 ^ x.2 = rexp (log x.1 * x.2)

tactic: rw [rpow_def_of_pos hx]
state_before: p : ℝ × ℝ
hp_fst : 0 < p.1
this : ∀ᶠ (x : ℝ × ℝ) in 𝓝 p, 0 < x.1
x : ℝ × ℝ
hx : 0 < x.1
⊢ x.1 ^ x.2 = rexp (log x.1 * x.2)
state_after: no goals
Theorem: AlgebraicGeometry.morphismRestrict_ι
File: Mathlib/AlgebraicGeometry/Restrict.lean

tactic: delta morphismRestrict
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Opens ↑↑Y.toPresheafedSpace
⊢ f ∣_ U ≫ Scheme.ιOpens U = Scheme.ιOpens (f ⁻¹ᵁ U) ≫ f
state_after: C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Opens ↑↑Y.toPresheafedSpace
⊢ ((pullbackRestrictIsoRestrict f U).inv ≫ pullback.snd) ≫ Scheme.ιOpens U = Scheme.ιOpens (f ⁻¹ᵁ U) ≫ f

tactic: rw [Category.assoc, pullback.condition.symm, pullbackRestrictIsoRestrict_inv_fst_assoc]
state_before: C : Type u₁
inst✝ : Category.{v, u₁} C
X Y : Scheme
f : X ⟶ Y
U : Opens ↑↑Y.toPresheafedSpace
⊢ ((pullbackRestrictIsoRestrict f U).inv ≫ pullback.snd) ≫ Scheme.ιOpens U = Scheme.ιOpens (f ⁻¹ᵁ U) ≫ f
state_after: no goals
Theorem: Affine.Simplex.reindex_symm_reindex
File: Mathlib/LinearAlgebra/AffineSpace/Independent.lean

tactic: rw [← reindex_trans, Equiv.symm_trans_self, reindex_refl]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
m n : ℕ
s : Simplex k P m
e : Fin (n + 1) ≃ Fin (m + 1)
⊢ (s.reindex e.symm).reindex e = s
state_after: no goals
Theorem: Odd.neg_one_pow
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rw [h.neg_pow, one_pow]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
inst✝¹ : Monoid α
inst✝ : HasDistribNeg α
a : α
n : ℕ
h : Odd n
⊢ (-1) ^ n = -1
state_after: no goals
Theorem: Complex.cos_neg
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp [cos, sub_eq_add_neg, exp_neg, add_comm]
state_before: x y : ℂ
⊢ cos (-x) = cos x
state_after: no goals
Theorem: Nat.pow_lt_pow_iff_left
File: Mathlib/Data/Nat/Defs.lean

tactic: simp only [← Nat.not_le, Nat.pow_le_pow_iff_left hn]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hn : n ≠ 0
⊢ a ^ n < b ^ n ↔ a < b
state_after: no goals
Theorem: CategoryTheory.exact_comp_hom_inv_comp_iff
File: Mathlib/Algebra/Homology/Exact.lean

tactic: simpa using exact_comp_inv_hom_comp i h
state_before: V : Type u
inst✝³ : Category.{v, u} V
inst✝² : HasImages V
A B C D : V
f : A ⟶ B
g : B ⟶ C
h✝ : C ⟶ D
inst✝¹ : HasZeroMorphisms V
inst✝ : HasEqualizers V
i : B ≅ D
h : Exact (f ≫ i.hom) (i.inv ≫ g)
⊢ Exact f g
state_after: no goals
Theorem: Nat.bit_ne_zero
File: Mathlib/Data/Nat/Bits.lean

tactic: cases b <;> [exact Nat.bit0_ne_zero h; exact Nat.bit1_ne_zero _]
state_before: m n✝ : ℕ
b : Bool
n : ℕ
h : n ≠ 0
⊢ bit b n ≠ 0
state_after: no goals
Theorem: ENNReal.rpow_eq_top_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: cases' x with x
state_before: x : ℝ≥0∞
y : ℝ
⊢ x ^ y = ⊤ ↔ x = 0 ∧ y < 0 ∨ x = ⊤ ∧ 0 < y
state_after: case top
y : ℝ
⊢ ⊤ ^ y = ⊤ ↔ ⊤ = 0 ∧ y < 0 ∨ ⊤ = ⊤ ∧ 0 < y

case coe
y : ℝ
x : ℝ≥0
⊢ ↑x ^ y = ⊤ ↔ ↑x = 0 ∧ y < 0 ∨ ↑x = ⊤ ∧ 0 < y

tactic: rcases lt_trichotomy y 0 with (H | H | H) <;>
  simp [H, top_rpow_of_neg, top_rpow_of_pos, le_of_lt]
state_before: case top
y : ℝ
⊢ ⊤ ^ y = ⊤ ↔ ⊤ = 0 ∧ y < 0 ∨ ⊤ = ⊤ ∧ 0 < y
state_after: no goals

tactic: by_cases h : x = 0
state_before: case coe
y : ℝ
x : ℝ≥0
⊢ ↑x ^ y = ⊤ ↔ ↑x = 0 ∧ y < 0 ∨ ↑x = ⊤ ∧ 0 < y
state_after: case pos
y : ℝ
x : ℝ≥0
h : x = 0
⊢ ↑x ^ y = ⊤ ↔ ↑x = 0 ∧ y < 0 ∨ ↑x = ⊤ ∧ 0 < y

case neg
y : ℝ
x : ℝ≥0
h : ¬x = 0
⊢ ↑x ^ y = ⊤ ↔ ↑x = 0 ∧ y < 0 ∨ ↑x = ⊤ ∧ 0 < y

tactic: rcases lt_trichotomy y 0 with (H | H | H) <;>
  simp [h, H, zero_rpow_of_neg, zero_rpow_of_pos, le_of_lt]
state_before: case pos
y : ℝ
x : ℝ≥0
h : x = 0
⊢ ↑x ^ y = ⊤ ↔ ↑x = 0 ∧ y < 0 ∨ ↑x = ⊤ ∧ 0 < y
state_after: no goals

tactic: simp [coe_rpow_of_ne_zero h, h]
state_before: case neg
y : ℝ
x : ℝ≥0
h : ¬x = 0
⊢ ↑x ^ y = ⊤ ↔ ↑x = 0 ∧ y < 0 ∨ ↑x = ⊤ ∧ 0 < y
state_after: no goals
Theorem: Real.natCast_le_toNNReal
File: Mathlib/Data/NNReal/Basic.lean

tactic: simp [hn]
state_before: n : ℕ
r : ℝ
hn : n ≠ 0
⊢ ↑n ≤ r.toNNReal ↔ ↑n ≤ r
state_after: no goals
Theorem: ContMDiffWithinAt.div₀
File: Mathlib/Geometry/Manifold/Algebra/LieGroup.lean

tactic: simpa [div_eq_mul_inv] using hf.mul (hg.inv₀ h₀)
state_before: 𝕜 : Type u_1
inst✝¹³ : NontriviallyNormedField 𝕜
H : Type u_2
inst✝¹² : TopologicalSpace H
E : Type u_3
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedSpace 𝕜 E
I : ModelWithCorners 𝕜 E H
G : Type u_4
inst✝⁹ : TopologicalSpace G
inst✝⁸ : ChartedSpace H G
inst✝⁷ : GroupWithZero G
inst✝⁶ : SmoothInv₀ I G
inst✝⁵ : SmoothMul I G
E' : Type u_5
inst✝⁴ : NormedAddCommGroup E'
inst✝³ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝² : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M : Type u_7
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H' M
f g : M → G
s : Set M
a : M
n : ℕ∞
hf : ContMDiffWithinAt I' I n f s a
hg : ContMDiffWithinAt I' I n g s a
h₀ : g a ≠ 0
⊢ ContMDiffWithinAt I' I n (f / g) s a
state_after: no goals
Theorem: Complex.conj_ofReal
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [star]
state_before: r : ℝ
⊢ ((starRingEnd ℂ) ↑r).re = (↑r).re ∧ ((starRingEnd ℂ) ↑r).im = (↑r).im
state_after: no goals
Theorem: Real.Angle.sin_add
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: induction θ₁ using Real.Angle.induction_on
state_before: θ₁ θ₂ : Angle
⊢ (θ₁ + θ₂).sin = θ₁.sin * θ₂.cos + θ₁.cos * θ₂.sin
state_after: case h
θ₂ : Angle
x✝ : ℝ
⊢ (↑x✝ + θ₂).sin = (↑x✝).sin * θ₂.cos + (↑x✝).cos * θ₂.sin

tactic: induction θ₂ using Real.Angle.induction_on
state_before: case h
θ₂ : Angle
x✝ : ℝ
⊢ (↑x✝ + θ₂).sin = (↑x✝).sin * θ₂.cos + (↑x✝).cos * θ₂.sin
state_after: case h.h
x✝¹ x✝ : ℝ
⊢ (↑x✝¹ + ↑x✝).sin = (↑x✝¹).sin * (↑x✝).cos + (↑x✝¹).cos * (↑x✝).sin

tactic: exact Real.sin_add _ _
state_before: case h.h
x✝¹ x✝ : ℝ
⊢ (↑x✝¹ + ↑x✝).sin = (↑x✝¹).sin * (↑x✝).cos + (↑x✝¹).cos * (↑x✝).sin
state_after: no goals