1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: lie_jacobi
File: Mathlib/Algebra/Lie/Basic.lean

tactic: rw [← neg_neg ⁅x, y⁆, lie_neg z, lie_skew y x, ← lie_skew, lie_lie]
state_before: R : Type u
L : Type v
M : Type w
N : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
t : R
x y z : L
m n : M
⊢ ⁅x, ⁅y, z⁆⁆ + ⁅y, ⁅z, x⁆⁆ + ⁅z, ⁅x, y⁆⁆ = 0
state_after: R : Type u
L : Type v
M : Type w
N : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
t : R
x y z : L
m n : M
⊢ -(⁅y, ⁅z, x⁆⁆ - ⁅z, ⁅y, x⁆⁆) + ⁅y, ⁅z, x⁆⁆ + -⁅z, ⁅y, x⁆⁆ = 0

tactic: abel
state_before: R : Type u
L : Type v
M : Type w
N : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup N
inst✝² : Module R N
inst✝¹ : LieRingModule L N
inst✝ : LieModule R L N
t : R
x y z : L
m n : M
⊢ -(⁅y, ⁅z, x⁆⁆ - ⁅z, ⁅y, x⁆⁆) + ⁅y, ⁅z, x⁆⁆ + -⁅z, ⁅y, x⁆⁆ = 0
state_after: no goals
Theorem: Equiv.swapCore_self
File: Mathlib/Logic/Equiv/Basic.lean

tactic: unfold swapCore
state_before: α : Sort u_1
inst✝ : DecidableEq α
r a : α
⊢ swapCore a a r = r
state_after: α : Sort u_1
inst✝ : DecidableEq α
r a : α
⊢ (if r = a then a else if r = a then a else r) = r

tactic: split_ifs <;> simp [*]
state_before: α : Sort u_1
inst✝ : DecidableEq α
r a : α
⊢ (if r = a then a else if r = a then a else r) = r
state_after: no goals
Theorem: Option.map_map₂
File: Mathlib/Data/Option/NAry.lean

tactic: cases a <;> cases b <;> rfl
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
f✝ : α → β → γ
a : Option α
b : Option β
c : Option γ
f : α → β → γ
g : γ → δ
⊢ Option.map g (map₂ f a b) = map₂ (fun a b => g (f a b)) a b
state_after: no goals
Theorem: NumberField.mixedEmbedding.convexBodySum_convex
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: refine Convex_subadditive_le (fun _ _ => convexBodySumFun_add_le _ _) (fun c x h => ?_) B
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B : ℝ
⊢ Convex ℝ (convexBodySum K B)
state_after: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B c : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
h : 0 ≤ c
⊢ convexBodySumFun (c • x) ≤ c * convexBodySumFun x

tactic: convert le_of_eq (convexBodySumFun_smul c x)
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B c : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
h : 0 ≤ c
⊢ convexBodySumFun (c • x) ≤ c * convexBodySumFun x
state_after: case h.e'_4.h.e'_5
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B c : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
h : 0 ≤ c
⊢ c = |c|

tactic: exact (abs_eq_self.mpr h).symm
state_before: case h.e'_4.h.e'_5
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
B c : ℝ
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
h : 0 ≤ c
⊢ c = |c|
state_after: no goals
Theorem: Complex.log_exp
File: Mathlib/Analysis/SpecialFunctions/Complex/Log.lean

tactic: rw [log, abs_exp, Real.log_exp, exp_eq_exp_re_mul_sin_add_cos, ← ofReal_exp,
  arg_mul_cos_add_sin_mul_I (Real.exp_pos _) ⟨hx₁, hx₂⟩, re_add_im]
state_before: x : ℂ
hx₁ : -π < x.im
hx₂ : x.im ≤ π
⊢ log (cexp x) = x
state_after: no goals
Theorem: Equiv.subtypeEquiv_symm
File: Mathlib/Logic/Equiv/Basic.lean

tactic: convert (h <| e.symm a).symm
state_before: α : Sort ?u.56789
β : Sort ?u.56793
p : α → Prop
q : β → Prop
e : α ≃ β
h : ∀ (a : α), p a ↔ q (e a)
a : β
⊢ q a ↔ p (e.symm a)
state_after: case h.e'_1.h.e'_1
α : Sort ?u.56789
β : Sort ?u.56793
p : α → Prop
q : β → Prop
e : α ≃ β
h : ∀ (a : α), p a ↔ q (e a)
a : β
⊢ a = e (e.symm a)

tactic: exact (e.apply_symm_apply a).symm
state_before: case h.e'_1.h.e'_1
α : Sort ?u.56789
β : Sort ?u.56793
p : α → Prop
q : β → Prop
e : α ≃ β
h : ∀ (a : α), p a ↔ q (e a)
a : β
⊢ a = e (e.symm a)
state_after: no goals
Theorem: Set.diag_image
File: Mathlib/Data/Set/Prod.lean

tactic: rw [← range_diag, ← image_preimage_eq_range_inter, diag_preimage_prod_self]
state_before: α : Type u_1
s✝ t s : Set α
⊢ (fun x => (x, x)) '' s = diagonal α ∩ s ×ˢ s
state_after: no goals
Theorem: measurable_div_const'
File: Mathlib/MeasureTheory/Group/Arithmetic.lean

tactic: simp_rw [div_eq_mul_inv, measurable_mul_const]
state_before: α : Type u_1
G : Type u_2
inst✝² : DivInvMonoid G
inst✝¹ : MeasurableSpace G
inst✝ : MeasurableMul G
g : G
⊢ Measurable fun h => h / g
state_after: no goals
Theorem: Set.star_inv'
File: Mathlib/Algebra/Star/Pointwise.lean

tactic: ext
state_before: α : Type u_1
s✝ t : Set α
a : α
inst✝¹ : DivisionSemiring α
inst✝ : StarRing α
s : Set α
⊢ s⁻¹⋆ = s⋆⁻¹
state_after: case h
α : Type u_1
s✝ t : Set α
a : α
inst✝¹ : DivisionSemiring α
inst✝ : StarRing α
s : Set α
x✝ : α
⊢ x✝ ∈ s⁻¹⋆ ↔ x✝ ∈ s⋆⁻¹

tactic: simp only [mem_star, mem_inv, star_inv']
state_before: case h
α : Type u_1
s✝ t : Set α
a : α
inst✝¹ : DivisionSemiring α
inst✝ : StarRing α
s : Set α
x✝ : α
⊢ x✝ ∈ s⁻¹⋆ ↔ x✝ ∈ s⋆⁻¹
state_after: no goals
Theorem: AbsoluteValue.map_sub
File: Mathlib/Algebra/Order/AbsoluteValue.lean

tactic: rw [← neg_sub, abv.map_neg]
state_before: ι : Type u_1
α : Type u_2
R : Type u_3
S : Type u_4
inst✝² : OrderedCommRing S
inst✝¹ : Ring R
abv : AbsoluteValue R S
inst✝ : NoZeroDivisors S
a b : R
⊢ abv (a - b) = abv (b - a)
state_after: no goals
Theorem: measurableSet_integrable
File: Mathlib/MeasureTheory/Constructions/Prod/Integral.lean

tactic: simp_rw [Integrable, hf.of_uncurry_left.aestronglyMeasurable, true_and_iff]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | Integrable (f x) ν}
state_after: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | HasFiniteIntegral (f x) ν}

tactic: exact measurableSet_lt (Measurable.lintegral_prod_right hf.ennnorm) measurable_const
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
E : Type u_6
inst✝⁶ : MeasurableSpace α
inst✝⁵ : MeasurableSpace α'
inst✝⁴ : MeasurableSpace β
inst✝³ : MeasurableSpace β'
inst✝² : MeasurableSpace γ
μ μ' : Measure α
ν ν' : Measure β
τ : Measure γ
inst✝¹ : NormedAddCommGroup E
inst✝ : SigmaFinite ν
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | HasFiniteIntegral (f x) ν}
state_after: no goals
Theorem: Real.Angle.sin_sub_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ (θ - ↑(π / 2)).sin = -θ.cos
state_after: case h
x✝ : ℝ
⊢ (↑x✝ - ↑(π / 2)).sin = -(↑x✝).cos

tactic: exact Real.sin_sub_pi_div_two _
state_before: case h
x✝ : ℝ
⊢ (↑x✝ - ↑(π / 2)).sin = -(↑x✝).cos
state_after: no goals
Theorem: Set.Icc_self
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: simp [Icc, le_antisymm_iff, and_comm]
state_before: α : Type u_1
β : Type u_2
inst✝ : PartialOrder α
a✝ b c a : α
⊢ ∀ (x : α), x ∈ Icc a a ↔ x ∈ {a}
state_after: no goals
Theorem: Set.uIcc_self
File: Mathlib/Order/Interval/Set/UnorderedInterval.lean

tactic: simp [uIcc]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Lattice α
inst✝ : Lattice β
a a₁ a₂ b b₁ b₂ c x : α
⊢ [[a, a]] = {a}
state_after: no goals
Theorem: Basis.abs_det_adjustToOrientation
File: Mathlib/LinearAlgebra/Orientation.lean

tactic: cases' e.det_adjustToOrientation x with h h <;> simp [h]
state_before: R : Type u_1
inst✝⁵ : LinearOrderedCommRing R
M : Type u_2
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
ι : Type u_3
inst✝² : Fintype ι
inst✝¹ : DecidableEq ι
inst✝ : Nonempty ι
e : Basis ι R M
x : Orientation R M ι
v : ι → M
⊢ |(e.adjustToOrientation x).det v| = |e.det v|
state_after: no goals
Theorem: CategoryTheory.Limits.pullbackIsoUnopPushout_hom_inl
File: Mathlib/CategoryTheory/Limits/Opposites.lean

tactic: apply Quiver.Hom.unop_inj
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u₂
inst✝² : Category.{v₂, u₂} J
X✝ : Type v₂
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasPullback f g
inst✝ : HasPushout f.op g.op
⊢ pushout.inl ≫ (pullbackIsoUnopPushout f g).hom.op = pullback.fst.op
state_after: case a
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u₂
inst✝² : Category.{v₂, u₂} J
X✝ : Type v₂
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasPullback f g
inst✝ : HasPushout f.op g.op
⊢ (pushout.inl ≫ (pullbackIsoUnopPushout f g).hom.op).unop = pullback.fst.op.unop

tactic: dsimp
state_before: case a
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u₂
inst✝² : Category.{v₂, u₂} J
X✝ : Type v₂
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasPullback f g
inst✝ : HasPushout f.op g.op
⊢ (pushout.inl ≫ (pullbackIsoUnopPushout f g).hom.op).unop = pullback.fst.op.unop
state_after: case a
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u₂
inst✝² : Category.{v₂, u₂} J
X✝ : Type v₂
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasPullback f g
inst✝ : HasPushout f.op g.op
⊢ (pullbackIsoUnopPushout f g).hom ≫ pushout.inl.unop = pullback.fst

tactic: rw [← pullbackIsoUnopPushout_inv_fst, Iso.hom_inv_id_assoc]
state_before: case a
C : Type u₁
inst✝³ : Category.{v₁, u₁} C
J : Type u₂
inst✝² : Category.{v₂, u₂} J
X✝ : Type v₂
X Y Z : C
f : X ⟶ Z
g : Y ⟶ Z
inst✝¹ : HasPullback f g
inst✝ : HasPushout f.op g.op
⊢ (pullbackIsoUnopPushout f g).hom ≫ pushout.inl.unop = pullback.fst
state_after: no goals
Theorem: CategoryTheory.MonoidalCategory.hom_inv_id_tensor'
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: rw [← tensor_comp, IsIso.hom_inv_id]
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝³ : MonoidalCategory C✝
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
U V✝ W✝ X✝ Y✝ Z✝ V W X Y Z : C
f : V ⟶ W
inst✝ : IsIso f
g : X ⟶ Y
h : Y ⟶ Z
⊢ (f ⊗ g) ≫ (inv f ⊗ h) = (𝟙 V ⊗ g) ≫ (𝟙 V ⊗ h)
state_after: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝³ : MonoidalCategory C✝
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
U V✝ W✝ X✝ Y✝ Z✝ V W X Y Z : C
f : V ⟶ W
inst✝ : IsIso f
g : X ⟶ Y
h : Y ⟶ Z
⊢ 𝟙 V ⊗ g ≫ h = (𝟙 V ⊗ g) ≫ (𝟙 V ⊗ h)

tactic: simp [id_tensorHom]
state_before: C✝ : Type u
𝒞 : Category.{v, u} C✝
inst✝³ : MonoidalCategory C✝
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : MonoidalCategory C
U V✝ W✝ X✝ Y✝ Z✝ V W X Y Z : C
f : V ⟶ W
inst✝ : IsIso f
g : X ⟶ Y
h : Y ⟶ Z
⊢ 𝟙 V ⊗ g ≫ h = (𝟙 V ⊗ g) ≫ (𝟙 V ⊗ h)
state_after: no goals
Theorem: WeierstrassCurve.baseChange_Ψ
File: Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean

tactic: rw [← map_Ψ, map_baseChange]
state_before: R : Type r
S : Type s
inst✝¹⁰ : CommRing R
inst✝⁹ : CommRing S
W : WeierstrassCurve R
inst✝⁸ : Algebra R S
A : Type u
inst✝⁷ : CommRing A
inst✝⁶ : Algebra R A
inst✝⁵ : Algebra S A
inst✝⁴ : IsScalarTower R S A
B : Type v
inst✝³ : CommRing B
inst✝² : Algebra R B
inst✝¹ : Algebra S B
inst✝ : IsScalarTower R S B
f : A →ₐ[S] B
n : ℤ
⊢ (W.baseChange B).Ψ n = Polynomial.map (mapRingHom ↑f) ((W.baseChange A).Ψ n)
state_after: no goals
Theorem: Nat.prod_divisors_prime_pow
File: Mathlib/NumberTheory/Divisors.lean

tactic: simp [h, divisors_prime_pow]
state_before: n : ℕ
α : Type u_1
inst✝ : CommMonoid α
k p : ℕ
f : ℕ → α
h : Prime p
⊢ ∏ x ∈ (p ^ k).divisors, f x = ∏ x ∈ range (k + 1), f (p ^ x)
state_after: no goals
Theorem: Int.isUnit_iff_abs_eq
File: Mathlib/Data/Int/Order/Units.lean

tactic: rw [isUnit_iff_natAbs_eq, abs_eq_natAbs, ← Int.ofNat_one, natCast_inj]
state_before: x : ℤ
⊢ IsUnit x ↔ |x| = 1
state_after: no goals
Theorem: Nat.add_choose
File: Mathlib/Data/Nat/Choose/Basic.lean

tactic: rw [choose_eq_factorial_div_factorial (Nat.le_add_left j i), Nat.add_sub_cancel_right,
  Nat.mul_comm]
state_before: i j : ℕ
⊢ (i + j).choose j = (i + j)! / (i ! * j !)
state_after: no goals
Theorem: linearIndependent_iff'
File: Mathlib/LinearAlgebra/LinearIndependent.lean

tactic: simpa only [map_sum, Finsupp.total_single] using hg
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
hf : ∀ (l : ι →₀ R), (Finsupp.total ι M R v) l = 0 → l = 0
s : Finset ι
g : ι → R
hg : ∑ i ∈ s, g i • v i = 0
i : ι
his : i ∈ s
⊢ (Finsupp.total ι M R v) (∑ i ∈ s, Finsupp.single i (g i)) = 0
state_after: no goals

tactic: rw [Finsupp.lapply_apply, Finsupp.single_eq_same]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
hf : ∀ (l : ι →₀ R), (Finsupp.total ι M R v) l = 0 → l = 0
s : Finset ι
g : ι → R
hg : ∑ i ∈ s, g i • v i = 0
i : ι
his : i ∈ s
h : ∑ i ∈ s, Finsupp.single i (g i) = 0
⊢ g i = (Finsupp.lapply i) (Finsupp.single i (g i))
state_after: no goals

tactic: rw [Finsupp.lapply_apply, Finsupp.single_eq_of_ne hji]
state_before: ι : Type u'
ι' : Type u_1
R : Type u_2
K : Type u_3
M : Type u_4
M' : Type u_5
M'' : Type u_6
V : Type u
V' : Type u_7
v : ι → M
inst✝⁶ : Semiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M'
inst✝³ : AddCommMonoid M''
inst✝² : Module R M
inst✝¹ : Module R M'
inst✝ : Module R M''
a b : R
x y : M
hf : ∀ (l : ι →₀ R), (Finsupp.total ι M R v) l = 0 → l = 0
s : Finset ι
g : ι → R
hg : ∑ i ∈ s, g i • v i = 0
i : ι
his : i ∈ s
h : ∑ i ∈ s, Finsupp.single i (g i) = 0
j : ι
_hjs : j ∈ s
hji : j ≠ i
⊢ (Finsupp.lapply i) (Finsupp.single j (g j)) = 0
state_after: no goals
Theorem: Real.sin_le
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Bounds.lean

tactic: obtain rfl | hx := hx.eq_or_lt
state_before: x : ℝ
hx : 0 ≤ x
⊢ sin x ≤ x
state_after: case inl
hx : 0 ≤ 0
⊢ sin 0 ≤ 0

case inr
x : ℝ
hx✝ : 0 ≤ x
hx : 0 < x
⊢ sin x ≤ x

tactic: simp
state_before: case inl
hx : 0 ≤ 0
⊢ sin 0 ≤ 0
state_after: no goals

tactic: exact (sin_lt hx).le
state_before: case inr
x : ℝ
hx✝ : 0 ≤ x
hx : 0 < x
⊢ sin x ≤ x
state_after: no goals
Theorem: Finset.weightedVSubOfPoint_congr
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp_rw [weightedVSubOfPoint_apply]
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 ι₂
w₁ w₂ : ι → k
hw : ∀ i ∈ s, w₁ i = w₂ i
p₁ p₂ : ι → P
hp : ∀ i ∈ s, p₁ i = p₂ i
b : P
⊢ (s.weightedVSubOfPoint p₁ b) w₁ = (s.weightedVSubOfPoint p₂ b) w₂
state_after: 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 ι₂
w₁ w₂ : ι → k
hw : ∀ i ∈ s, w₁ i = w₂ i
p₁ p₂ : ι → P
hp : ∀ i ∈ s, p₁ i = p₂ i
b : P
⊢ ∑ i ∈ s, w₁ i • (p₁ i -ᵥ b) = ∑ i ∈ s, w₂ i • (p₂ i -ᵥ b)

tactic: refine sum_congr rfl fun i hi => ?_
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 ι₂
w₁ w₂ : ι → k
hw : ∀ i ∈ s, w₁ i = w₂ i
p₁ p₂ : ι → P
hp : ∀ i ∈ s, p₁ i = p₂ i
b : P
⊢ ∑ i ∈ s, w₁ i • (p₁ i -ᵥ b) = ∑ i ∈ s, w₂ i • (p₂ i -ᵥ b)
state_after: 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 ι₂
w₁ w₂ : ι → k
hw : ∀ i ∈ s, w₁ i = w₂ i
p₁ p₂ : ι → P
hp : ∀ i ∈ s, p₁ i = p₂ i
b : P
i : ι
hi : i ∈ s
⊢ w₁ i • (p₁ i -ᵥ b) = w₂ i • (p₂ i -ᵥ b)

tactic: rw [hw i hi, hp i hi]
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 ι₂
w₁ w₂ : ι → k
hw : ∀ i ∈ s, w₁ i = w₂ i
p₁ p₂ : ι → P
hp : ∀ i ∈ s, p₁ i = p₂ i
b : P
i : ι
hi : i ∈ s
⊢ w₁ i • (p₁ i -ᵥ b) = w₂ i • (p₂ i -ᵥ b)
state_after: no goals
Theorem: norm_iteratedFDeriv_clm_apply_const
File: Mathlib/Analysis/Calculus/ContDiff/Bounds.lean

tactic: simp only [← iteratedFDerivWithin_univ]
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁷ : NormedAddCommGroup D
inst✝⁶ : NormedSpace 𝕜 D
E : Type uE
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type uF
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type uG
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
s s₁ t u : Set E
f : E → F →L[𝕜] G
c : F
x : E
N : ℕ∞
n : ℕ
hf : ContDiff 𝕜 N f
hn : ↑n ≤ N
⊢ ‖iteratedFDeriv 𝕜 n (fun y => (f y) c) x‖ ≤ ‖c‖ * ‖iteratedFDeriv 𝕜 n f x‖
state_after: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁷ : NormedAddCommGroup D
inst✝⁶ : NormedSpace 𝕜 D
E : Type uE
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type uF
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type uG
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
s s₁ t u : Set E
f : E → F →L[𝕜] G
c : F
x : E
N : ℕ∞
n : ℕ
hf : ContDiff 𝕜 N f
hn : ↑n ≤ N
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (f y) c) univ x‖ ≤ ‖c‖ * ‖iteratedFDerivWithin 𝕜 n f univ x‖

tactic: exact norm_iteratedFDerivWithin_clm_apply_const hf.contDiffOn uniqueDiffOn_univ
  (Set.mem_univ x) hn
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
D : Type uD
inst✝⁷ : NormedAddCommGroup D
inst✝⁶ : NormedSpace 𝕜 D
E : Type uE
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type uF
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type uG
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
s s₁ t u : Set E
f : E → F →L[𝕜] G
c : F
x : E
N : ℕ∞
n : ℕ
hf : ContDiff 𝕜 N f
hn : ↑n ≤ N
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (f y) c) univ x‖ ≤ ‖c‖ * ‖iteratedFDerivWithin 𝕜 n f univ x‖
state_after: no goals
Theorem: Set.image_const_sub_Iic
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: have := image_comp (fun x => a + x) fun x => -x
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => a - x) '' Iic b = Ici (a - b)
state_after: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), ((fun x => a + x) ∘ fun x => -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Iic b = Ici (a - b)

tactic: dsimp [Function.comp_def] at this
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), ((fun x => a + x) ∘ fun x => -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Iic b = Ici (a - b)
state_after: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), (fun x => a + -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Iic b = Ici (a - b)

tactic: simp [sub_eq_add_neg, this, add_comm]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
this : ∀ (a_1 : Set α), (fun x => a + -x) '' a_1 = (fun x => a + x) '' ((fun x => -x) '' a_1)
⊢ (fun x => a - x) '' Iic b = Ici (a - b)
state_after: no goals
Theorem: QuadraticForm.toQuadraticForm_polarBilin
File: Mathlib/LinearAlgebra/QuadraticForm/Basic.lean

tactic: simp
state_before: S : Type u_1
T : Type u_2
R : Type u_3
M : Type u_4
N : Type u_5
inst✝² : CommRing R
inst✝¹ : AddCommGroup M
inst✝ : Module R M
B : BilinForm R M
Q : QuadraticForm R M
x : M
⊢ 2 * Q x = (2 • Q) x
state_after: no goals
Theorem: Ctop.Realizer.isOpen
File: Mathlib/Data/Analysis/Topology.lean

tactic: simpa using F.mem_nhds.2 ⟨s, m, Subset.refl _⟩
state_before: α : Type u_1
β : Type u_2
σ : Type u_3
τ : Type u_4
inst✝ : TopologicalSpace α
F : Realizer α
s : F.σ
a : α
m : a ∈ F.F.f s
⊢ 𝓝 a ≤ 𝓟 (F.F.f s)
state_after: no goals
Theorem: IsPrimitiveRoot.zmodEquivZPowers_symm_apply_pow
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: rw [← h.zmodEquivZPowers.symm_apply_apply i, zmodEquivZPowers_apply_coe_nat]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝³ : CommMonoid M
inst✝² : CommMonoid N
inst✝¹ : DivisionCommMonoid G
k l : ℕ
inst✝ : CommRing R
ζ : Rˣ
h : IsPrimitiveRoot ζ k
i : ℕ
⊢ h.zmodEquivZPowers.symm (Additive.ofMul ⟨ζ ^ i, ⋯⟩) = ↑i
state_after: no goals
Theorem: CategoryTheory.Functor.Monoidal.tensorHom_app_fst
File: Mathlib/CategoryTheory/ChosenFiniteProducts/FunctorCategory.lean

tactic: change (f ⊗ g).app j ≫ (fst F₁' F₂').app j = _
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{u_3, u_1} J
inst✝¹ : Category.{u_4, u_2} C
inst✝ : ChosenFiniteProducts C
F₁ F₁' F₂ F₂' : J ⥤ C
f : F₁ ⟶ F₁'
g : F₂ ⟶ F₂'
j : J
⊢ (f ⊗ g).app j ≫ fst (F₁'.obj j) (F₂'.obj j) = fst (F₁.obj j) (F₂.obj j) ≫ f.app j
state_after: J : Type u_1
C : Type u_2
inst✝² : Category.{u_3, u_1} J
inst✝¹ : Category.{u_4, u_2} C
inst✝ : ChosenFiniteProducts C
F₁ F₁' F₂ F₂' : J ⥤ C
f : F₁ ⟶ F₁'
g : F₂ ⟶ F₂'
j : J
⊢ (f ⊗ g).app j ≫ (fst F₁' F₂').app j = fst (F₁.obj j) (F₂.obj j) ≫ f.app j

tactic: rw [← NatTrans.comp_app, tensorHom_fst, NatTrans.comp_app]
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{u_3, u_1} J
inst✝¹ : Category.{u_4, u_2} C
inst✝ : ChosenFiniteProducts C
F₁ F₁' F₂ F₂' : J ⥤ C
f : F₁ ⟶ F₁'
g : F₂ ⟶ F₂'
j : J
⊢ (f ⊗ g).app j ≫ (fst F₁' F₂').app j = fst (F₁.obj j) (F₂.obj j) ≫ f.app j
state_after: J : Type u_1
C : Type u_2
inst✝² : Category.{u_3, u_1} J
inst✝¹ : Category.{u_4, u_2} C
inst✝ : ChosenFiniteProducts C
F₁ F₁' F₂ F₂' : J ⥤ C
f : F₁ ⟶ F₁'
g : F₂ ⟶ F₂'
j : J
⊢ (fst F₁ F₂).app j ≫ f.app j = fst (F₁.obj j) (F₂.obj j) ≫ f.app j

tactic: rfl
state_before: J : Type u_1
C : Type u_2
inst✝² : Category.{u_3, u_1} J
inst✝¹ : Category.{u_4, u_2} C
inst✝ : ChosenFiniteProducts C
F₁ F₁' F₂ F₂' : J ⥤ C
f : F₁ ⟶ F₁'
g : F₂ ⟶ F₂'
j : J
⊢ (fst F₁ F₂).app j ≫ f.app j = fst (F₁.obj j) (F₂.obj j) ≫ f.app j
state_after: no goals
Theorem: Finsupp.zipWith_neLocus_eq_left
File: Mathlib/Data/Finsupp/NeLocus.lean

tactic: ext
state_before: α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁵ : DecidableEq α
inst✝⁴ : DecidableEq N
inst✝³ : Zero M
inst✝² : DecidableEq P
inst✝¹ : Zero P
inst✝ : Zero N
F : M → N → P
F0 : F 0 0 = 0
f : α →₀ M
g₁ g₂ : α →₀ N
hF : ∀ (f : M), Function.Injective fun g => F f g
⊢ (zipWith F F0 f g₁).neLocus (zipWith F F0 f g₂) = g₁.neLocus g₂
state_after: case a
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁵ : DecidableEq α
inst✝⁴ : DecidableEq N
inst✝³ : Zero M
inst✝² : DecidableEq P
inst✝¹ : Zero P
inst✝ : Zero N
F : M → N → P
F0 : F 0 0 = 0
f : α →₀ M
g₁ g₂ : α →₀ N
hF : ∀ (f : M), Function.Injective fun g => F f g
a✝ : α
⊢ a✝ ∈ (zipWith F F0 f g₁).neLocus (zipWith F F0 f g₂) ↔ a✝ ∈ g₁.neLocus g₂

tactic: simpa only [mem_neLocus] using (hF _).ne_iff
state_before: case a
α : Type u_1
M : Type u_2
N : Type u_3
P : Type u_4
inst✝⁵ : DecidableEq α
inst✝⁴ : DecidableEq N
inst✝³ : Zero M
inst✝² : DecidableEq P
inst✝¹ : Zero P
inst✝ : Zero N
F : M → N → P
F0 : F 0 0 = 0
f : α →₀ M
g₁ g₂ : α →₀ N
hF : ∀ (f : M), Function.Injective fun g => F f g
a✝ : α
⊢ a✝ ∈ (zipWith F F0 f g₁).neLocus (zipWith F F0 f g₂) ↔ a✝ ∈ g₁.neLocus g₂
state_after: no goals