tasksource/leandojo huggingface dataset:
Theorem: analyticAt_exp_of_mem_ball
File: Mathlib/Analysis/NormedSpace/Exponential.lean

tactic: by_cases h : (expSeries 𝕂 𝔸).radius = 0
state_before: 𝕂 : Type u_2
𝔸 : Type u_1
𝔹 : Type ?u.98423
inst✝⁵ : NontriviallyNormedField 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedRing 𝔹
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
x : 𝔸
hx : x ∈ EMetric.ball 0 (FormalMultilinearSeries.radius (expSeries 𝕂 𝔸))
⊢ AnalyticAt 𝕂 (exp 𝕂) x

tactic: rw [h] at hx
state_before: case pos
𝕂 : Type u_2
𝔸 : Type u_1
𝔹 : Type ?u.98423
inst✝⁵ : NontriviallyNormedField 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedRing 𝔹
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
x : 𝔸
hx : x ∈ EMetric.ball 0 (FormalMultilinearSeries.radius (expSeries 𝕂 𝔸))
h : FormalMultilinearSeries.radius (expSeries 𝕂 𝔸) = 0
⊢ AnalyticAt 𝕂 (exp 𝕂) x

tactic: exact (ENNReal.not_lt_zero hx).elim
state_before: case pos
𝕂 : Type u_2
𝔸 : Type u_1
𝔹 : Type ?u.98423
inst✝⁵ : NontriviallyNormedField 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedRing 𝔹
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
x : 𝔸
hx : x ∈ EMetric.ball 0 0
h : FormalMultilinearSeries.radius (expSeries 𝕂 𝔸) = 0
⊢ AnalyticAt 𝕂 (exp 𝕂) x

tactic: have h := pos_iff_ne_zero.mpr h
state_before: case neg
𝕂 : Type u_2
𝔸 : Type u_1
𝔹 : Type ?u.98423
inst✝⁵ : NontriviallyNormedField 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedRing 𝔹
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
x : 𝔸
hx : x ∈ EMetric.ball 0 (FormalMultilinearSeries.radius (expSeries 𝕂 𝔸))
h : ¬FormalMultilinearSeries.radius (expSeries 𝕂 𝔸) = 0
⊢ AnalyticAt 𝕂 (exp 𝕂) x

tactic: exact (hasFPowerSeriesOnBall_exp_of_radius_pos h).analyticAt_of_mem hx
state_before: case neg
𝕂 : Type u_2
𝔸 : Type u_1
𝔹 : Type ?u.98423
inst✝⁵ : NontriviallyNormedField 𝕂
inst✝⁴ : NormedRing 𝔸
inst✝³ : NormedRing 𝔹
inst✝² : NormedAlgebra 𝕂 𝔸
inst✝¹ : NormedAlgebra 𝕂 𝔹
inst✝ : CompleteSpace 𝔸
x : 𝔸
hx : x ∈ EMetric.ball 0 (FormalMultilinearSeries.radius (expSeries 𝕂 𝔸))
h✝ : ¬FormalMultilinearSeries.radius (expSeries 𝕂 𝔸) = 0
h : 0 < FormalMultilinearSeries.radius (expSeries 𝕂 𝔸)
⊢ AnalyticAt 𝕂 (exp 𝕂) x
Theorem: Submodule.mem_sup_left
File: Mathlib/Algebra/Module/Submodule/Lattice.lean

tactic: have : S ≤ S ⊔ T := le_sup_left
state_before: R : Type u_1
S✝ : Type ?u.149626
M : Type u_2
inst✝⁶ : Semiring R
inst✝⁵ : Semiring S✝
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : Module S✝ M
inst✝¹ : SMul S✝ R
inst✝ : IsScalarTower S✝ R M
p q S T : Submodule R M
⊢ ∀ {x : M}, x ∈ S → x ∈ S ⊔ T

tactic: rw [LE.le] at this
state_before: R : Type u_1
S✝ : Type ?u.149626
M : Type u_2
inst✝⁶ : Semiring R
inst✝⁵ : Semiring S✝
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : Module S✝ M
inst✝¹ : SMul S✝ R
inst✝ : IsScalarTower S✝ R M
p q S T : Submodule R M
this : S ≤ S ⊔ T
⊢ ∀ {x : M}, x ∈ S → x ∈ S ⊔ T

tactic: exact this
state_before: R : Type u_1
S✝ : Type ?u.149626
M : Type u_2
inst✝⁶ : Semiring R
inst✝⁵ : Semiring S✝
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : Module S✝ M
inst✝¹ : SMul S✝ R
inst✝ : IsScalarTower S✝ R M
p q S T : Submodule R M
this : Preorder.toLE.1 S (S ⊔ T)
⊢ ∀ {x : M}, x ∈ S → x ∈ S ⊔ T
Theorem: MulAction.orbitZpowersEquiv_symm_apply'
File: Mathlib/Data/ZMod/Quotient.lean

tactic: rw [orbitZpowersEquiv_symm_apply, ZMod.coe_int_cast]
state_before: n : ℕ
A : Type ?u.232055
R : Type ?u.232058
inst✝³ : AddGroup A
inst✝² : Ring R
α : Type u_2
β : Type u_1
inst✝¹ : Group α
a : α
inst✝ : MulAction α β
b : β
k : ℤ
⊢ ↑(orbitZpowersEquiv a b).symm ↑k =
    { val := a, property := (_ : a ∈ zpowers a) } ^ k •
      { val := b, property := (_ : b ∈ orbit { x // x ∈ zpowers a } b) }

tactic: exact Subtype.ext (zpow_smul_mod_minimalPeriod _ _ k)
state_before: n : ℕ
A : Type ?u.232055
R : Type ?u.232058
inst✝³ : AddGroup A
inst✝² : Ring R
α : Type u_2
β : Type u_1
inst✝¹ : Group α
a : α
inst✝ : MulAction α β
b : β
k : ℤ
⊢ { val := a, property := (_ : a ∈ zpowers a) } ^ (k % ↑(minimalPeriod ((fun x x_1 => x • x_1) a) b)) •
      { val := b, property := (_ : b ∈ orbit { x // x ∈ zpowers a } b) } =
    { val := a, property := (_ : a ∈ zpowers a) } ^ k •
      { val := b, property := (_ : b ∈ orbit { x // x ∈ zpowers a } b) }
Theorem: uniformContinuousOn_univ
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [UniformContinuousOn, UniformContinuous, univ_prod_univ, principal_univ, inf_top_eq]
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort ?u.112160
inst✝¹ : UniformSpace α
inst✝ : UniformSpace β
f : α → β
⊢ UniformContinuousOn f univ ↔ UniformContinuous f
Theorem: Finsupp.mem_neLocus
File: Mathlib/Data/Finsupp/NeLocus.lean

tactic: simpa only [neLocus, Finset.mem_filter, Finset.mem_union, mem_support_iff,
  and_iff_right_iff_imp] using Ne.ne_or_ne _
state_before: α : Type u_1
M : Type ?u.581
N : Type u_2
P : Type ?u.587
inst✝² : DecidableEq α
inst✝¹ : DecidableEq N
inst✝ : Zero N
f✝ g✝ f g : α →₀ N
a : α
⊢ a ∈ neLocus f g ↔ ↑f a ≠ ↑g a
Theorem: Int.neg_neg_of_pos
File: Std/Data/Int/Lemmas.lean

tactic: have : -a < -0 := Int.neg_lt_neg h
state_before: a : Int
h : 0 < a
⊢ -a < 0

tactic: rwa [Int.neg_zero] at this
state_before: a : Int
h : 0 < a
this : -a < -0
⊢ -a < 0
Theorem: MeasureTheory.integral_mul_left_eq_self
File: Mathlib/MeasureTheory/Group/Integration.lean

tactic: have h_mul : MeasurableEmbedding fun x => g * x := (MeasurableEquiv.mulLeft g).measurableEmbedding
state_before: 𝕜 : Type ?u.34294
M : Type ?u.34297
α : Type ?u.34300
G : Type u_1
E : Type u_2
F : Type ?u.34309
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ : Measure G
f✝ : G → E
g✝ : G
inst✝² : Group G
inst✝¹ : MeasurableMul G
inst✝ : IsMulLeftInvariant μ
f : G → E
g : G
⊢ (∫ (x : G), f (g * x) ∂μ) = ∫ (x : G), f x ∂μ

tactic: rw [← h_mul.integral_map, map_mul_left_eq_self]
state_before: 𝕜 : Type ?u.34294
M : Type ?u.34297
α : Type ?u.34300
G : Type u_1
E : Type u_2
F : Type ?u.34309
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ : Measure G
f✝ : G → E
g✝ : G
inst✝² : Group G
inst✝¹ : MeasurableMul G
inst✝ : IsMulLeftInvariant μ
f : G → E
g : G
h_mul : MeasurableEmbedding fun x => g * x
⊢ (∫ (x : G), f (g * x) ∂μ) = ∫ (x : G), f x ∂μ
Theorem: WellFounded.self_le_of_strictMono
File: Mathlib/Order/WellFounded.lean

tactic: by_contra' h₁
state_before: α : Type ?u.5196
β : Type u_1
inst✝¹ : LinearOrder β
h : WellFounded fun x x_1 => x < x_1
γ : Type ?u.5320
inst✝ : PartialOrder γ
f : β → β
hf : StrictMono f
⊢ ∀ (n : β), n ≤ f n

tactic: have h₂ := h.min_mem _ h₁
state_before: α : Type ?u.5196
β : Type u_1
inst✝¹ : LinearOrder β
h : WellFounded fun x x_1 => x < x_1
γ : Type ?u.5320
inst✝ : PartialOrder γ
f : β → β
hf : StrictMono f
h₁ : ∃ n, f n < n
⊢ False

tactic: exact h.not_lt_min _ h₁ (hf h₂) h₂
state_before: α : Type ?u.5196
β : Type u_1
inst✝¹ : LinearOrder β
h : WellFounded fun x x_1 => x < x_1
γ : Type ?u.5320
inst✝ : PartialOrder γ
f : β → β
hf : StrictMono f
h₁ : ∃ n, f n < n
h₂ : min h (fun x => Preorder.toLT.1 (f x) x) h₁ ∈ fun x => Preorder.toLT.1 (f x) x
⊢ False
Theorem: MeasureTheory.OuterMeasure.restrict_trim
File: Mathlib/MeasureTheory/Measure/OuterMeasure.lean

tactic: refine' le_antisymm (fun t => _) (le_trim_iff.2 fun t ht => _)
state_before: α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
⊢ trim (↑(restrict s) μ) = ↑(restrict s) (trim μ)

tactic: rw [restrict_apply]
state_before: case refine'_1
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑(trim (↑(restrict s) μ)) t ≤ ↑(↑(restrict s) (trim μ)) t

tactic: rcases μ.exists_measurable_superset_eq_trim (t ∩ s) with ⟨t', htt', ht', hμt'⟩
state_before: case refine'_1
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t : Set α
⊢ ↑(trim (↑(restrict s) μ)) t ≤ ↑(trim μ) (t ∩ s)

tactic: rw [← hμt']
state_before: case refine'_1.intro.intro.intro
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t t' : Set α
htt' : t ∩ s ⊆ t'
ht' : MeasurableSet t'
hμt' : ↑μ t' = ↑(trim μ) (t ∩ s)
⊢ ↑(trim (↑(restrict s) μ)) t ≤ ↑(trim μ) (t ∩ s)

tactic: rw [inter_subset] at htt'
state_before: case refine'_1.intro.intro.intro
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t t' : Set α
htt' : t ∩ s ⊆ t'
ht' : MeasurableSet t'
hμt' : ↑μ t' = ↑(trim μ) (t ∩ s)
⊢ ↑(trim (↑(restrict s) μ)) t ≤ ↑μ t'

tactic: refine' (mono' _ htt').trans _
state_before: case refine'_1.intro.intro.intro
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t t' : Set α
htt' : t ⊆ sᶜ ∪ t'
ht' : MeasurableSet t'
hμt' : ↑μ t' = ↑(trim μ) (t ∩ s)
⊢ ↑(trim (↑(restrict s) μ)) t ≤ ↑μ t'

tactic: rw [trim_eq _ (hs.compl.union ht'), restrict_apply, union_inter_distrib_right, compl_inter_self,
  Set.empty_union]
state_before: case refine'_1.intro.intro.intro
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t t' : Set α
htt' : t ⊆ sᶜ ∪ t'
ht' : MeasurableSet t'
hμt' : ↑μ t' = ↑(trim μ) (t ∩ s)
⊢ ↑(trim (↑(restrict s) μ)) (sᶜ ∪ t') ≤ ↑μ t'

tactic: exact μ.mono' (inter_subset_left _ _)
state_before: case refine'_1.intro.intro.intro
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t t' : Set α
htt' : t ⊆ sᶜ ∪ t'
ht' : MeasurableSet t'
hμt' : ↑μ t' = ↑(trim μ) (t ∩ s)
⊢ ↑μ (t' ∩ s) ≤ ↑μ t'

tactic: rw [restrict_apply, trim_eq _ (ht.inter hs), restrict_apply]
state_before: case refine'_2
α : Type u_1
inst✝ : MeasurableSpace α
m μ : OuterMeasure α
s : Set α
hs : MeasurableSet s
t : Set α
ht : MeasurableSet t
⊢ ↑(↑(restrict s) (trim μ)) t ≤ ↑(↑(restrict s) μ) t
Theorem: exists_nhds_ne_neBot
File: Mathlib/Topology/SubsetProperties.lean

tactic: by_contra' H
state_before: α✝ : Type u
β : Type v
ι : Type ?u.87095
π : ι → Type ?u.87100
inst✝⁴ : TopologicalSpace α✝
inst✝³ : TopologicalSpace β
s t : Set α✝
α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : CompactSpace α
inst✝ : Infinite α
⊢ ∃ z, NeBot (𝓝[{z}ᶜ] z)

tactic: simp_rw [not_neBot] at H
state_before: α✝ : Type u
β : Type v
ι : Type ?u.87095
π : ι → Type ?u.87100
inst✝⁴ : TopologicalSpace α✝
inst✝³ : TopologicalSpace β
s t : Set α✝
α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : CompactSpace α
inst✝ : Infinite α
H : ∀ (z : α), ¬NeBot (𝓝[{z}ᶜ] z)
⊢ False

tactic: haveI := discreteTopology_iff_nhds_ne.2 H
state_before: α✝ : Type u
β : Type v
ι : Type ?u.87095
π : ι → Type ?u.87100
inst✝⁴ : TopologicalSpace α✝
inst✝³ : TopologicalSpace β
s t : Set α✝
α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : CompactSpace α
inst✝ : Infinite α
H : ∀ (z : α), 𝓝[{z}ᶜ] z = ⊥
⊢ False

tactic: exact Infinite.not_finite (finite_of_compact_of_discrete : Finite α)
state_before: α✝ : Type u
β : Type v
ι : Type ?u.87095
π : ι → Type ?u.87100
inst✝⁴ : TopologicalSpace α✝
inst✝³ : TopologicalSpace β
s t : Set α✝
α : Type u_1
inst✝² : TopologicalSpace α
inst✝¹ : CompactSpace α
inst✝ : Infinite α
H : ∀ (z : α), 𝓝[{z}ᶜ] z = ⊥
this : DiscreteTopology α
⊢ False
Theorem: MvPolynomial.mem_vars_bind₁
File: Mathlib/Data/MvPolynomial/Monad.lean

tactic: classical
simpa only [exists_prop, Finset.mem_biUnion, mem_support_iff, Ne.def] using vars_bind₁ f φ h
state_before: σ : Type u_3
τ : Type u_1
R : Type u_2
S : Type ?u.1454752
T : Type ?u.1454755
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : CommSemiring T
f✝ f : σ → MvPolynomial τ R
φ : MvPolynomial σ R
j : τ
h : j ∈ vars (↑(bind₁ f) φ)
⊢ ∃ i, i ∈ vars φ ∧ j ∈ vars (f i)

tactic: simpa only [exists_prop, Finset.mem_biUnion, mem_support_iff, Ne.def] using vars_bind₁ f φ h
state_before: σ : Type u_3
τ : Type u_1
R : Type u_2
S : Type ?u.1454752
T : Type ?u.1454755
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : CommSemiring T
f✝ f : σ → MvPolynomial τ R
φ : MvPolynomial σ R
j : τ
h : j ∈ vars (↑(bind₁ f) φ)
⊢ ∃ i, i ∈ vars φ ∧ j ∈ vars (f i)
Theorem: Finset.range_eq_empty_iff
File: Mathlib/Data/Finset/Basic.lean

tactic: rw [← not_nonempty_iff_eq_empty, nonempty_range_iff, not_not]
state_before: α : Type ?u.433373
β : Type ?u.433376
γ : Type ?u.433379
n m l : ℕ
⊢ range n = ∅ ↔ n = 0
Theorem: isClosed_range_inr
File: Mathlib/Topology/Constructions.lean

tactic: rw [← isOpen_compl_iff, compl_range_inr]
state_before: α : Type u
β : Type v
γ : Type ?u.140501
δ : Type ?u.140504
ε : Type ?u.140507
ζ : Type ?u.140510
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
⊢ IsClosed (range inr)

tactic: exact isOpen_range_inl
state_before: α : Type u
β : Type v
γ : Type ?u.140501
δ : Type ?u.140504
ε : Type ?u.140507
ζ : Type ?u.140510
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
⊢ IsOpen (range inl)
Theorem: Metric.mem_ball'
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: rw [dist_comm, mem_ball]
state_before: α : Type u
β : Type v
X : Type ?u.25132
ι : Type ?u.25135
inst✝ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
⊢ y ∈ ball x ε ↔ dist x y < ε
Theorem: exists_subset_iUnion_ball_radius_pos_lt
File: Mathlib/Topology/MetricSpace/ShrinkingLemma.lean

tactic: rcases exists_subset_iUnion_closed_subset hs (fun i => @isOpen_ball _ _ (c i) (r i)) uf us with
  ⟨v, hsv, hvc, hcv⟩
state_before: α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hr : ∀ (i : ι), 0 < r i
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i ∈ Ioo 0 (r i)

tactic: have := fun i => exists_pos_lt_subset_ball (hr i) (hvc i) (hcv i)
state_before: case intro.intro.intro
α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hr : ∀ (i : ι), 0 < r i
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
v : ι → Set α
hsv : s ⊆ iUnion v
hvc : ∀ (i : ι), IsClosed (v i)
hcv : ∀ (i : ι), v i ⊆ ball (c i) (r i)
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i ∈ Ioo 0 (r i)

tactic: choose r' hlt hsub using this
state_before: case intro.intro.intro
α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hr : ∀ (i : ι), 0 < r i
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
v : ι → Set α
hsv : s ⊆ iUnion v
hvc : ∀ (i : ι), IsClosed (v i)
hcv : ∀ (i : ι), v i ⊆ ball (c i) (r i)
this : ∀ (i : ι), ∃ r', r' ∈ Ioo 0 (r i) ∧ v i ⊆ ball (c i) r'
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i ∈ Ioo 0 (r i)

tactic: exact ⟨r', hsv.trans <| iUnion_mono hsub, hlt⟩
state_before: case intro.intro.intro
α : Type u
ι : Type v
inst✝¹ : MetricSpace α
inst✝ : ProperSpace α
c : ι → α
x : α
r✝ : ℝ
s : Set α
r : ι → ℝ
hr : ∀ (i : ι), 0 < r i
hs : IsClosed s
uf : ∀ (x : α), x ∈ s → Set.Finite {i | x ∈ ball (c i) (r i)}
us : s ⊆ ⋃ (i : ι), ball (c i) (r i)
v : ι → Set α
hsv : s ⊆ iUnion v
hvc : ∀ (i : ι), IsClosed (v i)
hcv : ∀ (i : ι), v i ⊆ ball (c i) (r i)
r' : ι → ℝ
hlt : ∀ (i : ι), r' i ∈ Ioo 0 (r i)
hsub : ∀ (i : ι), v i ⊆ ball (c i) (r' i)
⊢ ∃ r', (s ⊆ ⋃ (i : ι), ball (c i) (r' i)) ∧ ∀ (i : ι), r' i ∈ Ioo 0 (r i)
Theorem: Real.Angle.abs_cos_eq_of_two_zsmul_eq
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: simp_rw [two_zsmul, ← two_nsmul] at h
state_before: θ ψ : Angle
h : 2 • θ = 2 • ψ
⊢ abs (cos θ) = abs (cos ψ)

tactic: exact abs_cos_eq_of_two_nsmul_eq h
state_before: θ ψ : Angle
h : 2 • θ = 2 • ψ
⊢ abs (cos θ) = abs (cos ψ)
Theorem: ENNReal.tendsto_atTop
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp only [true_and]
state_before: α : Type ?u.76400
β : Type u_1
γ : Type ?u.76406
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → ℝ≥0∞
a : ℝ≥0∞
ha : a ≠ ⊤
⊢ (∀ (ib : ℝ≥0∞), 0 < ib → ∃ ia, True ∧ ∀ (x : β), x ∈ Ici ia → f x ∈ Icc (a - ib) (a + ib)) ↔
    ∀ (ε : ℝ≥0∞), ε > 0 → ∃ N, ∀ (n : β), n ≥ N → f n ∈ Icc (a - ε) (a + ε)

tactic: rfl
state_before: α : Type ?u.76400
β : Type u_1
γ : Type ?u.76406
a✝ b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
inst✝¹ : Nonempty β
inst✝ : SemilatticeSup β
f : β → ℝ≥0∞
a : ℝ≥0∞
ha : a ≠ ⊤
⊢ (∀ (ib : ℝ≥0∞), 0 < ib → ∃ ia, ∀ (x : β), x ∈ Ici ia → f x ∈ Icc (a - ib) (a + ib)) ↔
    ∀ (ε : ℝ≥0∞), ε > 0 → ∃ N, ∀ (n : β), n ≥ N → f n ∈ Icc (a - ε) (a + ε)
Theorem: BoxIntegral.Box.splitLower_eq_bot
File: Mathlib/Analysis/BoxIntegral/Partition/Split.lean

tactic: rw [splitLower, mk'_eq_bot, exists_update_iff I.upper fun j y => y ≤ I.lower j]
state_before: ι : Type u_1
M : Type ?u.3630
n : ℕ
I : Box ι
i✝ : ι
x✝ : ℝ
y : ι → ℝ
i : ι
x : ℝ
⊢ splitLower I i x = ⊥ ↔ x ≤ lower I i

tactic: simp [(I.lower_lt_upper _).not_le]
state_before: ι : Type u_1
M : Type ?u.3630
n : ℕ
I : Box ι
i✝ : ι
x✝ : ℝ
y : ι → ℝ
i : ι
x : ℝ
⊢ (min x (upper I i) ≤ lower I i ∨ ∃ x x_1, upper I x ≤ lower I x) ↔ x ≤ lower I i
Theorem: Fin.prod_cons
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: simp_rw [prod_univ_succ, cons_zero, cons_succ]
state_before: α : Type ?u.13913
β : Type u_1
inst✝ : CommMonoid β
n : ℕ
x : β
f : Fin n → β
⊢ ∏ i : Fin (Nat.succ n), cons x f i = x * ∏ i : Fin n, f i
Theorem: finprod_mem_range'
File: Mathlib/Algebra/BigOperators/Finprod.lean

tactic: rw [← image_univ, finprod_mem_image', finprod_mem_univ]
state_before: α : Type u_2
β : Type u_1
ι : Type ?u.354818
G : Type ?u.354821
M : Type u_3
N : Type ?u.354827
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g✝ : α → M
a b : α
s t : Set α
g : β → α
hg : InjOn g (mulSupport (f ∘ g))
⊢ (∏ᶠ (i : α) (_ : i ∈ range g), f i) = ∏ᶠ (j : β), f (g j)

tactic: rwa [univ_inter]
state_before: α : Type u_2
β : Type u_1
ι : Type ?u.354818
G : Type ?u.354821
M : Type u_3
N : Type ?u.354827
inst✝¹ : CommMonoid M
inst✝ : CommMonoid N
f g✝ : α → M
a b : α
s t : Set α
g : β → α
hg : InjOn g (mulSupport (f ∘ g))
⊢ InjOn g (univ ∩ mulSupport ((fun i => f i) ∘ g))
Theorem: HasSum.add_isCompl
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: simpa [← hs.compl_eq] using
  (hasSum_subtype_iff_indicator.1 ha).add (hasSum_subtype_iff_indicator.1 hb)
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.256561
δ : Type ?u.256564
inst✝² : AddCommMonoid α
inst✝¹ : TopologicalSpace α
f g : β → α
a b : α
s✝ : Finset β
inst✝ : ContinuousAdd α
s t : Set β
hs : IsCompl s t
ha : HasSum (f ∘ Subtype.val) a
hb : HasSum (f ∘ Subtype.val) b
⊢ HasSum f (a + b)
Theorem: FermatPsp.bp_helper
File: Mathlib/NumberTheory/FermatPsp.lean

tactic: rw [Nat.sub_sub]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ b ^ (2 * p) - 1 - (b ^ 2 - 1) = b ^ (2 * p) - (1 + (b ^ 2 - 1))

tactic: rw [Nat.add_sub_assoc hi_bsquared]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ b ^ (2 * p) - (1 + (b ^ 2 - 1)) = b ^ (2 * p) - (1 + b ^ 2 - 1)

tactic: rw [Nat.add_sub_cancel_left]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ b ^ (2 * p) - (1 + b ^ 2 - 1) = b ^ (2 * p) - b ^ 2

tactic: rw [mul_comm]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ b ^ (2 * p) - b ^ 2 = b ^ (p * 2) - b ^ 2

tactic: rw [pow_mul]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ b ^ (p * 2) - b ^ 2 = (b ^ p) ^ 2 - b ^ 2

tactic: rw [Nat.sq_sub_sq]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ (b ^ p) ^ 2 - b ^ 2 = (b ^ p + b) * (b ^ p - b)

tactic: rw [mul_comm]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ (b ^ p + b) * (b ^ p - b) = (b ^ p - b) * (b ^ p + b)

tactic: rw [Nat.sub_add_cancel hp]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ (b ^ p - b) * (b ^ p + b) = (b ^ (p - 1 + 1) - b) * (b ^ p + b)

tactic: rw [pow_succ]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ (b ^ (p - 1 + 1) - b) * (b ^ p + b) = (b * b ^ (p - 1) - b) * (b ^ p + b)

tactic: rw [mul_one]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ (b * b ^ (p - 1) - b) * (b ^ p + b) = (b * b ^ (p - 1) - b * 1) * (b ^ p + b)

tactic: rw [Nat.mul_sub_left_distrib]
state_before: b p : ℕ
hb : 0 < b
hp : 1 ≤ p
hi_bsquared : 1 ≤ b ^ 2
⊢ (b * b ^ (p - 1) - b * 1) * (b ^ p + b) = b * (b ^ (p - 1) - 1) * (b ^ p + b)
Theorem: Filter.limsInf_top
File: Mathlib/Order/LiminfLimsup.lean

tactic: simp [eq_univ_iff_forall]
state_before: α : Type u_1
β : Type ?u.92310
γ : Type ?u.92313
ι : Type ?u.92316
inst✝ : CompleteLattice α
⊢ ∀ (b : α), b ∈ {a | ∀ᶠ (n : α) in ⊤, a ≤ n} → b ≤ ⊥

tactic: exact fun b hb => bot_unique <| hb _
state_before: α : Type u_1
β : Type ?u.92310
γ : Type ?u.92313
ι : Type ?u.92316
inst✝ : CompleteLattice α
⊢ ∀ (b : α), (∀ (x : α), b ≤ x) → b = ⊥
Theorem: Int.natAbs_inj_of_nonpos_of_nonneg
File: Mathlib/Data/Int/Lemmas.lean

tactic: simpa only [Int.natAbs_neg] using natAbs_inj_of_nonneg_of_nonneg (neg_nonneg_of_nonpos ha) hb
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
ha : a ≤ 0
hb : 0 ≤ b
⊢ natAbs a = natAbs b ↔ -a = b
Theorem: multiplicity.ne_zero_of_finite
File: Mathlib/RingTheory/Multiplicity.lean

tactic: simp [hb] at hn
state_before: α : Type u_1
inst✝ : MonoidWithZero α
a b : α
h : Finite a b
n : ℕ
hn : ¬a ^ (n + 1) ∣ b
hb : b = 0
⊢ False
Theorem: Rel.comp_right_id
File: Mathlib/Data/Rel.lean

tactic: unfold comp
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.11176
r✝ r : Rel α β
⊢ r • Eq = r

tactic: ext y
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.11176
r✝ r : Rel α β
⊢ (fun x z => ∃ y, r x y ∧ y = z) = r

tactic: simp
state_before: case a.h.a
α : Type u_1
β : Type u_2
γ : Type ?u.11176
r✝ r : Rel α β
y : α
x✝ : β
⊢ (∃ y_1, r y y_1 ∧ y_1 = x✝) ↔ r y x✝
Theorem: card_le_of_surjective
File: Mathlib/LinearAlgebra/InvariantBasisNumber.lean

tactic: let P := LinearEquiv.funCongrLeft R R (Fintype.equivFin α)
state_before: R : Type u
inst✝³ : Semiring R
inst✝² : RankCondition R
α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
f : (α → R) →ₗ[R] β → R
i : Surjective ↑f
⊢ Fintype.card β ≤ Fintype.card α

tactic: let Q := LinearEquiv.funCongrLeft R R (Fintype.equivFin β)
state_before: R : Type u
inst✝³ : Semiring R
inst✝² : RankCondition R
α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
f : (α → R) →ₗ[R] β → R
i : Surjective ↑f
P : (Fin (Fintype.card α) → R) ≃ₗ[R] α → R := LinearEquiv.funCongrLeft R R (Fintype.equivFin α)
⊢ Fintype.card β ≤ Fintype.card α

tactic: exact
  le_of_fin_surjective R ((Q.symm.toLinearMap.comp f).comp P.toLinearMap)
    (((LinearEquiv.symm Q).surjective.comp i).comp (LinearEquiv.surjective P))
state_before: R : Type u
inst✝³ : Semiring R
inst✝² : RankCondition R
α : Type u_1
β : Type u_2
inst✝¹ : Fintype α
inst✝ : Fintype β
f : (α → R) →ₗ[R] β → R
i : Surjective ↑f
P : (Fin (Fintype.card α) → R) ≃ₗ[R] α → R := LinearEquiv.funCongrLeft R R (Fintype.equivFin α)
Q : (Fin (Fintype.card β) → R) ≃ₗ[R] β → R := LinearEquiv.funCongrLeft R R (Fintype.equivFin β)
⊢ Fintype.card β ≤ Fintype.card α