tasksource/leandojo huggingface dataset:
Theorem: CategoryTheory.Functor.strongEpi_map_iff_strongEpi_of_isEquivalence
File: Mathlib/CategoryTheory/Functor/EpiMono.lean

tactic: constructor
state_before: C : Type u_3
D : Type u_4
inst✝² : Category C
inst✝¹ : Category D
F : C ⥤ D
A B : C
f : A ⟶ B
inst✝ : IsEquivalence F
⊢ StrongEpi (F.map f) ↔ StrongEpi f

tactic: intro
state_before: case mp
C : Type u_3
D : Type u_4
inst✝² : Category C
inst✝¹ : Category D
F : C ⥤ D
A B : C
f : A ⟶ B
inst✝ : IsEquivalence F
⊢ StrongEpi (F.map f) → StrongEpi f

tactic: have e : Arrow.mk f ≅ Arrow.mk (F.inv.map (F.map f)) :=
  Arrow.isoOfNatIso F.asEquivalence.unitIso (Arrow.mk f)
state_before: case mp
C : Type u_3
D : Type u_4
inst✝² : Category C
inst✝¹ : Category D
F : C ⥤ D
A B : C
f : A ⟶ B
inst✝ : IsEquivalence F
a✝ : StrongEpi (F.map f)
⊢ StrongEpi f

tactic: rw [StrongEpi.iff_of_arrow_iso e]
state_before: case mp
C : Type u_3
D : Type u_4
inst✝² : Category C
inst✝¹ : Category D
F : C ⥤ D
A B : C
f : A ⟶ B
inst✝ : IsEquivalence F
a✝ : StrongEpi (F.map f)
e : Arrow.mk f ≅ Arrow.mk ((inv F).map (F.map f))
⊢ StrongEpi f

tactic: infer_instance
state_before: case mp
C : Type u_3
D : Type u_4
inst✝² : Category C
inst✝¹ : Category D
F : C ⥤ D
A B : C
f : A ⟶ B
inst✝ : IsEquivalence F
a✝ : StrongEpi (F.map f)
e : Arrow.mk f ≅ Arrow.mk ((inv F).map (F.map f))
⊢ StrongEpi ((inv F).map (F.map f))

tactic: intro
state_before: case mpr
C : Type u_3
D : Type u_4
inst✝² : Category C
inst✝¹ : Category D
F : C ⥤ D
A B : C
f : A ⟶ B
inst✝ : IsEquivalence F
⊢ StrongEpi f → StrongEpi (F.map f)

tactic: infer_instance
state_before: case mpr
C : Type u_3
D : Type u_4
inst✝² : Category C
inst✝¹ : Category D
F : C ⥤ D
A B : C
f : A ⟶ B
inst✝ : IsEquivalence F
a✝ : StrongEpi f
⊢ StrongEpi (F.map f)
Theorem: Set.iUnion_image_right
File: Mathlib/Data/Set/Lattice.lean

tactic: ext y
state_before: α : Type u_3
β : Type u_2
γ : Type u_1
ι : Sort ?u.246068
ι' : Sort ?u.246071
ι₂ : Sort ?u.246074
κ : ι → Sort ?u.246079
κ₁ : ι → Sort ?u.246084
κ₂ : ι → Sort ?u.246089
κ' : ι' → Sort ?u.246094
f : α → β → γ
s : Set α
t : Set β
⊢ (⋃ (b : β) (_ : b ∈ t), (fun a => f a b) '' s) = image2 f s t

tactic: constructor <;> simp only [mem_iUnion] <;> rintro ⟨a, b, c, d, e⟩
state_before: case h
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Sort ?u.246068
ι' : Sort ?u.246071
ι₂ : Sort ?u.246074
κ : ι → Sort ?u.246079
κ₁ : ι → Sort ?u.246084
κ₂ : ι → Sort ?u.246089
κ' : ι' → Sort ?u.246094
f : α → β → γ
s : Set α
t : Set β
y : γ
⊢ (y ∈ ⋃ (b : β) (_ : b ∈ t), (fun a => f a b) '' s) ↔ y ∈ image2 f s t

tactic: exact ⟨c, a, d, b, e⟩
state_before: case h.mp.intro.intro.intro.intro
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Sort ?u.246068
ι' : Sort ?u.246071
ι₂ : Sort ?u.246074
κ : ι → Sort ?u.246079
κ₁ : ι → Sort ?u.246084
κ₂ : ι → Sort ?u.246089
κ' : ι' → Sort ?u.246094
f : α → β → γ
s : Set α
t : Set β
y : γ
a : β
b : a ∈ t
c : α
d : c ∈ s
e : (fun a_1 => f a_1 a) c = y
⊢ y ∈ image2 f s t

case h.mpr.intro.intro.intro.intro
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Sort ?u.246068
ι' : Sort ?u.246071
ι₂ : Sort ?u.246074
κ : ι → Sort ?u.246079
κ₁ : ι → Sort ?u.246084
κ₂ : ι → Sort ?u.246089
κ' : ι' → Sort ?u.246094
f : α → β → γ
s : Set α
t : Set β
y : γ
a : α
b : β
c : a ∈ s
d : b ∈ t
e : f a b = y
⊢ ∃ i i_1, y ∈ (fun a => f a i) '' s

tactic: exact ⟨b, d, a, c, e⟩
state_before: case h.mpr.intro.intro.intro.intro
α : Type u_3
β : Type u_2
γ : Type u_1
ι : Sort ?u.246068
ι' : Sort ?u.246071
ι₂ : Sort ?u.246074
κ : ι → Sort ?u.246079
κ₁ : ι → Sort ?u.246084
κ₂ : ι → Sort ?u.246089
κ' : ι' → Sort ?u.246094
f : α → β → γ
s : Set α
t : Set β
y : γ
a : α
b : β
c : a ∈ s
d : b ∈ t
e : f a b = y
⊢ ∃ i i_1, y ∈ (fun a => f a i) '' s
Theorem: ContinuousLinearEquiv.comp_contDiffOn_iff
File: Mathlib/Analysis/Calculus/ContDiff.lean

tactic: simp [ContDiffOn, e.comp_contDiffWithinAt_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.304946
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 : F ≃L[𝕜] G
⊢ ContDiffOn 𝕜 n (↑e ∘ f) s ↔ ContDiffOn 𝕜 n f s
Theorem: Real.toNNReal_add
File: Mathlib/Data/Real/NNReal.lean

tactic: simp [hr, hp, add_nonneg]
state_before: r p : ℝ
hr : 0 ≤ r
hp : 0 ≤ p
⊢ ↑(toNNReal (r + p)) = ↑(toNNReal r + toNNReal p)
Theorem: RingHom.domain_nontrivial
File: Mathlib/Algebra/Hom/Ring.lean

tactic: rw [h, map_zero]
state_before: F : Type ?u.91218
α : Type u_2
β : Type u_1
γ : Type ?u.91227
x✝¹ : NonAssocSemiring α
x✝ : NonAssocSemiring β
f : α →+* β
x y : α
inst✝ : Nontrivial β
h : 1 = 0
⊢ ↑f 1 = 0
Theorem: List.length_lookmap
File: Mathlib/Data/List/Basic.lean

tactic: rw [← length_map, lookmap_map_eq _ fun _ => (), length_map]
state_before: ι : Type ?u.346880
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : α → Option α
l : List α
⊢ length (lookmap f l) = length l

tactic: simp
state_before: case h
ι : Type ?u.346880
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁ l₂ : List α
f : α → Option α
l : List α
⊢ ∀ (a b : α), b ∈ f a → () = ()
Theorem: Equiv.Perm.sameCycle_inv_apply_left
File: Mathlib/GroupTheory/Perm/Cycle/Basic.lean

tactic: rw [← sameCycle_apply_left, apply_inv_self]
state_before: ι : Type ?u.77340
α : Type u_1
β : Type ?u.77346
f g : Perm α
p : α → Prop
x y z : α
⊢ SameCycle f (↑f⁻¹ x) y ↔ SameCycle f x y
Theorem: Part.ofOption_dom
File: Mathlib/Data/Part.lean

tactic: simp [ofOption, none]
state_before: α✝ : Type ?u.9780
β : Type ?u.9783
γ : Type ?u.9786
α : Type u_1
⊢ (↑Option.none).Dom ↔ Option.isSome Option.none = true

tactic: simp [ofOption]
state_before: α✝ : Type ?u.9780
β : Type ?u.9783
γ : Type ?u.9786
α : Type u_1
a : α
⊢ (↑(Option.some a)).Dom ↔ Option.isSome (Option.some a) = true
Theorem: Set.mulIndicator_preimage_of_not_mem
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: simp [mulIndicator_preimage, Pi.one_def, Set.preimage_const_of_not_mem ht]
state_before: α : Type u_1
β : Type ?u.35667
ι : Type ?u.35670
M : Type u_2
N : Type ?u.35676
inst✝¹ : One M
inst✝ : One N
s✝ t✝ : Set α
f✝ g : α → M
a : α
s : Set α
f : α → M
t : Set M
ht : ¬1 ∈ t
⊢ mulIndicator s f ⁻¹' t = f ⁻¹' t ∩ s
Theorem: Convex.image_sub_lt_mul_sub_of_deriv_lt
File: Mathlib/Analysis/Calculus/MeanValue.lean

tactic: rw [deriv.neg, neg_lt_neg_iff]
state_before: E : Type ?u.405058
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.405154
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f : ℝ → ℝ
hf : ContinuousOn f D
hf' : DifferentiableOn ℝ f (interior D)
C : (fun x => ℝ) 1
lt_hf' : ∀ (x : ℝ), x ∈ interior D → deriv f x < C
x✝ : ℝ
hx✝ : x✝ ∈ D
y : ℝ
hy : y ∈ D
hxy : x✝ < y
x : ℝ
hx : x ∈ interior D
⊢ -C < deriv (fun y => -f y) x

tactic: exact lt_hf' x hx
state_before: E : Type ?u.405058
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.405154
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f : ℝ → ℝ
hf : ContinuousOn f D
hf' : DifferentiableOn ℝ f (interior D)
C : (fun x => ℝ) 1
lt_hf' : ∀ (x : ℝ), x ∈ interior D → deriv f x < C
x✝ : ℝ
hx✝ : x✝ ∈ D
y : ℝ
hy : y ∈ D
hxy : x✝ < y
x : ℝ
hx : x ∈ interior D
⊢ deriv (fun y => f y) x < C

tactic: linarith [hD.mul_sub_lt_image_sub_of_lt_deriv hf.neg hf'.neg hf'_gt x hx y hy hxy]
state_before: E : Type ?u.405058
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
F : Type ?u.405154
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
D : Set ℝ
hD : Convex ℝ D
f : ℝ → ℝ
hf : ContinuousOn f D
hf' : DifferentiableOn ℝ f (interior D)
C : (fun x => ℝ) 1
lt_hf' : ∀ (x : ℝ), x ∈ interior D → deriv f x < C
x : ℝ
hx : x ∈ D
y : ℝ
hy : y ∈ D
hxy : x < y
hf'_gt : ∀ (x : ℝ), x ∈ interior D → -C < deriv (fun y => -f y) x
⊢ f y - f x < C * (y - x)
Theorem: CategoryTheory.Limits.braid_natural
File: Mathlib/CategoryTheory/Limits/Shapes/BinaryProducts.lean

tactic: simp
state_before: C : Type u
inst✝¹ : Category C
X✝ Y✝ : C
inst✝ : HasBinaryProducts C
W X Y Z : C
f : X ⟶ Y
g : Z ⟶ W
⊢ prod.map f g ≫ (prod.braiding Y W).hom = (prod.braiding X Z).hom ≫ prod.map g f
Theorem: StrictConvex.preimage_add_right
File: Mathlib/Analysis/Convex/Strict.lean

tactic: intro x hx y hy hxy a b ha hb hab
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.66499
E : Type u_2
F : Type ?u.66505
β : Type ?u.66508
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalSpace F
inst✝² : AddCancelCommMonoid E
inst✝¹ : ContinuousAdd E
inst✝ : Module 𝕜 E
s : Set E
hs : StrictConvex 𝕜 s
z : E
⊢ StrictConvex 𝕜 ((fun x => z + x) ⁻¹' s)

tactic: refine' preimage_interior_subset_interior_preimage (continuous_add_left _) _
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.66499
E : Type u_2
F : Type ?u.66505
β : Type ?u.66508
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalSpace F
inst✝² : AddCancelCommMonoid E
inst✝¹ : ContinuousAdd E
inst✝ : Module 𝕜 E
s : Set E
hs : StrictConvex 𝕜 s
z x : E
hx : x ∈ (fun x => z + x) ⁻¹' s
y : E
hy : y ∈ (fun x => z + x) ⁻¹' s
hxy : x ≠ y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • x + b • y ∈ interior ((fun x => z + x) ⁻¹' s)

tactic: have h := hs hx hy ((add_right_injective _).ne hxy) ha hb hab
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.66499
E : Type u_2
F : Type ?u.66505
β : Type ?u.66508
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalSpace F
inst✝² : AddCancelCommMonoid E
inst✝¹ : ContinuousAdd E
inst✝ : Module 𝕜 E
s : Set E
hs : StrictConvex 𝕜 s
z x : E
hx : x ∈ (fun x => z + x) ⁻¹' s
y : E
hy : y ∈ (fun x => z + x) ⁻¹' s
hxy : x ≠ y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • x + b • y ∈ (fun b => z + b) ⁻¹' interior s

tactic: rwa [smul_add, smul_add, add_add_add_comm, ← _root_.add_smul, hab, one_smul] at h
state_before: 𝕜 : Type u_1
𝕝 : Type ?u.66499
E : Type u_2
F : Type ?u.66505
β : Type ?u.66508
inst✝⁵ : OrderedSemiring 𝕜
inst✝⁴ : TopologicalSpace E
inst✝³ : TopologicalSpace F
inst✝² : AddCancelCommMonoid E
inst✝¹ : ContinuousAdd E
inst✝ : Module 𝕜 E
s : Set E
hs : StrictConvex 𝕜 s
z x : E
hx : x ∈ (fun x => z + x) ⁻¹' s
y : E
hy : y ∈ (fun x => z + x) ⁻¹' s
hxy : x ≠ y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
h : a • (fun x => z + x) x + b • (fun x => z + x) y ∈ interior s
⊢ a • x + b • y ∈ (fun b => z + b) ⁻¹' interior s
Theorem: Gamma_cong_eq_self
File: Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean

tactic: apply Subgroup.Normal.conjAct (Gamma_normal N)
state_before: N✝ N : ℕ
g : ConjAct SL(2, ℤ)
⊢ g • Gamma N = Gamma N
Theorem: Finset.coe_pow
File: Mathlib/Data/Finset/Pointwise.lean

tactic: change ↑(npowRec n s) = (s: Set α) ^ n
state_before: F : Type ?u.179852
α : Type u_1
β : Type ?u.179858
γ : Type ?u.179861
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n✝ : ℕ
s : Finset α
n : ℕ
⊢ ↑(s ^ n) = ↑s ^ n

tactic: induction' n with n ih
state_before: F : Type ?u.179852
α : Type u_1
β : Type ?u.179858
γ : Type ?u.179861
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n✝ : ℕ
s : Finset α
n : ℕ
⊢ ↑(npowRec n s) = ↑s ^ n

tactic: rw [npowRec, pow_zero, coe_one]
state_before: case zero
F : Type ?u.179852
α : Type u_1
β : Type ?u.179858
γ : Type ?u.179861
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n : ℕ
s : Finset α
⊢ ↑(npowRec Nat.zero s) = ↑s ^ Nat.zero

tactic: rw [npowRec, pow_succ, coe_mul, ih]
state_before: case succ
F : Type ?u.179852
α : Type u_1
β : Type ?u.179858
γ : Type ?u.179861
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : Monoid α
s✝ t : Finset α
a : α
m n✝ : ℕ
s : Finset α
n : ℕ
ih : ↑(npowRec n s) = ↑s ^ n
⊢ ↑(npowRec (Nat.succ n) s) = ↑s ^ Nat.succ n
Theorem: SimpleGraph.Walk.darts_dropUntil_subset
File: Mathlib/Combinatorics/SimpleGraph/Connectivity.lean

tactic: rw [← take_spec p h, darts_append, List.mem_append]
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝ : DecidableEq V
u v w : V
p : Walk G v w
h : u ∈ support p
x : Dart G
hx : x ∈ darts (dropUntil p u h)
⊢ x ∈ darts p

tactic: exact Or.inr hx
state_before: V : Type u
V' : Type v
V'' : Type w
G : SimpleGraph V
G' : SimpleGraph V'
G'' : SimpleGraph V''
inst✝ : DecidableEq V
u v w : V
p : Walk G v w
h : u ∈ support p
x : Dart G
hx : x ∈ darts (dropUntil p u h)
⊢ x ∈ darts (takeUntil p u h) ∨ x ∈ darts (dropUntil p u h)
Theorem: tsum_star
File: Mathlib/Topology/Algebra/InfiniteSum/Basic.lean

tactic: by_cases hf : Summable f
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.819769
δ : Type ?u.819772
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : StarAddMonoid α
inst✝¹ : ContinuousStar α
f : β → α
a : α
inst✝ : T2Space α
⊢ star (∑' (b : β), f b) = ∑' (b : β), star (f b)

tactic: exact hf.hasSum.star.tsum_eq.symm
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type ?u.819769
δ : Type ?u.819772
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : StarAddMonoid α
inst✝¹ : ContinuousStar α
f : β → α
a : α
inst✝ : T2Space α
hf : Summable f
⊢ star (∑' (b : β), f b) = ∑' (b : β), star (f b)

tactic: rw [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable (mt Summable.ofStar hf),
  star_zero]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type ?u.819769
δ : Type ?u.819772
inst✝⁴ : AddCommMonoid α
inst✝³ : TopologicalSpace α
inst✝² : StarAddMonoid α
inst✝¹ : ContinuousStar α
f : β → α
a : α
inst✝ : T2Space α
hf : ¬Summable f
⊢ star (∑' (b : β), f b) = ∑' (b : β), star (f b)
Theorem: WithBot.preimage_coe_Ioo
File: Mathlib/Data/Set/Intervals/WithBotTop.lean

tactic: simp [← Ioi_inter_Iio]
state_before: α : Type u_1
inst✝ : PartialOrder α
a b : α
⊢ some ⁻¹' Ioo ↑a ↑b = Ioo a b
Theorem: Complex.interior_setOf_le_re
File: Mathlib/Analysis/Complex/ReImTopology.lean

tactic: simpa only [interior_Ici] using interior_preimage_re (Ici a)
state_before: a : ℝ
⊢ interior {z | a ≤ z.re} = {z | a < z.re}
Theorem: Submodule.ClosedComplemented.isClosed
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: rcases h with ⟨f, hf⟩
state_before: R : Type u_2
inst✝⁸ : Ring R
M : Type u_1
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M₂ : Type ?u.2046866
inst✝⁴ : TopologicalSpace M₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : TopologicalAddGroup M
inst✝ : T1Space M
p : Submodule R M
h : ClosedComplemented p
⊢ IsClosed ↑p

tactic: have : ker (id R M - p.subtypeL.comp f) = p := LinearMap.ker_id_sub_eq_of_proj hf
state_before: case intro
R : Type u_2
inst✝⁸ : Ring R
M : Type u_1
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M₂ : Type ?u.2046866
inst✝⁴ : TopologicalSpace M₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : TopologicalAddGroup M
inst✝ : T1Space M
p : Submodule R M
f : M →L[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
⊢ IsClosed ↑p

tactic: exact this ▸ isClosed_ker _
state_before: case intro
R : Type u_2
inst✝⁸ : Ring R
M : Type u_1
inst✝⁷ : TopologicalSpace M
inst✝⁶ : AddCommGroup M
inst✝⁵ : Module R M
M₂ : Type ?u.2046866
inst✝⁴ : TopologicalSpace M₂
inst✝³ : AddCommGroup M₂
inst✝² : Module R M₂
inst✝¹ : TopologicalAddGroup M
inst✝ : T1Space M
p : Submodule R M
f : M →L[R] { x // x ∈ p }
hf : ∀ (x : { x // x ∈ p }), ↑f ↑x = x
this : ker (ContinuousLinearMap.id R M - comp (subtypeL p) f) = p
⊢ IsClosed ↑p
Theorem: extChartAt_preimage_mem_nhds
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: apply (continuousAt_extChartAt_symm I x).preimage_mem_nhds
state_before: 𝕜 : Type u_3
E : Type u_2
M : Type u_1
H : Type u_4
E' : Type ?u.223809
M' : Type ?u.223812
H' : Type ?u.223815
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'
ht : t ∈ 𝓝 x
⊢ ↑(LocalEquiv.symm (extChartAt I x)) ⁻¹' t ∈ 𝓝 (↑(extChartAt I x) x)

tactic: rwa [(extChartAt I x).left_inv (mem_extChartAt_source _ _)]
state_before: 𝕜 : Type u_3
E : Type u_2
M : Type u_1
H : Type u_4
E' : Type ?u.223809
M' : Type ?u.223812
H' : Type ?u.223815
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'
ht : t ∈ 𝓝 x
⊢ t ∈ 𝓝 (↑(LocalEquiv.symm (extChartAt I x)) (↑(extChartAt I x) x))
Theorem: LinearMap.rTensor_comp_lTensor
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: simp only [lTensor, rTensor, ← map_comp, id_comp, comp_id]
state_before: R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.1277698
inst✝¹³ : Monoid R'
R'' : Type ?u.1277704
inst✝¹² : Semiring R''
M : Type u_2
N : Type u_4
P : Type u_3
Q : Type u_5
S : Type ?u.1277722
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid N
inst✝⁹ : AddCommMonoid P
inst✝⁸ : AddCommMonoid Q
inst✝⁷ : AddCommMonoid S
inst✝⁶ : Module R M
inst✝⁵ : Module R N
inst✝⁴ : Module R P
inst✝³ : Module R Q
inst✝² : Module R S
inst✝¹ : DistribMulAction R' M
inst✝ : Module R'' M
g✝ : P →ₗ[R] Q
f✝ : N →ₗ[R] P
f : M →ₗ[R] P
g : N →ₗ[R] Q
⊢ comp (rTensor Q f) (lTensor M g) = map f g
Theorem: Set.zero_smul_subset
File: Mathlib/Data/Set/Pointwise/SMul.lean

tactic: simp [subset_def, mem_smul]
state_before: F : Type ?u.74296
α : Type u_2
β : Type u_1
γ : Type ?u.74305
inst✝² : Zero α
inst✝¹ : Zero β
inst✝ : SMulWithZero α β
s : Set α
t✝ t : Set β
⊢ 0 • t ⊆ 0
Theorem: Metric.bounded_prod
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: simp only [bounded_iff_isBounded, Bornology.isBounded_prod]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝¹ : PseudoMetricSpace α
inst✝ : PseudoMetricSpace β
s : Set α
t : Set β
⊢ Bounded (s ×ˢ t) ↔ s = ∅ ∨ t = ∅ ∨ Bounded s ∧ Bounded t
Theorem: Finset.sup_union
File: Mathlib/Data/Finset/Lattice.lean

tactic: rw [empty_union, sup_empty, bot_sup_eq]
state_before: F : Type ?u.14245
α : Type u_2
β : Type u_1
γ : Type ?u.14254
ι : Type ?u.14257
κ : Type ?u.14260
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
s s₁ s₂ : Finset β
f g : β → α
a : α
inst✝ : DecidableEq β
⊢ sup (∅ ∪ s₂) f = sup ∅ f ⊔ sup s₂ f

tactic: rw [insert_union, sup_insert, sup_insert, ih, sup_assoc]
state_before: F : Type ?u.14245
α : Type u_2
β : Type u_1
γ : Type ?u.14254
ι : Type ?u.14257
κ : Type ?u.14260
inst✝² : SemilatticeSup α
inst✝¹ : OrderBot α
s✝ s₁ s₂ : Finset β
f g : β → α
a✝ : α
inst✝ : DecidableEq β
a : β
s : Finset β
x✝ : ¬a ∈ s
ih : sup (s ∪ s₂) f = sup s f ⊔ sup s₂ f
⊢ sup (insert a s ∪ s₂) f = sup (insert a s) f ⊔ sup s₂ f
Theorem: xor_comm
File: Mathlib/Logic/Basic.lean

tactic: simp [Xor', and_comm, or_comm]
state_before: a b : Prop
⊢ Xor' a b = Xor' b a
Theorem: LieSubalgebra.mem_ofLe
File: Mathlib/Algebra/Lie/Subalgebra.lean

tactic: simp only [ofLe, homOfLe_apply, LieHom.mem_range]
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
h : K ≤ K'
x : { x // x ∈ K' }
⊢ x ∈ ofLe h ↔ ↑x ∈ K

tactic: constructor
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
h : K ≤ K'
x : { x // x ∈ K' }
⊢ (∃ y, { val := ↑y, property := (_ : ↑y ∈ K') } = x) ↔ ↑x ∈ K

tactic: rintro ⟨y, rfl⟩
state_before: case mp
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
h : K ≤ K'
x : { x // x ∈ K' }
⊢ (∃ y, { val := ↑y, property := (_ : ↑y ∈ K') } = x) → ↑x ∈ K

tactic: exact y.property
state_before: case mp.intro
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
h : K ≤ K'
y : { x // x ∈ K }
⊢ ↑{ val := ↑y, property := (_ : ↑y ∈ K') } ∈ K

tactic: intro h
state_before: case mpr
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
h : K ≤ K'
x : { x // x ∈ K' }
⊢ ↑x ∈ K → ∃ y, { val := ↑y, property := (_ : ↑y ∈ K') } = x

tactic: use ⟨(x : L), h⟩
state_before: case mpr
R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
h✝ : K ≤ K'
x : { x // x ∈ K' }
h : ↑x ∈ K
⊢ ∃ y, { val := ↑y, property := (_ : ↑y ∈ K') } = x
Theorem: dense_biInter_of_open
File: Mathlib/Topology/MetricSpace/Baire.lean

tactic: rw [← sInter_image]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.13508
ι : Type ?u.13511
inst✝¹ : TopologicalSpace α
inst✝ : BaireSpace α
S : Set β
f : β → Set α
ho : ∀ (s : β), s ∈ S → IsOpen (f s)
hS : Set.Countable S
hd : ∀ (s : β), s ∈ S → Dense (f s)
⊢ Dense (⋂ (s : β) (_ : s ∈ S), f s)

tactic: apply dense_sInter_of_open
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.13508
ι : Type ?u.13511
inst✝¹ : TopologicalSpace α
inst✝ : BaireSpace α
S : Set β
f : β → Set α
ho : ∀ (s : β), s ∈ S → IsOpen (f s)
hS : Set.Countable S
hd : ∀ (s : β), s ∈ S → Dense (f s)
⊢ Dense (⋂₀ ((fun s => f s) '' S))

tactic: rwa [ball_image_iff]
state_before: case ho
α : Type u_2
β : Type u_1
γ : Type ?u.13508
ι : Type ?u.13511
inst✝¹ : TopologicalSpace α
inst✝ : BaireSpace α
S : Set β
f : β → Set α
ho : ∀ (s : β), s ∈ S → IsOpen (f s)
hS : Set.Countable S
hd : ∀ (s : β), s ∈ S → Dense (f s)
⊢ ∀ (s : Set α), s ∈ (fun s => f s) '' S → IsOpen s

tactic: exact hS.image _
state_before: case hS
α : Type u_2
β : Type u_1
γ : Type ?u.13508
ι : Type ?u.13511
inst✝¹ : TopologicalSpace α
inst✝ : BaireSpace α
S : Set β
f : β → Set α
ho : ∀ (s : β), s ∈ S → IsOpen (f s)
hS : Set.Countable S
hd : ∀ (s : β), s ∈ S → Dense (f s)
⊢ Set.Countable ((fun s => f s) '' S)

tactic: rwa [ball_image_iff]
state_before: case hd
α : Type u_2
β : Type u_1
γ : Type ?u.13508
ι : Type ?u.13511
inst✝¹ : TopologicalSpace α
inst✝ : BaireSpace α
S : Set β
f : β → Set α
ho : ∀ (s : β), s ∈ S → IsOpen (f s)
hS : Set.Countable S
hd : ∀ (s : β), s ∈ S → Dense (f s)
⊢ ∀ (s : Set α), s ∈ (fun s => f s) '' S → Dense s
Theorem: Set.preimage_sub_const_Iio
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [sub_eq_add_neg]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => x - a) ⁻¹' Iio b = Iio (b + a)
Theorem: minpoly.dvd_map_of_isScalarTower
File: Mathlib/FieldTheory/Minpoly/Field.lean

tactic: refine' minpoly.dvd K x _
state_before: A✝ : Type ?u.54450
B : Type ?u.54453
inst✝⁹ : Field A✝
inst✝⁸ : Ring B
inst✝⁷ : Algebra A✝ B
x✝ : B
A : Type u_1
K : Type u_2
R : Type u_3
inst✝⁶ : CommRing A
inst✝⁵ : Field K
inst✝⁴ : CommRing R
inst✝³ : Algebra A K
inst✝² : Algebra A R
inst✝¹ : Algebra K R
inst✝ : IsScalarTower A K R
x : R
⊢ minpoly K x ∣ map (algebraMap A K) (minpoly A x)

tactic: rw [aeval_map_algebraMap, minpoly.aeval]
state_before: A✝ : Type ?u.54450
B : Type ?u.54453
inst✝⁹ : Field A✝
inst✝⁸ : Ring B
inst✝⁷ : Algebra A✝ B
x✝ : B
A : Type u_1
K : Type u_2
R : Type u_3
inst✝⁶ : CommRing A
inst✝⁵ : Field K
inst✝⁴ : CommRing R
inst✝³ : Algebra A K
inst✝² : Algebra A R
inst✝¹ : Algebra K R
inst✝ : IsScalarTower A K R
x : R
⊢ ↑(Polynomial.aeval x) (map (algebraMap A K) (minpoly A x)) = 0