1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: toZ_of_eq
File: Mathlib/Order/SuccPred/LinearLocallyFinite.lean

tactic: rw [toZ_of_ge le_rfl]
state_before: ι : Type u_1
inst✝³ : LinearOrder ι
inst✝² : SuccOrder ι
inst✝¹ : IsSuccArchimedean ι
inst✝ : PredOrder ι
i0 i : ι
⊢ toZ i0 i0 = 0
state_after: ι : Type u_1
inst✝³ : LinearOrder ι
inst✝² : SuccOrder ι
inst✝¹ : IsSuccArchimedean ι
inst✝ : PredOrder ι
i0 i : ι
⊢ ↑(Nat.find ⋯) = 0

tactic: norm_cast
state_before: ι : Type u_1
inst✝³ : LinearOrder ι
inst✝² : SuccOrder ι
inst✝¹ : IsSuccArchimedean ι
inst✝ : PredOrder ι
i0 i : ι
⊢ ↑(Nat.find ⋯) = 0
state_after: ι : Type u_1
inst✝³ : LinearOrder ι
inst✝² : SuccOrder ι
inst✝¹ : IsSuccArchimedean ι
inst✝ : PredOrder ι
i0 i : ι
⊢ Nat.find ⋯ = 0

tactic: refine le_antisymm (Nat.find_le ?_) (zero_le _)
state_before: ι : Type u_1
inst✝³ : LinearOrder ι
inst✝² : SuccOrder ι
inst✝¹ : IsSuccArchimedean ι
inst✝ : PredOrder ι
i0 i : ι
⊢ Nat.find ⋯ = 0
state_after: ι : Type u_1
inst✝³ : LinearOrder ι
inst✝² : SuccOrder ι
inst✝¹ : IsSuccArchimedean ι
inst✝ : PredOrder ι
i0 i : ι
⊢ succ^[0] i0 = i0

tactic: rw [Function.iterate_zero, id]
state_before: ι : Type u_1
inst✝³ : LinearOrder ι
inst✝² : SuccOrder ι
inst✝¹ : IsSuccArchimedean ι
inst✝ : PredOrder ι
i0 i : ι
⊢ succ^[0] i0 = i0
state_after: no goals
Theorem: CategoryTheory.Functor.Elements.ext
File: Mathlib/CategoryTheory/Elements.lean

tactic: cases x
state_before: C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
x y : F.Elements
h₁ : x.fst = y.fst
h₂ : F.map (eqToHom h₁) x.snd = y.snd
⊢ x = y
state_after: case mk
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
y : F.Elements
fst✝ : C
snd✝ : F.obj fst✝
h₁ : ⟨fst✝, snd✝⟩.fst = y.fst
h₂ : F.map (eqToHom h₁) ⟨fst✝, snd✝⟩.snd = y.snd
⊢ ⟨fst✝, snd✝⟩ = y

tactic: cases y
state_before: case mk
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
y : F.Elements
fst✝ : C
snd✝ : F.obj fst✝
h₁ : ⟨fst✝, snd✝⟩.fst = y.fst
h₂ : F.map (eqToHom h₁) ⟨fst✝, snd✝⟩.snd = y.snd
⊢ ⟨fst✝, snd✝⟩ = y
state_after: case mk.mk
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
fst✝¹ : C
snd✝¹ : F.obj fst✝¹
fst✝ : C
snd✝ : F.obj fst✝
h₁ : ⟨fst✝¹, snd✝¹⟩.fst = ⟨fst✝, snd✝⟩.fst
h₂ : F.map (eqToHom h₁) ⟨fst✝¹, snd✝¹⟩.snd = ⟨fst✝, snd✝⟩.snd
⊢ ⟨fst✝¹, snd✝¹⟩ = ⟨fst✝, snd✝⟩

tactic: cases h₁
state_before: case mk.mk
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
fst✝¹ : C
snd✝¹ : F.obj fst✝¹
fst✝ : C
snd✝ : F.obj fst✝
h₁ : ⟨fst✝¹, snd✝¹⟩.fst = ⟨fst✝, snd✝⟩.fst
h₂ : F.map (eqToHom h₁) ⟨fst✝¹, snd✝¹⟩.snd = ⟨fst✝, snd✝⟩.snd
⊢ ⟨fst✝¹, snd✝¹⟩ = ⟨fst✝, snd✝⟩
state_after: case mk.mk.refl
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
fst✝ : C
snd✝¹ snd✝ : F.obj fst✝
h₂ : F.map (eqToHom ⋯) ⟨fst✝, snd✝¹⟩.snd = ⟨fst✝, snd✝⟩.snd
⊢ ⟨fst✝, snd✝¹⟩ = ⟨fst✝, snd✝⟩

tactic: simp only [eqToHom_refl, FunctorToTypes.map_id_apply] at h₂
state_before: case mk.mk.refl
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
fst✝ : C
snd✝¹ snd✝ : F.obj fst✝
h₂ : F.map (eqToHom ⋯) ⟨fst✝, snd✝¹⟩.snd = ⟨fst✝, snd✝⟩.snd
⊢ ⟨fst✝, snd✝¹⟩ = ⟨fst✝, snd✝⟩
state_after: case mk.mk.refl
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
fst✝ : C
snd✝¹ snd✝ : F.obj fst✝
h₂ : snd✝¹ = snd✝
⊢ ⟨fst✝, snd✝¹⟩ = ⟨fst✝, snd✝⟩

tactic: simp [h₂]
state_before: case mk.mk.refl
C : Type u
inst✝ : Category.{v, u} C
F : C ⥤ Type w
fst✝ : C
snd✝¹ snd✝ : F.obj fst✝
h₂ : snd✝¹ = snd✝
⊢ ⟨fst✝, snd✝¹⟩ = ⟨fst✝, snd✝⟩
state_after: no goals
Theorem: MeasureTheory.AEEqFun.compMeasurePreserving_mem_Lp
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: rw [Lp.mem_Lp_iff_snorm_lt_top] at hg ⊢
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
β : Type u_5
inst✝ : MeasurableSpace β
μb : Measure β
g : β →ₘ[μb] E
hg : g ∈ Lp E p μb
f : α → β
hf : MeasurePreserving f μ μb
⊢ g.compMeasurePreserving f hf ∈ Lp E p μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
β : Type u_5
inst✝ : MeasurableSpace β
μb : Measure β
g : β →ₘ[μb] E
hg : snorm (↑g) p μb < ⊤
f : α → β
hf : MeasurePreserving f μ μb
⊢ snorm (↑(g.compMeasurePreserving f hf)) p μ < ⊤

tactic: rwa [snorm_compMeasurePreserving]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
β : Type u_5
inst✝ : MeasurableSpace β
μb : Measure β
g : β →ₘ[μb] E
hg : snorm (↑g) p μb < ⊤
f : α → β
hf : MeasurePreserving f μ μb
⊢ snorm (↑(g.compMeasurePreserving f hf)) p μ < ⊤
state_after: no goals
Theorem: HomologicalComplex.pOpcycles_opcyclesIsoSc'_hom
File: Mathlib/Algebra/Homology/ShortComplex/HomologicalComplex.lean

tactic: dsimp [opcyclesIsoSc']
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K : HomologicalComplex C c
i j k : ι
hi : c.prev j = i
hk : c.next j = k
inst✝¹ : K.HasHomology j
inst✝ : (K.sc' i j k).HasHomology
⊢ K.pOpcycles j ≫ (K.opcyclesIsoSc' i j k hi hk).hom = (K.sc' i j k).pOpcycles
state_after: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K : HomologicalComplex C c
i j k : ι
hi : c.prev j = i
hk : c.next j = k
inst✝¹ : K.HasHomology j
inst✝ : (K.sc' i j k).HasHomology
⊢ K.pOpcycles j ≫ ShortComplex.opcyclesMap ((natIsoSc' C c i j k hi hk).hom.app K) = (K.sc' i j k).pOpcycles

tactic: erw [ShortComplex.p_opcyclesMap]
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K : HomologicalComplex C c
i j k : ι
hi : c.prev j = i
hk : c.next j = k
inst✝¹ : K.HasHomology j
inst✝ : (K.sc' i j k).HasHomology
⊢ K.pOpcycles j ≫ ShortComplex.opcyclesMap ((natIsoSc' C c i j k hi hk).hom.app K) = (K.sc' i j k).pOpcycles
state_after: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K : HomologicalComplex C c
i j k : ι
hi : c.prev j = i
hk : c.next j = k
inst✝¹ : K.HasHomology j
inst✝ : (K.sc' i j k).HasHomology
⊢ ((natIsoSc' C c i j k hi hk).hom.app K).τ₂ ≫ (K.sc' i j k).pOpcycles = (K.sc' i j k).pOpcycles

tactic: apply id_comp
state_before: C : Type u_1
inst✝³ : Category.{u_3, u_1} C
inst✝² : HasZeroMorphisms C
ι : Type u_2
c : ComplexShape ι
K : HomologicalComplex C c
i j k : ι
hi : c.prev j = i
hk : c.next j = k
inst✝¹ : K.HasHomology j
inst✝ : (K.sc' i j k).HasHomology
⊢ ((natIsoSc' C c i j k hi hk).hom.app K).τ₂ ≫ (K.sc' i j k).pOpcycles = (K.sc' i j k).pOpcycles
state_after: no goals
Theorem: SimpleGraph.FarFromTriangleFree.nonpos
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean

tactic: have := h₀ (empty_subset _)
state_before: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
inst✝⁴ : Fintype α
inst✝³ : DecidableEq α
inst✝² : DecidableRel G.Adj
inst✝¹ : DecidableRel H.Adj
inst✝ : Nonempty α
h₀ : G.FarFromTriangleFree ε
h₁ : G.CliqueFree 3
⊢ ε ≤ 0
state_after: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
inst✝⁴ : Fintype α
inst✝³ : DecidableEq α
inst✝² : DecidableRel G.Adj
inst✝¹ : DecidableRel H.Adj
inst✝ : Nonempty α
h₀ : G.FarFromTriangleFree ε
h₁ : G.CliqueFree 3
this : (fun H => H.CliqueFree 3) (G.deleteEdges ↑∅) → ε * ↑(Fintype.card α ^ 2) ≤ ↑∅.card
⊢ ε ≤ 0

tactic: rw [coe_empty, Finset.card_empty, cast_zero, deleteEdges_empty] at this
state_before: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
inst✝⁴ : Fintype α
inst✝³ : DecidableEq α
inst✝² : DecidableRel G.Adj
inst✝¹ : DecidableRel H.Adj
inst✝ : Nonempty α
h₀ : G.FarFromTriangleFree ε
h₁ : G.CliqueFree 3
this : (fun H => H.CliqueFree 3) (G.deleteEdges ↑∅) → ε * ↑(Fintype.card α ^ 2) ≤ ↑∅.card
⊢ ε ≤ 0
state_after: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
inst✝⁴ : Fintype α
inst✝³ : DecidableEq α
inst✝² : DecidableRel G.Adj
inst✝¹ : DecidableRel H.Adj
inst✝ : Nonempty α
h₀ : G.FarFromTriangleFree ε
h₁ : G.CliqueFree 3
this : (fun H => H.CliqueFree 3) G → ε * ↑(Fintype.card α ^ 2) ≤ 0
⊢ ε ≤ 0

tactic: exact nonpos_of_mul_nonpos_left (this h₁) (cast_pos.2 <| sq_pos_of_pos Fintype.card_pos)
state_before: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝⁵ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
inst✝⁴ : Fintype α
inst✝³ : DecidableEq α
inst✝² : DecidableRel G.Adj
inst✝¹ : DecidableRel H.Adj
inst✝ : Nonempty α
h₀ : G.FarFromTriangleFree ε
h₁ : G.CliqueFree 3
this : (fun H => H.CliqueFree 3) G → ε * ↑(Fintype.card α ^ 2) ≤ 0
⊢ ε ≤ 0
state_after: no goals
Theorem: Num.of_natCast
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← cast_to_nat, to_of_nat]
state_before: α : Type u_1
inst✝ : AddMonoidWithOne α
n : ℕ
⊢ ↑↑n = ↑n
state_after: no goals
Theorem: DenseRange.iUnion_uniformity_ball
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [← biUnion_range (f := xs) (g := fun x ↦ UniformSpace.ball x U)]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι✝ : Sort u_1
inst✝ : UniformSpace α
ι : Type u_2
xs : ι → α
xs_dense : DenseRange xs
U : Set (α × α)
hU : U ∈ 𝓤 α
⊢ ⋃ i, ball (xs i) U = univ
state_after: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι✝ : Sort u_1
inst✝ : UniformSpace α
ι : Type u_2
xs : ι → α
xs_dense : DenseRange xs
U : Set (α × α)
hU : U ∈ 𝓤 α
⊢ ⋃ x ∈ range xs, ball x U = univ

tactic: exact Dense.biUnion_uniformity_ball xs_dense hU
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι✝ : Sort u_1
inst✝ : UniformSpace α
ι : Type u_2
xs : ι → α
xs_dense : DenseRange xs
U : Set (α × α)
hU : U ∈ 𝓤 α
⊢ ⋃ x ∈ range xs, ball x U = univ
state_after: no goals
Theorem: EReal.nhds_bot
File: Mathlib/Topology/Instances/EReal.lean

tactic: simp only [bot_lt_iff_ne_bot]
state_before: α : Type u_1
inst✝ : TopologicalSpace α
⊢ ⨅ l, ⨅ (_ : ⊥ < l), 𝓟 (Iio l) = ⨅ a, ⨅ (_ : a ≠ ⊥), 𝓟 (Iio a)
state_after: no goals
Theorem: Commute.mul_inv
File: Mathlib/Algebra/Group/Commute/Defs.lean

tactic: rw [hab.eq, mul_inv_rev]
state_before: G : Type u_1
M : Type u_2
S : Type u_3
inst✝ : DivisionMonoid G
a b c d : G
hab : Commute a b
⊢ (a * b)⁻¹ = a⁻¹ * b⁻¹
state_after: no goals
Theorem: IntermediateField.fg_bot
File: Mathlib/FieldTheory/Adjoin.lean

tactic: simp only [Finset.coe_empty, adjoin_empty]
state_before: F : Type u_1
inst✝² : Field F
E : Type u_2
inst✝¹ : Field E
inst✝ : Algebra F E
⊢ adjoin F ↑∅ = ⊥
state_after: no goals
Theorem: Complex.ofReal_qsmul
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [Rat.smul_def]
state_before: q : ℚ
r : ℝ
⊢ ↑(q • r) = q • ↑r
state_after: no goals
Theorem: Nat.ModEq.eq_of_abs_lt
File: Mathlib/Data/Nat/ModEq.lean

tactic: apply Int.ofNat.inj
state_before: m n a b c d : ℕ
h : a ≡ b [MOD m]
h2 : |↑b - ↑a| < ↑m
⊢ a = b
state_after: case x
m n a b c d : ℕ
h : a ≡ b [MOD m]
h2 : |↑b - ↑a| < ↑m
⊢ Int.ofNat a = Int.ofNat b

tactic: rw [eq_comm, ← sub_eq_zero]
state_before: case x
m n a b c d : ℕ
h : a ≡ b [MOD m]
h2 : |↑b - ↑a| < ↑m
⊢ Int.ofNat a = Int.ofNat b
state_after: case x
m n a b c d : ℕ
h : a ≡ b [MOD m]
h2 : |↑b - ↑a| < ↑m
⊢ Int.ofNat b - Int.ofNat a = 0

tactic: exact Int.eq_zero_of_abs_lt_dvd h.dvd h2
state_before: case x
m n a b c d : ℕ
h : a ≡ b [MOD m]
h2 : |↑b - ↑a| < ↑m
⊢ Int.ofNat b - Int.ofNat a = 0
state_after: no goals
Theorem: Nat.succ_mod_two_eq_one_iff
File: Mathlib/Algebra/Group/Nat.lean

tactic: simp [← Nat.even_iff, ← Nat.not_even_iff, parity_simps]
state_before: m✝ n m : ℕ
⊢ (m + 1) % 2 = 1 ↔ m % 2 = 0
state_after: no goals
Theorem: Irrational.rat_sub
File: Mathlib/Data/Real/Irrational.lean

tactic: simpa only [sub_eq_add_neg] using h.neg.rat_add q
state_before: q : ℚ
x y : ℝ
h : Irrational x
⊢ Irrational (↑q - x)
state_after: no goals
Theorem: isometry_subsingleton
File: Mathlib/Topology/MetricSpace/Isometry.lean

tactic: rw [Subsingleton.elim x y]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝³ : PseudoEMetricSpace α
inst✝² : PseudoEMetricSpace β
inst✝¹ : PseudoEMetricSpace γ
f : α → β
x✝ y✝ z : α
s : Set α
inst✝ : Subsingleton α
x y : α
⊢ edist (f x) (f y) = edist x y
state_after: ι : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝³ : PseudoEMetricSpace α
inst✝² : PseudoEMetricSpace β
inst✝¹ : PseudoEMetricSpace γ
f : α → β
x✝ y✝ z : α
s : Set α
inst✝ : Subsingleton α
x y : α
⊢ edist (f y) (f y) = edist y y

tactic: simp
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
inst✝³ : PseudoEMetricSpace α
inst✝² : PseudoEMetricSpace β
inst✝¹ : PseudoEMetricSpace γ
f : α → β
x✝ y✝ z : α
s : Set α
inst✝ : Subsingleton α
x y : α
⊢ edist (f y) (f y) = edist y y
state_after: no goals
Theorem: MonoidHom.comp_one
File: Mathlib/Algebra/Group/Hom/Defs.lean

tactic: ext
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
H : Type u_8
F : Type u_9
inst✝⁴ : Group G
inst✝³ : CommGroup H
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
f : N →* P
⊢ f.comp 1 = 1
state_after: case h
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
H : Type u_8
F : Type u_9
inst✝⁴ : Group G
inst✝³ : CommGroup H
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
f : N →* P
x✝ : M
⊢ (f.comp 1) x✝ = 1 x✝

tactic: simp only [map_one, coe_comp, Function.comp_apply, one_apply]
state_before: case h
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
H : Type u_8
F : Type u_9
inst✝⁴ : Group G
inst✝³ : CommGroup H
inst✝² : MulOneClass M
inst✝¹ : MulOneClass N
inst✝ : MulOneClass P
f : N →* P
x✝ : M
⊢ (f.comp 1) x✝ = 1 x✝
state_after: no goals
Theorem: ultrafilter_comap_pure_nhds
File: Mathlib/Topology/StoneCech.lean

tactic: rw [TopologicalSpace.nhds_generateFrom]
state_before: α : Type u
b : Ultrafilter α
⊢ comap pure (𝓝 b) ≤ ↑b
state_after: α : Type u
b : Ultrafilter α
⊢ comap pure (⨅ s ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 s) ≤ ↑b

tactic: simp only [comap_iInf, comap_principal]
state_before: α : Type u
b : Ultrafilter α
⊢ comap pure (⨅ s ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 s) ≤ ↑b
state_after: α : Type u
b : Ultrafilter α
⊢ ⨅ i ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 (pure ⁻¹' i) ≤ ↑b

tactic: intro s hs
state_before: α : Type u
b : Ultrafilter α
⊢ ⨅ i ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 (pure ⁻¹' i) ≤ ↑b
state_after: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ s ∈ ⨅ i ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 (pure ⁻¹' i)

tactic: rw [← le_principal_iff]
state_before: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ s ∈ ⨅ i ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 (pure ⁻¹' i)
state_after: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ ⨅ i ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 (pure ⁻¹' i) ≤ 𝓟 s

tactic: refine iInf_le_of_le { u | s ∈ u } ?_
state_before: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ ⨅ i ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}, 𝓟 (pure ⁻¹' i) ≤ 𝓟 s
state_after: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ ⨅ (_ : {u | s ∈ u} ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}), 𝓟 (pure ⁻¹' {u | s ∈ u}) ≤ 𝓟 s

tactic: refine iInf_le_of_le ⟨hs, ⟨s, rfl⟩⟩ ?_
state_before: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ ⨅ (_ : {u | s ∈ u} ∈ {s | b ∈ s ∧ s ∈ ultrafilterBasis α}), 𝓟 (pure ⁻¹' {u | s ∈ u}) ≤ 𝓟 s
state_after: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ 𝓟 (pure ⁻¹' {u | s ∈ u}) ≤ 𝓟 s

tactic: exact principal_mono.2 fun _ ↦ id
state_before: α : Type u
b : Ultrafilter α
s : Set α
hs : s ∈ ↑b
⊢ 𝓟 (pure ⁻¹' {u | s ∈ u}) ≤ 𝓟 s
state_after: no goals
Theorem: GromovHausdorff.HD_bound_aux2
File: Mathlib/Topology/MetricSpace/GromovHausdorffRealized.lean

tactic: obtain ⟨Cf, hCf⟩ := f.isBounded_range.bddAbove
state_before: X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f✝ : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
f : GromovHausdorff.Cb X Y
C : ℝ
⊢ BddAbove (range fun y => ⨅ x, f (inl x, inr y) + C)
state_after: case intro
X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f✝ : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
f : GromovHausdorff.Cb X Y
C Cf : ℝ
hCf : Cf ∈ upperBounds (range ⇑f)
⊢ BddAbove (range fun y => ⨅ x, f (inl x, inr y) + C)

tactic: refine ⟨Cf + C, forall_mem_range.2 fun y => ?_⟩
state_before: case intro
X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f✝ : GromovHausdorff.ProdSpaceFun X Y
x y z t : X ⊕ Y
f : GromovHausdorff.Cb X Y
C Cf : ℝ
hCf : Cf ∈ upperBounds (range ⇑f)
⊢ BddAbove (range fun y => ⨅ x, f (inl x, inr y) + C)
state_after: case intro
X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f✝ : GromovHausdorff.ProdSpaceFun X Y
x y✝ z t : X ⊕ Y
f : GromovHausdorff.Cb X Y
C Cf : ℝ
hCf : Cf ∈ upperBounds (range ⇑f)
y : Y
⊢ ⨅ x, f (inl x, inr y) + C ≤ Cf + C

tactic: calc
  ⨅ x, f (inl x, inr y) + C ≤ f (inl default, inr y) + C := ciInf_le (HD_below_aux2 C) default
  _ ≤ Cf + C := add_le_add ((fun x => hCf (mem_range_self x)) _) le_rfl
state_before: case intro
X : Type u
Y : Type v
inst✝⁵ : MetricSpace X
inst✝⁴ : CompactSpace X
inst✝³ : Nonempty X
inst✝² : MetricSpace Y
inst✝¹ : CompactSpace Y
inst✝ : Nonempty Y
f✝ : GromovHausdorff.ProdSpaceFun X Y
x y✝ z t : X ⊕ Y
f : GromovHausdorff.Cb X Y
C Cf : ℝ
hCf : Cf ∈ upperBounds (range ⇑f)
y : Y
⊢ ⨅ x, f (inl x, inr y) + C ≤ Cf + C
state_after: no goals
Theorem: Polynomial.Monic.add_of_right
File: Mathlib/Algebra/Polynomial/Monic.lean

tactic: rwa [Monic, leadingCoeff_add_of_degree_lt hpq]
state_before: R : Type u
S : Type v
a b : R
m n : ℕ
ι : Type y
inst✝ : Semiring R
p q r : R[X]
hq : q.Monic
hpq : p.degree < q.degree
⊢ (p + q).Monic
state_after: no goals
Theorem: convexOn_id
File: Mathlib/Analysis/Convex/Function.lean

tactic: intros
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
α : Type u_4
β : Type u_5
ι : Type u_6
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : OrderedAddCommMonoid α
inst✝³ : OrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : SMul 𝕜 α
inst✝ : SMul 𝕜 β
s✝ : Set E
f : E → β
g : β → α
s : Set β
hs : Convex 𝕜 s
⊢ ∀ ⦃x : β⦄,
    x ∈ s →
      ∀ ⦃y : β⦄,
        y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → _root_.id (a • x + b • y) ≤ a • _root_.id x + b • _root_.id y
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
α : Type u_4
β : Type u_5
ι : Type u_6
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : OrderedAddCommMonoid α
inst✝³ : OrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : SMul 𝕜 α
inst✝ : SMul 𝕜 β
s✝ : Set E
f : E → β
g : β → α
s : Set β
hs : Convex 𝕜 s
x✝ : β
a✝⁵ : x✝ ∈ s
y✝ : β
a✝⁴ : y✝ ∈ s
a✝³ b✝ : 𝕜
a✝² : 0 ≤ a✝³
a✝¹ : 0 ≤ b✝
a✝ : a✝³ + b✝ = 1
⊢ _root_.id (a✝³ • x✝ + b✝ • y✝) ≤ a✝³ • _root_.id x✝ + b✝ • _root_.id y✝

tactic: rfl
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
α : Type u_4
β : Type u_5
ι : Type u_6
inst✝⁷ : OrderedSemiring 𝕜
inst✝⁶ : AddCommMonoid E
inst✝⁵ : AddCommMonoid F
inst✝⁴ : OrderedAddCommMonoid α
inst✝³ : OrderedAddCommMonoid β
inst✝² : SMul 𝕜 E
inst✝¹ : SMul 𝕜 α
inst✝ : SMul 𝕜 β
s✝ : Set E
f : E → β
g : β → α
s : Set β
hs : Convex 𝕜 s
x✝ : β
a✝⁵ : x✝ ∈ s
y✝ : β
a✝⁴ : y✝ ∈ s
a✝³ b✝ : 𝕜
a✝² : 0 ≤ a✝³
a✝¹ : 0 ≤ b✝
a✝ : a✝³ + b✝ = 1
⊢ _root_.id (a✝³ • x✝ + b✝ • y✝) ≤ a✝³ • _root_.id x✝ + b✝ • _root_.id y✝
state_after: no goals
Theorem: Nat.lcm_pos
File: Mathlib/Data/Nat/GCD/Basic.lean

tactic: simp_rw [pos_iff_ne_zero]
state_before: m n : ℕ
⊢ 0 < m → 0 < n → 0 < m.lcm n
state_after: m n : ℕ
⊢ m ≠ 0 → n ≠ 0 → m.lcm n ≠ 0

tactic: exact lcm_ne_zero
state_before: m n : ℕ
⊢ m ≠ 0 → n ≠ 0 → m.lcm n ≠ 0
state_after: no goals
Theorem: MeasureTheory.snorm_indicator_le
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: refine snorm_mono_ae (eventually_of_forall fun x => ?_)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
⊢ snorm (s.indicator f) p μ ≤ snorm f p μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
x : α
⊢ ‖s.indicator f x‖ ≤ ‖f x‖

tactic: suffices ‖s.indicator f x‖₊ ≤ ‖f x‖₊ by exact NNReal.coe_mono this
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
x : α
⊢ ‖s.indicator f x‖ ≤ ‖f x‖
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
x : α
⊢ ‖s.indicator f x‖₊ ≤ ‖f x‖₊

tactic: rw [nnnorm_indicator_eq_indicator_nnnorm]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
x : α
⊢ ‖s.indicator f x‖₊ ≤ ‖f x‖₊
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
x : α
⊢ s.indicator (fun a => ‖f a‖₊) x ≤ ‖f x‖₊

tactic: exact s.indicator_le_self _ x
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
x : α
⊢ s.indicator (fun a => ‖f a‖₊) x ≤ ‖f x‖₊
state_after: no goals

tactic: exact NNReal.coe_mono this
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
f✝ : α → E
hf : AEStronglyMeasurable f✝ μ
s : Set α
f : α → E
x : α
this : ‖s.indicator f x‖₊ ≤ ‖f x‖₊
⊢ ‖s.indicator f x‖ ≤ ‖f x‖
state_after: no goals
Theorem: Complex.continuous_exp
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: convert locally_lipschitz_exp zero_le_one le_rfl x y using 2
state_before: z y✝ x✝ : ℝ
x y : ℂ
⊢ dist y x < 1 → dist (cexp y) (cexp x) ≤ 2 * ‖cexp x‖ * dist y x
state_after: case h'.h.e'_4
z y✝ x✝ : ℝ
x y : ℂ
a✝ : ‖y - x‖ < 1
⊢ 2 * ‖cexp x‖ * dist y x = (1 + 1) * ‖cexp x‖ * ‖y - x‖

tactic: congr
state_before: case h'.h.e'_4
z y✝ x✝ : ℝ
x y : ℂ
a✝ : ‖y - x‖ < 1
⊢ 2 * ‖cexp x‖ * dist y x = (1 + 1) * ‖cexp x‖ * ‖y - x‖
state_after: case h'.h.e'_4.e_a.e_a
z y✝ x✝ : ℝ
x y : ℂ
a✝ : ‖y - x‖ < 1
⊢ 2 = 1 + 1

tactic: ring
state_before: case h'.h.e'_4.e_a.e_a
z y✝ x✝ : ℝ
x y : ℂ
a✝ : ‖y - x‖ < 1
⊢ 2 = 1 + 1
state_after: no goals