tasksource/leandojo huggingface dataset:
Theorem: TopCat.Presheaf.pushforwardToOfIso_app
File: Mathlib/Topology/Sheaves/Presheaf.lean

tactic: simp [Opens.map, Set.preimage_preimage]
state_before: C : Type u
inst✝ : Category C
X Y : TopCat
H₁ : X ≅ Y
ℱ : Presheaf C Y
𝒢 : Presheaf C X
H₂ : ℱ ⟶ H₁.hom _* 𝒢
U : (Opens ↑X)ᵒᵖ
⊢ (Functor.op (Opens.map H₁.hom)).obj ((Opens.map H₁.inv).obj U.unop).op = U

tactic: simp [pushforwardToOfIso, Equivalence.toAdjunction, CategoryStruct.comp]
state_before: C : Type u
inst✝ : Category C
X Y : TopCat
H₁ : X ≅ Y
ℱ : Presheaf C Y
𝒢 : Presheaf C X
H₂ : ℱ ⟶ H₁.hom _* 𝒢
U : (Opens ↑X)ᵒᵖ
⊢ (pushforwardToOfIso H₁ H₂).app U =
    H₂.app ((Opens.map H₁.inv).obj U.unop).op ≫
      𝒢.map
        (eqToHom
          (_ :
            {
                  carrier :=
                    (forget TopCat).map H₁.hom ⁻¹'
                      ↑{ carrier := (forget TopCat).map H₁.inv ⁻¹' ↑U.unop,
                              is_open' := (_ : IsOpen (↑H₁.inv ⁻¹' ↑U.unop)) }.op.unop,
                  is_open' :=
                    (_ :
                      IsOpen
                        (↑H₁.hom ⁻¹'
                          ↑{ carrier := (forget TopCat).map H₁.inv ⁻¹' ↑U.unop,
                                  is_open' := (_ : IsOpen (↑H₁.inv ⁻¹' ↑U.unop)) }.op.unop)) }.op =
              U))
Theorem: Localization.le_comap_primeCompl_iff
File: Mathlib/RingTheory/Localization/AtPrime.lean

tactic: contrapose! hx
state_before: R : Type u_2
inst✝³ : CommSemiring R
M : Submonoid R
S : Type ?u.85926
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
P : Type u_1
inst✝ : CommSemiring P
I : Ideal R
hI : Ideal.IsPrime I
J : Ideal P
hJ : Ideal.IsPrime J
f : R →+* P
h : Ideal.primeCompl I ≤ Submonoid.comap f (Ideal.primeCompl J)
x : R
hx : x ∈ Ideal.comap f J
⊢ x ∈ I

tactic: exact h hx
state_before: R : Type u_2
inst✝³ : CommSemiring R
M : Submonoid R
S : Type ?u.85926
inst✝² : CommSemiring S
inst✝¹ : Algebra R S
P : Type u_1
inst✝ : CommSemiring P
I : Ideal R
hI : Ideal.IsPrime I
J : Ideal P
hJ : Ideal.IsPrime J
f : R →+* P
h : Ideal.primeCompl I ≤ Submonoid.comap f (Ideal.primeCompl J)
x : R
hx : ¬x ∈ I
⊢ ¬x ∈ Ideal.comap f J
Theorem: toIocMod_add_zsmul'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp only [toIocMod, toIocDiv_add_zsmul', sub_smul, sub_add]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
m : ℤ
⊢ toIocMod hp (a + m • p) b = toIocMod hp a b + m • p
Theorem: EuclideanGeometry.dist_eq_add_dist_iff_angle_eq_pi
File: Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean

tactic: rw [dist_eq_norm_vsub V, dist_eq_norm_vsub V, dist_eq_norm_vsub V, ← vsub_sub_vsub_cancel_right]
state_before: V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
hp1p2 : p1 ≠ p2
hp3p2 : p3 ≠ p2
⊢ dist p1 p3 = dist p1 p2 + dist p3 p2 ↔ ∠ p1 p2 p3 = π

tactic: exact
  norm_sub_eq_add_norm_iff_angle_eq_pi (fun he => hp1p2 (vsub_eq_zero_iff_eq.1 he)) fun he =>
    hp3p2 (vsub_eq_zero_iff_eq.1 he)
state_before: V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
hp1p2 : p1 ≠ p2
hp3p2 : p3 ≠ p2
⊢ ‖p1 -ᵥ ?p3 - (p3 -ᵥ ?p3)‖ = ‖p1 -ᵥ p2‖ + ‖p3 -ᵥ p2‖ ↔ ∠ p1 p2 p3 = π

case p3
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
p1 p2 p3 : P
hp1p2 : p1 ≠ p2
hp3p2 : p3 ≠ p2
⊢ P
Theorem: List.forall_mem_union
File: Mathlib/Data/List/Lattice.lean

tactic: simp only [mem_union, or_imp, forall_and]
state_before: α : Type u_1
l l₁ l₂ : List α
p : α → Prop
a : α
inst✝ : DecidableEq α
⊢ (∀ (x : α), x ∈ l₁ ∪ l₂ → p x) ↔ (∀ (x : α), x ∈ l₁ → p x) ∧ ∀ (x : α), x ∈ l₂ → p x
Theorem: Finset.map_subtype_embedding_Ioi
File: Mathlib/Order/LocallyFinite.lean

tactic: rw [subtype_Ioi_eq]
state_before: α : Type u_1
β : Type ?u.223996
inst✝² : Preorder α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : LocallyFiniteOrderTop α
a : Subtype p
hp : ∀ ⦃a x : α⦄, a ≤ x → p a → p x
⊢ map (Embedding.subtype p) (Ioi a) = Ioi ↑a

tactic: exact Finset.subtype_map_of_mem fun x hx => hp (mem_Ioi.1 hx).le a.prop
state_before: α : Type u_1
β : Type ?u.223996
inst✝² : Preorder α
p : α → Prop
inst✝¹ : DecidablePred p
inst✝ : LocallyFiniteOrderTop α
a : Subtype p
hp : ∀ ⦃a x : α⦄, a ≤ x → p a → p x
⊢ map (Embedding.subtype p) (Finset.subtype p (Ioi ↑a)) = Ioi ↑a
Theorem: MeasureTheory.set_lintegral_withDensity_eq_set_lintegral_mul_non_measurable
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: rw [restrict_withDensity hs, lintegral_withDensity_eq_lintegral_mul_non_measurable _ f_meas hf]
state_before: α : Type u_1
β : Type ?u.1811286
γ : Type ?u.1811289
δ : Type ?u.1811292
m m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ≥0∞
f_meas : Measurable f
g : α → ℝ≥0∞
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂Measure.restrict μ s, f x < ⊤
⊢ (∫⁻ (a : α) in s, g a ∂Measure.withDensity μ f) = ∫⁻ (a : α) in s, (f * g) a ∂μ
Theorem: OrthogonalFamily.isInternal_iff_of_isComplete
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: haveI : CompleteSpace (↥(iSup V)) := hc.completeSpace_coe
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.1082736
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_1
inst✝ : DecidableEq ι
V : ι → Submodule 𝕜 E
hV : OrthogonalFamily 𝕜 (fun i => { x // x ∈ V i }) fun i => Submodule.subtypeₗᵢ (V i)
hc : IsComplete ↑(iSup V)
⊢ DirectSum.IsInternal V ↔ (iSup V)ᗮ = ⊥

tactic: simp only [DirectSum.isInternal_submodule_iff_independent_and_iSup_eq_top, hV.independent,
  true_and_iff, Submodule.orthogonal_eq_bot_iff]
state_before: 𝕜 : Type u_2
E : Type u_3
F : Type ?u.1082736
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_1
inst✝ : DecidableEq ι
V : ι → Submodule 𝕜 E
hV : OrthogonalFamily 𝕜 (fun i => { x // x ∈ V i }) fun i => Submodule.subtypeₗᵢ (V i)
hc : IsComplete ↑(iSup V)
this : CompleteSpace { x // x ∈ iSup V }
⊢ DirectSum.IsInternal V ↔ (iSup V)ᗮ = ⊥
Theorem: Subalgebra.fg_bot_toSubmodule
File: Mathlib/RingTheory/Finiteness.lean

tactic: simp [Algebra.toSubmodule_bot]
state_before: R✝ : Type ?u.53562
M : Type ?u.53565
inst✝⁵ : Semiring R✝
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R✝ M
R : Type u_1
A : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
⊢ span R ↑{1} = ↑Subalgebra.toSubmodule ⊥
Theorem: Set.Subsingleton.induction_on
File: Mathlib/Data/Set/Basic.lean

tactic: rcases hs.eq_empty_or_singleton with (rfl | ⟨x, rfl⟩)
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s s₁ s₂ t t₁ t₂ u : Set α
p : Set α → Prop
hs : Set.Subsingleton s
he : p ∅
h₁ : ∀ (x : α), p {x}
⊢ p s

tactic: exacts [he, h₁ _]
state_before: case inl
α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s₁ s₂ t t₁ t₂ u : Set α
p : Set α → Prop
he : p ∅
h₁ : ∀ (x : α), p {x}
hs : Set.Subsingleton ∅
⊢ p ∅

case inr.intro
α : Type u
β : Type v
γ : Type w
ι : Sort x
a b : α
s₁ s₂ t t₁ t₂ u : Set α
p : Set α → Prop
he : p ∅
h₁ : ∀ (x : α), p {x}
x : α
hs : Set.Subsingleton {x}
⊢ p {x}
Theorem: finrank_eq_zero_of_rank_eq_zero
File: Mathlib/LinearAlgebra/FiniteDimensional.lean

tactic: convert finrank_eq_rank K V
state_before: K : Type u
V : Type v
inst✝³ : DivisionRing K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
inst✝ : FiniteDimensional K V
h : Module.rank K V = 0
⊢ finrank K V = 0

tactic: rw [h]
state_before: case a
K : Type u
V : Type v
inst✝³ : DivisionRing K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
inst✝ : FiniteDimensional K V
h : Module.rank K V = 0
⊢ finrank K V = 0 ↔ ↑(finrank K V) = Module.rank K V

tactic: norm_cast
state_before: case a
K : Type u
V : Type v
inst✝³ : DivisionRing K
inst✝² : AddCommGroup V
inst✝¹ : Module K V
inst✝ : FiniteDimensional K V
h : Module.rank K V = 0
⊢ finrank K V = 0 ↔ ↑(finrank K V) = 0
Theorem: cthickening_cthickening
File: Mathlib/Analysis/NormedSpace/Pointwise.lean

tactic: simp_rw [mem_cthickening_iff, ENNReal.ofReal_add hε hδ, infEdist_cthickening]
state_before: 𝕜 : Type ?u.231373
E : Type u_1
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x✝ y z : E
δ ε : ℝ
hε : 0 ≤ ε
hδ : 0 ≤ δ
s : Set E
x : E
⊢ x ∈ cthickening (ε + δ) s → x ∈ cthickening ε (cthickening δ s)

tactic: exact tsub_le_iff_right.2
state_before: 𝕜 : Type ?u.231373
E : Type u_1
inst✝³ : NormedField 𝕜
inst✝² : SeminormedAddCommGroup E
inst✝¹ : NormedSpace 𝕜 E
inst✝ : NormedSpace ℝ E
x✝ y z : E
δ ε : ℝ
hε : 0 ≤ ε
hδ : 0 ≤ δ
s : Set E
x : E
⊢ infEdist x s ≤ ENNReal.ofReal ε + ENNReal.ofReal δ → infEdist x s - ENNReal.ofReal δ ≤ ENNReal.ofReal ε
Theorem: Finset.sdiff_insert_of_not_mem
File: Mathlib/Data/Finset/Basic.lean

tactic: refine' Subset.antisymm (sdiff_subset_sdiff (Subset.refl _) (subset_insert _ _)) fun y hy => _
state_before: α : Type u_1
β : Type ?u.242065
γ : Type ?u.242068
inst✝ : DecidableEq α
s t✝ u v : Finset α
a b x : α
h : ¬x ∈ s
t : Finset α
⊢ s \ insert x t = s \ t

tactic: simp only [mem_sdiff, mem_insert, not_or] at hy⊢
state_before: α : Type u_1
β : Type ?u.242065
γ : Type ?u.242068
inst✝ : DecidableEq α
s t✝ u v : Finset α
a b x : α
h : ¬x ∈ s
t : Finset α
y : α
hy : y ∈ s \ t
⊢ y ∈ s \ insert x t

tactic: exact ⟨hy.1, fun hxy => h <| hxy ▸ hy.1, hy.2⟩
state_before: α : Type u_1
β : Type ?u.242065
γ : Type ?u.242068
inst✝ : DecidableEq α
s t✝ u v : Finset α
a b x : α
h : ¬x ∈ s
t : Finset α
y : α
hy : y ∈ s ∧ ¬y ∈ t
⊢ y ∈ s ∧ ¬y = x ∧ ¬y ∈ t
Theorem: EuclideanDomain.mul_div_assoc
File: Mathlib/Algebra/EuclideanDomain/Basic.lean

tactic: by_cases hz : z = 0
state_before: R : Type u
inst✝ : EuclideanDomain R
x y z : R
h : z ∣ y
⊢ x * y / z = x * (y / z)

tactic: rcases h with ⟨p, rfl⟩
state_before: case neg
R : Type u
inst✝ : EuclideanDomain R
x y z : R
h : z ∣ y
hz : ¬z = 0
⊢ x * y / z = x * (y / z)

tactic: rw [mul_div_cancel_left _ hz, mul_left_comm, mul_div_cancel_left _ hz]
state_before: case neg.intro
R : Type u
inst✝ : EuclideanDomain R
x z : R
hz : ¬z = 0
p : R
⊢ x * (z * p) / z = x * (z * p / z)

tactic: subst hz
state_before: case pos
R : Type u
inst✝ : EuclideanDomain R
x y z : R
h : z ∣ y
hz : z = 0
⊢ x * y / z = x * (y / z)

tactic: rw [div_zero, div_zero, mul_zero]
state_before: case pos
R : Type u
inst✝ : EuclideanDomain R
x y : R
h : 0 ∣ y
⊢ x * y / 0 = x * (y / 0)
Theorem: inseparable_iff_forall_open
File: Mathlib/Topology/Inseparable.lean

tactic: simp only [inseparable_iff_specializes_and, specializes_iff_forall_open, ← forall_and, ← iff_def,
  Iff.comm]
state_before: X : Type u_1
Y : Type ?u.28194
Z : Type ?u.28197
α : Type ?u.28200
ι : Type ?u.28203
π : ι → Type ?u.28208
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f : X → Y
⊢ (x ~ᵢ y) ↔ ∀ (s : Set X), IsOpen s → (x ∈ s ↔ y ∈ s)
Theorem: Filter.le_comap_top
File: Mathlib/Order/Filter/Basic.lean

tactic: rw [comap_top]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.251116
ι : Sort x
f✝ f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m : α → β
m' : β → γ
s : Set α
t : Set β
f : α → β
l : Filter α
⊢ l ≤ comap f ⊤

tactic: exact le_top
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.251116
ι : Sort x
f✝ f₁ f₂ : Filter α
g g₁ g₂ : Filter β
m : α → β
m' : β → γ
s : Set α
t : Set β
f : α → β
l : Filter α
⊢ l ≤ ⊤
Theorem: Fin.prod_univ_three
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: rw [prod_univ_castSucc, prod_univ_two]
state_before: α : Type ?u.18255
β : Type u_1
inst✝ : CommMonoid β
f : Fin 3 → β
⊢ ∏ i : Fin 3, f i = f 0 * f 1 * f 2

tactic: rfl
state_before: α : Type ?u.18255
β : Type u_1
inst✝ : CommMonoid β
f : Fin 3 → β
⊢ f (↑castSucc 0) * f (↑castSucc 1) * f (last 2) = f 0 * f 1 * f 2
Theorem: Finset.sum_centroidWeightsIndicator_eq_one_of_nonempty
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: rw [sum_centroidWeightsIndicator]
state_before: k : Type u_1
V : Type ?u.516833
P : Type ?u.516836
inst✝⁵ : DivisionRing k
inst✝⁴ : AddCommGroup V
inst✝³ : Module k V
inst✝² : AffineSpace V P
ι : Type u_2
s : Finset ι
ι₂ : Type ?u.517355
s₂ : Finset ι₂
inst✝¹ : CharZero k
inst✝ : Fintype ι
h : Finset.Nonempty s
⊢ ∑ i : ι, centroidWeightsIndicator k s i = 1

tactic: exact s.sum_centroidWeights_eq_one_of_nonempty k h
state_before: k : Type u_1
V : Type ?u.516833
P : Type ?u.516836
inst✝⁵ : DivisionRing k
inst✝⁴ : AddCommGroup V
inst✝³ : Module k V
inst✝² : AffineSpace V P
ι : Type u_2
s : Finset ι
ι₂ : Type ?u.517355
s₂ : Finset ι₂
inst✝¹ : CharZero k
inst✝ : Fintype ι
h : Finset.Nonempty s
⊢ ∑ i in s, centroidWeights k s i = 1
Theorem: Basis.eval_range
File: Mathlib/LinearAlgebra/Dual.lean

tactic: classical
  cases nonempty_fintype ι
  rw [← b.toDual_toDual, range_comp, b.toDual_range, Submodule.map_top, toDual_range _]
state_before: R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι✝ : Type w
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι✝
b✝ : Basis ι✝ R M
ι : Type u_1
inst✝ : _root_.Finite ι
b : Basis ι R M
⊢ range (Dual.eval R M) = ⊤

tactic: cases nonempty_fintype ι
state_before: R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι✝ : Type w
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι✝
b✝ : Basis ι✝ R M
ι : Type u_1
inst✝ : _root_.Finite ι
b : Basis ι R M
⊢ range (Dual.eval R M) = ⊤

tactic: rw [← b.toDual_toDual, range_comp, b.toDual_range, Submodule.map_top, toDual_range _]
state_before: case intro
R : Type u
M : Type v
K : Type u₁
V : Type u₂
ι✝ : Type w
inst✝⁴ : CommRing R
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : DecidableEq ι✝
b✝ : Basis ι✝ R M
ι : Type u_1
inst✝ : _root_.Finite ι
b : Basis ι R M
val✝ : Fintype ι
⊢ range (Dual.eval R M) = ⊤
Theorem: Directed.convex_iUnion
File: Mathlib/Analysis/Convex/Basic.lean

tactic: rintro x hx y hy a b ha hb hab
state_before: 𝕜 : Type u_3
E : Type u_2
F : Type ?u.7918
β : Type ?u.7921
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s✝ : Set E
x : E
ι : Sort u_1
s : ι → Set E
hdir : Directed (fun x x_1 => x ⊆ x_1) s
hc : ∀ ⦃i : ι⦄, Convex 𝕜 (s i)
⊢ Convex 𝕜 (⋃ (i : ι), s i)

tactic: rw [mem_iUnion] at hx hy⊢
state_before: 𝕜 : Type u_3
E : Type u_2
F : Type ?u.7918
β : Type ?u.7921
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s✝ : Set E
x✝ : E
ι : Sort u_1
s : ι → Set E
hdir : Directed (fun x x_1 => x ⊆ x_1) s
hc : ∀ ⦃i : ι⦄, Convex 𝕜 (s i)
x : E
hx : x ∈ ⋃ (i : ι), s i
y : E
hy : y ∈ ⋃ (i : ι), s i
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ a • x + b • y ∈ ⋃ (i : ι), s i

tactic: obtain ⟨i, hx⟩ := hx
state_before: 𝕜 : Type u_3
E : Type u_2
F : Type ?u.7918
β : Type ?u.7921
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s✝ : Set E
x✝ : E
ι : Sort u_1
s : ι → Set E
hdir : Directed (fun x x_1 => x ⊆ x_1) s
hc : ∀ ⦃i : ι⦄, Convex 𝕜 (s i)
x : E
hx : ∃ i, x ∈ s i
y : E
hy : ∃ i, y ∈ s i
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
⊢ ∃ i, a • x + b • y ∈ s i

tactic: obtain ⟨j, hy⟩ := hy
state_before: case intro
𝕜 : Type u_3
E : Type u_2
F : Type ?u.7918
β : Type ?u.7921
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s✝ : Set E
x✝ : E
ι : Sort u_1
s : ι → Set E
hdir : Directed (fun x x_1 => x ⊆ x_1) s
hc : ∀ ⦃i : ι⦄, Convex 𝕜 (s i)
x y : E
hy : ∃ i, y ∈ s i
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
i : ι
hx : x ∈ s i
⊢ ∃ i, a • x + b • y ∈ s i

tactic: obtain ⟨k, hik, hjk⟩ := hdir i j
state_before: case intro.intro
𝕜 : Type u_3
E : Type u_2
F : Type ?u.7918
β : Type ?u.7921
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s✝ : Set E
x✝ : E
ι : Sort u_1
s : ι → Set E
hdir : Directed (fun x x_1 => x ⊆ x_1) s
hc : ∀ ⦃i : ι⦄, Convex 𝕜 (s i)
x y : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
i : ι
hx : x ∈ s i
j : ι
hy : y ∈ s j
⊢ ∃ i, a • x + b • y ∈ s i

tactic: exact ⟨k, hc (hik hx) (hjk hy) ha hb hab⟩
state_before: case intro.intro.intro.intro
𝕜 : Type u_3
E : Type u_2
F : Type ?u.7918
β : Type ?u.7921
inst✝⁴ : OrderedSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : SMul 𝕜 E
inst✝ : SMul 𝕜 F
s✝ : Set E
x✝ : E
ι : Sort u_1
s : ι → Set E
hdir : Directed (fun x x_1 => x ⊆ x_1) s
hc : ∀ ⦃i : ι⦄, Convex 𝕜 (s i)
x y : E
a b : 𝕜
ha : 0 ≤ a
hb : 0 ≤ b
hab : a + b = 1
i : ι
hx : x ∈ s i
j : ι
hy : y ∈ s j
k : ι
hik : s i ⊆ s k
hjk : s j ⊆ s k
⊢ ∃ i, a • x + b • y ∈ s i
Theorem: IsOpen.div_left
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: rw [← iUnion_div_left_image]
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : TopologicalGroup α
s t : Set α
ht : IsOpen t
⊢ IsOpen (s / t)

tactic: exact isOpen_biUnion fun a _ => isOpenMap_div_left a t ht
state_before: α : Type u
β : Type v
G : Type w
H : Type x
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : TopologicalGroup α
s t : Set α
ht : IsOpen t
⊢ IsOpen (⋃ (a : α) (_ : a ∈ s), (fun x x_1 => x / x_1) a '' t)
Theorem: Nat.one_div_pos_of_nat
File: Mathlib/Data/Nat/Cast/Field.lean

tactic: rw [one_div]
state_before: α : Type u_1
inst✝ : LinearOrderedSemifield α
n : ℕ
⊢ 0 < 1 / (↑n + 1)

tactic: exact inv_pos_of_nat
state_before: α : Type u_1
inst✝ : LinearOrderedSemifield α
n : ℕ
⊢ 0 < (↑n + 1)⁻¹
Theorem: Complex.equivRealProd_apply_le
File: Mathlib/Analysis/Complex/Basic.lean

tactic: simp [Prod.norm_def, abs_re_le_abs, abs_im_le_abs]
state_before: E : Type ?u.223982
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℂ
⊢ ‖↑equivRealProd z‖ ≤ ↑abs z
Theorem: Set.image_neg_Ici
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ Neg.neg '' Ici a = Iic (-a)
Theorem: Int.ediv_eq_iff_eq_mul_left
File: Std/Data/Int/DivMod.lean

tactic: rw [Int.mul_comm]
state_before: a b c : Int
H : b ≠ 0
H' : b ∣ a
⊢ a / b = c ↔ a = c * b

tactic: exact Int.ediv_eq_iff_eq_mul_right H H'
state_before: a b c : Int
H : b ≠ 0
H' : b ∣ a
⊢ a / b = c ↔ a = b * c
Theorem: image_parallelepiped
File: Mathlib/MeasureTheory/Measure/Haar/OfBasis.lean

tactic: simp only [parallelepiped, ← image_comp]
state_before: ι : Type u_3
ι' : Type ?u.24139
E : Type u_1
F : Type u_2
inst✝⁵ : Fintype ι
inst✝⁴ : Fintype ι'
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
inst✝¹ : AddCommGroup F
inst✝ : Module ℝ F
f : E →ₗ[ℝ] F
v : ι → E
⊢ ↑f '' parallelepiped v = parallelepiped (↑f ∘ v)

tactic: congr 1 with t
state_before: ι : Type u_3
ι' : Type ?u.24139
E : Type u_1
F : Type u_2
inst✝⁵ : Fintype ι
inst✝⁴ : Fintype ι'
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
inst✝¹ : AddCommGroup F
inst✝ : Module ℝ F
f : E →ₗ[ℝ] F
v : ι → E
⊢ ((fun a => ↑f a) ∘ fun t => ∑ i : ι, t i • v i) '' Icc 0 1 = (fun a => ∑ x : ι, a x • (↑f ∘ v) x) '' Icc 0 1

tactic: simp only [Function.comp_apply, LinearMap.map_sum, LinearMap.map_smulₛₗ, RingHom.id_apply]
state_before: case h
ι : Type u_3
ι' : Type ?u.24139
E : Type u_1
F : Type u_2
inst✝⁵ : Fintype ι
inst✝⁴ : Fintype ι'
inst✝³ : AddCommGroup E
inst✝² : Module ℝ E
inst✝¹ : AddCommGroup F
inst✝ : Module ℝ F
f : E →ₗ[ℝ] F
v : ι → E
t : F
⊢ t ∈ ((fun a => ↑f a) ∘ fun t => ∑ i : ι, t i • v i) '' Icc 0 1 ↔ t ∈ (fun a => ∑ x : ι, a x • (↑f ∘ v) x) '' Icc 0 1
Theorem: Real.le_sin_mul
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Complex.lean

tactic: simpa [mul_comm x] using
  strictConcaveOn_sin_Icc.concaveOn.2 ⟨le_rfl, pi_pos.le⟩
    ⟨pi_div_two_pos.le, half_le_self pi_pos.le⟩ (sub_nonneg.2 hx') hx
state_before: x : ℝ
hx : 0 ≤ x
hx' : x ≤ 1
⊢ x ≤ sin (π / 2 * x)
Theorem: Module.Baer.ExtensionOfMaxAdjoin.extendIdealTo_eq
File: Mathlib/Algebra/Module/Injective.lean

tactic: simp only [ExtensionOfMaxAdjoin.extendIdealTo_is_extension i f h _ _ hr,
  ExtensionOfMaxAdjoin.idealTo, LinearMap.coe_mk, Subtype.coe_mk, AddHom.coe_mk]
state_before: R : Type u
inst✝⁷ : Ring R
Q : TypeMax
inst✝⁶ : AddCommGroup Q
inst✝⁵ : Module R Q
M N : Type (max u v)
inst✝⁴ : AddCommGroup M
inst✝³ : AddCommGroup N
inst✝² : Module R M
inst✝¹ : Module R N
i : M →ₗ[R] N
f : M →ₗ[R] Q
inst✝ : Fact (Function.Injective ↑i)
h : Baer R Q
y : N
r : R
hr : r • y ∈ (extensionOfMax i f).toLinearPMap.domain
⊢ ↑(extendIdealTo i f h y) r = ↑(extensionOfMax i f).toLinearPMap { val := r • y, property := hr }
Theorem: Continuous.matrix_fromBlocks
File: Mathlib/Topology/Instances/Matrix.lean

tactic: rintro (i | i) (j | j) <;> refine' Continuous.matrix_elem _ i j <;> assumption
state_before: X : Type u_6
α : Type ?u.35471
l : Type u_2
m : Type u_4
n : Type u_1
p : Type u_5
S : Type ?u.35486
R : Type u_3
m' : l → Type ?u.35494
n' : l → Type ?u.35499
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace R
A : X → Matrix n l R
B : X → Matrix n m R
C : X → Matrix p l R
D : X → Matrix p m R
hA : Continuous A
hB : Continuous B
hC : Continuous C
hD : Continuous D
⊢ ∀ (i : n ⊕ p) (j : l ⊕ m), Continuous fun a => fromBlocks (A a) (B a) (C a) (D a) i j
Theorem: Filter.tendsto_mul_iff_of_ne_zero
File: Mathlib/Topology/Algebra/GroupWithZero.lean

tactic: refine' ⟨fun hfg => _, fun hf => hf.mul hg⟩
state_before: α : Type u_2
β : Type ?u.26017
G₀ : Type u_1
inst✝⁴ : GroupWithZero G₀
inst✝³ : TopologicalSpace G₀
inst✝² : HasContinuousInv₀ G₀
inst✝¹ : ContinuousMul G₀
f✝ g✝ : α → G₀
inst✝ : T1Space G₀
f g : α → G₀
l : Filter α
x y : G₀
hg : Tendsto g l (𝓝 y)
hy : y ≠ 0
⊢ Tendsto (fun n => f n * g n) l (𝓝 (x * y)) ↔ Tendsto f l (𝓝 x)

tactic: rw [← mul_div_cancel x hy]
state_before: α : Type u_2
β : Type ?u.26017
G₀ : Type u_1
inst✝⁴ : GroupWithZero G₀
inst✝³ : TopologicalSpace G₀
inst✝² : HasContinuousInv₀ G₀
inst✝¹ : ContinuousMul G₀
f✝ g✝ : α → G₀
inst✝ : T1Space G₀
f g : α → G₀
l : Filter α
x y : G₀
hg : Tendsto g l (𝓝 y)
hy : y ≠ 0
hfg : Tendsto (fun n => f n * g n) l (𝓝 (x * y))
⊢ Tendsto f l (𝓝 x)

tactic: refine' Tendsto.congr' _ (hfg.div hg hy)
state_before: α : Type u_2
β : Type ?u.26017
G₀ : Type u_1
inst✝⁴ : GroupWithZero G₀
inst✝³ : TopologicalSpace G₀
inst✝² : HasContinuousInv₀ G₀
inst✝¹ : ContinuousMul G₀
f✝ g✝ : α → G₀
inst✝ : T1Space G₀
f g : α → G₀
l : Filter α
x y : G₀
hg : Tendsto g l (𝓝 y)
hy : y ≠ 0
hfg : Tendsto (fun n => f n * g n) l (𝓝 (x * y))
⊢ Tendsto f l (𝓝 (x * y / y))

tactic: refine' (hg.eventually_ne hy).mono fun n hn => mul_div_cancel _ hn
state_before: α : Type u_2
β : Type ?u.26017
G₀ : Type u_1
inst✝⁴ : GroupWithZero G₀
inst✝³ : TopologicalSpace G₀
inst✝² : HasContinuousInv₀ G₀
inst✝¹ : ContinuousMul G₀
f✝ g✝ : α → G₀
inst✝ : T1Space G₀
f g : α → G₀
l : Filter α
x y : G₀
hg : Tendsto g l (𝓝 y)
hy : y ≠ 0
hfg : Tendsto (fun n => f n * g n) l (𝓝 (x * y))
⊢ (fun n => f n * g n) / g =ᶠ[l] f