1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ContinuousLinearMap.norm_iteratedFDeriv_le_of_bilinear_of_le_one
File: Mathlib/Analysis/Calculus/ContDiff/Bounds.lean

tactic: simp_rw [← 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
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
hf : ContDiff 𝕜 N f
hg : ContDiff 𝕜 N g
x : D
n : ℕ
hn : ↑n ≤ N
hB : ‖B‖ ≤ 1
⊢ ‖iteratedFDeriv 𝕜 n (fun y => (B (f y)) (g y)) x‖ ≤
    ∑ i ∈ Finset.range (n + 1), ↑(n.choose i) * ‖iteratedFDeriv 𝕜 i f x‖ * ‖iteratedFDeriv 𝕜 (n - i) g 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
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
hf : ContDiff 𝕜 N f
hg : ContDiff 𝕜 N g
x : D
n : ℕ
hn : ↑n ≤ N
hB : ‖B‖ ≤ 1
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) univ x‖ ≤
    ∑ x_1 ∈ Finset.range (n + 1),
      ↑(n.choose x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f univ x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g univ x‖

tactic: exact B.norm_iteratedFDerivWithin_le_of_bilinear_of_le_one hf.contDiffOn hg.contDiffOn
  uniqueDiffOn_univ (mem_univ x) hn hB
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
B : E →L[𝕜] F →L[𝕜] G
f : D → E
g : D → F
N : ℕ∞
hf : ContDiff 𝕜 N f
hg : ContDiff 𝕜 N g
x : D
n : ℕ
hn : ↑n ≤ N
hB : ‖B‖ ≤ 1
⊢ ‖iteratedFDerivWithin 𝕜 n (fun y => (B (f y)) (g y)) univ x‖ ≤
    ∑ x_1 ∈ Finset.range (n + 1),
      ↑(n.choose x_1) * ‖iteratedFDerivWithin 𝕜 x_1 f univ x‖ * ‖iteratedFDerivWithin 𝕜 (n - x_1) g univ x‖
state_after: no goals
Theorem: smul_ne_zero_iff_right
File: Mathlib/Algebra/Module/Defs.lean

tactic: simp [hc]
state_before: α : Type u_1
R : Type u_2
k : Type u_3
S : Type u_4
M : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
inst✝³ : Zero R
inst✝² : Zero M
inst✝¹ : SMulWithZero R M
inst✝ : NoZeroSMulDivisors R M
c : R
x : M
hc : c ≠ 0
⊢ c • x ≠ 0 ↔ x ≠ 0
state_after: no goals
Theorem: Nat.prime_iff_fac_equiv_neg_one
File: Mathlib/NumberTheory/Wilson.lean

tactic: refine ⟨fun h1 => ?_, fun h2 => prime_of_fac_equiv_neg_one h2 h⟩
state_before: n : ℕ
h : n ≠ 1
⊢ Prime n ↔ ↑(n - 1)! = -1
state_after: n : ℕ
h : n ≠ 1
h1 : Prime n
⊢ ↑(n - 1)! = -1

tactic: haveI := Fact.mk h1
state_before: n : ℕ
h : n ≠ 1
h1 : Prime n
⊢ ↑(n - 1)! = -1
state_after: n : ℕ
h : n ≠ 1
h1 : Prime n
this : Fact (Prime n)
⊢ ↑(n - 1)! = -1

tactic: exact ZMod.wilsons_lemma n
state_before: n : ℕ
h : n ≠ 1
h1 : Prime n
this : Fact (Prime n)
⊢ ↑(n - 1)! = -1
state_after: no goals
Theorem: Function.Injective.compl_image_eq
File: Mathlib/Data/Set/Image.lean

tactic: ext y
state_before: α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
⊢ (f '' s)ᶜ = f '' sᶜ ∪ (range f)ᶜ
state_after: case h
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
y : β
⊢ y ∈ (f '' s)ᶜ ↔ y ∈ f '' sᶜ ∪ (range f)ᶜ

tactic: rcases em (y ∈ range f) with (⟨x, rfl⟩ | hx)
state_before: case h
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
y : β
⊢ y ∈ (f '' s)ᶜ ↔ y ∈ f '' sᶜ ∪ (range f)ᶜ
state_after: case h.inl.intro
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
x : α
⊢ f x ∈ (f '' s)ᶜ ↔ f x ∈ f '' sᶜ ∪ (range f)ᶜ

case h.inr
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
y : β
hx : y ∉ range f
⊢ y ∈ (f '' s)ᶜ ↔ y ∈ f '' sᶜ ∪ (range f)ᶜ

tactic: simp [hf.eq_iff]
state_before: case h.inl.intro
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
x : α
⊢ f x ∈ (f '' s)ᶜ ↔ f x ∈ f '' sᶜ ∪ (range f)ᶜ
state_after: no goals

tactic: rw [mem_range, not_exists] at hx
state_before: case h.inr
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
y : β
hx : y ∉ range f
⊢ y ∈ (f '' s)ᶜ ↔ y ∈ f '' sᶜ ∪ (range f)ᶜ
state_after: case h.inr
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
y : β
hx : ∀ (x : α), ¬f x = y
⊢ y ∈ (f '' s)ᶜ ↔ y ∈ f '' sᶜ ∪ (range f)ᶜ

tactic: simp [hx]
state_before: case h.inr
α : Type u_1
β : Type u_2
ι : Sort u_3
f : α → β
hf : Injective f
s : Set α
y : β
hx : ∀ (x : α), ¬f x = y
⊢ y ∈ (f '' s)ᶜ ↔ y ∈ f '' sᶜ ∪ (range f)ᶜ
state_after: no goals
Theorem: preNormEDS_ofNat
File: Mathlib/NumberTheory/EllipticDivisibilitySequence.lean

tactic: by_cases hn : n = 0
state_before: R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℕ
⊢ preNormEDS b c d ↑n = preNormEDS' b c d n
state_after: case pos
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℕ
hn : n = 0
⊢ preNormEDS b c d ↑n = preNormEDS' b c d n

case neg
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℕ
hn : ¬n = 0
⊢ preNormEDS b c d ↑n = preNormEDS' b c d n

tactic: rw [hn, preNormEDS, Nat.cast_zero, Int.sign_zero, Int.cast_zero, zero_mul, preNormEDS'_zero]
state_before: case pos
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℕ
hn : n = 0
⊢ preNormEDS b c d ↑n = preNormEDS' b c d n
state_after: no goals

tactic: rw [preNormEDS, Int.sign_natCast_of_ne_zero hn, Int.cast_one, one_mul, Int.natAbs_cast]
state_before: case neg
R : Type u
S : Type v
inst✝¹ : CommRing R
inst✝ : CommRing S
W : ℤ → R
f : R →+* S
b c d : R
n : ℕ
hn : ¬n = 0
⊢ preNormEDS b c d ↑n = preNormEDS' b c d n
state_after: no goals
Theorem: tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: haveI : CompactSpace s := isCompact_iff_compactSpace.mp hs
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
hs : IsCompact s
⊢ TendstoLocallyUniformlyOn F f p s ↔ TendstoUniformlyOn F f p s
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
hs : IsCompact s
this : CompactSpace ↑s
⊢ TendstoLocallyUniformlyOn F f p s ↔ TendstoUniformlyOn F f p s

tactic: refine ⟨fun h => ?_, TendstoUniformlyOn.tendstoLocallyUniformlyOn⟩
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
hs : IsCompact s
this : CompactSpace ↑s
⊢ TendstoLocallyUniformlyOn F f p s ↔ TendstoUniformlyOn F f p s
state_after: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
hs : IsCompact s
this : CompactSpace ↑s
h : TendstoLocallyUniformlyOn F f p s
⊢ TendstoUniformlyOn F f p s

tactic: rwa [tendstoLocallyUniformlyOn_iff_tendstoLocallyUniformly_comp_coe,
  tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace, ←
  tendstoUniformlyOn_iff_tendstoUniformly_comp_coe] at h
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
inst✝ : TopologicalSpace α
hs : IsCompact s
this : CompactSpace ↑s
h : TendstoLocallyUniformlyOn F f p s
⊢ TendstoUniformlyOn F f p s
state_after: no goals
Theorem: MeasureTheory.IsStoppingTime.measurableSet_lt_of_countable_range
File: Mathlib/Probability/Process/Stopping.lean

tactic: have : {ω | τ ω < i} = {ω | τ ω ≤ i} \ {ω | τ ω = i} := by ext1 ω; simp [lt_iff_le_and_ne]
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
⊢ MeasurableSet {ω | τ ω < i}
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
this : {ω | τ ω < i} = {ω | τ ω ≤ i} \ {ω | τ ω = i}
⊢ MeasurableSet {ω | τ ω < i}

tactic: rw [this]
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
this : {ω | τ ω < i} = {ω | τ ω ≤ i} \ {ω | τ ω = i}
⊢ MeasurableSet {ω | τ ω < i}
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
this : {ω | τ ω < i} = {ω | τ ω ≤ i} \ {ω | τ ω = i}
⊢ MeasurableSet ({ω | τ ω ≤ i} \ {ω | τ ω = i})

tactic: exact (hτ.measurableSet_le i).diff (hτ.measurableSet_eq_of_countable_range h_countable i)
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
this : {ω | τ ω < i} = {ω | τ ω ≤ i} \ {ω | τ ω = i}
⊢ MeasurableSet ({ω | τ ω ≤ i} \ {ω | τ ω = i})
state_after: no goals

tactic: ext1 ω
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
⊢ {ω | τ ω < i} = {ω | τ ω ≤ i} \ {ω | τ ω = i}
state_after: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
ω : Ω
⊢ ω ∈ {ω | τ ω < i} ↔ ω ∈ {ω | τ ω ≤ i} \ {ω | τ ω = i}

tactic: simp [lt_iff_le_and_ne]
state_before: case h
Ω : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace Ω
inst✝ : PartialOrder ι
τ : Ω → ι
f : Filtration ι m
hτ : IsStoppingTime f τ
h_countable : (Set.range τ).Countable
i : ι
ω : Ω
⊢ ω ∈ {ω | τ ω < i} ↔ ω ∈ {ω | τ ω ≤ i} \ {ω | τ ω = i}
state_after: no goals
Theorem: WeierstrassCurve.Affine.map_polynomialX
File: Mathlib/AlgebraicGeometry/EllipticCurve/Affine.lean

tactic: simp only [polynomialX]
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ (map W f).toAffine.polynomialX = Polynomial.map (mapRingHom f) W.polynomialX
state_after: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ C (C (map W f).toAffine.a₁) * Y - C (C 3 * X ^ 2 + C (2 * (map W f).toAffine.a₂) * X + C (map W f).toAffine.a₄) =
    Polynomial.map (mapRingHom f) (C (C W.a₁) * Y - C (C 3 * X ^ 2 + C (2 * W.a₂) * X + C W.a₄))

tactic: map_simp
state_before: R : Type u
inst✝¹ : CommRing R
W : Affine R
S : Type v
inst✝ : CommRing S
f : R →+* S
⊢ C (C (map W f).toAffine.a₁) * Y - C (C 3 * X ^ 2 + C (2 * (map W f).toAffine.a₂) * X + C (map W f).toAffine.a₄) =
    Polynomial.map (mapRingHom f) (C (C W.a₁) * Y - C (C 3 * X ^ 2 + C (2 * W.a₂) * X + C W.a₄))
state_after: no goals
Theorem: Equiv.Set.union_symm_apply_right
File: Mathlib/Logic/Equiv/Set.lean

tactic: simp
state_before: α✝ : Sort u
β : Sort v
γ : Sort w
α : Type ?u.16411
s t : Set α
inst✝ : DecidablePred fun x => x ∈ s
H : s ∩ t ⊆ ∅
a : ↑t
⊢ ↑a ∈ s ∪ t
state_after: no goals
Theorem: tprod_eq_one_iff
File: Mathlib/Topology/Algebra/InfiniteSum/Order.lean

tactic: rw [← hasProd_one_iff, hf.hasProd_iff]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
inst✝² : CanonicallyOrderedCommMonoid α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
f : ι → α
a : α
hf : Multipliable f
⊢ ∏' (i : ι), f i = 1 ↔ ∀ (x : ι), f x = 1
state_after: no goals
Theorem: PadicInt.norm_le_pow_iff_norm_lt_pow_add_one
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: rw [norm_def]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
n : ℤ
⊢ ‖x‖ ≤ ↑p ^ n ↔ ‖x‖ < ↑p ^ (n + 1)
state_after: p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
n : ℤ
⊢ ‖↑x‖ ≤ ↑p ^ n ↔ ‖↑x‖ < ↑p ^ (n + 1)

tactic: exact Padic.norm_le_pow_iff_norm_lt_pow_add_one _ _
state_before: p : ℕ
hp : Fact (Nat.Prime p)
x : ℤ_[p]
n : ℤ
⊢ ‖↑x‖ ≤ ↑p ^ n ↔ ‖↑x‖ < ↑p ^ (n + 1)
state_after: no goals
Theorem: norm_iteratedFDerivWithin_eq_norm_iteratedDerivWithin
File: Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean

tactic: rw [iteratedDerivWithin_eq_equiv_comp, Function.comp_apply, LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
n : ℕ
f : 𝕜 → F
s : Set 𝕜
x : 𝕜
⊢ ‖iteratedFDerivWithin 𝕜 n f s x‖ = ‖iteratedDerivWithin n f s x‖
state_after: no goals
Theorem: minpoly.aeval_algHom
File: Mathlib/FieldTheory/Minpoly/Basic.lean

tactic: rw [Polynomial.aeval_algHom, AlgHom.coe_comp, comp_apply, aeval, map_zero]
state_before: A : Type u_1
B : Type u_2
B' : Type u_3
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : Ring B'
inst✝¹ : Algebra A B
inst✝ : Algebra A B'
x✝ : B
f : B →ₐ[A] B'
x : B
⊢ (Polynomial.aeval (f x)) (minpoly A x) = 0
state_after: no goals
Theorem: Prime.exists_mem_multiset_map_dvd
File: Mathlib/Algebra/BigOperators/Associated.lean

tactic: simpa only [exists_prop, Multiset.mem_map, exists_exists_and_eq_and] using
  hp.exists_mem_multiset_dvd h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : CommMonoidWithZero α
p : α
hp : Prime p
s : Multiset β
f : β → α
h : p ∣ (Multiset.map f s).prod
⊢ ∃ a ∈ s, p ∣ f a
state_after: no goals
Theorem: LieDerivation.apply_lie_eq_add
File: Mathlib/Algebra/Lie/Derivation/Basic.lean

tactic: rw [LieDerivation.apply_lie_eq_sub, sub_eq_add_neg, lie_skew]
state_before: R : Type u_1
L : Type u_2
M : Type u_3
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
D✝ D1 D2 : LieDerivation R L M
a✝ b✝ : L
D : LieDerivation R L L
a b : L
⊢ D ⁅a, b⁆ = ⁅a, D b⁆ + ⁅D a, b⁆
state_after: no goals
Theorem: Univ.isSubmonoid
File: Mathlib/Deprecated/Submonoid.lean

tactic: constructor <;> simp
state_before: M : Type u_1
inst✝¹ : Monoid M
s : Set M
A : Type u_2
inst✝ : AddMonoid A
t : Set A
⊢ IsSubmonoid Set.univ
state_after: no goals
Theorem: integrable_exp_neg_mul_sq
File: Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean

tactic: simpa using integrable_rpow_mul_exp_neg_mul_sq hb (by norm_num : (-1 : ℝ) < 0)
state_before: b : ℝ
hb : 0 < b
⊢ Integrable (fun x => rexp (-b * x ^ 2)) volume
state_after: no goals

tactic: norm_num
state_before: b : ℝ
hb : 0 < b
⊢ -1 < 0
state_after: no goals
Theorem: Fin.pred_castSucc_lt
File: Mathlib/Data/Fin/Basic.lean

tactic: rw [pred_castSucc_lt_iff, le_def]
state_before: n m : ℕ
a : Fin (n + 1)
ha : a.castSucc ≠ 0
⊢ a.castSucc.pred ha < a
state_after: no goals
Theorem: Finset.piecewise_insert_self
File: Mathlib/Data/Finset/Piecewise.lean

tactic: simp [piecewise]
state_before: ι : Type u_1
π : ι → Sort u_2
s : Finset ι
f g : (i : ι) → π i
inst✝¹ : DecidableEq ι
j : ι
inst✝ : (i : ι) → Decidable (i ∈ insert j s)
⊢ (insert j s).piecewise f g j = f j
state_after: no goals
Theorem: ENNReal.tendsto_pow_atTop_nhds_zero_of_lt_one
File: Mathlib/Analysis/SpecificLimits/Basic.lean

tactic: rcases ENNReal.lt_iff_exists_coe.1 hr with ⟨r, rfl, hr'⟩
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0∞
hr : r < 1
⊢ Tendsto (fun n => r ^ n) atTop (𝓝 0)
state_after: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0
hr' : ↑r < 1
hr : ↑r < 1
⊢ Tendsto (fun n => ↑r ^ n) atTop (𝓝 0)

tactic: rw [← ENNReal.coe_zero]
state_before: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0
hr' : ↑r < 1
hr : ↑r < 1
⊢ Tendsto (fun n => ↑r ^ n) atTop (𝓝 0)
state_after: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0
hr' : ↑r < 1
hr : ↑r < 1
⊢ Tendsto (fun n => ↑r ^ n) atTop (𝓝 ↑0)

tactic: norm_cast at *
state_before: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0
hr' : ↑r < 1
hr : ↑r < 1
⊢ Tendsto (fun n => ↑r ^ n) atTop (𝓝 ↑0)
state_after: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0
hr' hr : r < 1
⊢ Tendsto (HPow.hPow r) atTop (𝓝 0)

tactic: apply NNReal.tendsto_pow_atTop_nhds_zero_of_lt_one hr
state_before: case intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
r : ℝ≥0
hr' hr : r < 1
⊢ Tendsto (HPow.hPow r) atTop (𝓝 0)
state_after: no goals
Theorem: isSimpleGroup_of_prime_card
File: Mathlib/GroupTheory/SpecificGroups/Cyclic.lean

tactic: subst h
state_before: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
p : ℕ
hp : Fact (Nat.Prime p)
h : Fintype.card α = p
⊢ IsSimpleGroup α
state_after: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
hp : Fact (Nat.Prime (Fintype.card α))
⊢ IsSimpleGroup α

tactic: have : Nontrivial α := by
  have h' := Nat.Prime.one_lt hp.out
  exact Fintype.one_lt_card_iff_nontrivial.1 h'
state_before: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
hp : Fact (Nat.Prime (Fintype.card α))
⊢ IsSimpleGroup α
state_after: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
hp : Fact (Nat.Prime (Fintype.card α))
this : Nontrivial α
⊢ IsSimpleGroup α

tactic: exact ⟨fun H _ => H.eq_bot_or_eq_top_of_prime_card⟩
state_before: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
hp : Fact (Nat.Prime (Fintype.card α))
this : Nontrivial α
⊢ IsSimpleGroup α
state_after: no goals

tactic: have h' := Nat.Prime.one_lt hp.out
state_before: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
hp : Fact (Nat.Prime (Fintype.card α))
⊢ Nontrivial α
state_after: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
hp : Fact (Nat.Prime (Fintype.card α))
h' : 1 < Fintype.card α
⊢ Nontrivial α

tactic: exact Fintype.one_lt_card_iff_nontrivial.1 h'
state_before: α✝ : Type u
a : α✝
inst✝² : Group α✝
α : Type u
inst✝¹ : Group α
inst✝ : Fintype α
hp : Fact (Nat.Prime (Fintype.card α))
h' : 1 < Fintype.card α
⊢ Nontrivial α
state_after: no goals
Theorem: Monotone.csInf_image_le
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: let f' : αᵒᵈ → βᵒᵈ := f
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : ConditionallyCompleteLattice β
f : α → β
h_mono : Monotone f
s : Set α
c : α
hcs : c ∈ s
h_bdd : BddBelow s
⊢ sInf (f '' s) ≤ f c
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : ConditionallyCompleteLattice β
f : α → β
h_mono : Monotone f
s : Set α
c : α
hcs : c ∈ s
h_bdd : BddBelow s
f' : αᵒᵈ → βᵒᵈ := f
⊢ sInf (f '' s) ≤ f c

tactic: exact le_csSup_image (α := αᵒᵈ) (β := βᵒᵈ)
  (show Monotone f' from fun x y hxy => h_mono hxy) hcs h_bdd
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
inst✝¹ : Preorder α
inst✝ : ConditionallyCompleteLattice β
f : α → β
h_mono : Monotone f
s : Set α
c : α
hcs : c ∈ s
h_bdd : BddBelow s
f' : αᵒᵈ → βᵒᵈ := f
⊢ sInf (f '' s) ≤ f c
state_after: no goals
Theorem: Finset.centerMass_eq_of_sum_1
File: Mathlib/Analysis/Convex/Combination.lean

tactic: simp only [Finset.centerMass, hw, inv_one, one_smul]
state_before: R : Type u_1
R' : Type u_2
E : Type u_3
F : Type u_4
ι : Type u_5
ι' : Type u_6
α : Type u_7
inst✝⁸ : LinearOrderedField R
inst✝⁷ : LinearOrderedField R'
inst✝⁶ : AddCommGroup E
inst✝⁵ : AddCommGroup F
inst✝⁴ : LinearOrderedAddCommGroup α
inst✝³ : Module R E
inst✝² : Module R F
inst✝¹ : Module R α
inst✝ : OrderedSMul R α
s : Set E
i j : ι
c : R
t : Finset ι
w : ι → R
z : ι → E
hw : ∑ i ∈ t, w i = 1
⊢ t.centerMass w z = ∑ i ∈ t, w i • z i
state_after: no goals
Theorem: Real.toNNReal_rpow_of_nonneg
File: Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean

tactic: nth_rw 1 [← Real.coe_toNNReal x hx]
state_before: w x✝ y✝ z x y : ℝ
hx : 0 ≤ x
⊢ (x ^ y).toNNReal = x.toNNReal ^ y
state_after: w x✝ y✝ z x y : ℝ
hx : 0 ≤ x
⊢ (↑x.toNNReal ^ y).toNNReal = x.toNNReal ^ y

tactic: rw [← NNReal.coe_rpow, Real.toNNReal_coe]
state_before: w x✝ y✝ z x y : ℝ
hx : 0 ≤ x
⊢ (↑x.toNNReal ^ y).toNNReal = x.toNNReal ^ y
state_after: no goals
Theorem: multiplicity.isUnit_right
File: Mathlib/RingTheory/Multiplicity.lean

tactic: simp only [_root_.pow_zero, one_dvd]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CommMonoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
ha : ¬IsUnit a
hb : IsUnit b
⊢ a ^ 0 ∣ b
state_after: no goals

tactic: rw [pow_one]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CommMonoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
ha : ¬IsUnit a
hb : IsUnit b
⊢ ¬a ^ (0 + 1) ∣ b
state_after: α : Type u_1
β : Type u_2
inst✝¹ : CommMonoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
ha : ¬IsUnit a
hb : IsUnit b
⊢ ¬a ∣ b

tactic: exact fun h => mt (isUnit_of_dvd_unit h) ha hb
state_before: α : Type u_1
β : Type u_2
inst✝¹ : CommMonoid α
inst✝ : DecidableRel fun x x_1 => x ∣ x_1
a b : α
ha : ¬IsUnit a
hb : IsUnit b
⊢ ¬a ∣ b
state_after: no goals
Theorem: continuousMul_inf
File: Mathlib/Topology/Algebra/Monoid.lean

tactic: refine continuousMul_iInf fun b => ?_
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝¹ : TopologicalSpace X
ι' : Sort u_6
inst✝ : Mul M
t₁ t₂ : TopologicalSpace M
h₁ : ContinuousMul M
h₂ : ContinuousMul M
⊢ ContinuousMul M
state_after: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝¹ : TopologicalSpace X
ι' : Sort u_6
inst✝ : Mul M
t₁ t₂ : TopologicalSpace M
h₁ : ContinuousMul M
h₂ : ContinuousMul M
b : Bool
⊢ ContinuousMul M

tactic: cases b <;> assumption
state_before: ι : Type u_1
α : Type u_2
M : Type u_3
N : Type u_4
X : Type u_5
inst✝¹ : TopologicalSpace X
ι' : Sort u_6
inst✝ : Mul M
t₁ t₂ : TopologicalSpace M
h₁ : ContinuousMul M
h₂ : ContinuousMul M
b : Bool
⊢ ContinuousMul M
state_after: no goals
Theorem: minpolyDiv_eq_zero
File: Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean

tactic: delta minpolyDiv minpoly
state_before: R : Type u_1
K : Type ?u.13054
L : Type ?u.13057
S : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : Algebra K L
x : S
hx✝ : IsIntegral R x
hx : ¬IsIntegral R x
⊢ minpolyDiv R x = 0
state_after: R : Type u_1
K : Type ?u.13054
L : Type ?u.13057
S : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : Algebra K L
x : S
hx✝ : IsIntegral R x
hx : ¬IsIntegral R x
⊢ map (algebraMap R S)
        (if hx : IsIntegral R x then ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap R S) x x_1 = 0) hx else 0) /ₘ
      (X - C x) =
    0

tactic: rw [dif_neg hx, Polynomial.map_zero, zero_divByMonic]
state_before: R : Type u_1
K : Type ?u.13054
L : Type ?u.13057
S : Type u_2
inst✝⁵ : CommRing R
inst✝⁴ : Field K
inst✝³ : Field L
inst✝² : CommRing S
inst✝¹ : Algebra R S
inst✝ : Algebra K L
x : S
hx✝ : IsIntegral R x
hx : ¬IsIntegral R x
⊢ map (algebraMap R S)
        (if hx : IsIntegral R x then ⋯.min (fun x_1 => x_1.Monic ∧ eval₂ (algebraMap R S) x x_1 = 0) hx else 0) /ₘ
      (X - C x) =
    0
state_after: no goals