1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.setToFun_sub
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: rw [sub_eq_add_neg, sub_eq_add_neg, setToFun_add hT hf hg.neg, setToFun_neg hT g]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
p : ℝ≥0∞
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace ℝ F
inst✝³ : NormedAddCommGroup F'
inst✝² : NormedSpace ℝ F'
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
inst✝ : CompleteSpace F
T T' T'' : Set α → E →L[ℝ] F
C C' C'' : ℝ
f g : α → E
hT : DominatedFinMeasAdditive μ T C
hf : Integrable f μ
hg : Integrable g μ
⊢ setToFun μ T hT (f - g) = setToFun μ T hT f - setToFun μ T hT g
state_after: no goals
Theorem: invOf_mul_self_assoc
File: Mathlib/Algebra/Group/Invertible/Defs.lean

tactic: rw [← mul_assoc, invOf_mul_self, one_mul]
state_before: α : Type u
inst✝¹ : Monoid α
a b : α
inst✝ : Invertible a
⊢ ⅟a * (a * b) = b
state_after: no goals
Theorem: AdjoinRoot.minpoly_powerBasis_gen
File: Mathlib/RingTheory/AdjoinRoot.lean

tactic: rw [powerBasis_gen, minpoly_root hf]
state_before: R : Type u
S : Type v
K : Type w
inst✝¹ : CommRing R
g : R[X]
inst✝ : Field K
f : K[X]
hf : f ≠ 0
⊢ minpoly K (powerBasis hf).gen = f * C f.leadingCoeff⁻¹
state_after: no goals
Theorem: multipliable_int_iff_multipliable_nat_and_neg_add_one
File: Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean

tactic: refine ⟨fun p ↦ ⟨?_, ?_⟩, fun ⟨hf₁, hf₂⟩ ↦ Multipliable.of_nat_of_neg_add_one hf₁ hf₂⟩ <;>
apply p.comp_injective
state_before: M : Type u_1
inst✝⁵ : CommMonoid M
inst✝⁴ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝³ : CommGroup G
g g' : G
inst✝² : UniformSpace G
inst✝¹ : UniformGroup G
inst✝ : CompleteSpace G
f : ℤ → G
⊢ Multipliable f ↔ (Multipliable fun n => f ↑n) ∧ Multipliable fun n => f (-(↑n + 1))
state_after: case refine_1
M : Type u_1
inst✝⁵ : CommMonoid M
inst✝⁴ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝³ : CommGroup G
g g' : G
inst✝² : UniformSpace G
inst✝¹ : UniformGroup G
inst✝ : CompleteSpace G
f : ℤ → G
p : Multipliable f
⊢ Injective Nat.cast

case refine_2
M : Type u_1
inst✝⁵ : CommMonoid M
inst✝⁴ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝³ : CommGroup G
g g' : G
inst✝² : UniformSpace G
inst✝¹ : UniformGroup G
inst✝ : CompleteSpace G
f : ℤ → G
p : Multipliable f
⊢ Injective fun n => -(↑n + 1)

tactic: exacts [Nat.cast_injective, @Int.negSucc.inj]
state_before: case refine_1
M : Type u_1
inst✝⁵ : CommMonoid M
inst✝⁴ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝³ : CommGroup G
g g' : G
inst✝² : UniformSpace G
inst✝¹ : UniformGroup G
inst✝ : CompleteSpace G
f : ℤ → G
p : Multipliable f
⊢ Injective Nat.cast

case refine_2
M : Type u_1
inst✝⁵ : CommMonoid M
inst✝⁴ : TopologicalSpace M
m m' : M
G : Type u_2
inst✝³ : CommGroup G
g g' : G
inst✝² : UniformSpace G
inst✝¹ : UniformGroup G
inst✝ : CompleteSpace G
f : ℤ → G
p : Multipliable f
⊢ Injective fun n => -(↑n + 1)
state_after: no goals
Theorem: Pell.pellZd_add
File: Mathlib/NumberTheory/PellMatiyasevic.lean

tactic: rw [← add_assoc, pellZd_succ, pellZd_succ, pellZd_add _ n, ← mul_assoc]
state_before: a : ℕ
a1 : 1 < a
m n : ℕ
⊢ pellZd a1 (m + (n + 1)) = pellZd a1 m * pellZd a1 (n + 1)
state_after: no goals
Theorem: Ideal.Factors.finrank_pow_ramificationIdx
File: Mathlib/NumberTheory/RamificationInertia.lean

tactic: rw [finrank_prime_pow_ramificationIdx, inertiaDeg_algebraMap]
state_before: R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P✝ : Ideal S
inst✝² : IsDedekindDomain S
inst✝¹ : Algebra R S
inst✝ : p.IsMaximal
P : { x // x ∈ (factors (map (algebraMap R S) p)).toFinset }
⊢ finrank (R ⧸ p) (S ⧸ ↑P ^ ramificationIdx (algebraMap R S) p ↑P) =
    ramificationIdx (algebraMap R S) p ↑P * inertiaDeg (algebraMap R S) p ↑P
state_after: case hP0
R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P✝ : Ideal S
inst✝² : IsDedekindDomain S
inst✝¹ : Algebra R S
inst✝ : p.IsMaximal
P : { x // x ∈ (factors (map (algebraMap R S) p)).toFinset }
⊢ ↑P ≠ ⊥

case he
R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P✝ : Ideal S
inst✝² : IsDedekindDomain S
inst✝¹ : Algebra R S
inst✝ : p.IsMaximal
P : { x // x ∈ (factors (map (algebraMap R S) p)).toFinset }
⊢ ramificationIdx (algebraMap R S) p ↑P ≠ 0

tactic: exacts [Factors.ne_bot p P, NeZero.ne _]
state_before: case hP0
R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P✝ : Ideal S
inst✝² : IsDedekindDomain S
inst✝¹ : Algebra R S
inst✝ : p.IsMaximal
P : { x // x ∈ (factors (map (algebraMap R S) p)).toFinset }
⊢ ↑P ≠ ⊥

case he
R : Type u
inst✝⁴ : CommRing R
S : Type v
inst✝³ : CommRing S
f : R →+* S
p : Ideal R
P✝ : Ideal S
inst✝² : IsDedekindDomain S
inst✝¹ : Algebra R S
inst✝ : p.IsMaximal
P : { x // x ∈ (factors (map (algebraMap R S) p)).toFinset }
⊢ ramificationIdx (algebraMap R S) p ↑P ≠ 0
state_after: no goals
Theorem: InnerProductGeometry.angle_smul_left_of_pos
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean

tactic: rw [angle_comm, angle_smul_right_of_pos y x hr, angle_comm]
state_before: V : Type u_1
inst✝¹ : NormedAddCommGroup V
inst✝ : InnerProductSpace ℝ V
x✝ y✝ x y : V
r : ℝ
hr : 0 < r
⊢ angle (r • x) y = angle x y
state_after: no goals
Theorem: Polynomial.derivative_expand
File: Mathlib/Algebra/Polynomial/Expand.lean

tactic: rw [coe_expand, derivative_eval₂_C, derivative_pow, C_eq_natCast, derivative_X, mul_one]
state_before: R : Type u
inst✝¹ : CommSemiring R
S : Type v
inst✝ : CommSemiring S
p q : ℕ
f : R[X]
⊢ derivative ((expand R p) f) = (expand R p) (derivative f) * (↑p * X ^ (p - 1))
state_after: no goals
Theorem: Finsupp.equivMapDomain_trans'
File: Mathlib/Data/Finsupp/Basic.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α ≃ β
g : β ≃ γ
⊢ equivMapDomain (f.trans g) = equivMapDomain g ∘ equivMapDomain f
state_after: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α ≃ β
g : β ≃ γ
x : α →₀ M
a✝ : γ
⊢ (equivMapDomain (f.trans g) x) a✝ = ((equivMapDomain g ∘ equivMapDomain f) x) a✝

tactic: rfl
state_before: case h.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝ : Zero M
f : α ≃ β
g : β ≃ γ
x : α →₀ M
a✝ : γ
⊢ (equivMapDomain (f.trans g) x) a✝ = ((equivMapDomain g ∘ equivMapDomain f) x) a✝
state_after: no goals
Theorem: Finsupp.comapDomain_smul
File: Mathlib/Data/Finsupp/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddMonoid M
inst✝¹ : Monoid R
inst✝ : DistribMulAction R M
f : α → β
r : R
v : β →₀ M
hfv : Set.InjOn f (f ⁻¹' ↑v.support)
hfrv : optParam (Set.InjOn f (f ⁻¹' ↑(r • v).support)) ⋯
⊢ comapDomain f (r • v) hfrv = r • comapDomain f v hfv
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddMonoid M
inst✝¹ : Monoid R
inst✝ : DistribMulAction R M
f : α → β
r : R
v : β →₀ M
hfv : Set.InjOn f (f ⁻¹' ↑v.support)
hfrv : optParam (Set.InjOn f (f ⁻¹' ↑(r • v).support)) ⋯
a✝ : α
⊢ (comapDomain f (r • v) hfrv) a✝ = (r • comapDomain f v hfv) a✝

tactic: rfl
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝² : AddMonoid M
inst✝¹ : Monoid R
inst✝ : DistribMulAction R M
f : α → β
r : R
v : β →₀ M
hfv : Set.InjOn f (f ⁻¹' ↑v.support)
hfrv : optParam (Set.InjOn f (f ⁻¹' ↑(r • v).support)) ⋯
a✝ : α
⊢ (comapDomain f (r • v) hfrv) a✝ = (r • comapDomain f v hfv) a✝
state_after: no goals
Theorem: Submodule.mem_sup'
File: Mathlib/LinearAlgebra/Span.lean

tactic: simp only [Subtype.exists, exists_prop]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s t : Set M
⊢ (∃ y ∈ p, ∃ z ∈ p', y + z = x) ↔ ∃ y z, ↑y + ↑z = x
state_after: no goals
Theorem: Nat.frequently_atTop_modEq_one
File: Mathlib/NumberTheory/PrimesCongruentOne.lean

tactic: refine frequently_atTop.2 fun n => ?_
state_before: k : ℕ
hk0 : k ≠ 0
⊢ ∃ᶠ (p : ℕ) in atTop, Prime p ∧ p ≡ 1 [MOD k]
state_after: k : ℕ
hk0 : k ≠ 0
n : ℕ
⊢ ∃ b ≥ n, Prime b ∧ b ≡ 1 [MOD k]

tactic: obtain ⟨p, hp⟩ := exists_prime_gt_modEq_one n hk0
state_before: k : ℕ
hk0 : k ≠ 0
n : ℕ
⊢ ∃ b ≥ n, Prime b ∧ b ≡ 1 [MOD k]
state_after: case intro
k : ℕ
hk0 : k ≠ 0
n p : ℕ
hp : Prime p ∧ n < p ∧ p ≡ 1 [MOD k]
⊢ ∃ b ≥ n, Prime b ∧ b ≡ 1 [MOD k]

tactic: exact ⟨p, ⟨hp.2.1.le, hp.1, hp.2.2⟩⟩
state_before: case intro
k : ℕ
hk0 : k ≠ 0
n p : ℕ
hp : Prime p ∧ n < p ∧ p ≡ 1 [MOD k]
⊢ ∃ b ≥ n, Prime b ∧ b ≡ 1 [MOD k]
state_after: no goals
Theorem: isLUB_of_tendsto_atTop
File: Mathlib/Topology/Order/MonotoneConvergence.lean

tactic: constructor
state_before: α : Type u_1
β : Type u_2
inst✝⁴ : TopologicalSpace α
inst✝³ : Preorder α
inst✝² : OrderClosedTopology α
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → α
a : α
hf : Monotone f
ha : Tendsto f atTop (𝓝 a)
⊢ IsLUB (range f) a
state_after: case left
α : Type u_1
β : Type u_2
inst✝⁴ : TopologicalSpace α
inst✝³ : Preorder α
inst✝² : OrderClosedTopology α
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → α
a : α
hf : Monotone f
ha : Tendsto f atTop (𝓝 a)
⊢ a ∈ upperBounds (range f)

case right
α : Type u_1
β : Type u_2
inst✝⁴ : TopologicalSpace α
inst✝³ : Preorder α
inst✝² : OrderClosedTopology α
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → α
a : α
hf : Monotone f
ha : Tendsto f atTop (𝓝 a)
⊢ a ∈ lowerBounds (upperBounds (range f))

tactic: rintro _ ⟨b, rfl⟩
state_before: case left
α : Type u_1
β : Type u_2
inst✝⁴ : TopologicalSpace α
inst✝³ : Preorder α
inst✝² : OrderClosedTopology α
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → α
a : α
hf : Monotone f
ha : Tendsto f atTop (𝓝 a)
⊢ a ∈ upperBounds (range f)
state_after: case left.intro
α : Type u_1
β : Type u_2
inst✝⁴ : TopologicalSpace α
inst✝³ : Preorder α
inst✝² : OrderClosedTopology α
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → α
a : α
hf : Monotone f
ha : Tendsto f atTop (𝓝 a)
b : β
⊢ f b ≤ a

tactic: exact hf.ge_of_tendsto ha b
state_before: case left.intro
α : Type u_1
β : Type u_2
inst✝⁴ : TopologicalSpace α
inst✝³ : Preorder α
inst✝² : OrderClosedTopology α
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → α
a : α
hf : Monotone f
ha : Tendsto f atTop (𝓝 a)
b : β
⊢ f b ≤ a
state_after: no goals

tactic: exact fun _ hb => le_of_tendsto' ha fun x => hb (Set.mem_range_self x)
state_before: case right
α : Type u_1
β : Type u_2
inst✝⁴ : TopologicalSpace α
inst✝³ : Preorder α
inst✝² : OrderClosedTopology α
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → α
a : α
hf : Monotone f
ha : Tendsto f atTop (𝓝 a)
⊢ a ∈ lowerBounds (upperBounds (range f))
state_after: no goals
Theorem: LeftOrdContinuous.mono
File: Mathlib/Order/OrdContinuous.lean

tactic: simp [*]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
g : β → γ
f : α → β
hf : LeftOrdContinuous f
a₁ a₂ : α
h : a₁ ≤ a₂
⊢ a₂ ∈ upperBounds {a₁, a₂}
state_after: no goals
Theorem: PiCountable.dist_le_dist_pi_of_dist_lt
File: Mathlib/Topology/MetricSpace/PiNat.lean

tactic: simpa only [not_le.2 h, false_or_iff] using min_le_iff.1 (min_dist_le_dist_pi x y i)
state_before: E : ℕ → Type u_1
ι : Type u_2
inst✝¹ : Encodable ι
F : ι → Type u_3
inst✝ : (i : ι) → MetricSpace (F i)
x y : (i : ι) → F i
i : ι
h : dist x y < (1 / 2) ^ encode i
⊢ dist (x i) (y i) ≤ dist x y
state_after: no goals
Theorem: LinearMap.polyCharpoly_map_eq_charpoly
File: Mathlib/Algebra/Module/LinearMap/Polynomial.lean

tactic: rw [polyCharpoly, polyCharpolyAux_map_eq_charpoly]
state_before: R : Type u_1
L : Type u_2
M : Type u_3
n : Type u_4
ι : Type u_5
ι' : Type u_6
ιM : Type u_7
inst✝¹¹ : CommRing R
inst✝¹⁰ : AddCommGroup L
inst✝⁹ : Module R L
inst✝⁸ : AddCommGroup M
inst✝⁷ : Module R M
φ : L →ₗ[R] Module.End R M
inst✝⁶ : Fintype ι
inst✝⁵ : Fintype ι'
inst✝⁴ : Fintype ιM
inst✝³ : DecidableEq ι
inst✝² : DecidableEq ι'
inst✝¹ : Module.Free R M
inst✝ : Module.Finite R M
b : Basis ι R L
x : L
⊢ Polynomial.map (MvPolynomial.eval ⇑(b.repr x)) (φ.polyCharpoly b) = charpoly (φ x)
state_after: no goals
Theorem: CategoryTheory.Limits.WalkingParallelPairHom.comp_id
File: Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean

tactic: cases f <;> rfl
state_before: X Y : WalkingParallelPair
f : WalkingParallelPairHom X Y
⊢ f.comp (id Y) = f
state_after: no goals
Theorem: Polynomial.isEquivalent_atTop_lead
File: Mathlib/Analysis/SpecialFunctions/Polynomials.lean

tactic: by_cases h : P = 0
state_before: 𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
⊢ (fun x => eval x P) ~[atTop] fun x => P.leadingCoeff * x ^ P.natDegree
state_after: case pos
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : P = 0
⊢ (fun x => eval x P) ~[atTop] fun x => P.leadingCoeff * x ^ P.natDegree

case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : ¬P = 0
⊢ (fun x => eval x P) ~[atTop] fun x => P.leadingCoeff * x ^ P.natDegree

tactic: simp [h, IsEquivalent.refl]
state_before: case pos
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : P = 0
⊢ (fun x => eval x P) ~[atTop] fun x => P.leadingCoeff * x ^ P.natDegree
state_after: no goals

tactic: simp only [Polynomial.eval_eq_sum_range, sum_range_succ]
state_before: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : ¬P = 0
⊢ (fun x => eval x P) ~[atTop] fun x => P.leadingCoeff * x ^ P.natDegree
state_after: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : ¬P = 0
⊢ (fun x => ∑ i ∈ range P.natDegree, P.coeff i * x ^ i + P.coeff P.natDegree * x ^ P.natDegree) ~[atTop] fun x =>
    P.leadingCoeff * x ^ P.natDegree

tactic: exact
  IsLittleO.add_isEquivalent
    (IsLittleO.sum fun i hi =>
      IsLittleO.const_mul_left
        ((IsLittleO.const_mul_right fun hz => h <| leadingCoeff_eq_zero.mp hz) <|
          isLittleO_pow_pow_atTop_of_lt (mem_range.mp hi))
        _)
    IsEquivalent.refl
state_before: case neg
𝕜 : Type u_1
inst✝¹ : NormedLinearOrderedField 𝕜
P Q : 𝕜[X]
inst✝ : OrderTopology 𝕜
h : ¬P = 0
⊢ (fun x => ∑ i ∈ range P.natDegree, P.coeff i * x ^ i + P.coeff P.natDegree * x ^ P.natDegree) ~[atTop] fun x =>
    P.leadingCoeff * x ^ P.natDegree
state_after: no goals
Theorem: Set.preimage_add_const_Ioo
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [← Ioi_inter_Iio]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => x + a) ⁻¹' Ioo b c = Ioo (b - a) (c - a)
state_after: no goals
Theorem: Submodule.coe_torsion_eq_annihilator_ne_bot
File: Mathlib/Algebra/Module/Torsion.lean

tactic: ext x
state_before: R : Type u_1
M : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
⊢ ↑(torsion R M) = {x | (span R {x}).annihilator ≠ ⊥}
state_after: case h
R : Type u_1
M : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
x : M
⊢ x ∈ ↑(torsion R M) ↔ x ∈ {x | (span R {x}).annihilator ≠ ⊥}

tactic: simp_rw [Submodule.ne_bot_iff, mem_annihilator, mem_span_singleton]
state_before: case h
R : Type u_1
M : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
x : M
⊢ x ∈ ↑(torsion R M) ↔ x ∈ {x | (span R {x}).annihilator ≠ ⊥}
state_after: case h
R : Type u_1
M : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
x : M
⊢ x ∈ ↑(torsion R M) ↔ x ∈ {x | ∃ x_1, (∀ (n : M), (∃ a, a • x = n) → x_1 • n = 0) ∧ x_1 ≠ 0}

tactic: exact
  ⟨fun ⟨a, hax⟩ =>
    ⟨a, fun _ ⟨b, hb⟩ => by rw [← hb, smul_comm, ← Submonoid.smul_def, hax, smul_zero],
      nonZeroDivisors.coe_ne_zero _⟩,
    fun ⟨a, hax, ha⟩ => ⟨⟨_, mem_nonZeroDivisors_of_ne_zero ha⟩, hax x ⟨1, one_smul _ _⟩⟩⟩
state_before: case h
R : Type u_1
M : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
x : M
⊢ x ∈ ↑(torsion R M) ↔ x ∈ {x | ∃ x_1, (∀ (n : M), (∃ a, a • x = n) → x_1 • n = 0) ∧ x_1 ≠ 0}
state_after: no goals

tactic: rw [← hb, smul_comm, ← Submonoid.smul_def, hax, smul_zero]
state_before: R : Type u_1
M : Type u_2
inst✝⁴ : CommSemiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : NoZeroDivisors R
inst✝ : Nontrivial R
x : M
x✝² : x ∈ ↑(torsion R M)
a : ↥R⁰
hax : a • x = 0
x✝¹ : M
x✝ : ∃ a, a • x = x✝¹
b : R
hb : b • x = x✝¹
⊢ ↑a • x✝¹ = 0
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.RightFractionRel.unop
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean

tactic: obtain ⟨Z, t₁, t₂, hs, hf, ht⟩ := h
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.132570, u_2} D
L : C ⥤ D
W✝ : MorphismProperty C
inst✝ : L.IsLocalization W✝
W : MorphismProperty Cᵒᵖ
X Y : Cᵒᵖ
z₁ z₂ : W.RightFraction X Y
h : RightFractionRel z₁ z₂
⊢ LeftFractionRel z₁.unop z₂.unop
state_after: case intro.intro.intro.intro.intro
C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.132570, u_2} D
L : C ⥤ D
W✝ : MorphismProperty C
inst✝ : L.IsLocalization W✝
W : MorphismProperty Cᵒᵖ
X Y : Cᵒᵖ
z₁ z₂ : W.RightFraction X Y
Z : Cᵒᵖ
t₁ : Z ⟶ z₁.X'
t₂ : Z ⟶ z₂.X'
hs : t₁ ≫ z₁.s = t₂ ≫ z₂.s
hf : t₁ ≫ z₁.f = t₂ ≫ z₂.f
ht : W (t₁ ≫ z₁.s)
⊢ LeftFractionRel z₁.unop z₂.unop

tactic: exact ⟨Opposite.unop Z, t₁.unop, t₂.unop, Quiver.Hom.op_inj hs,
  Quiver.Hom.op_inj hf, ht⟩
state_before: case intro.intro.intro.intro.intro
C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.132570, u_2} D
L : C ⥤ D
W✝ : MorphismProperty C
inst✝ : L.IsLocalization W✝
W : MorphismProperty Cᵒᵖ
X Y : Cᵒᵖ
z₁ z₂ : W.RightFraction X Y
Z : Cᵒᵖ
t₁ : Z ⟶ z₁.X'
t₂ : Z ⟶ z₂.X'
hs : t₁ ≫ z₁.s = t₂ ≫ z₂.s
hf : t₁ ≫ z₁.f = t₂ ≫ z₂.f
ht : W (t₁ ≫ z₁.s)
⊢ LeftFractionRel z₁.unop z₂.unop
state_after: no goals
Theorem: CategoryTheory.Limits.biproduct.eqToHom_comp_ι
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: simp [w]
state_before: J : Type w
K : Type u_1
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j j' : J
w : j = j'
⊢ f j = f j'
state_after: no goals

tactic: cases w
state_before: J : Type w
K : Type u_1
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j j' : J
w : j = j'
⊢ eqToHom ⋯ ≫ ι f j' = ι f j
state_after: case refl
J : Type w
K : Type u_1
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j : J
⊢ eqToHom ⋯ ≫ ι f j = ι f j

tactic: simp
state_before: case refl
J : Type w
K : Type u_1
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
f : J → C
inst✝ : HasBiproduct f
j : J
⊢ eqToHom ⋯ ≫ ι f j = ι f j
state_after: no goals
Theorem: min_lt_min_right_iff
File: Mathlib/Order/MinMax.lean

tactic: simp_rw [min_comm a, min_lt_min_left_iff]
state_before: α : Type u
β : Type v
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
s : Set α
a b c d : α
⊢ min a b < min a c ↔ b < c ∧ b < a
state_after: no goals
Theorem: MeasureTheory.Measure.measurable_of_measurable_coe
File: Mathlib/MeasureTheory/Measure/GiryMonad.lean

tactic: rw [MeasurableSpace.map_comp]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
f : β → Measure α
h : ∀ (s : Set α), MeasurableSet s → Measurable fun b => (f b) s
s : Set α
hs : MeasurableSet s
⊢ borel ℝ≥0∞ ≤ MeasurableSpace.map (fun μ => μ s) (MeasurableSpace.map f inst✝)
state_after: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
f : β → Measure α
h : ∀ (s : Set α), MeasurableSet s → Measurable fun b => (f b) s
s : Set α
hs : MeasurableSet s
⊢ borel ℝ≥0∞ ≤ MeasurableSpace.map ((fun μ => μ s) ∘ f) inst✝

tactic: exact h s hs
state_before: α : Type u_1
β : Type u_2
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSpace β
f : β → Measure α
h : ∀ (s : Set α), MeasurableSet s → Measurable fun b => (f b) s
s : Set α
hs : MeasurableSet s
⊢ borel ℝ≥0∞ ≤ MeasurableSpace.map ((fun μ => μ s) ∘ f) inst✝
state_after: no goals
Theorem: compl_beattySeq'
File: Mathlib/NumberTheory/Rayleigh.lean

tactic: rw [← compl_beattySeq hrs.symm, compl_compl]
state_before: r s : ℝ
hrs : r.IsConjExponent s
⊢ {x | ∃ k, beattySeq' r k = x}ᶜ = {x | ∃ k, beattySeq s k = x}
state_after: no goals
Theorem: MeasureTheory.union_mem_measurableCylinders
File: Mathlib/MeasureTheory/Constructions/Cylinders.lean

tactic: rw [union_eq_compl_compl_inter_compl]
state_before: ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → MeasurableSpace (α i)
s t : Set ((i : ι) → α i)
hs : s ∈ measurableCylinders α
ht : t ∈ measurableCylinders α
⊢ s ∪ t ∈ measurableCylinders α
state_after: ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → MeasurableSpace (α i)
s t : Set ((i : ι) → α i)
hs : s ∈ measurableCylinders α
ht : t ∈ measurableCylinders α
⊢ (sᶜ ∩ tᶜ)ᶜ ∈ measurableCylinders α

tactic: exact compl_mem_measurableCylinders (inter_mem_measurableCylinders
  (compl_mem_measurableCylinders hs) (compl_mem_measurableCylinders ht))
state_before: ι : Type u_1
α : ι → Type u_2
inst✝ : (i : ι) → MeasurableSpace (α i)
s t : Set ((i : ι) → α i)
hs : s ∈ measurableCylinders α
ht : t ∈ measurableCylinders α
⊢ (sᶜ ∩ tᶜ)ᶜ ∈ measurableCylinders α
state_after: no goals
Theorem: nhdsSet_Ici
File: Mathlib/Topology/Order/NhdsSet.lean

tactic: rw [← Ioi_insert, nhdsSet_insert, nhdsSet_Ioi]
state_before: α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
a b c d : α
⊢ 𝓝ˢ (Ici a) = 𝓝 a ⊔ 𝓟 (Ioi a)
state_after: no goals
Theorem: ContinuousLinearEquiv.nhds
File: Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean

tactic: simp
state_before: 𝕜 : Type u_1
inst✝⁷ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedSpace 𝕜 F
G : Type u_4
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
inst✝ : CompleteSpace E
e : E ≃L[𝕜] F
⊢ ↑e ∈ range toContinuousLinearMap
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.whiskerLeft_iff
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : MonoidalCategory C
U V W X✝ Y✝ Z X Y : C
f g : X ⟶ Y
⊢ 𝟙_ C ◁ f = 𝟙_ C ◁ g ↔ f = g
state_after: no goals
Theorem: IsLocalizedModule.rank_eq
File: Mathlib/LinearAlgebra/Dimension/Localization.lean

tactic: simpa using IsLocalizedModule.lift_rank_eq S p f hp
state_before: R : Type u
S : Type u'
M : Type v
N✝ : Type v'
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : AddCommGroup M
inst✝¹² : AddCommGroup N✝
inst✝¹¹ : Module R M
inst✝¹⁰ : Module R N✝
inst✝⁹ : Algebra R S
inst✝⁸ : Module S N✝
inst✝⁷ : IsScalarTower R S N✝
p : Submonoid R
inst✝⁶ : IsLocalization p S
f✝ : M →ₗ[R] N✝
inst✝⁵ : IsLocalizedModule p f✝
hp : p ≤ R⁰
N : Type v
inst✝⁴ : AddCommGroup N
inst✝³ : Module R N
inst✝² : Module S N
inst✝¹ : IsScalarTower R S N
f : M →ₗ[R] N
inst✝ : IsLocalizedModule p f
⊢ Module.rank S N = Module.rank R M
state_after: no goals