tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.piPremeasure_pi'
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: cases isEmpty_or_nonempty ι
state_before: ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
⊢ piPremeasure m (Set.pi univ s) = ∏ i : ι, ↑(m i) (s i)

tactic: cases' (pi univ s).eq_empty_or_nonempty with h h
state_before: case inr
ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
⊢ piPremeasure m (Set.pi univ s) = ∏ i : ι, ↑(m i) (s i)

tactic: simp [piPremeasure]
state_before: case inl
ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : IsEmpty ι
⊢ piPremeasure m (Set.pi univ s) = ∏ i : ι, ↑(m i) (s i)

tactic: rcases univ_pi_eq_empty_iff.mp h with ⟨i, hi⟩
state_before: case inr.inl
ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : Set.pi univ s = ∅
⊢ piPremeasure m (Set.pi univ s) = ∏ i : ι, ↑(m i) (s i)

tactic: have : ∃ i, m i (s i) = 0 := ⟨i, by simp [hi]⟩
state_before: case inr.inl.intro
ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : Set.pi univ s = ∅
i : ι
hi : s i = ∅
⊢ piPremeasure m (Set.pi univ s) = ∏ i : ι, ↑(m i) (s i)

tactic: simpa [h, Finset.card_univ, zero_pow (Fintype.card_pos_iff.mpr ‹_›), @eq_comm _ (0 : ℝ≥0∞),
  Finset.prod_eq_zero_iff, piPremeasure]
state_before: case inr.inl.intro
ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : Set.pi univ s = ∅
i : ι
hi : s i = ∅
this : ∃ i, ↑(m i) (s i) = 0
⊢ piPremeasure m (Set.pi univ s) = ∏ i : ι, ↑(m i) (s i)

tactic: simp [hi]
state_before: ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : Set.pi univ s = ∅
i : ι
hi : s i = ∅
⊢ ↑(m i) (s i) = 0

tactic: simp [h, piPremeasure]
state_before: case inr.inr
ι : Type u_2
ι' : Type ?u.1509037
α : ι → Type u_1
inst✝ : Fintype ι
m : (i : ι) → OuterMeasure (α i)
s : (i : ι) → Set (α i)
h✝ : Nonempty ι
h : Set.Nonempty (Set.pi univ s)
⊢ piPremeasure m (Set.pi univ s) = ∏ i : ι, ↑(m i) (s i)
Theorem: AlgebraicGeometry.StructureSheaf.const_mul_cancel
File: Mathlib/AlgebraicGeometry/StructureSheaf.lean

tactic: rw [const_mul, const_ext]
state_before: R : Type u
inst✝ : CommRing R
f g₁ g₂ : R
U : Opens ↑(PrimeSpectrum.Top R)
hu₁ : ∀ (x : ↑(PrimeSpectrum.Top R)), x ∈ U → g₁ ∈ Ideal.primeCompl x.asIdeal
hu₂ : ∀ (x : ↑(PrimeSpectrum.Top R)), x ∈ U → g₂ ∈ Ideal.primeCompl x.asIdeal
⊢ const R f g₁ U hu₁ * const R g₁ g₂ U hu₂ = const R f g₂ U hu₂

tactic: rw [mul_assoc]
state_before: case h
R : Type u
inst✝ : CommRing R
f g₁ g₂ : R
U : Opens ↑(PrimeSpectrum.Top R)
hu₁ : ∀ (x : ↑(PrimeSpectrum.Top R)), x ∈ U → g₁ ∈ Ideal.primeCompl x.asIdeal
hu₂ : ∀ (x : ↑(PrimeSpectrum.Top R)), x ∈ U → g₂ ∈ Ideal.primeCompl x.asIdeal
⊢ f * g₁ * g₂ = f * (g₁ * g₂)
Theorem: List.unzip_right
File: Mathlib/Data/List/Zip.lean

tactic: simp only [unzip_eq_map]
state_before: α : Type u
β : Type u_1
γ : Type ?u.85098
δ : Type ?u.85101
ε : Type ?u.85104
l : List (α × β)
⊢ (unzip l).snd = map Prod.snd l
Theorem: CategoryTheory.Limits.inl_of_isLimit
File: Mathlib/CategoryTheory/Preadditive/Biproducts.lean

tactic: apply ht.uniq (BinaryFan.mk (𝟙 X) 0)
state_before: C : Type u
inst✝² : Category C
inst✝¹ : Preadditive C
J : Type
inst✝ : Fintype J
X Y : C
t : BinaryBicone X Y
ht : IsLimit (BinaryBicone.toCone t)
⊢ t.inl = IsLimit.lift ht (BinaryFan.mk (𝟙 X) 0)

tactic: rintro ⟨⟨⟩⟩ <;> dsimp <;> simp
state_before: case x
C : Type u
inst✝² : Category C
inst✝¹ : Preadditive C
J : Type
inst✝ : Fintype J
X Y : C
t : BinaryBicone X Y
ht : IsLimit (BinaryBicone.toCone t)
⊢ ∀ (j : Discrete WalkingPair), t.inl ≫ (BinaryBicone.toCone t).π.app j = (BinaryFan.mk (𝟙 X) 0).π.app j
Theorem: Nat.factorization_eq_of_coprime_left
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: rw [factorization_mul_apply_of_coprime hab, ← factors_count_eq, ← factors_count_eq,
  count_eq_zero_of_not_mem (coprime_factors_disjoint hab hpa), add_zero]
state_before: p a b : ℕ
hab : coprime a b
hpa : p ∈ factors a
⊢ ↑(factorization (a * b)) p = ↑(factorization a) p
Theorem: ContDiffWithinAt.continuousLinearMap_comp
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: rcases hf m hm with ⟨u, hu, p, hp⟩
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.173285
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
g : F →L[𝕜] G
hf : ContDiffWithinAt 𝕜 n f s x
m : ℕ
hm : ↑m ≤ n
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (↑g ∘ f) p u

tactic: exact ⟨u, hu, _, hp.continuousLinearMap_comp g⟩
state_before: case intro.intro.intro
𝕜 : 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.173285
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
g : F →L[𝕜] G
hf : ContDiffWithinAt 𝕜 n f s x
m : ℕ
hm : ↑m ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
p : E → FormalMultilinearSeries 𝕜 E F
hp : HasFTaylorSeriesUpToOn (↑m) f p u
⊢ ∃ u, u ∈ 𝓝[insert x s] x ∧ ∃ p, HasFTaylorSeriesUpToOn (↑m) (↑g ∘ f) p u
Theorem: Order.mem_range_succ_of_not_isSuccLimit
File: Mathlib/Order/SuccPred/Limit.lean

tactic: cases' not_isSuccLimit_iff.1 h with b hb
state_before: α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : SuccOrder α
a b : α
C : α → Sort ?u.4712
h : ¬IsSuccLimit a
⊢ a ∈ range succ

tactic: exact ⟨b, hb.2⟩
state_before: case intro
α : Type u_1
inst✝¹ : PartialOrder α
inst✝ : SuccOrder α
a b✝ : α
C : α → Sort ?u.4712
h : ¬IsSuccLimit a
b : α
hb : ¬IsMax b ∧ succ b = a
⊢ a ∈ range succ
Theorem: NonemptyInterval.mem_pure
File: Mathlib/Order/Interval.lean

tactic: rw [← SetLike.mem_coe, coe_pure, mem_singleton_iff]
state_before: α : Type u_1
β : Type ?u.12507
γ : Type ?u.12510
δ : Type ?u.12513
ι : Sort ?u.12516
κ : ι → Sort ?u.12521
inst✝¹ : PartialOrder α
inst✝ : PartialOrder β
s t : NonemptyInterval α
x : α × α
a b : α
⊢ b ∈ pure a ↔ b = a
Theorem: Localization.mk_one
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [Localization.one]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type ?u.78772
inst✝¹ : CommMonoid N
P : Type ?u.78778
inst✝ : CommMonoid P
⊢ mk 1 1 = Localization.one S

tactic: rfl
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type ?u.78772
inst✝¹ : CommMonoid N
P : Type ?u.78778
inst✝ : CommMonoid P
⊢ mk 1 1 = One.one
Theorem: exists_lt_of_gauge_lt
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: obtain ⟨b, ⟨hb, hx⟩, hba⟩ := exists_lt_of_csInf_lt absorbs.gauge_set_nonempty h
state_before: 𝕜 : Type ?u.17621
E : Type u_1
F : Type ?u.17627
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
absorbs : Absorbent ℝ s
h : gauge s x < a
⊢ ∃ b, 0 < b ∧ b < a ∧ x ∈ b • s

tactic: exact ⟨b, hb, hba, hx⟩
state_before: case intro.intro.intro
𝕜 : Type ?u.17621
E : Type u_1
F : Type ?u.17627
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
absorbs : Absorbent ℝ s
h : gauge s x < a
b : ℝ
hba : b < a
hb : 0 < b
hx : x ∈ b • s
⊢ ∃ b, 0 < b ∧ b < a ∧ x ∈ b • s
Theorem: Matrix.induction_on'
File: Mathlib/Data/Matrix/Basis.lean

tactic: rw [matrix_eq_sum_std_basis M, ← Finset.sum_product']
state_before: l : Type ?u.17264
m : Type u_1
n : Type u_2
R : Type ?u.17273
α : Type u_3
inst✝⁵ : DecidableEq l
inst✝⁴ : DecidableEq m
inst✝³ : DecidableEq n
inst✝² : Semiring α
inst✝¹ : Fintype m
inst✝ : Fintype n
P : Matrix m n α → Prop
M : Matrix m n α
h_zero : P 0
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
⊢ P M

tactic: apply Finset.sum_induction _ _ h_add h_zero
state_before: l : Type ?u.17264
m : Type u_1
n : Type u_2
R : Type ?u.17273
α : Type u_3
inst✝⁵ : DecidableEq l
inst✝⁴ : DecidableEq m
inst✝³ : DecidableEq n
inst✝² : Semiring α
inst✝¹ : Fintype m
inst✝ : Fintype n
P : Matrix m n α → Prop
M : Matrix m n α
h_zero : P 0
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
⊢ P (∑ x in Finset.univ ×ˢ Finset.univ, stdBasisMatrix x.fst x.snd (M x.fst x.snd))

tactic: intros
state_before: l : Type ?u.17264
m : Type u_1
n : Type u_2
R : Type ?u.17273
α : Type u_3
inst✝⁵ : DecidableEq l
inst✝⁴ : DecidableEq m
inst✝³ : DecidableEq n
inst✝² : Semiring α
inst✝¹ : Fintype m
inst✝ : Fintype n
P : Matrix m n α → Prop
M : Matrix m n α
h_zero : P 0
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
⊢ ∀ (x : m × n), x ∈ Finset.univ ×ˢ Finset.univ → P (stdBasisMatrix x.fst x.snd (M x.fst x.snd))

tactic: apply h_std_basis
state_before: l : Type ?u.17264
m : Type u_1
n : Type u_2
R : Type ?u.17273
α : Type u_3
inst✝⁵ : DecidableEq l
inst✝⁴ : DecidableEq m
inst✝³ : DecidableEq n
inst✝² : Semiring α
inst✝¹ : Fintype m
inst✝ : Fintype n
P : Matrix m n α → Prop
M : Matrix m n α
h_zero : P 0
h_add : ∀ (p q : Matrix m n α), P p → P q → P (p + q)
h_std_basis : ∀ (i : m) (j : n) (x : α), P (stdBasisMatrix i j x)
x✝ : m × n
a✝ : x✝ ∈ Finset.univ ×ˢ Finset.univ
⊢ P (stdBasisMatrix x✝.fst x✝.snd (M x✝.fst x✝.snd))
Theorem: LieIdeal.comap_bracket_incl_of_le
File: Mathlib/Algebra/Lie/IdealOperations.lean

tactic: rw [comap_bracket_incl]
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
I₁ I₂ : LieIdeal R L
h₁ : I₁ ≤ I
h₂ : I₂ ≤ I
⊢ ⁅comap (incl I) I₁, comap (incl I) I₂⁆ = comap (incl I) ⁅I₁, I₂⁆

tactic: rw [← inf_eq_right] at h₁ h₂
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
I₁ I₂ : LieIdeal R L
h₁ : I₁ ≤ I
h₂ : I₂ ≤ I
⊢ comap (incl I) ⁅I ⊓ I₁, I ⊓ I₂⁆ = comap (incl I) ⁅I₁, I₂⁆

tactic: rw [h₁, h₂]
state_before: R : Type u
L : Type v
L' : Type w₂
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
inst✝¹ : LieRing L'
inst✝ : LieAlgebra R L'
f : L →ₗ⁅R⁆ L'
I : LieIdeal R L
J : LieIdeal R L'
I₁ I₂ : LieIdeal R L
h₁ : I ⊓ I₁ = I₁
h₂ : I ⊓ I₂ = I₂
⊢ comap (incl I) ⁅I ⊓ I₁, I ⊓ I₂⁆ = comap (incl I) ⁅I₁, I₂⁆
Theorem: ContinuousLinearEquiv.self_comp_symm
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: ext x
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type ?u.1589189
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_3
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type ?u.1590043
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_4
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type ?u.1590061
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type ?u.1590070
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
⊢ ↑e ∘ ↑(ContinuousLinearEquiv.symm e) = id

tactic: exact apply_symm_apply e x
state_before: case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type ?u.1589189
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_3
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type ?u.1590043
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_4
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type ?u.1590061
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type ?u.1590070
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
x : M₂
⊢ (↑e ∘ ↑(ContinuousLinearEquiv.symm e)) x = id x
Theorem: StarConvex.add_smul_sub_mem
File: Mathlib/Analysis/Convex/Star.lean

tactic: apply hs.segment_subset hy
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.114875
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y : E
s t✝ : Set E
hs : StarConvex 𝕜 x s
hy : y ∈ s
t : 𝕜
ht₀ : 0 ≤ t
ht₁ : t ≤ 1
⊢ x + t • (y - x) ∈ s

tactic: rw [segment_eq_image']
state_before: case a
𝕜 : Type u_1
E : Type u_2
F : Type ?u.114875
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y : E
s t✝ : Set E
hs : StarConvex 𝕜 x s
hy : y ∈ s
t : 𝕜
ht₀ : 0 ≤ t
ht₁ : t ≤ 1
⊢ x + t • (y - x) ∈ [x-[𝕜]y]

tactic: exact mem_image_of_mem _ ⟨ht₀, ht₁⟩
state_before: case a
𝕜 : Type u_1
E : Type u_2
F : Type ?u.114875
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
x y : E
s t✝ : Set E
hs : StarConvex 𝕜 x s
hy : y ∈ s
t : 𝕜
ht₀ : 0 ≤ t
ht₁ : t ≤ 1
⊢ x + t • (y - x) ∈ (fun θ => x + θ • (y - x)) '' Icc 0 1
Theorem: nhds_left_sup_nhds_right'
File: Mathlib/Topology/Algebra/Order/LeftRight.lean

tactic: rw [← nhdsWithin_union, Iic_union_Ioi, nhdsWithin_univ]
state_before: α : Type u_1
β : Type ?u.2877
inst✝² : TopologicalSpace α
inst✝¹ : LinearOrder α
inst✝ : TopologicalSpace β
a : α
⊢ 𝓝[Iic a] a ⊔ 𝓝[Ioi a] a = 𝓝 a
Theorem: Real.isBigO_exp_comp_exp_comp
File: Mathlib/Analysis/SpecialFunctions/Exp.lean

tactic: simp only [norm_eq_abs, abs_exp, ← exp_sub, isBoundedUnder_le_exp_comp, Pi.sub_def]
state_before: α : Type u_1
x y z : ℝ
l : Filter α
f g : α → ℝ
⊢ (IsBoundedUnder (fun x x_1 => x ≤ x_1) l fun x => ‖exp (f x)‖ / ‖exp (g x)‖) ↔
    IsBoundedUnder (fun x x_1 => x ≤ x_1) l (f - g)
Theorem: Function.Injective.sSameSide_map_iff
File: Mathlib/Analysis/Convex/Side.lean

tactic: simp_rw [SSameSide, hf.wSameSide_map_iff, mem_map_iff_mem_of_injective hf]
state_before: R : Type u_1
V : Type u_2
V' : Type u_4
P : Type u_3
P' : Type u_5
inst✝⁶ : StrictOrderedCommRing R
inst✝⁵ : AddCommGroup V
inst✝⁴ : Module R V
inst✝³ : AddTorsor V P
inst✝² : AddCommGroup V'
inst✝¹ : Module R V'
inst✝ : AddTorsor V' P'
s : AffineSubspace R P
x y : P
f : P →ᵃ[R] P'
hf : Function.Injective ↑f
⊢ SSameSide (map f s) (↑f x) (↑f y) ↔ SSameSide s x y
Theorem: ENNReal.mul_lt_of_lt_div
File: Mathlib/Data/Real/ENNReal.lean

tactic: contrapose! h
state_before: α : Type ?u.292307
β : Type ?u.292310
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : a < b / c
⊢ a * c < b

tactic: exact ENNReal.div_le_of_le_mul h
state_before: α : Type ?u.292307
β : Type ?u.292310
a b c d : ℝ≥0∞
r p q : ℝ≥0
h : b ≤ a * c
⊢ b / c ≤ a
Theorem: AntitoneOn.concaveOn_of_deriv
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: simpa only [← deriv.neg] using h_anti.neg
state_before: E : Type ?u.426364
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.426460
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f : ℝ → ℝ
hf : ContinuousOn f D
hf' : DifferentiableOn ℝ f (interior D)
h_anti : AntitoneOn (deriv f) (interior D)
⊢ MonotoneOn (deriv (-f)) (interior D)
Theorem: FixedPoints.rank_le_card
File: Mathlib/FieldTheory/Fixed.lean

tactic: simpa only [rank_fun', Cardinal.mk_coe_finset, Finset.coe_sort_coe, Cardinal.lift_natCast,
  Cardinal.natCast_le] using
  cardinal_lift_le_rank_of_linearIndependent'
    (linearIndependent_smul_of_linearIndependent G F hs)
state_before: M : Type u
inst✝⁵ : Monoid M
G : Type u
inst✝⁴ : Group G
F : Type v
inst✝³ : Field F
inst✝² : MulSemiringAction M F
inst✝¹ : MulSemiringAction G F
m : M
inst✝ : Fintype G
x : F
s : Finset F
hs : LinearIndependent { x // x ∈ subfield G F } fun i => ↑i
⊢ card s ≤ Fintype.card G
Theorem: ContinuousMap.nhds_compactConvergence
File: Mathlib/Topology/UniformSpace/CompactConvergence.lean

tactic: rw [TopologicalSpace.nhds_mkOfNhds_filterBasis] <;> rintro g - ⟨⟨K, V⟩, ⟨hK, hV⟩, rfl⟩
state_before: α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K : Set α
V : Set (β × β)
f : C(α, β)
⊢ 𝓝 f = FilterBasis.filter (compactConvergenceFilterBasis f)

tactic: exact self_mem_compactConvNhd g hV
state_before: case h₀.intro.mk.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f g : C(α, β)
K : Set α
V : Set (β × β)
hK : IsCompact (K, V).fst
hV : (K, V).snd ∈ 𝓤 β
⊢ g ∈ (fun KV => compactConvNhd KV.fst KV.snd g) (K, V)

tactic: obtain ⟨V', hV', h₁, h₂⟩ := compactConvNhd_nhd_basis g hV
state_before: case h₁.intro.mk.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f g : C(α, β)
K : Set α
V : Set (β × β)
hK : IsCompact (K, V).fst
hV : (K, V).snd ∈ 𝓤 β
⊢ ∃ n₁,
    n₁ ∈ compactConvergenceFilterBasis g ∧
      n₁ ⊆ (fun KV => compactConvNhd KV.fst KV.snd g) (K, V) ∧
        ∀ (x' : C(α, β)),
          x' ∈ n₁ → ∃ n₂, n₂ ∈ compactConvergenceFilterBasis x' ∧ n₂ ⊆ (fun KV => compactConvNhd KV.fst KV.snd g) (K, V)

tactic: exact
  ⟨compactConvNhd K V' g, ⟨⟨K, V'⟩, ⟨hK, hV'⟩, rfl⟩, compactConvNhd_mono g h₁, fun g' hg' =>
    ⟨compactConvNhd K V' g', ⟨⟨K, V'⟩, ⟨hK, hV'⟩, rfl⟩, h₂ g' hg'⟩⟩
state_before: case h₁.intro.mk.intro.intro.intro.intro.intro
α : Type u₁
β : Type u₂
inst✝¹ : TopologicalSpace α
inst✝ : UniformSpace β
K✝ : Set α
V✝ : Set (β × β)
f g : C(α, β)
K : Set α
V : Set (β × β)
hK : IsCompact (K, V).fst
hV : (K, V).snd ∈ 𝓤 β
V' : Set (β × β)
hV' : V' ∈ 𝓤 β
h₁ : V' ⊆ (K, V).snd
h₂ :
  ∀ (g_1 : C(α, β)),
    g_1 ∈ compactConvNhd ?m.4915 V' g → compactConvNhd ?m.4915 V' g_1 ⊆ compactConvNhd ?m.4915 (K, V).snd g
⊢ ∃ n₁,
    n₁ ∈ compactConvergenceFilterBasis g ∧
      n₁ ⊆ (fun KV => compactConvNhd KV.fst KV.snd g) (K, V) ∧
        ∀ (x' : C(α, β)),
          x' ∈ n₁ → ∃ n₂, n₂ ∈ compactConvergenceFilterBasis x' ∧ n₂ ⊆ (fun KV => compactConvNhd KV.fst KV.snd g) (K, V)
Theorem: isConnected_univ_pi
File: Mathlib/Topology/Connected.lean

tactic: simp only [IsConnected, ← univ_pi_nonempty_iff, forall_and, and_congr_right_iff]
state_before: α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
⊢ IsConnected (pi univ s) ↔ ∀ (i : ι), IsConnected (s i)

tactic: refine' fun hne => ⟨fun hc i => _, isPreconnected_univ_pi⟩
state_before: α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
⊢ Set.Nonempty (pi univ s) → (IsPreconnected (pi univ s) ↔ ∀ (x : ι), IsPreconnected (s x))

tactic: rw [← eval_image_univ_pi hne]
state_before: α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hne : Set.Nonempty (pi univ s)
hc : IsPreconnected (pi univ s)
i : ι
⊢ IsPreconnected (s i)

tactic: exact hc.image _ (continuous_apply _).continuousOn
state_before: α : Type u
β : Type v
ι : Type u_2
π : ι → Type u_1
inst✝¹ : TopologicalSpace α
s✝ t u v : Set α
inst✝ : (i : ι) → TopologicalSpace (π i)
s : (i : ι) → Set (π i)
hne : Set.Nonempty (pi univ s)
hc : IsPreconnected (pi univ s)
i : ι
⊢ IsPreconnected ((fun f => f i) '' pi univ s)
Theorem: FirstOrder.Language.BoundedFormula.inf_semanticallyEquivalent_not_sup_not
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: simp [and_iff_not_or_not]
state_before: L : Language
T : Theory L
α : Type w
n : ℕ
φ ψ : BoundedFormula L α n
M : Theory.ModelType T
v : α → ↑M
xs : Fin n → ↑M
⊢ Realize (φ ⊓ ψ ⇔ ∼(∼φ ⊔ ∼ψ)) v xs
Theorem: div_mul_eq_mul_div₀
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: simp_rw [div_eq_mul_inv, mul_assoc, mul_comm c⁻¹]
state_before: α : Type ?u.31135
M₀ : Type ?u.31138
G₀ : Type u_1
M₀' : Type ?u.31144
G₀' : Type ?u.31147
F : Type ?u.31150
F' : Type ?u.31153
inst✝ : CommGroupWithZero G₀
a✝ b✝ c✝ d a b c : G₀
⊢ a / c * b = a * b / c
Theorem: map_nhds_induced_of_mem
File: Mathlib/Topology/Order.lean

tactic: rw [nhds_induced, Filter.map_comap_of_mem h]
state_before: α : Type u_2
β : Type u_1
t : TopologicalSpace β
f : α → β
a : α
h : range f ∈ 𝓝 (f a)
⊢ map f (𝓝 a) = 𝓝 (f a)
Theorem: Equiv.Perm.apply_pow_apply_eq_iff
File: Mathlib/GroupTheory/Perm/Support.lean

tactic: rw [← mul_apply, Commute.self_pow f, mul_apply, apply_eq_iff_eq]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Fintype α
f✝ g f : Perm α
n : ℕ
x : α
⊢ ↑f (↑(f ^ n) x) = ↑(f ^ n) x ↔ ↑f x = x
Theorem: Ideal.span_singleton_prime
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: simp [isPrime_iff, Prime, span_singleton_eq_top, hp, mem_span_singleton]
state_before: α : Type u
β : Type v
a b : α
inst✝ : CommSemiring α
I : Ideal α
p : α
hp : p ≠ 0
⊢ IsPrime (span {p}) ↔ Prime p
Theorem: ENNReal.ofReal_mul
File: Mathlib/Data/Real/ENNReal.lean

tactic: simp only [ENNReal.ofReal, ← coe_mul, Real.toNNReal_mul hp]
state_before: α : Type ?u.814548
β : Type ?u.814551
a b c d : ℝ≥0∞
r p✝ q✝ : ℝ≥0
p q : ℝ
hp : 0 ≤ p
⊢ ENNReal.ofReal (p * q) = ENNReal.ofReal p * ENNReal.ofReal q
Theorem: Matrix.Pivot.exists_list_transvec_mul_mul_list_transvec_eq_diagonal
File: Mathlib/LinearAlgebra/Matrix/Transvection.lean

tactic: have e : n ≃ Fin (Fintype.card n) := Fintype.equivOfCardEq (by simp)
state_before: n : Type u_1
p : Type ?u.319321
R : Type u₂
𝕜 : Type u_2
inst✝⁵ : Field 𝕜
inst✝⁴ : DecidableEq n
inst✝³ : DecidableEq p
inst✝² : CommRing R
r : ℕ
M✝ : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
inst✝¹ : Fintype n
inst✝ : Fintype p
M : Matrix n n 𝕜
⊢ ∃ L L' D, List.prod (List.map toMatrix L) ⬝ M ⬝ List.prod (List.map toMatrix L') = diagonal D

tactic: apply reindex_exists_list_transvec_mul_mul_list_transvec_eq_diagonal M e
state_before: n : Type u_1
p : Type ?u.319321
R : Type u₂
𝕜 : Type u_2
inst✝⁵ : Field 𝕜
inst✝⁴ : DecidableEq n
inst✝³ : DecidableEq p
inst✝² : CommRing R
r : ℕ
M✝ : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
inst✝¹ : Fintype n
inst✝ : Fintype p
M : Matrix n n 𝕜
e : n ≃ Fin (Fintype.card n)
⊢ ∃ L L' D, List.prod (List.map toMatrix L) ⬝ M ⬝ List.prod (List.map toMatrix L') = diagonal D

tactic: apply exists_list_transvec_mul_mul_list_transvec_eq_diagonal_aux
state_before: n : Type u_1
p : Type ?u.319321
R : Type u₂
𝕜 : Type u_2
inst✝⁵ : Field 𝕜
inst✝⁴ : DecidableEq n
inst✝³ : DecidableEq p
inst✝² : CommRing R
r : ℕ
M✝ : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
inst✝¹ : Fintype n
inst✝ : Fintype p
M : Matrix n n 𝕜
e : n ≃ Fin (Fintype.card n)
⊢ ∃ L L' D, List.prod (List.map toMatrix L) ⬝ ↑(reindexAlgEquiv 𝕜 e) M ⬝ List.prod (List.map toMatrix L') = diagonal D

tactic: simp
state_before: n : Type u_1
p : Type ?u.319321
R : Type u₂
𝕜 : Type u_2
inst✝⁵ : Field 𝕜
inst✝⁴ : DecidableEq n
inst✝³ : DecidableEq p
inst✝² : CommRing R
r : ℕ
M✝ : Matrix (Fin r ⊕ Unit) (Fin r ⊕ Unit) 𝕜
inst✝¹ : Fintype n
inst✝ : Fintype p
M : Matrix n n 𝕜
⊢ Fintype.card n = Fintype.card (Fin (Fintype.card n))