1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Profinite.NobelingProof.eval_eq_πJ
File: Mathlib/Topology/Category/Profinite/Nobeling.lean

tactic: ext f
state_before: I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
s : Finset I
l : Products I
hl : Products.isGood (π C fun x => x ∈ s) l
⊢ Products.eval C l = (πJ C s) (Products.eval (π C fun x => x ∈ s) l)
state_after: case h
I : Type u
inst✝¹ : LinearOrder I
inst✝ : IsWellOrder I fun x x_1 => x < x_1
C : Set (I → Bool)
s : Finset I
l : Products I
hl : Products.isGood (π C fun x => x ∈ s) l
f : ↑C
⊢ (Products.eval C l) f = ((πJ C s) (Products.eval (π C fun x => x ∈ s) l)) f
Theorem: Matrix.vecMul_cons
File: Mathlib/Data/Matrix/Notation.lean

tactic: ext i
state_before: α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝ : NonUnitalNonAssocSemiring α
v : Fin n.succ → α
w : o' → α
B : Fin n → o' → α
⊢ v ᵥ* of (vecCons w B) = vecHead v • w + vecTail v ᵥ* of B
state_after: case h
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝ : NonUnitalNonAssocSemiring α
v : Fin n.succ → α
w : o' → α
B : Fin n → o' → α
i : o'
⊢ (v ᵥ* of (vecCons w B)) i = (vecHead v • w + vecTail v ᵥ* of B) i

tactic: simp [vecMul]
state_before: case h
α : Type u
o n m : ℕ
m' : Type uₘ
n' : Type uₙ
o' : Type uₒ
a b : ℕ
inst✝ : NonUnitalNonAssocSemiring α
v : Fin n.succ → α
w : o' → α
B : Fin n → o' → α
i : o'
⊢ (v ᵥ* of (vecCons w B)) i = (vecHead v • w + vecTail v ᵥ* of B) i
state_after: no goals
Theorem: Nat.totient_mul_of_prime_of_dvd
File: Mathlib/Data/Nat/Totient.lean

tactic: have h1 := totient_gcd_mul_totient_mul p n
state_before: p n : ℕ
hp : Prime p
h : p ∣ n
⊢ φ (p * n) = p * φ n
state_after: p n : ℕ
hp : Prime p
h : p ∣ n
h1 : φ (p.gcd n) * φ (p * n) = φ p * φ n * p.gcd n
⊢ φ (p * n) = p * φ n

tactic: rw [gcd_eq_left h, mul_assoc] at h1
state_before: p n : ℕ
hp : Prime p
h : p ∣ n
h1 : φ (p.gcd n) * φ (p * n) = φ p * φ n * p.gcd n
⊢ φ (p * n) = p * φ n
state_after: p n : ℕ
hp : Prime p
h : p ∣ n
h1 : φ p * φ (p * n) = φ p * (φ n * p)
⊢ φ (p * n) = p * φ n

tactic: simpa [(totient_pos.2 hp.pos).ne', mul_comm] using h1
state_before: p n : ℕ
hp : Prime p
h : p ∣ n
h1 : φ p * φ (p * n) = φ p * (φ n * p)
⊢ φ (p * n) = p * φ n
state_after: no goals
Theorem: exists_nhds_ne_neBot
File: Mathlib/Topology/Compactness/Compact.lean

tactic: simpa [AccPt] using (@infinite_univ X _).exists_accPt_principal
state_before: X✝ : Type u
Y : Type v
ι : Type u_1
inst✝⁴ : TopologicalSpace X✝
inst✝³ : TopologicalSpace Y
s t : Set X✝
X : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : CompactSpace X
inst✝ : Infinite X
⊢ ∃ z, (𝓝[≠] z).NeBot
state_after: no goals
Theorem: antivary_iff_mul_rearrangement
File: Mathlib/Algebra/Order/Monovary.lean

tactic: simp only [smul_eq_mul, antivary_iff_smul_rearrangement]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedRing α
f g : ι → α
s : Set ι
a b c d : α
⊢ Antivary f g ↔ ∀ (i j : ι), f i * g i + f j * g j ≤ f i * g j + f j * g i
state_after: no goals
Theorem: norm_algebraMap
File: Mathlib/Analysis/NormedSpace/Basic.lean

tactic: rw [Algebra.algebraMap_eq_smul_one]
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedRing 𝕜'
inst✝ : NormedAlgebra 𝕜 𝕜'
x : 𝕜
⊢ ‖(algebraMap 𝕜 𝕜') x‖ = ‖x‖ * ‖1‖
state_after: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedRing 𝕜'
inst✝ : NormedAlgebra 𝕜 𝕜'
x : 𝕜
⊢ ‖x • 1‖ = ‖x‖ * ‖1‖

tactic: exact norm_smul _ _
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
F : Type u_4
α : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : SeminormedRing 𝕜'
inst✝ : NormedAlgebra 𝕜 𝕜'
x : 𝕜
⊢ ‖x • 1‖ = ‖x‖ * ‖1‖
state_after: no goals
Theorem: Real.Angle.cos_antiperiodic
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: intro θ
state_before: ⊢ Function.Antiperiodic cos ↑π
state_after: θ : Angle
⊢ (θ + ↑π).cos = -θ.cos

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ (θ + ↑π).cos = -θ.cos
state_after: case h
x✝ : ℝ
⊢ (↑x✝ + ↑π).cos = -(↑x✝).cos

tactic: exact Real.cos_antiperiodic _
state_before: case h
x✝ : ℝ
⊢ (↑x✝ + ↑π).cos = -(↑x✝).cos
state_after: no goals
Theorem: NonemptyInterval.length_sub
File: Mathlib/Algebra/Order/Interval/Basic.lean

tactic: simp [sub_eq_add_neg]
state_before: ι : Type u_1
α : Type u_2
inst✝ : OrderedAddCommGroup α
s t : NonemptyInterval α
a : α
⊢ (s - t).length = s.length + t.length
state_after: no goals
Theorem: Real.Icc_mem_vitaliFamily_at_right
File: Mathlib/MeasureTheory/Covering/OneDim.lean

tactic: rw [Icc_eq_closedBall]
state_before: x y : ℝ
hxy : x < y
⊢ Icc x y ∈ (vitaliFamily volume 1).setsAt x
state_after: x y : ℝ
hxy : x < y
⊢ Metric.closedBall ((x + y) / 2) ((y - x) / 2) ∈ (vitaliFamily volume 1).setsAt x

tactic: refine closedBall_mem_vitaliFamily_of_dist_le_mul _ ?_ (by linarith)
state_before: x y : ℝ
hxy : x < y
⊢ Metric.closedBall ((x + y) / 2) ((y - x) / 2) ∈ (vitaliFamily volume 1).setsAt x
state_after: x y : ℝ
hxy : x < y
⊢ dist x ((x + y) / 2) ≤ 1 * ((y - x) / 2)

tactic: rw [dist_comm, Real.dist_eq, abs_of_nonneg] <;> linarith
state_before: x y : ℝ
hxy : x < y
⊢ dist x ((x + y) / 2) ≤ 1 * ((y - x) / 2)
state_after: no goals

tactic: linarith
state_before: x y : ℝ
hxy : x < y
⊢ 0 < (y - x) / 2
state_after: no goals
Theorem: Nat.add_div_eq_of_le_mod_add_mod
File: Mathlib/Data/Nat/ModEq.lean

tactic: rw [add_div hc0, if_pos hc]
state_before: m n a✝ b✝ c✝ d a b c : ℕ
hc : c ≤ a % c + b % c
hc0 : 0 < c
⊢ (a + b) / c = a / c + b / c + 1
state_after: no goals
Theorem: OrderIso.preimage_Ioi
File: Mathlib/Order/Interval/Set/OrderIso.lean

tactic: ext x
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
b : β
⊢ ⇑e ⁻¹' Ioi b = Ioi (e.symm b)
state_after: case h
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
b : β
x : α
⊢ x ∈ ⇑e ⁻¹' Ioi b ↔ x ∈ Ioi (e.symm b)

tactic: simp [← e.lt_iff_lt]
state_before: case h
α : Type u_1
β : Type u_2
inst✝¹ : Preorder α
inst✝ : Preorder β
e : α ≃o β
b : β
x : α
⊢ x ∈ ⇑e ⁻¹' Ioi b ↔ x ∈ Ioi (e.symm b)
state_after: no goals
Theorem: OrderEmbedding.preimage_uIcc
File: Mathlib/Order/Interval/Set/OrderEmbedding.lean

tactic: cases le_total x y <;> simp [*]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : Lattice β
e : α ↪o β
x y : α
⊢ ⇑e ⁻¹' uIcc (e x) (e y) = uIcc x y
state_after: no goals
Theorem: Real.ind_mk
File: Mathlib/Data/Real/Basic.lean

tactic: cases' x with x
state_before: x✝ y : ℝ
C : ℝ → Prop
x : ℝ
h : ∀ (y : CauSeq ℚ abs), C (mk y)
⊢ C x
state_after: case ofCauchy
x✝ y : ℝ
C : ℝ → Prop
h : ∀ (y : CauSeq ℚ abs), C (mk y)
x : Cauchy abs
⊢ C { cauchy := x }

tactic: induction' x using Quot.induction_on with x
state_before: case ofCauchy
x✝ y : ℝ
C : ℝ → Prop
h : ∀ (y : CauSeq ℚ abs), C (mk y)
x : Cauchy abs
⊢ C { cauchy := x }
state_after: case ofCauchy.h
x✝ y : ℝ
C : ℝ → Prop
h : ∀ (y : CauSeq ℚ abs), C (mk y)
x : CauSeq ℚ abs
⊢ C { cauchy := Quot.mk Setoid.r x }

tactic: exact h x
state_before: case ofCauchy.h
x✝ y : ℝ
C : ℝ → Prop
h : ∀ (y : CauSeq ℚ abs), C (mk y)
x : CauSeq ℚ abs
⊢ C { cauchy := Quot.mk Setoid.r x }
state_after: no goals
Theorem: MeasureTheory.Measure.MutuallySingular.restrict
File: Mathlib/MeasureTheory/Measure/MutuallySingular.lean

tactic: refine ⟨h.nullSet, h.measurableSet_nullSet, ?_, h.measure_compl_nullSet⟩
state_before: α : Type u_1
m0 : MeasurableSpace α
μ μ₁ μ₂ ν ν₁ ν₂ : Measure α
h : μ ⟂ₘ ν
s : Set α
⊢ μ.restrict s ⟂ₘ ν
state_after: α : Type u_1
m0 : MeasurableSpace α
μ μ₁ μ₂ ν ν₁ ν₂ : Measure α
h : μ ⟂ₘ ν
s : Set α
⊢ (μ.restrict s) h.nullSet = 0

tactic: rw [Measure.restrict_apply h.measurableSet_nullSet]
state_before: α : Type u_1
m0 : MeasurableSpace α
μ μ₁ μ₂ ν ν₁ ν₂ : Measure α
h : μ ⟂ₘ ν
s : Set α
⊢ (μ.restrict s) h.nullSet = 0
state_after: α : Type u_1
m0 : MeasurableSpace α
μ μ₁ μ₂ ν ν₁ ν₂ : Measure α
h : μ ⟂ₘ ν
s : Set α
⊢ μ (h.nullSet ∩ s) = 0

tactic: exact measure_mono_null Set.inter_subset_left h.measure_nullSet
state_before: α : Type u_1
m0 : MeasurableSpace α
μ μ₁ μ₂ ν ν₁ ν₂ : Measure α
h : μ ⟂ₘ ν
s : Set α
⊢ μ (h.nullSet ∩ s) = 0
state_after: no goals
Theorem: ProjectiveSpectrum.vanishingIdeal_iUnion
File: Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Topology.lean

tactic: convert (gc_ideal 𝒜).u_iInf
state_before: R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
γ : Sort u_3
t : γ → Set (ProjectiveSpectrum 𝒜)
⊢ (vanishingIdeal (⋃ i, t i)).toIdeal = (⨅ i, vanishingIdeal (t i)).toIdeal
state_after: case h.e'_3
R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
γ : Sort u_3
t : γ → Set (ProjectiveSpectrum 𝒜)
⊢ (⨅ i, vanishingIdeal (t i)).toIdeal = ⨅ i, (vanishingIdeal (t i)).toIdeal

tactic: exact HomogeneousIdeal.toIdeal_iInf _
state_before: case h.e'_3
R : Type u_1
A : Type u_2
inst✝³ : CommSemiring R
inst✝² : CommRing A
inst✝¹ : Algebra R A
𝒜 : ℕ → Submodule R A
inst✝ : GradedAlgebra 𝒜
γ : Sort u_3
t : γ → Set (ProjectiveSpectrum 𝒜)
⊢ (⨅ i, vanishingIdeal (t i)).toIdeal = ⨅ i, (vanishingIdeal (t i)).toIdeal
state_after: no goals
Theorem: CategoryTheory.Functor.shiftIso_add_hom_app
File: Mathlib/CategoryTheory/Shift/ShiftSequence.lean

tactic: rw [add_assoc, ha', ha'']
state_before: C : Type u_1
A : Type u_2
inst✝⁶ : Category.{?u.45754, u_1} C
inst✝⁵ : Category.{?u.45758, u_2} A
F : C ⥤ A
M : Type u_3
inst✝⁴ : AddMonoid M
inst✝³ : HasShift C M
G : Type u_4
inst✝² : AddGroup G
inst✝¹ : HasShift C G
inst✝ : F.ShiftSequence M
n m a a' a'' : M
ha' : n + a = a'
ha'' : m + a' = a''
X : C
⊢ m + n + a = a''
state_after: no goals

tactic: simp [F.shiftIso_add n m a a' a'' ha' ha'']
state_before: C : Type u_1
A : Type u_2
inst✝⁶ : Category.{u_6, u_1} C
inst✝⁵ : Category.{u_5, u_2} A
F : C ⥤ A
M : Type u_3
inst✝⁴ : AddMonoid M
inst✝³ : HasShift C M
G : Type u_4
inst✝² : AddGroup G
inst✝¹ : HasShift C G
inst✝ : F.ShiftSequence M
n m a a' a'' : M
ha' : n + a = a'
ha'' : m + a' = a''
X : C
⊢ (F.shiftIso (m + n) a a'' ⋯).hom.app X =
    (F.shift a).map ((shiftFunctorAdd C m n).hom.app X) ≫
      (F.shiftIso n a a' ha').hom.app ((shiftFunctor C m).obj X) ≫ (F.shiftIso m a' a'' ha'').hom.app X
state_after: no goals
Theorem: Filter.mem_coclosedCompact_iff
File: Mathlib/Topology/Compactness/Compact.lean

tactic: refine hasBasis_coclosedCompact.mem_iff.trans ⟨?_, fun h ↦ ?_⟩
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ s ∈ coclosedCompact X ↔ IsCompact (closure sᶜ)
state_after: case refine_1
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (∃ i, (IsClosed i ∧ IsCompact i) ∧ iᶜ ⊆ s) → IsCompact (closure sᶜ)

case refine_2
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
h : IsCompact (closure sᶜ)
⊢ ∃ i, (IsClosed i ∧ IsCompact i) ∧ iᶜ ⊆ s

tactic: rintro ⟨t, ⟨htcl, htco⟩, hst⟩
state_before: case refine_1
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
⊢ (∃ i, (IsClosed i ∧ IsCompact i) ∧ iᶜ ⊆ s) → IsCompact (closure sᶜ)
state_after: case refine_1.intro.intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t✝ t : Set X
hst : tᶜ ⊆ s
htcl : IsClosed t
htco : IsCompact t
⊢ IsCompact (closure sᶜ)

tactic: exact htco.of_isClosed_subset isClosed_closure <|
  closure_minimal (compl_subset_comm.2 hst) htcl
state_before: case refine_1.intro.intro.intro
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t✝ t : Set X
hst : tᶜ ⊆ s
htcl : IsClosed t
htco : IsCompact t
⊢ IsCompact (closure sᶜ)
state_after: no goals

tactic: exact ⟨closure sᶜ, ⟨isClosed_closure, h⟩, compl_subset_comm.2 subset_closure⟩
state_before: case refine_2
X : Type u
Y : Type v
ι : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
s t : Set X
h : IsCompact (closure sᶜ)
⊢ ∃ i, (IsClosed i ∧ IsCompact i) ∧ iᶜ ⊆ s
state_after: no goals
Theorem: Real.rpow_le_one_iff_of_pos
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [rpow_def_of_pos hx, exp_le_one_iff, mul_nonpos_iff, log_nonneg_iff hx, log_nonpos_iff hx]
state_before: x y z : ℝ
n : ℕ
hx : 0 < x
⊢ x ^ y ≤ 1 ↔ 1 ≤ x ∧ y ≤ 0 ∨ x ≤ 1 ∧ 0 ≤ y
state_after: no goals
Theorem: NonUnitalNonAssocSemiring.ext_iff
File: Mathlib/Algebra/Ring/Ext.lean

tactic: rintro rfl
state_before: R : Type u
inst₁ inst₂ : NonUnitalNonAssocSemiring R
⊢ inst₁ = inst₂ → HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
state_after: R : Type u
inst₁ : NonUnitalNonAssocSemiring R
⊢ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul

tactic: constructor <;> rfl
state_before: R : Type u
inst₁ : NonUnitalNonAssocSemiring R
⊢ HAdd.hAdd = HAdd.hAdd ∧ HMul.hMul = HMul.hMul
state_after: no goals
Theorem: LT.lt.exists_disjoint_Iio_Ioi
File: Mathlib/Order/Cover.lean

tactic: by_cases h' : a ⋖ b
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c : α
h : a < b
⊢ ∃ a' > a, ∃ b' < b, ∀ x < a', ∀ y > b', x < y
state_after: case pos
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c : α
h : a < b
h' : a ⋖ b
⊢ ∃ a' > a, ∃ b' < b, ∀ x < a', ∀ y > b', x < y

case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c : α
h : a < b
h' : ¬a ⋖ b
⊢ ∃ a' > a, ∃ b' < b, ∀ x < a', ∀ y > b', x < y

tactic: exact ⟨b, h, a, h, fun x hx y hy => hx.trans_le <| h'.ge_of_gt hy⟩
state_before: case pos
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c : α
h : a < b
h' : a ⋖ b
⊢ ∃ a' > a, ∃ b' < b, ∀ x < a', ∀ y > b', x < y
state_after: no goals

tactic: rcases h.exists_lt_lt h' with ⟨c, ha, hb⟩
state_before: case neg
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c : α
h : a < b
h' : ¬a ⋖ b
⊢ ∃ a' > a, ∃ b' < b, ∀ x < a', ∀ y > b', x < y
state_after: case neg.intro.intro
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c✝ : α
h : a < b
h' : ¬a ⋖ b
c : α
ha : a < c
hb : c < b
⊢ ∃ a' > a, ∃ b' < b, ∀ x < a', ∀ y > b', x < y

tactic: exact ⟨c, ha, c, hb, fun _ h₁ _ => lt_trans h₁⟩
state_before: case neg.intro.intro
α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b c✝ : α
h : a < b
h' : ¬a ⋖ b
c : α
ha : a < c
hb : c < b
⊢ ∃ a' > a, ∃ b' < b, ∀ x < a', ∀ y > b', x < y
state_after: no goals
Theorem: ZNum.mul_comm
File: Mathlib/Data/Num/Lemmas.lean

tactic: transfer
state_before: α : Type u_1
⊢ ∀ (a b : ZNum), a * b = b * a
state_after: no goals
Theorem: sup_himp_bihimp
File: Mathlib/Order/SymmDiff.lean

tactic: rw [himp_bihimp]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedHeytingAlgebra α
a b c d : α
⊢ a ⊔ b ⇨ a ⇔ b = a ⇔ b
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedHeytingAlgebra α
a b c d : α
⊢ ((a ⊔ b) ⊓ b ⇨ a) ⊓ ((a ⊔ b) ⊓ a ⇨ b) = a ⇔ b

tactic: simp [bihimp]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
π : ι → Type u_4
inst✝ : GeneralizedHeytingAlgebra α
a b c d : α
⊢ ((a ⊔ b) ⊓ b ⇨ a) ⊓ ((a ⊔ b) ⊓ a ⇨ b) = a ⇔ b
state_after: no goals
Theorem: Filter.prod_top
File: Mathlib/Order/Filter/Prod.lean

tactic: dsimp only [SProd.sprod]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f : Filter α
g : Filter β
⊢ f ×ˢ ⊤ = comap Prod.fst f
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f : Filter α
g : Filter β
⊢ f.prod ⊤ = comap Prod.fst f

tactic: rw [Filter.prod, comap_top, inf_top_eq]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Sort u_5
s : Set α
t : Set β
f : Filter α
g : Filter β
⊢ f.prod ⊤ = comap Prod.fst f
state_after: no goals
Theorem: RatFunc.ofFractionRing_one
File: Mathlib/FieldTheory/RatFunc/Basic.lean

tactic: simp only [One.one, OfNat.ofNat, RatFunc.one]
state_before: K : Type u
inst✝ : CommRing K
⊢ { toFractionRing := 1 } = 1
state_after: no goals
Theorem: MeasureTheory.upperCrossingTime_eq_of_upcrossingsBefore_lt
File: Mathlib/Probability/Martingale/Upcrossing.lean

tactic: refine le_antisymm upperCrossingTime_le (not_lt.1 ?_)
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f : ℕ → Ω → ℝ
N n m : ℕ
ω : Ω
ℱ : Filtration ℕ m0
hab : a < b
hn : upcrossingsBefore a b f N ω < n
⊢ upperCrossingTime a b f N n ω = N
state_after: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f : ℕ → Ω → ℝ
N n m : ℕ
ω : Ω
ℱ : Filtration ℕ m0
hab : a < b
hn : upcrossingsBefore a b f N ω < n
⊢ ¬upperCrossingTime a b f N n ω < N

tactic: convert not_mem_of_csSup_lt hn (upperCrossingTime_lt_bddAbove hab)
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
a b : ℝ
f : ℕ → Ω → ℝ
N n m : ℕ
ω : Ω
ℱ : Filtration ℕ m0
hab : a < b
hn : upcrossingsBefore a b f N ω < n
⊢ ¬upperCrossingTime a b f N n ω < N
state_after: no goals
Theorem: Finsupp.total_equivMapDomain
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: rw [equivMapDomain_eq_mapDomain, total_mapDomain]
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
R : Type u_5
S : Type u_6
inst✝⁹ : Semiring R
inst✝⁸ : Semiring S
inst✝⁷ : AddCommMonoid M
inst✝⁶ : Module R M
inst✝⁵ : AddCommMonoid N
inst✝⁴ : Module R N
inst✝³ : AddCommMonoid P
inst✝² : Module R P
α' : Type u_7
M' : Type u_8
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
v : α → M
v' : α' → M'
f : α ≃ α'
l : α →₀ R
⊢ (Finsupp.total α' M' R v') (equivMapDomain f l) = (Finsupp.total α M' R (v' ∘ ⇑f)) l
state_after: no goals
Theorem: LieModule.weightSpace_chainTopCoeff_add_one_nsmul_add
File: Mathlib/Algebra/Lie/Weights/Chain.lean

tactic: classical
rw [chainTopCoeff_add_one _ _ hα]
exact Nat.find_spec (eventually_weightSpace_smul_add_eq_bot M α β hα).exists
state_before: R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
⊢ weightSpace M ((chainTopCoeff α β + 1) • α + ⇑β) = ⊥
state_after: no goals

tactic: rw [chainTopCoeff_add_one _ _ hα]
state_before: R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
⊢ weightSpace M ((chainTopCoeff α β + 1) • α + ⇑β) = ⊥
state_after: R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
⊢ weightSpace M (Nat.find ⋯ • α + ⇑β) = ⊥

tactic: exact Nat.find_spec (eventually_weightSpace_smul_add_eq_bot M α β hα).exists
state_before: R : Type u_1
L : Type u_2
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
M : Type u_3
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : LieAlgebra.IsNilpotent R L
inst✝² : NoZeroSMulDivisors ℤ R
inst✝¹ : NoZeroSMulDivisors R M
inst✝ : IsNoetherian R M
α : L → R
β : Weight R L M
hα : α ≠ 0
⊢ weightSpace M (Nat.find ⋯ • α + ⇑β) = ⊥
state_after: no goals
Theorem: spectrum.algebraMap_eq_of_mem
File: Mathlib/Analysis/NormedSpace/Spectrum.lean

tactic: rwa [mem_iff, hA, Classical.not_not, sub_eq_zero] at h
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝¹ : NormedRing A
inst✝ : NormedAlgebra ℂ A
hA : ∀ {a : A}, IsUnit a ↔ a ≠ 0
a : A
z : ℂ
h : z ∈ σ a
⊢ (algebraMap ℂ A) z = a
state_after: no goals
Theorem: WithTop.top_pow
File: Mathlib/Algebra/Order/Ring/WithTop.lean

tactic: rw [pow_succ, hm, top_mul_top]
state_before: α : Type u_1
inst✝³ : DecidableEq α
inst✝² : MonoidWithZero α
inst✝¹ : NoZeroDivisors α
inst✝ : Nontrivial α
n : ℕ
n_pos : 0 < n
m : ℕ
x✝ : Nat.succ 0 ≤ m
hm : ⊤ ^ m = ⊤
⊢ ⊤ ^ (m + 1) = ⊤
state_after: no goals
Theorem: dist_mulIndicator
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rw [dist_eq_norm_div, Set.apply_mulIndicator_symmDiff norm_inv']
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s✝ : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
s t : Set α
f : α → E
x : α
⊢ dist (s.mulIndicator f x) (t.mulIndicator f x) = ‖(s ∆ t).mulIndicator f x‖
state_after: no goals
Theorem: IsCyclotomicExtension.Rat.absdiscr_prime_pow_succ
File: Mathlib/NumberTheory/Cyclotomic/Rat.lean

tactic: simpa [totient_prime_pow hp.out (succ_pos k)] using absdiscr_prime_pow p (k + 1) K
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {p ^ (k + 1)} ℚ K
⊢ NumberField.discr K = (-1) ^ (↑p ^ k * (↑p - 1) / 2) * ↑↑p ^ (↑p ^ k * ((↑p - 1) * (k + 1) - 1))
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.whiskerRight_tensor
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: simp only [← id_tensorHom, ← tensorHom_id]
state_before: C : Type u
𝒞 : Category.{v, u} C
inst✝ : MonoidalCategory C
X X' : C
f : X ⟶ X'
Y Z : C
⊢ f ▷ (Y ⊗ Z) = (α_ X Y Z).inv ≫ f ▷ Y ▷ Z ≫ (α_ X' Y Z).hom
state_after: C : Type u
𝒞 : Category.{v, u} C
inst✝ : MonoidalCategory C
X X' : C
f : X ⟶ X'
Y Z : C
⊢ f ⊗ 𝟙 (Y ⊗ Z) = (α_ X Y Z).inv ≫ ((f ⊗ 𝟙 Y) ⊗ 𝟙 Z) ≫ (α_ X' Y Z).hom

tactic: rw [associator_naturality]
state_before: C : Type u
𝒞 : Category.{v, u} C
inst✝ : MonoidalCategory C
X X' : C
f : X ⟶ X'
Y Z : C
⊢ f ⊗ 𝟙 (Y ⊗ Z) = (α_ X Y Z).inv ≫ ((f ⊗ 𝟙 Y) ⊗ 𝟙 Z) ≫ (α_ X' Y Z).hom
state_after: C : Type u
𝒞 : Category.{v, u} C
inst✝ : MonoidalCategory C
X X' : C
f : X ⟶ X'
Y Z : C
⊢ f ⊗ 𝟙 (Y ⊗ Z) = (α_ X Y Z).inv ≫ (α_ X Y Z).hom ≫ (f ⊗ 𝟙 Y ⊗ 𝟙 Z)

tactic: simp [tensor_id]
state_before: C : Type u
𝒞 : Category.{v, u} C
inst✝ : MonoidalCategory C
X X' : C
f : X ⟶ X'
Y Z : C
⊢ f ⊗ 𝟙 (Y ⊗ Z) = (α_ X Y Z).inv ≫ (α_ X Y Z).hom ≫ (f ⊗ 𝟙 Y ⊗ 𝟙 Z)
state_after: no goals
Theorem: Rel.inv_bot
File: Mathlib/Data/Rel.lean

tactic: simp [Bot.bot, inv, Function.flip_def]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
⊢ ⊥.inv = ⊥
state_after: no goals