tasksource/leandojo huggingface dataset:
Theorem: Set.infsep_zero
File: Mathlib/Topology/MetricSpace/Infsep.lean

tactic: rw [infsep, ENNReal.toReal_eq_zero_iff]
state_before: α : Type u_1
β : Type ?u.54852
inst✝ : EDist α
x y : α
s : Set α
⊢ infsep s = 0 ↔ einfsep s = 0 ∨ einfsep s = ⊤
Theorem: Multiset.powersetLenAux_cons
File: Mathlib/Data/Multiset/Powerset.lean

tactic: simp [powersetLenAux_eq_map_coe]
state_before: α : Type u_1
n : ℕ
a : α
l : List α
⊢ powersetLenAux (n + 1) (a :: l) = powersetLenAux (n + 1) l ++ List.map (cons a) (powersetLenAux n l)

tactic: rfl
state_before: α : Type u_1
n : ℕ
a : α
l : List α
⊢ List.map (ofList ∘ List.cons a) (sublistsLen n l) = List.map (cons a ∘ ofList) (sublistsLen n l)
Theorem: inv_lt_div_iff_lt_mul
File: Mathlib/Algebra/Order/Group/Defs.lean

tactic: rw [div_eq_mul_inv, lt_mul_inv_iff_mul_lt, inv_mul_lt_iff_lt_mul]
state_before: α : Type u
inst✝³ : Group α
inst✝² : LT α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x < x_1
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x < x_1
a b c : α
⊢ a⁻¹ < b / c ↔ c < a * b
Theorem: CategoryTheory.isDetector_iff_reflectsIsomorphisms_coyoneda_obj
File: Mathlib/CategoryTheory/Generator.lean

tactic: refine'
  ⟨fun hG => ⟨fun f hf => hG.def _ fun h => _⟩, fun h =>
    (isDetector_def _).2 fun X Y f hf => _⟩
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
G : C
⊢ IsDetector G ↔ ReflectsIsomorphisms (coyoneda.obj G.op)

tactic: rw [isIso_iff_bijective, Function.bijective_iff_existsUnique] at hf
state_before: case refine'_1
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
G : C
hG : IsDetector G
A✝ B✝ : C
f : A✝ ⟶ B✝
hf : IsIso ((coyoneda.obj G.op).map f)
h : G ⟶ B✝
⊢ ∃! h', h' ≫ f = h

tactic: exact hf h
state_before: case refine'_1
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
G : C
hG : IsDetector G
A✝ B✝ : C
f : A✝ ⟶ B✝
hf : ∀ (b : (coyoneda.obj G.op).obj B✝), ∃! a, (coyoneda.obj G.op).map f a = b
h : G ⟶ B✝
⊢ ∃! h', h' ≫ f = h

tactic: suffices IsIso ((coyoneda.obj (op G)).map f) by
  exact @isIso_of_reflects_iso _ _ _ _ _ _ _ (coyoneda.obj (op G)) _ h
state_before: case refine'_2
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
G : C
h : ReflectsIsomorphisms (coyoneda.obj G.op)
X Y : C
f : X ⟶ Y
hf : ∀ (h : G ⟶ Y), ∃! h', h' ≫ f = h
⊢ IsIso f

tactic: rwa [isIso_iff_bijective, Function.bijective_iff_existsUnique]
state_before: case refine'_2
C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
G : C
h : ReflectsIsomorphisms (coyoneda.obj G.op)
X Y : C
f : X ⟶ Y
hf : ∀ (h : G ⟶ Y), ∃! h', h' ≫ f = h
⊢ IsIso ((coyoneda.obj G.op).map f)

tactic: exact @isIso_of_reflects_iso _ _ _ _ _ _ _ (coyoneda.obj (op G)) _ h
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
G : C
h : ReflectsIsomorphisms (coyoneda.obj G.op)
X Y : C
f : X ⟶ Y
hf : ∀ (h : G ⟶ Y), ∃! h', h' ≫ f = h
this : IsIso ((coyoneda.obj G.op).map f)
⊢ IsIso f
Theorem: isClosedMap_sigmaMk
File: Mathlib/Topology/Constructions.lean

tactic: intro s hs
state_before: α : Type u
β : Type v
γ : Type ?u.515690
δ : Type ?u.515693
ε : Type ?u.515696
ζ : Type ?u.515699
ι : Type u_2
κ : Type ?u.515705
σ : ι → Type u_1
τ : κ → Type ?u.515715
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
i : ι
⊢ IsClosedMap (Sigma.mk i)

tactic: rw [isClosed_sigma_iff]
state_before: α : Type u
β : Type v
γ : Type ?u.515690
δ : Type ?u.515693
ε : Type ?u.515696
ζ : Type ?u.515699
ι : Type u_2
κ : Type ?u.515705
σ : ι → Type u_1
τ : κ → Type ?u.515715
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
i : ι
s : Set (σ i)
hs : IsClosed s
⊢ IsClosed (Sigma.mk i '' s)

tactic: intro j
state_before: α : Type u
β : Type v
γ : Type ?u.515690
δ : Type ?u.515693
ε : Type ?u.515696
ζ : Type ?u.515699
ι : Type u_2
κ : Type ?u.515705
σ : ι → Type u_1
τ : κ → Type ?u.515715
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
i : ι
s : Set (σ i)
hs : IsClosed s
⊢ ∀ (i_1 : ι), IsClosed (Sigma.mk i_1 ⁻¹' (Sigma.mk i '' s))

tactic: rcases eq_or_ne j i with (rfl | hne)
state_before: α : Type u
β : Type v
γ : Type ?u.515690
δ : Type ?u.515693
ε : Type ?u.515696
ζ : Type ?u.515699
ι : Type u_2
κ : Type ?u.515705
σ : ι → Type u_1
τ : κ → Type ?u.515715
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
i : ι
s : Set (σ i)
hs : IsClosed s
j : ι
⊢ IsClosed (Sigma.mk j ⁻¹' (Sigma.mk i '' s))

tactic: rwa [Set.preimage_image_eq _ sigma_mk_injective]
state_before: case inl
α : Type u
β : Type v
γ : Type ?u.515690
δ : Type ?u.515693
ε : Type ?u.515696
ζ : Type ?u.515699
ι : Type u_2
κ : Type ?u.515705
σ : ι → Type u_1
τ : κ → Type ?u.515715
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
j : ι
s : Set (σ j)
hs : IsClosed s
⊢ IsClosed (Sigma.mk j ⁻¹' (Sigma.mk j '' s))

tactic: rw [preimage_image_sigmaMk_of_ne hne]
state_before: case inr
α : Type u
β : Type v
γ : Type ?u.515690
δ : Type ?u.515693
ε : Type ?u.515696
ζ : Type ?u.515699
ι : Type u_2
κ : Type ?u.515705
σ : ι → Type u_1
τ : κ → Type ?u.515715
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
i : ι
s : Set (σ i)
hs : IsClosed s
j : ι
hne : j ≠ i
⊢ IsClosed (Sigma.mk j ⁻¹' (Sigma.mk i '' s))

tactic: exact isClosed_empty
state_before: case inr
α : Type u
β : Type v
γ : Type ?u.515690
δ : Type ?u.515693
ε : Type ?u.515696
ζ : Type ?u.515699
ι : Type u_2
κ : Type ?u.515705
σ : ι → Type u_1
τ : κ → Type ?u.515715
inst✝² : (i : ι) → TopologicalSpace (σ i)
inst✝¹ : (k : κ) → TopologicalSpace (τ k)
inst✝ : TopologicalSpace α
i : ι
s : Set (σ i)
hs : IsClosed s
j : ι
hne : j ≠ i
⊢ IsClosed ∅
Theorem: Real.mk_zero
File: Mathlib/Data/Real/Basic.lean

tactic: rw [← ofCauchy_zero]
state_before: x y : ℝ
⊢ mk 0 = 0

tactic: rfl
state_before: x y : ℝ
⊢ mk 0 = { cauchy := 0 }
Theorem: Convex.thickening
File: Mathlib/Analysis/Convex/Normed.lean

tactic: rw [← add_ball_zero]
state_before: ι : Type ?u.26868
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s t : Set E
hs : Convex ℝ s
δ : ℝ
⊢ Convex ℝ (Metric.thickening δ s)

tactic: exact hs.add (convex_ball 0 _)
state_before: ι : Type ?u.26868
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace ℝ E
s t : Set E
hs : Convex ℝ s
δ : ℝ
⊢ Convex ℝ (s + ball 0 δ)
Theorem: FirstOrder.Language.Term.realize_relabel
File: Mathlib/ModelTheory/Semantics.lean

tactic: induction' t with _ n f ts ih
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.1019
P : Type ?u.1022
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
t : Term L α
g : α → β
v : β → M
⊢ realize v (relabel g t) = realize (v ∘ g) t

tactic: rfl
state_before: case var
L : Language
L' : Language
M : Type w
N : Type ?u.1019
P : Type ?u.1022
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
g : α → β
v : β → M
_a✝ : α
⊢ realize v (relabel g (var _a✝)) = realize (v ∘ g) (var _a✝)

tactic: simp [ih]
state_before: case func
L : Language
L' : Language
M : Type w
N : Type ?u.1019
P : Type ?u.1022
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
g : α → β
v : β → M
n : ℕ
f : Functions L n
ts : Fin n → Term L α
ih : ∀ (a : Fin n), realize v (relabel g (ts a)) = realize (v ∘ g) (ts a)
⊢ realize v (relabel g (func f ts)) = realize (v ∘ g) (func f ts)
Theorem: Dfinsupp.equivFunOnFintype_symm_single
File: Mathlib/Data/Dfinsupp/Basic.lean

tactic: ext i'
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
s : Finset ι
x : (i : ↑↑s) → β ↑i
i✝ : ι
inst✝ : Fintype ι
i : ι
m : β i
⊢ ↑equivFunOnFintype.symm (Pi.single i m) = single i m

tactic: simp only [← single_eq_pi_single, equivFunOnFintype_symm_coe]
state_before: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
dec : DecidableEq ι
inst✝¹ : (i : ι) → Zero (β i)
s : Finset ι
x : (i : ↑↑s) → β ↑i
i✝ : ι
inst✝ : Fintype ι
i : ι
m : β i
i' : ι
⊢ ↑(↑equivFunOnFintype.symm (Pi.single i m)) i' = ↑(single i m) i'
Theorem: LieSubmodule.map_comap_eq
File: Mathlib/Algebra/Lie/IdealOperations.lean

tactic: rw [SetLike.ext'_iff]
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
f : M →ₗ⁅R,L⁆ M₂
hf : N₂ ≤ LieModuleHom.range f
⊢ map f (comap f N₂) = N₂

tactic: exact Set.image_preimage_eq_of_subset hf
state_before: R : Type u
L : Type v
M : Type w
M₂ : Type w₁
inst✝¹⁰ : CommRing R
inst✝⁹ : LieRing L
inst✝⁸ : LieAlgebra R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : LieRingModule L M₂
inst✝ : LieModule R L M₂
N N' : LieSubmodule R L M
I J : LieIdeal R L
N₂ : LieSubmodule R L M₂
f : M →ₗ⁅R,L⁆ M₂
hf : N₂ ≤ LieModuleHom.range f
⊢ ↑(map f (comap f N₂)) = ↑N₂
Theorem: sdiff_eq_sdiff_iff_inf_eq_inf
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [inf_inf_sdiff, h, inf_inf_sdiff]
state_before: α : Type u
β : Type ?u.19830
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y \ x = y \ z
⊢ y ⊓ x ⊓ ?m.19948 h = y ⊓ z ⊓ ?m.19948 h

tactic: rw [sup_inf_sdiff, h, sup_inf_sdiff]
state_before: α : Type u
β : Type ?u.19830
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y \ x = y \ z
⊢ y ⊓ x ⊔ y \ x = y ⊓ z ⊔ y \ x

tactic: rw [← sdiff_inf_self_right, ← sdiff_inf_self_right z y, inf_comm, h, inf_comm]
state_before: α : Type u
β : Type ?u.19830
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
h : y ⊓ x = y ⊓ z
⊢ y \ x = y \ z
Theorem: Finset.nonempty_Ico
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: rw [← coe_nonempty, coe_Ico, Set.nonempty_Ico]
state_before: ι : Type ?u.306
α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
⊢ Finset.Nonempty (Ico a b) ↔ a < b
Theorem: Set.Icc_diff_pi_univ_Ioo_subset
File: Mathlib/Data/Set/Intervals/Pi.lean

tactic: rintro a ⟨⟨hxa, hay⟩, ha'⟩
state_before: ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → LinearOrder (α i)
x y x' y' : (i : ι) → α i
⊢ (Icc x y \ pi univ fun i => Ioo (x' i) (y' i)) ⊆
    (⋃ (i : ι), Icc x (update y i (x' i))) ∪ ⋃ (i : ι), Icc (update x i (y' i)) y

tactic: simp at ha'
state_before: case intro.intro
ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → LinearOrder (α i)
x y x' y' a : (i : ι) → α i
ha' : ¬a ∈ pi univ fun i => Ioo (x' i) (y' i)
hxa : x ≤ a
hay : a ≤ y
⊢ a ∈ (⋃ (i : ι), Icc x (update y i (x' i))) ∪ ⋃ (i : ι), Icc (update x i (y' i)) y

tactic: simp [le_update_iff, update_le_iff, hxa, hay, hxa _, hay _, ← exists_or]
state_before: case intro.intro
ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → LinearOrder (α i)
x y x' y' a : (i : ι) → α i
hxa : x ≤ a
hay : a ≤ y
ha' : ∃ x, x' x < a x → y' x ≤ a x
⊢ a ∈ (⋃ (i : ι), Icc x (update y i (x' i))) ∪ ⋃ (i : ι), Icc (update x i (y' i)) y

tactic: rcases ha' with ⟨w, hw⟩
state_before: case intro.intro
ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → LinearOrder (α i)
x y x' y' a : (i : ι) → α i
hxa : x ≤ a
hay : a ≤ y
ha' : ∃ x, x' x < a x → y' x ≤ a x
⊢ ∃ x, a x ≤ x' x ∨ y' x ≤ a x

tactic: apply Exists.intro w
state_before: case intro.intro.intro
ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → LinearOrder (α i)
x y x' y' a : (i : ι) → α i
hxa : x ≤ a
hay : a ≤ y
w : ι
hw : x' w < a w → y' w ≤ a w
⊢ ∃ x, a x ≤ x' x ∨ y' x ≤ a x

tactic: cases lt_or_le (x' w) (a w) <;> simp_all
state_before: case intro.intro.intro
ι : Type u_1
α : ι → Type u_2
inst✝¹ : DecidableEq ι
inst✝ : (i : ι) → LinearOrder (α i)
x y x' y' a : (i : ι) → α i
hxa : x ≤ a
hay : a ≤ y
w : ι
hw : x' w < a w → y' w ≤ a w
⊢ a w ≤ x' w ∨ y' w ≤ a w
Theorem: MeasureTheory.integral_empty
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rw [Measure.restrict_empty, integral_zero_measure]
state_before: α : Type u_2
β : Type ?u.31783
E : Type u_1
F : Type ?u.31789
inst✝³ : MeasurableSpace α
inst✝² : NormedAddCommGroup E
f g : α → E
s t : Set α
μ ν : Measure α
l l' : Filter α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
⊢ (∫ (x : α) in ∅, f x ∂μ) = 0
Theorem: mem_span_range_iff_exists_fun
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: rw [Finsupp.equivFunOnFinite.surjective.exists]
state_before: α : Type u_3
M : Type u_1
R : Type u_2
inst✝⁶ : Fintype α
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
S : Type ?u.737176
inst✝² : Semiring S
inst✝¹ : Module S M
inst✝ : SMulCommClass R S M
v : α → M
x : M
⊢ x ∈ span R (Set.range v) ↔ ∃ c, ∑ i : α, c i • v i = x

tactic: simp [Finsupp.mem_span_range_iff_exists_finsupp, Finsupp.equivFunOnFinite_apply]
state_before: α : Type u_3
M : Type u_1
R : Type u_2
inst✝⁶ : Fintype α
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
S : Type ?u.737176
inst✝² : Semiring S
inst✝¹ : Module S M
inst✝ : SMulCommClass R S M
v : α → M
x : M
⊢ x ∈ span R (Set.range v) ↔ ∃ x_1, ∑ i : α, ↑Finsupp.equivFunOnFinite x_1 i • v i = x

tactic: exact exists_congr fun c => Eq.congr_left <| Finsupp.sum_fintype _ _ fun i => zero_smul _ _
state_before: α : Type u_3
M : Type u_1
R : Type u_2
inst✝⁶ : Fintype α
inst✝⁵ : Semiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
S : Type ?u.737176
inst✝² : Semiring S
inst✝¹ : Module S M
inst✝ : SMulCommClass R S M
v : α → M
x : M
⊢ (∃ c, (Finsupp.sum c fun i a => a • v i) = x) ↔ ∃ x_1, ∑ x : α, ↑x_1 x • v x = x
Theorem: Zsqrtd.smuld_val
File: Mathlib/NumberTheory/Zsqrtd/Basic.lean

tactic: simp [ext]
state_before: d n x y : ℤ
⊢ sqrtd * ↑n * { re := x, im := y } = { re := d * n * y, im := n * x }
Theorem: Heyting.isRegular_bot
File: Mathlib/Order/Heyting/Regular.lean

tactic: rw [IsRegular, compl_bot, compl_top]
state_before: α : Type u_1
inst✝ : HeytingAlgebra α
a b : α
⊢ IsRegular ⊥
Theorem: map_extChartAt_nhds'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_3
E : Type u_2
M : Type u_1
H : Type u_4
E' : Type ?u.194878
M' : Type ?u.194881
H' : Type ?u.194884
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : LocalHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
x✝ : M
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).toLocalEquiv.source
Theorem: LinearMap.baseChange_smul
File: Mathlib/RingTheory/TensorProduct.lean

tactic: ext
state_before: R : Type u_4
A : Type u_1
B : Type ?u.438053
M : Type u_2
N : Type u_3
inst✝⁸ : CommSemiring R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
r : R
f g : M →ₗ[R] N
⊢ baseChange A (r • f) = r • baseChange A f

tactic: simp [baseChange_tmul]
state_before: case a.h.h
R : Type u_4
A : Type u_1
B : Type ?u.438053
M : Type u_2
N : Type u_3
inst✝⁸ : CommSemiring R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : Semiring B
inst✝⁴ : Algebra R B
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid N
inst✝ : Module R N
r : R
f g : M →ₗ[R] N
x✝ : M
⊢ ↑(↑(AlgebraTensorModule.curry (baseChange A (r • f))) 1) x✝ =
    ↑(↑(AlgebraTensorModule.curry (r • baseChange A f)) 1) x✝
Theorem: iUnion_Ioc_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [zero_add] using iUnion_Ioc_add_zsmul hp 0
state_before: α : Type u_1
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : Archimedean α
p : α
hp : 0 < p
a : α
⊢ (⋃ (n : ℤ), Ioc (n • p) ((n + 1) • p)) = univ
Theorem: Metric.infDist_closure
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: simp [infDist, infEdist_closure]
state_before: ι : Sort ?u.64784
α : Type u
β : Type v
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s t u : Set α
x y : α
Φ : α → β
⊢ infDist x (closure s) = infDist x s
Theorem: expNegInvGlue.nonneg
File: Mathlib/Analysis/Calculus/BumpFunctionInner.lean

tactic: cases le_or_gt x 0 with
| inl h => exact ge_of_eq (zero_of_nonpos h)
| inr h => exact le_of_lt (pos_of_pos h)
state_before: x : ℝ
⊢ 0 ≤ expNegInvGlue x

tactic: exact ge_of_eq (zero_of_nonpos h)
state_before: case inl
x : ℝ
h : x ≤ 0
⊢ 0 ≤ expNegInvGlue x

tactic: exact le_of_lt (pos_of_pos h)
state_before: case inr
x : ℝ
h : x > 0
⊢ 0 ≤ expNegInvGlue x
Theorem: PadicInt.norm_int_le_pow_iff_dvd
File: Mathlib/NumberTheory/Padics/PadicIntegers.lean

tactic: simpa [norm_int_cast_eq_padic_norm]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
k : ℤ
n : ℕ
this : ‖↑k‖ ≤ ↑p ^ (-↑n) ↔ ↑(p ^ n) ∣ k
⊢ ‖↑k‖ ≤ ↑p ^ (-↑n) ↔ ↑(p ^ n) ∣ k
Theorem: ball_div_singleton
File: Mathlib/Analysis/Normed/Group/Pointwise.lean

tactic: simp_rw [div_eq_mul_inv, inv_singleton, ball_mul_singleton]
state_before: E : Type u_1
inst✝ : SeminormedCommGroup E
ε δ : ℝ
s t : Set E
x y : E
⊢ ball x δ / {y} = ball (x / y) δ
Theorem: Subgroup.injective_noncommPiCoprod_of_independent
File: Mathlib/GroupTheory/NoncommPiCoprod.lean

tactic: apply MonoidHom.injective_noncommPiCoprod_of_independent
state_before: G : Type u_2
inst✝ : Group G
ι : Type u_1
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → { x // x ∈ H i }
hcomm : ∀ (i j : ι), i ≠ j → ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ Function.Injective ↑(noncommPiCoprod hcomm)

tactic: simpa using hind
state_before: case hind
G : Type u_2
inst✝ : Group G
ι : Type u_1
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → { x // x ∈ H i }
hcomm : ∀ (i j : ι), i ≠ j → ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ CompleteLattice.Independent fun i => MonoidHom.range (Subgroup.subtype ((fun i => H i) i))

tactic: intro i
state_before: case hinj
G : Type u_2
inst✝ : Group G
ι : Type u_1
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → { x // x ∈ H i }
hcomm : ∀ (i j : ι), i ≠ j → ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ ∀ (i : ι), Function.Injective ↑(Subgroup.subtype ((fun i => H i) i))

tactic: exact Subtype.coe_injective
state_before: case hinj
G : Type u_2
inst✝ : Group G
ι : Type u_1
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → { x // x ∈ H i }
hcomm : ∀ (i j : ι), i ≠ j → ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
i : ι
⊢ Function.Injective ↑(Subgroup.subtype ((fun i => H i) i))
Theorem: MonoidAlgebra.opRingEquiv_single
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: simp
state_before: k : Type u₁
G : Type u₂
R : Type ?u.1557076
inst✝¹ : Semiring k
inst✝ : Monoid G
r : k
x : G
⊢ ↑MonoidAlgebra.opRingEquiv (op (single x r)) = single (op x) (op r)
Theorem: CategoryTheory.Bicategory.whiskerLeft_rightUnitor
File: Mathlib/CategoryTheory/Bicategory/Basic.lean

tactic: rw [← whiskerRight_iff, comp_whiskerRight, ← cancel_epi (α_ _ _ _).inv, ←
    cancel_epi (f ◁ (α_ _ _ _).inv), pentagon_inv_assoc, triangle_assoc_comp_right, ←
    associator_inv_naturality_middle, ← whiskerLeft_comp_assoc, triangle_assoc_comp_right,
    associator_inv_naturality_right]
state_before: B : Type u
inst✝ : Bicategory B
a b c d e : B
f : a ⟶ b
g : b ⟶ c
⊢ f ◁ (ρ_ g).hom = (α_ f g (𝟙 c)).inv ≫ (ρ_ (f ≫ g)).hom
Theorem: intervalIntegral.integral_mono_on
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: let H x hx := h x <| Ioc_subset_Icc_self hx
state_before: ι : Type ?u.21212445
𝕜 : Type ?u.21212448
E : Type ?u.21212451
F : Type ?u.21212454
A : Type ?u.21212457
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f g : ℝ → ℝ
a b : ℝ
μ : MeasureTheory.Measure ℝ
hab : a ≤ b
hf : IntervalIntegrable f μ a b
hg : IntervalIntegrable g μ a b
h : ∀ (x : ℝ), x ∈ Icc a b → f x ≤ g x
⊢ (∫ (u : ℝ) in a..b, f u ∂μ) ≤ ∫ (u : ℝ) in a..b, g u ∂μ

tactic: simpa only [integral_of_le hab] using set_integral_mono_on hf.1 hg.1 measurableSet_Ioc H
state_before: ι : Type ?u.21212445
𝕜 : Type ?u.21212448
E : Type ?u.21212451
F : Type ?u.21212454
A : Type ?u.21212457
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f g : ℝ → ℝ
a b : ℝ
μ : MeasureTheory.Measure ℝ
hab : a ≤ b
hf : IntervalIntegrable f μ a b
hg : IntervalIntegrable g μ a b
h : ∀ (x : ℝ), x ∈ Icc a b → f x ≤ g x
H : ∀ (x : ℝ), x ∈ Ioc a b → f x ≤ g x := fun x hx => h x (Ioc_subset_Icc_self hx)
⊢ (∫ (u : ℝ) in a..b, f u ∂μ) ≤ ∫ (u : ℝ) in a..b, g u ∂μ
Theorem: Basis.det_reindex_symm
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: rw [Basis.det_reindex, Function.comp.assoc, e.self_comp_symm, Function.comp.right_id]
state_before: R : Type u_3
inst✝¹⁰ : CommRing R
M : Type u_4
inst✝⁹ : AddCommGroup M
inst✝⁸ : Module R M
M' : Type ?u.2702037
inst✝⁷ : AddCommGroup M'
inst✝⁶ : Module R M'
ι : Type u_2
inst✝⁵ : DecidableEq ι
inst✝⁴ : Fintype ι
e✝ : Basis ι R M
A : Type ?u.2703057
inst✝³ : CommRing A
inst✝² : Module A M
ι' : Type u_1
inst✝¹ : Fintype ι'
inst✝ : DecidableEq ι'
b : Basis ι R M
v : ι → M
e : ι' ≃ ι
⊢ ↑(det (reindex b e.symm)) (v ∘ ↑e) = ↑(det b) v
Theorem: finPiFinEquiv_single
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: rw [finPiFinEquiv_apply, Fintype.sum_eq_single i, Pi.single_eq_same]
state_before: α : Type ?u.205125
β : Type ?u.205128
m : ℕ
n : Fin m → ℕ
inst✝ : ∀ (i : Fin m), NeZero (n i)
i : Fin m
j : Fin (n i)
⊢ ↑(↑finPiFinEquiv (Pi.single i j)) = ↑j * ∏ j : Fin ↑i, n (↑(Fin.castLE (_ : ↑i ≤ m)) j)

tactic: rintro x hx
state_before: α : Type ?u.205125
β : Type ?u.205128
m : ℕ
n : Fin m → ℕ
inst✝ : ∀ (i : Fin m), NeZero (n i)
i : Fin m
j : Fin (n i)
⊢ ∀ (x : Fin m), x ≠ i → ↑(Pi.single i j x) * ∏ j : Fin ↑x, n (↑(Fin.castLE (_ : ↑x ≤ m)) j) = 0

tactic: rw [Pi.single_eq_of_ne hx, Fin.val_zero, MulZeroClass.zero_mul]
state_before: α : Type ?u.205125
β : Type ?u.205128
m : ℕ
n : Fin m → ℕ
inst✝ : ∀ (i : Fin m), NeZero (n i)
i : Fin m
j : Fin (n i)
x : Fin m
hx : x ≠ i
⊢ ↑(Pi.single i j x) * ∏ j : Fin ↑x, n (↑(Fin.castLE (_ : ↑x ≤ m)) j) = 0
Theorem: padicValRat.inv
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: by_cases hq : q = 0
state_before: p : ℕ
hp : Fact (Nat.Prime p)
q : ℚ
⊢ padicValRat p q⁻¹ = -padicValRat p q

tactic: simp [hq]
state_before: case pos
p : ℕ
hp : Fact (Nat.Prime p)
q : ℚ
hq : q = 0
⊢ padicValRat p q⁻¹ = -padicValRat p q

tactic: rw [eq_neg_iff_add_eq_zero, ← padicValRat.mul (inv_ne_zero hq) hq, inv_mul_cancel hq,
  padicValRat.one]
state_before: case neg
p : ℕ
hp : Fact (Nat.Prime p)
q : ℚ
hq : ¬q = 0
⊢ padicValRat p q⁻¹ = -padicValRat p q