1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: csSup_image2_eq_csSup_csSup
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: refine eq_of_forall_ge_iff fun c => ?_
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : ConditionallyCompleteLattice γ
f : α → β → γ
s : Set α
t : Set β
l u : α → β → γ
l₁ u₁ : β → γ → α
l₂ u₂ : α → γ → β
h₁ : ∀ (b : β), GaloisConnection (swap l b) (u₁ b)
h₂ : ∀ (a : α), GaloisConnection (l a) (u₂ a)
hs₀ : s.Nonempty
hs₁ : BddAbove s
ht₀ : t.Nonempty
ht₁ : BddAbove t
⊢ sSup (image2 l s t) = l (sSup s) (sSup t)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : ConditionallyCompleteLattice γ
f : α → β → γ
s : Set α
t : Set β
l u : α → β → γ
l₁ u₁ : β → γ → α
l₂ u₂ : α → γ → β
h₁ : ∀ (b : β), GaloisConnection (swap l b) (u₁ b)
h₂ : ∀ (a : α), GaloisConnection (l a) (u₂ a)
hs₀ : s.Nonempty
hs₁ : BddAbove s
ht₀ : t.Nonempty
ht₁ : BddAbove t
c : γ
⊢ sSup (image2 l s t) ≤ c ↔ l (sSup s) (sSup t) ≤ c

tactic: rw [csSup_le_iff (hs₁.image2 (fun _ => (h₁ _).monotone_l) (fun _ => (h₂ _).monotone_l) ht₁)
    (hs₀.image2 ht₀),
  forall_image2_iff, forall₂_swap, (h₂ _).le_iff_le, csSup_le_iff ht₁ ht₀]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : ConditionallyCompleteLattice γ
f : α → β → γ
s : Set α
t : Set β
l u : α → β → γ
l₁ u₁ : β → γ → α
l₂ u₂ : α → γ → β
h₁ : ∀ (b : β), GaloisConnection (swap l b) (u₁ b)
h₂ : ∀ (a : α), GaloisConnection (l a) (u₂ a)
hs₀ : s.Nonempty
hs₁ : BddAbove s
ht₀ : t.Nonempty
ht₁ : BddAbove t
c : γ
⊢ sSup (image2 l s t) ≤ c ↔ l (sSup s) (sSup t) ≤ c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : ConditionallyCompleteLattice γ
f : α → β → γ
s : Set α
t : Set β
l u : α → β → γ
l₁ u₁ : β → γ → α
l₂ u₂ : α → γ → β
h₁ : ∀ (b : β), GaloisConnection (swap l b) (u₁ b)
h₂ : ∀ (a : α), GaloisConnection (l a) (u₂ a)
hs₀ : s.Nonempty
hs₁ : BddAbove s
ht₀ : t.Nonempty
ht₁ : BddAbove t
c : γ
⊢ (∀ i₂ ∈ t, ∀ i₁ ∈ s, l i₁ i₂ ≤ c) ↔ ∀ b ∈ t, b ≤ u₂ (sSup s) c

tactic: simp_rw [← (h₂ _).le_iff_le, (h₁ _).le_iff_le, csSup_le_iff hs₁ hs₀]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝² : ConditionallyCompleteLattice α
inst✝¹ : ConditionallyCompleteLattice β
inst✝ : ConditionallyCompleteLattice γ
f : α → β → γ
s : Set α
t : Set β
l u : α → β → γ
l₁ u₁ : β → γ → α
l₂ u₂ : α → γ → β
h₁ : ∀ (b : β), GaloisConnection (swap l b) (u₁ b)
h₂ : ∀ (a : α), GaloisConnection (l a) (u₂ a)
hs₀ : s.Nonempty
hs₁ : BddAbove s
ht₀ : t.Nonempty
ht₁ : BddAbove t
c : γ
⊢ (∀ i₂ ∈ t, ∀ i₁ ∈ s, l i₁ i₂ ≤ c) ↔ ∀ b ∈ t, b ≤ u₂ (sSup s) c
state_after: no goals
Theorem: le_iff_exists_nonneg_add
File: Mathlib/Algebra/Order/Ring/Defs.lean

tactic: refine ⟨fun h ↦ ?_, ?_⟩
state_before: α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b✝ c d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ a ≤ b ↔ ∃ c, c ≥ 0 ∧ b = a + c
state_after: case refine_1
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b✝ c d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a b : α
h : a ≤ b
⊢ ∃ c, c ≥ 0 ∧ b = a + c

case refine_2
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b✝ c d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ (∃ c, c ≥ 0 ∧ b = a + c) → a ≤ b

tactic: obtain ⟨c, rfl⟩ := exists_add_of_le h
state_before: case refine_1
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b✝ c d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a b : α
h : a ≤ b
⊢ ∃ c, c ≥ 0 ∧ b = a + c
state_after: case refine_1.intro
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b c✝ d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a c : α
h : a ≤ a + c
⊢ ∃ c_1, c_1 ≥ 0 ∧ a + c = a + c_1

tactic: exact ⟨c, nonneg_of_le_add_right h, rfl⟩
state_before: case refine_1.intro
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b c✝ d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a c : α
h : a ≤ a + c
⊢ ∃ c_1, c_1 ≥ 0 ∧ a + c = a + c_1
state_after: no goals

tactic: rintro ⟨c, hc, rfl⟩
state_before: case refine_2
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b✝ c d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ (∃ c, c ≥ 0 ∧ b = a + c) → a ≤ b
state_after: case refine_2.intro.intro
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b c✝ d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a c : α
hc : c ≥ 0
⊢ a ≤ a + c

tactic: exact le_add_of_nonneg_right hc
state_before: case refine_2.intro.intro
α : Type u
β : Type u_1
inst✝³ : OrderedSemiring α
a✝ b c✝ d : α
inst✝² : ExistsAddOfLE α
inst✝¹ : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
a c : α
hc : c ≥ 0
⊢ a ≤ a + c
state_after: no goals
Theorem: Codisjoint.himp_inf_cancel_right
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [himp_inf_distrib, himp_self, top_inf_eq, h.himp_eq_left]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : GeneralizedHeytingAlgebra α
a b c d : α
h : Codisjoint a b
⊢ a ⇨ a ⊓ b = b
state_after: no goals
Theorem: CategoryTheory.ShortComplex.exact_iff_mono_cokernel_desc
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: rw [exact_iff_mono_fromOpcycles]
state_before: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.56926, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : S.HasHomology
inst✝ : HasCokernel S.f
⊢ S.Exact ↔ Mono (cokernel.desc S.f S.g ⋯)
state_after: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.56926, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : S.HasHomology
inst✝ : HasCokernel S.f
⊢ Mono S.fromOpcycles ↔ Mono (cokernel.desc S.f S.g ⋯)

tactic: refine (MorphismProperty.RespectsIso.monomorphisms C).arrow_mk_iso_iff (Iso.symm ?_)
state_before: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.56926, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : S.HasHomology
inst✝ : HasCokernel S.f
⊢ Mono S.fromOpcycles ↔ Mono (cokernel.desc S.f S.g ⋯)
state_after: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.56926, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : S.HasHomology
inst✝ : HasCokernel S.f
⊢ Arrow.mk (cokernel.desc S.f S.g ⋯) ≅ Arrow.mk S.fromOpcycles

tactic: exact Arrow.isoMk S.opcyclesIsoCokernel.symm (Iso.refl _) (by aesop_cat)
state_before: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.56926, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : S.HasHomology
inst✝ : HasCokernel S.f
⊢ Arrow.mk (cokernel.desc S.f S.g ⋯) ≅ Arrow.mk S.fromOpcycles
state_after: no goals

tactic: aesop_cat
state_before: C : Type u_1
D : Type u_2
inst✝⁵ : Category.{u_3, u_1} C
inst✝⁴ : Category.{?u.56926, u_2} D
inst✝³ : Preadditive C
inst✝² : Preadditive D
S : ShortComplex C
inst✝¹ : S.HasHomology
inst✝ : HasCokernel S.f
⊢ S.opcyclesIsoCokernel.symm.hom ≫ (Arrow.mk S.fromOpcycles).hom =
    (Arrow.mk (cokernel.desc S.f S.g ⋯)).hom ≫ (Iso.refl (Arrow.mk (cokernel.desc S.f S.g ⋯)).right).hom
state_after: no goals
Theorem: Filter.prod_eq_bot
File: Mathlib/Order/Filter/Prod.lean

tactic: simp_rw [← empty_mem_iff_bot, mem_prod_iff, subset_empty_iff, prod_eq_empty_iff, ← exists_prop,
  Subtype.exists', exists_or, exists_const, Subtype.exists, exists_prop, exists_eq_right]
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 ×ˢ g = ⊥ ↔ f = ⊥ ∨ g = ⊥
state_after: no goals
Theorem: MeasureTheory.Iio_ae_eq_Iic'
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [← Iic_diff_right, diff_ae_eq_self, measure_mono_null Set.inter_subset_right ha]
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
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : PartialOrder α
a b : α
ha : μ {a} = 0
⊢ Iio a =ᶠ[ae μ] Iic a
state_after: no goals
Theorem: TopologicalSpace.IsSeparable.separableSpace
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: rcases hs.exists_countable_dense_subset with ⟨t, hts, htc, hst⟩
state_before: α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s✝ t s : Set α
hs : IsSeparable s
⊢ SeparableSpace ↑s
state_after: case intro.intro.intro
α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s✝ t✝ s : Set α
hs : IsSeparable s
t : Set α
hts : t ⊆ s
htc : t.Countable
hst : s ⊆ closure t
⊢ SeparableSpace ↑s

tactic: lift t to Set s using hts
state_before: case intro.intro.intro
α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s✝ t✝ s : Set α
hs : IsSeparable s
t : Set α
hts : t ⊆ s
htc : t.Countable
hst : s ⊆ closure t
⊢ SeparableSpace ↑s
state_after: case intro.intro.intro.intro
α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s✝ t✝ s : Set α
hs : IsSeparable s
t : Set ↑s
htc : (Subtype.val '' t).Countable
hst : s ⊆ closure (Subtype.val '' t)
⊢ SeparableSpace ↑s

tactic: refine ⟨⟨t, countable_of_injective_of_countable_image Subtype.coe_injective.injOn htc, ?_⟩⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s✝ t✝ s : Set α
hs : IsSeparable s
t : Set ↑s
htc : (Subtype.val '' t).Countable
hst : s ⊆ closure (Subtype.val '' t)
⊢ SeparableSpace ↑s
state_after: case intro.intro.intro.intro
α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s✝ t✝ s : Set α
hs : IsSeparable s
t : Set ↑s
htc : (Subtype.val '' t).Countable
hst : s ⊆ closure (Subtype.val '' t)
⊢ Dense t

tactic: rwa [inducing_subtype_val.dense_iff, Subtype.forall]
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s✝ t✝ s : Set α
hs : IsSeparable s
t : Set ↑s
htc : (Subtype.val '' t).Countable
hst : s ⊆ closure (Subtype.val '' t)
⊢ Dense t
state_after: no goals
Theorem: convex_vadd
File: Mathlib/Analysis/Convex/Basic.lean

tactic: simpa using h.vadd (-a)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s t : Set E
a : E
h : Convex 𝕜 (a +ᵥ s)
⊢ Convex 𝕜 s
state_after: no goals
Theorem: Complex.isTheta_ofReal
File: Mathlib/Analysis/Complex/Asymptotics.lean

tactic: simpa using (Asymptotics.isTheta_rfl (f := f)).norm_left
state_before: α : Type u_1
E : Type u_2
inst✝ : Norm E
l✝ : Filter α
f : α → ℝ
l : Filter α
⊢ (fun x => ‖↑(f x)‖) =Θ[l] f
state_after: no goals
Theorem: legendreSym.at_neg_one
File: Mathlib/NumberTheory/LegendreSymbol/Basic.lean

tactic: simp only [legendreSym, card p, quadraticChar_neg_one ((ringChar_zmod_n p).substr hp),
  Int.cast_neg, Int.cast_one]
state_before: p : ℕ
inst✝ : Fact (Nat.Prime p)
hp : p ≠ 2
⊢ legendreSym p (-1) = χ₄ ↑p
state_after: no goals
Theorem: Nat.le_of_mem_factors
File: Mathlib/Data/Nat/Factors.lean

tactic: rcases n.eq_zero_or_pos with (rfl | hn)
state_before: n p : ℕ
h : p ∈ n.factors
⊢ p ≤ n
state_after: case inl
p : ℕ
h : p ∈ factors 0
⊢ p ≤ 0

case inr
n p : ℕ
h : p ∈ n.factors
hn : n > 0
⊢ p ≤ n

tactic: rw [factors_zero] at h
state_before: case inl
p : ℕ
h : p ∈ factors 0
⊢ p ≤ 0
state_after: case inl
p : ℕ
h : p ∈ []
⊢ p ≤ 0

tactic: cases h
state_before: case inl
p : ℕ
h : p ∈ []
⊢ p ≤ 0
state_after: no goals

tactic: exact le_of_dvd hn (dvd_of_mem_factors h)
state_before: case inr
n p : ℕ
h : p ∈ n.factors
hn : n > 0
⊢ p ≤ n
state_after: no goals
Theorem: MeasureTheory.ae_eq_of_forall_setLIntegral_eq_of_sigmaFinite₀
File: Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean

tactic: have A : f ≤ᵐ[μ] g :=
  ae_le_of_forall_setLIntegral_le_of_sigmaFinite₀ hf hg fun s hs h's => le_of_eq (h s hs h's)
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : AEMeasurable f μ
hg : AEMeasurable g μ
h : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
⊢ f =ᶠ[ae μ] g
state_after: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : AEMeasurable f μ
hg : AEMeasurable g μ
h : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
A : f ≤ᶠ[ae μ] g
⊢ f =ᶠ[ae μ] g

tactic: have B : g ≤ᵐ[μ] f :=
  ae_le_of_forall_setLIntegral_le_of_sigmaFinite₀ hg hf fun s hs h's => ge_of_eq (h s hs h's)
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : AEMeasurable f μ
hg : AEMeasurable g μ
h : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
A : f ≤ᶠ[ae μ] g
⊢ f =ᶠ[ae μ] g
state_after: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : AEMeasurable f μ
hg : AEMeasurable g μ
h : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
A : f ≤ᶠ[ae μ] g
B : g ≤ᶠ[ae μ] f
⊢ f =ᶠ[ae μ] g

tactic: filter_upwards [A, B] with x using le_antisymm
state_before: α : Type u_1
E : Type u_2
m m0 : MeasurableSpace α
μ : Measure α
s t : Set α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : CompleteSpace E
p : ℝ≥0∞
inst✝ : SigmaFinite μ
f g : α → ℝ≥0∞
hf : AEMeasurable f μ
hg : AEMeasurable g μ
h : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ∫⁻ (x : α) in s, f x ∂μ = ∫⁻ (x : α) in s, g x ∂μ
A : f ≤ᶠ[ae μ] g
B : g ≤ᶠ[ae μ] f
⊢ f =ᶠ[ae μ] g
state_after: no goals
Theorem: clusterPt_lift'_closure_iff
File: Mathlib/Topology/Basic.lean

tactic: simp [clusterPt_iff_lift'_closure, lift'_lift'_assoc (monotone_closure X) (monotone_closure X)]
state_before: X : Type u
Y : Type v
ι : Sort w
α : Type u_1
β : Type u_2
x : X
s s₁ s₂ t : Set X
p p₁ p₂ : X → Prop
inst✝ : TopologicalSpace X
F : Filter X
⊢ ClusterPt x (F.lift' closure) ↔ ClusterPt x F
state_after: no goals
Theorem: AddChar.mulShift_spec'
File: Mathlib/Algebra/Group/AddChar.lean

tactic: rw [mulShift_apply, ← nsmul_eq_mul, map_nsmul_eq_pow]
state_before: R : Type u_1
M : Type u_2
inst✝¹ : Ring R
inst✝ : CommMonoid M
ψ : AddChar R M
n : ℕ
x : R
⊢ (ψ.mulShift ↑n) x = ψ x ^ n
state_after: no goals
Theorem: egauge_smul_left
File: Mathlib/Analysis/Convex/EGauge.lean

tactic: refine le_antisymm ?_ (le_egauge_smul_left _ _ _)
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ egauge 𝕜 (c • s) x = egauge 𝕜 s x / ↑‖c‖₊
state_after: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ egauge 𝕜 (c • s) x ≤ egauge 𝕜 s x / ↑‖c‖₊

tactic: rw [ENNReal.le_div_iff_mul_le (by simp [*]) (by simp)]
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ egauge 𝕜 (c • s) x ≤ egauge 𝕜 s x / ↑‖c‖₊
state_after: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ egauge 𝕜 (c • s) x * ↑‖c‖₊ ≤ egauge 𝕜 s x

tactic: calc
  egauge 𝕜 (c • s) x * ‖c‖₊ = egauge 𝕜 (c • s) x / ‖c⁻¹‖₊ := by
    rw [nnnorm_inv, ENNReal.coe_inv (by simpa), div_eq_mul_inv, inv_inv]
  _ ≤ egauge 𝕜 (c⁻¹ • c • s) x := le_egauge_smul_left _ _ _
  _ = egauge 𝕜 s x := by rw [inv_smul_smul₀ hc]
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ egauge 𝕜 (c • s) x * ↑‖c‖₊ ≤ egauge 𝕜 s x
state_after: no goals

tactic: simp [*]
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ ↑‖c‖₊ ≠ 0 ∨ egauge 𝕜 s x ≠ 0
state_after: no goals

tactic: simp
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ ↑‖c‖₊ ≠ ⊤ ∨ egauge 𝕜 s x ≠ ⊤
state_after: no goals

tactic: rw [nnnorm_inv, ENNReal.coe_inv (by simpa), div_eq_mul_inv, inv_inv]
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ egauge 𝕜 (c • s) x * ↑‖c‖₊ = egauge 𝕜 (c • s) x / ↑‖c⁻¹‖₊
state_after: no goals

tactic: simpa
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ ‖c‖₊ ≠ 0
state_after: no goals

tactic: rw [inv_smul_smul₀ hc]
state_before: 𝕜 : Type u_1
inst✝² : NormedDivisionRing 𝕜
α : Type u_2
E : Type u_3
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
c : 𝕜
s✝ t : Set E
x✝ y : E
r : ℝ≥0∞
hc : c ≠ 0
s : Set E
x : E
⊢ egauge 𝕜 (c⁻¹ • c • s) x = egauge 𝕜 s x
state_after: no goals
Theorem: Set.sigma_inter_sigma
File: Mathlib/Data/Set/Sigma.lean

tactic: ext ⟨x, y⟩
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
β : ι → Type u_4
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
u : Set ((i : ι) × α i)
x : (i : ι) × α i
i j : ι
a : α i
⊢ s₁.sigma t₁ ∩ s₂.sigma t₂ = (s₁ ∩ s₂).sigma fun i => t₁ i ∩ t₂ i
state_after: case h.mk
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
β : ι → Type u_4
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
u : Set ((i : ι) × α i)
x✝ : (i : ι) × α i
i j : ι
a : α i
x : ι
y : α x
⊢ ⟨x, y⟩ ∈ s₁.sigma t₁ ∩ s₂.sigma t₂ ↔ ⟨x, y⟩ ∈ (s₁ ∩ s₂).sigma fun i => t₁ i ∩ t₂ i

tactic: simp [and_assoc, and_left_comm]
state_before: case h.mk
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
β : ι → Type u_4
s s₁ s₂ : Set ι
t t₁ t₂ : (i : ι) → Set (α i)
u : Set ((i : ι) × α i)
x✝ : (i : ι) × α i
i j : ι
a : α i
x : ι
y : α x
⊢ ⟨x, y⟩ ∈ s₁.sigma t₁ ∩ s₂.sigma t₂ ↔ ⟨x, y⟩ ∈ (s₁ ∩ s₂).sigma fun i => t₁ i ∩ t₂ i
state_after: no goals
Theorem: Polynomial.support_opRingEquiv
File: Mathlib/RingTheory/Polynomial/Opposites.lean

tactic: induction' p with p
state_before: R : Type u_1
inst✝ : Semiring R
p : R[X]ᵐᵒᵖ
⊢ ((opRingEquiv R) p).support = (unop p).support
state_after: case h
R : Type u_1
inst✝ : Semiring R
p : R[X]
⊢ ((opRingEquiv R) (op p)).support = (unop (op p)).support

tactic: cases p
state_before: case h
R : Type u_1
inst✝ : Semiring R
p : R[X]
⊢ ((opRingEquiv R) (op p)).support = (unop (op p)).support
state_after: case h.ofFinsupp
R : Type u_1
inst✝ : Semiring R
toFinsupp✝ : AddMonoidAlgebra R ℕ
⊢ ((opRingEquiv R) (op { toFinsupp := toFinsupp✝ })).support = (unop (op { toFinsupp := toFinsupp✝ })).support

tactic: exact Finsupp.support_mapRange_of_injective (map_zero _) _ op_injective
state_before: case h.ofFinsupp
R : Type u_1
inst✝ : Semiring R
toFinsupp✝ : AddMonoidAlgebra R ℕ
⊢ ((opRingEquiv R) (op { toFinsupp := toFinsupp✝ })).support = (unop (op { toFinsupp := toFinsupp✝ })).support
state_after: no goals
Theorem: tendstoUniformlyOn_iff_tendsto
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: simp [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter, tendstoUniformlyOnFilter_iff_tendsto]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F✝ : ι → α → β
f✝ : α → β
s✝ s' : Set α
x : α
p✝ : Filter ι
p' : Filter α
g : ι → α
F : ι → α → β
f : α → β
p : Filter ι
s : Set α
⊢ TendstoUniformlyOn F f p s ↔ Tendsto (fun q => (f q.2, F q.1 q.2)) (p ×ˢ 𝓟 s) (𝓤 β)
state_after: no goals
Theorem: CategoryTheory.Limits.kernelSubobject_arrow_comp
File: Mathlib/CategoryTheory/Subobject/Limits.lean

tactic: rw [← kernelSubobject_arrow]
state_before: C : Type u
inst✝² : Category.{v, u} C
X Y Z : C
inst✝¹ : HasZeroMorphisms C
f : X ⟶ Y
inst✝ : HasKernel f
⊢ (kernelSubobject f).arrow ≫ f = 0
state_after: C : Type u
inst✝² : Category.{v, u} C
X Y Z : C
inst✝¹ : HasZeroMorphisms C
f : X ⟶ Y
inst✝ : HasKernel f
⊢ ((kernelSubobjectIso f).hom ≫ kernel.ι f) ≫ f = 0

tactic: simp only [Category.assoc, kernel.condition, comp_zero]
state_before: C : Type u
inst✝² : Category.{v, u} C
X Y Z : C
inst✝¹ : HasZeroMorphisms C
f : X ⟶ Y
inst✝ : HasKernel f
⊢ ((kernelSubobjectIso f).hom ≫ kernel.ι f) ≫ f = 0
state_after: no goals
Theorem: uzpow_intCast
File: Mathlib/Data/ZMod/IntUnitsPower.lean

tactic: change Additive.toMul ((z : R) • Additive.ofMul u) = _
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : Module R (Additive ℤˣ)
u : ℤˣ
z : ℤ
⊢ u ^ ↑z = u ^ z
state_after: R : Type u_1
inst✝¹ : CommRing R
inst✝ : Module R (Additive ℤˣ)
u : ℤˣ
z : ℤ
⊢ Additive.toMul (↑z • Additive.ofMul u) = u ^ z

tactic: rw [← zsmul_eq_smul_cast, toMul_zsmul, toMul_ofMul]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : Module R (Additive ℤˣ)
u : ℤˣ
z : ℤ
⊢ Additive.toMul (↑z • Additive.ofMul u) = u ^ z
state_after: no goals
Theorem: IsOfFinOrder.apply
File: Mathlib/GroupTheory/OrderOfElement.lean

tactic: obtain ⟨n, npos, hn⟩ := h.exists_pow_eq_one
state_before: G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x✝ y : G
n m : ℕ
η : Type u_6
Gs : η → Type u_7
inst✝ : (i : η) → Monoid (Gs i)
x : (i : η) → Gs i
h : IsOfFinOrder x
⊢ ∀ (i : η), IsOfFinOrder (x i)
state_after: case intro.intro
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x✝ y : G
n✝ m : ℕ
η : Type u_6
Gs : η → Type u_7
inst✝ : (i : η) → Monoid (Gs i)
x : (i : η) → Gs i
h : IsOfFinOrder x
n : ℕ
npos : 0 < n
hn : x ^ n = 1
⊢ ∀ (i : η), IsOfFinOrder (x i)

tactic: exact fun _ => isOfFinOrder_iff_pow_eq_one.mpr ⟨n, npos, (congr_fun hn.symm _).symm⟩
state_before: case intro.intro
G : Type u_1
H : Type u_2
A : Type u_3
α : Type u_4
β : Type u_5
inst✝¹ : Monoid G
a b x✝ y : G
n✝ m : ℕ
η : Type u_6
Gs : η → Type u_7
inst✝ : (i : η) → Monoid (Gs i)
x : (i : η) → Gs i
h : IsOfFinOrder x
n : ℕ
npos : 0 < n
hn : x ^ n = 1
⊢ ∀ (i : η), IsOfFinOrder (x i)
state_after: no goals