1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: UniqueFactorizationMonoid.factors_pos
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: constructor
state_before: α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
⊢ 0 < factors x ↔ ¬IsUnit x
state_after: case mp
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
⊢ 0 < factors x → ¬IsUnit x

case mpr
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
⊢ ¬IsUnit x → 0 < factors x

tactic: intro h hx
state_before: case mp
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
⊢ 0 < factors x → ¬IsUnit x
state_after: case mp
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx✝ : x ≠ 0
h : 0 < factors x
hx : IsUnit x
⊢ False

tactic: obtain ⟨p, hp⟩ := Multiset.exists_mem_of_ne_zero h.ne'
state_before: case mp
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx✝ : x ≠ 0
h : 0 < factors x
hx : IsUnit x
⊢ False
state_after: case mp.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx✝ : x ≠ 0
h : 0 < factors x
hx : IsUnit x
p : α
hp : p ∈ factors x
⊢ False

tactic: exact (prime_of_factor _ hp).not_unit (isUnit_of_dvd_unit (dvd_of_mem_factors hp) hx)
state_before: case mp.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx✝ : x ≠ 0
h : 0 < factors x
hx : IsUnit x
p : α
hp : p ∈ factors x
⊢ False
state_after: no goals

tactic: intro h
state_before: case mpr
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
⊢ ¬IsUnit x → 0 < factors x
state_after: case mpr
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
h : ¬IsUnit x
⊢ 0 < factors x

tactic: obtain ⟨p, hp⟩ := exists_mem_factors hx h
state_before: case mpr
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
h : ¬IsUnit x
⊢ 0 < factors x
state_after: case mpr.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
h : ¬IsUnit x
p : α
hp : p ∈ factors x
⊢ 0 < factors x

tactic: exact
  bot_lt_iff_ne_bot.mpr
    (mt Multiset.eq_zero_iff_forall_not_mem.mp (not_forall.mpr ⟨p, not_not.mpr hp⟩))
state_before: case mpr.intro
α : Type u_1
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : UniqueFactorizationMonoid α
x : α
hx : x ≠ 0
h : ¬IsUnit x
p : α
hp : p ∈ factors x
⊢ 0 < factors x
state_after: no goals
Theorem: mul_inv_le_iff'
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: rw [mul_comm, inv_mul_le_iff' h]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedSemifield α
a b c d e : α
m n : ℤ
h : 0 < b
⊢ a * b⁻¹ ≤ c ↔ a ≤ c * b
state_after: no goals
Theorem: NNReal.eq_rpow_one_div_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: rw [← rpow_eq_rpow_iff hz, rpow_self_rpow_inv hz]
state_before: w x✝ y✝ z✝ : ℝ
x y : ℝ≥0
z : ℝ
hz : z ≠ 0
⊢ x = y ^ (1 / z) ↔ x ^ z = y
state_after: no goals
Theorem: inv_gold
File: Mathlib/Data/Real/GoldenRatio.lean

tactic: have : 1 + √5 ≠ 0 := ne_of_gt (add_pos (by norm_num) <| Real.sqrt_pos.mpr (by norm_num))
state_before: ⊢ φ⁻¹ = -ψ
state_after: this : 1 + √5 ≠ 0
⊢ φ⁻¹ = -ψ

tactic: field_simp [sub_mul, mul_add]
state_before: this : 1 + √5 ≠ 0
⊢ φ⁻¹ = -ψ
state_after: this : 1 + √5 ≠ 0
⊢ 2 * 2 = 5 - 1

tactic: norm_num
state_before: this : 1 + √5 ≠ 0
⊢ 2 * 2 = 5 - 1
state_after: no goals

tactic: norm_num
state_before: ⊢ 0 < 1
state_after: no goals

tactic: norm_num
state_before: ⊢ 0 < 5
state_after: no goals
Theorem: convexJoin_union_right
File: Mathlib/Analysis/Convex/Join.lean

tactic: simp_rw [convexJoin_comm s, convexJoin_union_left]
state_before: ι : Sort u_1
𝕜 : Type u_2
E : Type u_3
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
s✝ t s₁ s₂ t₁✝ t₂✝ u : Set E
x y : E
s t₁ t₂ : Set E
⊢ convexJoin 𝕜 s (t₁ ∪ t₂) = convexJoin 𝕜 s t₁ ∪ convexJoin 𝕜 s t₂
state_after: no goals
Theorem: NumberField.InfinitePlace.isUnramified_iff_mult_le
File: Mathlib/NumberTheory/NumberField/Embeddings.lean

tactic: rw [IsUnramified, le_antisymm_iff, and_iff_right]
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w : InfinitePlace K
⊢ IsUnramified k w ↔ w.mult ≤ (w.comap (algebraMap k K)).mult
state_after: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w : InfinitePlace K
⊢ (w.comap (algebraMap k K)).mult ≤ w.mult

tactic: exact mult_comap_le _ _
state_before: k : Type u_1
inst✝⁷ : Field k
K : Type u_2
inst✝⁶ : Field K
F : Type u_3
inst✝⁵ : Field F
inst✝⁴ : NumberField K
inst✝³ : Algebra k K
inst✝² : Algebra k F
inst✝¹ : Algebra K F
inst✝ : IsScalarTower k K F
σ : K ≃ₐ[k] K
w : InfinitePlace K
⊢ (w.comap (algebraMap k K)).mult ≤ w.mult
state_after: no goals
Theorem: Pell.IsFundamental.subsingleton
File: Mathlib/NumberTheory/Pell.lean

tactic: have hx := le_antisymm (ha.2.2 hb.1) (hb.2.2 ha.1)
state_before: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
⊢ a = b
state_after: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
hx : a.x = b.x
⊢ a = b

tactic: refine Solution₁.ext hx ?_
state_before: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
hx : a.x = b.x
⊢ a = b
state_after: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
hx : a.x = b.x
⊢ a.y = b.y

tactic: have : d * a.y ^ 2 = d * b.y ^ 2 := by rw [a.prop_y, b.prop_y, hx]
state_before: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
hx : a.x = b.x
⊢ a.y = b.y
state_after: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
hx : a.x = b.x
this : d * a.y ^ 2 = d * b.y ^ 2
⊢ a.y = b.y

tactic: exact (sq_eq_sq ha.2.1.le hb.2.1.le).mp (Int.eq_of_mul_eq_mul_left ha.d_pos.ne' this)
state_before: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
hx : a.x = b.x
this : d * a.y ^ 2 = d * b.y ^ 2
⊢ a.y = b.y
state_after: no goals

tactic: rw [a.prop_y, b.prop_y, hx]
state_before: d : ℤ
a b : Solution₁ d
ha : IsFundamental a
hb : IsFundamental b
hx : a.x = b.x
⊢ d * a.y ^ 2 = d * b.y ^ 2
state_after: no goals
Theorem: LieHom.comp_id
File: Mathlib/Algebra/Lie/Basic.lean

tactic: ext
state_before: R : Type u
L₁ : Type v
L₂ : Type w
L₃ : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L₁
inst✝⁴ : LieAlgebra R L₁
inst✝³ : LieRing L₂
inst✝² : LieAlgebra R L₂
inst✝¹ : LieRing L₃
inst✝ : LieAlgebra R L₃
f : L₁ →ₗ⁅R⁆ L₂
⊢ f.comp id = f
state_after: case h
R : Type u
L₁ : Type v
L₂ : Type w
L₃ : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L₁
inst✝⁴ : LieAlgebra R L₁
inst✝³ : LieRing L₂
inst✝² : LieAlgebra R L₂
inst✝¹ : LieRing L₃
inst✝ : LieAlgebra R L₃
f : L₁ →ₗ⁅R⁆ L₂
x✝ : L₁
⊢ (f.comp id) x✝ = f x✝

tactic: rfl
state_before: case h
R : Type u
L₁ : Type v
L₂ : Type w
L₃ : Type w₁
inst✝⁶ : CommRing R
inst✝⁵ : LieRing L₁
inst✝⁴ : LieAlgebra R L₁
inst✝³ : LieRing L₂
inst✝² : LieAlgebra R L₂
inst✝¹ : LieRing L₃
inst✝ : LieAlgebra R L₃
f : L₁ →ₗ⁅R⁆ L₂
x✝ : L₁
⊢ (f.comp id) x✝ = f x✝
state_after: no goals
Theorem: Module.End.isNilpotent_restrict_sub_algebraMap
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: use k
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
k : ℕ
h : optParam (MapsTo ⇑(f - (algebraMap R (End R M)) μ) ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)) ⋯
⊢ IsNilpotent (LinearMap.restrict (f - (algebraMap R (End R M)) μ) h)
state_after: case h
K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
k : ℕ
h : optParam (MapsTo ⇑(f - (algebraMap R (End R M)) μ) ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)) ⋯
⊢ LinearMap.restrict (f - (algebraMap R (End R M)) μ) h ^ k = 0

tactic: ext
state_before: case h
K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
k : ℕ
h : optParam (MapsTo ⇑(f - (algebraMap R (End R M)) μ) ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)) ⋯
⊢ LinearMap.restrict (f - (algebraMap R (End R M)) μ) h ^ k = 0
state_after: case h.h.a
K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
k : ℕ
h : optParam (MapsTo ⇑(f - (algebraMap R (End R M)) μ) ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)) ⋯
x✝ : ↥((f.genEigenspace μ) k)
⊢ ↑((LinearMap.restrict (f - (algebraMap R (End R M)) μ) h ^ k) x✝) = ↑(0 x✝)

tactic: simp [LinearMap.restrict_apply, LinearMap.pow_restrict _]
state_before: case h.h.a
K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End R M
μ : R
k : ℕ
h : optParam (MapsTo ⇑(f - (algebraMap R (End R M)) μ) ↑((f.genEigenspace μ) k) ↑((f.genEigenspace μ) k)) ⋯
x✝ : ↥((f.genEigenspace μ) k)
⊢ ↑((LinearMap.restrict (f - (algebraMap R (End R M)) μ) h ^ k) x✝) = ↑(0 x✝)
state_after: no goals
Theorem: not_integrableOn_Ioi_cpow
File: Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean

tactic: intro h
state_before: s : ℂ
⊢ ¬IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
state_after: s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
⊢ False

tactic: rcases le_or_lt s.re (-1) with hs|hs
state_before: s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
⊢ False
state_after: case inl
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : s.re ≤ -1
⊢ False

case inr
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : -1 < s.re
⊢ False

tactic: have : IntegrableOn (fun x : ℝ ↦ (x : ℂ) ^ s) (Ioo (0 : ℝ) 1) :=
  h.mono Ioo_subset_Ioi_self le_rfl
state_before: case inl
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : s.re ≤ -1
⊢ False
state_after: case inl
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : s.re ≤ -1
this : IntegrableOn (fun x => ↑x ^ s) (Ioo 0 1) volume
⊢ False

tactic: rw [integrableOn_Ioo_cpow_iff zero_lt_one] at this
state_before: case inl
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : s.re ≤ -1
this : IntegrableOn (fun x => ↑x ^ s) (Ioo 0 1) volume
⊢ False
state_after: case inl
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : s.re ≤ -1
this : -1 < s.re
⊢ False

tactic: exact hs.not_lt this
state_before: case inl
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : s.re ≤ -1
this : -1 < s.re
⊢ False
state_after: no goals

tactic: have : IntegrableOn (fun x : ℝ ↦ (x : ℂ) ^ s) (Ioi 1) :=
  h.mono (Ioi_subset_Ioi zero_le_one) le_rfl
state_before: case inr
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : -1 < s.re
⊢ False
state_after: case inr
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : -1 < s.re
this : IntegrableOn (fun x => ↑x ^ s) (Ioi 1) volume
⊢ False

tactic: rw [integrableOn_Ioi_cpow_iff zero_lt_one] at this
state_before: case inr
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : -1 < s.re
this : IntegrableOn (fun x => ↑x ^ s) (Ioi 1) volume
⊢ False
state_after: case inr
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : -1 < s.re
this : s.re < -1
⊢ False

tactic: exact hs.not_lt this
state_before: case inr
s : ℂ
h : IntegrableOn (fun x => ↑x ^ s) (Ioi 0) volume
hs : -1 < s.re
this : s.re < -1
⊢ False
state_after: no goals
Theorem: InnerProductGeometry.angle_neg_neg
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean

tactic: unfold angle
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ x y : V
⊢ angle (-x) (-y) = angle x y
state_after: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ x y : V
⊢ arccos (⟪-x, -y⟫_ℝ / (‖-x‖ * ‖-y‖)) = arccos (⟪x, y⟫_ℝ / (‖x‖ * ‖y‖))

tactic: rw [inner_neg_neg, norm_neg, norm_neg]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ x y : V
⊢ arccos (⟪-x, -y⟫_ℝ / (‖-x‖ * ‖-y‖)) = arccos (⟪x, y⟫_ℝ / (‖x‖ * ‖y‖))
state_after: no goals
Theorem: MeasureTheory.ennnorm_integral_le_lintegral_ennnorm
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: simp_rw [← ofReal_norm_eq_coe_nnnorm]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
⊢ ↑‖∫ (a : α), f a ∂μ‖₊ ≤ ∫⁻ (a : α), ↑‖f a‖₊ ∂μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
⊢ ENNReal.ofReal ‖∫ (a : α), f a ∂μ‖ ≤ ∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ

tactic: apply ENNReal.ofReal_le_of_le_toReal
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
⊢ ENNReal.ofReal ‖∫ (a : α), f a ∂μ‖ ≤ ∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ
state_after: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
⊢ ‖∫ (a : α), f a ∂μ‖ ≤ (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ).toReal

tactic: exact norm_integral_le_lintegral_norm f
state_before: case h
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
hE : CompleteSpace E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
G : Type u_5
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace ℝ G
f✝ g : α → E
m : MeasurableSpace α
μ : Measure α
f : α → G
⊢ ‖∫ (a : α), f a ∂μ‖ ≤ (∫⁻ (a : α), ENNReal.ofReal ‖f a‖ ∂μ).toReal
state_after: no goals
Theorem: CauSeq.Completion.mul_inv_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 * f.inv ⋯) = 1

tactic: exact Quotient.sound (CauSeq.mul_inv_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 * f.inv ⋯) = 1
state_after: no goals
Theorem: Real.Angle.sign_ne_zero_iff
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [← not_or, ← sign_eq_zero_iff]
state_before: θ : Angle
⊢ θ.sign ≠ 0 ↔ θ ≠ 0 ∧ θ ≠ ↑π
state_after: no goals
Theorem: IsUpperSet.erase
File: Mathlib/Order/UpperLower/Basic.lean

tactic: simpa using has
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝¹ : LE α
inst✝ : LE β
s t : Set α
a : α
hs : IsUpperSet s
has : ∀ b ∈ s, b ≤ a → b = a
⊢ ∀ b ∈ s, ∀ c ∈ {a}, b ≤ c → b ∈ {a}
state_after: no goals
Theorem: isClosed_coinduced
File: Mathlib/Topology/Order.lean

tactic: simp only [← isOpen_compl_iff, isOpen_coinduced (f := f), preimage_compl]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
t : TopologicalSpace α
s : Set β
f : α → β
⊢ IsClosed s ↔ IsClosed (f ⁻¹' s)
state_after: no goals
Theorem: MeasureTheory.Measure.IsEverywherePos.smul_measure_nnreal
File: Mathlib/MeasureTheory/Measure/EverywherePos.lean

tactic: simpa using hc
state_before: α : Type u_1
inst✝¹ : TopologicalSpace α
inst✝ : MeasurableSpace α
μ ν : Measure α
s k : Set α
hs : μ.IsEverywherePos s
c : ℝ≥0
hc : c ≠ 0
⊢ ↑ENNReal.ofNNRealHom.toMonoidWithZeroHom c ≠ 0
state_after: no goals
Theorem: CategoryTheory.NatTrans.equifibered_of_discrete
File: Mathlib/CategoryTheory/Limits/VanKampen.lean

tactic: rintro ⟨i⟩ ⟨j⟩ ⟨⟨rfl : i = j⟩⟩
state_before: J : Type v'
inst✝³ : Category.{u', v'} J
C : Type u
inst✝² : Category.{v, u} C
K : Type u_1
inst✝¹ : Category.{?u.8656, u_1} K
D : Type u_2
inst✝ : Category.{?u.8663, u_2} D
ι : Type u_3
F G : Discrete ι ⥤ C
α : F ⟶ G
⊢ Equifibered α
state_after: case mk.mk.up.up
J : Type v'
inst✝³ : Category.{u', v'} J
C : Type u
inst✝² : Category.{v, u} C
K : Type u_1
inst✝¹ : Category.{?u.8656, u_1} K
D : Type u_2
inst✝ : Category.{?u.8663, u_2} D
ι : Type u_3
F G : Discrete ι ⥤ C
α : F ⟶ G
i : ι
⊢ IsPullback (F.map { down := { down := ⋯ } }) (α.app { as := i }) (α.app { as := i }) (G.map { down := { down := ⋯ } })

tactic: simp only [Discrete.functor_map_id]
state_before: case mk.mk.up.up
J : Type v'
inst✝³ : Category.{u', v'} J
C : Type u
inst✝² : Category.{v, u} C
K : Type u_1
inst✝¹ : Category.{?u.8656, u_1} K
D : Type u_2
inst✝ : Category.{?u.8663, u_2} D
ι : Type u_3
F G : Discrete ι ⥤ C
α : F ⟶ G
i : ι
⊢ IsPullback (F.map { down := { down := ⋯ } }) (α.app { as := i }) (α.app { as := i }) (G.map { down := { down := ⋯ } })
state_after: case mk.mk.up.up
J : Type v'
inst✝³ : Category.{u', v'} J
C : Type u
inst✝² : Category.{v, u} C
K : Type u_1
inst✝¹ : Category.{?u.8656, u_1} K
D : Type u_2
inst✝ : Category.{?u.8663, u_2} D
ι : Type u_3
F G : Discrete ι ⥤ C
α : F ⟶ G
i : ι
⊢ IsPullback (𝟙 (F.obj { as := i })) (α.app { as := i }) (α.app { as := i }) (𝟙 (G.obj { as := i }))

tactic: exact IsPullback.of_horiz_isIso ⟨by rw [Category.id_comp, Category.comp_id]⟩
state_before: case mk.mk.up.up
J : Type v'
inst✝³ : Category.{u', v'} J
C : Type u
inst✝² : Category.{v, u} C
K : Type u_1
inst✝¹ : Category.{?u.8656, u_1} K
D : Type u_2
inst✝ : Category.{?u.8663, u_2} D
ι : Type u_3
F G : Discrete ι ⥤ C
α : F ⟶ G
i : ι
⊢ IsPullback (𝟙 (F.obj { as := i })) (α.app { as := i }) (α.app { as := i }) (𝟙 (G.obj { as := i }))
state_after: no goals

tactic: rw [Category.id_comp, Category.comp_id]
state_before: J : Type v'
inst✝³ : Category.{u', v'} J
C : Type u
inst✝² : Category.{v, u} C
K : Type u_1
inst✝¹ : Category.{?u.8656, u_1} K
D : Type u_2
inst✝ : Category.{?u.8663, u_2} D
ι : Type u_3
F G : Discrete ι ⥤ C
α : F ⟶ G
i : ι
⊢ 𝟙 (F.obj { as := i }) ≫ α.app { as := i } = α.app { as := i } ≫ 𝟙 (G.obj { as := i })
state_after: no goals
Theorem: ZMod.isQuadratic_χ₈
File: Mathlib/NumberTheory/LegendreSymbol/ZModChar.lean

tactic: unfold MulChar.IsQuadratic
state_before: ⊢ χ₈.IsQuadratic
state_after: ⊢ ∀ (a : ZMod 8), χ₈ a = 0 ∨ χ₈ a = 1 ∨ χ₈ a = -1

tactic: decide
state_before: ⊢ ∀ (a : ZMod 8), χ₈ a = 0 ∨ χ₈ a = 1 ∨ χ₈ a = -1
state_after: no goals
Theorem: MeasureTheory.measure_symmDiff_eq
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simpa only [symmDiff_def, sup_eq_union] using measure_union disjoint_sdiff_sdiff (ht.diff hs)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m : MeasurableSpace α
μ μ₁ μ₂ : Measure α
s s₁ s₂ t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
⊢ μ (s ∆ t) = μ (s \ t) + μ (t \ s)
state_after: no goals
Theorem: PLift.down_inj
File: Mathlib/Logic/Basic.lean

tactic: rw [h]
state_before: α : Sort u_1
a b : PLift α
h : a = b
⊢ a.down = b.down
state_after: no goals
Theorem: Real.sin_pi_div_three
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: rw [← cos_pi_div_two_sub, ← cos_pi_div_six]
state_before: x : ℝ
⊢ sin (π / 3) = √3 / 2
state_after: x : ℝ
⊢ cos (π / 2 - π / 3) = cos (π / 6)

tactic: congr
state_before: x : ℝ
⊢ cos (π / 2 - π / 3) = cos (π / 6)
state_after: case e_x
x : ℝ
⊢ π / 2 - π / 3 = π / 6

tactic: ring
state_before: case e_x
x : ℝ
⊢ π / 2 - π / 3 = π / 6
state_after: no goals
Theorem: Ordinal.lt_opow_of_limit
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: rw [← not_iff_not, not_exists]
state_before: a b c : Ordinal.{u_1}
b0 : b ≠ 0
h : c.IsLimit
⊢ a < b ^ c ↔ ∃ c' < c, a < b ^ c'
state_after: a b c : Ordinal.{u_1}
b0 : b ≠ 0
h : c.IsLimit
⊢ ¬a < b ^ c ↔ ∀ (x : Ordinal.{u_1}), ¬(x < c ∧ a < b ^ x)

tactic: simp only [not_lt, opow_le_of_limit b0 h, exists_prop, not_and]
state_before: a b c : Ordinal.{u_1}
b0 : b ≠ 0
h : c.IsLimit
⊢ ¬a < b ^ c ↔ ∀ (x : Ordinal.{u_1}), ¬(x < c ∧ a < b ^ x)
state_after: no goals
Theorem: CategoryTheory.Limits.coyonedaOpColimitIsoLimitCoyoneda'_inv_comp_π
File: Mathlib/CategoryTheory/Limits/IndYoneda.lean

tactic: rw [← coyonedaOpColimitIsoLimitCoyoneda'_hom_comp_π, ← Category.assoc,
  Iso.inv_hom_id, Category.id_comp]
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
I : Type v₁
inst✝¹ : Category.{v₂, v₁} I
F : Iᵒᵖ ⥤ C
inst✝ : HasColimit F
i : I
⊢ (coyonedaOpColimitIsoLimitCoyoneda' F).inv ≫ coyoneda.map (colimit.ι F { unop := i }).op =
    limit.π (F.rightOp ⋙ coyoneda) i
state_after: no goals
Theorem: CategoryTheory.Free.lift_map_single
File: Mathlib/Algebra/Category/ModuleCat/Adjunctions.lean

tactic: simp
state_before: R : Type u_1
inst✝⁴ : CommRing R
C : Type u
inst✝³ : Category.{v, u} C
D : Type u
inst✝² : Category.{v, u} D
inst✝¹ : Preadditive D
inst✝ : Linear R D
F : C ⥤ D
X Y : C
f : X ⟶ Y
r : R
⊢ (lift R F).map (single f r) = r • F.map f
state_after: no goals
Theorem: List.filter_eq'
File: .lake/packages/batteries/Batteries/Data/List/Count.lean

tactic: simpa only [eq_comm] using filter_eq l a
state_before: α : Type u_1
inst✝ : DecidableEq α
l : List α
a : α
⊢ filter (fun x => decide (a = x)) l = replicate (count a l) a
state_after: no goals
Theorem: mk_univ_complex
File: Mathlib/Data/Complex/Cardinality.lean

tactic: rw [mk_univ, mk_complex]
state_before: ⊢ #↑Set.univ = 𝔠
state_after: no goals