1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ascPochhammer_eval_comp
File: Mathlib/RingTheory/Polynomial/Pochhammer.lean

tactic: rw [ascPochhammer_eval₂ (algebraMap R S), ← eval₂_comp', ← ascPochhammer_map (algebraMap R S),
  ← map_comp, eval_map]
state_before: S : Type u
inst✝³ : Semiring S
T : Type v
inst✝² : Semiring T
R : Type u_1
inst✝¹ : CommSemiring R
n : ℕ
p : R[X]
inst✝ : Algebra R S
x : S
⊢ eval x ((ascPochhammer S n).comp (map (algebraMap R S) p)) = eval (eval₂ (algebraMap R S) x p) (ascPochhammer S n)
state_after: no goals
Theorem: RingHom.surjective_stableUnderComposition
File: Mathlib/RingTheory/RingHom/Surjective.lean

tactic: introv R hf hg
state_before: ⊢ StableUnderComposition fun {X Y} [CommRing X] [CommRing Y] f => Function.Surjective ⇑f
state_after: R S T : Type u_1
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
f : R →+* S
g : S →+* T
hf : Function.Surjective ⇑f
hg : Function.Surjective ⇑g
⊢ Function.Surjective ⇑(g.comp f)

tactic: exact hg.comp hf
state_before: R S T : Type u_1
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
f : R →+* S
g : S →+* T
hf : Function.Surjective ⇑f
hg : Function.Surjective ⇑g
⊢ Function.Surjective ⇑(g.comp f)
state_after: no goals
Theorem: CategoryTheory.SingleObj.inv_as_inv
File: Mathlib/CategoryTheory/SingleObj.lean

tactic: apply IsIso.inv_eq_of_hom_inv_id
state_before: M G : Type u
inst✝¹ : Monoid M
inst✝ : Group G
x y : SingleObj G
f : x ⟶ y
⊢ inv f = f⁻¹
state_after: case hom_inv_id
M G : Type u
inst✝¹ : Monoid M
inst✝ : Group G
x y : SingleObj G
f : x ⟶ y
⊢ f ≫ f⁻¹ = 𝟙 x

tactic: rw [comp_as_mul, inv_mul_self, id_as_one]
state_before: case hom_inv_id
M G : Type u
inst✝¹ : Monoid M
inst✝ : Group G
x y : SingleObj G
f : x ⟶ y
⊢ f ≫ f⁻¹ = 𝟙 x
state_after: no goals
Theorem: SzemerediRegularity.stepBound_mono
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean

tactic: norm_num
state_before: a b : ℕ
h : a ≤ b
⊢ 4 > 0
state_after: no goals
Theorem: HasFPowerSeriesAt.hasStrictFDerivAt
File: Mathlib/Analysis/Calculus/FDeriv/Analytic.lean

tactic: refine h.isBigO_image_sub_norm_mul_norm_sub.trans_isLittleO (IsLittleO.of_norm_right ?_)
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
h : HasFPowerSeriesAt f p x
⊢ HasStrictFDerivAt f ((continuousMultilinearCurryFin1 𝕜 E F) (p 1)) x
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
h : HasFPowerSeriesAt f p x
⊢ (fun y => ‖y - (x, x)‖ * ‖y.1 - y.2‖) =o[nhds (x, x)] fun x => ‖x.1 - x.2‖

tactic: refine isLittleO_iff_exists_eq_mul.2 ⟨fun y => ‖y - (x, x)‖, ?_, EventuallyEq.rfl⟩
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
h : HasFPowerSeriesAt f p x
⊢ (fun y => ‖y - (x, x)‖ * ‖y.1 - y.2‖) =o[nhds (x, x)] fun x => ‖x.1 - x.2‖
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
h : HasFPowerSeriesAt f p x
⊢ Tendsto (fun y => ‖y - (x, x)‖) (nhds (x, x)) (nhds 0)

tactic: refine (continuous_id.sub continuous_const).norm.tendsto' _ _ ?_
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
h : HasFPowerSeriesAt f p x
⊢ Tendsto (fun y => ‖y - (x, x)‖) (nhds (x, x)) (nhds 0)
state_after: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
h : HasFPowerSeriesAt f p x
⊢ ‖id (x, x) - (x, x)‖ = 0

tactic: rw [_root_.id, sub_self, norm_zero]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
r : ℝ≥0∞
f : E → F
x : E
s : Set E
h : HasFPowerSeriesAt f p x
⊢ ‖id (x, x) - (x, x)‖ = 0
state_after: no goals
Theorem: AddSubgroup.fg_iff_mul_fg
File: Mathlib/GroupTheory/Finiteness.lean

tactic: exact AddSubmonoid.fg_iff_mul_fg (AddSubgroup.toAddSubmonoid P)
state_before: M : Type u_1
N : Type u_2
inst✝³ : Monoid M
inst✝² : AddMonoid N
G : Type u_3
H : Type u_4
inst✝¹ : Group G
inst✝ : AddGroup H
P : AddSubgroup H
⊢ P.FG ↔ (toSubgroup P).FG
state_after: no goals
Theorem: CategoryTheory.Presieve.restrict_extend
File: Mathlib/CategoryTheory/Sites/IsSheafFor.lean

tactic: funext Y f hf
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : x.Compatible
⊢ FamilyOfElements.restrict ⋯ x.sieveExtend = x
state_after: case h.h.h
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : x.Compatible
Y : C
f : Y ⟶ X
hf : R f
⊢ FamilyOfElements.restrict ⋯ x.sieveExtend f hf = x f hf

tactic: exact extend_agrees t hf
state_before: case h.h.h
C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y✝ : C
S : Sieve X
R : Presieve X
x : FamilyOfElements P R
t : x.Compatible
Y : C
f : Y ⟶ X
hf : R f
⊢ FamilyOfElements.restrict ⋯ x.sieveExtend f hf = x f hf
state_after: no goals
Theorem: SzemerediRegularity.card_aux₁
File: Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean

tactic: rw [hucard, mul_add, mul_one, ← add_assoc, ← add_mul,
  Nat.sub_add_cancel ((Nat.le_succ _).trans a_add_one_le_four_pow_parts_card), mul_comm]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
P : Finpartition univ
u : Finset α
ε : ℝ
hucard : u.card = m * 4 ^ P.parts.card + a
⊢ (4 ^ P.parts.card - a) * m + a * (m + 1) = u.card
state_after: no goals
Theorem: Ordinal.sup_typein_limit
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: assumption
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal.{u}
ho : ∀ a < o, succ a < o
⊢ ∀ a < o, succ a < o
state_after: no goals
Theorem: Ideal.ramificationIdx_of_not_le
File: Mathlib/NumberTheory/RamificationInertia.lean

tactic: simp
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
h : ¬map f p ≤ P
⊢ map f p ≤ P ^ 0
state_after: no goals

tactic: simpa using h
state_before: R : Type u
inst✝¹ : CommRing R
S : Type v
inst✝ : CommRing S
f : R →+* S
p : Ideal R
P : Ideal S
h : ¬map f p ≤ P
⊢ ¬map f p ≤ P ^ (0 + 1)
state_after: no goals
Theorem: Finset.mulETransformLeft_inv
File: Mathlib/Combinatorics/Additive/ETransform.lean

tactic: simp [-op_inv, op_smul_eq_smul, mulETransformLeft, mulETransformRight]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : CommGroup α
e : α
x : Finset α × Finset α
⊢ mulETransformLeft e⁻¹ x = (mulETransformRight e x.swap).swap
state_after: no goals
Theorem: Orthonormal.inner_left_right_finset
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: classical
simp [orthonormal_iff_ite.mp hv, Finset.sum_ite_of_true]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
s : Finset ι
v : ι → E
hv : Orthonormal 𝕜 v
a : ι → ι → 𝕜
⊢ ∑ i ∈ s, ∑ j ∈ s, a i j • ⟪v j, v i⟫_𝕜 = ∑ k ∈ s, a k k
state_after: no goals

tactic: simp [orthonormal_iff_ite.mp hv, Finset.sum_ite_of_true]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
s : Finset ι
v : ι → E
hv : Orthonormal 𝕜 v
a : ι → ι → 𝕜
⊢ ∑ i ∈ s, ∑ j ∈ s, a i j • ⟪v j, v i⟫_𝕜 = ∑ k ∈ s, a k k
state_after: no goals
Theorem: DerivedCategory.HomologySequence.exact₂
File: Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean

tactic: simp only [← Functor.map_comp, comp_distTriang_mor_zero₁₂ _ hT,
Functor.map_zero]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Abelian C
inst✝ : HasDerivedCategory C
T : Triangle (DerivedCategory C)
hT : T ∈ distinguishedTriangles
n₀ n₁ : ℤ
h : n₀ + 1 = n₁
⊢ (homologyFunctor C n₀).map T.mor₁ ≫ (homologyFunctor C n₀).map T.mor₂ = 0
state_after: no goals
Theorem: MeasureTheory.Measure.le_map_apply
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: gcongr
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 α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
⊢ μ (f ⁻¹' s) ≤ μ (f ⁻¹' toMeasurable (map f μ) s)
state_after: case h.h
α : 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 α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
⊢ s ⊆ toMeasurable (map f μ) s

tactic: apply subset_toMeasurable
state_before: case h.h
α : 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 α
f✝ f : α → β
hf : AEMeasurable f μ
s : Set β
⊢ s ⊆ toMeasurable (map f μ) s
state_after: no goals
Theorem: SetTheory.PGame.Numeric.mul_pos
File: Mathlib/SetTheory/Surreal/Multiplication.lean

tactic: rw [lt_iff_game_lt]
state_before: x x₁ x₂ y y₁ y₂ : PGame
hx : x.Numeric
hx₁ : x₁.Numeric
hx₂ : x₂.Numeric
hy : y.Numeric
hy₁ : y₁.Numeric
hy₂ : y₂.Numeric
hp₁ : 0 < x₁
hp₂ : 0 < x₂
⊢ 0 < x₁ * x₂
state_after: x x₁ x₂ y y₁ y₂ : PGame
hx : x.Numeric
hx₁ : x₁.Numeric
hx₂ : x₂.Numeric
hy : y.Numeric
hy₁ : y₁.Numeric
hy₂ : y₂.Numeric
hp₁ : 0 < x₁
hp₂ : 0 < x₂
⊢ ⟦0⟧ < ⟦x₁ * x₂⟧

tactic: have := P3_of_lt_of_lt numeric_zero hx₁ numeric_zero hx₂ hp₁ hp₂
state_before: x x₁ x₂ y y₁ y₂ : PGame
hx : x.Numeric
hx₁ : x₁.Numeric
hx₂ : x₂.Numeric
hy : y.Numeric
hy₁ : y₁.Numeric
hy₂ : y₂.Numeric
hp₁ : 0 < x₁
hp₂ : 0 < x₂
⊢ ⟦0⟧ < ⟦x₁ * x₂⟧
state_after: x x₁ x₂ y y₁ y₂ : PGame
hx : x.Numeric
hx₁ : x₁.Numeric
hx₂ : x₂.Numeric
hy : y.Numeric
hy₁ : y₁.Numeric
hy₂ : y₂.Numeric
hp₁ : 0 < x₁
hp₂ : 0 < x₂
this : P3 0 x₁ 0 x₂
⊢ ⟦0⟧ < ⟦x₁ * x₂⟧

tactic: simp_rw [P3, quot_zero_mul, quot_mul_zero, add_lt_add_iff_left] at this
state_before: x x₁ x₂ y y₁ y₂ : PGame
hx : x.Numeric
hx₁ : x₁.Numeric
hx₂ : x₂.Numeric
hy : y.Numeric
hy₁ : y₁.Numeric
hy₂ : y₂.Numeric
hp₁ : 0 < x₁
hp₂ : 0 < x₂
this : P3 0 x₁ 0 x₂
⊢ ⟦0⟧ < ⟦x₁ * x₂⟧
state_after: x x₁ x₂ y y₁ y₂ : PGame
hx : x.Numeric
hx₁ : x₁.Numeric
hx₂ : x₂.Numeric
hy : y.Numeric
hy₁ : y₁.Numeric
hy₂ : y₂.Numeric
hp₁ : 0 < x₁
hp₂ : 0 < x₂
this : ⟦0⟧ < ⟦x₁ * x₂⟧
⊢ ⟦0⟧ < ⟦x₁ * x₂⟧

tactic: exact this
state_before: x x₁ x₂ y y₁ y₂ : PGame
hx : x.Numeric
hx₁ : x₁.Numeric
hx₂ : x₂.Numeric
hy : y.Numeric
hy₁ : y₁.Numeric
hy₂ : y₂.Numeric
hp₁ : 0 < x₁
hp₂ : 0 < x₂
this : ⟦0⟧ < ⟦x₁ * x₂⟧
⊢ ⟦0⟧ < ⟦x₁ * x₂⟧
state_after: no goals
Theorem: MeasureTheory.Measure.countable_meas_level_set_pos₀
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

tactic: have level_sets_disjoint : Pairwise (Disjoint on fun t : β => { a : α | g a = t }) :=
  fun s t hst => Disjoint.preimage g (disjoint_singleton.mpr hst)
state_before: α✝ : Type u_1
β✝ : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α✝
inst✝³ : MeasurableSpace β✝
μ✝ ν ν₁ ν₂ : Measure α✝
s t : Set α✝
α : Type u_5
β : Type u_6
x✝ : MeasurableSpace α
μ : Measure α
inst✝² : SFinite μ
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSingletonClass β
g : α → β
g_mble : NullMeasurable g μ
⊢ {t | 0 < μ {a | g a = t}}.Countable
state_after: α✝ : Type u_1
β✝ : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α✝
inst✝³ : MeasurableSpace β✝
μ✝ ν ν₁ ν₂ : Measure α✝
s t : Set α✝
α : Type u_5
β : Type u_6
x✝ : MeasurableSpace α
μ : Measure α
inst✝² : SFinite μ
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSingletonClass β
g : α → β
g_mble : NullMeasurable g μ
level_sets_disjoint : Pairwise (Disjoint on fun t => {a | g a = t})
⊢ {t | 0 < μ {a | g a = t}}.Countable

tactic: exact Measure.countable_meas_pos_of_disjoint_iUnion₀
  (fun b => g_mble (‹MeasurableSingletonClass β›.measurableSet_singleton b))
  ((fun _ _ h ↦ Disjoint.aedisjoint (level_sets_disjoint h)))
state_before: α✝ : Type u_1
β✝ : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α✝
inst✝³ : MeasurableSpace β✝
μ✝ ν ν₁ ν₂ : Measure α✝
s t : Set α✝
α : Type u_5
β : Type u_6
x✝ : MeasurableSpace α
μ : Measure α
inst✝² : SFinite μ
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSingletonClass β
g : α → β
g_mble : NullMeasurable g μ
level_sets_disjoint : Pairwise (Disjoint on fun t => {a | g a = t})
⊢ {t | 0 < μ {a | g a = t}}.Countable
state_after: no goals
Theorem: Function.mulSupport_mul_inv
File: Mathlib/Algebra/Group/Support.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝ : DivisionMonoid G
f g : α → G
⊢ (fun a b => a * b⁻¹) 1 1 = 1
state_after: no goals
Theorem: Prod.image_mk_segment_left
File: Mathlib/Analysis/Convex/Segment.lean

tactic: rw [segment_eq_image₂, segment_eq_image₂, image_image]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x₁ x₂ : E
y : F
⊢ (fun x => (x, y)) '' [x₁-[𝕜]x₂] = [(x₁, y)-[𝕜](x₂, y)]
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x₁ x₂ : E
y : F
⊢ (fun x => (x.1 • x₁ + x.2 • x₂, y)) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1} =
    (fun p => p.1 • (x₁, y) + p.2 • (x₂, y)) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}

tactic: refine EqOn.image_eq fun a ha ↦ ?_
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x₁ x₂ : E
y : F
⊢ (fun x => (x.1 • x₁ + x.2 • x₂, y)) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1} =
    (fun p => p.1 • (x₁, y) + p.2 • (x₂, y)) '' {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x₁ x₂ : E
y : F
a : 𝕜 × 𝕜
ha : a ∈ {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}
⊢ (a.1 • x₁ + a.2 • x₂, y) = a.1 • (x₁, y) + a.2 • (x₂, y)

tactic: simp [Convex.combo_self ha.2.2]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x₁ x₂ : E
y : F
a : 𝕜 × 𝕜
ha : a ∈ {p | 0 ≤ p.1 ∧ 0 ≤ p.2 ∧ p.1 + p.2 = 1}
⊢ (a.1 • x₁ + a.2 • x₂, y) = a.1 • (x₁, y) + a.2 • (x₂, y)
state_after: no goals
Theorem: Set.definable_univ
File: Mathlib/ModelTheory/Definability.lean

tactic: ext
state_before: M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s : Set (α → M)
⊢ univ = setOf ⊤.Realize
state_after: case h
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s : Set (α → M)
x✝ : α → M
⊢ x✝ ∈ univ ↔ x✝ ∈ setOf ⊤.Realize

tactic: simp
state_before: case h
M : Type w
A : Set M
L : Language
inst✝ : L.Structure M
α : Type u₁
β : Type u_1
B : Set M
s : Set (α → M)
x✝ : α → M
⊢ x✝ ∈ univ ↔ x✝ ∈ setOf ⊤.Realize
state_after: no goals
Theorem: segment_eq_Icc'
File: Mathlib/Analysis/Convex/Segment.lean

tactic: rcases le_total x y with h | h
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x✝ y✝ z x y : 𝕜
⊢ [x-[𝕜]y] = Icc (min x y) (max x y)
state_after: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x✝ y✝ z x y : 𝕜
h : x ≤ y
⊢ [x-[𝕜]y] = Icc (min x y) (max x y)

case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x✝ y✝ z x y : 𝕜
h : y ≤ x
⊢ [x-[𝕜]y] = Icc (min x y) (max x y)

tactic: rw [segment_eq_Icc h, max_eq_right h, min_eq_left h]
state_before: case inl
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x✝ y✝ z x y : 𝕜
h : x ≤ y
⊢ [x-[𝕜]y] = Icc (min x y) (max x y)
state_after: no goals

tactic: rw [segment_symm, segment_eq_Icc h, max_eq_left h, min_eq_right h]
state_before: case inr
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝ : LinearOrderedField 𝕜
x✝ y✝ z x y : 𝕜
h : y ≤ x
⊢ [x-[𝕜]y] = Icc (min x y) (max x y)
state_after: no goals
Theorem: IsUnit.mul_mul_div
File: Mathlib/Algebra/Group/Units.lean

tactic: simp [h]
state_before: α : Type u
M : Type u_1
N : Type u_2
inst✝ : DivisionMonoid α
a✝ b c a : α
h : IsUnit b
⊢ a * b * (1 / b) = a
state_after: no goals
Theorem: unop_map_list_prod
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: rw [map_list_prod f l, MulOpposite.unop_list_prod, List.map_map]
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
inst✝³ : Monoid M
inst✝² : Monoid N
F : Type u_8
inst✝¹ : FunLike F M Nᵐᵒᵖ
inst✝ : MonoidHomClass F M Nᵐᵒᵖ
f : F
l : List M
⊢ MulOpposite.unop (f l.prod) = (map (MulOpposite.unop ∘ ⇑f) l).reverse.prod
state_after: no goals
Theorem: inv_antitoneOn_Icc_right
File: Mathlib/Algebra/Order/Field/Basic.lean

tactic: convert sub_inv_antitoneOn_Icc_right ha
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : 0 < a
⊢ AntitoneOn (fun x => x⁻¹) (Set.Icc a b)
state_after: case h.e'_5.h.h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : 0 < a
x✝ : α
⊢ x✝ = x✝ - 0

tactic: exact (sub_zero _).symm
state_before: case h.e'_5.h.h.e'_3
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : LinearOrderedField α
a b c d : α
n : ℤ
ha : 0 < a
x✝ : α
⊢ x✝ = x✝ - 0
state_after: no goals
Theorem: isUnit_of_associated_mul
File: Mathlib/Algebra/Associated.lean

tactic: cases' h with a ha
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
p b : α
h : p * b ~ᵤ p
hp : p ≠ 0
⊢ IsUnit b
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
p b : α
hp : p ≠ 0
a : αˣ
ha : p * b * ↑a = p
⊢ IsUnit b

tactic: refine isUnit_of_mul_eq_one b a ((mul_right_inj' hp).mp ?_)
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
p b : α
hp : p ≠ 0
a : αˣ
ha : p * b * ↑a = p
⊢ IsUnit b
state_after: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
p b : α
hp : p ≠ 0
a : αˣ
ha : p * b * ↑a = p
⊢ p * (b * ↑a) = p * 1

tactic: rwa [← mul_assoc, mul_one]
state_before: case intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CancelCommMonoidWithZero α
p b : α
hp : p ≠ 0
a : αˣ
ha : p * b * ↑a = p
⊢ p * (b * ↑a) = p * 1
state_after: no goals
Theorem: Finpartition.IsEquipartition.card_part_le_average_add_one
File: Mathlib/Order/Partition/Equipartition.lean

tactic: rw [← P.sum_card_parts]
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
P : Finpartition s
hP : P.IsEquipartition
ht : t ∈ P.parts
⊢ t.card ≤ s.card / P.parts.card + 1
state_after: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
P : Finpartition s
hP : P.IsEquipartition
ht : t ∈ P.parts
⊢ t.card ≤ (∑ i ∈ P.parts, i.card) / P.parts.card + 1

tactic: exact Finset.EquitableOn.le_add_one hP ht
state_before: α : Type u_1
inst✝ : DecidableEq α
s t : Finset α
P : Finpartition s
hP : P.IsEquipartition
ht : t ∈ P.parts
⊢ t.card ≤ (∑ i ∈ P.parts, i.card) / P.parts.card + 1
state_after: no goals
Theorem: Real.Angle.toReal_neg_iff_sign_neg
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [sign, ← sin_toReal, sign_eq_neg_one_iff]
state_before: θ : Angle
⊢ θ.toReal < 0 ↔ θ.sign = -1
state_after: θ : Angle
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0

tactic: rcases lt_trichotomy θ.toReal 0 with (h | h | h)
state_before: θ : Angle
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0
state_after: case inl
θ : Angle
h : θ.toReal < 0
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0

case inr.inl
θ : Angle
h : θ.toReal = 0
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0

case inr.inr
θ : Angle
h : 0 < θ.toReal
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0

tactic: exact ⟨fun _ => Real.sin_neg_of_neg_of_neg_pi_lt h (neg_pi_lt_toReal θ), fun _ => h⟩
state_before: case inl
θ : Angle
h : θ.toReal < 0
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0
state_after: no goals

tactic: simp [h]
state_before: case inr.inl
θ : Angle
h : θ.toReal = 0
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0
state_after: no goals

tactic: exact
  ⟨fun hn => False.elim (h.asymm hn), fun hn =>
    False.elim (hn.not_le (sin_nonneg_of_nonneg_of_le_pi h.le (toReal_le_pi θ)))⟩
state_before: case inr.inr
θ : Angle
h : 0 < θ.toReal
⊢ θ.toReal < 0 ↔ Real.sin θ.toReal < 0
state_after: no goals
Theorem: Asymptotics.isBigOWith_top
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: rw [IsBigOWith_def, eventually_top]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
⊢ IsBigOWith c ⊤ f g ↔ ∀ (x : α), ‖f x‖ ≤ c * ‖g x‖
state_after: no goals
Theorem: Set.isWF_insert
File: Mathlib/Order/WellFoundedSet.lean

tactic: simp only [← singleton_union, isWF_union, isWF_singleton, true_and_iff]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
π : ι → Type u_5
inst✝¹ : Preorder α
inst✝ : Preorder β
s t : Set α
a : α
⊢ (insert a s).IsWF ↔ s.IsWF
state_after: no goals
Theorem: Filter.specializes_iff_le
File: Mathlib/Topology/Filter.lean

tactic: simp only [specializes_iff_closure_subset, Filter.closure_singleton, Ici_subset_Ici]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l₁ l₂ : Filter α
⊢ l₁ ⤳ l₂ ↔ l₁ ≤ l₂
state_after: no goals