1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: UniformInducing.comp
File: Mathlib/Topology/UniformSpace/UniformEmbedding.lean

tactic: rw [← hf.1, ← hg.1, comap_comap]
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
g : β → γ
hg : UniformInducing g
f : α → β
hf : UniformInducing f
⊢ comap (fun x => ((g ∘ f) x.1, (g ∘ f) x.2)) (𝓤 γ) = 𝓤 α
state_after: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
g : β → γ
hg : UniformInducing g
f : α → β
hf : UniformInducing f
⊢ comap (fun x => ((g ∘ f) x.1, (g ∘ f) x.2)) (𝓤 γ) = comap ((fun x => (g x.1, g x.2)) ∘ fun x => (f x.1, f x.2)) (𝓤 γ)

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type w
inst✝² : UniformSpace α
inst✝¹ : UniformSpace β
inst✝ : UniformSpace γ
g : β → γ
hg : UniformInducing g
f : α → β
hf : UniformInducing f
⊢ comap (fun x => ((g ∘ f) x.1, (g ∘ f) x.2)) (𝓤 γ) = comap ((fun x => (g x.1, g x.2)) ∘ fun x => (f x.1, f x.2)) (𝓤 γ)
state_after: no goals
Theorem: Set.enumerate_eq_none_of_sel
File: Mathlib/Data/Set/Enumerate.lean

tactic: simp [h, enumerate]
state_before: α : Type u_1
sel : Set α → Option α
s : Set α
h : sel s = none
⊢ enumerate sel s 0 = none
state_after: no goals

tactic: simp [h, enumerate]
state_before: α : Type u_1
sel : Set α → Option α
s : Set α
h : sel s = none
n : ℕ
⊢ enumerate sel s (n + 1) = none
state_after: no goals
Theorem: Metric.uniformity_edist
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: simp only [PseudoMetricSpace.uniformity_dist, dist_nndist, edist_nndist,
  Metric.uniformity_edist_aux]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
⊢ 𝓤 α = ⨅ ε, ⨅ (_ : ε > 0), 𝓟 {p | edist p.1 p.2 < ε}
state_after: no goals
Theorem: CategoryTheory.Equivalence.cancel_unit_right_assoc'
File: Mathlib/CategoryTheory/Equivalence.lean

tactic: simp only [← Category.assoc, cancel_mono]
state_before: C : Type u₁
inst✝² : Category.{v₁, u₁} C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
E : Type u₃
inst✝ : Category.{v₃, u₃} E
e : C ≌ D
W X X' Y Y' Z : C
f : W ⟶ X
g : X ⟶ Y
h : Y ⟶ Z
f' : W ⟶ X'
g' : X' ⟶ Y'
h' : Y' ⟶ Z
⊢ f ≫ g ≫ h ≫ e.unit.app Z = f' ≫ g' ≫ h' ≫ e.unit.app Z ↔ f ≫ g ≫ h = f' ≫ g' ≫ h'
state_after: no goals
Theorem: Function.IsPeriodicPt.left_of_comp
File: Mathlib/Dynamics/PeriodicPts.lean

tactic: rw [IsPeriodicPt, hco.comp_iterate] at hfg
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
g : α → α
hco : Function.Commute f g
hfg : IsPeriodicPt (f ∘ g) n x
hg : IsPeriodicPt g n x
⊢ IsPeriodicPt f n x
state_after: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
g : α → α
hco : Function.Commute f g
hfg : IsFixedPt (f^[n] ∘ g^[n]) x
hg : IsPeriodicPt g n x
⊢ IsPeriodicPt f n x

tactic: exact hfg.left_of_comp hg
state_before: α : Type u_1
β : Type u_2
f fa : α → α
fb : β → β
x y : α
m n : ℕ
g : α → α
hco : Function.Commute f g
hfg : IsFixedPt (f^[n] ∘ g^[n]) x
hg : IsPeriodicPt g n x
⊢ IsPeriodicPt f n x
state_after: no goals
Theorem: Sym.map_mk
File: Mathlib/Data/Sym/Basic.lean

tactic: simp [hc]
state_before: α : Type u_1
β : Type u_2
n n' m✝ : ℕ
s : Sym α n
a b : α
f : α → β
m : Multiset α
hc : Multiset.card m = n
⊢ Multiset.card (Multiset.map f m) = n
state_after: no goals
Theorem: Nat.smul_one_eq_cast
File: Mathlib/Algebra/Module/Defs.lean

tactic: rw [nsmul_eq_mul, mul_one]
state_before: α : Type u_1
R✝ : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
R : Type u_9
inst✝ : NonAssocSemiring R
m : ℕ
⊢ m • 1 = ↑m
state_after: no goals
Theorem: le_isGLB_iff
File: Mathlib/Order/Bounds/Basic.lean

tactic: rw [h.lowerBounds_eq]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
a b : α
h : IsGLB s a
⊢ b ≤ a ↔ b ∈ lowerBounds s
state_after: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
a b : α
h : IsGLB s a
⊢ b ≤ a ↔ b ∈ Iic a

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
a b : α
h : IsGLB s a
⊢ b ≤ a ↔ b ∈ Iic a
state_after: no goals
Theorem: Field.finInsepDegree_eq_of_equiv
File: Mathlib/FieldTheory/SeparableClosure.lean

tactic: simpa only [Cardinal.toNat_lift] using congr_arg Cardinal.toNat
  (lift_insepDegree_eq_of_equiv F E K i)
state_before: F : Type u
E : Type v
inst✝⁴ : Field F
inst✝³ : Field E
inst✝² : Algebra F E
K : Type w
inst✝¹ : Field K
inst✝ : Algebra F K
i : E ≃ₐ[F] K
⊢ finInsepDegree F E = finInsepDegree F K
state_after: no goals
Theorem: Orientation.inner_smul_rotation_pi_div_two_left
File: Mathlib/Geometry/Euclidean/Angle/Oriented/Rotation.lean

tactic: rw [inner_smul_left, inner_rotation_pi_div_two_left, mul_zero]
state_before: V : Type u_1
V' : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : NormedAddCommGroup V'
inst✝³ : InnerProductSpace ℝ V
inst✝² : InnerProductSpace ℝ V'
inst✝¹ : Fact (finrank ℝ V = 2)
inst✝ : Fact (finrank ℝ V' = 2)
o : Orientation ℝ V (Fin 2)
x : V
r : ℝ
⊢ ⟪r • (o.rotation ↑(π / 2)) x, x⟫_ℝ = 0
state_after: no goals
Theorem: Dilation.cancel_left
File: Mathlib/Topology/MetricSpace/Dilation.lean

tactic: rw [← comp_apply, h, comp_apply]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
F : Type u_4
G : Type u_5
inst✝⁶ : PseudoEMetricSpace α
inst✝⁵ : PseudoEMetricSpace β
inst✝⁴ : PseudoEMetricSpace γ
inst✝³ : FunLike F α β
inst✝² : DilationClass F α β
inst✝¹ : FunLike G β γ
inst✝ : DilationClass G β γ
f : F
g✝ : G
x✝ y z : α
s : Set α
g : β →ᵈ γ
f₁ f₂ : α →ᵈ β
hg : Injective ⇑g
h : g.comp f₁ = g.comp f₂
x : α
⊢ g (f₁ x) = g (f₂ x)
state_after: no goals
Theorem: List.orderedInsert_length
File: Mathlib/Data/List/Sort.lean

tactic: dsimp [orderedInsert]
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
hd : α
tl : List α
a : α
⊢ (orderedInsert r a (hd :: tl)).length = (hd :: tl).length + 1
state_after: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
hd : α
tl : List α
a : α
⊢ (if r a hd then a :: hd :: tl else hd :: orderedInsert r a tl).length = tl.length + 1 + 1

tactic: split_ifs <;> simp [orderedInsert_length tl]
state_before: α : Type u
r : α → α → Prop
inst✝ : DecidableRel r
hd : α
tl : List α
a : α
⊢ (if r a hd then a :: hd :: tl else hd :: orderedInsert r a tl).length = tl.length + 1 + 1
state_after: no goals
Theorem: Nat.smoothNumbers_one
File: Mathlib/NumberTheory/SmoothNumbers.lean

tactic: simp (config := { decide := true }) only [not_false_eq_true, smoothNumbers_succ,
  smoothNumbers_zero]
state_before: ⊢ smoothNumbers 1 = {1}
state_after: no goals
Theorem: UniqueMDiffWithinAt.eq
File: Mathlib/Geometry/Manifold/MFDeriv/Basic.lean

tactic: convert U.eq h.2 h₁.2
state_before: 𝕜 : Type u_1
inst✝¹⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝¹⁴ : NormedAddCommGroup E
inst✝¹³ : NormedSpace 𝕜 E
H : Type u_3
inst✝¹² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹¹ : TopologicalSpace M
inst✝¹⁰ : ChartedSpace H M
E' : Type u_5
inst✝⁹ : NormedAddCommGroup E'
inst✝⁸ : NormedSpace 𝕜 E'
H' : Type u_6
inst✝⁷ : TopologicalSpace H'
I' : ModelWithCorners 𝕜 E' H'
M' : Type u_7
inst✝⁶ : TopologicalSpace M'
inst✝⁵ : ChartedSpace H' M'
E'' : Type u_8
inst✝⁴ : NormedAddCommGroup E''
inst✝³ : NormedSpace 𝕜 E''
H'' : Type u_9
inst✝² : TopologicalSpace H''
I'' : ModelWithCorners 𝕜 E'' H''
M'' : Type u_10
inst✝¹ : TopologicalSpace M''
inst✝ : ChartedSpace H'' M''
f f₀ f₁ : M → M'
x : M
s t : Set M
g : M' → M''
u : Set M'
Is : SmoothManifoldWithCorners I M
I's : SmoothManifoldWithCorners I' M'
I''s : SmoothManifoldWithCorners I'' M''
f' f₀' f₁' : TangentSpace I x →L[𝕜] TangentSpace I' (f x)
g' : TangentSpace I' (f x) →L[𝕜] TangentSpace I'' (g (f x))
U : UniqueMDiffWithinAt I s x
h : HasMFDerivWithinAt I I' f s x f'
h₁ : HasMFDerivWithinAt I I' f s x f₁'
⊢ f' = f₁'
state_after: no goals
Theorem: pow_gcd_eq_one
File: Mathlib/Data/Int/GCD.lean

tactic: rcases m with (rfl | m)
state_before: M : Type u_1
inst✝ : Monoid M
x : M
m n : ℕ
hm : x ^ m = 1
hn : x ^ n = 1
⊢ x ^ m.gcd n = 1
state_after: case zero
M : Type u_1
inst✝ : Monoid M
x : M
n : ℕ
hn : x ^ n = 1
hm : x ^ 0 = 1
⊢ x ^ Nat.gcd 0 n = 1

case succ
M : Type u_1
inst✝ : Monoid M
x : M
n : ℕ
hn : x ^ n = 1
m : ℕ
hm : x ^ (m + 1) = 1
⊢ x ^ (m + 1).gcd n = 1

tactic: obtain ⟨y, rfl⟩ := isUnit_ofPowEqOne hm m.succ_ne_zero
state_before: case succ
M : Type u_1
inst✝ : Monoid M
x : M
n : ℕ
hn : x ^ n = 1
m : ℕ
hm : x ^ (m + 1) = 1
⊢ x ^ (m + 1).gcd n = 1
state_after: case succ.intro
M : Type u_1
inst✝ : Monoid M
n m : ℕ
y : Mˣ
hn : ↑y ^ n = 1
hm : ↑y ^ (m + 1) = 1
⊢ ↑y ^ (m + 1).gcd n = 1

tactic: rw [← Units.val_pow_eq_pow_val, ← Units.val_one (α := M), ← zpow_natCast, ← Units.ext_iff] at *
state_before: case succ.intro
M : Type u_1
inst✝ : Monoid M
n m : ℕ
y : Mˣ
hn : ↑y ^ n = 1
hm : ↑y ^ (m + 1) = 1
⊢ ↑y ^ (m + 1).gcd n = 1
state_after: case succ.intro
M : Type u_1
inst✝ : Monoid M
n m : ℕ
y : Mˣ
hn : y ^ ↑n = 1
hm : y ^ ↑(m + 1) = 1
⊢ y ^ ↑((m + 1).gcd n) = 1

tactic: rw [Nat.gcd_eq_gcd_ab, zpow_add, zpow_mul, zpow_mul, hn, hm, one_zpow, one_zpow, one_mul]
state_before: case succ.intro
M : Type u_1
inst✝ : Monoid M
n m : ℕ
y : Mˣ
hn : y ^ ↑n = 1
hm : y ^ ↑(m + 1) = 1
⊢ y ^ ↑((m + 1).gcd n) = 1
state_after: no goals

tactic: simp [hn]
state_before: case zero
M : Type u_1
inst✝ : Monoid M
x : M
n : ℕ
hn : x ^ n = 1
hm : x ^ 0 = 1
⊢ x ^ Nat.gcd 0 n = 1
state_after: no goals
Theorem: Finset.injective_sym2
File: Mathlib/Data/Finset/Sym.lean

tactic: intro s t h
state_before: α : Type u_1
s t : Finset α
a b : α
⊢ Function.Injective Finset.sym2
state_after: α : Type u_1
s✝ t✝ : Finset α
a b : α
s t : Finset α
h : s.sym2 = t.sym2
⊢ s = t

tactic: ext x
state_before: α : Type u_1
s✝ t✝ : Finset α
a b : α
s t : Finset α
h : s.sym2 = t.sym2
⊢ s = t
state_after: case a
α : Type u_1
s✝ t✝ : Finset α
a b : α
s t : Finset α
h : s.sym2 = t.sym2
x : α
⊢ x ∈ s ↔ x ∈ t

tactic: simpa using congr(s(x, x) ∈ $h)
state_before: case a
α : Type u_1
s✝ t✝ : Finset α
a b : α
s t : Finset α
h : s.sym2 = t.sym2
x : α
⊢ x ∈ s ↔ x ∈ t
state_after: no goals
Theorem: leftLim_eq_of_tendsto
File: Mathlib/Topology/Order/LeftRightLim.lean

tactic: have h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y) := ⟨y, h'⟩
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace β
hα : TopologicalSpace α
h'α : OrderTopology α
inst✝ : T2Space β
f : α → β
a : α
y : β
h : 𝓝[<] a ≠ ⊥
h' : Tendsto f (𝓝[<] a) (𝓝 y)
⊢ leftLim f a = y
state_after: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace β
hα : TopologicalSpace α
h'α : OrderTopology α
inst✝ : T2Space β
f : α → β
a : α
y : β
h : 𝓝[<] a ≠ ⊥
h' : Tendsto f (𝓝[<] a) (𝓝 y)
h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y)
⊢ leftLim f a = y

tactic: simp only [leftLim, h, h'', not_true, or_self_iff, if_false]
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace β
hα : TopologicalSpace α
h'α : OrderTopology α
inst✝ : T2Space β
f : α → β
a : α
y : β
h : 𝓝[<] a ≠ ⊥
h' : Tendsto f (𝓝[<] a) (𝓝 y)
h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y)
⊢ leftLim f a = y
state_after: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace β
hα : TopologicalSpace α
h'α : OrderTopology α
inst✝ : T2Space β
f : α → β
a : α
y : β
h : 𝓝[<] a ≠ ⊥
h' : Tendsto f (𝓝[<] a) (𝓝 y)
h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y)
⊢ limUnder (𝓝[<] a) f = y

tactic: haveI := neBot_iff.2 h
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace β
hα : TopologicalSpace α
h'α : OrderTopology α
inst✝ : T2Space β
f : α → β
a : α
y : β
h : 𝓝[<] a ≠ ⊥
h' : Tendsto f (𝓝[<] a) (𝓝 y)
h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y)
⊢ limUnder (𝓝[<] a) f = y
state_after: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace β
hα : TopologicalSpace α
h'α : OrderTopology α
inst✝ : T2Space β
f : α → β
a : α
y : β
h : 𝓝[<] a ≠ ⊥
h' : Tendsto f (𝓝[<] a) (𝓝 y)
h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y)
this : (𝓝[<] a).NeBot
⊢ limUnder (𝓝[<] a) f = y

tactic: exact lim_eq h'
state_before: α : Type u_1
β : Type u_2
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace β
hα : TopologicalSpace α
h'α : OrderTopology α
inst✝ : T2Space β
f : α → β
a : α
y : β
h : 𝓝[<] a ≠ ⊥
h' : Tendsto f (𝓝[<] a) (𝓝 y)
h'' : ∃ y, Tendsto f (𝓝[<] a) (𝓝 y)
this : (𝓝[<] a).NeBot
⊢ limUnder (𝓝[<] a) f = y
state_after: no goals
Theorem: nhdsWithin_extChartAt_target_eq'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).source
state_after: no goals
Theorem: MeasureTheory.ConvolutionExistsAt.add_distrib
File: Mathlib/Analysis/Convolution.lean

tactic: simp only [convolution_def, L.map_add₂, Pi.add_apply, integral_add hfg hfg']
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup E''
inst✝⁸ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝ x' : G
y y' : E
inst✝⁷ : NontriviallyNormedField 𝕜
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedSpace 𝕜 E'
inst✝⁴ : NormedSpace 𝕜 E''
inst✝³ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝² : MeasurableSpace G
μ ν : Measure G
inst✝¹ : NormedSpace ℝ F
inst✝ : AddGroup G
x : G
hfg : ConvolutionExistsAt f g x L μ
hfg' : ConvolutionExistsAt f' g x L μ
⊢ ((f + f') ⋆[L, μ] g) x = (f ⋆[L, μ] g) x + (f' ⋆[L, μ] g) x
state_after: no goals
Theorem: Nat.even_sub'
File: Mathlib/Algebra/Ring/Parity.lean

tactic: rw [even_sub h, even_iff_not_odd, even_iff_not_odd, not_iff_not]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
R : Type u_4
m n : ℕ
h : n ≤ m
⊢ Even (m - n) ↔ (Odd m ↔ Odd n)
state_after: no goals
Theorem: GradedAlgebra.proj_recompose
File: Mathlib/RingTheory/GradedAlgebra/Basic.lean

tactic: rw [GradedAlgebra.proj_apply, decompose_symm_of, Equiv.apply_symm_apply]
state_before: ι : Type u_1
R : Type u_2
A : Type u_3
σ : Type u_4
inst✝⁵ : DecidableEq ι
inst✝⁴ : AddMonoid ι
inst✝³ : CommSemiring R
inst✝² : Semiring A
inst✝¹ : Algebra R A
𝒜 : ι → Submodule R A
inst✝ : GradedAlgebra 𝒜
a : ⨁ (i : ι), ↥(𝒜 i)
i : ι
⊢ (proj 𝒜 i) ((decompose 𝒜).symm a) = (decompose 𝒜).symm ((of (fun i => ↥(𝒜 i)) i) (a i))
state_after: no goals
Theorem: Polynomial.natDegree_X_pow_mul
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [commute_X_pow, natDegree_mul_X_pow n hp]
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝¹ : Semiring R
inst✝ : Nontrivial R
p q : R[X]
n : ℕ
hp : p ≠ 0
⊢ (X ^ n * p).natDegree = p.natDegree + n
state_after: no goals
Theorem: Ideal.pow_le_pow_right
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: cases' Nat.exists_eq_add_of_le h with k hk
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
⊢ I ^ n ≤ I ^ m
state_after: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ n ≤ I ^ m

tactic: rw [hk, pow_add]
state_before: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ n ≤ I ^ m
state_after: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ m * I ^ k ≤ I ^ m

tactic: exact le_trans mul_le_inf inf_le_left
state_before: case intro
R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
m n : ℕ
h : m ≤ n
k : ℕ
hk : n = m + k
⊢ I ^ m * I ^ k ≤ I ^ m
state_after: no goals
Theorem: MeasureTheory.locallyIntegrable_comap
File: Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

tactic: simp_rw [LocallyIntegrableOn, Subtype.forall', ← map_nhds_subtype_val]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
f g : X → E
μ : Measure X
s : Set X
hs : MeasurableSet s
⊢ LocallyIntegrable (fun x => f ↑x) (comap Subtype.val μ) ↔ LocallyIntegrableOn f s μ
state_after: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
f g : X → E
μ : Measure X
s : Set X
hs : MeasurableSet s
⊢ LocallyIntegrable (fun x => f ↑x) (comap Subtype.val μ) ↔
    ∀ (x : { a // a ∈ s }), IntegrableAtFilter f (Filter.map Subtype.val (𝓝 x)) μ

tactic: exact forall_congr' fun _ ↦ (MeasurableEmbedding.subtype_coe hs).integrableAtFilter_iff_comap.symm
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
R : Type u_5
inst✝⁵ : MeasurableSpace X
inst✝⁴ : TopologicalSpace X
inst✝³ : MeasurableSpace Y
inst✝² : TopologicalSpace Y
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
f g : X → E
μ : Measure X
s : Set X
hs : MeasurableSet s
⊢ LocallyIntegrable (fun x => f ↑x) (comap Subtype.val μ) ↔
    ∀ (x : { a // a ∈ s }), IntegrableAtFilter f (Filter.map Subtype.val (𝓝 x)) μ
state_after: no goals
Theorem: mul_le_iff_le_one_left'
File: Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean

tactic: rw [one_mul]
state_before: α : Type u_1
β : Type u_2
inst✝³ : MulOneClass α
inst✝² : LE α
inst✝¹ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ a * b ≤ b ↔ a * b ≤ 1 * b
state_after: no goals
Theorem: Filter.isBounded_le_map_of_bounded_range
File: Mathlib/Topology/Order/Bounded.lean

tactic: obtain ⟨c, hc⟩ := h.bddAbove
state_before: ι : Type u_1
F : Filter ι
f : ι → ℝ
h : Bornology.IsBounded (range f)
⊢ IsBounded (fun x x_1 => x ≤ x_1) (map f F)
state_after: case intro
ι : Type u_1
F : Filter ι
f : ι → ℝ
h : Bornology.IsBounded (range f)
c : ℝ
hc : c ∈ upperBounds (range f)
⊢ IsBounded (fun x x_1 => x ≤ x_1) (map f F)

tactic: exact isBoundedUnder_of ⟨c, by simpa [mem_upperBounds] using hc⟩
state_before: case intro
ι : Type u_1
F : Filter ι
f : ι → ℝ
h : Bornology.IsBounded (range f)
c : ℝ
hc : c ∈ upperBounds (range f)
⊢ IsBounded (fun x x_1 => x ≤ x_1) (map f F)
state_after: no goals

tactic: simpa [mem_upperBounds] using hc
state_before: ι : Type u_1
F : Filter ι
f : ι → ℝ
h : Bornology.IsBounded (range f)
c : ℝ
hc : c ∈ upperBounds (range f)
⊢ ∀ (x : ι), f x ≤ c
state_after: no goals
Theorem: CategoryTheory.ProjectiveResolution.fromLeftDerivedZero'_naturality
File: Mathlib/CategoryTheory/Abelian/LeftDerived.lean

tactic: simp only [← cancel_epi (HomologicalComplex.pOpcycles _ _), ← F.map_comp, comm,
  HomologicalComplex.p_opcyclesMap_assoc, Functor.mapHomologicalComplex_map_f,
  pOpcycles_comp_fromLeftDerivedZero', pOpcycles_comp_fromLeftDerivedZero'_assoc]
state_before: C : Type u
inst✝⁵ : Category.{v, u} C
D : Type u_1
inst✝⁴ : Category.{u_2, u_1} D
inst✝³ : Abelian C
inst✝² : HasProjectiveResolutions C
inst✝¹ : Abelian D
X Y : C
f : X ⟶ Y
P : ProjectiveResolution X
Q : ProjectiveResolution Y
φ : P.complex ⟶ Q.complex
comm : φ.f 0 ≫ Q.π.f 0 = P.π.f 0 ≫ f
F : C ⥤ D
inst✝ : F.Additive
⊢ HomologicalComplex.opcyclesMap ((F.mapHomologicalComplex (ComplexShape.down ℕ)).map φ) 0 ≫ Q.fromLeftDerivedZero' F =
    P.fromLeftDerivedZero' F ≫ F.map f
state_after: no goals
Theorem: Finset.empty_union
File: Mathlib/Data/Finset/Basic.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s✝ s₁ s₂ t t₁ t₂ u v : Finset α
a b : α
s : Finset α
x : α
⊢ x ∈ ∅ ∨ x ∈ s ↔ x ∈ s
state_after: no goals
Theorem: LieAlgebra.IsKilling.coroot_eq_zero_iff
File: Mathlib/Algebra/Lie/Weights/Killing.lean

tactic: refine ⟨fun hα ↦ ?_, fun hα ↦ ?_⟩
state_before: R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
⊢ coroot α = 0 ↔ α.IsZero
state_after: case refine_1
R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : coroot α = 0
⊢ α.IsZero

case refine_2
R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : α.IsZero
⊢ coroot α = 0

tactic: by_contra contra
state_before: case refine_1
R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : coroot α = 0
⊢ α.IsZero
state_after: case refine_1
R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : coroot α = 0
contra : ¬α.IsZero
⊢ False

tactic: simpa [hα, ← α.coe_coe, map_zero] using root_apply_coroot contra
state_before: case refine_1
R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : coroot α = 0
contra : ¬α.IsZero
⊢ False
state_after: no goals

tactic: simp [coroot, Weight.coe_toLinear_eq_zero_iff.mpr hα]
state_before: case refine_2
R : Type u_1
K : Type u_2
L : Type u_3
inst✝⁹ : CommRing R
inst✝⁸ : LieRing L
inst✝⁷ : LieAlgebra R L
inst✝⁶ : Field K
inst✝⁵ : LieAlgebra K L
inst✝⁴ : FiniteDimensional K L
H : LieSubalgebra K L
inst✝³ : H.IsCartanSubalgebra
inst✝² : IsTriangularizable K (↥H) L
inst✝¹ : IsKilling K L
inst✝ : CharZero K
α : Weight K (↥H) L
hα : α.IsZero
⊢ coroot α = 0
state_after: no goals
Theorem: Fin.prod_ofFn
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: simp [prod_eq_multiset_prod]
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid β
n : ℕ
f : Fin n → β
⊢ (List.ofFn f).prod = ∏ i : Fin n, f i
state_after: no goals
Theorem: specializes_pi
File: Mathlib/Topology/Inseparable.lean

tactic: simp only [Specializes, nhds_pi, pi_le_pi]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f✝ g✝ : X → Y
f g : (i : ι) → π i
⊢ f ⤳ g ↔ ∀ (i : ι), f i ⤳ g i
state_after: no goals
Theorem: not_fermatLastTheoremFor_one
File: Mathlib/NumberTheory/FLT/Basic.lean

tactic: norm_num
state_before: h : FermatLastTheoremFor 1
⊢ 1 ≠ 0
state_after: no goals

tactic: norm_num
state_before: h : FermatLastTheoremFor 1
⊢ 2 ≠ 0
state_after: no goals

tactic: norm_num
state_before: h : FermatLastTheoremFor 1
⊢ 1 ^ 1 + 1 ^ 1 = 2 ^ 1
state_after: no goals