1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MulChar.IsQuadratic.gaussSum_frob_iter
File: Mathlib/NumberTheory/GaussSum.lean

tactic: induction' n with n ih
state_before: R : Type u
inst✝² : CommRing R
inst✝¹ : Fintype R
R' : Type v
inst✝ : CommRing R'
p : ℕ
fp : Fact (Nat.Prime p)
hch : CharP R' p
n : ℕ
hp : IsUnit ↑p
χ : MulChar R R'
hχ : χ.IsQuadratic
ψ : AddChar R R'
⊢ gaussSum χ ψ ^ p ^ n = χ (↑p ^ n) * gaussSum χ ψ
state_after: case zero
R : Type u
inst✝² : CommRing R
inst✝¹ : Fintype R
R' : Type v
inst✝ : CommRing R'
p : ℕ
fp : Fact (Nat.Prime p)
hch : CharP R' p
hp : IsUnit ↑p
χ : MulChar R R'
hχ : χ.IsQuadratic
ψ : AddChar R R'
⊢ gaussSum χ ψ ^ p ^ 0 = χ (↑p ^ 0) * gaussSum χ ψ

case succ
R : Type u
inst✝² : CommRing R
inst✝¹ : Fintype R
R' : Type v
inst✝ : CommRing R'
p : ℕ
fp : Fact (Nat.Prime p)
hch : CharP R' p
hp : IsUnit ↑p
χ : MulChar R R'
hχ : χ.IsQuadratic
ψ : AddChar R R'
n : ℕ
ih : gaussSum χ ψ ^ p ^ n = χ (↑p ^ n) * gaussSum χ ψ
⊢ gaussSum χ ψ ^ p ^ (n + 1) = χ (↑p ^ (n + 1)) * gaussSum χ ψ

tactic: rw [pow_zero, pow_one, pow_zero, MulChar.map_one, one_mul]
state_before: case zero
R : Type u
inst✝² : CommRing R
inst✝¹ : Fintype R
R' : Type v
inst✝ : CommRing R'
p : ℕ
fp : Fact (Nat.Prime p)
hch : CharP R' p
hp : IsUnit ↑p
χ : MulChar R R'
hχ : χ.IsQuadratic
ψ : AddChar R R'
⊢ gaussSum χ ψ ^ p ^ 0 = χ (↑p ^ 0) * gaussSum χ ψ
state_after: no goals

tactic: rw [pow_succ, pow_mul, ih, mul_pow, hχ.gaussSum_frob _ hp, ← mul_assoc, pow_succ, map_mul,
  ← pow_apply' χ fp.1.ne_zero ((p : R) ^ n), hχ.pow_char p]
state_before: case succ
R : Type u
inst✝² : CommRing R
inst✝¹ : Fintype R
R' : Type v
inst✝ : CommRing R'
p : ℕ
fp : Fact (Nat.Prime p)
hch : CharP R' p
hp : IsUnit ↑p
χ : MulChar R R'
hχ : χ.IsQuadratic
ψ : AddChar R R'
n : ℕ
ih : gaussSum χ ψ ^ p ^ n = χ (↑p ^ n) * gaussSum χ ψ
⊢ gaussSum χ ψ ^ p ^ (n + 1) = χ (↑p ^ (n + 1)) * gaussSum χ ψ
state_after: no goals
Theorem: AdicCompletion.smul_mk
File: Mathlib/RingTheory/AdicCompletion/Algebra.lean

tactic: rw [← Submodule.Quotient.mk_smul, ← Module.Quotient.mk_smul_mk,
  AdicCauchySequence.mk_eq_mk hmn, Ideal.mk_eq_mk I hmn, Module.Quotient.mk_smul_mk,
  Submodule.Quotient.mk_smul]
state_before: R : Type u_1
inst✝² : CommRing R
I : Ideal R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
m n : ℕ
hmn : m ≤ n
r : AdicCauchySequence I R
x : AdicCauchySequence I M
⊢ ↑r n • Submodule.Quotient.mk (↑x n) = ↑r m • Submodule.Quotient.mk (↑x m)
state_after: no goals
Theorem: Polynomial.natDegree_X_mul
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [commute_X p, natDegree_mul_X hp]
state_before: R : Type u
S : Type v
a b c d : R
n✝ m : ℕ
inst✝¹ : Semiring R
inst✝ : Nontrivial R
p q : R[X]
n : ℕ
hp : p ≠ 0
⊢ (X * p).natDegree = p.natDegree + 1
state_after: no goals
Theorem: Batteries.RBNode.foldr_cons
File: .lake/packages/batteries/Batteries/Data/RBMap/Lemmas.lean

tactic: unfold toList
state_before: α : Type u_1
t : RBNode α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t l = t.toList ++ l
state_after: α : Type u_1
t : RBNode α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t l = foldr (fun x x_1 => x :: x_1) t [] ++ l

tactic: induction t generalizing l with
| nil => rfl
| node _ a _ b iha ihb => rw [foldr, foldr, iha, iha (_::_), ihb]; simp
state_before: α : Type u_1
t : RBNode α
l : List α
⊢ foldr (fun x x_1 => x :: x_1) t l = foldr (fun x x_1 => x :: x_1) t [] ++ l
state_after: no goals

tactic: rfl
state_before: case nil
α : Type u_1
l : List α
⊢ foldr (fun x x_1 => x :: x_1) nil l = foldr (fun x x_1 => x :: x_1) nil [] ++ l
state_after: no goals

tactic: rw [foldr, foldr, iha, iha (_::_), ihb]
state_before: case node
α : Type u_1
c✝ : RBColor
a : RBNode α
v✝ : α
b : RBNode α
iha : ∀ (l : List α), foldr (fun x x_1 => x :: x_1) a l = foldr (fun x x_1 => x :: x_1) a [] ++ l
ihb : ∀ (l : List α), foldr (fun x x_1 => x :: x_1) b l = foldr (fun x x_1 => x :: x_1) b [] ++ l
l : List α
⊢ foldr (fun x x_1 => x :: x_1) (node c✝ a v✝ b) l = foldr (fun x x_1 => x :: x_1) (node c✝ a v✝ b) [] ++ l
state_after: case node
α : Type u_1
c✝ : RBColor
a : RBNode α
v✝ : α
b : RBNode α
iha : ∀ (l : List α), foldr (fun x x_1 => x :: x_1) a l = foldr (fun x x_1 => x :: x_1) a [] ++ l
ihb : ∀ (l : List α), foldr (fun x x_1 => x :: x_1) b l = foldr (fun x x_1 => x :: x_1) b [] ++ l
l : List α
⊢ foldr (fun x x_1 => x :: x_1) a [] ++ v✝ :: (foldr (fun x x_1 => x :: x_1) b [] ++ l) =
    foldr (fun x x_1 => x :: x_1) a [] ++ v✝ :: foldr (fun x x_1 => x :: x_1) b [] ++ l

tactic: simp
state_before: case node
α : Type u_1
c✝ : RBColor
a : RBNode α
v✝ : α
b : RBNode α
iha : ∀ (l : List α), foldr (fun x x_1 => x :: x_1) a l = foldr (fun x x_1 => x :: x_1) a [] ++ l
ihb : ∀ (l : List α), foldr (fun x x_1 => x :: x_1) b l = foldr (fun x x_1 => x :: x_1) b [] ++ l
l : List α
⊢ foldr (fun x x_1 => x :: x_1) a [] ++ v✝ :: (foldr (fun x x_1 => x :: x_1) b [] ++ l) =
    foldr (fun x x_1 => x :: x_1) a [] ++ v✝ :: foldr (fun x x_1 => x :: x_1) b [] ++ l
state_after: no goals
Theorem: IsSelfAdjoint.div
File: Mathlib/Algebra/Star/SelfAdjoint.lean

tactic: simp only [isSelfAdjoint_iff, star_div', hx.star_eq, hy.star_eq]
state_before: R : Type u_1
A : Type u_2
inst✝¹ : Semifield R
inst✝ : StarRing R
x y : R
hx : IsSelfAdjoint x
hy : IsSelfAdjoint y
⊢ IsSelfAdjoint (x / y)
state_after: no goals
Theorem: star_neg_iff
File: Mathlib/Algebra/Star/Order.lean

tactic: simpa using star_lt_star_iff (x := x) (y := 0)
state_before: R : Type u
inst✝³ : NonUnitalSemiring R
inst✝² : PartialOrder R
inst✝¹ : StarRing R
inst✝ : StarOrderedRing R
x : R
⊢ star x < 0 ↔ x < 0
state_after: no goals
Theorem: Matrix.adjugate_fin_succ_eq_det_submatrix
File: Mathlib/LinearAlgebra/Matrix/Adjugate.lean

tactic: simp_rw [adjugate_apply, det_succ_row _ j, updateRow_self, submatrix_updateRow_succAbove]
state_before: m : Type u
n✝ : Type v
α : Type w
inst✝⁴ : DecidableEq n✝
inst✝³ : Fintype n✝
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
n : ℕ
A : Matrix (Fin n.succ) (Fin n.succ) α
i j : Fin n.succ
⊢ A.adjugate i j = (-1) ^ (↑j + ↑i) * (A.submatrix j.succAbove i.succAbove).det
state_after: m : Type u
n✝ : Type v
α : Type w
inst✝⁴ : DecidableEq n✝
inst✝³ : Fintype n✝
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
n : ℕ
A : Matrix (Fin n.succ) (Fin n.succ) α
i j : Fin n.succ
⊢ ∑ x : Fin n.succ, (-1) ^ (↑j + ↑x) * Pi.single i 1 x * (A.submatrix j.succAbove x.succAbove).det =
    (-1) ^ (↑j + ↑i) * (A.submatrix j.succAbove i.succAbove).det

tactic: rw [Fintype.sum_eq_single i fun h hjk => ?_, Pi.single_eq_same, mul_one]
state_before: m : Type u
n✝ : Type v
α : Type w
inst✝⁴ : DecidableEq n✝
inst✝³ : Fintype n✝
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
n : ℕ
A : Matrix (Fin n.succ) (Fin n.succ) α
i j : Fin n.succ
⊢ ∑ x : Fin n.succ, (-1) ^ (↑j + ↑x) * Pi.single i 1 x * (A.submatrix j.succAbove x.succAbove).det =
    (-1) ^ (↑j + ↑i) * (A.submatrix j.succAbove i.succAbove).det
state_after: m : Type u
n✝ : Type v
α : Type w
inst✝⁴ : DecidableEq n✝
inst✝³ : Fintype n✝
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
n : ℕ
A : Matrix (Fin n.succ) (Fin n.succ) α
i j h : Fin n.succ
hjk : h ≠ i
⊢ (-1) ^ (↑j + ↑h) * Pi.single i 1 h * (A.submatrix j.succAbove h.succAbove).det = 0

tactic: rw [Pi.single_eq_of_ne hjk, mul_zero, zero_mul]
state_before: m : Type u
n✝ : Type v
α : Type w
inst✝⁴ : DecidableEq n✝
inst✝³ : Fintype n✝
inst✝² : DecidableEq m
inst✝¹ : Fintype m
inst✝ : CommRing α
n : ℕ
A : Matrix (Fin n.succ) (Fin n.succ) α
i j h : Fin n.succ
hjk : h ≠ i
⊢ (-1) ^ (↑j + ↑h) * Pi.single i 1 h * (A.submatrix j.succAbove h.succAbove).det = 0
state_after: no goals
Theorem: PartialHomeomorph.extend_source
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [extend, PartialEquiv.trans_source, I.source_eq, preimage_univ, inter_univ]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
⊢ (f.extend I).source = f.source
state_after: no goals
Theorem: BoxIntegral.IntegrationParams.exists_memBaseSet_isPartition
File: Mathlib/Analysis/BoxIntegral/Partition/Filter.lean

tactic: rw [← Prepartition.distortion_top] at hc
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
hc : I.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.IsPartition
state_after: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
hc : ⊤.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.IsPartition

tactic: have hc' : (⊤ : Prepartition I).compl.distortion ≤ c := by simp
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
hc : ⊤.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.IsPartition
state_after: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
hc : ⊤.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
hc' : ⊤.compl.distortion ≤ c
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.IsPartition

tactic: simpa [isPartition_iff_iUnion_eq] using l.exists_memBaseSet_le_iUnion_eq ⊤ hc hc' r
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
hc : ⊤.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
hc' : ⊤.compl.distortion ≤ c
⊢ ∃ π, l.MemBaseSet I c r π ∧ π.IsPartition
state_after: no goals

tactic: simp
state_before: ι : Type u_1
inst✝ : Fintype ι
I✝ J : Box ι
c c₁ c₂ : ℝ≥0
r✝ r₁ r₂ : (ι → ℝ) → ↑(Set.Ioi 0)
π π₁ π₂ : TaggedPrepartition I✝
l✝ l₁ l₂ l : IntegrationParams
I : Box ι
hc : ⊤.distortion ≤ c
r : (ι → ℝ) → ↑(Set.Ioi 0)
⊢ ⊤.compl.distortion ≤ c
state_after: no goals
Theorem: Subspace.isCompl_dualAnnihilator
File: Mathlib/LinearAlgebra/Dual.lean

tactic: rw [isCompl_iff, disjoint_iff, codisjoint_iff] at h ⊢
state_before: K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W W' : Subspace K V₁
h : IsCompl W W'
⊢ IsCompl (dualAnnihilator W) (dualAnnihilator W')
state_after: K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W W' : Subspace K V₁
h : W ⊓ W' = ⊥ ∧ W ⊔ W' = ⊤
⊢ dualAnnihilator W ⊓ dualAnnihilator W' = ⊥ ∧ dualAnnihilator W ⊔ dualAnnihilator W' = ⊤

tactic: rw [← dualAnnihilator_inf_eq, ← dualAnnihilator_sup_eq, h.1, h.2, dualAnnihilator_top,
  dualAnnihilator_bot]
state_before: K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W W' : Subspace K V₁
h : W ⊓ W' = ⊥ ∧ W ⊔ W' = ⊤
⊢ dualAnnihilator W ⊓ dualAnnihilator W' = ⊥ ∧ dualAnnihilator W ⊔ dualAnnihilator W' = ⊤
state_after: K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W W' : Subspace K V₁
h : W ⊓ W' = ⊥ ∧ W ⊔ W' = ⊤
⊢ ⊥ = ⊥ ∧ ⊤ = ⊤

tactic: exact ⟨rfl, rfl⟩
state_before: K : Type uK
inst✝⁴ : Field K
V₁ : Type uV₁
V₂ : Type uV₂
inst✝³ : AddCommGroup V₁
inst✝² : Module K V₁
inst✝¹ : AddCommGroup V₂
inst✝ : Module K V₂
W W' : Subspace K V₁
h : W ⊓ W' = ⊥ ∧ W ⊔ W' = ⊤
⊢ ⊥ = ⊥ ∧ ⊤ = ⊤
state_after: no goals
Theorem: Commute.mul_self_sub_mul_self_eq'
File: Mathlib/Algebra/Ring/Commute.lean

tactic: rw [mul_add, sub_mul, sub_mul, h.eq, sub_add_sub_cancel]
state_before: α : Type u
β : Type v
γ : Type w
R : Type x
inst✝ : NonUnitalNonAssocRing R
a b : R
h : Commute a b
⊢ a * a - b * b = (a - b) * (a + b)
state_after: no goals
Theorem: Sym.coe_equivNatSumOfFintype_symm_apply
File: Mathlib/Data/Finsupp/Multiset.lean

tactic: obtain ⟨P, hP⟩ := P
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : { P // ∑ i : α, P i = n }
⊢ ↑((equivNatSumOfFintype α n).symm P) = ∑ a : α, ↑P a • {a}
state_after: case mk
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
⊢ ↑((equivNatSumOfFintype α n).symm ⟨P, hP⟩) = ∑ a : α, ↑⟨P, hP⟩ a • {a}

tactic: change Finsupp.toMultiset (Finsupp.equivFunOnFinite.symm P) = Multiset.sum _
state_before: case mk
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
⊢ ↑((equivNatSumOfFintype α n).symm ⟨P, hP⟩) = ∑ a : α, ↑⟨P, hP⟩ a • {a}
state_after: case mk
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
⊢ Finsupp.toMultiset (Finsupp.equivFunOnFinite.symm P) = (Multiset.map (fun a => ↑⟨P, hP⟩ a • {a}) univ.val).sum

tactic: ext a
state_before: case mk
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
⊢ Finsupp.toMultiset (Finsupp.equivFunOnFinite.symm P) = (Multiset.map (fun a => ↑⟨P, hP⟩ a • {a}) univ.val).sum
state_after: case mk.a
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
a : α
⊢ Multiset.count a (Finsupp.toMultiset (Finsupp.equivFunOnFinite.symm P)) =
    Multiset.count a (Multiset.map (fun a => ↑⟨P, hP⟩ a • {a}) univ.val).sum

tactic: rw [Multiset.count_sum]
state_before: case mk.a
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
a : α
⊢ Multiset.count a (Finsupp.toMultiset (Finsupp.equivFunOnFinite.symm P)) =
    Multiset.count a (Multiset.map (fun a => ↑⟨P, hP⟩ a • {a}) univ.val).sum
state_after: case mk.a
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
a : α
⊢ Multiset.count a (Finsupp.toMultiset (Finsupp.equivFunOnFinite.symm P)) =
    (Multiset.map (fun b => Multiset.count a (↑⟨P, hP⟩ b • {b})) univ.val).sum

tactic: simp [Multiset.count_singleton]
state_before: case mk.a
α : Type u_1
β : Type u_2
ι : Type u_3
inst✝¹ : DecidableEq α
n : ℕ
inst✝ : Fintype α
P : α → ℕ
hP : ∑ i : α, P i = n
a : α
⊢ Multiset.count a (Finsupp.toMultiset (Finsupp.equivFunOnFinite.symm P)) =
    (Multiset.map (fun b => Multiset.count a (↑⟨P, hP⟩ b • {b})) univ.val).sum
state_after: no goals
Theorem: exists_clusterPt_of_compactSpace
File: Mathlib/Topology/Compactness/Compact.lean

tactic: simpa using isCompact_univ (show f ≤ 𝓟 univ by simp)
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
s t : Set X
inst✝¹ : CompactSpace X
f : Filter X
inst✝ : f.NeBot
⊢ ∃ x, ClusterPt x f
state_after: no goals

tactic: simp
state_before: X : Type u
Y : Type v
ι : Type u_1
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
s t : Set X
inst✝¹ : CompactSpace X
f : Filter X
inst✝ : f.NeBot
⊢ f ≤ 𝓟 univ
state_after: no goals
Theorem: Equiv.pow_addRight
File: Mathlib/GroupTheory/Perm/Basic.lean

tactic: ext
state_before: α : Type u
β : Type v
inst✝ : AddGroup α
a b : α
n : ℕ
⊢ Equiv.addRight a ^ n = Equiv.addRight (n • a)
state_after: case H
α : Type u
β : Type v
inst✝ : AddGroup α
a b : α
n : ℕ
x✝ : α
⊢ (Equiv.addRight a ^ n) x✝ = (Equiv.addRight (n • a)) x✝

tactic: simp [Perm.coe_pow]
state_before: case H
α : Type u
β : Type v
inst✝ : AddGroup α
a b : α
n : ℕ
x✝ : α
⊢ (Equiv.addRight a ^ n) x✝ = (Equiv.addRight (n • a)) x✝
state_after: no goals
Theorem: smul_nonneg
File: Mathlib/Algebra/Order/Module/Defs.lean

tactic: simpa only [smul_zero] using smul_le_smul_of_nonneg_left hb ha
state_before: α : Type u_1
β : Type u_2
a a₁ a₂ : α
b b₁ b₂ : β
inst✝⁵ : Zero α
inst✝⁴ : Zero β
inst✝³ : SMulZeroClass α β
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : PosSMulMono α β
ha : 0 ≤ a
hb : 0 ≤ b₁
⊢ 0 ≤ a • b₁
state_after: no goals
Theorem: measure_le_lintegral_thickenedIndicator
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: convert measure_le_lintegral_thickenedIndicatorAux μ E_mble δ
state_before: X : Type u_1
Y : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace X
inst✝ : PseudoEMetricSpace X
μ : Measure X
E : Set X
E_mble : MeasurableSet E
δ : ℝ
δ_pos : 0 < δ
⊢ μ E ≤ ∫⁻ (x : X), ↑((thickenedIndicator δ_pos E) x) ∂μ
state_after: case h.e'_4.h.e'_4.h
X : Type u_1
Y : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace X
inst✝ : PseudoEMetricSpace X
μ : Measure X
E : Set X
E_mble : MeasurableSet E
δ : ℝ
δ_pos : 0 < δ
x✝ : X
⊢ ↑((thickenedIndicator δ_pos E) x✝) = thickenedIndicatorAux δ E x✝

tactic: dsimp
state_before: case h.e'_4.h.e'_4.h
X : Type u_1
Y : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace X
inst✝ : PseudoEMetricSpace X
μ : Measure X
E : Set X
E_mble : MeasurableSet E
δ : ℝ
δ_pos : 0 < δ
x✝ : X
⊢ ↑((thickenedIndicator δ_pos E) x✝) = thickenedIndicatorAux δ E x✝
state_after: case h.e'_4.h.e'_4.h
X : Type u_1
Y : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace X
inst✝ : PseudoEMetricSpace X
μ : Measure X
E : Set X
E_mble : MeasurableSet E
δ : ℝ
δ_pos : 0 < δ
x✝ : X
⊢ ↑(thickenedIndicatorAux δ E x✝).toNNReal = thickenedIndicatorAux δ E x✝

tactic: simp only [thickenedIndicatorAux_lt_top.ne, ENNReal.coe_toNNReal, Ne, not_false_iff]
state_before: case h.e'_4.h.e'_4.h
X : Type u_1
Y : Type u_2
E✝ : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace X
inst✝ : PseudoEMetricSpace X
μ : Measure X
E : Set X
E_mble : MeasurableSet E
δ : ℝ
δ_pos : 0 < δ
x✝ : X
⊢ ↑(thickenedIndicatorAux δ E x✝).toNNReal = thickenedIndicatorAux δ E x✝
state_after: no goals
Theorem: Fin.enum_zero
File: .lake/packages/batteries/Batteries/Data/Fin/Lemmas.lean

tactic: simp [enum, Array.ofFn, Array.ofFn.go]
state_before: ⊢ enum 0 = #[]
state_after: no goals
Theorem: IsGδ.dense_sUnion_interior_of_closed
File: Mathlib/Topology/Baire/Lemmas.lean

tactic: rwa [← sUnion_eq_biUnion]
state_before: X : Type u_1
α : Type u_2
ι : Sort u_3
inst✝¹ : TopologicalSpace X
inst✝ : BaireSpace X
T : Set (Set X)
s : Set X
hs : IsGδ s
hd : Dense s
hc : T.Countable
hc' : ∀ t ∈ T, IsClosed t
hU : s ⊆ ⋃₀ T
⊢ s ⊆ ⋃ i ∈ T, i
state_after: no goals
Theorem: ProperCone.pointed_zero
File: Mathlib/Analysis/Convex/Cone/Proper.lean

tactic: simp [ConvexCone.pointed_zero]
state_before: 𝕜 : Type u_1
inst✝⁴ : OrderedSemiring 𝕜
E : Type u_2
inst✝³ : AddCommMonoid E
inst✝² : TopologicalSpace E
inst✝¹ : T1Space E
inst✝ : Module 𝕜 E
⊢ (↑↑0).Pointed
state_after: no goals
Theorem: Fin.prod_const
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
inst✝ : CommMonoid α
n : ℕ
x : α
⊢ ∏ _i : Fin n, x = x ^ n
state_after: no goals
Theorem: CategoryTheory.Limits.colimit.ι_post
File: Mathlib/CategoryTheory/Limits/HasLimits.lean

tactic: erw [IsColimit.fac]
state_before: J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasColimit F
G : C ⥤ D
inst✝ : HasColimit (F ⋙ G)
j : J
⊢ ι (F ⋙ G) j ≫ post F G = G.map (ι F j)
state_after: J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasColimit F
G : C ⥤ D
inst✝ : HasColimit (F ⋙ G)
j : J
⊢ (G.mapCocone (cocone F)).ι.app j = G.map (ι F j)

tactic: rfl
state_before: J : Type u₁
inst✝⁵ : Category.{v₁, u₁} J
K : Type u₂
inst✝⁴ : Category.{v₂, u₂} K
C : Type u
inst✝³ : Category.{v, u} C
F : J ⥤ C
D : Type u'
inst✝² : Category.{v', u'} D
inst✝¹ : HasColimit F
G : C ⥤ D
inst✝ : HasColimit (F ⋙ G)
j : J
⊢ (G.mapCocone (cocone F)).ι.app j = G.map (ι F j)
state_after: no goals
Theorem: Filter.hasBasis_principal
File: Mathlib/Order/Filter/Bases.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l l' : Filter α
p : ι → Prop
s : ι → Set α
t✝ : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
t U : Set α
⊢ U ∈ 𝓟 t ↔ ∃ i, True ∧ t ⊆ U
state_after: no goals
Theorem: Nat.primeFactors_prod
File: Mathlib/Data/Nat/Squarefree.lean

tactic: have hn : ∏ p ∈ s, p ≠ 0 := prod_ne_zero_iff.2 fun p hp ↦ (hs _ hp).ne_zero
state_before: s : Finset ℕ
m n p : ℕ
hs : ∀ p ∈ s, Prime p
⊢ (∏ p ∈ s, p).primeFactors = s
state_after: s : Finset ℕ
m n p : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
⊢ (∏ p ∈ s, p).primeFactors = s

tactic: ext p
state_before: s : Finset ℕ
m n p : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
⊢ (∏ p ∈ s, p).primeFactors = s
state_after: case a
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
⊢ p ∈ (∏ p ∈ s, p).primeFactors ↔ p ∈ s

tactic: rw [mem_primeFactors_of_ne_zero hn, and_congr_right (fun hp ↦ hp.prime.dvd_finset_prod_iff _)]
state_before: case a
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
⊢ p ∈ (∏ p ∈ s, p).primeFactors ↔ p ∈ s
state_after: case a
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
⊢ (Prime p ∧ ∃ a ∈ s, p ∣ a) ↔ p ∈ s

tactic: refine ⟨?_, fun hp ↦ ⟨hs _ hp, _, hp, dvd_rfl⟩⟩
state_before: case a
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
⊢ (Prime p ∧ ∃ a ∈ s, p ∣ a) ↔ p ∈ s
state_after: case a
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
⊢ (Prime p ∧ ∃ a ∈ s, p ∣ a) → p ∈ s

tactic: rintro ⟨hp, q, hq, hpq⟩
state_before: case a
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
⊢ (Prime p ∧ ∃ a ∈ s, p ∣ a) → p ∈ s
state_after: case a.intro.intro.intro
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
hp : Prime p
q : ℕ
hq : q ∈ s
hpq : p ∣ q
⊢ p ∈ s

tactic: rwa [← ((hs _ hq).dvd_iff_eq hp.ne_one).1 hpq]
state_before: case a.intro.intro.intro
s : Finset ℕ
m n p✝ : ℕ
hs : ∀ p ∈ s, Prime p
hn : ∏ p ∈ s, p ≠ 0
p : ℕ
hp : Prime p
q : ℕ
hq : q ∈ s
hpq : p ∣ q
⊢ p ∈ s
state_after: no goals
Theorem: Finset.Colex.toColex_sdiff_le_toColex_sdiff
File: Mathlib/Combinatorics/Colex.lean

tactic: simp_rw [toColex_le_toColex, ← and_imp, ← and_assoc, ← mem_sdiff,
  sdiff_sdiff_sdiff_cancel_right hus, sdiff_sdiff_sdiff_cancel_right hut]
state_before: α : Type u_1
β : Type u_2
inst✝² : PartialOrder α
inst✝¹ : PartialOrder β
f : α → β
𝒜 𝒜₁ 𝒜₂ : Finset (Finset α)
s t u : Finset α
a b : α
inst✝ : DecidableEq α
hus : u ⊆ s
hut : u ⊆ t
⊢ { ofColex := s \ u } ≤ { ofColex := t \ u } ↔ { ofColex := s } ≤ { ofColex := t }
state_after: no goals
Theorem: Bornology.IsVonNBounded.add
File: Mathlib/Analysis/LocallyConvex/Bounded.lean

tactic: rcases exists_open_nhds_zero_add_subset hU with ⟨V, hVo, hV, hVU⟩
state_before: 𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddZeroClass E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousAdd E
inst✝ : DistribSMul 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
ht : IsVonNBounded 𝕜 t
U : Set E
hU : U ∈ 𝓝 0
⊢ Absorbs 𝕜 U (s + t)
state_after: case intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddZeroClass E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousAdd E
inst✝ : DistribSMul 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
ht : IsVonNBounded 𝕜 t
U : Set E
hU : U ∈ 𝓝 0
V : Set E
hVo : IsOpen V
hV : 0 ∈ V
hVU : V + V ⊆ U
⊢ Absorbs 𝕜 U (s + t)

tactic: exact ((hs <| hVo.mem_nhds hV).add (ht <| hVo.mem_nhds hV)).mono_left hVU
state_before: case intro.intro.intro
𝕜 : Type u_1
𝕜' : Type u_2
E : Type u_3
E' : Type u_4
F : Type u_5
ι : Type u_6
inst✝⁴ : SeminormedRing 𝕜
inst✝³ : AddZeroClass E
inst✝² : TopologicalSpace E
inst✝¹ : ContinuousAdd E
inst✝ : DistribSMul 𝕜 E
s t : Set E
hs : IsVonNBounded 𝕜 s
ht : IsVonNBounded 𝕜 t
U : Set E
hU : U ∈ 𝓝 0
V : Set E
hVo : IsOpen V
hV : 0 ∈ V
hVU : V + V ⊆ U
⊢ Absorbs 𝕜 U (s + t)
state_after: no goals