1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Set.Ici_sSup
File: Mathlib/Data/Set/Lattice.lean

tactic: rw [sSup_eq_iSup, Ici_iSup₂]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
inst✝ : CompleteLattice α
s : Set α
⊢ Ici (sSup s) = ⋂ a ∈ s, Ici a
state_after: no goals
Theorem: MeasureTheory.lintegral_mono'
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [lintegral, lintegral]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m✝ : MeasurableSpace α
μ✝ ν✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
hμν : μ ≤ ν
f g : α → ℝ≥0∞
hfg : f ≤ g
⊢ ∫⁻ (a : α), f a ∂μ ≤ ∫⁻ (a : α), g a ∂ν
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m✝ : MeasurableSpace α
μ✝ ν✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
hμν : μ ≤ ν
f g : α → ℝ≥0∞
hfg : f ≤ g
⊢ ⨆ g, ⨆ (_ : ↑g ≤ fun a => f a), g.lintegral μ ≤ ⨆ g_1, ⨆ (_ : ↑g_1 ≤ fun a => g a), g_1.lintegral ν

tactic: exact iSup_mono fun φ => iSup_mono' fun hφ => ⟨le_trans hφ hfg, lintegral_mono (le_refl φ) hμν⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m✝ : MeasurableSpace α
μ✝ ν✝ : Measure α
m : MeasurableSpace α
μ ν : Measure α
hμν : μ ≤ ν
f g : α → ℝ≥0∞
hfg : f ≤ g
⊢ ⨆ g, ⨆ (_ : ↑g ≤ fun a => f a), g.lintegral μ ≤ ⨆ g_1, ⨆ (_ : ↑g_1 ≤ fun a => g a), g_1.lintegral ν
state_after: no goals
Theorem: Quiver.Hom.cast_cast
File: Mathlib/Combinatorics/Quiver/Cast.lean

tactic: subst_vars
state_before: U : Type u_1
inst✝ : Quiver U
u v u' v' u'' v'' : U
e : u ⟶ v
hu : u = u'
hv : v = v'
hu' : u' = u''
hv' : v' = v''
⊢ cast hu' hv' (cast hu hv e) = cast ⋯ ⋯ e
state_after: U : Type u_1
inst✝ : Quiver U
u'' v'' : U
e : u'' ⟶ v''
⊢ cast ⋯ ⋯ (cast ⋯ ⋯ e) = cast ⋯ ⋯ e

tactic: rfl
state_before: U : Type u_1
inst✝ : Quiver U
u'' v'' : U
e : u'' ⟶ v''
⊢ cast ⋯ ⋯ (cast ⋯ ⋯ e) = cast ⋯ ⋯ e
state_after: no goals
Theorem: ENNReal.tsum_const_smul
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simpa only [smul_one_mul] using @ENNReal.tsum_mul_left _ (a • (1 : ℝ≥0∞)) _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
f g : α → ℝ≥0∞
R : Type u_4
inst✝¹ : SMul R ℝ≥0∞
inst✝ : IsScalarTower R ℝ≥0∞ ℝ≥0∞
a : R
⊢ ∑' (i : α), a • f i = a • ∑' (i : α), f i
state_after: no goals
Theorem: CategoryTheory.Limits.coyonedaOpColimitIsoLimitCoyoneda_inv_comp_π
File: Mathlib/CategoryTheory/Limits/IndYoneda.lean

tactic: rw [← coyonedaOpColimitIsoLimitCoyoneda_hom_comp_π, ← Category.assoc,
  Iso.inv_hom_id, Category.id_comp]
state_before: C : Type u₁
inst✝² : Category.{u₂, u₁} C
I : Type v₁
inst✝¹ : Category.{v₂, v₁} I
F : I ⥤ C
inst✝ : HasColimit F
i : I
⊢ (coyonedaOpColimitIsoLimitCoyoneda F).inv ≫ coyoneda.map (colimit.ι F i).op = limit.π (F.op ⋙ coyoneda) { unop := i }
state_after: no goals
Theorem: CategoryTheory.Linear.comp_units_smul
File: Mathlib/CategoryTheory/Linear/Basic.lean

tactic: apply Linear.comp_smul
state_before: C : Type u
inst✝³ : Category.{v, u} C
inst✝² : Preadditive C
R : Type w
inst✝¹ : Semiring R
inst✝ : Linear R C
X Y Z : C
f : X ⟶ Y
r : Rˣ
g : Y ⟶ Z
⊢ f ≫ (r • g) = r • f ≫ g
state_after: no goals
Theorem: mem_list_primes_of_dvd_prod
File: Mathlib/Data/List/Prime.lean

tactic: obtain ⟨x, hx1, hx2⟩ := hp.dvd_prod_iff.mp hpL
state_before: M : Type u_1
inst✝¹ : CancelCommMonoidWithZero M
inst✝ : Unique Mˣ
p : M
hp : Prime p
L : List M
hL : ∀ q ∈ L, Prime q
hpL : p ∣ L.prod
⊢ p ∈ L
state_after: case intro.intro
M : Type u_1
inst✝¹ : CancelCommMonoidWithZero M
inst✝ : Unique Mˣ
p : M
hp : Prime p
L : List M
hL : ∀ q ∈ L, Prime q
hpL : p ∣ L.prod
x : M
hx1 : x ∈ L
hx2 : p ∣ x
⊢ p ∈ L

tactic: rwa [(prime_dvd_prime_iff_eq hp (hL x hx1)).mp hx2]
state_before: case intro.intro
M : Type u_1
inst✝¹ : CancelCommMonoidWithZero M
inst✝ : Unique Mˣ
p : M
hp : Prime p
L : List M
hL : ∀ q ∈ L, Prime q
hpL : p ∣ L.prod
x : M
hx1 : x ∈ L
hx2 : p ∣ x
⊢ p ∈ L
state_after: no goals
Theorem: Finset.image₂_empty_right
File: Mathlib/Data/Finset/NAry.lean

tactic: simp
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
⊢ ↑(image₂ f s ∅) = ↑∅
state_after: no goals
Theorem: ZMod.val_lt
File: Mathlib/Data/ZMod/Basic.lean

tactic: cases n
state_before: n : ℕ
inst✝ : NeZero n
a : ZMod n
⊢ a.val < n
state_after: case zero
inst✝ : NeZero 0
a : ZMod 0
⊢ a.val < 0

case succ
n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
a : ZMod (n✝ + 1)
⊢ a.val < n✝ + 1

tactic: exact Fin.is_lt a
state_before: case succ
n✝ : ℕ
inst✝ : NeZero (n✝ + 1)
a : ZMod (n✝ + 1)
⊢ a.val < n✝ + 1
state_after: no goals

tactic: cases NeZero.ne 0 rfl
state_before: case zero
inst✝ : NeZero 0
a : ZMod 0
⊢ a.val < 0
state_after: no goals
Theorem: Finset.powerset_infs_powerset_self
File: Mathlib/Data/Finset/Sups.lean

tactic: simp [← powerset_inter]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
𝒜 ℬ : Finset (Finset α)
s✝ t : Finset α
a : α
s : Finset α
⊢ s.powerset ⊼ s.powerset = s.powerset
state_after: no goals
Theorem: LieAlgebra.abelian_iff_derived_succ_eq_bot
File: Mathlib/Algebra/Lie/Solvable.lean

tactic: rw [add_comm, derivedSeriesOfIdeal_add I 1 k, abelian_iff_derived_one_eq_bot]
state_before: R : Type u
L : Type v
M : Type w
L' : Type w₁
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
I✝ J : LieIdeal R L
f : L' →ₗ⁅R⁆ L
I : LieIdeal R L
k : ℕ
⊢ IsLieAbelian ↥↑(D k I) ↔ D (k + 1) I = ⊥
state_after: no goals
Theorem: Function.Periodic.nsmul
File: Mathlib/Algebra/Periodic.lean

tactic: induction n <;> simp_all [add_nsmul, ← add_assoc, zero_nsmul]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
f g : α → β
c c₁ c₂ x : α
inst✝ : AddMonoid α
h : Periodic f c
n : ℕ
⊢ Periodic f (n • c)
state_after: no goals
Theorem: IsRelPrime.pow_left_iff
File: Mathlib/RingTheory/Coprime/Lemmas.lean

tactic: refine ⟨fun h ↦ ?_, IsRelPrime.pow_left⟩
state_before: α : Type u_1
I : Type ?u.62131
inst✝¹ : CommMonoid α
inst✝ : DecompositionMonoid α
x y z : α
s : I → α
t : Finset I
m n : ℕ
hm : 0 < m
⊢ IsRelPrime (x ^ m) y ↔ IsRelPrime x y
state_after: α : Type u_1
I : Type ?u.62131
inst✝¹ : CommMonoid α
inst✝ : DecompositionMonoid α
x y z : α
s : I → α
t : Finset I
m n : ℕ
hm : 0 < m
h : IsRelPrime (x ^ m) y
⊢ IsRelPrime x y

tactic: rw [← Finset.card_range m, ← Finset.prod_const] at h
state_before: α : Type u_1
I : Type ?u.62131
inst✝¹ : CommMonoid α
inst✝ : DecompositionMonoid α
x y z : α
s : I → α
t : Finset I
m n : ℕ
hm : 0 < m
h : IsRelPrime (x ^ m) y
⊢ IsRelPrime x y
state_after: α : Type u_1
I : Type ?u.62131
inst✝¹ : CommMonoid α
inst✝ : DecompositionMonoid α
x y z : α
s : I → α
t : Finset I
m n : ℕ
hm : 0 < m
h : IsRelPrime (∏ _x ∈ Finset.range m, x) y
⊢ IsRelPrime x y

tactic: exact h.of_prod_left 0 (Finset.mem_range.mpr hm)
state_before: α : Type u_1
I : Type ?u.62131
inst✝¹ : CommMonoid α
inst✝ : DecompositionMonoid α
x y z : α
s : I → α
t : Finset I
m n : ℕ
hm : 0 < m
h : IsRelPrime (∏ _x ∈ Finset.range m, x) y
⊢ IsRelPrime x y
state_after: no goals
Theorem: TensorProduct.one_gradedMul
File: Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean

tactic: simpa only [RingHom.map_one, one_smul] using algebraMap_gradedMul 𝒜 ℬ 1 x
state_before: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
𝒜 : ι → Type u_5
ℬ : ι → Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : (i : ι) → AddCommGroup (𝒜 i)
inst✝⁶ : (i : ι) → AddCommGroup (ℬ i)
inst✝⁵ : (i : ι) → Module R (𝒜 i)
inst✝⁴ : (i : ι) → Module R (ℬ i)
inst✝³ : DirectSum.GRing 𝒜
inst✝² : DirectSum.GRing ℬ
inst✝¹ : DirectSum.GAlgebra R 𝒜
inst✝ : DirectSum.GAlgebra R ℬ
x : (⨁ (i : ι), 𝒜 i) ⊗[R] ⨁ (i : ι), ℬ i
⊢ ((gradedMul R 𝒜 ℬ) 1) x = x
state_after: no goals
Theorem: Monoid.Coprod.range_inl_sup_range_inr
File: Mathlib/GroupTheory/Coprod/Basic.lean

tactic: rw [← closure_range_inl_union_inr, Subgroup.closure_union, ← MonoidHom.coe_range,
  ← MonoidHom.coe_range, Subgroup.closure_eq, Subgroup.closure_eq]
state_before: G : Type u_1
H : Type u_2
inst✝¹ : Group G
inst✝ : Group H
⊢ inl.range ⊔ inr.range = ⊤
state_after: no goals
Theorem: EMetric.mem_ball_self
File: Mathlib/Topology/EMetricSpace/Basic.lean

tactic: rwa [mem_ball, edist_self]
state_before: α : Type u
β : Type v
X : Type u_1
inst✝ : PseudoEMetricSpace α
x y z : α
ε ε₁ ε₂ : ℝ≥0∞
s t : Set α
h : 0 < ε
⊢ x ∈ ball x ε
state_after: no goals
Theorem: Finset.weightedVSubOfPoint_sdiff_sub
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: rw [map_neg, sub_neg_eq_add, s.weightedVSubOfPoint_sdiff h]
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
S : AffineSpace V P
ι : Type u_4
s : Finset ι
ι₂ : Type u_5
s₂✝ : Finset ι₂
inst✝ : DecidableEq ι
s₂ : Finset ι
h : s₂ ⊆ s
w : ι → k
p : ι → P
b : P
⊢ ((s \ s₂).weightedVSubOfPoint p b) w - (s₂.weightedVSubOfPoint p b) (-w) = (s.weightedVSubOfPoint p b) w
state_after: no goals
Theorem: UpperHalfPlane.neg_smul
File: Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean

tactic: ext1
state_before: g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ -g • z = g • z
state_after: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ ↑(-g • z) = ↑(g • z)

tactic: change _ / _ = _ / _
state_before: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ ↑(-g • z) = ↑(g • z)
state_after: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ num (-g) z / denom (-g) z = num g z / denom g z

tactic: field_simp [denom_ne_zero]
state_before: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ num (-g) z / denom (-g) z = num g z / denom g z
state_after: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ num (-g) z * denom g z = num g z * denom (-g) z

tactic: simp only [num, denom, Complex.ofReal_neg, neg_mul, GLPos.coe_neg_GL, Units.val_neg, neg_apply]
state_before: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ num (-g) z * denom g z = num g z * denom (-g) z
state_after: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ (-(↑(↑↑g 0 0) * ↑z) + -↑(↑↑g 0 1)) * (↑(↑↑g 1 0) * ↑z + ↑(↑↑g 1 1)) =
    (↑(↑↑g 0 0) * ↑z + ↑(↑↑g 0 1)) * (-(↑(↑↑g 1 0) * ↑z) + -↑(↑↑g 1 1))

tactic: ring_nf
state_before: case h
g : ↥GL(2, ℝ)⁺
z : ℍ
⊢ (-(↑(↑↑g 0 0) * ↑z) + -↑(↑↑g 0 1)) * (↑(↑↑g 1 0) * ↑z + ↑(↑↑g 1 1)) =
    (↑(↑↑g 0 0) * ↑z + ↑(↑↑g 0 1)) * (-(↑(↑↑g 1 0) * ↑z) + -↑(↑↑g 1 1))
state_after: no goals
Theorem: Finset.fold_insert_idem
File: Mathlib/Data/Finset/Fold.lean

tactic: by_cases h : a ∈ s
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : DecidableEq α
hi : Std.IdempotentOp op
⊢ fold op b f (insert a s) = op (f a) (fold op b f s)
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : DecidableEq α
hi : Std.IdempotentOp op
h : a ∈ s
⊢ fold op b f (insert a s) = op (f a) (fold op b f s)

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : DecidableEq α
hi : Std.IdempotentOp op
h : a ∉ s
⊢ fold op b f (insert a s) = op (f a) (fold op b f s)

tactic: rw [← insert_erase h]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : DecidableEq α
hi : Std.IdempotentOp op
h : a ∈ s
⊢ fold op b f (insert a s) = op (f a) (fold op b f s)
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : DecidableEq α
hi : Std.IdempotentOp op
h : a ∈ s
⊢ fold op b f (insert a (insert a (s.erase a))) = op (f a) (fold op b f (insert a (s.erase a)))

tactic: simp [← ha.assoc, hi.idempotent]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : DecidableEq α
hi : Std.IdempotentOp op
h : a ∈ s
⊢ fold op b f (insert a (insert a (s.erase a))) = op (f a) (fold op b f (insert a (s.erase a)))
state_after: no goals

tactic: apply fold_insert h
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
op : β → β → β
hc : Std.Commutative op
ha : Std.Associative op
f : α → β
b : β
s : Finset α
a : α
inst✝ : DecidableEq α
hi : Std.IdempotentOp op
h : a ∉ s
⊢ fold op b f (insert a s) = op (f a) (fold op b f s)
state_after: no goals
Theorem: ProperCone.toPointedCone_injective
File: Mathlib/Analysis/Convex/Cone/Proper.lean

tactic: cases S
state_before: 𝕜 : Type u_1
inst✝³ : OrderedSemiring 𝕜
E : Type u_2
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
S T : ProperCone 𝕜 E
h : ↑S = ↑T
⊢ S = T
state_after: case mk
𝕜 : Type u_1
inst✝³ : OrderedSemiring 𝕜
E : Type u_2
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
T : ProperCone 𝕜 E
toSubmodule✝ : Submodule { c // 0 ≤ c } E
isClosed'✝ : IsClosed toSubmodule✝.carrier
h : ↑{ toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ } = ↑T
⊢ { toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ } = T

tactic: cases T
state_before: case mk
𝕜 : Type u_1
inst✝³ : OrderedSemiring 𝕜
E : Type u_2
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
T : ProperCone 𝕜 E
toSubmodule✝ : Submodule { c // 0 ≤ c } E
isClosed'✝ : IsClosed toSubmodule✝.carrier
h : ↑{ toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ } = ↑T
⊢ { toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ } = T
state_after: case mk.mk
𝕜 : Type u_1
inst✝³ : OrderedSemiring 𝕜
E : Type u_2
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
toSubmodule✝¹ : Submodule { c // 0 ≤ c } E
isClosed'✝¹ : IsClosed toSubmodule✝¹.carrier
toSubmodule✝ : Submodule { c // 0 ≤ c } E
isClosed'✝ : IsClosed toSubmodule✝.carrier
h :
  ↑{ toSubmodule := toSubmodule✝¹, isClosed' := isClosed'✝¹ } =
    ↑{ toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ }
⊢ { toSubmodule := toSubmodule✝¹, isClosed' := isClosed'✝¹ } = { toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ }

tactic: congr
state_before: case mk.mk
𝕜 : Type u_1
inst✝³ : OrderedSemiring 𝕜
E : Type u_2
inst✝² : AddCommMonoid E
inst✝¹ : TopologicalSpace E
inst✝ : Module 𝕜 E
toSubmodule✝¹ : Submodule { c // 0 ≤ c } E
isClosed'✝¹ : IsClosed toSubmodule✝¹.carrier
toSubmodule✝ : Submodule { c // 0 ≤ c } E
isClosed'✝ : IsClosed toSubmodule✝.carrier
h :
  ↑{ toSubmodule := toSubmodule✝¹, isClosed' := isClosed'✝¹ } =
    ↑{ toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ }
⊢ { toSubmodule := toSubmodule✝¹, isClosed' := isClosed'✝¹ } = { toSubmodule := toSubmodule✝, isClosed' := isClosed'✝ }
state_after: no goals
Theorem: hasGradientWithinAt_univ
File: Mathlib/Analysis/Calculus/Gradient/Basic.lean

tactic: rw [hasGradientWithinAt_iff_hasFDerivWithinAt, hasGradientAt_iff_hasFDerivAt]
state_before: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
⊢ HasGradientWithinAt f f' univ x ↔ HasGradientAt f f' x
state_after: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
⊢ HasFDerivWithinAt f ((toDual 𝕜 F) f') univ x ↔ HasFDerivAt f ((toDual 𝕜 F) f') x

tactic: exact hasFDerivWithinAt_univ
state_before: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
⊢ HasFDerivWithinAt f ((toDual 𝕜 F) f') univ x ↔ HasFDerivAt f ((toDual 𝕜 F) f') x
state_after: no goals
Theorem: Ordinal.dvd_add_iff
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: rw [mul_sub, ← e, add_sub_cancel]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a c b : Ordinal.{u_4}
x✝ : a ∣ a * b + c
d : Ordinal.{u_4}
e : a * b + c = a * d
⊢ c = a * (d - b)
state_after: no goals

tactic: rw [e, ← mul_add]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a c b : Ordinal.{u_4}
x✝ : a ∣ c
d : Ordinal.{u_4}
e : c = a * d
⊢ a ∣ a * b + c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a c b : Ordinal.{u_4}
x✝ : a ∣ c
d : Ordinal.{u_4}
e : c = a * d
⊢ a ∣ a * (b + d)

tactic: apply dvd_mul_right
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
a c b : Ordinal.{u_4}
x✝ : a ∣ c
d : Ordinal.{u_4}
e : c = a * d
⊢ a ∣ a * (b + d)
state_after: no goals
Theorem: groupCohomology.twoCocycles_map_one_snd
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

tactic: have := (mem_twoCocycles_iff f.1).1 f.2 g 1 1
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
f : ↥(twoCocycles A)
g : G
⊢ ↑f (g, 1) = (A.ρ g) (↑f (1, 1))
state_after: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
f : ↥(twoCocycles A)
g : G
this : ↑f (g * 1, 1) + ↑f (g, 1) = (A.ρ g) (↑f (1, 1)) + ↑f (g, 1 * 1)
⊢ ↑f (g, 1) = (A.ρ g) (↑f (1, 1))

tactic: simpa only [mul_one, add_left_inj, this]
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
f : ↥(twoCocycles A)
g : G
this : ↑f (g * 1, 1) + ↑f (g, 1) = (A.ρ g) (↑f (1, 1)) + ↑f (g, 1 * 1)
⊢ ↑f (g, 1) = (A.ρ g) (↑f (1, 1))
state_after: no goals
Theorem: multiplicity.pow_sub_pow_of_prime
File: Mathlib/NumberTheory/Multiplicity.lean

tactic: rw [← geom_sum₂_mul, multiplicity.mul hp, multiplicity_eq_zero.2 (not_dvd_geom_sum₂ hp hxy hx hn),
  zero_add]
state_before: R : Type u_1
n✝ : ℕ
inst✝² : CommRing R
a b x✝ y✝ : R
p✝ : ℕ
inst✝¹ : IsDomain R
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
p : R
hp : Prime p
x y : R
hxy : p ∣ x - y
hx : ¬p ∣ x
n : ℕ
hn : ¬p ∣ ↑n
⊢ multiplicity p (x ^ n - y ^ n) = multiplicity p (x - y)
state_after: no goals
Theorem: CliffordAlgebra.contractLeft_algebraMap
File: Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean

tactic: refine (foldr'_algebraMap _ _ ?_ _ _).trans <| smul_zero _
state_before: R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
d d' : Module.Dual R M
r : R
⊢ (contractLeft d) ((algebraMap R (CliffordAlgebra Q)) r) = 0
state_after: R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
d d' : Module.Dual R M
r : R
⊢ ∀ (m : M) (x fx : CliffordAlgebra Q),
    ((contractLeftAux Q d) m) ((ι Q) m * x, ((contractLeftAux Q d) m) (x, fx)) = Q m • fx

tactic: exact fun m x fx ↦ contractLeftAux_contractLeftAux Q d m x fx
state_before: R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
d d' : Module.Dual R M
r : R
⊢ ∀ (m : M) (x fx : CliffordAlgebra Q),
    ((contractLeftAux Q d) m) ((ι Q) m * x, ((contractLeftAux Q d) m) (x, fx)) = Q m • fx
state_after: no goals
Theorem: nhdsWithin_eq_comap_uniformity_of_mem
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: simp [nhdsWithin, nhds_eq_comap_uniformity, hx]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
x : α
T : Set α
hx : x ∈ T
S : Set α
⊢ 𝓝[S] x = comap (Prod.mk x) (𝓤 α ⊓ 𝓟 (T ×ˢ S))
state_after: no goals
Theorem: CategoryTheory.Limits.Types.Limit.π_mk
File: Mathlib/CategoryTheory/Limits/Types.lean

tactic: dsimp [Limit.mk]
state_before: J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasLimit F
x : (j : J) → F.obj j
h : ∀ (j j' : J) (f : j ⟶ j'), F.map f (x j) = x j'
j : J
⊢ limit.π F j (mk F x h) = x j
state_after: J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasLimit F
x : (j : J) → F.obj j
h : ∀ (j j' : J) (f : j ⟶ j'), F.map f (x j) = x j'
j : J
⊢ limit.π F j ((limitEquivSections F).symm ⟨x, ⋯⟩) = x j

tactic: simp
state_before: J : Type v
inst✝¹ : Category.{w, v} J
F : J ⥤ Type u
inst✝ : HasLimit F
x : (j : J) → F.obj j
h : ∀ (j j' : J) (f : j ⟶ j'), F.map f (x j) = x j'
j : J
⊢ limit.π F j ((limitEquivSections F).symm ⟨x, ⋯⟩) = x j
state_after: no goals
Theorem: Filter.tendsto_comp_val_Iio_atBot
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [← map_val_Iio_atBot a, tendsto_map'_iff, Function.comp_def]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : SemilatticeInf α
inst✝ : NoMinOrder α
a : α
f : α → β
l : Filter β
⊢ Tendsto (fun x => f ↑x) atBot l ↔ Tendsto f atBot l
state_after: no goals
Theorem: inseparable_iff_forall_open
File: Mathlib/Topology/Inseparable.lean

tactic: simp only [inseparable_iff_specializes_and, specializes_iff_forall_open, ← forall_and, ← iff_def,
  Iff.comm]
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
⊢ (x ~ᵢ y) ↔ ∀ (s : Set X), IsOpen s → (x ∈ s ↔ y ∈ s)
state_after: no goals
Theorem: List.unzip_left
File: Mathlib/Data/List/Zip.lean

tactic: simp only [unzip_eq_map]
state_before: α : Type u
β : Type u_1
γ : Type u_2
δ : Type u_3
ε : Type u_4
l : List (α × β)
⊢ l.unzip.1 = map Prod.fst l
state_after: no goals
Theorem: Matrix.zero_dotProduct
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [dotProduct]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : Fintype m
inst✝¹ : Fintype n
inst✝ : NonUnitalNonAssocSemiring α
u v w : m → α
x y : n → α
⊢ 0 ⬝ᵥ v = 0
state_after: no goals