1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: add_eq_left_iff_le
File: Mathlib/Algebra/Order/Kleene.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
π : ι → Type u_4
inst✝ : IdemSemiring α
a b c : α
⊢ a + b = a ↔ b ≤ a
state_after: no goals
Theorem: CategoryTheory.IsIso.of_epi_section'
File: Mathlib/CategoryTheory/EpiMono.lean

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
hf : SplitEpi f
inst✝ : Epi hf.section_
⊢ hf.section_ ≫ f ≫ hf.section_ = hf.section_
state_after: no goals

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
X Y : C
f : X ⟶ Y
hf : SplitEpi f
inst✝ : Epi hf.section_
⊢ hf.section_ ≫ f = 𝟙 Y
state_after: no goals
Theorem: HomologicalComplex.isZero_single_obj_homology
File: Mathlib/Algebra/Homology/SingleHomology.lean

tactic: simpa only [← exactAt_iff_isZero_homology]
  using exactAt_single_obj c j A i hi
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
ι : Type u_1
inst✝ : DecidableEq ι
c : ComplexShape ι
j : ι
A✝ A : C
i : ι
hi : i ≠ j
⊢ IsZero (((single C c j).obj A).homology i)
state_after: no goals
Theorem: Matroid.Basis.union_basis_union
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [union_eq_iUnion, union_eq_iUnion]
state_before: α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ M.Basis (I ∪ J) (X ∪ Y)
state_after: α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ M.Basis (⋃ b, bif b then I else J) (⋃ b, bif b then X else Y)

tactic: refine Basis.iUnion_basis_iUnion _ _ ?_ ?_
state_before: α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ M.Basis (⋃ b, bif b then I else J) (⋃ b, bif b then X else Y)
state_after: case refine_1
α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ ∀ (i : Bool), M.Basis (bif i then I else J) (bif i then X else Y)

case refine_2
α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ M.Indep (⋃ i, bif i then I else J)

tactic: rwa [← union_eq_iUnion]
state_before: case refine_2
α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ M.Indep (⋃ i, bif i then I else J)
state_after: no goals

tactic: simp only [Bool.forall_bool, cond_false, cond_true]
state_before: case refine_1
α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ ∀ (i : Bool), M.Basis (bif i then I else J) (bif i then X else Y)
state_after: case refine_1
α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ M.Basis J Y ∧ M.Basis I X

tactic: exact ⟨hJY, hIX⟩
state_before: case refine_1
α : Type u_1
M : Matroid α
I X J Y : Set α
hIX : M.Basis I X
hJY : M.Basis J Y
h : M.Indep (I ∪ J)
⊢ M.Basis J Y ∧ M.Basis I X
state_after: no goals
Theorem: le_mul_inv_iff_mul_le
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [inv_mul_cancel_right]
state_before: α : Type u
inst✝² : Group α
inst✝¹ : LE α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
⊢ c * b ≤ a * b⁻¹ * b ↔ c * b ≤ a
state_after: no goals
Theorem: WithTop.image_coe_Ico
File: Mathlib/Order/Interval/Set/WithBotTop.lean

tactic: rw [← preimage_coe_Ico, image_preimage_eq_inter_range, range_coe,
  inter_eq_self_of_subset_left (Subset.trans Ico_subset_Iio_self <| Iio_subset_Iio le_top)]
state_before: α : Type u_1
inst✝ : Preorder α
a b : α
⊢ some '' Ico a b = Ico ↑a ↑b
state_after: no goals
Theorem: Finset.card_eq_succ
File: Mathlib/Data/Finset/Card.lean

tactic: simp only [h, card_erase_of_mem has, Nat.add_sub_cancel_right]
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s t u : Finset α
f : α → β
n : ℕ
inst✝ : DecidableEq α
h : s.card = n + 1
a : α
has : a ∈ s
⊢ (s.erase a).card = n
state_after: no goals
Theorem: Mathlib.Tactic.Ring.div_congr
File: Mathlib/Tactic/Ring/Basic.lean

tactic: subst_vars
state_before: u : Lean.Level
R✝ : Type ?u.211783
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : DivisionRing R
a a' b b' c : R
x✝² : a = a'
x✝¹ : b = b'
x✝ : a' / b' = c
⊢ a / b = c
state_after: u : Lean.Level
R✝ : Type ?u.211783
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : DivisionRing R
a' b' : R
⊢ a' / b' = a' / b'

tactic: rfl
state_before: u : Lean.Level
R✝ : Type ?u.211783
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : DivisionRing R
a' b' : R
⊢ a' / b' = a' / b'
state_after: no goals
Theorem: Continuous.continuousOn
File: Mathlib/Topology/ContinuousOn.lean

tactic: rw [continuous_iff_continuousOn_univ] at h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
h : Continuous f
⊢ ContinuousOn f s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
h : ContinuousOn f univ
⊢ ContinuousOn f s

tactic: exact h.mono (subset_univ _)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s : Set α
h : ContinuousOn f univ
⊢ ContinuousOn f s
state_after: no goals
Theorem: HasDerivWithinAt.smul_const
File: Mathlib/Analysis/Calculus/Deriv/Mul.lean

tactic: have := hc.smul (hasDerivWithinAt_const x s f)
state_before: 𝕜 : Type u
inst✝¹⁰ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
E : Type w
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
G : Type u_1
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
f✝ f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_2
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
c : 𝕜 → 𝕜'
c' : 𝕜'
hc : HasDerivWithinAt c c' s x
f : F
⊢ HasDerivWithinAt (fun y => c y • f) (c' • f) s x
state_after: 𝕜 : Type u
inst✝¹⁰ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
E : Type w
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
G : Type u_1
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
f✝ f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_2
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
c : 𝕜 → 𝕜'
c' : 𝕜'
hc : HasDerivWithinAt c c' s x
f : F
this : HasDerivWithinAt (fun y => c y • f) (c x • 0 + c' • f) s x
⊢ HasDerivWithinAt (fun y => c y • f) (c' • f) s x

tactic: rwa [smul_zero, zero_add] at this
state_before: 𝕜 : Type u
inst✝¹⁰ : NontriviallyNormedField 𝕜
F : Type v
inst✝⁹ : NormedAddCommGroup F
inst✝⁸ : NormedSpace 𝕜 F
E : Type w
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
G : Type u_1
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
f✝ f₀ f₁ g : 𝕜 → F
f' f₀' f₁' g' : F
x : 𝕜
s t : Set 𝕜
L L₁ L₂ : Filter 𝕜
𝕜' : Type u_2
inst✝³ : NontriviallyNormedField 𝕜'
inst✝² : NormedAlgebra 𝕜 𝕜'
inst✝¹ : NormedSpace 𝕜' F
inst✝ : IsScalarTower 𝕜 𝕜' F
c : 𝕜 → 𝕜'
c' : 𝕜'
hc : HasDerivWithinAt c c' s x
f : F
this : HasDerivWithinAt (fun y => c y • f) (c x • 0 + c' • f) s x
⊢ HasDerivWithinAt (fun y => c y • f) (c' • f) s x
state_after: no goals
Theorem: Polynomial.natDegree_monomial
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: split_ifs with hr
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p q r✝ : R[X]
inst✝ : DecidableEq R
i : ℕ
r : R
⊢ ((monomial i) r).natDegree = if r = 0 then 0 else i
state_after: case pos
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p q r✝ : R[X]
inst✝ : DecidableEq R
i : ℕ
r : R
hr : r = 0
⊢ ((monomial i) r).natDegree = 0

case neg
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p q r✝ : R[X]
inst✝ : DecidableEq R
i : ℕ
r : R
hr : ¬r = 0
⊢ ((monomial i) r).natDegree = i

tactic: simp [hr]
state_before: case pos
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p q r✝ : R[X]
inst✝ : DecidableEq R
i : ℕ
r : R
hr : r = 0
⊢ ((monomial i) r).natDegree = 0
state_after: no goals

tactic: rw [← C_mul_X_pow_eq_monomial, natDegree_C_mul_X_pow i r hr]
state_before: case neg
R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p q r✝ : R[X]
inst✝ : DecidableEq R
i : ℕ
r : R
hr : ¬r = 0
⊢ ((monomial i) r).natDegree = i
state_after: no goals
Theorem: CategoryTheory.ComposableArrows.Precomp.map_zero_one'
File: Mathlib/CategoryTheory/ComposableArrows.lean

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{?u.96635, u_1} C
n m : ℕ
F G : ComposableArrows C n
X : C
f : X ⟶ F.left
⊢ 0 + 1 < n + 1 + 1
state_after: no goals

tactic: simp
state_before: C : Type u_1
inst✝ : Category.{?u.96635, u_1} C
n m : ℕ
F G : ComposableArrows C n
X : C
f : X ⟶ F.left
⊢ 0 ≤ ⟨0 + 1, ⋯⟩
state_after: no goals
Theorem: Set.subset_image_iff
File: Mathlib/Data/Set/Image.lean

tactic: refine ⟨fun h ↦ ⟨f ⁻¹' t ∩ s, inter_subset_right, ?_⟩,
  fun ⟨u, hu, hu'⟩ ↦ hu'.symm ▸ image_mono hu⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : α → β
s t✝ : Set α
t : Set β
⊢ t ⊆ f '' s ↔ ∃ u ⊆ s, f '' u = t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : α → β
s t✝ : Set α
t : Set β
h : t ⊆ f '' s
⊢ f '' (f ⁻¹' t ∩ s) = t

tactic: rwa [image_preimage_inter, inter_eq_left]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
f : α → β
s t✝ : Set α
t : Set β
h : t ⊆ f '' s
⊢ f '' (f ⁻¹' t ∩ s) = t
state_after: no goals
Theorem: sup_sup_distrib_right
File: Mathlib/Order/Lattice.lean

tactic: rw [sup_sup_sup_comm, sup_idem]
state_before: α : Type u
β : Type v
inst✝ : SemilatticeSup α
a✝ b✝ c✝ d a b c : α
⊢ a ⊔ b ⊔ c = a ⊔ c ⊔ (b ⊔ c)
state_after: no goals
Theorem: MvPolynomial.coeffs_one
File: Mathlib/Algebra/MvPolynomial/Basic.lean

tactic: classical
  rw [coeffs, Finset.image_subset_iff]
  simp_all [coeff_one]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
⊢ coeffs 1 ⊆ {1}
state_after: no goals

tactic: rw [coeffs, Finset.image_subset_iff]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
⊢ coeffs 1 ⊆ {1}
state_after: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
⊢ ∀ x ∈ support 1, coeff x 1 ∈ {1}

tactic: simp_all [coeff_one]
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_1
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S₁
p q : MvPolynomial σ R
⊢ ∀ x ∈ support 1, coeff x 1 ∈ {1}
state_after: no goals
Theorem: tendstoUniformly_iff_tendsto
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: simp [tendstoUniformly_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 ι
⊢ TendstoUniformly F f p ↔ Tendsto (fun q => (f q.2, F q.1 q.2)) (p ×ˢ ⊤) (𝓤 β)
state_after: no goals
Theorem: NormedAddGroupHom.NormNoninc.zero
File: Mathlib/Analysis/Normed/Group/Hom.lean

tactic: simp
state_before: V : Type u_1
W : Type u_2
V₁ : Type u_3
V₂ : Type u_4
V₃ : Type u_5
inst✝⁴ : SeminormedAddCommGroup V
inst✝³ : SeminormedAddCommGroup W
inst✝² : SeminormedAddCommGroup V₁
inst✝¹ : SeminormedAddCommGroup V₂
inst✝ : SeminormedAddCommGroup V₃
f : NormedAddGroupHom V W
v : V₁
⊢ ‖0 v‖ ≤ ‖v‖
state_after: no goals
Theorem: Submodule.map_mkQ_eq_top
File: Mathlib/LinearAlgebra/Quotient.lean

tactic: simp only [LinearMap.map_eq_top_iff p.range_mkQ, sup_comm, ker_mkQ]
state_before: R : Type u_1
M : Type u_2
r : R
x y : M
inst✝⁵ : Ring R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
p p' : Submodule R M
R₂ : Type u_3
M₂ : Type u_4
inst✝² : Ring R₂
inst✝¹ : AddCommGroup M₂
inst✝ : Module R₂ M₂
τ₁₂ : R →+* R₂
⊢ map p.mkQ p' = ⊤ ↔ p ⊔ p' = ⊤
state_after: no goals
Theorem: closedBall_sub_closedBall
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: rw [sub_eq_add_neg, neg_closedBall, closedBall_add_closedBall hε hδ, sub_eq_add_neg]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝⁴ : NormedField 𝕜
inst✝³ : SeminormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
inst✝¹ : NormedSpace ℝ E
x y z : E
δ ε : ℝ
inst✝ : ProperSpace E
hε : 0 ≤ ε
hδ : 0 ≤ δ
a b : E
⊢ Metric.closedBall a ε - Metric.closedBall b δ = Metric.closedBall (a - b) (ε + δ)
state_after: no goals
Theorem: List.le_maximum_of_length_pos_of_mem
File: Mathlib/Data/List/MinMax.lean

tactic: simp only [le_maximum_of_length_pos_iff]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l : List α
a m : α
h : a ∈ l
w : 0 < l.length
⊢ a ≤ maximum_of_length_pos w
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l : List α
a m : α
h : a ∈ l
w : 0 < l.length
⊢ ↑a ≤ l.maximum

tactic: exact le_maximum_of_mem' h
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
l : List α
a m : α
h : a ∈ l
w : 0 < l.length
⊢ ↑a ≤ l.maximum
state_after: no goals
Theorem: FirstOrder.Ring.realize_add
File: Mathlib/ModelTheory/Algebra/Ring/Basic.lean

tactic: simp [add_def, funMap_add]
state_before: α : Type u_1
R : Type u_2
inst✝⁵ : Add R
inst✝⁴ : Mul R
inst✝³ : Neg R
inst✝² : One R
inst✝¹ : Zero R
inst✝ : CompatibleRing R
x y : ring.Term α
v : α → R
⊢ Term.realize v (x + y) = Term.realize v x + Term.realize v y
state_after: no goals
Theorem: aux
File: Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean

tactic: simp only [Algebra.id.smul_eq_mul, one_mul, ContinuousLinearMap.one_apply,
  ContinuousLinearMap.smulRight_apply, ContinuousLinearMap.add_apply, Pi.smul_apply,
  ContinuousLinearMap.coe_smul']
state_before: f g : ℂ → ℂ
s : Set ℂ
f' g' x c : ℂ
⊢ ((g x * f x ^ (g x - 1)) • ContinuousLinearMap.smulRight 1 f' +
        (f x ^ g x * log (f x)) • ContinuousLinearMap.smulRight 1 g')
      1 =
    g x * f x ^ (g x - 1) * f' + f x ^ g x * log (f x) * g'
state_after: no goals
Theorem: MonCat.Colimits.cocone_naturality
File: Mathlib/Algebra/Category/MonCat/Colimits.lean

tactic: ext
state_before: J : Type v
inst✝ : SmallCategory J
F : J ⥤ MonCat
j j' : J
f : j ⟶ j'
⊢ F.map f ≫ coconeMorphism F j' = coconeMorphism F j
state_after: case w
J : Type v
inst✝ : SmallCategory J
F : J ⥤ MonCat
j j' : J
f : j ⟶ j'
x✝ : ↑(F.obj j)
⊢ (F.map f ≫ coconeMorphism F j') x✝ = (coconeMorphism F j) x✝

tactic: apply Quot.sound
state_before: case w
J : Type v
inst✝ : SmallCategory J
F : J ⥤ MonCat
j j' : J
f : j ⟶ j'
x✝ : ↑(F.obj j)
⊢ (F.map f ≫ coconeMorphism F j') x✝ = (coconeMorphism F j) x✝
state_after: case w.a
J : Type v
inst✝ : SmallCategory J
F : J ⥤ MonCat
j j' : J
f : j ⟶ j'
x✝ : ↑(F.obj j)
⊢ Setoid.r (Prequotient.of j' ((F.map f) x✝)) (Prequotient.of j x✝)

tactic: apply Relation.map
state_before: case w.a
J : Type v
inst✝ : SmallCategory J
F : J ⥤ MonCat
j j' : J
f : j ⟶ j'
x✝ : ↑(F.obj j)
⊢ Setoid.r (Prequotient.of j' ((F.map f) x✝)) (Prequotient.of j x✝)
state_after: no goals
Theorem: MvPowerSeries.coeff_trunc
File: Mathlib/RingTheory/MvPowerSeries/Trunc.lean

tactic: classical simp [trunc, coeff_truncFun]
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
n m : σ →₀ ℕ
φ : MvPowerSeries σ R
⊢ MvPolynomial.coeff m ((trunc R n) φ) = if m < n then (coeff R m) φ else 0
state_after: no goals

tactic: simp [trunc, coeff_truncFun]
state_before: σ : Type u_1
R : Type u_2
inst✝ : CommSemiring R
n m : σ →₀ ℕ
φ : MvPowerSeries σ R
⊢ MvPolynomial.coeff m ((trunc R n) φ) = if m < n then (coeff R m) φ else 0
state_after: no goals
Theorem: IntermediateField.adjoin_root_eq_top_of_isSplittingField
File: Mathlib/FieldTheory/KummerExtension.lean

tactic: refine (IntermediateField.eq_adjoin_of_eq_algebra_adjoin _ _ _ ?_).symm
state_before: K : Type u
inst✝³ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
L : Type u_1
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : IsSplittingField K L (X ^ n - C a)
α : L
hα : α ^ n = (algebraMap K L) a
⊢ K⟮α⟯ = ⊤
state_after: K : Type u
inst✝³ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
L : Type u_1
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : IsSplittingField K L (X ^ n - C a)
α : L
hα : α ^ n = (algebraMap K L) a
⊢ ⊤.toSubalgebra = Algebra.adjoin K {α}

tactic: exact (Algebra.adjoin_root_eq_top_of_isSplittingField hζ H hα).symm
state_before: K : Type u
inst✝³ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
L : Type u_1
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : IsSplittingField K L (X ^ n - C a)
α : L
hα : α ^ n = (algebraMap K L) a
⊢ ⊤.toSubalgebra = Algebra.adjoin K {α}
state_after: no goals
Theorem: HomologicalComplex.biprod_inr_desc_f
File: Mathlib/Algebra/Homology/HomologicalComplexBiprod.lean

tactic: rw [← comp_f, biprod.inr_desc]
state_before: C : Type u_1
ι : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Preadditive C
c : ComplexShape ι
K L : HomologicalComplex C c
inst✝ : ∀ (i : ι), HasBinaryBiproduct (K.X i) (L.X i)
M : HomologicalComplex C c
α : K ⟶ M
β : L ⟶ M
i : ι
⊢ biprod.inr.f i ≫ (biprod.desc α β).f i = β.f i
state_after: no goals
Theorem: List.Pairwise.and
File: .lake/packages/batteries/Batteries/Data/List/Pairwise.lean

tactic: induction hR with
| nil => simp only [Pairwise.nil]
| cons R1 _ IH =>
  simp only [Pairwise.nil, pairwise_cons] at hS ⊢
  exact ⟨fun b bl => ⟨R1 b bl, hS.1 b bl⟩, IH hS.2⟩
state_before: α✝ : Type u_1
R : α✝ → α✝ → Prop
l : List α✝
S : α✝ → α✝ → Prop
hR : Pairwise R l
hS : Pairwise S l
⊢ Pairwise (fun a b => R a b ∧ S a b) l
state_after: no goals

tactic: simp only [Pairwise.nil]
state_before: case nil
α✝ : Type u_1
R : α✝ → α✝ → Prop
l : List α✝
S : α✝ → α✝ → Prop
hS : Pairwise S []
⊢ Pairwise (fun a b => R a b ∧ S a b) []
state_after: no goals

tactic: simp only [Pairwise.nil, pairwise_cons] at hS ⊢
state_before: case cons
α✝ : Type u_1
R : α✝ → α✝ → Prop
l : List α✝
S : α✝ → α✝ → Prop
a✝¹ : α✝
l✝ : List α✝
R1 : ∀ (a' : α✝), a' ∈ l✝ → R a✝¹ a'
a✝ : Pairwise R l✝
IH : Pairwise S l✝ → Pairwise (fun a b => R a b ∧ S a b) l✝
hS : Pairwise S (a✝¹ :: l✝)
⊢ Pairwise (fun a b => R a b ∧ S a b) (a✝¹ :: l✝)
state_after: case cons
α✝ : Type u_1
R : α✝ → α✝ → Prop
l : List α✝
S : α✝ → α✝ → Prop
a✝¹ : α✝
l✝ : List α✝
R1 : ∀ (a' : α✝), a' ∈ l✝ → R a✝¹ a'
a✝ : Pairwise R l✝
IH : Pairwise S l✝ → Pairwise (fun a b => R a b ∧ S a b) l✝
hS : (∀ (a' : α✝), a' ∈ l✝ → S a✝¹ a') ∧ Pairwise S l✝
⊢ (∀ (a' : α✝), a' ∈ l✝ → R a✝¹ a' ∧ S a✝¹ a') ∧ Pairwise (fun a b => R a b ∧ S a b) l✝

tactic: exact ⟨fun b bl => ⟨R1 b bl, hS.1 b bl⟩, IH hS.2⟩
state_before: case cons
α✝ : Type u_1
R : α✝ → α✝ → Prop
l : List α✝
S : α✝ → α✝ → Prop
a✝¹ : α✝
l✝ : List α✝
R1 : ∀ (a' : α✝), a' ∈ l✝ → R a✝¹ a'
a✝ : Pairwise R l✝
IH : Pairwise S l✝ → Pairwise (fun a b => R a b ∧ S a b) l✝
hS : (∀ (a' : α✝), a' ∈ l✝ → S a✝¹ a') ∧ Pairwise S l✝
⊢ (∀ (a' : α✝), a' ∈ l✝ → R a✝¹ a' ∧ S a✝¹ a') ∧ Pairwise (fun a b => R a b ∧ S a b) l✝
state_after: no goals
Theorem: Computable.vector_ofFn
File: Mathlib/Computability/Partrec.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
σ : Type u_4
inst✝³ : Primcodable α
inst✝² : Primcodable β
inst✝¹ : Primcodable γ
inst✝ : Primcodable σ
n : ℕ
f : Fin n → α → σ
hf : ∀ (i : Fin n), Computable (f i)
a : α
⊢ (Vector.mOfFn fun i => ↑(f i) a) = (↑fun a => Vector.ofFn fun i => f i a) a
state_after: no goals
Theorem: contMDiff_neg_sphere
File: Mathlib/Geometry/Manifold/Instances/Sphere.lean

tactic: apply ContMDiff.codRestrict_sphere
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace ℝ E
F : Type u_2
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
H : Type u_3
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ F H
M : Type u_4
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
n : ℕ
inst✝ : Fact (finrank ℝ E = n + 1)
⊢ ContMDiff 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) ⊤ fun x => -x
state_after: case hf
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace ℝ E
F : Type u_2
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
H : Type u_3
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ F H
M : Type u_4
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
n : ℕ
inst✝ : Fact (finrank ℝ E = n + 1)
⊢ ContMDiff 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, E) ⊤ fun x => -↑x

tactic: apply contDiff_neg.contMDiff.comp _
state_before: case hf
E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace ℝ E
F : Type u_2
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
H : Type u_3
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ F H
M : Type u_4
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
n : ℕ
inst✝ : Fact (finrank ℝ E = n + 1)
⊢ ContMDiff 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, E) ⊤ fun x => -↑x
state_after: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace ℝ E
F : Type u_2
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
H : Type u_3
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ F H
M : Type u_4
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
n : ℕ
inst✝ : Fact (finrank ℝ E = n + 1)
⊢ ContMDiff 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, E) ⊤ Subtype.val

tactic: exact contMDiff_coe_sphere
state_before: E : Type u_1
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace ℝ E
F : Type u_2
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedSpace ℝ F
H : Type u_3
inst✝⁴ : TopologicalSpace H
I : ModelWithCorners ℝ F H
M : Type u_4
inst✝³ : TopologicalSpace M
inst✝² : ChartedSpace H M
inst✝¹ : SmoothManifoldWithCorners I M
n : ℕ
inst✝ : Fact (finrank ℝ E = n + 1)
⊢ ContMDiff 𝓘(ℝ, EuclideanSpace ℝ (Fin n)) 𝓘(ℝ, E) ⊤ Subtype.val
state_after: no goals
Theorem: Cardinal.lift_mk_le_lift_mk_of_injective
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [← Cardinal.mk_range_eq_of_injective hf]
state_before: α✝ β✝ : Type u
c : Cardinal.{?u.196217}
α : Type u
β : Type v
f : α → β
hf : Injective f
⊢ lift.{v, u} #α ≤ lift.{u, v} #β
state_after: α✝ β✝ : Type u
c : Cardinal.{?u.196217}
α : Type u
β : Type v
f : α → β
hf : Injective f
⊢ lift.{u, v} #↑(range f) ≤ lift.{u, v} #β

tactic: exact Cardinal.lift_le.2 (Cardinal.mk_set_le _)
state_before: α✝ β✝ : Type u
c : Cardinal.{?u.196217}
α : Type u
β : Type v
f : α → β
hf : Injective f
⊢ lift.{u, v} #↑(range f) ≤ lift.{u, v} #β
state_after: no goals
Theorem: Real.young_inequality_of_nonneg
File: Mathlib/Analysis/MeanInequalities.lean

tactic: simpa [← rpow_mul, ha, hb, hpq.ne_zero, hpq.symm.ne_zero, _root_.div_eq_inv_mul] using
  geom_mean_le_arith_mean2_weighted hpq.inv_nonneg hpq.symm.inv_nonneg
    (rpow_nonneg ha p) (rpow_nonneg hb q) hpq.inv_add_inv_conj
state_before: ι : Type u
s : Finset ι
a b p q : ℝ
ha : 0 ≤ a
hb : 0 ≤ b
hpq : p.IsConjExponent q
⊢ a * b ≤ a ^ p / p + b ^ q / q
state_after: no goals