tasksource/leandojo huggingface dataset:
Theorem: summable_of_sum_range_le
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: refine (summable_iff_not_tendsto_nat_atTop_of_nonneg hf).2 fun H => ?_
state_before: α : Type ?u.348849
β : Type ?u.348852
γ : Type ?u.348855
f : ℕ → ℝ
c : ℝ
hf : ∀ (n : ℕ), 0 ≤ f n
h : ∀ (n : ℕ), ∑ i in Finset.range n, f i ≤ c
⊢ Summable f

tactic: rcases exists_lt_of_tendsto_atTop H 0 c with ⟨n, -, hn⟩
state_before: α : Type ?u.348849
β : Type ?u.348852
γ : Type ?u.348855
f : ℕ → ℝ
c : ℝ
hf : ∀ (n : ℕ), 0 ≤ f n
h : ∀ (n : ℕ), ∑ i in Finset.range n, f i ≤ c
H : Tendsto (fun n => ∑ i in Finset.range n, f i) atTop atTop
⊢ False

tactic: exact lt_irrefl _ (hn.trans_le (h n))
state_before: case intro.intro
α : Type ?u.348849
β : Type ?u.348852
γ : Type ?u.348855
f : ℕ → ℝ
c : ℝ
hf : ∀ (n : ℕ), 0 ≤ f n
h : ∀ (n : ℕ), ∑ i in Finset.range n, f i ≤ c
H : Tendsto (fun n => ∑ i in Finset.range n, f i) atTop atTop
n : ℕ
hn : c < ∑ i in Finset.range n, f i
⊢ False
Theorem: Array.data_toArray
File: src/lean/Init/Data/Array/Basic.lean

tactic: simp [List.toArray, toArrayAux_eq, Array.mkEmpty]
state_before: α : Type u_1
as : List α
⊢ (List.toArray as).data = as
Theorem: convexJoin_segment_singleton
File: Mathlib/Analysis/Convex/Join.lean

tactic: rw [← pair_eq_singleton, ← convexJoin_segments, segment_same, pair_eq_singleton]
state_before: ι : Sort ?u.141835
𝕜 : Type u_2
E : Type u_1
inst✝² : LinearOrderedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
s t u : Set E
x y a b c : E
⊢ convexJoin 𝕜 (segment 𝕜 a b) {c} = ↑(convexHull 𝕜).toOrderHom {a, b, c}
Theorem: nhdsWithin_Ioo_eq_nhdsWithin_Iio
File: Mathlib/Topology/Order/Basic.lean

tactic: simpa only [dual_Ioo] using nhdsWithin_Ioo_eq_nhdsWithin_Ioi h.dual
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ : TopologicalSpace α
inst✝² : LinearOrder α
inst✝¹ : OrderClosedTopology α
a✝ b✝ : α
inst✝ : TopologicalSpace γ
a b : α
h : a < b
⊢ 𝓝[Ioo a b] b = 𝓝[Iio b] b
Theorem: PGame.add_moveRight_inl
File: Mathlib/SetTheory/Game/PGame.lean

tactic: cases x
state_before: x y : PGame
i : RightMoves x
⊢ moveRight (x + y) (↑toRightMovesAdd (Sum.inl i)) = moveRight x i + y

tactic: cases y
state_before: case mk
y : PGame
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
i : RightMoves (mk α✝ β✝ a✝¹ a✝)
⊢ moveRight (mk α✝ β✝ a✝¹ a✝ + y) (↑toRightMovesAdd (Sum.inl i)) = moveRight (mk α✝ β✝ a✝¹ a✝) i + y

tactic: rfl
state_before: case mk.mk
α✝¹ β✝¹ : Type u_1
a✝³ : α✝¹ → PGame
a✝² : β✝¹ → PGame
i : RightMoves (mk α✝¹ β✝¹ a✝³ a✝²)
α✝ β✝ : Type u_1
a✝¹ : α✝ → PGame
a✝ : β✝ → PGame
⊢ moveRight (mk α✝¹ β✝¹ a✝³ a✝² + mk α✝ β✝ a✝¹ a✝) (↑toRightMovesAdd (Sum.inl i)) =
    moveRight (mk α✝¹ β✝¹ a✝³ a✝²) i + mk α✝ β✝ a✝¹ a✝
Theorem: Summable.toNNReal
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: apply NNReal.summable_coe.1
state_before: α : Type u_1
β : Type ?u.340703
γ : Type ?u.340706
f : α → ℝ
hf : Summable f
⊢ Summable fun n => Real.toNNReal (f n)

tactic: refine' summable_of_nonneg_of_le (fun n => NNReal.coe_nonneg _) (fun n => _) hf.abs
state_before: α : Type u_1
β : Type ?u.340703
γ : Type ?u.340706
f : α → ℝ
hf : Summable f
⊢ Summable fun a => ↑(Real.toNNReal (f a))

tactic: simp only [le_abs_self, Real.coe_toNNReal', max_le_iff, abs_nonneg, and_self_iff]
state_before: α : Type u_1
β : Type ?u.340703
γ : Type ?u.340706
f : α → ℝ
hf : Summable f
n : α
⊢ ↑(Real.toNNReal (f n)) ≤ Abs.abs (f n)
Theorem: Associates.irreducible_iff_prime_iff
File: Mathlib/Algebra/Associated.lean

tactic: simp_rw [forall_associated, irreducible_mk, prime_mk]
state_before: α : Type u_1
β : Type ?u.327284
γ : Type ?u.327287
δ : Type ?u.327290
inst✝ : CommMonoidWithZero α
⊢ (∀ (a : α), Irreducible a ↔ Prime a) ↔ ∀ (a : Associates α), Irreducible a ↔ Prime a
Theorem: MeasureTheory.Measure.restrict_restrict₀
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp only [Set.inter_assoc, restrict_apply hu,
  restrict_apply₀ (hu.nullMeasurableSet.inter hs)]
state_before: α : Type u_1
β : Type ?u.289512
γ : Type ?u.289515
δ : Type ?u.289518
ι : Type ?u.289521
R : Type ?u.289524
R' : Type ?u.289527
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
hs : NullMeasurableSet s
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict (restrict μ t) s) u = ↑↑(restrict μ (s ∩ t)) u
Theorem: MeasureTheory.lintegral_indicator₀
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [← lintegral_congr_ae (indicator_ae_eq_of_ae_eq_set hs.toMeasurable_ae_eq),
  lintegral_indicator _ (measurableSet_toMeasurable _ _),
  Measure.restrict_congr_set hs.toMeasurable_ae_eq]
state_before: α : Type u_1
β : Type ?u.952259
γ : Type ?u.952262
δ : Type ?u.952265
m : MeasurableSpace α
μ ν : Measure α
f : α → ℝ≥0∞
s : Set α
hs : NullMeasurableSet s
⊢ (∫⁻ (a : α), indicator s f a ∂μ) = ∫⁻ (a : α) in s, f a ∂μ
Theorem: Set.einfsep_pos
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: rw [pos_iff_ne_zero, Ne.def, einfsep_zero]
state_before: α : Type u_1
β : Type ?u.5645
inst✝ : EDist α
x y : α
s t : Set α
⊢ 0 < einfsep s ↔ ∃ C _hC, ∀ (x : α), x ∈ s → ∀ (y : α), y ∈ s → x ≠ y → C ≤ edist x y

tactic: simp only [not_forall, not_exists, not_lt]
state_before: α : Type u_1
β : Type ?u.5645
inst✝ : EDist α
x y : α
s t : Set α
⊢ (¬∀ (C : ℝ≥0∞), 0 < C → ∃ x x_1 y x_2 _hxy, edist x y < C) ↔
    ∃ C _hC, ∀ (x : α), x ∈ s → ∀ (y : α), y ∈ s → x ≠ y → C ≤ edist x y
Theorem: Submodule.convex
File: Mathlib/Analysis/Convex/Basic.lean

tactic: repeat' intro
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.283563
β : Type ?u.283566
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
K : Submodule 𝕜 E
⊢ Convex 𝕜 ↑K

tactic: refine' add_mem (smul_mem _ _ _) (smul_mem _ _ _) <;> assumption
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.283563
β : Type ?u.283566
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
K : Submodule 𝕜 E
x✝ : E
a✝⁵ : x✝ ∈ ↑K
y✝ : E
a✝⁴ : y✝ ∈ ↑K
a✝³ b✝ : 𝕜
a✝² : 0 ≤ a✝³
a✝¹ : 0 ≤ b✝
a✝ : a✝³ + b✝ = 1
⊢ a✝³ • x✝ + b✝ • y✝ ∈ ↑K

tactic: intro
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.283563
β : Type ?u.283566
inst✝² : OrderedSemiring 𝕜
inst✝¹ : AddCommMonoid E
inst✝ : Module 𝕜 E
K : Submodule 𝕜 E
x✝ : E
a✝⁵ : x✝ ∈ ↑K
y✝ : E
a✝⁴ : y✝ ∈ ↑K
a✝³ b✝ : 𝕜
a✝² : 0 ≤ a✝³
a✝¹ : 0 ≤ b✝
a✝ : a✝³ + b✝ = 1
⊢ a✝³ • x✝ + b✝ • y✝ ∈ ↑K
Theorem: MvPowerSeries.mul_one
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: simpa using coeff_add_mul_monomial n 0 φ 1
state_before: σ : Type u_1
R : Type u_2
inst✝ : Semiring R
m n✝ : σ →₀ ℕ
φ ψ : MvPowerSeries σ R
n : σ →₀ ℕ
⊢ ↑(coeff R n) (φ * 1) = ↑(coeff R n) φ
Theorem: Composition.mem_range_embedding
File: Mathlib/Combinatorics/Composition.lean

tactic: have : c.embedding (c.index j) (c.invEmbedding j) ∈ Set.range (c.embedding (c.index j)) :=
  Set.mem_range_self _
state_before: n : ℕ
c : Composition n
j : Fin n
⊢ j ∈ Set.range ↑(embedding c (index c j))

tactic: rw [c.embedding_comp_inv j] at this
state_before: n : ℕ
c : Composition n
j : Fin n
this : ↑(embedding c (index c j)) (invEmbedding c j) ∈ Set.range ↑(embedding c (index c j))
⊢ j ∈ Set.range ↑(embedding c (index c j))

tactic: assumption
state_before: n : ℕ
c : Composition n
j : Fin n
this : j ∈ Set.range ↑(embedding c (index c j))
⊢ j ∈ Set.range ↑(embedding c (index c j))
Theorem: Polynomial.le_trailingDegree_monomial
File: Mathlib/Data/Polynomial/Degree/TrailingDegree.lean

tactic: simp [ha]
state_before: R : Type u
S : Type v
a b : R
n m : ℕ
inst✝ : Semiring R
p q r : R[X]
ha : a = 0
⊢ ↑n ≤ trailingDegree (↑(monomial n) a)
Theorem: CategoryTheory.MonoidalCategory.rightUnitor_tensor
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: rw [← tensor_right_iff, comp_tensor_id, ← cancel_mono (α_ X Y (𝟙_ C)).hom, assoc,
  associator_naturality, ← triangle_assoc, ← triangle, id_tensor_comp, pentagon_assoc, ←
  associator_naturality, tensor_id]
state_before: C✝ : Type u
𝒞 : Category C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category C
inst✝ : MonoidalCategory C
U V W X✝ Y✝ Z X Y : C
⊢ (ρ_ (X ⊗ Y)).hom = (α_ X Y (𝟙_ C)).hom ≫ (𝟙 X ⊗ (ρ_ Y).hom)
Theorem: WithSeminorms.topologicalAddGroup
File: Mathlib/Analysis/LocallyConvex/WithSeminorms.lean

tactic: rw [hp.withSeminorms_eq]
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.180765
𝕝 : Type ?u.180768
𝕝₂ : Type ?u.180771
E : Type u_2
F : Type ?u.180777
G : Type ?u.180780
ι : Type u_3
ι' : Type ?u.180786
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ TopologicalAddGroup E

tactic: exact AddGroupFilterBasis.isTopologicalAddGroup _
state_before: 𝕜 : Type u_1
𝕜₂ : Type ?u.180765
𝕝 : Type ?u.180768
𝕝₂ : Type ?u.180771
E : Type u_2
F : Type ?u.180777
G : Type ?u.180780
ι : Type u_3
ι' : Type ?u.180786
inst✝⁴ : NormedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : Module 𝕜 E
inst✝¹ : Nonempty ι
inst✝ : TopologicalSpace E
p : SeminormFamily 𝕜 E ι
hp : WithSeminorms p
⊢ TopologicalAddGroup E
Theorem: Disjoint.ne
File: Mathlib/Order/Disjoint.lean

tactic: rwa [← h] at hab
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : OrderBot α
a b c d : α
ha : a ≠ ⊥
hab : Disjoint a b
h : a = b
⊢ Disjoint a a
Theorem: Set.PairwiseDisjoint.exists_mem_filter
File: Mathlib/Order/Filter/Basic.lean

tactic: haveI := ht.to_subtype
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.89945
ι✝ : Sort x
f g : Filter α
s t✝ : Set α
ι : Type u_1
l : ι → Filter α
t : Set ι
hd : PairwiseDisjoint t l
ht : Set.Finite t
⊢ ∃ s, (∀ (i : ι), s i ∈ l i) ∧ PairwiseDisjoint t s

tactic: rcases (hd.subtype _ _).exists_mem_filter_of_disjoint with ⟨s, hsl, hsd⟩
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.89945
ι✝ : Sort x
f g : Filter α
s t✝ : Set α
ι : Type u_1
l : ι → Filter α
t : Set ι
hd : PairwiseDisjoint t l
ht : Set.Finite t
this : Finite ↑t
⊢ ∃ s, (∀ (i : ι), s i ∈ l i) ∧ PairwiseDisjoint t s

tactic: lift s to (i : t) → {s // s ∈ l i} using hsl
state_before: case intro.intro
α : Type u
β : Type v
γ : Type w
δ : Type ?u.89945
ι✝ : Sort x
f g : Filter α
s✝ t✝ : Set α
ι : Type u_1
l : ι → Filter α
t : Set ι
hd : PairwiseDisjoint t l
ht : Set.Finite t
this : Finite ↑t
s : ↑t → Set α
hsl : ∀ (i : ↑t), s i ∈ l ↑i
hsd : Pairwise (Disjoint on s)
⊢ ∃ s, (∀ (i : ι), s i ∈ l i) ∧ PairwiseDisjoint t s

tactic: rcases @Subtype.exists_pi_extension ι (fun i => { s // s ∈ l i }) _ _ s with ⟨s, rfl⟩
state_before: case intro.intro.intro
α : Type u
β : Type v
γ : Type w
δ : Type ?u.89945
ι✝ : Sort x
f g : Filter α
s✝ t✝ : Set α
ι : Type u_1
l : ι → Filter α
t : Set ι
hd : PairwiseDisjoint t l
ht : Set.Finite t
this : Finite ↑t
s : (i : ↑t) → { s // s ∈ l ↑i }
hsd : Pairwise (Disjoint on fun i => ↑(s i))
⊢ ∃ s, (∀ (i : ι), s i ∈ l i) ∧ PairwiseDisjoint t s

tactic: exact ⟨fun i => s i, fun i => (s i).2, hsd.set_of_subtype _ _⟩
state_before: case intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
δ : Type ?u.89945
ι✝ : Sort x
f g : Filter α
s✝ t✝ : Set α
ι : Type u_1
l : ι → Filter α
t : Set ι
hd : PairwiseDisjoint t l
ht : Set.Finite t
this : Finite ↑t
s : (i : ι) → { s // s ∈ l i }
hsd : Pairwise (Disjoint on fun i => ↑((fun i => s ↑i) i))
⊢ ∃ s, (∀ (i : ι), s i ∈ l i) ∧ PairwiseDisjoint t s
Theorem: Valuation.map_one_sub_of_lt
File: Mathlib/RingTheory/Valuation/Basic.lean

tactic: rw [← v.map_one, ← v.map_neg] at h
state_before: K : Type ?u.2424657
F : Type ?u.2424660
R : Type u_2
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type ?u.2424672
Γ''₀ : Type ?u.2424675
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : Ring R
inst✝ : LinearOrderedCommGroupWithZero Γ₀
v : Valuation R Γ₀
x y z : R
h : ↑v x < 1
⊢ ↑v (1 - x) = 1

tactic: rw [sub_eq_add_neg 1 x]
state_before: K : Type ?u.2424657
F : Type ?u.2424660
R : Type u_2
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type ?u.2424672
Γ''₀ : Type ?u.2424675
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : Ring R
inst✝ : LinearOrderedCommGroupWithZero Γ₀
v : Valuation R Γ₀
x y z : R
h : ↑v (-x) < ↑v 1
⊢ ↑v (1 - x) = 1

tactic: simpa only [v.map_one, v.map_neg] using v.map_add_eq_of_lt_left h
state_before: K : Type ?u.2424657
F : Type ?u.2424660
R : Type u_2
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type ?u.2424672
Γ''₀ : Type ?u.2424675
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : Ring R
inst✝ : LinearOrderedCommGroupWithZero Γ₀
v : Valuation R Γ₀
x y z : R
h : ↑v (-x) < ↑v 1
⊢ ↑v (1 + -x) = 1
Theorem: Multiset.prod_eq_foldl
File: Mathlib/Algebra/BigOperators/Multiset/Basic.lean

tactic: simp [mul_right_comm]
state_before: ι : Type ?u.3031
α : Type ?u.3034
β : Type ?u.3037
γ : Type ?u.3040
inst✝ : CommMonoid α
s✝ t : Multiset α
a : α
m : Multiset ι
f g : ι → α
s : Multiset α
x y z : α
⊢ (fun x x_1 => x * x_1) ((fun x x_1 => x * x_1) x y) z = (fun x x_1 => x * x_1) ((fun x x_1 => x * x_1) x z) y

tactic: simp [mul_comm]
state_before: ι : Type ?u.3031
α : Type u_1
β : Type ?u.3037
γ : Type ?u.3040
inst✝ : CommMonoid α
s✝ t : Multiset α
a : α
m : Multiset ι
f g : ι → α
s : Multiset α
⊢ foldl (fun x y => y * x) (_ : ∀ (_x _y _z : α), _z * (_y * _x) = _y * (_z * _x)) 1 s =
    foldl (fun x x_1 => x * x_1) (_ : ∀ (x y z : α), x * y * z = x * z * y) 1 s
Theorem: Representation.smul_tprod_one_asModule
File: Mathlib/RepresentationTheory/Basic.lean

tactic: show asAlgebraHom (ρV ⊗ 1) _ _ = asAlgebraHom ρV _ _ ⊗ₜ _
state_before: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ let x' := x;
  let z := x ⊗ₜ[k] y;
  r • z = (r • x') ⊗ₜ[k] y

tactic: simp only [asAlgebraHom_def, MonoidAlgebra.lift_apply, tprod_apply, MonoidHom.one_apply,
  LinearMap.finsupp_sum_apply, LinearMap.smul_apply, TensorProduct.map_tmul, LinearMap.one_apply]
state_before: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ ↑(↑(asAlgebraHom (ρV ⊗ 1)) r) (x ⊗ₜ[k] y) = ↑(↑(asAlgebraHom ρV) r) x ⊗ₜ[k] y

tactic: simp only [Finsupp.sum, TensorProduct.sum_tmul]
state_before: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ (Finsupp.sum r fun i d => d • ↑(↑ρV i) x ⊗ₜ[k] y) = (Finsupp.sum r fun i d => d • ↑(↑ρV i) x) ⊗ₜ[k] y

tactic: rfl
state_before: k : Type u_1
G : Type u_2
V : Type u_3
W : Type u_4
inst✝⁵ : CommSemiring k
inst✝⁴ : Monoid G
inst✝³ : AddCommMonoid V
inst✝² : Module k V
inst✝¹ : AddCommMonoid W
inst✝ : Module k W
ρV : Representation k G V
ρW : Representation k G W
r : MonoidAlgebra k G
x : V
y : W
⊢ (Finset.sum r.support fun x_1 => ↑r x_1 • ↑(↑ρV x_1) x ⊗ₜ[k] y) =
    Finset.sum r.support fun a => (↑r a • ↑(↑ρV a) x) ⊗ₜ[k] y
Theorem: isOpen_iff_ultrafilter'
File: Mathlib/Topology/Separation.lean

tactic: rw [isOpen_iff_ultrafilter]
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
f : Filter α
inst✝ : CompactSpace α
U : Set α
⊢ IsOpen U ↔ ∀ (F : Ultrafilter α), Ultrafilter.lim F ∈ U → U ∈ ↑F

tactic: refine' ⟨fun h F hF => h F.lim hF F F.le_nhds_lim, _⟩
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
f : Filter α
inst✝ : CompactSpace α
U : Set α
⊢ (∀ (x : α), x ∈ U → ∀ (l : Ultrafilter α), ↑l ≤ 𝓝 x → U ∈ l) ↔ ∀ (F : Ultrafilter α), Ultrafilter.lim F ∈ U → U ∈ ↑F

tactic: intro cond x hx f h
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
f : Filter α
inst✝ : CompactSpace α
U : Set α
⊢ (∀ (F : Ultrafilter α), Ultrafilter.lim F ∈ U → U ∈ ↑F) → ∀ (x : α), x ∈ U → ∀ (l : Ultrafilter α), ↑l ≤ 𝓝 x → U ∈ l

tactic: rw [← Ultrafilter.lim_eq_iff_le_nhds.2 h] at hx
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
f✝ : Filter α
inst✝ : CompactSpace α
U : Set α
cond : ∀ (F : Ultrafilter α), Ultrafilter.lim F ∈ U → U ∈ ↑F
x : α
hx : x ∈ U
f : Ultrafilter α
h : ↑f ≤ 𝓝 x
⊢ U ∈ f

tactic: exact cond _ hx
state_before: α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : T2Space α
f✝ : Filter α
inst✝ : CompactSpace α
U : Set α
cond : ∀ (F : Ultrafilter α), Ultrafilter.lim F ∈ U → U ∈ ↑F
x : α
f : Ultrafilter α
hx : Ultrafilter.lim f ∈ U
h : ↑f ≤ 𝓝 x
⊢ U ∈ f
Theorem: EuclideanGeometry.dist_reflection
File: Mathlib/Geometry/Euclidean/Basic.lean

tactic: conv_lhs => rw [← reflection_reflection s p₁]
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty { x // x ∈ s }
inst✝ : CompleteSpace { x // x ∈ direction s }
p₁ p₂ : P
⊢ dist p₁ (↑(reflection s) p₂) = dist (↑(reflection s) p₁) p₂

tactic: exact (reflection s).dist_map _ _
state_before: V : Type u_1
P : Type u_2
inst✝⁵ : NormedAddCommGroup V
inst✝⁴ : InnerProductSpace ℝ V
inst✝³ : MetricSpace P
inst✝² : NormedAddTorsor V P
s : AffineSubspace ℝ P
inst✝¹ : Nonempty { x // x ∈ s }
inst✝ : CompleteSpace { x // x ∈ direction s }
p₁ p₂ : P
⊢ dist (↑(reflection s) (↑(reflection s) p₁)) (↑(reflection s) p₂) = dist (↑(reflection s) p₁) p₂
Theorem: MulLECancellable.injective_left
File: Mathlib/Algebra/Order/Monoid/Lemmas.lean

tactic: dsimp
state_before: α : Type u_1
β : Type ?u.84683
inst✝¹ : CommSemigroup α
inst✝ : PartialOrder α
a : α
ha : MulLECancellable a
b c : α
h : (fun x => x * a) b = (fun x => x * a) c
⊢ (fun x x_1 => x * x_1) a b = (fun x x_1 => x * x_1) a c

tactic: rwa [mul_comm a, mul_comm a]
state_before: α : Type u_1
β : Type ?u.84683
inst✝¹ : CommSemigroup α
inst✝ : PartialOrder α
a : α
ha : MulLECancellable a
b c : α
h : (fun x => x * a) b = (fun x => x * a) c
⊢ a * b = a * c
Theorem: Vector.mem_succ_iff
File: Mathlib/Data/Vector/Mem.lean

tactic: obtain ⟨a', v', h⟩ := exists_eq_cons v
state_before: α : Type u_1
β : Type ?u.1743
n : ℕ
a a' : α
v : Vector α (n + 1)
⊢ a ∈ toList v ↔ a = head v ∨ a ∈ toList (tail v)

tactic: simp_rw [h, Vector.mem_cons_iff, Vector.head_cons, Vector.tail_cons]
state_before: case intro.intro
α : Type u_1
β : Type ?u.1743
n : ℕ
a a'✝ : α
v : Vector α (n + 1)
a' : α
v' : Vector α n
h : v = a' ::ᵥ v'
⊢ a ∈ toList v ↔ a = head v ∨ a ∈ toList (tail v)
Theorem: Function.Commute.left_bijOn_fixedPoints_comp
File: Mathlib/Dynamics/FixedPoints/Basic.lean

tactic: simpa only [h.comp_eq] using bijOn_fixedPoints_comp g f
state_before: α : Type u
β : Type v
f fa g : α → α
x y : α
fb : β → β
m n k : ℕ
e : Perm α
h : Commute f g
⊢ Set.BijOn f (fixedPoints (f ∘ g)) (fixedPoints (f ∘ g))
Theorem: Stirling.stirlingSeq_zero
File: Mathlib/Analysis/SpecialFunctions/Stirling.lean

tactic: rw [stirlingSeq, cast_zero, MulZeroClass.mul_zero, Real.sqrt_zero, MulZeroClass.zero_mul,
  div_zero]
state_before: ⊢ stirlingSeq 0 = 0
Theorem: Multiset.addHom_ext
File: Mathlib/Data/Multiset/Basic.lean

tactic: ext s
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.423906
inst✝ : AddZeroClass β
f g : Multiset α →+ β
h : ∀ (x : α), ↑f {x} = ↑g {x}
⊢ f = g

tactic: induction' s using Multiset.induction_on with a s ih
state_before: case h
α : Type u_2
β : Type u_1
γ : Type ?u.423906
inst✝ : AddZeroClass β
f g : Multiset α →+ β
h : ∀ (x : α), ↑f {x} = ↑g {x}
s : Multiset α
⊢ ↑f s = ↑g s

tactic: simp only [_root_.map_zero]
state_before: case h.empty
α : Type u_2
β : Type u_1
γ : Type ?u.423906
inst✝ : AddZeroClass β
f g : Multiset α →+ β
h : ∀ (x : α), ↑f {x} = ↑g {x}
⊢ ↑f 0 = ↑g 0

tactic: simp only [← singleton_add, _root_.map_add, ih, h]
state_before: case h.cons
α : Type u_2
β : Type u_1
γ : Type ?u.423906
inst✝ : AddZeroClass β
f g : Multiset α →+ β
h : ∀ (x : α), ↑f {x} = ↑g {x}
a : α
s : Multiset α
ih : ↑f s = ↑g s
⊢ ↑f (a ::ₘ s) = ↑g (a ::ₘ s)
Theorem: ContinuousLinearEquiv.contDiff_comp_iff
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: rw [← contDiffOn_univ, ← contDiffOn_univ, ← preimage_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
X : Type ?u.584662
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
e : G ≃L[𝕜] E
⊢ ContDiff 𝕜 n (f ∘ ↑e) ↔ ContDiff 𝕜 n f

tactic: exact e.contDiffOn_comp_iff
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
X : Type ?u.584662
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
e : G ≃L[𝕜] E
⊢ ContDiffOn 𝕜 n (f ∘ ↑e) (?m.591289 ⁻¹' univ) ↔ ContDiffOn 𝕜 n f univ

𝕜 : 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
X : Type ?u.584662
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
e : G ≃L[𝕜] E
⊢ Type ?u.591286

𝕜 : 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
X : Type ?u.584662
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
b : E × F → G
m n : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
e : G ≃L[𝕜] E
⊢ G → ?m.591288
Theorem: Order.succ_eq_iff_covby
File: Mathlib/Order/SuccPred/Basic.lean

tactic: rintro rfl
state_before: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : SuccOrder α
a b : α
inst✝ : NoMaxOrder α
⊢ succ a = b → a ⋖ b

tactic: exact covby_succ _
state_before: α : Type u_1
inst✝² : PartialOrder α
inst✝¹ : SuccOrder α
a : α
inst✝ : NoMaxOrder α
⊢ a ⋖ succ a
Theorem: Real.arccos_eq_arctan
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean

tactic: rw [arccos, eq_comm]
state_before: x : ℝ
h : 0 < x
⊢ arccos x = arctan (sqrt (↑1 - x ^ 2) / x)

tactic: refine' arctan_eq_of_tan_eq _ ⟨_, _⟩
state_before: x : ℝ
h : 0 < x
⊢ arctan (sqrt (↑1 - x ^ 2) / x) = π / 2 - arcsin x

tactic: rw_mod_cast [tan_pi_div_two_sub, tan_arcsin, inv_div]
state_before: case refine'_1
x : ℝ
h : 0 < x
⊢ tan (π / 2 - arcsin x) = sqrt (↑1 - x ^ 2) / x

tactic: linarith only [arcsin_le_pi_div_two x, pi_pos]
state_before: case refine'_2
x : ℝ
h : 0 < x
⊢ -(π / 2) < π / 2 - arcsin x

tactic: linarith only [arcsin_pos.2 h]
state_before: case refine'_3
x : ℝ
h : 0 < x
⊢ π / 2 - arcsin x < π / 2
Theorem: zero_eq_mul_self
File: Mathlib/Algebra/GroupWithZero/Defs.lean

tactic: simp
state_before: G₀ : Type u
M₀ : Type u_1
M₀' : Type ?u.12644
G₀' : Type ?u.12647
inst✝¹ : MulZeroClass M₀
inst✝ : NoZeroDivisors M₀
a b : M₀
⊢ 0 = a * a ↔ a = 0
Theorem: Finset.weightedVSub_empty
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: simp [weightedVSub_apply]
state_before: k : Type u_3
V : Type u_1
P : Type u_4
inst✝² : Ring k
inst✝¹ : AddCommGroup V
inst✝ : Module k V
S : AffineSpace V P
ι : Type u_2
s : Finset ι
ι₂ : Type ?u.158854
s₂ : Finset ι₂
w : ι → k
p : ι → P
⊢ ↑(weightedVSub ∅ p) w = 0