1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: cfcUnits_pow
File: Mathlib/Topology/ContinuousFunction/FunctionalCalculus.lean

tactic: ext
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Semifield R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : TopologicalSemiring R
inst✝⁶ : ContinuousStar R
inst✝⁵ : HasContinuousInv₀ R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f : R → R
a : A
hf' : ∀ x ∈ spectrum R a, f x ≠ 0
n : ℕ
hf : autoParam (ContinuousOn f (spectrum R a)) _auto✝
ha : autoParam (p a) _auto✝
⊢ cfcUnits f a hf' hf ha ^ n = cfcUnits (fun x => f x ^ n) a ⋯ ⋯ ha
state_after: case a
R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Semifield R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : TopologicalSemiring R
inst✝⁶ : ContinuousStar R
inst✝⁵ : HasContinuousInv₀ R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f : R → R
a : A
hf' : ∀ x ∈ spectrum R a, f x ≠ 0
n : ℕ
hf : autoParam (ContinuousOn f (spectrum R a)) _auto✝
ha : autoParam (p a) _auto✝
⊢ ↑(cfcUnits f a hf' hf ha ^ n) = ↑(cfcUnits (fun x => f x ^ n) a ⋯ ⋯ ha)

tactic: cases n with
| zero => simp [cfc_const_one R a]
| succ n => simp [cfc_pow f _ a]
state_before: case a
R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Semifield R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : TopologicalSemiring R
inst✝⁶ : ContinuousStar R
inst✝⁵ : HasContinuousInv₀ R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f : R → R
a : A
hf' : ∀ x ∈ spectrum R a, f x ≠ 0
n : ℕ
hf : autoParam (ContinuousOn f (spectrum R a)) _auto✝
ha : autoParam (p a) _auto✝
⊢ ↑(cfcUnits f a hf' hf ha ^ n) = ↑(cfcUnits (fun x => f x ^ n) a ⋯ ⋯ ha)
state_after: no goals

tactic: simp [cfc_const_one R a]
state_before: case a.zero
R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Semifield R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : TopologicalSemiring R
inst✝⁶ : ContinuousStar R
inst✝⁵ : HasContinuousInv₀ R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f : R → R
a : A
hf' : ∀ x ∈ spectrum R a, f x ≠ 0
hf : autoParam (ContinuousOn f (spectrum R a)) _auto✝
ha : autoParam (p a) _auto✝
⊢ ↑(cfcUnits f a hf' hf ha ^ 0) = ↑(cfcUnits (fun x => f x ^ 0) a ⋯ ⋯ ha)
state_after: no goals

tactic: simp [cfc_pow f _ a]
state_before: case a.succ
R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹⁰ : Semifield R
inst✝⁹ : StarRing R
inst✝⁸ : MetricSpace R
inst✝⁷ : TopologicalSemiring R
inst✝⁶ : ContinuousStar R
inst✝⁵ : HasContinuousInv₀ R
inst✝⁴ : TopologicalSpace A
inst✝³ : Ring A
inst✝² : StarRing A
inst✝¹ : Algebra R A
inst✝ : ContinuousFunctionalCalculus R p
f : R → R
a : A
hf' : ∀ x ∈ spectrum R a, f x ≠ 0
hf : autoParam (ContinuousOn f (spectrum R a)) _auto✝
ha : autoParam (p a) _auto✝
n : ℕ
⊢ ↑(cfcUnits f a hf' hf ha ^ (n + 1)) = ↑(cfcUnits (fun x => f x ^ (n + 1)) a ⋯ ⋯ ha)
state_after: no goals
Theorem: le_max_right
File: Mathlib/Init/Order/LinearOrder.lean

tactic: if h : a ≤ b
then simp [max_def, if_pos h, le_refl]
else simp [max_def, if_neg h]; exact le_of_not_le h
state_before: α : Type u
inst✝ : LinearOrder α
a b : α
⊢ b ≤ max a b
state_after: no goals

tactic: simp [max_def, if_pos h, le_refl]
state_before: α : Type u
inst✝ : LinearOrder α
a b : α
h : a ≤ b
⊢ b ≤ max a b
state_after: no goals

tactic: simp [max_def, if_neg h]
state_before: α : Type u
inst✝ : LinearOrder α
a b : α
h : ¬a ≤ b
⊢ b ≤ max a b
state_after: α : Type u
inst✝ : LinearOrder α
a b : α
h : ¬a ≤ b
⊢ b ≤ a

tactic: exact le_of_not_le h
state_before: α : Type u
inst✝ : LinearOrder α
a b : α
h : ¬a ≤ b
⊢ b ≤ a
state_after: no goals
Theorem: List.Sorted.le_head!
File: Mathlib/Data/List/Sort.lean

tactic: rw [← List.cons_head!_tail (List.ne_nil_of_mem ha)] at h ha
state_before: α : Type u
r : α → α → Prop
a✝ : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
a : α
l : List α
h : Sorted (fun x x_1 => x > x_1) l
ha : a ∈ l
⊢ a ≤ l.head!
state_after: α : Type u
r : α → α → Prop
a✝ : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
a : α
l : List α
h : Sorted (fun x x_1 => x > x_1) (l.head! :: l.tail)
ha : a ∈ l.head! :: l.tail
⊢ a ≤ l.head!

tactic: cases ha
state_before: α : Type u
r : α → α → Prop
a✝ : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
a : α
l : List α
h : Sorted (fun x x_1 => x > x_1) (l.head! :: l.tail)
ha : a ∈ l.head! :: l.tail
⊢ a ≤ l.head!
state_after: case head
α : Type u
r : α → α → Prop
a : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
l : List α
h : Sorted (fun x x_1 => x > x_1) (l.head! :: l.tail)
⊢ l.head! ≤ l.head!

case tail
α : Type u
r : α → α → Prop
a✝¹ : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
a : α
l : List α
h : Sorted (fun x x_1 => x > x_1) (l.head! :: l.tail)
a✝ : Mem a l.tail
⊢ a ≤ l.head!

tactic: exact le_rfl
state_before: case head
α : Type u
r : α → α → Prop
a : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
l : List α
h : Sorted (fun x x_1 => x > x_1) (l.head! :: l.tail)
⊢ l.head! ≤ l.head!
state_after: no goals

tactic: exact le_of_lt (rel_of_sorted_cons h a (by assumption))
state_before: case tail
α : Type u
r : α → α → Prop
a✝¹ : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
a : α
l : List α
h : Sorted (fun x x_1 => x > x_1) (l.head! :: l.tail)
a✝ : Mem a l.tail
⊢ a ≤ l.head!
state_after: no goals

tactic: assumption
state_before: α : Type u
r : α → α → Prop
a✝¹ : α
l✝ : List α
inst✝¹ : Inhabited α
inst✝ : Preorder α
a : α
l : List α
h : Sorted (fun x x_1 => x > x_1) (l.head! :: l.tail)
a✝ : Mem a l.tail
⊢ a ∈ l.tail
state_after: no goals
Theorem: isBoundedBilinearMap_mul
File: Mathlib/Analysis/NormedSpace/BoundedLinearMaps.lean

tactic: simp_rw [← smul_eq_mul]
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E × F → G
⊢ IsBoundedBilinearMap 𝕜 fun p => p.1 * p.2
state_after: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E × F → G
⊢ IsBoundedBilinearMap 𝕜 fun p => p.1 • p.2

tactic: exact isBoundedBilinearMap_smul
state_before: 𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
F : Type u_3
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
G : Type u_4
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : E × F → G
⊢ IsBoundedBilinearMap 𝕜 fun p => p.1 • p.2
state_after: no goals
Theorem: MeasureTheory.integrableOn_univ
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rw [IntegrableOn, Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
⊢ IntegrableOn f univ μ ↔ Integrable f μ
state_after: no goals
Theorem: Filter.eventually_all_finite
File: Mathlib/Order/Filter/Basic.lean

tactic: simpa only [Filter.Eventually, setOf_forall] using biInter_mem hI
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι✝ : Sort x
ι : Type u_2
I : Set ι
hI : I.Finite
l : Filter α
p : ι → α → Prop
⊢ (∀ᶠ (x : α) in l, ∀ i ∈ I, p i x) ↔ ∀ i ∈ I, ∀ᶠ (x : α) in l, p i x
state_after: no goals
Theorem: Real.tendsto_abs_tan_of_cos_eq_zero
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean

tactic: have hx : Complex.cos x = 0 := mod_cast hx
state_before: x : ℝ
hx : cos x = 0
⊢ Tendsto (fun x => |tan x|) (𝓝[≠] x) atTop
state_after: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto (fun x => |tan x|) (𝓝[≠] x) atTop

tactic: simp only [← Complex.abs_ofReal, Complex.ofReal_tan]
state_before: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto (fun x => |tan x|) (𝓝[≠] x) atTop
state_after: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto (fun x => Complex.abs (Complex.tan ↑x)) (𝓝[≠] x) atTop

tactic: refine (Complex.tendsto_abs_tan_of_cos_eq_zero hx).comp ?_
state_before: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto (fun x => Complex.abs (Complex.tan ↑x)) (𝓝[≠] x) atTop
state_after: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto Complex.ofReal' (𝓝[≠] x) (𝓝[≠] ↑x)

tactic: refine Tendsto.inf Complex.continuous_ofReal.continuousAt ?_
state_before: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto Complex.ofReal' (𝓝[≠] x) (𝓝[≠] ↑x)
state_after: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto Complex.ofReal' (𝓟 {x}ᶜ) (𝓟 {↑x}ᶜ)

tactic: exact tendsto_principal_principal.2 fun y => mt Complex.ofReal_inj.1
state_before: x : ℝ
hx✝ : cos x = 0
hx : Complex.cos ↑x = 0
⊢ Tendsto Complex.ofReal' (𝓟 {x}ᶜ) (𝓟 {↑x}ᶜ)
state_after: no goals
Theorem: Finset.mem_upShadow_iff
File: Mathlib/Combinatorics/SetFamily/Shadow.lean

tactic: simp_rw [upShadow, mem_sup, mem_image, mem_compl]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
𝒜 : Finset (Finset α)
s t : Finset α
a : α
k r : ℕ
⊢ t ∈ ∂⁺ 𝒜 ↔ ∃ s ∈ 𝒜, ∃ a ∉ s, insert a s = t
state_after: no goals
Theorem: Finset.nonempty_iff_eq_singleton_default
File: Mathlib/Data/Finset/Basic.lean

tactic: simp [eq_singleton_iff_nonempty_unique_mem, eq_iff_true_of_subsingleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s✝ : Finset α
a b : α
inst✝ : Unique α
s : Finset α
⊢ s.Nonempty ↔ s = {default}
state_after: no goals
Theorem: Real.ediam_eq
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: rcases eq_empty_or_nonempty s with (rfl | hne)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
⊢ EMetric.diam s = ENNReal.ofReal (sSup s - sInf s)
state_after: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
h : Bornology.IsBounded ∅
⊢ EMetric.diam ∅ = ENNReal.ofReal (sSup ∅ - sInf ∅)

case inr
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ EMetric.diam s = ENNReal.ofReal (sSup s - sInf s)

tactic: refine le_antisymm (Metric.ediam_le_of_forall_dist_le fun x hx y hy => ?_) ?_
state_before: case inr
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ EMetric.diam s = ENNReal.ofReal (sSup s - sInf s)
state_after: case inr.refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
x : ℝ
hx : x ∈ s
y : ℝ
hy : y ∈ s
⊢ dist x y ≤ sSup s - sInf s

case inr.refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ ENNReal.ofReal (sSup s - sInf s) ≤ EMetric.diam s

tactic: simp
state_before: case inl
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
h : Bornology.IsBounded ∅
⊢ EMetric.diam ∅ = ENNReal.ofReal (sSup ∅ - sInf ∅)
state_after: no goals

tactic: exact Real.dist_le_of_mem_Icc (h.subset_Icc_sInf_sSup hx) (h.subset_Icc_sInf_sSup hy)
state_before: case inr.refine_1
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
x : ℝ
hx : x ∈ s
y : ℝ
hy : y ∈ s
⊢ dist x y ≤ sSup s - sInf s
state_after: no goals

tactic: apply ENNReal.ofReal_le_of_le_toReal
state_before: case inr.refine_2
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ ENNReal.ofReal (sSup s - sInf s) ≤ EMetric.diam s
state_after: case inr.refine_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ sSup s - sInf s ≤ (EMetric.diam s).toReal

tactic: rw [← Metric.diam, ← Metric.diam_closure]
state_before: case inr.refine_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ sSup s - sInf s ≤ (EMetric.diam s).toReal
state_after: case inr.refine_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ sSup s - sInf s ≤ Metric.diam (closure s)

tactic: calc sSup s - sInf s ≤ dist (sSup s) (sInf s) := le_abs_self _
_ ≤ Metric.diam (closure s) := dist_le_diam_of_mem h.closure (csSup_mem_closure hne h.bddAbove)
    (csInf_mem_closure hne h.bddBelow)
state_before: case inr.refine_2.h
α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : PseudoEMetricSpace α
s : Set ℝ
h : Bornology.IsBounded s
hne : s.Nonempty
⊢ sSup s - sInf s ≤ Metric.diam (closure s)
state_after: no goals
Theorem: Multiset.fold_union_inter
File: Mathlib/Data/Multiset/Fold.lean

tactic: rw [← fold_add op, union_add_inter, fold_add op]
state_before: α : Type u_1
β : Type u_2
op : α → α → α
hc : Std.Commutative op
ha : Std.Associative op
inst✝ : DecidableEq α
s₁ s₂ : Multiset α
b₁ b₂ : α
⊢ op (fold op b₁ (s₁ ∪ s₂)) (fold op b₂ (s₁ ∩ s₂)) = op (fold op b₁ s₁) (fold op b₂ s₂)
state_after: no goals
Theorem: Fin.partialProd_succ'
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: simp [partialProd]
state_before: α : Type u_1
β : Type u_2
inst✝ : Monoid α
n : ℕ
f : Fin (n + 1) → α
j : Fin (n + 1)
⊢ partialProd f j.succ = f 0 * partialProd (tail f) j
state_after: α : Type u_1
β : Type u_2
inst✝ : Monoid α
n : ℕ
f : Fin (n + 1) → α
j : Fin (n + 1)
⊢ f 0 * (List.take (↑j) (List.ofFn fun i => f i.succ)).prod = f 0 * (List.take (↑j) (List.ofFn (tail f))).prod

tactic: rfl
state_before: α : Type u_1
β : Type u_2
inst✝ : Monoid α
n : ℕ
f : Fin (n + 1) → α
j : Fin (n + 1)
⊢ f 0 * (List.take (↑j) (List.ofFn fun i => f i.succ)).prod = f 0 * (List.take (↑j) (List.ofFn (tail f))).prod
state_after: no goals
Theorem: MvPolynomial.degreeOf_le_iff
File: Mathlib/Algebra/MvPolynomial/Degrees.lean

tactic: rw [degreeOf_eq_sup, Finset.sup_le_iff]
state_before: R : Type u
S : Type v
σ : Type u_1
τ : Type u_2
r : R
e : ℕ
n✝ m : σ
s : σ →₀ ℕ
inst✝ : CommSemiring R
p q : MvPolynomial σ R
n : σ
f : MvPolynomial σ R
d : ℕ
⊢ degreeOf n f ≤ d ↔ ∀ m ∈ f.support, m n ≤ d
state_after: no goals
Theorem: IsLocalization.AtPrime.comap_maximalIdeal
File: Mathlib/RingTheory/Localization/AtPrime.lean

tactic: simpa only [Ideal.mem_comap] using to_map_mem_maximal_iff _ I x
state_before: R : Type u_1
inst✝⁶ : CommSemiring R
M : Submonoid R
S : Type u_2
inst✝⁵ : CommSemiring S
inst✝⁴ : Algebra R S
P : Type u_3
inst✝³ : CommSemiring P
A : Type u_4
inst✝² : CommRing A
inst✝¹ : IsDomain A
I : Ideal R
hI : I.IsPrime
inst✝ : IsLocalization.AtPrime S I
h : optParam (LocalRing S) ⋯
x : R
⊢ x ∈ Ideal.comap (algebraMap R S) (LocalRing.maximalIdeal S) ↔ x ∈ I
state_after: no goals
Theorem: WittVector.iterate_frobenius_coeff
File: Mathlib/RingTheory/WittVector/Identities.lean

tactic: induction' i with i ih
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
i k : ℕ
⊢ ((⇑frobenius)^[i] x).coeff k = x.coeff k ^ p ^ i
state_after: case zero
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
k : ℕ
⊢ ((⇑frobenius)^[0] x).coeff k = x.coeff k ^ p ^ 0

case succ
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
k i : ℕ
ih : ((⇑frobenius)^[i] x).coeff k = x.coeff k ^ p ^ i
⊢ ((⇑frobenius)^[i + 1] x).coeff k = x.coeff k ^ p ^ (i + 1)

tactic: simp
state_before: case zero
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
k : ℕ
⊢ ((⇑frobenius)^[0] x).coeff k = x.coeff k ^ p ^ 0
state_after: no goals

tactic: rw [iterate_succ_apply', coeff_frobenius_charP, ih, Nat.pow_succ]
state_before: case succ
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
k i : ℕ
ih : ((⇑frobenius)^[i] x).coeff k = x.coeff k ^ p ^ i
⊢ ((⇑frobenius)^[i + 1] x).coeff k = x.coeff k ^ p ^ (i + 1)
state_after: case succ
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
k i : ℕ
ih : ((⇑frobenius)^[i] x).coeff k = x.coeff k ^ p ^ i
⊢ (x.coeff k ^ p ^ i) ^ p = x.coeff k ^ (p ^ i * p)

tactic: ring_nf
state_before: case succ
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CharP R p
x : 𝕎 R
k i : ℕ
ih : ((⇑frobenius)^[i] x).coeff k = x.coeff k ^ p ^ i
⊢ (x.coeff k ^ p ^ i) ^ p = x.coeff k ^ (p ^ i * p)
state_after: no goals
Theorem: Cardinal.aleph0_mul_nat
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [mul_comm, nat_mul_aleph0 hn]
state_before: α β : Type u
n : ℕ
hn : n ≠ 0
⊢ ℵ₀ * ↑n = ℵ₀
state_after: no goals
Theorem: List.eraseP_map
File: .lake/packages/batteries/Batteries/Data/List/Lemmas.lean

tactic: by_cases h : p (f b) <;> simp [h, eraseP_map f l, eraseP_cons_of_pos]
state_before: β : Type u_1
α : Type u_2
p : α → Bool
f : β → α
b : β
l : List β
⊢ eraseP p (map f (b :: l)) = map f (eraseP (p ∘ f) (b :: l))
state_after: no goals
Theorem: MeasureTheory.inter_cylinder_same
File: Mathlib/MeasureTheory/Constructions/Cylinders.lean

tactic: classical rw [inter_cylinder]; rfl
state_before: ι : Type u_1
α : ι → Type u_2
s : Finset ι
S₁ S₂ : Set ((i : { x // x ∈ s }) → α ↑i)
⊢ cylinder s S₁ ∩ cylinder s S₂ = cylinder s (S₁ ∩ S₂)
state_after: no goals

tactic: rw [inter_cylinder]
state_before: ι : Type u_1
α : ι → Type u_2
s : Finset ι
S₁ S₂ : Set ((i : { x // x ∈ s }) → α ↑i)
⊢ cylinder s S₁ ∩ cylinder s S₂ = cylinder s (S₁ ∩ S₂)
state_after: ι : Type u_1
α : ι → Type u_2
s : Finset ι
S₁ S₂ : Set ((i : { x // x ∈ s }) → α ↑i)
⊢ cylinder (s ∪ s) ((fun f j => f ⟨↑j, ⋯⟩) ⁻¹' S₁ ∩ (fun f j => f ⟨↑j, ⋯⟩) ⁻¹' S₂) = cylinder s (S₁ ∩ S₂)

tactic: rfl
state_before: ι : Type u_1
α : ι → Type u_2
s : Finset ι
S₁ S₂ : Set ((i : { x // x ∈ s }) → α ↑i)
⊢ cylinder (s ∪ s) ((fun f j => f ⟨↑j, ⋯⟩) ⁻¹' S₁ ∩ (fun f j => f ⟨↑j, ⋯⟩) ⁻¹' S₂) = cylinder s (S₁ ∩ S₂)
state_after: no goals
Theorem: summable_indicator_mod_iff
File: Mathlib/Analysis/SumOverResidueClass.lean

tactic: refine ⟨fun H ↦ ?_, fun H ↦ Summable.indicator H _⟩
state_before: m : ℕ
inst✝ : NeZero m
f : ℕ → ℝ
hf : Antitone f
k : ZMod m
⊢ Summable ({n | ↑n = k}.indicator f) ↔ Summable f
state_after: m : ℕ
inst✝ : NeZero m
f : ℕ → ℝ
hf : Antitone f
k : ZMod m
H : Summable ({n | ↑n = k}.indicator f)
⊢ Summable f

tactic: rw [Finset.sum_indicator_mod m f]
state_before: m : ℕ
inst✝ : NeZero m
f : ℕ → ℝ
hf : Antitone f
k : ZMod m
H : Summable ({n | ↑n = k}.indicator f)
⊢ Summable f
state_after: m : ℕ
inst✝ : NeZero m
f : ℕ → ℝ
hf : Antitone f
k : ZMod m
H : Summable ({n | ↑n = k}.indicator f)
⊢ Summable (∑ a : ZMod m, {n | ↑n = a}.indicator f)

tactic: convert summable_sum (s := Finset.univ)
  fun a _ ↦ summable_indicator_mod_iff_summable_indicator_mod hf a H
state_before: m : ℕ
inst✝ : NeZero m
f : ℕ → ℝ
hf : Antitone f
k : ZMod m
H : Summable ({n | ↑n = k}.indicator f)
⊢ Summable (∑ a : ZMod m, {n | ↑n = a}.indicator f)
state_after: case h.e'_5.h
m : ℕ
inst✝ : NeZero m
f : ℕ → ℝ
hf : Antitone f
k : ZMod m
H : Summable ({n | ↑n = k}.indicator f)
x✝ : ℕ
⊢ (∑ a : ZMod m, {n | ↑n = a}.indicator f) x✝ = ∑ i : ZMod m, {n | ↑n = i}.indicator f x✝

tactic: simp only [Finset.sum_apply]
state_before: case h.e'_5.h
m : ℕ
inst✝ : NeZero m
f : ℕ → ℝ
hf : Antitone f
k : ZMod m
H : Summable ({n | ↑n = k}.indicator f)
x✝ : ℕ
⊢ (∑ a : ZMod m, {n | ↑n = a}.indicator f) x✝ = ∑ i : ZMod m, {n | ↑n = i}.indicator f x✝
state_after: no goals
Theorem: innerDualCone_insert
File: Mathlib/Analysis/Convex/Cone/InnerDual.lean

tactic: rw [insert_eq, innerDualCone_union]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝¹ : NormedAddCommGroup H
inst✝ : InnerProductSpace ℝ H
s✝ t : Set H
x : H
s : Set H
⊢ (insert x s).innerDualCone = {x}.innerDualCone ⊓ s.innerDualCone
state_after: no goals
Theorem: UniqueFactorizationMonoid.mem_normalizedFactors_eq_of_associated
File: Mathlib/RingTheory/UniqueFactorizationDomain.lean

tactic: rw [← normalize_normalized_factor a ha, ← normalize_normalized_factor b hb,
  normalize_eq_normalize_iff]
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a b c : α
ha : a ∈ normalizedFactors c
hb : b ∈ normalizedFactors c
h : a ~ᵤ b
⊢ a = b
state_after: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a b c : α
ha : a ∈ normalizedFactors c
hb : b ∈ normalizedFactors c
h : a ~ᵤ b
⊢ a ∣ b ∧ b ∣ a

tactic: exact Associated.dvd_dvd h
state_before: α : Type u_1
inst✝² : CancelCommMonoidWithZero α
inst✝¹ : NormalizationMonoid α
inst✝ : UniqueFactorizationMonoid α
a b c : α
ha : a ∈ normalizedFactors c
hb : b ∈ normalizedFactors c
h : a ~ᵤ b
⊢ a ∣ b ∧ b ∣ a
state_after: no goals
Theorem: threeAPFree_sphere
File: Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean

tactic: obtain rfl | hr := eq_or_ne r 0
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
r : ℝ
⊢ ThreeAPFree (sphere x r)
state_after: case inl
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
⊢ ThreeAPFree (sphere x 0)

case inr
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
r : ℝ
hr : r ≠ 0
⊢ ThreeAPFree (sphere x r)

tactic: rw [sphere_zero]
state_before: case inl
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
⊢ ThreeAPFree (sphere x 0)
state_after: case inl
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
⊢ ThreeAPFree {x}

tactic: exact threeAPFree_singleton _
state_before: case inl
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
⊢ ThreeAPFree {x}
state_after: no goals

tactic: convert threeAPFree_frontier isClosed_ball (strictConvex_closedBall ℝ x r)
state_before: case inr
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
r : ℝ
hr : r ≠ 0
⊢ ThreeAPFree (sphere x r)
state_after: case h.e'_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
r : ℝ
hr : r ≠ 0
⊢ sphere x r = frontier (closedBall x r)

tactic: exact (frontier_closedBall _ hr).symm
state_before: case h.e'_3
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : StrictConvexSpace ℝ E
x : E
r : ℝ
hr : r ≠ 0
⊢ sphere x r = frontier (closedBall x r)
state_after: no goals
Theorem: Polynomial.natDegree_of_subsingleton
File: Mathlib/Algebra/Polynomial/Degree/Definitions.lean

tactic: rw [Subsingleton.elim p 0, natDegree_zero]
state_before: R : Type u
S : Type v
a b c d : R
n m : ℕ
inst✝¹ : Semiring R
p q r : R[X]
inst✝ : Subsingleton R
⊢ p.natDegree = 0
state_after: no goals