1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Filter.Tendsto.eventually_forall_le_atBot
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: rw [← Filter.eventually_forall_le_atBot] at h_evtl
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : Preorder β
l : Filter α
p : β → Prop
f : α → β
hf : Tendsto f l atBot
h_evtl : ∀ᶠ (x : β) in atBot, p x
⊢ ∀ᶠ (x : α) in l, ∀ y ≤ f x, p y
state_after: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : Preorder β
l : Filter α
p : β → Prop
f : α → β
hf : Tendsto f l atBot
h_evtl : ∀ᶠ (x : β) in atBot, ∀ y ≤ x, p y
⊢ ∀ᶠ (x : α) in l, ∀ y ≤ f x, p y

tactic: exact (h_evtl.comap f).filter_mono hf.le_comap
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝ : Preorder β
l : Filter α
p : β → Prop
f : α → β
hf : Tendsto f l atBot
h_evtl : ∀ᶠ (x : β) in atBot, ∀ y ≤ x, p y
⊢ ∀ᶠ (x : α) in l, ∀ y ≤ f x, p y
state_after: no goals
Theorem: Finset.extract_gcd'
File: Mathlib/Algebra/GCDMonoid/Finset.lean

tactic: conv_lhs => rw [← normalize_gcd, ← gcd_mul_left, ← gcd_congr rfl hg]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
s s₁ s₂ : Finset β
f✝ f g : β → α
hs : ∃ x ∈ s, f x ≠ 0
hg : ∀ b ∈ s, f b = s.gcd f * g b
⊢ s.gcd f * s.gcd g = s.gcd f
state_after: no goals

tactic: contrapose! hs
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
s s₁ s₂ : Finset β
f✝ f g : β → α
hs : ∃ x ∈ s, f x ≠ 0
hg : ∀ b ∈ s, f b = s.gcd f * g b
⊢ ¬s.gcd f = 0
state_after: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
s s₁ s₂ : Finset β
f✝ f g : β → α
hg : ∀ b ∈ s, f b = s.gcd f * g b
hs : s.gcd f = 0
⊢ ∀ x ∈ s, f x = 0

tactic: exact gcd_eq_zero_iff.1 hs
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NormalizedGCDMonoid α
s s₁ s₂ : Finset β
f✝ f g : β → α
hg : ∀ b ∈ s, f b = s.gcd f * g b
hs : s.gcd f = 0
⊢ ∀ x ∈ s, f x = 0
state_after: no goals
Theorem: Complex.abs_mul_sin_arg
File: Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean

tactic: simpa [-abs_mul_cos_add_sin_mul_I] using congr_arg im (abs_mul_cos_add_sin_mul_I x)
state_before: a x✝ z x : ℂ
⊢ abs x * Real.sin x.arg = x.im
state_after: no goals
Theorem: Set.iUnion_of_singleton_coe
File: Mathlib/Data/Set/Lattice.lean

tactic: simp
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
s : Set α
⊢ ⋃ i, {↑i} = s
state_after: no goals
Theorem: CategoryTheory.Limits.zero_of_source_iso_zero
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: have h : f = i.hom ≫ 𝟙 0 ≫ i.inv ≫ f := by simp only [Iso.hom_inv_id_assoc, id_comp, comp_id]
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
i : X ≅ 0
⊢ f = 0
state_after: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
i : X ≅ 0
h : f = i.hom ≫ 𝟙 0 ≫ i.inv ≫ f
⊢ f = 0

tactic: simpa using h
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
i : X ≅ 0
h : f = i.hom ≫ 𝟙 0 ≫ i.inv ≫ f
⊢ f = 0
state_after: no goals

tactic: simp only [Iso.hom_inv_id_assoc, id_comp, comp_id]
state_before: C : Type u
inst✝³ : Category.{v, u} C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasZeroObject C
inst✝ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
i : X ≅ 0
⊢ f = i.hom ≫ 𝟙 0 ≫ i.inv ≫ f
state_after: no goals
Theorem: CategoryTheory.Functor.shiftIso_add'_inv_app
File: Mathlib/CategoryTheory/Shift/ShiftSequence.lean

tactic: rw [← hnm, ← ha'', ← ha', add_assoc]
state_before: C : Type u_1
A : Type u_2
inst✝⁶ : Category.{?u.63535, u_1} C
inst✝⁵ : Category.{?u.63539, u_2} A
F : C ⥤ A
M : Type u_3
inst✝⁴ : AddMonoid M
inst✝³ : HasShift C M
G : Type u_4
inst✝² : AddGroup G
inst✝¹ : HasShift C G
inst✝ : F.ShiftSequence M
n m mn : M
hnm : m + n = mn
a a' a'' : M
ha' : n + a = a'
ha'' : m + a' = a''
X : C
⊢ mn + a = a''
state_after: no goals

tactic: simp [F.shiftIso_add' n m mn hnm a a' a'' ha' ha'']
state_before: C : Type u_1
A : Type u_2
inst✝⁶ : Category.{u_6, u_1} C
inst✝⁵ : Category.{u_5, u_2} A
F : C ⥤ A
M : Type u_3
inst✝⁴ : AddMonoid M
inst✝³ : HasShift C M
G : Type u_4
inst✝² : AddGroup G
inst✝¹ : HasShift C G
inst✝ : F.ShiftSequence M
n m mn : M
hnm : m + n = mn
a a' a'' : M
ha' : n + a = a'
ha'' : m + a' = a''
X : C
⊢ (F.shiftIso mn a a'' ⋯).inv.app X =
    (F.shiftIso m a' a'' ha'').inv.app X ≫
      (F.shiftIso n a a' ha').inv.app ((shiftFunctor C m).obj X) ≫
        (F.shift a).map ((shiftFunctorAdd' C m n mn hnm).inv.app X)
state_after: no goals
Theorem: Real.rpow_lt_one_iff
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rcases hx.eq_or_lt with (rfl | hx)
state_before: x y z : ℝ
n : ℕ
hx : 0 ≤ x
⊢ x ^ y < 1 ↔ x = 0 ∧ y ≠ 0 ∨ 1 < x ∧ y < 0 ∨ x < 1 ∧ 0 < y
state_after: case inl
y z : ℝ
n : ℕ
hx : 0 ≤ 0
⊢ 0 ^ y < 1 ↔ 0 = 0 ∧ y ≠ 0 ∨ 1 < 0 ∧ y < 0 ∨ 0 < 1 ∧ 0 < y

case inr
x y z : ℝ
n : ℕ
hx✝ : 0 ≤ x
hx : 0 < x
⊢ x ^ y < 1 ↔ x = 0 ∧ y ≠ 0 ∨ 1 < x ∧ y < 0 ∨ x < 1 ∧ 0 < y

tactic: rcases _root_.em (y = 0) with (rfl | hy) <;> simp [*, lt_irrefl, zero_lt_one]
state_before: case inl
y z : ℝ
n : ℕ
hx : 0 ≤ 0
⊢ 0 ^ y < 1 ↔ 0 = 0 ∧ y ≠ 0 ∨ 1 < 0 ∧ y < 0 ∨ 0 < 1 ∧ 0 < y
state_after: no goals

tactic: simp [rpow_lt_one_iff_of_pos hx, hx.ne.symm]
state_before: case inr
x y z : ℝ
n : ℕ
hx✝ : 0 ≤ x
hx : 0 < x
⊢ x ^ y < 1 ↔ x = 0 ∧ y ≠ 0 ∨ 1 < x ∧ y < 0 ∨ x < 1 ∧ 0 < y
state_after: no goals
Theorem: Basis.singleton_apply
File: Mathlib/LinearAlgebra/Basis.lean

tactic: simp [Basis.singleton]
state_before: ι✝ : Type u_1
ι' : Type u_2
R✝ : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁶ : Semiring R✝
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R✝ M
inst✝³ : AddCommMonoid M'
inst✝² : Module R✝ M'
b b₁ : Basis ι✝ R✝ M
i✝ : ι✝
c : R✝
x : M
ι : Type u_10
R : Type u_11
inst✝¹ : Unique ι
inst✝ : Semiring R
i : ι
⊢ (Basis.singleton ι R).repr 1 = Finsupp.single i 1
state_after: no goals
Theorem: HurwitzZeta.hasSum_hurwitzZeta_of_one_lt_re
File: Mathlib/NumberTheory/LSeries/HurwitzZeta.lean

tactic: convert (hasSum_nat_hurwitzZetaEven_of_mem_Icc ha hs).add
    (hasSum_nat_hurwitzZetaOdd_of_mem_Icc ha hs) using 1
state_before: a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
⊢ HasSum (fun n => 1 / (↑n + ↑a) ^ s) (hurwitzZeta (↑a) s)
state_after: case h.e'_5
a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
⊢ (fun n => 1 / (↑n + ↑a) ^ s) = fun b =>
    (1 / (↑b + ↑a) ^ s + 1 / (↑b + 1 - ↑a) ^ s) / 2 + (1 / (↑b + ↑a) ^ s - 1 / (↑b + 1 - ↑a) ^ s) / 2

tactic: ext1 n
state_before: case h.e'_5
a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
⊢ (fun n => 1 / (↑n + ↑a) ^ s) = fun b =>
    (1 / (↑b + ↑a) ^ s + 1 / (↑b + 1 - ↑a) ^ s) / 2 + (1 / (↑b + ↑a) ^ s - 1 / (↑b + 1 - ↑a) ^ s) / 2
state_after: case h.e'_5.h
a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
n : ℕ
⊢ 1 / (↑n + ↑a) ^ s = (1 / (↑n + ↑a) ^ s + 1 / (↑n + 1 - ↑a) ^ s) / 2 + (1 / (↑n + ↑a) ^ s - 1 / (↑n + 1 - ↑a) ^ s) / 2

tactic: apply show ∀ (x y : ℂ), x = (x + y) / 2 + (x - y) / 2 by intros; ring
state_before: case h.e'_5.h
a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
n : ℕ
⊢ 1 / (↑n + ↑a) ^ s = (1 / (↑n + ↑a) ^ s + 1 / (↑n + 1 - ↑a) ^ s) / 2 + (1 / (↑n + ↑a) ^ s - 1 / (↑n + 1 - ↑a) ^ s) / 2
state_after: no goals

tactic: intros
state_before: a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
n : ℕ
⊢ ∀ (x y : ℂ), x = (x + y) / 2 + (x - y) / 2
state_after: a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
n : ℕ
x✝ y✝ : ℂ
⊢ x✝ = (x✝ + y✝) / 2 + (x✝ - y✝) / 2

tactic: ring
state_before: a : ℝ
ha : a ∈ Icc 0 1
s : ℂ
hs : 1 < s.re
n : ℕ
x✝ y✝ : ℂ
⊢ x✝ = (x✝ + y✝) / 2 + (x✝ - y✝) / 2
state_after: no goals
Theorem: Real.Angle.arg_expMapCircle
File: Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean

tactic: induction θ using Real.Angle.induction_on
state_before: θ : Angle
⊢ ↑(↑θ.expMapCircle).arg = θ
state_after: case h
x✝ : ℝ
⊢ ↑(↑(↑x✝).expMapCircle).arg = ↑x✝

tactic: rw [Real.Angle.expMapCircle_coe, expMapCircle_apply, exp_mul_I, ← ofReal_cos, ← ofReal_sin, ←
  Real.Angle.cos_coe, ← Real.Angle.sin_coe, arg_cos_add_sin_mul_I_coe_angle]
state_before: case h
x✝ : ℝ
⊢ ↑(↑(↑x✝).expMapCircle).arg = ↑x✝
state_after: no goals
Theorem: frontier_prod_univ_eq
File: Mathlib/Topology/Constructions.lean

tactic: simp [frontier_prod_eq]
state_before: X : Type u
Y : Type v
Z : Type u_1
W : Type u_2
ε : Type u_3
ζ : Type u_4
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace Y
inst✝³ : TopologicalSpace Z
inst✝² : TopologicalSpace W
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
s : Set X
⊢ frontier (s ×ˢ univ) = frontier s ×ˢ univ
state_after: no goals
Theorem: Metric.closedEmbedding_of_pairwise_le_dist
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simpa using hf
state_before: α✝ : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝³ : PseudoMetricSpace α✝
γ : Type w
inst✝² : MetricSpace γ
x : γ
s : Set γ
α : Type u_3
inst✝¹ : TopologicalSpace α
inst✝ : DiscreteTopology α
ε : ℝ
hε : 0 < ε
f : α → γ
hf : Pairwise fun x y => ε ≤ dist (f x) (f y)
⊢ Pairwise fun x y => (f x, f y) ∉ {p | dist p.1 p.2 < ε}
state_after: no goals
Theorem: Complex.dist_of_im_eq
File: Mathlib/Analysis/Complex/Basic.lean

tactic: rw [dist_eq_re_im, h, sub_self, zero_pow two_ne_zero, add_zero, Real.sqrt_sq_eq_abs, Real.dist_eq]
state_before: z✝ : ℂ
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z w : ℂ
h : z.im = w.im
⊢ dist z w = dist z.re w.re
state_after: no goals
Theorem: Orientation.areaForm_neg_orientation
File: Mathlib/Analysis/InnerProductSpace/TwoDim.lean

tactic: ext x y
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
⊢ (-o).areaForm = -o.areaForm
state_after: case h.h
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ((-o).areaForm x) y = ((-o.areaForm) x) y

tactic: simp [areaForm_to_volumeForm]
state_before: case h.h
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace ℝ E
inst✝ : Fact (finrank ℝ E = 2)
o : Orientation ℝ E (Fin 2)
x y : E
⊢ ((-o).areaForm x) y = ((-o.areaForm) x) y
state_after: no goals
Theorem: Fin.init_update_last
File: Mathlib/Data/Fin/Tuple/Basic.lean

tactic: ext j
state_before: m n : ℕ
α : Fin (n + 1) → Type u
x : α (last n)
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α i.castSucc
i : Fin n
y : α i.castSucc
z : α (last n)
⊢ init (update q (last n) z) = init q
state_after: case h
m n : ℕ
α : Fin (n + 1) → Type u
x : α (last n)
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α i.castSucc
i : Fin n
y : α i.castSucc
z : α (last n)
j : Fin n
⊢ init (update q (last n) z) j = init q j

tactic: simp [init, ne_of_lt, castSucc_lt_last]
state_before: case h
m n : ℕ
α : Fin (n + 1) → Type u
x : α (last n)
q : (i : Fin (n + 1)) → α i
p : (i : Fin n) → α i.castSucc
i : Fin n
y : α i.castSucc
z : α (last n)
j : Fin n
⊢ init (update q (last n) z) j = init q j
state_after: no goals
Theorem: IsCyclotomicExtension.Rat.Three.lambda_dvd_mul_sub_one_mul_sub_eta_add_one
File: Mathlib/NumberTheory/Cyclotomic/Three.lean

tactic: rcases lambda_dvd_or_dvd_sub_one_or_dvd_add_one hζ x with h | h | h
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
⊢ λ ∣ x * (x - 1) * (x - (↑η + 1))
state_after: case inl
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x
⊢ λ ∣ x * (x - 1) * (x - (↑η + 1))

case inr.inl
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x - 1
⊢ λ ∣ x * (x - 1) * (x - (↑η + 1))

case inr.inr
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x + 1
⊢ λ ∣ x * (x - 1) * (x - (↑η + 1))

tactic: exact dvd_mul_of_dvd_left (dvd_mul_of_dvd_left h _) _
state_before: case inl
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x
⊢ λ ∣ x * (x - 1) * (x - (↑η + 1))
state_after: no goals

tactic: exact dvd_mul_of_dvd_left (dvd_mul_of_dvd_right h _) _
state_before: case inr.inl
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x - 1
⊢ λ ∣ x * (x - 1) * (x - (↑η + 1))
state_after: no goals

tactic: refine dvd_mul_of_dvd_right ?_ _
state_before: case inr.inr
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x + 1
⊢ λ ∣ x * (x - 1) * (x - (↑η + 1))
state_after: case inr.inr
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x + 1
⊢ λ ∣ x - (↑η + 1)

tactic: rw [show x - (η + 1) = x + 1 - (η - 1 + 3) by ring]
state_before: case inr.inr
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x + 1
⊢ λ ∣ x - (↑η + 1)
state_after: case inr.inr
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x + 1
⊢ λ ∣ x + 1 - (↑η - 1 + 3)

tactic: exact dvd_sub h <| dvd_add dvd_rfl hζ.toInteger_sub_one_dvd_prime'
state_before: case inr.inr
K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x + 1
⊢ λ ∣ x + 1 - (↑η - 1 + 3)
state_after: no goals

tactic: ring
state_before: K : Type u_1
inst✝² : Field K
inst✝¹ : NumberField K
inst✝ : IsCyclotomicExtension {3} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑3
u : (𝓞 K)ˣ
x : 𝓞 K
h : λ ∣ x + 1
⊢ x - (↑η + 1) = x + 1 - (↑η - 1 + 3)
state_after: no goals
Theorem: Finset.Nonempty.smul_zero
File: Mathlib/Data/Finset/Pointwise.lean

tactic: simpa [mem_smul] using hs
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : Zero β
inst✝¹ : SMulZeroClass α β
inst✝ : DecidableEq β
s : Finset α
t : Finset β
a : α
hs : s.Nonempty
⊢ 0 ⊆ s • 0
state_after: no goals
Theorem: NumberField.mixedEmbedding.minkowskiBound_pos
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean

tactic: refine zero_lt_iff.mpr (mul_ne_zero ?_ ?_)
state_before: K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
⊢ 0 < minkowskiBound K I
state_after: case refine_1
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
⊢ volume (fundamentalDomain (fractionalIdealLatticeBasis K I)) ≠ 0

case refine_2
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
⊢ 2 ^ finrank ℝ (({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)) ≠ 0

tactic: exact Zspan.measure_fundamentalDomain_ne_zero _
state_before: case refine_1
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
⊢ volume (fundamentalDomain (fractionalIdealLatticeBasis K I)) ≠ 0
state_after: no goals

tactic: exact ENNReal.pow_ne_zero two_ne_zero _
state_before: case refine_2
K : Type u_1
inst✝¹ : Field K
inst✝ : NumberField K
I : (FractionalIdeal (𝓞 K)⁰ K)ˣ
⊢ 2 ^ finrank ℝ (({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)) ≠ 0
state_after: no goals
Theorem: Lagrange.eval_nodal_derivative_eval_node_eq
File: Mathlib/LinearAlgebra/Lagrange.lean

tactic: rw [derivative_nodal, eval_finset_sum, ← add_sum_erase _ _ hi, add_right_eq_self]
state_before: R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : DecidableEq ι
i : ι
hi : i ∈ s
⊢ eval (v i) (derivative (nodal s v)) = eval (v i) (nodal (s.erase i) v)
state_after: R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : DecidableEq ι
i : ι
hi : i ∈ s
⊢ ∑ x ∈ s.erase i, eval (v i) (nodal (s.erase x) v) = 0

tactic: exact sum_eq_zero fun j hj => (eval_nodal_at_node (mem_erase.mpr ⟨(mem_erase.mp hj).1.symm, hi⟩))
state_before: R : Type u_1
inst✝¹ : CommRing R
ι : Type u_2
s : Finset ι
v : ι → R
inst✝ : DecidableEq ι
i : ι
hi : i ∈ s
⊢ ∑ x ∈ s.erase i, eval (v i) (nodal (s.erase x) v) = 0
state_after: no goals
Theorem: CategoryTheory.Preadditive.mono_iff_injective
File: Mathlib/Algebra/Homology/ShortComplex/ConcreteCategory.lean

tactic: rw [← AddCommGrp.mono_iff_injective]
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Mono f ↔ Function.Injective ⇑((forget₂ C Ab).map f)
state_after: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Mono f ↔ Mono ((forget₂ C Ab).map f)

tactic: constructor
state_before: C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Mono f ↔ Mono ((forget₂ C Ab).map f)
state_after: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Mono f → Mono ((forget₂ C Ab).map f)

case mpr
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Mono ((forget₂ C Ab).map f) → Mono f

tactic: intro
state_before: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Mono f → Mono ((forget₂ C Ab).map f)
state_after: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
a✝ : Mono f
⊢ Mono ((forget₂ C Ab).map f)

tactic: infer_instance
state_before: case mp
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
a✝ : Mono f
⊢ Mono ((forget₂ C Ab).map f)
state_after: no goals

tactic: apply Functor.mono_of_mono_map
state_before: case mpr
C : Type u
inst✝⁶ : Category.{v, u} C
inst✝⁵ : ConcreteCategory C
inst✝⁴ : HasForget₂ C Ab
inst✝³ : Preadditive C
inst✝² : (forget₂ C Ab).Additive
inst✝¹ : (forget₂ C Ab).PreservesHomology
inst✝ : HasZeroObject C
S : ShortComplex C
X Y : C
f : X ⟶ Y
⊢ Mono ((forget₂ C Ab).map f) → Mono f
state_after: no goals
Theorem: AlgEquiv.spectrum_eq
File: Mathlib/Algebra/Algebra/Spectrum.lean

tactic: simpa only [AlgEquiv.coe_algHom, AlgEquiv.coe_coe_symm_apply_coe_apply] using
  AlgHom.spectrum_apply_subset (f : A ≃ₐ[R] B).symm (f a)
state_before: F : Type u_1
R : Type u_2
A : Type u_3
B : Type u_4
inst✝⁶ : CommSemiring R
inst✝⁵ : Ring A
inst✝⁴ : Ring B
inst✝³ : Algebra R A
inst✝² : Algebra R B
inst✝¹ : EquivLike F A B
inst✝ : AlgEquivClass F R A B
f : F
a : A
⊢ spectrum R a ⊆ spectrum R (f a)
state_after: no goals
Theorem: Set.projIcc_of_mem
File: Mathlib/Order/Interval/Set/ProjIcc.lean

tactic: simp [projIcc, hx.1, hx.2]
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a b : α
h : a ≤ b
x : α
hx : x ∈ Icc a b
⊢ projIcc a b h x = ⟨x, hx⟩
state_after: no goals
Theorem: Matroid.comap_id
File: Mathlib/Data/Matroid/Map.lean

tactic: simp [injective_id.injOn]
state_before: α : Type u_1
β : Type u_2
f : α → β
E I s : Set α
M : Matroid α
N✝ N : Matroid β
⊢ ∀ I ⊆ (N.comap id).E, (N.comap id).Indep I ↔ N.Indep I
state_after: no goals
Theorem: Pell.Solution₁.y_mul_pos
File: Mathlib/NumberTheory/Pell.lean

tactic: simp only [y_mul]
state_before: d : ℤ
a b : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
hbx : 0 < b.x
hby : 0 < b.y
⊢ 0 < (a * b).y
state_after: d : ℤ
a b : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
hbx : 0 < b.x
hby : 0 < b.y
⊢ 0 < a.x * b.y + a.y * b.x

tactic: positivity
state_before: d : ℤ
a b : Solution₁ d
hax : 0 < a.x
hay : 0 < a.y
hbx : 0 < b.x
hby : 0 < b.y
⊢ 0 < a.x * b.y + a.y * b.x
state_after: no goals
Theorem: LinearMap.map_le_map_iff'
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [LinearMap.map_le_map_iff, hf, sup_bot_eq]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁸ : Semiring R
inst✝⁷ : Semiring R₂
inst✝⁶ : AddCommGroup M
inst✝⁵ : AddCommGroup M₂
inst✝⁴ : Module R M
inst✝³ : Module R₂ M₂
τ₁₂ : R →+* R₂
inst✝² : RingHomSurjective τ₁₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F τ₁₂ M M₂
f : F
hf : ker f = ⊥
p p' : Submodule R M
⊢ map f p ≤ map f p' ↔ p ≤ p'
state_after: no goals
Theorem: CategoryTheory.Limits.limitOpIsoOpColimit_inv_comp_π
File: Mathlib/CategoryTheory/Limits/IndYoneda.lean

tactic: simp [limitOpIsoOpColimit]
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
⊢ (limitOpIsoOpColimit F).inv ≫ limit.π F.op { unop := i } = (colimit.ι F i).op
state_after: no goals
Theorem: Real.exp_log_of_neg
File: Mathlib/Analysis/SpecialFunctions/Log/Basic.lean

tactic: rw [exp_log_eq_abs (ne_of_lt hx)]
state_before: x y : ℝ
hx : x < 0
⊢ rexp (log x) = -x
state_after: x y : ℝ
hx : x < 0
⊢ |x| = -x

tactic: exact abs_of_neg hx
state_before: x y : ℝ
hx : x < 0
⊢ |x| = -x
state_after: no goals
Theorem: Matroid.Dep.nonempty
File: Mathlib/Data/Matroid/Basic.lean

tactic: rw [nonempty_iff_ne_empty]
state_before: α : Type u_1
M : Matroid α
D : Set α
hD : M.Dep D
⊢ D.Nonempty
state_after: α : Type u_1
M : Matroid α
D : Set α
hD : M.Dep D
⊢ D ≠ ∅

tactic: rintro rfl
state_before: α : Type u_1
M : Matroid α
D : Set α
hD : M.Dep D
⊢ D ≠ ∅
state_after: α : Type u_1
M : Matroid α
hD : M.Dep ∅
⊢ False

tactic: exact hD.not_indep M.empty_indep
state_before: α : Type u_1
M : Matroid α
hD : M.Dep ∅
⊢ False
state_after: no goals
Theorem: intervalIntegral.smul_integral_comp_add_mul
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: by_cases hc : c = 0 <;> simp [hc, integral_comp_add_mul]
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c✝ d✝ : ℝ
f : ℝ → E
c d : ℝ
⊢ c • ∫ (x : ℝ) in a..b, f (d + c * x) = ∫ (x : ℝ) in d + c * a..d + c * b, f x
state_after: no goals
Theorem: Metric.ball_disjoint_closedBall
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rwa [add_comm, dist_comm]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
h : δ + ε ≤ dist x y
⊢ ε + δ ≤ dist y x
state_after: no goals
Theorem: mul_two
File: Mathlib/Algebra/Ring/Defs.lean

tactic: rw [mul_one]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : NonAssocSemiring α
n : α
⊢ n * 1 + n * 1 = n + n
state_after: no goals