analysis.normed_space.basic
⟷
Mathlib.Analysis.NormedSpace.Basic
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
@@ -23,7 +23,7 @@ about these definitions.
variables {α : Type*} {β : Type*} {γ : Type*} {ι : Type*}
open filter metric function set
-open_locale topology big_operators nnreal ennreal uniformity pointwise
+open_locale topology big_operators nnreal ennreal uniformity
section seminormed_add_comm_group
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
This only moves the very basic lemmas for now.
This should be very easy to forward-port:
A few downstream proofs need some small help with unification, as while the old normed_space
argument was found by unification, the new has_bounded_smul
has to be found by typeclass search.
@@ -6,6 +6,7 @@ Authors: Patrick Massot, Johannes Hölzl
import algebra.algebra.pi
import algebra.algebra.restrict_scalars
import analysis.normed.field.basic
+import analysis.normed.mul_action
import data.real.sqrt
import topology.algebra.module.basic
@@ -45,31 +46,9 @@ end prio
variables [normed_field α] [seminormed_add_comm_group β]
--- note: while these are currently strictly weaker than the versions without `le`, they will cease
--- to be if we eventually generalize `normed_space` from `normed_field α` to `normed_ring α`.
-section le
-
-lemma norm_smul_le [normed_space α β] (r : α) (x : β) : ‖r • x‖ ≤ ‖r‖ * ‖x‖ :=
-normed_space.norm_smul_le _ _
-
-lemma nnnorm_smul_le [normed_space α β] (s : α) (x : β) : ‖s • x‖₊ ≤ ‖s‖₊ * ‖x‖₊ :=
-norm_smul_le s x
-
-lemma dist_smul_le [normed_space α β] (s : α) (x y : β) : dist (s • x) (s • y) ≤ ‖s‖ * dist x y :=
-by simpa only [dist_eq_norm, ←smul_sub] using norm_smul_le _ _
-
-lemma nndist_smul_le [normed_space α β] (s : α) (x y : β) :
- nndist (s • x) (s • y) ≤ ‖s‖₊ * nndist x y :=
-dist_smul_le s x y
-
-end le
-
@[priority 100] -- see Note [lower instance priority]
instance normed_space.has_bounded_smul [normed_space α β] : has_bounded_smul α β :=
-{ dist_smul_pair' := λ x y₁ y₂,
- by simpa [dist_eq_norm, smul_sub] using norm_smul_le x (y₁ - y₂),
- dist_pair_smul' := λ x₁ x₂ y,
- by simpa [dist_eq_norm, sub_smul] using norm_smul_le (x₁ - x₂) y }
+has_bounded_smul.of_norm_smul_le normed_space.norm_smul_le
-- Shortcut instance, as otherwise this will be found by `normed_space.to_module` and be
-- noncomputable.
@@ -78,17 +57,9 @@ instance : module ℝ ℝ := by apply_instance
instance normed_field.to_normed_space : normed_space α α :=
{ norm_smul_le := λ a b, norm_mul_le a b }
-lemma norm_smul [normed_space α β] (s : α) (x : β) : ‖s • x‖ = ‖s‖ * ‖x‖ :=
-begin
- by_cases h : s = 0,
- { simp [h] },
- { refine le_antisymm (norm_smul_le s x) _,
- calc ‖s‖ * ‖x‖ = ‖s‖ * ‖s⁻¹ • s • x‖ : by rw [inv_smul_smul₀ h]
- ... ≤ ‖s‖ * (‖s⁻¹‖ * ‖s • x‖) :
- mul_le_mul_of_nonneg_left (norm_smul_le _ _) (norm_nonneg _)
- ... = ‖s • x‖ :
- by rw [norm_inv, ← mul_assoc, mul_inv_cancel (mt norm_eq_zero.1 h), one_mul] }
-end
+-- shortcut instance
+instance normed_field.to_has_bounded_smul : has_bounded_smul α α :=
+normed_space.has_bounded_smul
lemma norm_zsmul (α) [normed_field α] [normed_space α β] (n : ℤ) (x : β) :
‖n • x‖ = ‖(n : α)‖ * ‖x‖ :=
@@ -102,19 +73,6 @@ lemma inv_norm_smul_mem_closed_unit_ball [normed_space ℝ β] (x : β) :
by simp only [mem_closed_ball_zero_iff, norm_smul, norm_inv, norm_norm, ← div_eq_inv_mul,
div_self_le_one]
-lemma dist_smul₀ [normed_space α β] (s : α) (x y : β) : dist (s • x) (s • y) = ‖s‖ * dist x y :=
-by simp only [dist_eq_norm, (norm_smul _ _).symm, smul_sub]
-
-lemma nnnorm_smul [normed_space α β] (s : α) (x : β) : ‖s • x‖₊ = ‖s‖₊ * ‖x‖₊ :=
-nnreal.eq $ norm_smul s x
-
-lemma nndist_smul₀ [normed_space α β] (s : α) (x y : β) :
- nndist (s • x) (s • y) = ‖s‖₊ * nndist x y :=
-nnreal.eq $ dist_smul₀ s x y
-
-lemma lipschitz_with_smul [normed_space α β] (s : α) : lipschitz_with ‖s‖₊ ((•) s : β → β) :=
-lipschitz_with_iff_dist_le_mul.2 $ λ x y, by rw [dist_smul₀, coe_nnnorm]
-
lemma norm_smul_of_nonneg [normed_space ℝ β] {t : ℝ} (ht : 0 ≤ t) (x : β) :
‖t • x‖ = t * ‖x‖ := by rw [norm_smul, real.norm_eq_abs, abs_of_nonneg ht]
@@ -279,7 +237,7 @@ instance pi.normed_space {E : ι → Type*} [fintype ι] [∀i, seminormed_add_c
end }
instance mul_opposite.normed_space : normed_space α Eᵐᵒᵖ :=
-{ norm_smul_le := λ s x, norm_smul_le s x.unop,
+{ norm_smul_le := λ s x, (norm_smul_le s x.unop : _),
..mul_opposite.normed_add_comm_group,
..mul_opposite.module _ }
@@ -288,7 +246,7 @@ instance submodule.normed_space {𝕜 R : Type*} [has_smul 𝕜 R] [normed_field
{E : Type*} [seminormed_add_comm_group E] [normed_space 𝕜 E] [module R E]
[is_scalar_tower 𝕜 R E] (s : submodule R E) :
normed_space 𝕜 s :=
-{ norm_smul_le := λc x, norm_smul_le c (x : E) }
+{ norm_smul_le := λc x, (norm_smul_le c (x : E) : _) }
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
@@ -94,8 +94,8 @@ lemma norm_zsmul (α) [normed_field α] [normed_space α β] (n : ℤ) (x : β)
‖n • x‖ = ‖(n : α)‖ * ‖x‖ :=
by rw [← norm_smul, ← int.smul_one_eq_coe, smul_assoc, one_smul]
-@[simp] lemma abs_norm_eq_norm (z : β) : |‖z‖| = ‖z‖ :=
- (abs_eq (norm_nonneg z)).mpr (or.inl rfl)
+@[simp] lemma abs_norm (z : β) : |‖z‖| = ‖z‖ :=
+abs_of_nonneg $ norm_nonneg z
lemma inv_norm_smul_mem_closed_unit_ball [normed_space ℝ β] (x : β) :
‖x‖⁻¹ • x ∈ closed_ball (0 : β) 1 :=
@@ -225,8 +225,8 @@ noncomputable def homeomorph_unit_ball [normed_space ℝ E] :
{ to_fun := λ x, ⟨(1 + ‖x‖^2).sqrt⁻¹ • x, begin
have : 0 < 1 + ‖x‖ ^ 2, by positivity,
rw [mem_ball_zero_iff, norm_smul, real.norm_eq_abs, abs_inv, ← div_eq_inv_mul,
- div_lt_one (abs_pos.mpr $ real.sqrt_ne_zero'.mpr this), ← abs_norm_eq_norm x, ← sq_lt_sq,
- abs_norm_eq_norm, real.sq_sqrt this.le],
+ div_lt_one (abs_pos.mpr $ real.sqrt_ne_zero'.mpr this), ← abs_norm x, ← sq_lt_sq,
+ abs_norm, real.sq_sqrt this.le],
exact lt_one_add _,
end⟩,
inv_fun := λ y, (1 - ‖(y : E)‖^2).sqrt⁻¹ • (y : E),
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
This follows the pattern set by the nearby lemmas of having a primed and unprimed version.
@@ -187,6 +187,14 @@ theorem frontier_closed_ball [normed_space ℝ E] (x : E) {r : ℝ} (hr : r ≠
by rw [frontier, closure_closed_ball, interior_closed_ball x hr,
closed_ball_diff_ball]
+theorem interior_sphere [normed_space ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
+ interior (sphere x r) = ∅ :=
+by rw [←frontier_closed_ball x hr, interior_frontier is_closed_ball]
+
+theorem frontier_sphere [normed_space ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
+ frontier (sphere x r) = sphere x r :=
+by rw [is_closed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
+
instance {E : Type*} [normed_add_comm_group E] [normed_space ℚ E] (e : E) :
discrete_topology $ add_subgroup.zmultiples e :=
begin
@@ -396,6 +404,14 @@ theorem frontier_closed_ball' [normed_space ℝ E] [nontrivial E] (x : E) (r :
frontier (closed_ball x r) = sphere x r :=
by rw [frontier, closure_closed_ball, interior_closed_ball' x r, closed_ball_diff_ball]
+@[simp] theorem interior_sphere' [normed_space ℝ E] [nontrivial E] (x : E) (r : ℝ) :
+ interior (sphere x r) = ∅ :=
+by rw [←frontier_closed_ball' x, interior_frontier is_closed_ball]
+
+@[simp] theorem frontier_sphere' [normed_space ℝ E] [nontrivial E] (x : E) (r : ℝ) :
+ frontier (sphere x r) = sphere x r :=
+by rw [is_closed_sphere.frontier_eq, interior_sphere' x, diff_empty]
+
variables {α}
lemma rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -299,11 +299,11 @@ instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCo
#align pi.normed_space Pi.normedSpace
-/
-#print MulOpposite.normedSpace /-
-instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
+#print MulOpposite.instNormedSpace /-
+instance MulOpposite.instNormedSpace : NormedSpace α Eᵐᵒᵖ :=
{ MulOpposite.normedAddCommGroup, MulOpposite.module _ with
norm_smul_le := fun s x => (norm_smul_le s x.unop : _) }
-#align mul_opposite.normed_space MulOpposite.normedSpace
+#align mul_opposite.normed_space MulOpposite.instNormedSpace
-/
#print Submodule.normedSpace /-
@@ -693,11 +693,11 @@ instance Pi.normedAlgebra {E : ι → Type _} [Fintype ι] [∀ i, SeminormedRin
#align pi.normed_algebra Pi.normedAlgebra
-/
-#print MulOpposite.normedAlgebra /-
-instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
+#print MulOpposite.instNormedAlgebra /-
+instance MulOpposite.instNormedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
NormedAlgebra 𝕜 Eᵐᵒᵖ :=
- { MulOpposite.normedSpace with }
-#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
+ { MulOpposite.instNormedSpace with }
+#align mul_opposite.normed_algebra MulOpposite.instNormedAlgebra
-/
end NormedAlgebra
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -33,7 +33,7 @@ section SeminormedAddCommGroup
section Prio
-/- ./././Mathport/Syntax/Translate/Basic.lean:339:40: warning: unsupported option extends_priority -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:340:40: warning: unsupported option extends_priority -/
set_option extends_priority 920
#print NormedSpace /-
@@ -148,8 +148,8 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
· rw [one_smul, sub_add_cancel]
· simp [closure_Ico zero_ne_one, zero_le_one]
· rintro c ⟨hc0, hc1⟩
- rw [mem_ball, dist_eq_norm, add_sub_cancel, norm_smul, Real.norm_eq_abs, abs_of_nonneg hc0,
- mul_comm, ← mul_one r]
+ rw [mem_ball, dist_eq_norm, add_sub_cancel_right, norm_smul, Real.norm_eq_abs,
+ abs_of_nonneg hc0, mul_comm, ← mul_one r]
rw [mem_closed_ball, dist_eq_norm] at hy
replace hr : 0 < r; exact ((norm_nonneg _).trans hy).lt_of_ne hr.symm
apply mul_lt_mul' <;> assumption
@@ -709,7 +709,7 @@ end NormedAlgebra
See note [reducible non-instances] -/
@[reducible]
def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Ring β] [Algebra α β]
- [SeminormedRing γ] [NormedAlgebra α γ] [NonUnitalAlgHomClass F α β γ] (f : F) :
+ [SeminormedRing γ] [NormedAlgebra α γ] [NonUnitalAlgSemiHomClass F α β γ] (f : F) :
@NormedAlgebra α β _ (SeminormedRing.induced β γ f)
where norm_smul_le a b := by unfold norm; exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_algebra.induced NormedAlgebra.induced
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -150,7 +150,7 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
· rintro c ⟨hc0, hc1⟩
rw [mem_ball, dist_eq_norm, add_sub_cancel, norm_smul, Real.norm_eq_abs, abs_of_nonneg hc0,
mul_comm, ← mul_one r]
- rw [mem_closed_ball, dist_eq_norm] at hy
+ rw [mem_closed_ball, dist_eq_norm] at hy
replace hr : 0 < r; exact ((norm_nonneg _).trans hy).lt_of_ne hr.symm
apply mul_lt_mul' <;> assumption
#align closure_ball closure_ball
@@ -407,7 +407,7 @@ variable (E) [NormedSpace ℝ E] [Nontrivial E]
theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
by
rcases exists_ne (0 : E) with ⟨x, hx⟩
- rw [← norm_ne_zero_iff] at hx
+ rw [← norm_ne_zero_iff] at hx
use c • ‖x‖⁻¹ • x
simp [norm_smul, Real.norm_of_nonneg hc, hx]
#align exists_norm_eq exists_norm_eq
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -622,18 +622,18 @@ section NNReal
variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
-#print norm_algebraMap_nNReal /-
+#print norm_algebraMap_nnreal /-
@[simp]
-theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
+theorem norm_algebraMap_nnreal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
(norm_algebraMap' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.Prop
-#align norm_algebra_map_nnreal norm_algebraMap_nNReal
+#align norm_algebra_map_nnreal norm_algebraMap_nnreal
-/
-#print nnnorm_algebraMap_nNReal /-
+#print nnnorm_algebraMap_nnreal /-
@[simp]
-theorem nnnorm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
- Subtype.ext <| norm_algebraMap_nNReal 𝕜' x
-#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nNReal
+theorem nnnorm_algebraMap_nnreal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
+ Subtype.ext <| norm_algebraMap_nnreal 𝕜' x
+#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nnreal
-/
end NNReal
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -215,7 +215,7 @@ instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
by
rcases eq_or_ne e 0 with (rfl | he)
· rw [AddSubgroup.zmultiples_zero_eq_bot]; infer_instance
- · rw [discreteTopology_iff_open_singleton_zero, isOpen_induced_iff]
+ · rw [discreteTopology_iff_isOpen_singleton_zero, isOpen_induced_iff]
refine' ⟨Metric.ball 0 ‖e‖, Metric.isOpen_ball, _⟩
ext ⟨x, hx⟩
obtain ⟨k, rfl⟩ := add_subgroup.mem_zmultiples_iff.mp hx
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -532,10 +532,10 @@ protected theorem NormedSpace.noncompactSpace : NoncompactSpace E :=
#align normed_space.noncompact_space NormedSpace.noncompactSpace
-/
-#print NontriviallyNormedField.noncompactSpace /-
-instance (priority := 100) NontriviallyNormedField.noncompactSpace : NoncompactSpace 𝕜 :=
+#print NormedField.noncompactSpace /-
+instance (priority := 100) NormedField.noncompactSpace : NoncompactSpace 𝕜 :=
NormedSpace.noncompactSpace 𝕜 𝕜
-#align nontrivially_normed_field.noncompact_space NontriviallyNormedField.noncompactSpace
+#align nontrivially_normed_field.noncompact_space NormedField.noncompactSpace
-/
#print RealNormedSpace.noncompactSpace /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,12 +3,12 @@ Copyright (c) 2018 Patrick Massot. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
-/
-import Mathbin.Algebra.Algebra.Pi
-import Mathbin.Algebra.Algebra.RestrictScalars
-import Mathbin.Analysis.Normed.Field.Basic
-import Mathbin.Analysis.Normed.MulAction
-import Mathbin.Data.Real.Sqrt
-import Mathbin.Topology.Algebra.Module.Basic
+import Algebra.Algebra.Pi
+import Algebra.Algebra.RestrictScalars
+import Analysis.Normed.Field.Basic
+import Analysis.Normed.MulAction
+import Data.Real.Sqrt
+import Topology.Algebra.Module.Basic
#align_import analysis.normed_space.basic from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
@@ -33,7 +33,7 @@ section SeminormedAddCommGroup
section Prio
-/- ./././Mathport/Syntax/Translate/Basic.lean:334:40: warning: unsupported option extends_priority -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:339:40: warning: unsupported option extends_priority -/
set_option extends_priority 920
#print NormedSpace /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -517,7 +517,7 @@ theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ :=
#print NormedSpace.unbounded_univ /-
protected theorem NormedSpace.unbounded_univ : ¬Bounded (univ : Set E) := fun h =>
- let ⟨R, hR⟩ := bounded_iff_forall_norm_le.1 h
+ let ⟨R, hR⟩ := isBounded_iff_forall_norm_le.1 h
let ⟨x, hx⟩ := NormedSpace.exists_lt_norm 𝕜 E R
hx.not_le (hR x trivial)
#align normed_space.unbounded_univ NormedSpace.unbounded_univ
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -282,7 +282,7 @@ instance : NormedSpace α (ULift E) :=
#print Prod.normedSpace /-
/-- The product of two normed spaces is a normed space, with the sup norm. -/
instance Prod.normedSpace : NormedSpace α (E × F) :=
- { Prod.normedAddCommGroup, Prod.module with
+ { Prod.normedAddCommGroup, Prod.instModule with
norm_smul_le := fun s x => by simp [Prod.norm_def, norm_smul_le, mul_max_of_nonneg] }
#align prod.normed_space Prod.normedSpace
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/d11f435d4e34a6cea0a1797d6b625b0c170be845
@@ -224,7 +224,7 @@ instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
Int.norm_eq_abs, ← Int.cast_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ←
@Int.cast_one ℝ _, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
-#print homeomorphUnitBall /-
+#print Homeomorph.unitBall /-
/-- A (semi) normed real vector space is homeomorphic to the unit ball in the same space.
This homeomorphism sends `x : E` to `(1 + ‖x‖²)^(- ½) • x`.
@@ -234,7 +234,7 @@ In many cases the actual implementation is not important, so we don't mark the p
See also `cont_diff_homeomorph_unit_ball` and `cont_diff_on_homeomorph_unit_ball_symm` for
smoothness properties that hold when `E` is an inner-product space. -/
@[simps (config := { attrs := [] })]
-noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E) 1
+noncomputable def Homeomorph.unitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E) 1
where
toFun x :=
⟨(1 + ‖x‖ ^ 2).sqrt⁻¹ • x, by
@@ -263,14 +263,14 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
intro y
rw [Real.sqrt_ne_zero']
nlinarith [norm_nonneg (y : E), (mem_ball_zero_iff.1 y.2 : ‖(y : E)‖ < 1)]
-#align homeomorph_unit_ball homeomorphUnitBall
+#align homeomorph_unit_ball Homeomorph.unitBall
-/
-#print coe_homeomorphUnitBall_apply_zero /-
+#print Homeomorph.coe_unitBall_apply_zero /-
@[simp]
-theorem coe_homeomorphUnitBall_apply_zero [NormedSpace ℝ E] :
- (homeomorphUnitBall (0 : E) : E) = 0 := by simp [homeomorphUnitBall]
-#align coe_homeomorph_unit_ball_apply_zero coe_homeomorphUnitBall_apply_zero
+theorem Homeomorph.coe_unitBall_apply_zero [NormedSpace ℝ E] :
+ (Homeomorph.unitBall (0 : E) : E) = 0 := by simp [Homeomorph.unitBall]
+#align coe_homeomorph_unit_ball_apply_zero Homeomorph.coe_unitBall_apply_zero
-/
open NormedField
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2018 Patrick Massot. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
-
-! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Algebra.Pi
import Mathbin.Algebra.Algebra.RestrictScalars
@@ -15,6 +10,8 @@ import Mathbin.Analysis.Normed.MulAction
import Mathbin.Data.Real.Sqrt
import Mathbin.Topology.Algebra.Module.Basic
+#align_import analysis.normed_space.basic from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
+
/-!
# Normed spaces
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -60,10 +60,12 @@ end Prio
variable [NormedField α] [SeminormedAddCommGroup β]
+#print NormedSpace.boundedSMul /-
-- see Note [lower instance priority]
instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β :=
BoundedSMul.of_norm_smul_le NormedSpace.norm_smul_le
#align normed_space.has_bounded_smul NormedSpace.boundedSMul
+-/
-- Shortcut instance, as otherwise this will be found by `normed_space.to_module` and be
-- noncomputable.
@@ -74,54 +76,71 @@ instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b :=
#align normed_field.to_normed_space NormedField.toNormedSpace
-/
+#print NormedField.to_boundedSMul /-
-- shortcut instance
instance NormedField.to_boundedSMul : BoundedSMul α α :=
NormedSpace.boundedSMul
#align normed_field.to_has_bounded_smul NormedField.to_boundedSMul
+-/
+#print norm_zsmul /-
theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
+-/
+#print abs_norm /-
@[simp]
theorem abs_norm (z : β) : |‖z‖| = ‖z‖ :=
abs_of_nonneg <| norm_nonneg z
#align abs_norm abs_norm
+-/
+#print inv_norm_smul_mem_closed_unit_ball /-
theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
‖x‖⁻¹ • x ∈ closedBall (0 : β) 1 := by
simp only [mem_closedBall_zero_iff, norm_smul, norm_inv, norm_norm, ← div_eq_inv_mul,
div_self_le_one]
#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ball
+-/
+#print norm_smul_of_nonneg /-
theorem norm_smul_of_nonneg [NormedSpace ℝ β] {t : ℝ} (ht : 0 ≤ t) (x : β) : ‖t • x‖ = t * ‖x‖ := by
rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg ht]
#align norm_smul_of_nonneg norm_smul_of_nonneg
+-/
variable {E : Type _} [SeminormedAddCommGroup E] [NormedSpace α E]
variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace α F]
+#print eventually_nhds_norm_smul_sub_lt /-
theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
have : Tendsto (fun y => ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
((continuous_id.sub continuous_const).const_smul _).norm.tendsto' _ _ (by simp)
this.Eventually (gt_mem_nhds h)
#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_lt
+-/
+#print Filter.Tendsto.zero_smul_isBoundedUnder_le /-
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
hf.op_zero_isBoundedUnder_le hg (· • ·) norm_smul_le
#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_le
+-/
+#print Filter.IsBoundedUnder.smul_tendsto_zero /-
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
hg.op_zero_isBoundedUnder_le hf (flip (· • ·)) fun x y =>
(norm_smul_le y x).trans_eq (mul_comm _ _)
#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zero
+-/
+#print closure_ball /-
theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
closure (ball x r) = closedBall x r :=
by
@@ -138,14 +157,18 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
replace hr : 0 < r; exact ((norm_nonneg _).trans hy).lt_of_ne hr.symm
apply mul_lt_mul' <;> assumption
#align closure_ball closure_ball
+-/
+#print frontier_ball /-
theorem frontier_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (ball x r) = sphere x r :=
by
rw [frontier, closure_ball x hr, is_open_ball.interior_eq]
ext x; exact (@eq_iff_le_not_lt ℝ _ _ _).symm
#align frontier_ball frontier_ball
+-/
+#print interior_closedBall /-
theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
interior (closedBall x r) = ball x r :=
by
@@ -167,21 +190,28 @@ theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0)
rw [mem_Icc, ← abs_le, ← Real.norm_eq_abs, ← mul_le_mul_right hr]
simpa [f, dist_eq_norm, norm_smul] using hc
#align interior_closed_ball interior_closedBall
+-/
+#print frontier_closedBall /-
theorem frontier_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (closedBall x r) = sphere x r := by
rw [frontier, closure_closed_ball, interior_closedBall x hr, closed_ball_diff_ball]
#align frontier_closed_ball frontier_closedBall
+-/
+#print interior_sphere /-
theorem interior_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
interior (sphere x r) = ∅ := by
rw [← frontier_closedBall x hr, interior_frontier is_closed_ball]
#align interior_sphere interior_sphere
+-/
+#print frontier_sphere /-
theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (sphere x r) = sphere x r := by
rw [is_closed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
#align frontier_sphere frontier_sphere
+-/
instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
DiscreteTopology <| AddSubgroup.zmultiples e :=
@@ -197,6 +227,7 @@ instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
Int.norm_eq_abs, ← Int.cast_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ←
@Int.cast_one ℝ _, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
+#print homeomorphUnitBall /-
/-- A (semi) normed real vector space is homeomorphic to the unit ball in the same space.
This homeomorphism sends `x : E` to `(1 + ‖x‖²)^(- ½) • x`.
@@ -236,11 +267,14 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
rw [Real.sqrt_ne_zero']
nlinarith [norm_nonneg (y : E), (mem_ball_zero_iff.1 y.2 : ‖(y : E)‖ < 1)]
#align homeomorph_unit_ball homeomorphUnitBall
+-/
+#print coe_homeomorphUnitBall_apply_zero /-
@[simp]
theorem coe_homeomorphUnitBall_apply_zero [NormedSpace ℝ E] :
(homeomorphUnitBall (0 : E) : E) = 0 := by simp [homeomorphUnitBall]
#align coe_homeomorph_unit_ball_apply_zero coe_homeomorphUnitBall_apply_zero
+-/
open NormedField
@@ -283,6 +317,7 @@ instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜
#align submodule.normed_space Submodule.normedSpace
-/
+#print rescale_to_shell_semi_normed_zpow /-
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
the rescaling element that shows up in applications. -/
@@ -309,7 +344,9 @@ theorem rescale_to_shell_semi_normed_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ}
div_eq_inv_mul]
exact mul_le_mul_of_nonneg_right hn.1 (norm_nonneg _)
#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpow
+-/
+#print rescale_to_shell_semi_normed /-
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
the rescaling element that shows up in applications. -/
@@ -318,6 +355,7 @@ theorem rescale_to_shell_semi_normed {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εp
let ⟨n, hn⟩ := rescale_to_shell_semi_normed_zpow hc εpos hx
⟨_, hn⟩
#align rescale_to_shell_semi_normed rescale_to_shell_semi_normed
+-/
end SeminormedAddCommGroup
@@ -368,6 +406,7 @@ section Surj
variable (E) [NormedSpace ℝ E] [Nontrivial E]
+#print exists_norm_eq /-
theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
by
rcases exists_ne (0 : E) with ⟨x, hx⟩
@@ -375,11 +414,14 @@ theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
use c • ‖x‖⁻¹ • x
simp [norm_smul, Real.norm_of_nonneg hc, hx]
#align exists_norm_eq exists_norm_eq
+-/
+#print range_norm /-
@[simp]
theorem range_norm : range (norm : E → ℝ) = Ici 0 :=
Subset.antisymm (range_subset_iff.2 norm_nonneg) fun _ => exists_norm_eq E
#align range_norm range_norm
+-/
#print nnnorm_surjective /-
theorem nnnorm_surjective : Surjective (nnnorm : E → ℝ≥0) := fun c =>
@@ -396,12 +438,14 @@ theorem range_nnnorm : range (nnnorm : E → ℝ≥0) = univ :=
end Surj
+#print Real.punctured_nhds_module_neBot /-
/-- If `E` is a nontrivial topological module over `ℝ`, then `E` has no isolated points.
This is a particular case of `module.punctured_nhds_ne_bot`. -/
instance Real.punctured_nhds_module_neBot {E : Type _} [AddCommGroup E] [TopologicalSpace E]
[ContinuousAdd E] [Nontrivial E] [Module ℝ E] [ContinuousSMul ℝ E] (x : E) : NeBot (𝓝[≠] x) :=
Module.punctured_nhds_neBot ℝ E x
#align real.punctured_nhds_module_ne_bot Real.punctured_nhds_module_neBot
+-/
#print interior_closedBall' /-
theorem interior_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
@@ -437,11 +481,14 @@ theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
variable {α}
+#print rescale_to_shell_zpow /-
theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
rescale_to_shell_semi_normed_zpow hc εpos (mt norm_eq_zero.1 hx)
#align rescale_to_shell_zpow rescale_to_shell_zpow
+-/
+#print rescale_to_shell /-
/-- If there is a scalar `c` with `‖c‖>1`, then any element can be moved by scalar multiplication to
any shell of width `‖c‖`. Also recap information on the norm of the rescaling element that shows
up in applications. -/
@@ -449,6 +496,7 @@ theorem rescale_to_shell {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε)
∃ d : α, d ≠ 0 ∧ ‖d • x‖ < ε ∧ ε / ‖c‖ ≤ ‖d • x‖ ∧ ‖d‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
rescale_to_shell_semi_normed hc εpos (mt norm_eq_zero.1 hx)
#align rescale_to_shell rescale_to_shell
+-/
end NormedAddCommGroup
@@ -457,8 +505,7 @@ section NontriviallyNormedSpace
variable (𝕜 E : Type _) [NontriviallyNormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
[Nontrivial E]
-include 𝕜
-
+#print NormedSpace.exists_lt_norm /-
/-- If `E` is a nontrivial normed space over a nontrivially normed field `𝕜`, then `E` is unbounded:
for any `c : ℝ`, there exists a vector `x : E` with norm strictly greater than `c`. -/
theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ :=
@@ -469,19 +516,24 @@ theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ :=
rwa [norm_smul, ← div_lt_iff]
rwa [norm_pos_iff]
#align normed_space.exists_lt_norm NormedSpace.exists_lt_norm
+-/
+#print NormedSpace.unbounded_univ /-
protected theorem NormedSpace.unbounded_univ : ¬Bounded (univ : Set E) := fun h =>
let ⟨R, hR⟩ := bounded_iff_forall_norm_le.1 h
let ⟨x, hx⟩ := NormedSpace.exists_lt_norm 𝕜 E R
hx.not_le (hR x trivial)
#align normed_space.unbounded_univ NormedSpace.unbounded_univ
+-/
+#print NormedSpace.noncompactSpace /-
/-- A normed vector space over a nontrivially normed field is a noncompact space. This cannot be
an instance because in order to apply it, Lean would have to search for `normed_space 𝕜 E` with
unknown `𝕜`. We register this as an instance in two cases: `𝕜 = E` and `𝕜 = ℝ`. -/
protected theorem NormedSpace.noncompactSpace : NoncompactSpace E :=
⟨fun h => NormedSpace.unbounded_univ 𝕜 _ h.Bounded⟩
#align normed_space.noncompact_space NormedSpace.noncompactSpace
+-/
#print NontriviallyNormedField.noncompactSpace /-
instance (priority := 100) NontriviallyNormedField.noncompactSpace : NoncompactSpace 𝕜 :=
@@ -489,8 +541,6 @@ instance (priority := 100) NontriviallyNormedField.noncompactSpace : NoncompactS
#align nontrivially_normed_field.noncompact_space NontriviallyNormedField.noncompactSpace
-/
-omit 𝕜
-
#print RealNormedSpace.noncompactSpace /-
instance (priority := 100) RealNormedSpace.noncompactSpace [NormedSpace ℝ E] : NoncompactSpace E :=
NormedSpace.noncompactSpace ℝ E
@@ -543,50 +593,64 @@ instance (priority := 100) NormedAlgebra.toNormedSpace' {𝕜'} [NormedRing 𝕜
#align normed_algebra.to_normed_space' NormedAlgebra.toNormedSpace'
-/
+#print norm_algebraMap /-
theorem norm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ * ‖(1 : 𝕜')‖ :=
by
rw [Algebra.algebraMap_eq_smul_one]
exact norm_smul _ _
#align norm_algebra_map norm_algebraMap
+-/
+#print nnnorm_algebraMap /-
theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ * ‖(1 : 𝕜')‖₊ :=
Subtype.ext <| norm_algebraMap 𝕜' x
#align nnnorm_algebra_map nnnorm_algebraMap
+-/
+#print norm_algebraMap' /-
@[simp]
theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
rw [norm_algebraMap, norm_one, mul_one]
#align norm_algebra_map' norm_algebraMap'
+-/
+#print nnnorm_algebraMap' /-
@[simp]
theorem nnnorm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
Subtype.ext <| norm_algebraMap' _ _
#align nnnorm_algebra_map' nnnorm_algebraMap'
+-/
section NNReal
variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
+#print norm_algebraMap_nNReal /-
@[simp]
theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
(norm_algebraMap' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.Prop
#align norm_algebra_map_nnreal norm_algebraMap_nNReal
+-/
+#print nnnorm_algebraMap_nNReal /-
@[simp]
theorem nnnorm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
Subtype.ext <| norm_algebraMap_nNReal 𝕜' x
#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nNReal
+-/
end NNReal
variable (𝕜 𝕜')
+#print algebraMap_isometry /-
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') :=
by
refine' Isometry.of_dist_eq fun x y => _
rw [dist_eq_norm, dist_eq_norm, ← RingHom.map_sub, norm_algebraMap']
#align algebra_map_isometry algebraMap_isometry
+-/
#print NormedAlgebra.id /-
instance NormedAlgebra.id : NormedAlgebra 𝕜 𝕜 :=
@@ -594,6 +658,7 @@ instance NormedAlgebra.id : NormedAlgebra 𝕜 𝕜 :=
#align normed_algebra.id NormedAlgebra.id
-/
+#print normedAlgebraRat /-
/-- Any normed characteristic-zero division ring that is a normed_algebra over the reals is also a
normed algebra over the rationals.
@@ -604,10 +669,13 @@ instance normedAlgebraRat {𝕜} [NormedDivisionRing 𝕜] [CharZero 𝕜] [Norm
where norm_smul_le q x := by
rw [← smul_one_smul ℝ q x, Rat.smul_one_eq_coe, norm_smul, Rat.norm_cast_real]
#align normed_algebra_rat normedAlgebraRat
+-/
+#print PUnit.normedAlgebra /-
instance PUnit.normedAlgebra : NormedAlgebra 𝕜 PUnit
where norm_smul_le q x := by simp only [PUnit.norm_eq_zero, MulZeroClass.mul_zero]
#align punit.normed_algebra PUnit.normedAlgebra
+-/
instance : NormedAlgebra 𝕜 (ULift 𝕜') :=
{ ULift.normedSpace with }
@@ -637,6 +705,7 @@ instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebr
end NormedAlgebra
+#print NormedAlgebra.induced /-
/-- A non-unital algebra homomorphism from an `algebra` to a `normed_algebra` induces a
`normed_algebra` structure on the domain, using the `semi_normed_ring.induced` norm.
@@ -647,11 +716,14 @@ def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Rin
@NormedAlgebra α β _ (SeminormedRing.induced β γ f)
where norm_smul_le a b := by unfold norm; exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_algebra.induced NormedAlgebra.induced
+-/
+#print Subalgebra.toNormedAlgebra /-
instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SeminormedRing A] [NormedField 𝕜]
[NormedAlgebra 𝕜 A] (S : Subalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.Algebra _ _ _ S.val
#align subalgebra.to_normed_algebra Subalgebra.toNormedAlgebra
+-/
section RestrictScalars
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -51,7 +51,7 @@ Note that since this requires `seminormed_add_comm_group` and not `normed_add_co
typeclass can be used for "semi normed spaces" too, just as `module` can be used for
"semi modules". -/
class NormedSpace (α : Type _) (β : Type _) [NormedField α] [SeminormedAddCommGroup β] extends
- Module α β where
+ Module α β where
norm_smul_le : ∀ (a : α) (b : β), ‖a • b‖ ≤ ‖a‖ * ‖b‖
#align normed_space NormedSpace
-/
@@ -134,7 +134,7 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
· rintro c ⟨hc0, hc1⟩
rw [mem_ball, dist_eq_norm, add_sub_cancel, norm_smul, Real.norm_eq_abs, abs_of_nonneg hc0,
mul_comm, ← mul_one r]
- rw [mem_closed_ball, dist_eq_norm] at hy
+ rw [mem_closed_ball, dist_eq_norm] at hy
replace hr : 0 < r; exact ((norm_nonneg _).trans hy).lt_of_ne hr.symm
apply mul_lt_mul' <;> assumption
#align closure_ball closure_ball
@@ -371,7 +371,7 @@ variable (E) [NormedSpace ℝ E] [Nontrivial E]
theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
by
rcases exists_ne (0 : E) with ⟨x, hx⟩
- rw [← norm_ne_zero_iff] at hx
+ rw [← norm_ne_zero_iff] at hx
use c • ‖x‖⁻¹ • x
simp [norm_smul, Real.norm_of_nonneg hc, hx]
#align exists_norm_eq exists_norm_eq
@@ -512,7 +512,7 @@ variables [normed_module 𝕜 𝕜'] [smul_comm_class 𝕜 𝕜' 𝕜'] [is_scal
```
-/
class NormedAlgebra (𝕜 : Type _) (𝕜' : Type _) [NormedField 𝕜] [SeminormedRing 𝕜'] extends
- Algebra 𝕜 𝕜' where
+ Algebra 𝕜 𝕜' where
norm_smul_le : ∀ (r : 𝕜) (x : 𝕜'), ‖r • x‖ ≤ ‖r‖ * ‖x‖
#align normed_algebra NormedAlgebra
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -30,7 +30,7 @@ variable {α : Type _} {β : Type _} {γ : Type _} {ι : Type _}
open Filter Metric Function Set
-open Topology BigOperators NNReal ENNReal uniformity
+open scoped Topology BigOperators NNReal ENNReal uniformity
section SeminormedAddCommGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -60,12 +60,6 @@ end Prio
variable [NormedField α] [SeminormedAddCommGroup β]
-/- warning: normed_space.has_bounded_smul -> NormedSpace.boundedSMul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2], BoundedSMul.{u1, u2} α β (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (SeminormedAddGroup.toAddGroup.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)))))) (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3)))))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2], BoundedSMul.{u1, u2} α β (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSeminormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2) (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α β (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align normed_space.has_bounded_smul NormedSpace.boundedSMulₓ'. -/
-- see Note [lower instance priority]
instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β :=
BoundedSMul.of_norm_smul_le NormedSpace.norm_smul_le
@@ -80,56 +74,26 @@ instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b :=
#align normed_field.to_normed_space NormedField.toNormedSpace
-/
-/- warning: normed_field.to_has_bounded_smul -> NormedField.to_boundedSMul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α], BoundedSMul.{u1, u1} α α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (Mul.toSMul.{u1} α (Distrib.toHasMul.{u1} α (Ring.toDistrib.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α], BoundedSMul.{u1, u1} α α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSeminormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSeminormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (Algebra.toSMul.{u1, u1} α α (Semifield.toCommSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))) (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))) (Algebra.id.{u1} α (Semifield.toCommSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align normed_field.to_has_bounded_smul NormedField.to_boundedSMulₓ'. -/
-- shortcut instance
instance NormedField.to_boundedSMul : BoundedSMul α α :=
NormedSpace.boundedSMul
#align normed_field.to_has_bounded_smul NormedField.to_boundedSMul
-/- warning: norm_zsmul -> norm_zsmul is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (α : Type.{u2}) [_inst_3 : NormedField.{u2} α] [_inst_4 : NormedSpace.{u2, u1} α β _inst_3 _inst_2] (n : Int) (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) (SMul.smul.{0, u1} Int β (SubNegMonoid.SMulInt.{u1} β (AddGroup.toSubNegMonoid.{u1} β (SeminormedAddGroup.toAddGroup.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)))) n x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u2} α (NormedField.toHasNorm.{u2} α _inst_3) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int α (HasLiftT.mk.{1, succ u2} Int α (CoeTCₓ.coe.{1, succ u2} Int α (Int.castCoe.{u2} α (AddGroupWithOne.toHasIntCast.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_3))))))))) n)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) x))
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (α : Type.{u2}) [_inst_3 : NormedField.{u2} α] [_inst_4 : NormedSpace.{u2, u1} α β _inst_3 _inst_2] (n : Int) (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{0, u1, u1} Int β β (instHSMul.{0, u1} Int β (SubNegMonoid.SMulInt.{u1} β (AddGroup.toSubNegMonoid.{u1} β (SeminormedAddGroup.toAddGroup.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2))))) n x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_3) (Int.cast.{u2} α (Ring.toIntCast.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_3)))) n)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x))
-Case conversion may be inaccurate. Consider using '#align norm_zsmul norm_zsmulₓ'. -/
theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
-/- warning: abs_norm -> abs_norm is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)
-Case conversion may be inaccurate. Consider using '#align abs_norm abs_normₓ'. -/
@[simp]
theorem abs_norm (z : β) : |‖z‖| = ‖z‖ :=
abs_of_nonneg <| norm_nonneg z
#align abs_norm abs_norm
-/- warning: inv_norm_smul_mem_closed_unit_ball -> inv_norm_smul_mem_closed_unit_ball is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] (x : β), Membership.Mem.{u1, u1} β (Set.{u1} β) (Set.hasMem.{u1} β) (SMul.smul.{0, u1} Real β (SMulZeroClass.toHasSmul.{0, u1} Real β (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real β (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (Module.toMulActionWithZero.{0, u1} Real β (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3))))) (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) x)) x) (Metric.closedBall.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2) (OfNat.ofNat.{u1} β 0 (OfNat.mk.{u1} β 0 (Zero.zero.{u1} β (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (SubNegMonoid.toAddMonoid.{u1} β (AddGroup.toSubNegMonoid.{u1} β (SeminormedAddGroup.toAddGroup.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] (x : β), Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (HSMul.hSMul.{0, u1, u1} Real β β (instHSMul.{0, u1} Real β (SMulZeroClass.toSMul.{0, u1} Real β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real β Real.instZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real β Real.semiring (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3)))))) (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x)) x) (Metric.closedBall.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ballₓ'. -/
theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
‖x‖⁻¹ • x ∈ closedBall (0 : β) 1 := by
simp only [mem_closedBall_zero_iff, norm_smul, norm_inv, norm_norm, ← div_eq_inv_mul,
div_self_le_one]
#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ball
-/- warning: norm_smul_of_nonneg -> norm_smul_of_nonneg is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] {t : Real}, (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) t) -> (forall (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) (SMul.smul.{0, u1} Real β (SMulZeroClass.toHasSmul.{0, u1} Real β (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real β (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (Module.toMulActionWithZero.{0, u1} Real β (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3))))) t x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) x)))
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] {t : Real}, (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) t) -> (forall (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{0, u1, u1} Real β β (instHSMul.{0, u1} Real β (SMulZeroClass.toSMul.{0, u1} Real β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real β Real.instZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real β Real.semiring (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3)))))) t x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x)))
-Case conversion may be inaccurate. Consider using '#align norm_smul_of_nonneg norm_smul_of_nonnegₓ'. -/
theorem norm_smul_of_nonneg [NormedSpace ℝ β] {t : ℝ} (ht : 0 ≤ t) (x : β) : ‖t • x‖ = t * ‖x‖ := by
rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg ht]
#align norm_smul_of_nonneg norm_smul_of_nonneg
@@ -138,9 +102,6 @@ variable {E : Type _} [SeminormedAddCommGroup E] [NormedSpace α E]
variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace α F]
-/- warning: eventually_nhds_norm_smul_sub_lt -> eventually_nhds_norm_smul_sub_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_ltₓ'. -/
theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
have : Tendsto (fun y => ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
@@ -148,18 +109,12 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
this.Eventually (gt_mem_nhds h)
#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_lt
-/- warning: filter.tendsto.zero_smul_is_bounded_under_le -> Filter.Tendsto.zero_smul_isBoundedUnder_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
hf.op_zero_isBoundedUnder_le hg (· • ·) norm_smul_le
#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_le
-/- warning: filter.is_bounded_under.smul_tendsto_zero -> Filter.IsBoundedUnder.smul_tendsto_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
@@ -167,12 +122,6 @@ theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {
(norm_smul_le y x).trans_eq (mul_comm _ _)
#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zero
-/- warning: closure_ball -> closure_ball is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (closure.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (closure.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-Case conversion may be inaccurate. Consider using '#align closure_ball closure_ballₓ'. -/
theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
closure (ball x r) = closedBall x r :=
by
@@ -190,12 +139,6 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
apply mul_lt_mul' <;> assumption
#align closure_ball closure_ball
-/- warning: frontier_ball -> frontier_ball is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-Case conversion may be inaccurate. Consider using '#align frontier_ball frontier_ballₓ'. -/
theorem frontier_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (ball x r) = sphere x r :=
by
@@ -203,12 +146,6 @@ theorem frontier_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
ext x; exact (@eq_iff_le_not_lt ℝ _ _ _).symm
#align frontier_ball frontier_ball
-/- warning: interior_closed_ball -> interior_closedBall is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-Case conversion may be inaccurate. Consider using '#align interior_closed_ball interior_closedBallₓ'. -/
theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
interior (closedBall x r) = ball x r :=
by
@@ -231,34 +168,16 @@ theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0)
simpa [f, dist_eq_norm, norm_smul] using hc
#align interior_closed_ball interior_closedBall
-/- warning: frontier_closed_ball -> frontier_closedBall is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-Case conversion may be inaccurate. Consider using '#align frontier_closed_ball frontier_closedBallₓ'. -/
theorem frontier_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (closedBall x r) = sphere x r := by
rw [frontier, closure_closed_ball, interior_closedBall x hr, closed_ball_diff_ball]
#align frontier_closed_ball frontier_closedBall
-/- warning: interior_sphere -> interior_sphere is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (EmptyCollection.emptyCollection.{u1} (Set.{u1} E) (Set.hasEmptyc.{u1} E)))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (EmptyCollection.emptyCollection.{u1} (Set.{u1} E) (Set.instEmptyCollectionSet.{u1} E)))
-Case conversion may be inaccurate. Consider using '#align interior_sphere interior_sphereₓ'. -/
theorem interior_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
interior (sphere x r) = ∅ := by
rw [← frontier_closedBall x hr, interior_frontier is_closed_ball]
#align interior_sphere interior_sphere
-/- warning: frontier_sphere -> frontier_sphere is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
-Case conversion may be inaccurate. Consider using '#align frontier_sphere frontier_sphereₓ'. -/
theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (sphere x r) = sphere x r := by
rw [is_closed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
@@ -278,12 +197,6 @@ instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
Int.norm_eq_abs, ← Int.cast_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ←
@Int.cast_one ℝ _, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
-/- warning: homeomorph_unit_ball -> homeomorphUnitBall is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Homeomorph.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))
-Case conversion may be inaccurate. Consider using '#align homeomorph_unit_ball homeomorphUnitBallₓ'. -/
/-- A (semi) normed real vector space is homeomorphic to the unit ball in the same space.
This homeomorphism sends `x : E` to `(1 + ‖x‖²)^(- ½) • x`.
@@ -324,9 +237,6 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
nlinarith [norm_nonneg (y : E), (mem_ball_zero_iff.1 y.2 : ‖(y : E)‖ < 1)]
#align homeomorph_unit_ball homeomorphUnitBall
-/- warning: coe_homeomorph_unit_ball_apply_zero -> coe_homeomorphUnitBall_apply_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align coe_homeomorph_unit_ball_apply_zero coe_homeomorphUnitBall_apply_zeroₓ'. -/
@[simp]
theorem coe_homeomorphUnitBall_apply_zero [NormedSpace ℝ E] :
(homeomorphUnitBall (0 : E) : E) = 0 := by simp [homeomorphUnitBall]
@@ -373,9 +283,6 @@ instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜
#align submodule.normed_space Submodule.normedSpace
-/
-/- warning: rescale_to_shell_semi_normed_zpow -> rescale_to_shell_semi_normed_zpow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpowₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
the rescaling element that shows up in applications. -/
@@ -403,9 +310,6 @@ theorem rescale_to_shell_semi_normed_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ}
exact mul_le_mul_of_nonneg_right hn.1 (norm_nonneg _)
#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpow
-/- warning: rescale_to_shell_semi_normed -> rescale_to_shell_semi_normed is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align rescale_to_shell_semi_normed rescale_to_shell_semi_normedₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
the rescaling element that shows up in applications. -/
@@ -464,12 +368,6 @@ section Surj
variable (E) [NormedSpace ℝ E] [Nontrivial E]
-/- warning: exists_norm_eq -> exists_norm_eq is a dubious translation:
-lean 3 declaration is
- forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E] {c : Real}, (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) c) -> (Exists.{succ u1} E (fun (x : E) => Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) c))
-but is expected to have type
- forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E] {c : Real}, (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) c) -> (Exists.{succ u1} E (fun (x : E) => Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) c))
-Case conversion may be inaccurate. Consider using '#align exists_norm_eq exists_norm_eqₓ'. -/
theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
by
rcases exists_ne (0 : E) with ⟨x, hx⟩
@@ -478,12 +376,6 @@ theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
simp [norm_smul, Real.norm_of_nonneg hc, hx]
#align exists_norm_eq exists_norm_eq
-/- warning: range_norm -> range_norm is a dubious translation:
-lean 3 declaration is
- forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E], Eq.{1} (Set.{0} Real) (Set.range.{0, succ u1} Real E (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2))) (Set.Ici.{0} Real Real.preorder (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
-but is expected to have type
- forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E], Eq.{1} (Set.{0} Real) (Set.range.{0, succ u1} Real E (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2))) (Set.Ici.{0} Real Real.instPreorderReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
-Case conversion may be inaccurate. Consider using '#align range_norm range_normₓ'. -/
@[simp]
theorem range_norm : range (norm : E → ℝ) = Ici 0 :=
Subset.antisymm (range_subset_iff.2 norm_nonneg) fun _ => exists_norm_eq E
@@ -504,12 +396,6 @@ theorem range_nnnorm : range (nnnorm : E → ℝ≥0) = univ :=
end Surj
-/- warning: real.punctured_nhds_module_ne_bot -> Real.punctured_nhds_module_neBot is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_6 : AddCommGroup.{u1} E] [_inst_7 : TopologicalSpace.{u1} E] [_inst_8 : ContinuousAdd.{u1} E _inst_7 (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_6)))))] [_inst_9 : Nontrivial.{u1} E] [_inst_10 : Module.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)] [_inst_11 : ContinuousSMul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real Real.semiring)))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real Real.semiring) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6) _inst_10)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) _inst_7] (x : E), Filter.NeBot.{u1} E (nhdsWithin.{u1} E _inst_7 x (HasCompl.compl.{u1} (Set.{u1} E) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} E) (Set.booleanAlgebra.{u1} E)) (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.hasSingleton.{u1} E) x)))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_6 : AddCommGroup.{u1} E] [_inst_7 : TopologicalSpace.{u1} E] [_inst_8 : ContinuousAdd.{u1} E _inst_7 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_6)))))] [_inst_9 : Nontrivial.{u1} E] [_inst_10 : Module.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)] [_inst_11 : ContinuousSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_6))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_6))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_6))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6) _inst_10)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) _inst_7] (x : E), Filter.NeBot.{u1} E (nhdsWithin.{u1} E _inst_7 x (HasCompl.compl.{u1} (Set.{u1} E) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} E) (Set.instBooleanAlgebraSet.{u1} E)) (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) x)))
-Case conversion may be inaccurate. Consider using '#align real.punctured_nhds_module_ne_bot Real.punctured_nhds_module_neBotₓ'. -/
/-- If `E` is a nontrivial topological module over `ℝ`, then `E` has no isolated points.
This is a particular case of `module.punctured_nhds_ne_bot`. -/
instance Real.punctured_nhds_module_neBot {E : Type _} [AddCommGroup E] [TopologicalSpace E]
@@ -551,17 +437,11 @@ theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
variable {α}
-/- warning: rescale_to_shell_zpow -> rescale_to_shell_zpow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align rescale_to_shell_zpow rescale_to_shell_zpowₓ'. -/
theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
rescale_to_shell_semi_normed_zpow hc εpos (mt norm_eq_zero.1 hx)
#align rescale_to_shell_zpow rescale_to_shell_zpow
-/- warning: rescale_to_shell -> rescale_to_shell is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align rescale_to_shell rescale_to_shellₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element can be moved by scalar multiplication to
any shell of width `‖c‖`. Also recap information on the norm of the rescaling element that shows
up in applications. -/
@@ -579,12 +459,6 @@ variable (𝕜 E : Type _) [NontriviallyNormedField 𝕜] [NormedAddCommGroup E]
include 𝕜
-/- warning: normed_space.exists_lt_norm -> NormedSpace.exists_lt_norm is a dubious translation:
-lean 3 declaration is
- forall (𝕜 : Type.{u1}) (E : Type.{u2}) [_inst_1 : NontriviallyNormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NontriviallyNormedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : Nontrivial.{u2} E] (c : Real), Exists.{succ u2} E (fun (x : E) => LT.lt.{0} Real Real.hasLt c (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) x))
-but is expected to have type
- forall (𝕜 : Type.{u2}) (E : Type.{u1}) [_inst_1 : NontriviallyNormedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NontriviallyNormedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : Nontrivial.{u1} E] (c : Real), Exists.{succ u1} E (fun (x : E) => LT.lt.{0} Real Real.instLTReal c (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x))
-Case conversion may be inaccurate. Consider using '#align normed_space.exists_lt_norm NormedSpace.exists_lt_normₓ'. -/
/-- If `E` is a nontrivial normed space over a nontrivially normed field `𝕜`, then `E` is unbounded:
for any `c : ℝ`, there exists a vector `x : E` with norm strictly greater than `c`. -/
theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ :=
@@ -596,24 +470,12 @@ theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ :=
rwa [norm_pos_iff]
#align normed_space.exists_lt_norm NormedSpace.exists_lt_norm
-/- warning: normed_space.unbounded_univ -> NormedSpace.unbounded_univ is a dubious translation:
-lean 3 declaration is
- forall (𝕜 : Type.{u1}) (E : Type.{u2}) [_inst_1 : NontriviallyNormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NontriviallyNormedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : Nontrivial.{u2} E], Not (Metric.Bounded.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) (Set.univ.{u2} E))
-but is expected to have type
- forall (𝕜 : Type.{u2}) (E : Type.{u1}) [_inst_1 : NontriviallyNormedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NontriviallyNormedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : Nontrivial.{u1} E], Not (Metric.Bounded.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) (Set.univ.{u1} E))
-Case conversion may be inaccurate. Consider using '#align normed_space.unbounded_univ NormedSpace.unbounded_univₓ'. -/
protected theorem NormedSpace.unbounded_univ : ¬Bounded (univ : Set E) := fun h =>
let ⟨R, hR⟩ := bounded_iff_forall_norm_le.1 h
let ⟨x, hx⟩ := NormedSpace.exists_lt_norm 𝕜 E R
hx.not_le (hR x trivial)
#align normed_space.unbounded_univ NormedSpace.unbounded_univ
-/- warning: normed_space.noncompact_space -> NormedSpace.noncompactSpace is a dubious translation:
-lean 3 declaration is
- forall (𝕜 : Type.{u1}) (E : Type.{u2}) [_inst_1 : NontriviallyNormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NontriviallyNormedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : Nontrivial.{u2} E], NoncompactSpace.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))))
-but is expected to have type
- forall (𝕜 : Type.{u2}) (E : Type.{u1}) [_inst_1 : NontriviallyNormedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NontriviallyNormedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : Nontrivial.{u1} E], NoncompactSpace.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))))
-Case conversion may be inaccurate. Consider using '#align normed_space.noncompact_space NormedSpace.noncompactSpaceₓ'. -/
/-- A normed vector space over a nontrivially normed field is a noncompact space. This cannot be
an instance because in order to apply it, Lean would have to search for `normed_space 𝕜 E` with
unknown `𝕜`. We register this as an instance in two cases: `𝕜 = E` and `𝕜 = ℝ`. -/
@@ -681,45 +543,21 @@ instance (priority := 100) NormedAlgebra.toNormedSpace' {𝕜'} [NormedRing 𝕜
#align normed_algebra.to_normed_space' NormedAlgebra.toNormedSpace'
-/
-/- warning: norm_algebra_map -> norm_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
-but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align norm_algebra_map norm_algebraMapₓ'. -/
theorem norm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ * ‖(1 : 𝕜')‖ :=
by
rw [Algebra.algebraMap_eq_smul_one]
exact norm_smul _ _
#align norm_algebra_map norm_algebraMap
-/- warning: nnnorm_algebra_map -> nnnorm_algebraMap is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
-but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map nnnorm_algebraMapₓ'. -/
theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ * ‖(1 : 𝕜')‖₊ :=
Subtype.ext <| norm_algebraMap 𝕜' x
#align nnnorm_algebra_map nnnorm_algebraMap
-/- warning: norm_algebra_map' -> norm_algebraMap' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x)
-but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x)
-Case conversion may be inaccurate. Consider using '#align norm_algebra_map' norm_algebraMap'ₓ'. -/
@[simp]
theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
rw [norm_algebraMap, norm_one, mul_one]
#align norm_algebra_map' norm_algebraMap'
-/- warning: nnnorm_algebra_map' -> nnnorm_algebraMap' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
-but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
-Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map' nnnorm_algebraMap'ₓ'. -/
@[simp]
theorem nnnorm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
Subtype.ext <| norm_algebraMap' _ _
@@ -729,23 +567,11 @@ section NNReal
variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
-/- warning: norm_algebra_map_nnreal -> norm_algebraMap_nNReal is a dubious translation:
-lean 3 declaration is
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) x)
-but is expected to have type
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedRing.toNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) _inst_2) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) (NNReal.toReal x)
-Case conversion may be inaccurate. Consider using '#align norm_algebra_map_nnreal norm_algebraMap_nNRealₓ'. -/
@[simp]
theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
(norm_algebraMap' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.Prop
#align norm_algebra_map_nnreal norm_algebraMap_nNReal
-/- warning: nnnorm_algebra_map_nnreal -> nnnorm_algebraMap_nNReal is a dubious translation:
-lean 3 declaration is
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} 𝕜' (SeminormedAddGroup.toNNNorm.{u1} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u1} 𝕜' _inst_2)))) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
-but is expected to have type
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) _inst_2)))) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
-Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nNRealₓ'. -/
@[simp]
theorem nnnorm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
Subtype.ext <| norm_algebraMap_nNReal 𝕜' x
@@ -755,12 +581,6 @@ end NNReal
variable (𝕜 𝕜')
-/- warning: algebra_map_isometry -> algebraMap_isometry is a dubious translation:
-lean 3 declaration is
- forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))], Isometry.{u1, u2} 𝕜 𝕜' (PseudoMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (SeminormedRing.toPseudoMetricSpace.{u1} 𝕜 (SeminormedCommRing.toSemiNormedRing.{u1} 𝕜 (NormedCommRing.toSeminormedCommRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
-but is expected to have type
- forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))], Isometry.{u1, u2} 𝕜 𝕜' (EMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (MetricSpace.toEMetricSpace.{u1} 𝕜 (NormedField.toMetricSpace.{u1} 𝕜 _inst_1))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
-Case conversion may be inaccurate. Consider using '#align algebra_map_isometry algebraMap_isometryₓ'. -/
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') :=
by
@@ -774,12 +594,6 @@ instance NormedAlgebra.id : NormedAlgebra 𝕜 𝕜 :=
#align normed_algebra.id NormedAlgebra.id
-/
-/- warning: normed_algebra_rat -> normedAlgebraRat is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} [_inst_4 : NormedDivisionRing.{u1} 𝕜] [_inst_5 : CharZero.{u1} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜 (Ring.toAddCommGroupWithOne.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4)))))] [_inst_6 : NormedAlgebra.{0, u1} Real 𝕜 Real.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))], NormedAlgebra.{0, u1} Rat 𝕜 Rat.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))
-but is expected to have type
- forall {𝕜 : Type.{u1}} [_inst_4 : NormedDivisionRing.{u1} 𝕜] [_inst_5 : CharZero.{u1} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜 (Ring.toAddGroupWithOne.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))))] [_inst_6 : NormedAlgebra.{0, u1} Real 𝕜 Real.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))], NormedAlgebra.{0, u1} Rat 𝕜 Rat.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))
-Case conversion may be inaccurate. Consider using '#align normed_algebra_rat normedAlgebraRatₓ'. -/
/-- Any normed characteristic-zero division ring that is a normed_algebra over the reals is also a
normed algebra over the rationals.
@@ -791,12 +605,6 @@ instance normedAlgebraRat {𝕜} [NormedDivisionRing 𝕜] [CharZero 𝕜] [Norm
rw [← smul_one_smul ℝ q x, Rat.smul_one_eq_coe, norm_smul, Rat.norm_cast_real]
#align normed_algebra_rat normedAlgebraRat
-/- warning: punit.normed_algebra -> PUnit.normedAlgebra is a dubious translation:
-lean 3 declaration is
- forall (𝕜 : Type.{u_5}) [_inst_1 : NormedField.{u_5} 𝕜], NormedAlgebra.{u_5, u_1} 𝕜 PUnit.{succ u_1} _inst_1 (SeminormedCommRing.toSemiNormedRing.{u_1} PUnit.{succ u_1} (NormedCommRing.toSeminormedCommRing.{u_1} PUnit.{succ u_1} PUnit.normedCommRing.{u_1}))
-but is expected to have type
- forall (𝕜 : Type.{u_1}) [_inst_1 : NormedField.{u_1} 𝕜], NormedAlgebra.{u_1, 0} 𝕜 PUnit.{1} _inst_1 (SeminormedCommRing.toSeminormedRing.{0} PUnit.{1} (NormedCommRing.toSeminormedCommRing.{0} PUnit.{1} PUnit.normedCommRing.{0}))
-Case conversion may be inaccurate. Consider using '#align punit.normed_algebra PUnit.normedAlgebraₓ'. -/
instance PUnit.normedAlgebra : NormedAlgebra 𝕜 PUnit
where norm_smul_le q x := by simp only [PUnit.norm_eq_zero, MulZeroClass.mul_zero]
#align punit.normed_algebra PUnit.normedAlgebra
@@ -829,12 +637,6 @@ instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebr
end NormedAlgebra
-/- warning: normed_algebra.induced -> NormedAlgebra.induced is a dubious translation:
-lean 3 declaration is
- forall {F : Type.{u1}} (α : Type.{u2}) (β : Type.{u3}) (γ : Type.{u4}) [_inst_1 : NormedField.{u2} α] [_inst_2 : Ring.{u3} β] [_inst_3 : Algebra.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2)] [_inst_4 : SeminormedRing.{u4} γ] [_inst_5 : NormedAlgebra.{u2, u4} α γ _inst_1 _inst_4] [_inst_6 : NonUnitalAlgHomClass.{u1, u2, u3, u4} F α β γ (Ring.toMonoid.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u3} α β (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toAddCommGroup.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (Module.toDistribMulAction.{u2, u4} α γ (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u4} γ (SeminormedAddCommGroup.toAddCommGroup.{u4} γ (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5)))] (f : F), NormedAlgebra.{u2, u3} α β _inst_1 (SeminormedRing.induced.{u1, u3, u4} F β γ _inst_2 _inst_4 (NonUnitalAlgHomClass.toNonUnitalRingHomClass.{u1, u2, u3, u4} F α β γ (Ring.toMonoid.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (Module.toDistribMulAction.{u2, u3} α β (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toAddCommGroup.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u4} α γ (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u4} γ (SeminormedAddCommGroup.toAddCommGroup.{u4} γ (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5))) _inst_6) f)
-but is expected to have type
- forall {F : Type.{u1}} (α : Type.{u2}) (β : Type.{u3}) (γ : Type.{u4}) [_inst_1 : NormedField.{u2} α] [_inst_2 : Ring.{u3} β] [_inst_3 : Algebra.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2)] [_inst_4 : SeminormedRing.{u4} γ] [_inst_5 : NormedAlgebra.{u2, u4} α γ _inst_1 _inst_4] [_inst_6 : NonUnitalAlgHomClass.{u1, u2, u3, u4} F α β γ (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u3} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (Module.toDistribMulAction.{u2, u4} α γ (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} γ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4))))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5)))] (f : F), NormedAlgebra.{u2, u3} α β _inst_1 (SeminormedRing.induced.{u1, u3, u4} F β γ _inst_2 _inst_4 (NonUnitalAlgHomClass.toNonUnitalRingHomClass.{u1, u2, u3, u4} F α β γ (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (Module.toDistribMulAction.{u2, u3} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u4} α γ (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} γ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4))))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5))) _inst_6) f)
-Case conversion may be inaccurate. Consider using '#align normed_algebra.induced NormedAlgebra.inducedₓ'. -/
/-- A non-unital algebra homomorphism from an `algebra` to a `normed_algebra` induces a
`normed_algebra` structure on the domain, using the `semi_normed_ring.induced` norm.
@@ -846,12 +648,6 @@ def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Rin
where norm_smul_le a b := by unfold norm; exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_algebra.induced NormedAlgebra.induced
-/- warning: subalgebra.to_normed_algebra -> Subalgebra.toNormedAlgebra is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {A : Type.{u2}} [_inst_1 : SeminormedRing.{u2} A] [_inst_2 : NormedField.{u1} 𝕜] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1] (S : Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)), NormedAlgebra.{u1, u2} 𝕜 (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.setLike.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3))) S) _inst_2 (SubringClass.toSeminormedRing.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.setLike.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) _inst_1 (Subalgebra.toNormedAlgebra._proof_1.{u1, u2} 𝕜 A _inst_1 _inst_2 _inst_3) S)
-but is expected to have type
- forall {𝕜 : Type.{u1}} {A : Type.{u2}} [_inst_1 : SeminormedRing.{u2} A] [_inst_2 : NormedField.{u1} 𝕜] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1] (S : Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)), NormedAlgebra.{u1, u2} 𝕜 (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3))) x S)) _inst_2 (SubringClass.toSeminormedRing.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) _inst_1 (Subalgebra.instSubringClassSubalgebraToCommSemiringToSemiringInstSetLikeSubalgebra.{u1, u2} 𝕜 A (EuclideanDomain.toCommRing.{u1} 𝕜 (Field.toEuclideanDomain.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (SeminormedRing.toRing.{u2} A _inst_1) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) S)
-Case conversion may be inaccurate. Consider using '#align subalgebra.to_normed_algebra Subalgebra.toNormedAlgebraₓ'. -/
instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SeminormedRing A] [NormedField 𝕜]
[NormedAlgebra 𝕜 A] (S : Subalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.Algebra _ _ _ S.val
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -186,8 +186,7 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
rw [mem_ball, dist_eq_norm, add_sub_cancel, norm_smul, Real.norm_eq_abs, abs_of_nonneg hc0,
mul_comm, ← mul_one r]
rw [mem_closed_ball, dist_eq_norm] at hy
- replace hr : 0 < r
- exact ((norm_nonneg _).trans hy).lt_of_ne hr.symm
+ replace hr : 0 < r; exact ((norm_nonneg _).trans hy).lt_of_ne hr.symm
apply mul_lt_mul' <;> assumption
#align closure_ball closure_ball
@@ -217,8 +216,7 @@ theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0)
· rw [closed_ball_eq_empty.2 hr, ball_eq_empty.2 hr.le, interior_empty]
refine' subset.antisymm _ ball_subset_interior_closed_ball
intro y hy
- rcases(mem_closed_ball.1 <| interior_subset hy).lt_or_eq with (hr | rfl)
- · exact hr
+ rcases(mem_closed_ball.1 <| interior_subset hy).lt_or_eq with (hr | rfl); · exact hr
set f : ℝ → E := fun c : ℝ => c • (y - x) + x
suffices f ⁻¹' closed_ball x (dist y x) ⊆ Icc (-1) 1
by
@@ -270,8 +268,7 @@ instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
DiscreteTopology <| AddSubgroup.zmultiples e :=
by
rcases eq_or_ne e 0 with (rfl | he)
- · rw [AddSubgroup.zmultiples_zero_eq_bot]
- infer_instance
+ · rw [AddSubgroup.zmultiples_zero_eq_bot]; infer_instance
· rw [discreteTopology_iff_open_singleton_zero, isOpen_induced_iff]
refine' ⟨Metric.ball 0 ‖e‖, Metric.isOpen_ball, _⟩
ext ⟨x, hx⟩
@@ -389,9 +386,7 @@ theorem rescale_to_shell_semi_normed_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ}
have xεpos : 0 < ‖x‖ / ε := div_pos ((Ne.symm hx).le_iff_lt.1 (norm_nonneg x)) εpos
rcases exists_mem_Ico_zpow xεpos hc with ⟨n, hn⟩
have cpos : 0 < ‖c‖ := lt_trans (zero_lt_one : (0 : ℝ) < 1) hc
- have cnpos : 0 < ‖c ^ (n + 1)‖ := by
- rw [norm_zpow]
- exact lt_trans xεpos hn.2
+ have cnpos : 0 < ‖c ^ (n + 1)‖ := by rw [norm_zpow]; exact lt_trans xεpos hn.2
refine' ⟨-(n + 1), _, _, _, _⟩
show c ^ (-(n + 1)) ≠ 0; exact zpow_ne_zero _ (norm_pos_iff.1 cpos)
show ‖c ^ (-(n + 1)) • x‖ < ε
@@ -431,9 +426,7 @@ See note [reducible non-instances] -/
def NormedSpace.induced {F : Type _} (α β γ : Type _) [NormedField α] [AddCommGroup β] [Module α β]
[SeminormedAddCommGroup γ] [NormedSpace α γ] [LinearMapClass F α β γ] (f : F) :
@NormedSpace α β _ (SeminormedAddCommGroup.induced β γ f)
- where norm_smul_le a b := by
- unfold norm
- exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
+ where norm_smul_le a b := by unfold norm; exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_space.induced NormedSpace.induced
-/
@@ -850,9 +843,7 @@ See note [reducible non-instances] -/
def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Ring β] [Algebra α β]
[SeminormedRing γ] [NormedAlgebra α γ] [NonUnitalAlgHomClass F α β γ] (f : F) :
@NormedAlgebra α β _ (SeminormedRing.induced β γ f)
- where norm_smul_le a b := by
- unfold norm
- exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
+ where norm_smul_le a b := by unfold norm; exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_algebra.induced NormedAlgebra.induced
/- warning: subalgebra.to_normed_algebra -> Subalgebra.toNormedAlgebra is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -139,10 +139,7 @@ variable {E : Type _} [SeminormedAddCommGroup E] [NormedSpace α E]
variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace α F]
/- warning: eventually_nhds_norm_smul_sub_lt -> eventually_nhds_norm_smul_sub_lt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] (c : α) (x : E) {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (Filter.Eventually.{u2} E (fun (y : E) => LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) c (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))) y x))) ε) (nhds.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) x))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] (c : α) (x : E) {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (Filter.Eventually.{u2} E (fun (y : E) => LT.lt.{0} Real Real.instLTReal (Norm.norm.{u2} E (SeminormedAddCommGroup.toNorm.{u2} E _inst_3) (HSMul.hSMul.{u1, u2, u2} α E E (instHSMul.{u1, u2} α E (SMulZeroClass.toSMul.{u1, u2} α E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α E (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)))))) (Module.toMulActionWithZero.{u1, u2} α E (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4)))))) c (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))) y x))) ε) (nhds.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_ltₓ'. -/
theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
@@ -152,10 +149,7 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_lt
/- warning: filter.tendsto.zero_smul_is_bounded_under_le -> Filter.Tendsto.zero_smul_isBoundedUnder_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.Tendsto.{u2, u1} ι α f l (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))))))))) -> (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u3, 1} ι E Real (Norm.norm.{u3} E (SeminormedAddCommGroup.toHasNorm.{u3} E _inst_3)) g)) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
-but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.612 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.614 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.612 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.614) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
@@ -164,10 +158,7 @@ theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E
#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_le
/- warning: filter.is_bounded_under.smul_tendsto_zero -> Filter.IsBoundedUnder.smul_tendsto_zero is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u1, 1} ι α Real (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1)) f)) -> (Filter.Tendsto.{u2, u3} ι E g l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3))))))))))) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
-but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.715 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.717 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.715 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.717) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
@@ -337,10 +328,7 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
#align homeomorph_unit_ball homeomorphUnitBall
/- warning: coe_homeomorph_unit_ball_apply_zero -> coe_homeomorphUnitBall_apply_zero is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Eq.{succ u1} E ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))))))) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) (fun (_x : Homeomorph.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) => E -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))) (Homeomorph.hasCoeToFun.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) (homeomorphUnitBall.{u1} E _inst_3 _inst_7) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))))) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3)))))))))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Eq.{succ u1} E (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) E (fun (_x : E) => Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))))) (homeomorphUnitBall.{u1} E _inst_3 _inst_7) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align coe_homeomorph_unit_ball_apply_zero coe_homeomorphUnitBall_apply_zeroₓ'. -/
@[simp]
theorem coe_homeomorphUnitBall_apply_zero [NormedSpace ℝ E] :
@@ -389,10 +377,7 @@ instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜
-/
/- warning: rescale_to_shell_semi_normed_zpow -> rescale_to_shell_semi_normed_zpow is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u1} α (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x)))))))))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u2} α (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpowₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
@@ -424,10 +409,7 @@ theorem rescale_to_shell_semi_normed_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ}
#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpow
/- warning: rescale_to_shell_semi_normed -> rescale_to_shell_semi_normed is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Exists.{succ u1} α (fun (d : α) => And (Ne.{succ u1} α d (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) d x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) d x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x)))))))))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Exists.{succ u2} α (fun (d : α) => And (Ne.{succ u2} α d (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) d x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) d x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align rescale_to_shell_semi_normed rescale_to_shell_semi_normedₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
@@ -577,10 +559,7 @@ theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
variable {α}
/- warning: rescale_to_shell_zpow -> rescale_to_shell_zpow is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{succ u2} E x (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2)))))))))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u1} α (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) x)))))))))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2))))))))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u2} α (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align rescale_to_shell_zpow rescale_to_shell_zpowₓ'. -/
theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
@@ -588,10 +567,7 @@ theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0
#align rescale_to_shell_zpow rescale_to_shell_zpow
/- warning: rescale_to_shell -> rescale_to_shell is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{succ u2} E x (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2)))))))))) -> (Exists.{succ u1} α (fun (d : α) => And (Ne.{succ u1} α d (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) d x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) d x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) x)))))))))
-but is expected to have type
- forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2))))))))) -> (Exists.{succ u2} α (fun (d : α) => And (Ne.{succ u2} α d (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) d x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) d x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align rescale_to_shell rescale_to_shellₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element can be moved by scalar multiplication to
any shell of width `‖c‖`. Also recap information on the norm of the rescaling element that shows
mathlib commit https://github.com/leanprover-community/mathlib/commit/ef95945cd48c932c9e034872bd25c3c220d9c946
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit ba5ff5ad5d120fb0ef094ad2994967e9bfaf5112
+! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -30,7 +30,7 @@ variable {α : Type _} {β : Type _} {γ : Type _} {ι : Type _}
open Filter Metric Function Set
-open Topology BigOperators NNReal ENNReal uniformity Pointwise
+open Topology BigOperators NNReal ENNReal uniformity
section SeminormedAddCommGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -80,6 +80,12 @@ instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b :=
#align normed_field.to_normed_space NormedField.toNormedSpace
-/
+/- warning: normed_field.to_has_bounded_smul -> NormedField.to_boundedSMul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α], BoundedSMul.{u1, u1} α α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (Mul.toSMul.{u1} α (Distrib.toHasMul.{u1} α (Ring.toDistrib.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α], BoundedSMul.{u1, u1} α α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSeminormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSeminormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (Algebra.toSMul.{u1, u1} α α (Semifield.toCommSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))) (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))) (Algebra.id.{u1} α (Semifield.toCommSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align normed_field.to_has_bounded_smul NormedField.to_boundedSMulₓ'. -/
-- shortcut instance
instance NormedField.to_boundedSMul : BoundedSMul α α :=
NormedSpace.boundedSMul
@@ -149,7 +155,7 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.Tendsto.{u2, u1} ι α f l (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))))))))) -> (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u3, 1} ι E Real (Norm.norm.{u3} E (SeminormedAddCommGroup.toHasNorm.{u3} E _inst_3)) g)) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1280 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1282 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1280 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1282) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.612 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.614 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.612 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.614) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
@@ -161,7 +167,7 @@ theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u1, 1} ι α Real (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1)) f)) -> (Filter.Tendsto.{u2, u3} ι E g l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3))))))))))) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1383 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1385 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1383 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1385) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.715 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.717 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.715 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.717) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -4,13 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit f9dd3204df14a0749cd456fac1e6849dfe7d2b88
+! leanprover-community/mathlib commit ba5ff5ad5d120fb0ef094ad2994967e9bfaf5112
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathbin.Algebra.Algebra.Pi
import Mathbin.Algebra.Algebra.RestrictScalars
import Mathbin.Analysis.Normed.Field.Basic
+import Mathbin.Analysis.Normed.MulAction
import Mathbin.Data.Real.Sqrt
import Mathbin.Topology.Algebra.Module.Basic
@@ -59,53 +60,6 @@ end Prio
variable [NormedField α] [SeminormedAddCommGroup β]
--- note: while these are currently strictly weaker than the versions without `le`, they will cease
--- to be if we eventually generalize `normed_space` from `normed_field α` to `normed_ring α`.
-section Le
-
-/- warning: norm_smul_le -> norm_smul_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (r : α) (x : β), LE.le.{0} Real Real.hasLe (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) r x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) r) (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) x))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (r : α) (x : β), LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) r x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) r) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x))
-Case conversion may be inaccurate. Consider using '#align norm_smul_le norm_smul_leₓ'. -/
-theorem norm_smul_le [NormedSpace α β] (r : α) (x : β) : ‖r • x‖ ≤ ‖r‖ * ‖x‖ :=
- NormedSpace.norm_smul_le _ _
-#align norm_smul_le norm_smul_le
-
-/- warning: nnnorm_smul_le -> nnnorm_smul_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) x))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) x))
-Case conversion may be inaccurate. Consider using '#align nnnorm_smul_le nnnorm_smul_leₓ'. -/
-theorem nnnorm_smul_le [NormedSpace α β] (s : α) (x : β) : ‖s • x‖₊ ≤ ‖s‖₊ * ‖x‖₊ :=
- norm_smul_le s x
-#align nnnorm_smul_le nnnorm_smul_le
-
-/- warning: dist_smul_le -> dist_smul_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} Real Real.hasLe (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) s) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} Real Real.instLEReal (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) s) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
-Case conversion may be inaccurate. Consider using '#align dist_smul_le dist_smul_leₓ'. -/
-theorem dist_smul_le [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s • y) ≤ ‖s‖ * dist x y :=
- by simpa only [dist_eq_norm, ← smul_sub] using norm_smul_le _ _
-#align dist_smul_le dist_smul_le
-
-/- warning: nndist_smul_le -> nndist_smul_le is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
-Case conversion may be inaccurate. Consider using '#align nndist_smul_le nndist_smul_leₓ'. -/
-theorem nndist_smul_le [NormedSpace α β] (s : α) (x y : β) :
- nndist (s • x) (s • y) ≤ ‖s‖₊ * nndist x y :=
- dist_smul_le s x y
-#align nndist_smul_le nndist_smul_le
-
-end Le
-
/- warning: normed_space.has_bounded_smul -> NormedSpace.boundedSMul is a dubious translation:
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2], BoundedSMul.{u1, u2} α β (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (SeminormedAddGroup.toAddGroup.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)))))) (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3)))))
@@ -113,10 +67,8 @@ but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2], BoundedSMul.{u1, u2} α β (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSeminormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2) (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α β (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3)))))
Case conversion may be inaccurate. Consider using '#align normed_space.has_bounded_smul NormedSpace.boundedSMulₓ'. -/
-- see Note [lower instance priority]
-instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β
- where
- dist_smul_pair' x y₁ y₂ := by simpa [dist_eq_norm, smul_sub] using norm_smul_le x (y₁ - y₂)
- dist_pair_smul' x₁ x₂ y := by simpa [dist_eq_norm, sub_smul] using norm_smul_le (x₁ - x₂) y
+instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β :=
+ BoundedSMul.of_norm_smul_le NormedSpace.norm_smul_le
#align normed_space.has_bounded_smul NormedSpace.boundedSMul
-- Shortcut instance, as otherwise this will be found by `normed_space.to_module` and be
@@ -128,23 +80,10 @@ instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b :=
#align normed_field.to_normed_space NormedField.toNormedSpace
-/
-/- warning: norm_smul -> norm_smul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} Real (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) s) (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) x))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) s) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x))
-Case conversion may be inaccurate. Consider using '#align norm_smul norm_smulₓ'. -/
-theorem norm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖ = ‖s‖ * ‖x‖ :=
- by
- by_cases h : s = 0
- · simp [h]
- · refine' le_antisymm (norm_smul_le s x) _
- calc
- ‖s‖ * ‖x‖ = ‖s‖ * ‖s⁻¹ • s • x‖ := by rw [inv_smul_smul₀ h]
- _ ≤ ‖s‖ * (‖s⁻¹‖ * ‖s • x‖) := (mul_le_mul_of_nonneg_left (norm_smul_le _ _) (norm_nonneg _))
- _ = ‖s • x‖ := by rw [norm_inv, ← mul_assoc, mul_inv_cancel (mt norm_eq_zero.1 h), one_mul]
-
-#align norm_smul norm_smul
+-- shortcut instance
+instance NormedField.to_boundedSMul : BoundedSMul α α :=
+ NormedSpace.boundedSMul
+#align normed_field.to_has_bounded_smul NormedField.to_boundedSMul
/- warning: norm_zsmul -> norm_zsmul is a dubious translation:
lean 3 declaration is
@@ -179,47 +118,6 @@ theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
div_self_le_one]
#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ball
-/- warning: dist_smul₀ -> dist_smul₀ is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} Real (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) s) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} Real (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) s) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
-Case conversion may be inaccurate. Consider using '#align dist_smul₀ dist_smul₀ₓ'. -/
-theorem dist_smul₀ [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s • y) = ‖s‖ * dist x y := by
- simp only [dist_eq_norm, (norm_smul _ _).symm, smul_sub]
-#align dist_smul₀ dist_smul₀
-
-/- warning: nnnorm_smul -> nnnorm_smul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} NNReal (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) x))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} NNReal (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) x))
-Case conversion may be inaccurate. Consider using '#align nnnorm_smul nnnorm_smulₓ'. -/
-theorem nnnorm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖₊ = ‖s‖₊ * ‖x‖₊ :=
- NNReal.eq <| norm_smul s x
-#align nnnorm_smul nnnorm_smul
-
-/- warning: nndist_smul₀ -> nndist_smul₀ is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} NNReal (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} NNReal (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
-Case conversion may be inaccurate. Consider using '#align nndist_smul₀ nndist_smul₀ₓ'. -/
-theorem nndist_smul₀ [NormedSpace α β] (s : α) (x y : β) :
- nndist (s • x) (s • y) = ‖s‖₊ * nndist x y :=
- NNReal.eq <| dist_smul₀ s x y
-#align nndist_smul₀ nndist_smul₀
-
-/- warning: lipschitz_with_smul -> lipschitzWith_smul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u2, u2} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.916 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.918 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.916 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.918) s)
-Case conversion may be inaccurate. Consider using '#align lipschitz_with_smul lipschitzWith_smulₓ'. -/
-theorem lipschitzWith_smul [NormedSpace α β] (s : α) : LipschitzWith ‖s‖₊ ((· • ·) s : β → β) :=
- lipschitzWith_iff_dist_le_mul.2 fun x y => by rw [dist_smul₀, coe_nnnorm]
-#align lipschitz_with_smul lipschitzWith_smul
-
/- warning: norm_smul_of_nonneg -> norm_smul_of_nonneg is a dubious translation:
lean 3 declaration is
forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] {t : Real}, (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) t) -> (forall (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) (SMul.smul.{0, u1} Real β (SMulZeroClass.toHasSmul.{0, u1} Real β (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real β (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (Module.toMulActionWithZero.{0, u1} Real β (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3))))) t x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) x)))
@@ -472,7 +370,7 @@ instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCo
#print MulOpposite.normedSpace /-
instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
{ MulOpposite.normedAddCommGroup, MulOpposite.module _ with
- norm_smul_le := fun s x => norm_smul_le s x.unop }
+ norm_smul_le := fun s x => (norm_smul_le s x.unop : _) }
#align mul_opposite.normed_space MulOpposite.normedSpace
-/
@@ -480,7 +378,7 @@ instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
/-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/
instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type _}
[SeminormedAddCommGroup E] [NormedSpace 𝕜 E] [Module R E] [IsScalarTower 𝕜 R E]
- (s : Submodule R E) : NormedSpace 𝕜 s where norm_smul_le c x := norm_smul_le c (x : E)
+ (s : Submodule R E) : NormedSpace 𝕜 s where norm_smul_le c x := (norm_smul_le c (x : E) : _)
#align submodule.normed_space Submodule.normedSpace
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -812,7 +812,7 @@ instance (priority := 100) NormedAlgebra.toNormedSpace' {𝕜'} [NormedRing 𝕜
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
Case conversion may be inaccurate. Consider using '#align norm_algebra_map norm_algebraMapₓ'. -/
theorem norm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ * ‖(1 : 𝕜')‖ :=
by
@@ -824,7 +824,7 @@ theorem norm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ *
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map nnnorm_algebraMapₓ'. -/
theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ * ‖(1 : 𝕜')‖₊ :=
Subtype.ext <| norm_algebraMap 𝕜' x
@@ -834,7 +834,7 @@ theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x)
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x)
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x)
Case conversion may be inaccurate. Consider using '#align norm_algebra_map' norm_algebraMap'ₓ'. -/
@[simp]
theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
@@ -845,7 +845,7 @@ theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map' nnnorm_algebraMap'ₓ'. -/
@[simp]
theorem nnnorm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
@@ -860,7 +860,7 @@ variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
lean 3 declaration is
forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) x)
but is expected to have type
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) (NNReal.toReal x)
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedRing.toNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) _inst_2) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) (NNReal.toReal x)
Case conversion may be inaccurate. Consider using '#align norm_algebra_map_nnreal norm_algebraMap_nNRealₓ'. -/
@[simp]
theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
@@ -871,7 +871,7 @@ theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖
lean 3 declaration is
forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} 𝕜' (SeminormedAddGroup.toNNNorm.{u1} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u1} 𝕜' _inst_2)))) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
but is expected to have type
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2)))) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') x) _inst_2)))) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nNRealₓ'. -/
@[simp]
theorem nnnorm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
@@ -886,7 +886,7 @@ variable (𝕜 𝕜')
lean 3 declaration is
forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))], Isometry.{u1, u2} 𝕜 𝕜' (PseudoMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (SeminormedRing.toPseudoMetricSpace.{u1} 𝕜 (SeminormedCommRing.toSemiNormedRing.{u1} 𝕜 (NormedCommRing.toSeminormedCommRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
but is expected to have type
- forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))], Isometry.{u1, u2} 𝕜 𝕜' (EMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (MetricSpace.toEMetricSpace.{u1} 𝕜 (NormedField.toMetricSpace.{u1} 𝕜 _inst_1))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
+ forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))], Isometry.{u1, u2} 𝕜 𝕜' (EMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (MetricSpace.toEMetricSpace.{u1} 𝕜 (NormedField.toMetricSpace.{u1} 𝕜 _inst_1))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
Case conversion may be inaccurate. Consider using '#align algebra_map_isometry algebraMap_isometryₓ'. -/
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -75,7 +75,7 @@ theorem norm_smul_le [NormedSpace α β] (r : α) (x : β) : ‖r • x‖ ≤
/- warning: nnnorm_smul_le -> nnnorm_smul_le is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) x))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) x))
but is expected to have type
forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) x))
Case conversion may be inaccurate. Consider using '#align nnnorm_smul_le nnnorm_smul_leₓ'. -/
@@ -95,7 +95,7 @@ theorem dist_smul_le [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s
/- warning: nndist_smul_le -> nndist_smul_le is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
but is expected to have type
forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
Case conversion may be inaccurate. Consider using '#align nndist_smul_le nndist_smul_leₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -214,7 +214,7 @@ theorem nndist_smul₀ [NormedSpace α β] (s : α) (x y : β) :
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u2, u2} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s)
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.922 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.924 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.922 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.924) s)
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.916 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.918 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.916 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.918) s)
Case conversion may be inaccurate. Consider using '#align lipschitz_with_smul lipschitzWith_smulₓ'. -/
theorem lipschitzWith_smul [NormedSpace α β] (s : α) : LipschitzWith ‖s‖₊ ((· • ·) s : β → β) :=
lipschitzWith_iff_dist_le_mul.2 fun x y => by rw [dist_smul₀, coe_nnnorm]
@@ -251,7 +251,7 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.Tendsto.{u2, u1} ι α f l (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))))))))) -> (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u3, 1} ι E Real (Norm.norm.{u3} E (SeminormedAddCommGroup.toHasNorm.{u3} E _inst_3)) g)) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1286 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1288 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1286 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1288) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1280 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1282 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1280 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1282) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
@@ -263,7 +263,7 @@ theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u1, 1} ι α Real (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1)) f)) -> (Filter.Tendsto.{u2, u3} ι E g l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3))))))))))) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1389 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1391 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1389 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1391) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1383 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1385 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1383 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1385) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
@@ -918,11 +918,15 @@ instance normedAlgebraRat {𝕜} [NormedDivisionRing 𝕜] [CharZero 𝕜] [Norm
rw [← smul_one_smul ℝ q x, Rat.smul_one_eq_coe, norm_smul, Rat.norm_cast_real]
#align normed_algebra_rat normedAlgebraRat
-#print PUnit.normedAlgebra /-
+/- warning: punit.normed_algebra -> PUnit.normedAlgebra is a dubious translation:
+lean 3 declaration is
+ forall (𝕜 : Type.{u_5}) [_inst_1 : NormedField.{u_5} 𝕜], NormedAlgebra.{u_5, u_1} 𝕜 PUnit.{succ u_1} _inst_1 (SeminormedCommRing.toSemiNormedRing.{u_1} PUnit.{succ u_1} (NormedCommRing.toSeminormedCommRing.{u_1} PUnit.{succ u_1} PUnit.normedCommRing.{u_1}))
+but is expected to have type
+ forall (𝕜 : Type.{u_1}) [_inst_1 : NormedField.{u_1} 𝕜], NormedAlgebra.{u_1, 0} 𝕜 PUnit.{1} _inst_1 (SeminormedCommRing.toSeminormedRing.{0} PUnit.{1} (NormedCommRing.toSeminormedCommRing.{0} PUnit.{1} PUnit.normedCommRing.{0}))
+Case conversion may be inaccurate. Consider using '#align punit.normed_algebra PUnit.normedAlgebraₓ'. -/
instance PUnit.normedAlgebra : NormedAlgebra 𝕜 PUnit
where norm_smul_le q x := by simp only [PUnit.norm_eq_zero, MulZeroClass.mul_zero]
#align punit.normed_algebra PUnit.normedAlgebra
--/
instance : NormedAlgebra 𝕜 (ULift 𝕜') :=
{ ULift.normedSpace with }
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -812,7 +812,7 @@ instance (priority := 100) NormedAlgebra.toNormedSpace' {𝕜'} [NormedRing 𝕜
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
Case conversion may be inaccurate. Consider using '#align norm_algebra_map norm_algebraMapₓ'. -/
theorem norm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ * ‖(1 : 𝕜')‖ :=
by
@@ -824,7 +824,7 @@ theorem norm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ *
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map nnnorm_algebraMapₓ'. -/
theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ * ‖(1 : 𝕜')‖₊ :=
Subtype.ext <| norm_algebraMap 𝕜' x
@@ -834,7 +834,7 @@ theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x)
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x)
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x)
Case conversion may be inaccurate. Consider using '#align norm_algebra_map' norm_algebraMap'ₓ'. -/
@[simp]
theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
@@ -845,7 +845,7 @@ theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
but is expected to have type
- forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map' nnnorm_algebraMap'ₓ'. -/
@[simp]
theorem nnnorm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
@@ -860,7 +860,7 @@ variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
lean 3 declaration is
forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) x)
but is expected to have type
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (NonAssocRing.toOne.{u1} 𝕜' (Ring.toNonAssocRing.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) (NNReal.toReal x)
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) (NNReal.toReal x)
Case conversion may be inaccurate. Consider using '#align norm_algebra_map_nnreal norm_algebraMap_nNRealₓ'. -/
@[simp]
theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
@@ -871,7 +871,7 @@ theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖
lean 3 declaration is
forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} 𝕜' (SeminormedAddGroup.toNNNorm.{u1} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u1} 𝕜' _inst_2)))) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
but is expected to have type
- forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (NonAssocRing.toOne.{u1} 𝕜' (Ring.toNonAssocRing.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2)))) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (Semiring.toOne.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2)))) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nNRealₓ'. -/
@[simp]
theorem nnnorm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
@@ -886,7 +886,7 @@ variable (𝕜 𝕜')
lean 3 declaration is
forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))], Isometry.{u1, u2} 𝕜 𝕜' (PseudoMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (SeminormedRing.toPseudoMetricSpace.{u1} 𝕜 (SeminormedCommRing.toSemiNormedRing.{u1} 𝕜 (NormedCommRing.toSeminormedCommRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
but is expected to have type
- forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))], Isometry.{u1, u2} 𝕜 𝕜' (EMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (MetricSpace.toEMetricSpace.{u1} 𝕜 (NormedField.toMetricSpace.{u1} 𝕜 _inst_1))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
+ forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (Semiring.toOne.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))], Isometry.{u1, u2} 𝕜 𝕜' (EMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (MetricSpace.toEMetricSpace.{u1} 𝕜 (NormedField.toMetricSpace.{u1} 𝕜 _inst_1))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
Case conversion may be inaccurate. Consider using '#align algebra_map_isometry algebraMap_isometryₓ'. -/
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/3905fa80e62c0898131285baab35559fbc4e5cda
@@ -156,6 +156,12 @@ theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β)
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
+/- warning: abs_norm -> abs_norm is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)
+Case conversion may be inaccurate. Consider using '#align abs_norm abs_normₓ'. -/
@[simp]
theorem abs_norm (z : β) : |‖z‖| = ‖z‖ :=
abs_of_nonneg <| norm_nonneg z
@@ -208,7 +214,7 @@ theorem nndist_smul₀ [NormedSpace α β] (s : α) (x y : β) :
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u2, u2} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s)
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.933 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.935 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.933 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.935) s)
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.922 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.924 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.922 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.924) s)
Case conversion may be inaccurate. Consider using '#align lipschitz_with_smul lipschitzWith_smulₓ'. -/
theorem lipschitzWith_smul [NormedSpace α β] (s : α) : LipschitzWith ‖s‖₊ ((· • ·) s : β → β) :=
lipschitzWith_iff_dist_le_mul.2 fun x y => by rw [dist_smul₀, coe_nnnorm]
@@ -245,7 +251,7 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.Tendsto.{u2, u1} ι α f l (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))))))))) -> (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u3, 1} ι E Real (Norm.norm.{u3} E (SeminormedAddCommGroup.toHasNorm.{u3} E _inst_3)) g)) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1297 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1299 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1297 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1299) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1286 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1288 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1286 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1288) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
@@ -257,7 +263,7 @@ theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u1, 1} ι α Real (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1)) f)) -> (Filter.Tendsto.{u2, u3} ι E g l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3))))))))))) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1400 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1402 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1400 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1402) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1389 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1391 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1389 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1391) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit 8000bbbe2e9d39b84edb993d88781f536a8a3fa8
+! leanprover-community/mathlib commit f9dd3204df14a0749cd456fac1e6849dfe7d2b88
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -156,16 +156,10 @@ theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β)
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
-/- warning: abs_norm_eq_norm -> abs_norm_eq_norm is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)
-Case conversion may be inaccurate. Consider using '#align abs_norm_eq_norm abs_norm_eq_normₓ'. -/
@[simp]
-theorem abs_norm_eq_norm (z : β) : |‖z‖| = ‖z‖ :=
- (abs_eq (norm_nonneg z)).mpr (Or.inl rfl)
-#align abs_norm_eq_norm abs_norm_eq_norm
+theorem abs_norm (z : β) : |‖z‖| = ‖z‖ :=
+ abs_of_nonneg <| norm_nonneg z
+#align abs_norm abs_norm
/- warning: inv_norm_smul_mem_closed_unit_ball -> inv_norm_smul_mem_closed_unit_ball is a dubious translation:
lean 3 declaration is
@@ -407,8 +401,8 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
⟨(1 + ‖x‖ ^ 2).sqrt⁻¹ • x, by
have : 0 < 1 + ‖x‖ ^ 2 := by positivity
rw [mem_ball_zero_iff, norm_smul, Real.norm_eq_abs, abs_inv, ← div_eq_inv_mul,
- div_lt_one (abs_pos.mpr <| real.sqrt_ne_zero'.mpr this), ← abs_norm_eq_norm x, ← sq_lt_sq,
- abs_norm_eq_norm, Real.sq_sqrt this.le]
+ div_lt_one (abs_pos.mpr <| real.sqrt_ne_zero'.mpr this), ← abs_norm x, ← sq_lt_sq, abs_norm,
+ Real.sq_sqrt this.le]
exact lt_one_add _⟩
invFun y := (1 - ‖(y : E)‖ ^ 2).sqrt⁻¹ • (y : E)
left_inv x := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/fa78268d4d77cb2b2fbc89f0527e2e7807763780
@@ -349,11 +349,23 @@ theorem frontier_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0)
rw [frontier, closure_closed_ball, interior_closedBall x hr, closed_ball_diff_ball]
#align frontier_closed_ball frontier_closedBall
+/- warning: interior_sphere -> interior_sphere is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (EmptyCollection.emptyCollection.{u1} (Set.{u1} E) (Set.hasEmptyc.{u1} E)))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (EmptyCollection.emptyCollection.{u1} (Set.{u1} E) (Set.instEmptyCollectionSet.{u1} E)))
+Case conversion may be inaccurate. Consider using '#align interior_sphere interior_sphereₓ'. -/
theorem interior_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
interior (sphere x r) = ∅ := by
rw [← frontier_closedBall x hr, interior_frontier is_closed_ball]
#align interior_sphere interior_sphere
+/- warning: frontier_sphere -> frontier_sphere is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+Case conversion may be inaccurate. Consider using '#align frontier_sphere frontier_sphereₓ'. -/
theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (sphere x r) = sphere x r := by
rw [is_closed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
@@ -643,16 +655,20 @@ theorem frontier_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ
#align frontier_closed_ball' frontier_closedBall'
-/
+#print interior_sphere' /-
@[simp]
theorem interior_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
interior (sphere x r) = ∅ := by rw [← frontier_closedBall' x, interior_frontier is_closed_ball]
#align interior_sphere' interior_sphere'
+-/
+#print frontier_sphere' /-
@[simp]
theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
frontier (sphere x r) = sphere x r := by
rw [is_closed_sphere.frontier_eq, interior_sphere' x, diff_empty]
#align frontier_sphere' frontier_sphere'
+-/
variable {α}
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -214,7 +214,7 @@ theorem nndist_smul₀ [NormedSpace α β] (s : α) (x y : β) :
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u2, u2} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s)
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.963 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.965 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.963 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.965) s)
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.933 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.935 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.933 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.935) s)
Case conversion may be inaccurate. Consider using '#align lipschitz_with_smul lipschitzWith_smulₓ'. -/
theorem lipschitzWith_smul [NormedSpace α β] (s : α) : LipschitzWith ‖s‖₊ ((· • ·) s : β → β) :=
lipschitzWith_iff_dist_le_mul.2 fun x y => by rw [dist_smul₀, coe_nnnorm]
@@ -251,7 +251,7 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.Tendsto.{u2, u1} ι α f l (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))))))))) -> (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u3, 1} ι E Real (Norm.norm.{u3} E (SeminormedAddCommGroup.toHasNorm.{u3} E _inst_3)) g)) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1327 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1329 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1327 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1329) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1297 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1299 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1297 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1299) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
@@ -263,7 +263,7 @@ theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u1, 1} ι α Real (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1)) f)) -> (Filter.Tendsto.{u2, u3} ι E g l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3))))))))))) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1430 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1432 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1430 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1432) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1400 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1402 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1400 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1402) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit 814d76e2247d5ba8bc024843552da1278bfe9e5c
+! leanprover-community/mathlib commit 8000bbbe2e9d39b84edb993d88781f536a8a3fa8
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -349,6 +349,16 @@ theorem frontier_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0)
rw [frontier, closure_closed_ball, interior_closedBall x hr, closed_ball_diff_ball]
#align frontier_closed_ball frontier_closedBall
+theorem interior_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
+ interior (sphere x r) = ∅ := by
+ rw [← frontier_closedBall x hr, interior_frontier is_closed_ball]
+#align interior_sphere interior_sphere
+
+theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
+ frontier (sphere x r) = sphere x r := by
+ rw [is_closed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
+#align frontier_sphere frontier_sphere
+
instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
DiscreteTopology <| AddSubgroup.zmultiples e :=
by
@@ -633,6 +643,17 @@ theorem frontier_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ
#align frontier_closed_ball' frontier_closedBall'
-/
+@[simp]
+theorem interior_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
+ interior (sphere x r) = ∅ := by rw [← frontier_closedBall' x, interior_frontier is_closed_ball]
+#align interior_sphere' interior_sphere'
+
+@[simp]
+theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
+ frontier (sphere x r) = sphere x r := by
+ rw [is_closed_sphere.frontier_eq, interior_sphere' x, diff_empty]
+#align frontier_sphere' frontier_sphere'
+
variable {α}
/- warning: rescale_to_shell_zpow -> rescale_to_shell_zpow is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/347636a7a80595d55bedf6e6fbd996a3c39da69a
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit d3af0609f6db8691dffdc3e1fb7feb7da72698f2
+! leanprover-community/mathlib commit 814d76e2247d5ba8bc024843552da1278bfe9e5c
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -17,6 +17,9 @@ import Mathbin.Topology.Algebra.Module.Basic
/-!
# Normed spaces
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
In this file we define (semi)normed spaces and algebras. We also prove some theorems
about these definitions.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -211,7 +211,7 @@ theorem nndist_smul₀ [NormedSpace α β] (s : α) (x y : β) :
lean 3 declaration is
forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u2, u2} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s)
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.964 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.966 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.964 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.966) s)
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.963 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.965 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.963 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.965) s)
Case conversion may be inaccurate. Consider using '#align lipschitz_with_smul lipschitzWith_smulₓ'. -/
theorem lipschitzWith_smul [NormedSpace α β] (s : α) : LipschitzWith ‖s‖₊ ((· • ·) s : β → β) :=
lipschitzWith_iff_dist_le_mul.2 fun x y => by rw [dist_smul₀, coe_nnnorm]
@@ -248,7 +248,7 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.Tendsto.{u2, u1} ι α f l (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))))))))) -> (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u3, 1} ι E Real (Norm.norm.{u3} E (SeminormedAddCommGroup.toHasNorm.{u3} E _inst_3)) g)) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1328 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1330 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1328 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1330) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1327 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1329 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1327 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1329) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
@@ -260,7 +260,7 @@ theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E
lean 3 declaration is
forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u1, 1} ι α Real (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1)) f)) -> (Filter.Tendsto.{u2, u3} ι E g l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3))))))))))) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
but is expected to have type
- forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1431 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1433 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1431 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1433) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1430 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1432 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1430 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1432) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
@@ -790,27 +790,27 @@ theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x
Subtype.ext <| norm_algebraMap 𝕜' x
#align nnnorm_algebra_map nnnorm_algebraMap
-/- warning: norm_algebra_map' -> norm_algebra_map' is a dubious translation:
+/- warning: norm_algebra_map' -> norm_algebraMap' is a dubious translation:
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x)
but is expected to have type
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x)
-Case conversion may be inaccurate. Consider using '#align norm_algebra_map' norm_algebra_map'ₓ'. -/
+Case conversion may be inaccurate. Consider using '#align norm_algebra_map' norm_algebraMap'ₓ'. -/
@[simp]
-theorem norm_algebra_map' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
+theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
rw [norm_algebraMap, norm_one, mul_one]
-#align norm_algebra_map' norm_algebra_map'
+#align norm_algebra_map' norm_algebraMap'
-/- warning: nnnorm_algebra_map' -> nnnorm_algebra_map' is a dubious translation:
+/- warning: nnnorm_algebra_map' -> nnnorm_algebraMap' is a dubious translation:
lean 3 declaration is
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
but is expected to have type
forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
-Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map' nnnorm_algebra_map'ₓ'. -/
+Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map' nnnorm_algebraMap'ₓ'. -/
@[simp]
-theorem nnnorm_algebra_map' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
- Subtype.ext <| norm_algebra_map' _ _
-#align nnnorm_algebra_map' nnnorm_algebra_map'
+theorem nnnorm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
+ Subtype.ext <| norm_algebraMap' _ _
+#align nnnorm_algebra_map' nnnorm_algebraMap'
section NNReal
@@ -824,7 +824,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align norm_algebra_map_nnreal norm_algebraMap_nNRealₓ'. -/
@[simp]
theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
- (norm_algebra_map' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.Prop
+ (norm_algebraMap' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.Prop
#align norm_algebra_map_nnreal norm_algebraMap_nNReal
/- warning: nnnorm_algebra_map_nnreal -> nnnorm_algebraMap_nNReal is a dubious translation:
@@ -852,7 +852,7 @@ Case conversion may be inaccurate. Consider using '#align algebra_map_isometry a
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') :=
by
refine' Isometry.of_dist_eq fun x y => _
- rw [dist_eq_norm, dist_eq_norm, ← RingHom.map_sub, norm_algebra_map']
+ rw [dist_eq_norm, dist_eq_norm, ← RingHom.map_sub, norm_algebraMap']
#align algebra_map_isometry algebraMap_isometry
#print NormedAlgebra.id /-
@@ -960,7 +960,7 @@ instance {𝕜 : Type _} {𝕜' : Type _} {E : Type _} [I : NormedAddCommGroup E
instance : NormedSpace 𝕜 (RestrictScalars 𝕜 𝕜' E) :=
{ RestrictScalars.module 𝕜 𝕜' E with
norm_smul_le := fun c x =>
- (norm_smul_le (algebraMap 𝕜 𝕜' c) (_ : E)).trans_eq <| by rw [norm_algebra_map'] }
+ (norm_smul_le (algebraMap 𝕜 𝕜' c) (_ : E)).trans_eq <| by rw [norm_algebraMap'] }
#print Module.RestrictScalars.normedSpaceOrig /-
-- If you think you need this, consider instead reproducing `restrict_scalars.lsmul`
mathlib commit https://github.com/leanprover-community/mathlib/commit/c9236f47f5b9df573443aa499c0d3968769628b7
@@ -35,6 +35,7 @@ section Prio
/- ./././Mathport/Syntax/Translate/Basic.lean:334:40: warning: unsupported option extends_priority -/
set_option extends_priority 920
+#print NormedSpace /-
-- Here, we set a rather high priority for the instance `[normed_space α β] : module α β`
-- to take precedence over `semiring.to_module` as this leads to instance paths with better
-- unification properties.
@@ -49,6 +50,7 @@ class NormedSpace (α : Type _) (β : Type _) [NormedField α] [SeminormedAddCom
Module α β where
norm_smul_le : ∀ (a : α) (b : β), ‖a • b‖ ≤ ‖a‖ * ‖b‖
#align normed_space NormedSpace
+-/
end Prio
@@ -58,18 +60,42 @@ variable [NormedField α] [SeminormedAddCommGroup β]
-- to be if we eventually generalize `normed_space` from `normed_field α` to `normed_ring α`.
section Le
+/- warning: norm_smul_le -> norm_smul_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (r : α) (x : β), LE.le.{0} Real Real.hasLe (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) r x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) r) (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) x))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (r : α) (x : β), LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) r x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) r) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x))
+Case conversion may be inaccurate. Consider using '#align norm_smul_le norm_smul_leₓ'. -/
theorem norm_smul_le [NormedSpace α β] (r : α) (x : β) : ‖r • x‖ ≤ ‖r‖ * ‖x‖ :=
NormedSpace.norm_smul_le _ _
#align norm_smul_le norm_smul_le
+/- warning: nnnorm_smul_le -> nnnorm_smul_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) x))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) x))
+Case conversion may be inaccurate. Consider using '#align nnnorm_smul_le nnnorm_smul_leₓ'. -/
theorem nnnorm_smul_le [NormedSpace α β] (s : α) (x : β) : ‖s • x‖₊ ≤ ‖s‖₊ * ‖x‖₊ :=
norm_smul_le s x
#align nnnorm_smul_le nnnorm_smul_le
+/- warning: dist_smul_le -> dist_smul_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} Real Real.hasLe (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) s) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} Real Real.instLEReal (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) s) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
+Case conversion may be inaccurate. Consider using '#align dist_smul_le dist_smul_leₓ'. -/
theorem dist_smul_le [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s • y) ≤ ‖s‖ * dist x y :=
by simpa only [dist_eq_norm, ← smul_sub] using norm_smul_le _ _
#align dist_smul_le dist_smul_le
+/- warning: nndist_smul_le -> nndist_smul_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
+Case conversion may be inaccurate. Consider using '#align nndist_smul_le nndist_smul_leₓ'. -/
theorem nndist_smul_le [NormedSpace α β] (s : α) (x y : β) :
nndist (s • x) (s • y) ≤ ‖s‖₊ * nndist x y :=
dist_smul_le s x y
@@ -77,6 +103,12 @@ theorem nndist_smul_le [NormedSpace α β] (s : α) (x y : β) :
end Le
+/- warning: normed_space.has_bounded_smul -> NormedSpace.boundedSMul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2], BoundedSMul.{u1, u2} α β (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2) (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (SubNegMonoid.toAddMonoid.{u2} β (AddGroup.toSubNegMonoid.{u2} β (SeminormedAddGroup.toAddGroup.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)))))) (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3)))))
+but is expected to have type
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2], BoundedSMul.{u1, u2} α β (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSeminormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2) (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (SMulZeroClass.toSMul.{u1, u2} α β (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α β (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} β (SubNegZeroMonoid.toNegZeroClass.{u2} β (SubtractionMonoid.toSubNegZeroMonoid.{u2} β (SubtractionCommMonoid.toSubtractionMonoid.{u2} β (AddCommGroup.toDivisionAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α β (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align normed_space.has_bounded_smul NormedSpace.boundedSMulₓ'. -/
-- see Note [lower instance priority]
instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β
where
@@ -88,9 +120,17 @@ instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : Bounded
-- noncomputable.
instance : Module ℝ ℝ := by infer_instance
+#print NormedField.toNormedSpace /-
instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b := norm_mul_le a b
#align normed_field.to_normed_space NormedField.toNormedSpace
+-/
+/- warning: norm_smul -> norm_smul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} Real (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) s) (Norm.norm.{u2} β (SeminormedAddCommGroup.toHasNorm.{u2} β _inst_2) x))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) s) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x))
+Case conversion may be inaccurate. Consider using '#align norm_smul norm_smulₓ'. -/
theorem norm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖ = ‖s‖ * ‖x‖ :=
by
by_cases h : s = 0
@@ -103,38 +143,86 @@ theorem norm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖ = ‖s
#align norm_smul norm_smul
+/- warning: norm_zsmul -> norm_zsmul is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (α : Type.{u2}) [_inst_3 : NormedField.{u2} α] [_inst_4 : NormedSpace.{u2, u1} α β _inst_3 _inst_2] (n : Int) (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) (SMul.smul.{0, u1} Int β (SubNegMonoid.SMulInt.{u1} β (AddGroup.toSubNegMonoid.{u1} β (SeminormedAddGroup.toAddGroup.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)))) n x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u2} α (NormedField.toHasNorm.{u2} α _inst_3) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int α (HasLiftT.mk.{1, succ u2} Int α (CoeTCₓ.coe.{1, succ u2} Int α (Int.castCoe.{u2} α (AddGroupWithOne.toHasIntCast.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_3))))))))) n)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) x))
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (α : Type.{u2}) [_inst_3 : NormedField.{u2} α] [_inst_4 : NormedSpace.{u2, u1} α β _inst_3 _inst_2] (n : Int) (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{0, u1, u1} Int β β (instHSMul.{0, u1} Int β (SubNegMonoid.SMulInt.{u1} β (AddGroup.toSubNegMonoid.{u1} β (SeminormedAddGroup.toAddGroup.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2))))) n x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_3) (Int.cast.{u2} α (Ring.toIntCast.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_3)))) n)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x))
+Case conversion may be inaccurate. Consider using '#align norm_zsmul norm_zsmulₓ'. -/
theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
+/- warning: abs_norm_eq_norm -> abs_norm_eq_norm is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) z)
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] (z : β), Eq.{1} Real (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)) (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) z)
+Case conversion may be inaccurate. Consider using '#align abs_norm_eq_norm abs_norm_eq_normₓ'. -/
@[simp]
theorem abs_norm_eq_norm (z : β) : |‖z‖| = ‖z‖ :=
(abs_eq (norm_nonneg z)).mpr (Or.inl rfl)
#align abs_norm_eq_norm abs_norm_eq_norm
+/- warning: inv_norm_smul_mem_closed_unit_ball -> inv_norm_smul_mem_closed_unit_ball is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] (x : β), Membership.Mem.{u1, u1} β (Set.{u1} β) (Set.hasMem.{u1} β) (SMul.smul.{0, u1} Real β (SMulZeroClass.toHasSmul.{0, u1} Real β (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real β (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (Module.toMulActionWithZero.{0, u1} Real β (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3))))) (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) x)) x) (Metric.closedBall.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2) (OfNat.ofNat.{u1} β 0 (OfNat.mk.{u1} β 0 (Zero.zero.{u1} β (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (SubNegMonoid.toAddMonoid.{u1} β (AddGroup.toSubNegMonoid.{u1} β (SeminormedAddGroup.toAddGroup.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] (x : β), Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (HSMul.hSMul.{0, u1, u1} Real β β (instHSMul.{0, u1} Real β (SMulZeroClass.toSMul.{0, u1} Real β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real β Real.instZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real β Real.semiring (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3)))))) (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x)) x) (Metric.closedBall.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2) (OfNat.ofNat.{u1} β 0 (Zero.toOfNat0.{u1} β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ballₓ'. -/
theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
‖x‖⁻¹ • x ∈ closedBall (0 : β) 1 := by
simp only [mem_closedBall_zero_iff, norm_smul, norm_inv, norm_norm, ← div_eq_inv_mul,
div_self_le_one]
#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ball
+/- warning: dist_smul₀ -> dist_smul₀ is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} Real (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) s) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} Real (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) s) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
+Case conversion may be inaccurate. Consider using '#align dist_smul₀ dist_smul₀ₓ'. -/
theorem dist_smul₀ [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s • y) = ‖s‖ * dist x y := by
simp only [dist_eq_norm, (norm_smul _ _).symm, smul_sub]
#align dist_smul₀ dist_smul₀
+/- warning: nnnorm_smul -> nnnorm_smul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} NNReal (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNNorm.nnnorm.{u2} β (SeminormedAddGroup.toNNNorm.{u2} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} β _inst_2)) x))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β), Eq.{1} NNReal (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNNorm.nnnorm.{u1} β (SeminormedAddGroup.toNNNorm.{u1} β (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} β _inst_2)) x))
+Case conversion may be inaccurate. Consider using '#align nnnorm_smul nnnorm_smulₓ'. -/
theorem nnnorm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖₊ = ‖s‖₊ * ‖x‖₊ :=
NNReal.eq <| norm_smul s x
#align nnnorm_smul nnnorm_smul
+/- warning: nndist_smul₀ -> nndist_smul₀ is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} NNReal (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s x) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) x y))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α) (x : β) (y : β), Eq.{1} NNReal (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s x) (HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) s y)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) x y))
+Case conversion may be inaccurate. Consider using '#align nndist_smul₀ nndist_smul₀ₓ'. -/
theorem nndist_smul₀ [NormedSpace α β] (s : α) (x y : β) :
nndist (s • x) (s • y) = ‖s‖₊ * nndist x y :=
NNReal.eq <| dist_smul₀ s x y
#align nndist_smul₀ nndist_smul₀
+/- warning: lipschitz_with_smul -> lipschitzWith_smul is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : NormedField.{u1} α] [_inst_2 : SeminormedAddCommGroup.{u2} β] [_inst_3 : NormedSpace.{u1, u2} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u2, u2} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} β _inst_2)) (NNNorm.nnnorm.{u1} α (SeminormedAddGroup.toNNNorm.{u1} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} α (NormedRing.toNonUnitalNormedRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))) s) (SMul.smul.{u1, u2} α β (SMulZeroClass.toHasSmul.{u1, u2} α β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α β (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α β (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} α β (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} β (SeminormedAddCommGroup.toAddCommGroup.{u2} β _inst_2)) (NormedSpace.toModule.{u1, u2} α β _inst_1 _inst_2 _inst_3))))) s)
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : NormedField.{u2} α] [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{u2, u1} α β _inst_1 _inst_2] (s : α), LipschitzWith.{u1, u1} β β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} β _inst_2)) (NNNorm.nnnorm.{u2} α (SeminormedAddGroup.toNNNorm.{u2} α (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} α (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} α (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u2} α (NormedRing.toNonUnitalNormedRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1))))))) s) ((fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.964 : α) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.966 : β) => HSMul.hSMul.{u2, u1, u1} α β β (instHSMul.{u2, u1} α β (SMulZeroClass.toSMul.{u2, u1} α β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α β (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α β (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{u2, u1} α β _inst_1 _inst_2 _inst_3)))))) x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.964 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.966) s)
+Case conversion may be inaccurate. Consider using '#align lipschitz_with_smul lipschitzWith_smulₓ'. -/
theorem lipschitzWith_smul [NormedSpace α β] (s : α) : LipschitzWith ‖s‖₊ ((· • ·) s : β → β) :=
lipschitzWith_iff_dist_le_mul.2 fun x y => by rw [dist_smul₀, coe_nnnorm]
#align lipschitz_with_smul lipschitzWith_smul
+/- warning: norm_smul_of_nonneg -> norm_smul_of_nonneg is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] {t : Real}, (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) t) -> (forall (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) (SMul.smul.{0, u1} Real β (SMulZeroClass.toHasSmul.{0, u1} Real β (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real β (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2))))) (Module.toMulActionWithZero.{0, u1} Real β (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3))))) t x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) t (Norm.norm.{u1} β (SeminormedAddCommGroup.toHasNorm.{u1} β _inst_2) x)))
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : SeminormedAddCommGroup.{u1} β] [_inst_3 : NormedSpace.{0, u1} Real β Real.normedField _inst_2] {t : Real}, (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) t) -> (forall (x : β), Eq.{1} Real (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) (HSMul.hSMul.{0, u1, u1} Real β β (instHSMul.{0, u1} Real β (SMulZeroClass.toSMul.{0, u1} Real β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real β Real.instZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real β Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real β Real.semiring (AddCommGroup.toAddCommMonoid.{u1} β (SeminormedAddCommGroup.toAddCommGroup.{u1} β _inst_2)) (NormedSpace.toModule.{0, u1} Real β Real.normedField _inst_2 _inst_3)))))) t x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) t (Norm.norm.{u1} β (SeminormedAddCommGroup.toNorm.{u1} β _inst_2) x)))
+Case conversion may be inaccurate. Consider using '#align norm_smul_of_nonneg norm_smul_of_nonnegₓ'. -/
theorem norm_smul_of_nonneg [NormedSpace ℝ β] {t : ℝ} (ht : 0 ≤ t) (x : β) : ‖t • x‖ = t * ‖x‖ := by
rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg ht]
#align norm_smul_of_nonneg norm_smul_of_nonneg
@@ -143,6 +231,12 @@ variable {E : Type _} [SeminormedAddCommGroup E] [NormedSpace α E]
variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace α F]
+/- warning: eventually_nhds_norm_smul_sub_lt -> eventually_nhds_norm_smul_sub_lt is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] (c : α) (x : E) {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (Filter.Eventually.{u2} E (fun (y : E) => LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) c (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))) y x))) ε) (nhds.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) x))
+but is expected to have type
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] (c : α) (x : E) {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (Filter.Eventually.{u2} E (fun (y : E) => LT.lt.{0} Real Real.instLTReal (Norm.norm.{u2} E (SeminormedAddCommGroup.toNorm.{u2} E _inst_3) (HSMul.hSMul.{u1, u2, u2} α E E (instHSMul.{u1, u2} α E (SMulZeroClass.toSMul.{u1, u2} α E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} α E (CommMonoidWithZero.toZero.{u1} α (CommGroupWithZero.toCommMonoidWithZero.{u1} α (Semifield.toCommGroupWithZero.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)))))) (Module.toMulActionWithZero.{u1, u2} α E (DivisionSemiring.toSemiring.{u1} α (Semifield.toDivisionSemiring.{u1} α (Field.toSemifield.{u1} α (NormedField.toField.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4)))))) c (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))) y x))) ε) (nhds.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) x))
+Case conversion may be inaccurate. Consider using '#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_ltₓ'. -/
theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
have : Tendsto (fun y => ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
@@ -150,12 +244,24 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
this.Eventually (gt_mem_nhds h)
#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_lt
+/- warning: filter.tendsto.zero_smul_is_bounded_under_le -> Filter.Tendsto.zero_smul_isBoundedUnder_le is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.Tendsto.{u2, u1} ι α f l (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α (SeminormedRing.toPseudoMetricSpace.{u1} α (SeminormedCommRing.toSemiNormedRing.{u1} α (NormedCommRing.toSeminormedCommRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))))))))))) -> (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u3, 1} ι E Real (Norm.norm.{u3} E (SeminormedAddCommGroup.toHasNorm.{u3} E _inst_3)) g)) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
+but is expected to have type
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.Tendsto.{u3, u2} ι α f l (nhds.{u2} α (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α (SeminormedRing.toPseudoMetricSpace.{u2} α (SeminormedCommRing.toSeminormedRing.{u2} α (NormedCommRing.toSeminormedCommRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))))) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))))))) -> (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1328 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1330 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1328 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1330) l (Function.comp.{succ u3, succ u1, 1} ι E Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3)) g)) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+Case conversion may be inaccurate. Consider using '#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_leₓ'. -/
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
hf.op_zero_isBoundedUnder_le hg (· • ·) norm_smul_le
#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_le
+/- warning: filter.is_bounded_under.smul_tendsto_zero -> Filter.IsBoundedUnder.smul_tendsto_zero is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {ι : Type.{u2}} [_inst_1 : NormedField.{u1} α] {E : Type.{u3}} [_inst_3 : SeminormedAddCommGroup.{u3} E] [_inst_4 : NormedSpace.{u1, u3} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u2} ι}, (Filter.IsBoundedUnder.{0, u2} Real ι (LE.le.{0} Real Real.hasLe) l (Function.comp.{succ u2, succ u1, 1} ι α Real (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1)) f)) -> (Filter.Tendsto.{u2, u3} ι E g l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3))))))))))) -> (Filter.Tendsto.{u2, u3} ι E (fun (x : ι) => SMul.smul.{u1, u3} α E (SMulZeroClass.toHasSmul.{u1, u3} α E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u3} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u3} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3))))) (Module.toMulActionWithZero.{u1, u3} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} E (SeminormedAddCommGroup.toAddCommGroup.{u3} E _inst_3)) (NormedSpace.toModule.{u1, u3} α E _inst_1 _inst_3 _inst_4))))) (f x) (g x)) l (nhds.{u3} E (UniformSpace.toTopologicalSpace.{u3} E (PseudoMetricSpace.toUniformSpace.{u3} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u3} E _inst_3))) (OfNat.ofNat.{u3} E 0 (OfNat.mk.{u3} E 0 (Zero.zero.{u3} E (AddZeroClass.toHasZero.{u3} E (AddMonoid.toAddZeroClass.{u3} E (SubNegMonoid.toAddMonoid.{u3} E (AddGroup.toSubNegMonoid.{u3} E (SeminormedAddGroup.toAddGroup.{u3} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u3} E _inst_3)))))))))))
+but is expected to have type
+ forall {α : Type.{u2}} {ι : Type.{u3}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {f : ι -> α} {g : ι -> E} {l : Filter.{u3} ι}, (Filter.IsBoundedUnder.{0, u3} Real ι (fun (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1431 : Real) (x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1433 : Real) => LE.le.{0} Real Real.instLEReal x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1431 x._@.Mathlib.Analysis.NormedSpace.Basic._hyg.1433) l (Function.comp.{succ u3, succ u2, 1} ι α Real (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1)) f)) -> (Filter.Tendsto.{u3, u1} ι E g l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) -> (Filter.Tendsto.{u3, u1} ι E (fun (x : ι) => HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (f x) (g x)) l (nhds.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))))
+Case conversion may be inaccurate. Consider using '#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zeroₓ'. -/
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
@@ -163,6 +269,12 @@ theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {
(norm_smul_le y x).trans_eq (mul_comm _ _)
#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zero
+/- warning: closure_ball -> closure_ball is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (closure.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (closure.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+Case conversion may be inaccurate. Consider using '#align closure_ball closure_ballₓ'. -/
theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
closure (ball x r) = closedBall x r :=
by
@@ -181,6 +293,12 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
apply mul_lt_mul' <;> assumption
#align closure_ball closure_ball
+/- warning: frontier_ball -> frontier_ball is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+Case conversion may be inaccurate. Consider using '#align frontier_ball frontier_ballₓ'. -/
theorem frontier_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (ball x r) = sphere x r :=
by
@@ -188,6 +306,12 @@ theorem frontier_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
ext x; exact (@eq_iff_le_not_lt ℝ _ _ _).symm
#align frontier_ball frontier_ball
+/- warning: interior_closed_ball -> interior_closedBall is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (interior.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+Case conversion may be inaccurate. Consider using '#align interior_closed_ball interior_closedBallₓ'. -/
theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
interior (closedBall x r) = ball x r :=
by
@@ -211,6 +335,12 @@ theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0)
simpa [f, dist_eq_norm, norm_smul] using hc
#align interior_closed_ball interior_closedBall
+/- warning: frontier_closed_ball -> frontier_closedBall is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3] (x : E) {r : Real}, (Ne.{1} Real r (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Eq.{succ u1} (Set.{u1} E) (frontier.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r)) (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) x r))
+Case conversion may be inaccurate. Consider using '#align frontier_closed_ball frontier_closedBallₓ'. -/
theorem frontier_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (closedBall x r) = sphere x r := by
rw [frontier, closure_closed_ball, interior_closedBall x hr, closed_ball_diff_ball]
@@ -231,6 +361,12 @@ instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
Int.norm_eq_abs, ← Int.cast_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ←
@Int.cast_one ℝ _, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
+/- warning: homeomorph_unit_ball -> homeomorphUnitBall is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Homeomorph.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))
+Case conversion may be inaccurate. Consider using '#align homeomorph_unit_ball homeomorphUnitBallₓ'. -/
/-- A (semi) normed real vector space is homeomorphic to the unit ball in the same space.
This homeomorphism sends `x : E` to `(1 + ‖x‖²)^(- ½) • x`.
@@ -271,6 +407,12 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
nlinarith [norm_nonneg (y : E), (mem_ball_zero_iff.1 y.2 : ‖(y : E)‖ < 1)]
#align homeomorph_unit_ball homeomorphUnitBall
+/- warning: coe_homeomorph_unit_ball_apply_zero -> coe_homeomorphUnitBall_apply_zero is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Eq.{succ u1} E ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))))))) (coeFn.{succ u1, succ u1} (Homeomorph.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) (fun (_x : Homeomorph.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) => E -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))) (Homeomorph.hasCoeToFun.{u1, u1} E (coeSort.{succ u1, succ (succ u1)} (Set.{u1} E) Type.{u1} (Set.hasCoeToSort.{u1} E) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (Subtype.topologicalSpace.{u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) (homeomorphUnitBall.{u1} E _inst_3 _inst_7) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3))))))))))) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (SeminormedAddGroup.toAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E _inst_3)))))))))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_7 : NormedSpace.{0, u1} Real E Real.normedField _inst_3], Eq.{succ u1} E (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (FunLike.coe.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) E (fun (_x : E) => Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (Homeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))) E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (Homeomorph.instEquivLikeHomeomorph.{u1, u1} E (Set.Elem.{u1} E (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))) (instTopologicalSpaceSubtype.{u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E _inst_3))))))) (homeomorphUnitBall.{u1} E _inst_3 _inst_7) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))))))) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3))))))))
+Case conversion may be inaccurate. Consider using '#align coe_homeomorph_unit_ball_apply_zero coe_homeomorphUnitBall_apply_zeroₓ'. -/
@[simp]
theorem coe_homeomorphUnitBall_apply_zero [NormedSpace ℝ E] :
(homeomorphUnitBall (0 : E) : E) = 0 := by simp [homeomorphUnitBall]
@@ -282,12 +424,15 @@ instance : NormedSpace α (ULift E) :=
{ ULift.normedAddCommGroup, ULift.module' with
norm_smul_le := fun s x => (norm_smul_le s x.down : _) }
+#print Prod.normedSpace /-
/-- The product of two normed spaces is a normed space, with the sup norm. -/
instance Prod.normedSpace : NormedSpace α (E × F) :=
{ Prod.normedAddCommGroup, Prod.module with
norm_smul_le := fun s x => by simp [Prod.norm_def, norm_smul_le, mul_max_of_nonneg] }
#align prod.normed_space Prod.normedSpace
+-/
+#print Pi.normedSpace /-
/-- The product of finitely many normed spaces is a normed space, with the sup norm. -/
instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCommGroup (E i)]
[∀ i, NormedSpace α (E i)] : NormedSpace α (∀ i, E i)
@@ -297,18 +442,29 @@ instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCo
NNReal.mul_finset_sup]
exact Finset.sup_mono_fun fun _ _ => norm_smul_le _ _
#align pi.normed_space Pi.normedSpace
+-/
+#print MulOpposite.normedSpace /-
instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
{ MulOpposite.normedAddCommGroup, MulOpposite.module _ with
norm_smul_le := fun s x => norm_smul_le s x.unop }
#align mul_opposite.normed_space MulOpposite.normedSpace
+-/
+#print Submodule.normedSpace /-
/-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/
instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type _}
[SeminormedAddCommGroup E] [NormedSpace 𝕜 E] [Module R E] [IsScalarTower 𝕜 R E]
(s : Submodule R E) : NormedSpace 𝕜 s where norm_smul_le c x := norm_smul_le c (x : E)
#align submodule.normed_space Submodule.normedSpace
+-/
+/- warning: rescale_to_shell_semi_normed_zpow -> rescale_to_shell_semi_normed_zpow is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u1} α (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x)))))))))
+but is expected to have type
+ forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u2} α (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x)))))))))
+Case conversion may be inaccurate. Consider using '#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpowₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
the rescaling element that shows up in applications. -/
@@ -338,6 +494,12 @@ theorem rescale_to_shell_semi_normed_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ}
exact mul_le_mul_of_nonneg_right hn.1 (norm_nonneg _)
#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpow
+/- warning: rescale_to_shell_semi_normed -> rescale_to_shell_semi_normed is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{u1, u2} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero)))) -> (Exists.{succ u1} α (fun (d : α) => And (Ne.{succ u1} α d (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) d x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) (NormedSpace.toModule.{u1, u2} α E _inst_1 _inst_3 _inst_4))))) d x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (SeminormedAddCommGroup.toHasNorm.{u2} E _inst_3) x)))))))))
+but is expected to have type
+ forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_3 : SeminormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{u2, u1} α E _inst_1 _inst_3] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{1} Real (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x) (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal))) -> (Exists.{succ u2} α (fun (d : α) => And (Ne.{succ u2} α d (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) d x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E _inst_3)) (NormedSpace.toModule.{u2, u1} α E _inst_1 _inst_3 _inst_4)))))) d x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (SeminormedAddCommGroup.toNorm.{u1} E _inst_3) x)))))))))
+Case conversion may be inaccurate. Consider using '#align rescale_to_shell_semi_normed rescale_to_shell_semi_normedₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
the rescaling element that shows up in applications. -/
@@ -349,6 +511,7 @@ theorem rescale_to_shell_semi_normed {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εp
end SeminormedAddCommGroup
+#print NormedSpace.induced /-
/-- A linear map from a `module` to a `normed_space` induces a `normed_space` structure on the
domain, using the `seminormed_add_comm_group.induced` norm.
@@ -361,6 +524,7 @@ def NormedSpace.induced {F : Type _} (α β γ : Type _) [NormedField α] [AddCo
unfold norm
exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_space.induced NormedSpace.induced
+-/
section NormedAddCommGroup
@@ -372,6 +536,7 @@ variable {F : Type _} [NormedAddCommGroup F] [NormedSpace α F]
open NormedField
+#print NormedSpace.toModule' /-
/-- While this may appear identical to `normed_space.to_module`, it contains an implicit argument
involving `normed_add_comm_group.to_seminormed_add_comm_group` that typeclass inference has trouble
inferring.
@@ -389,11 +554,18 @@ gives some more context. -/
instance (priority := 100) NormedSpace.toModule' : Module α F :=
NormedSpace.toModule
#align normed_space.to_module' NormedSpace.toModule'
+-/
section Surj
variable (E) [NormedSpace ℝ E] [Nontrivial E]
+/- warning: exists_norm_eq -> exists_norm_eq is a dubious translation:
+lean 3 declaration is
+ forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E] {c : Real}, (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) c) -> (Exists.{succ u1} E (fun (x : E) => Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) c))
+but is expected to have type
+ forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E] {c : Real}, (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) c) -> (Exists.{succ u1} E (fun (x : E) => Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) c))
+Case conversion may be inaccurate. Consider using '#align exists_norm_eq exists_norm_eqₓ'. -/
theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
by
rcases exists_ne (0 : E) with ⟨x, hx⟩
@@ -402,22 +574,38 @@ theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c :=
simp [norm_smul, Real.norm_of_nonneg hc, hx]
#align exists_norm_eq exists_norm_eq
+/- warning: range_norm -> range_norm is a dubious translation:
+lean 3 declaration is
+ forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E], Eq.{1} (Set.{0} Real) (Set.range.{0, succ u1} Real E (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2))) (Set.Ici.{0} Real Real.preorder (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))))
+but is expected to have type
+ forall (E : Type.{u1}) [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_6 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_7 : Nontrivial.{u1} E], Eq.{1} (Set.{0} Real) (Set.range.{0, succ u1} Real E (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2))) (Set.Ici.{0} Real Real.instPreorderReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)))
+Case conversion may be inaccurate. Consider using '#align range_norm range_normₓ'. -/
@[simp]
theorem range_norm : range (norm : E → ℝ) = Ici 0 :=
Subset.antisymm (range_subset_iff.2 norm_nonneg) fun _ => exists_norm_eq E
#align range_norm range_norm
+#print nnnorm_surjective /-
theorem nnnorm_surjective : Surjective (nnnorm : E → ℝ≥0) := fun c =>
(exists_norm_eq E c.coe_nonneg).imp fun x h => NNReal.eq h
#align nnnorm_surjective nnnorm_surjective
+-/
+#print range_nnnorm /-
@[simp]
theorem range_nnnorm : range (nnnorm : E → ℝ≥0) = univ :=
(nnnorm_surjective E).range_eq
#align range_nnnorm range_nnnorm
+-/
end Surj
+/- warning: real.punctured_nhds_module_ne_bot -> Real.punctured_nhds_module_neBot is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_6 : AddCommGroup.{u1} E] [_inst_7 : TopologicalSpace.{u1} E] [_inst_8 : ContinuousAdd.{u1} E _inst_7 (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_6)))))] [_inst_9 : Nontrivial.{u1} E] [_inst_10 : Module.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)] [_inst_11 : ContinuousSMul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real Real.semiring)))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real Real.semiring) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6) _inst_10)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) _inst_7] (x : E), Filter.NeBot.{u1} E (nhdsWithin.{u1} E _inst_7 x (HasCompl.compl.{u1} (Set.{u1} E) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} E) (Set.booleanAlgebra.{u1} E)) (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.hasSingleton.{u1} E) x)))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_6 : AddCommGroup.{u1} E] [_inst_7 : TopologicalSpace.{u1} E] [_inst_8 : ContinuousAdd.{u1} E _inst_7 (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (AddCommGroup.toAddGroup.{u1} E _inst_6)))))] [_inst_9 : Nontrivial.{u1} E] [_inst_10 : Module.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6)] [_inst_11 : ContinuousSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_6))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_6))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E _inst_6))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E _inst_6) _inst_10)))) (UniformSpace.toTopologicalSpace.{0} Real (PseudoMetricSpace.toUniformSpace.{0} Real Real.pseudoMetricSpace)) _inst_7] (x : E), Filter.NeBot.{u1} E (nhdsWithin.{u1} E _inst_7 x (HasCompl.compl.{u1} (Set.{u1} E) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} E) (Set.instBooleanAlgebraSet.{u1} E)) (Singleton.singleton.{u1, u1} E (Set.{u1} E) (Set.instSingletonSet.{u1} E) x)))
+Case conversion may be inaccurate. Consider using '#align real.punctured_nhds_module_ne_bot Real.punctured_nhds_module_neBotₓ'. -/
/-- If `E` is a nontrivial topological module over `ℝ`, then `E` has no isolated points.
This is a particular case of `module.punctured_nhds_ne_bot`. -/
instance Real.punctured_nhds_module_neBot {E : Type _} [AddCommGroup E] [TopologicalSpace E]
@@ -425,26 +613,42 @@ instance Real.punctured_nhds_module_neBot {E : Type _} [AddCommGroup E] [Topolog
Module.punctured_nhds_neBot ℝ E x
#align real.punctured_nhds_module_ne_bot Real.punctured_nhds_module_neBot
-theorem interior_closed_ball' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
+#print interior_closedBall' /-
+theorem interior_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
interior (closedBall x r) = ball x r :=
by
rcases eq_or_ne r 0 with (rfl | hr)
· rw [closed_ball_zero, ball_zero, interior_singleton]
· exact interior_closedBall x hr
-#align interior_closed_ball' interior_closed_ball'
+#align interior_closed_ball' interior_closedBall'
+-/
-theorem frontier_closed_ball' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
+#print frontier_closedBall' /-
+theorem frontier_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
frontier (closedBall x r) = sphere x r := by
- rw [frontier, closure_closed_ball, interior_closed_ball' x r, closed_ball_diff_ball]
-#align frontier_closed_ball' frontier_closed_ball'
+ rw [frontier, closure_closed_ball, interior_closedBall' x r, closed_ball_diff_ball]
+#align frontier_closed_ball' frontier_closedBall'
+-/
variable {α}
+/- warning: rescale_to_shell_zpow -> rescale_to_shell_zpow is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{succ u2} E x (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2)))))))))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u1} α (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) (HPow.hPow.{u1, 0, u1} α Int α (instHPow.{u1, 0} α Int (DivInvMonoid.Pow.{u1} α (DivisionRing.toDivInvMonoid.{u1} α (NormedDivisionRing.toDivisionRing.{u1} α (NormedField.toNormedDivisionRing.{u1} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) x)))))))))
+but is expected to have type
+ forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2))))))))) -> (Exists.{1} Int (fun (n : Int) => And (Ne.{succ u2} α (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n) x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) (HPow.hPow.{u2, 0, u2} α Int α (instHPow.{u2, 0} α Int (DivInvMonoid.Pow.{u2} α (DivisionRing.toDivInvMonoid.{u2} α (NormedDivisionRing.toDivisionRing.{u2} α (NormedField.toNormedDivisionRing.{u2} α _inst_1))))) c n))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x)))))))))
+Case conversion may be inaccurate. Consider using '#align rescale_to_shell_zpow rescale_to_shell_zpowₓ'. -/
theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
rescale_to_shell_semi_normed_zpow hc εpos (mt norm_eq_zero.1 hx)
#align rescale_to_shell_zpow rescale_to_shell_zpow
+/- warning: rescale_to_shell -> rescale_to_shell is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} [_inst_1 : NormedField.{u1} α] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) ε) -> (forall {x : E}, (Ne.{succ u2} E x (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2)))))))))) -> (Exists.{succ u1} α (fun (d : α) => And (Ne.{succ u1} α d (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonAssocRing.toNonUnitalNonAssocRing.{u1} α (Ring.toNonAssocRing.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))))))) (And (LT.lt.{0} Real Real.hasLt (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) d x)) ε) (And (LE.le.{0} Real Real.hasLe (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) ε (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (SMul.smul.{u1, u2} α E (SMulZeroClass.toHasSmul.{u1, u2} α E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} α E (MulZeroClass.toHasZero.{u1} α (MulZeroOneClass.toMulZeroClass.{u1} α (MonoidWithZero.toMulZeroOneClass.{u1} α (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} α E (Semiring.toMonoidWithZero.{u1} α (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} α E (Ring.toSemiring.{u1} α (NormedRing.toRing.{u1} α (NormedCommRing.toNormedRing.{u1} α (NormedField.toNormedCommRing.{u1} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) d x))) (LE.le.{0} Real Real.hasLe (Inv.inv.{0} Real Real.hasInv (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ε) (Norm.norm.{u1} α (NormedField.toHasNorm.{u1} α _inst_1) c)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) x)))))))))
+but is expected to have type
+ forall {α : Type.{u2}} [_inst_1 : NormedField.{u2} α] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {c : α}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) -> (forall {ε : Real}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) ε) -> (forall {x : E}, (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2))))))))) -> (Exists.{succ u2} α (fun (d : α) => And (Ne.{succ u2} α d (OfNat.ofNat.{u2} α 0 (Zero.toOfNat0.{u2} α (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))))) (And (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) d x)) ε) (And (LE.le.{0} Real Real.instLEReal (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) ε (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{u2, u1, u1} α E E (instHSMul.{u2, u1} α E (SMulZeroClass.toSMul.{u2, u1} α E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} α E (CommMonoidWithZero.toZero.{u2} α (CommGroupWithZero.toCommMonoidWithZero.{u2} α (Semifield.toCommGroupWithZero.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} α E (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} α E (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} α E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)))))) d x))) (LE.le.{0} Real Real.instLEReal (Inv.inv.{0} Real Real.instInvReal (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) d)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Inv.inv.{0} Real Real.instInvReal ε) (Norm.norm.{u2} α (NormedField.toNorm.{u2} α _inst_1) c)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x)))))))))
+Case conversion may be inaccurate. Consider using '#align rescale_to_shell rescale_to_shellₓ'. -/
/-- If there is a scalar `c` with `‖c‖>1`, then any element can be moved by scalar multiplication to
any shell of width `‖c‖`. Also recap information on the norm of the rescaling element that shows
up in applications. -/
@@ -462,6 +666,12 @@ variable (𝕜 E : Type _) [NontriviallyNormedField 𝕜] [NormedAddCommGroup E]
include 𝕜
+/- warning: normed_space.exists_lt_norm -> NormedSpace.exists_lt_norm is a dubious translation:
+lean 3 declaration is
+ forall (𝕜 : Type.{u1}) (E : Type.{u2}) [_inst_1 : NontriviallyNormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NontriviallyNormedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : Nontrivial.{u2} E] (c : Real), Exists.{succ u2} E (fun (x : E) => LT.lt.{0} Real Real.hasLt c (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) x))
+but is expected to have type
+ forall (𝕜 : Type.{u2}) (E : Type.{u1}) [_inst_1 : NontriviallyNormedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NontriviallyNormedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : Nontrivial.{u1} E] (c : Real), Exists.{succ u1} E (fun (x : E) => LT.lt.{0} Real Real.instLTReal c (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x))
+Case conversion may be inaccurate. Consider using '#align normed_space.exists_lt_norm NormedSpace.exists_lt_normₓ'. -/
/-- If `E` is a nontrivial normed space over a nontrivially normed field `𝕜`, then `E` is unbounded:
for any `c : ℝ`, there exists a vector `x : E` with norm strictly greater than `c`. -/
theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ :=
@@ -473,12 +683,24 @@ theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ :=
rwa [norm_pos_iff]
#align normed_space.exists_lt_norm NormedSpace.exists_lt_norm
+/- warning: normed_space.unbounded_univ -> NormedSpace.unbounded_univ is a dubious translation:
+lean 3 declaration is
+ forall (𝕜 : Type.{u1}) (E : Type.{u2}) [_inst_1 : NontriviallyNormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NontriviallyNormedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : Nontrivial.{u2} E], Not (Metric.Bounded.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) (Set.univ.{u2} E))
+but is expected to have type
+ forall (𝕜 : Type.{u2}) (E : Type.{u1}) [_inst_1 : NontriviallyNormedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NontriviallyNormedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : Nontrivial.{u1} E], Not (Metric.Bounded.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) (Set.univ.{u1} E))
+Case conversion may be inaccurate. Consider using '#align normed_space.unbounded_univ NormedSpace.unbounded_univₓ'. -/
protected theorem NormedSpace.unbounded_univ : ¬Bounded (univ : Set E) := fun h =>
let ⟨R, hR⟩ := bounded_iff_forall_norm_le.1 h
let ⟨x, hx⟩ := NormedSpace.exists_lt_norm 𝕜 E R
hx.not_le (hR x trivial)
#align normed_space.unbounded_univ NormedSpace.unbounded_univ
+/- warning: normed_space.noncompact_space -> NormedSpace.noncompactSpace is a dubious translation:
+lean 3 declaration is
+ forall (𝕜 : Type.{u1}) (E : Type.{u2}) [_inst_1 : NontriviallyNormedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NontriviallyNormedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : Nontrivial.{u2} E], NoncompactSpace.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))))
+but is expected to have type
+ forall (𝕜 : Type.{u2}) (E : Type.{u1}) [_inst_1 : NontriviallyNormedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NontriviallyNormedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : Nontrivial.{u1} E], NoncompactSpace.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))))
+Case conversion may be inaccurate. Consider using '#align normed_space.noncompact_space NormedSpace.noncompactSpaceₓ'. -/
/-- A normed vector space over a nontrivially normed field is a noncompact space. This cannot be
an instance because in order to apply it, Lean would have to search for `normed_space 𝕜 E` with
unknown `𝕜`. We register this as an instance in two cases: `𝕜 = E` and `𝕜 = ℝ`. -/
@@ -486,20 +708,25 @@ protected theorem NormedSpace.noncompactSpace : NoncompactSpace E :=
⟨fun h => NormedSpace.unbounded_univ 𝕜 _ h.Bounded⟩
#align normed_space.noncompact_space NormedSpace.noncompactSpace
+#print NontriviallyNormedField.noncompactSpace /-
instance (priority := 100) NontriviallyNormedField.noncompactSpace : NoncompactSpace 𝕜 :=
NormedSpace.noncompactSpace 𝕜 𝕜
#align nontrivially_normed_field.noncompact_space NontriviallyNormedField.noncompactSpace
+-/
omit 𝕜
+#print RealNormedSpace.noncompactSpace /-
instance (priority := 100) RealNormedSpace.noncompactSpace [NormedSpace ℝ E] : NoncompactSpace E :=
NormedSpace.noncompactSpace ℝ E
#align real_normed_space.noncompact_space RealNormedSpace.noncompactSpace
+-/
end NontriviallyNormedSpace
section NormedAlgebra
+#print NormedAlgebra /-
/-- A normed algebra `𝕜'` over `𝕜` is normed module that is also an algebra.
See the implementation notes for `algebra` for a discussion about non-unital algebras. Following
@@ -513,13 +740,17 @@ class NormedAlgebra (𝕜 : Type _) (𝕜' : Type _) [NormedField 𝕜] [Seminor
Algebra 𝕜 𝕜' where
norm_smul_le : ∀ (r : 𝕜) (x : 𝕜'), ‖r • x‖ ≤ ‖r‖ * ‖x‖
#align normed_algebra NormedAlgebra
+-/
variable {𝕜 : Type _} (𝕜' : Type _) [NormedField 𝕜] [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜']
+#print NormedAlgebra.toNormedSpace /-
instance (priority := 100) NormedAlgebra.toNormedSpace : NormedSpace 𝕜 𝕜'
where norm_smul_le := NormedAlgebra.norm_smul_le
#align normed_algebra.to_normed_space NormedAlgebra.toNormedSpace
+-/
+#print NormedAlgebra.toNormedSpace' /-
/-- While this may appear identical to `normed_algebra.to_normed_space`, it contains an implicit
argument involving `normed_ring.to_semi_normed_ring` that typeclass inference has trouble inferring.
@@ -535,22 +766,47 @@ See `normed_space.to_module'` for a similar situation. -/
instance (priority := 100) NormedAlgebra.toNormedSpace' {𝕜'} [NormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜'] :
NormedSpace 𝕜 𝕜' := by infer_instance
#align normed_algebra.to_normed_space' NormedAlgebra.toNormedSpace'
+-/
+/- warning: norm_algebra_map -> norm_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x) (Norm.norm.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
+Case conversion may be inaccurate. Consider using '#align norm_algebra_map norm_algebraMapₓ'. -/
theorem norm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ * ‖(1 : 𝕜')‖ :=
by
rw [Algebra.algebraMap_eq_smul_one]
exact norm_smul _ _
#align norm_algebra_map norm_algebraMap
+/- warning: nnnorm_algebra_map -> nnnorm_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (OfNat.mk.{u2} 𝕜' 1 (One.one.{u2} 𝕜' (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x) (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (OfNat.ofNat.{u2} 𝕜' 1 (One.toOfNat1.{u2} 𝕜' (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))))
+Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map nnnorm_algebraMapₓ'. -/
theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ * ‖(1 : 𝕜')‖₊ :=
Subtype.ext <| norm_algebraMap 𝕜' x
#align nnnorm_algebra_map nnnorm_algebraMap
+/- warning: norm_algebra_map' -> norm_algebra_map' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toHasNorm.{u1} 𝕜 _inst_1) x)
+but is expected to have type
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} Real (Norm.norm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (Norm.norm.{u1} 𝕜 (NormedField.toNorm.{u1} 𝕜 _inst_1) x)
+Case conversion may be inaccurate. Consider using '#align norm_algebra_map' norm_algebra_map'ₓ'. -/
@[simp]
theorem norm_algebra_map' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
rw [norm_algebraMap, norm_one, mul_one]
#align norm_algebra_map' norm_algebra_map'
+/- warning: nnnorm_algebra_map' -> nnnorm_algebra_map' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} 𝕜' (SeminormedAddGroup.toNNNorm.{u2} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u2} 𝕜' _inst_2)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
+but is expected to have type
+ forall {𝕜 : Type.{u1}} (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))] (x : 𝕜), Eq.{1} NNReal (NNNorm.nnnorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') x) _inst_2)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)) x)) (NNNorm.nnnorm.{u1} 𝕜 (SeminormedAddGroup.toNNNorm.{u1} 𝕜 (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜 (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} 𝕜 (NormedRing.toNonUnitalNormedRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))))) x)
+Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map' nnnorm_algebra_map'ₓ'. -/
@[simp]
theorem nnnorm_algebra_map' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
Subtype.ext <| norm_algebra_map' _ _
@@ -560,11 +816,23 @@ section NNReal
variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
+/- warning: norm_algebra_map_nnreal -> norm_algebraMap_nNReal is a dubious translation:
+lean 3 declaration is
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) x)
+but is expected to have type
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (NonAssocRing.toOne.{u1} 𝕜' (Ring.toNonAssocRing.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} Real (Norm.norm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) (NNReal.toReal x)
+Case conversion may be inaccurate. Consider using '#align norm_algebra_map_nnreal norm_algebraMap_nNRealₓ'. -/
@[simp]
theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
(norm_algebra_map' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.Prop
#align norm_algebra_map_nnreal norm_algebraMap_nNReal
+/- warning: nnnorm_algebra_map_nnreal -> nnnorm_algebraMap_nNReal is a dubious translation:
+lean 3 declaration is
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toHasNorm.{u1} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u1} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜' (Ring.toAddCommGroupWithOne.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} 𝕜' (SeminormedAddGroup.toNNNorm.{u1} 𝕜' (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} 𝕜' (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} 𝕜' (SeminormedRing.toNonUnitalSeminormedRing.{u1} 𝕜' _inst_2)))) (coeFn.{succ u1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (fun (_x : RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) => NNReal -> 𝕜') (RingHom.hasCoeToFun.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal NNReal.commSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (algebraMap.{0, u1} NNReal 𝕜' NNReal.commSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.algebra.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
+but is expected to have type
+ forall (𝕜' : Type.{u1}) [_inst_2 : SeminormedRing.{u1} 𝕜'] [_inst_4 : NormOneClass.{u1} 𝕜' (SeminormedRing.toNorm.{u1} 𝕜' _inst_2) (NonAssocRing.toOne.{u1} 𝕜' (Ring.toNonAssocRing.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))] [_inst_5 : NormedAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2] (x : NNReal), Eq.{1} NNReal (NNNorm.nnnorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddGroup.toNNNorm.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) (SeminormedRing.toNonUnitalSeminormedRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') x) _inst_2)))) (FunLike.coe.{succ u1, 1, succ u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal (fun (_x : NNReal) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : NNReal) => 𝕜') _x) (MulHomClass.toFunLike.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonUnitalNonAssocSemiring.toMul.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)))) (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{u1, 0, u1} (RingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)))) NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{0, u1} NNReal 𝕜' (Semiring.toNonAssocSemiring.{0} NNReal (CommSemiring.toSemiring.{0} NNReal instNNRealCommSemiring)) (Semiring.toNonAssocSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2))))))) (algebraMap.{0, u1} NNReal 𝕜' instNNRealCommSemiring (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NNReal.instAlgebraNNRealInstNNRealCommSemiring.{u1} 𝕜' (Ring.toSemiring.{u1} 𝕜' (SeminormedRing.toRing.{u1} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{0, u1} Real 𝕜' Real.normedField _inst_2 _inst_5))) x)) x
+Case conversion may be inaccurate. Consider using '#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nNRealₓ'. -/
@[simp]
theorem nnnorm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
Subtype.ext <| norm_algebraMap_nNReal 𝕜' x
@@ -574,6 +842,12 @@ end NNReal
variable (𝕜 𝕜')
+/- warning: algebra_map_isometry -> algebraMap_isometry is a dubious translation:
+lean 3 declaration is
+ forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toHasNorm.{u2} 𝕜' _inst_2) (AddMonoidWithOne.toOne.{u2} 𝕜' (AddGroupWithOne.toAddMonoidWithOne.{u2} 𝕜' (AddCommGroupWithOne.toAddGroupWithOne.{u2} 𝕜' (Ring.toAddCommGroupWithOne.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))))], Isometry.{u1, u2} 𝕜 𝕜' (PseudoMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (SeminormedRing.toPseudoMetricSpace.{u1} 𝕜 (SeminormedCommRing.toSemiNormedRing.{u1} 𝕜 (NormedCommRing.toSeminormedCommRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 _inst_1))))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (fun (_x : RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) => 𝕜 -> 𝕜') (RingHom.hasCoeToFun.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
+but is expected to have type
+ forall (𝕜 : Type.{u1}) (𝕜' : Type.{u2}) [_inst_1 : NormedField.{u1} 𝕜] [_inst_2 : SeminormedRing.{u2} 𝕜'] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2] [_inst_4 : NormOneClass.{u2} 𝕜' (SeminormedRing.toNorm.{u2} 𝕜' _inst_2) (NonAssocRing.toOne.{u2} 𝕜' (Ring.toNonAssocRing.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))], Isometry.{u1, u2} 𝕜 𝕜' (EMetricSpace.toPseudoEMetricSpace.{u1} 𝕜 (MetricSpace.toEMetricSpace.{u1} 𝕜 (NormedField.toMetricSpace.{u1} 𝕜 _inst_1))) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} 𝕜' (SeminormedRing.toPseudoMetricSpace.{u2} 𝕜' _inst_2)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 (fun (_x : 𝕜) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : 𝕜) => 𝕜') _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonUnitalNonAssocSemiring.toMul.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))))) (NonUnitalNonAssocSemiring.toMul.{u2} 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1)))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜' (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)))) 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))) (RingHom.instRingHomClassRingHom.{u1, u2} 𝕜 𝕜' (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))))) (Semiring.toNonAssocSemiring.{u2} 𝕜' (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2))))))) (algebraMap.{u1, u2} 𝕜 𝕜' (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_1))) (Ring.toSemiring.{u2} 𝕜' (SeminormedRing.toRing.{u2} 𝕜' _inst_2)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 𝕜' _inst_1 _inst_2 _inst_3)))
+Case conversion may be inaccurate. Consider using '#align algebra_map_isometry algebraMap_isometryₓ'. -/
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') :=
by
@@ -581,10 +855,18 @@ theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜
rw [dist_eq_norm, dist_eq_norm, ← RingHom.map_sub, norm_algebra_map']
#align algebra_map_isometry algebraMap_isometry
+#print NormedAlgebra.id /-
instance NormedAlgebra.id : NormedAlgebra 𝕜 𝕜 :=
{ NormedField.toNormedSpace, Algebra.id 𝕜 with }
#align normed_algebra.id NormedAlgebra.id
+-/
+/- warning: normed_algebra_rat -> normedAlgebraRat is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} [_inst_4 : NormedDivisionRing.{u1} 𝕜] [_inst_5 : CharZero.{u1} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜 (AddCommGroupWithOne.toAddGroupWithOne.{u1} 𝕜 (Ring.toAddCommGroupWithOne.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4)))))] [_inst_6 : NormedAlgebra.{0, u1} Real 𝕜 Real.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))], NormedAlgebra.{0, u1} Rat 𝕜 Rat.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))
+but is expected to have type
+ forall {𝕜 : Type.{u1}} [_inst_4 : NormedDivisionRing.{u1} 𝕜] [_inst_5 : CharZero.{u1} 𝕜 (AddGroupWithOne.toAddMonoidWithOne.{u1} 𝕜 (Ring.toAddGroupWithOne.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))))] [_inst_6 : NormedAlgebra.{0, u1} Real 𝕜 Real.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))], NormedAlgebra.{0, u1} Rat 𝕜 Rat.normedField (NormedRing.toSeminormedRing.{u1} 𝕜 (NormedDivisionRing.toNormedRing.{u1} 𝕜 _inst_4))
+Case conversion may be inaccurate. Consider using '#align normed_algebra_rat normedAlgebraRatₓ'. -/
/-- Any normed characteristic-zero division ring that is a normed_algebra over the reals is also a
normed algebra over the rationals.
@@ -596,32 +878,46 @@ instance normedAlgebraRat {𝕜} [NormedDivisionRing 𝕜] [CharZero 𝕜] [Norm
rw [← smul_one_smul ℝ q x, Rat.smul_one_eq_coe, norm_smul, Rat.norm_cast_real]
#align normed_algebra_rat normedAlgebraRat
+#print PUnit.normedAlgebra /-
instance PUnit.normedAlgebra : NormedAlgebra 𝕜 PUnit
where norm_smul_le q x := by simp only [PUnit.norm_eq_zero, MulZeroClass.mul_zero]
#align punit.normed_algebra PUnit.normedAlgebra
+-/
instance : NormedAlgebra 𝕜 (ULift 𝕜') :=
{ ULift.normedSpace with }
+#print Prod.normedAlgebra /-
/-- The product of two normed algebras is a normed algebra, with the sup norm. -/
instance Prod.normedAlgebra {E F : Type _} [SeminormedRing E] [SeminormedRing F] [NormedAlgebra 𝕜 E]
[NormedAlgebra 𝕜 F] : NormedAlgebra 𝕜 (E × F) :=
{ Prod.normedSpace with }
#align prod.normed_algebra Prod.normedAlgebra
+-/
+#print Pi.normedAlgebra /-
/-- The product of finitely many normed algebras is a normed algebra, with the sup norm. -/
instance Pi.normedAlgebra {E : ι → Type _} [Fintype ι] [∀ i, SeminormedRing (E i)]
[∀ i, NormedAlgebra 𝕜 (E i)] : NormedAlgebra 𝕜 (∀ i, E i) :=
{ Pi.normedSpace, Pi.algebra _ E with }
#align pi.normed_algebra Pi.normedAlgebra
+-/
+#print MulOpposite.normedAlgebra /-
instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
NormedAlgebra 𝕜 Eᵐᵒᵖ :=
{ MulOpposite.normedSpace with }
#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
+-/
end NormedAlgebra
+/- warning: normed_algebra.induced -> NormedAlgebra.induced is a dubious translation:
+lean 3 declaration is
+ forall {F : Type.{u1}} (α : Type.{u2}) (β : Type.{u3}) (γ : Type.{u4}) [_inst_1 : NormedField.{u2} α] [_inst_2 : Ring.{u3} β] [_inst_3 : Algebra.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2)] [_inst_4 : SeminormedRing.{u4} γ] [_inst_5 : NormedAlgebra.{u2, u4} α γ _inst_1 _inst_4] [_inst_6 : NonUnitalAlgHomClass.{u1, u2, u3, u4} F α β γ (Ring.toMonoid.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u3} α β (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toAddCommGroup.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (Module.toDistribMulAction.{u2, u4} α γ (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u4} γ (SeminormedAddCommGroup.toAddCommGroup.{u4} γ (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5)))] (f : F), NormedAlgebra.{u2, u3} α β _inst_1 (SeminormedRing.induced.{u1, u3, u4} F β γ _inst_2 _inst_4 (NonUnitalAlgHomClass.toNonUnitalRingHomClass.{u1, u2, u3, u4} F α β γ (Ring.toMonoid.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (Module.toDistribMulAction.{u2, u3} α β (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toAddCommGroup.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u4} α γ (Ring.toSemiring.{u2} α (NormedRing.toRing.{u2} α (NormedCommRing.toNormedRing.{u2} α (NormedField.toNormedCommRing.{u2} α _inst_1)))) (AddCommGroup.toAddCommMonoid.{u4} γ (SeminormedAddCommGroup.toAddCommGroup.{u4} γ (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5))) _inst_6) f)
+but is expected to have type
+ forall {F : Type.{u1}} (α : Type.{u2}) (β : Type.{u3}) (γ : Type.{u4}) [_inst_1 : NormedField.{u2} α] [_inst_2 : Ring.{u3} β] [_inst_3 : Algebra.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2)] [_inst_4 : SeminormedRing.{u4} γ] [_inst_5 : NormedAlgebra.{u2, u4} α γ _inst_1 _inst_4] [_inst_6 : NonUnitalAlgHomClass.{u1, u2, u3, u4} F α β γ (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u3} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (Module.toDistribMulAction.{u2, u4} α γ (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} γ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4))))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5)))] (f : F), NormedAlgebra.{u2, u3} α β _inst_1 (SeminormedRing.induced.{u1, u3, u4} F β γ _inst_2 _inst_4 (NonUnitalAlgHomClass.toNonUnitalRingHomClass.{u1, u2, u3, u4} F α β γ (MonoidWithZero.toMonoid.{u2} α (Semiring.toMonoidWithZero.{u2} α (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2))) (Module.toDistribMulAction.{u2, u3} α β (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} β (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} β (NonAssocRing.toNonUnitalNonAssocRing.{u3} β (Ring.toNonAssocRing.{u3} β _inst_2)))) (Algebra.toModule.{u2, u3} α β (Semifield.toCommSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1))) (Ring.toSemiring.{u3} β _inst_2) _inst_3)) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4)))) (Module.toDistribMulAction.{u2, u4} α γ (DivisionSemiring.toSemiring.{u2} α (Semifield.toDivisionSemiring.{u2} α (Field.toSemifield.{u2} α (NormedField.toField.{u2} α _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} γ (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u4} γ (NonAssocRing.toNonUnitalNonAssocRing.{u4} γ (Ring.toNonAssocRing.{u4} γ (SeminormedRing.toRing.{u4} γ _inst_4))))) (NormedSpace.toModule.{u2, u4} α γ _inst_1 (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u4} γ (SeminormedRing.toNonUnitalSeminormedRing.{u4} γ _inst_4)) (NormedAlgebra.toNormedSpace.{u2, u4} α γ _inst_1 _inst_4 _inst_5))) _inst_6) f)
+Case conversion may be inaccurate. Consider using '#align normed_algebra.induced NormedAlgebra.inducedₓ'. -/
/-- A non-unital algebra homomorphism from an `algebra` to a `normed_algebra` induces a
`normed_algebra` structure on the domain, using the `semi_normed_ring.induced` norm.
@@ -635,6 +931,12 @@ def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Rin
exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_algebra.induced NormedAlgebra.induced
+/- warning: subalgebra.to_normed_algebra -> Subalgebra.toNormedAlgebra is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {A : Type.{u2}} [_inst_1 : SeminormedRing.{u2} A] [_inst_2 : NormedField.{u1} 𝕜] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1] (S : Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)), NormedAlgebra.{u1, u2} 𝕜 (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.setLike.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3))) S) _inst_2 (SubringClass.toSeminormedRing.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.setLike.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) _inst_1 (Subalgebra.toNormedAlgebra._proof_1.{u1, u2} 𝕜 A _inst_1 _inst_2 _inst_3) S)
+but is expected to have type
+ forall {𝕜 : Type.{u1}} {A : Type.{u2}} [_inst_1 : SeminormedRing.{u2} A] [_inst_2 : NormedField.{u1} 𝕜] [_inst_3 : NormedAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1] (S : Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)), NormedAlgebra.{u1, u2} 𝕜 (Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3))) x S)) _inst_2 (SubringClass.toSeminormedRing.{u2, u2} (Subalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) A (Subalgebra.instSetLikeSubalgebra.{u1, u2} 𝕜 A (Semifield.toCommSemiring.{u1} 𝕜 (Field.toSemifield.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (Ring.toSemiring.{u2} A (SeminormedRing.toRing.{u2} A _inst_1)) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) _inst_1 (Subalgebra.instSubringClassSubalgebraToCommSemiringToSemiringInstSetLikeSubalgebra.{u1, u2} 𝕜 A (EuclideanDomain.toCommRing.{u1} 𝕜 (Field.toEuclideanDomain.{u1} 𝕜 (NormedField.toField.{u1} 𝕜 _inst_2))) (SeminormedRing.toRing.{u2} A _inst_1) (NormedAlgebra.toAlgebra.{u1, u2} 𝕜 A _inst_2 _inst_1 _inst_3)) S)
+Case conversion may be inaccurate. Consider using '#align subalgebra.to_normed_algebra Subalgebra.toNormedAlgebraₓ'. -/
instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SeminormedRing A] [NormedField 𝕜]
[NormedAlgebra 𝕜 A] (S : Subalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.Algebra _ _ _ S.val
@@ -660,6 +962,7 @@ instance : NormedSpace 𝕜 (RestrictScalars 𝕜 𝕜' E) :=
norm_smul_le := fun c x =>
(norm_smul_le (algebraMap 𝕜 𝕜' c) (_ : E)).trans_eq <| by rw [norm_algebra_map'] }
+#print Module.RestrictScalars.normedSpaceOrig /-
-- If you think you need this, consider instead reproducing `restrict_scalars.lsmul`
-- appropriately modified here.
/-- The action of the original normed_field on `restrict_scalars 𝕜 𝕜' E`.
@@ -669,7 +972,9 @@ def Module.RestrictScalars.normedSpaceOrig {𝕜 : Type _} {𝕜' : Type _} {E :
[SeminormedAddCommGroup E] [I : NormedSpace 𝕜' E] : NormedSpace 𝕜' (RestrictScalars 𝕜 𝕜' E) :=
I
#align module.restrict_scalars.normed_space_orig Module.RestrictScalars.normedSpaceOrig
+-/
+#print NormedSpace.restrictScalars /-
/-- Warning: This declaration should be used judiciously.
Please consider using `is_scalar_tower` and/or `restrict_scalars 𝕜 𝕜' E` instead.
@@ -680,6 +985,7 @@ inferred, and because it is likely to create instance diamonds.
def NormedSpace.restrictScalars : NormedSpace 𝕜 E :=
RestrictScalars.normedSpace _ 𝕜' _
#align normed_space.restrict_scalars NormedSpace.restrictScalars
+-/
end RestrictScalars
mathlib commit https://github.com/leanprover-community/mathlib/commit/55d771df074d0dd020139ee1cd4b95521422df9f
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit 195fcd60ff2bfe392543bceb0ec2adcdb472db4c
+! leanprover-community/mathlib commit d3af0609f6db8691dffdc3e1fb7feb7da72698f2
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -54,32 +54,51 @@ end Prio
variable [NormedField α] [SeminormedAddCommGroup β]
+-- note: while these are currently strictly weaker than the versions without `le`, they will cease
+-- to be if we eventually generalize `normed_space` from `normed_field α` to `normed_ring α`.
+section Le
+
+theorem norm_smul_le [NormedSpace α β] (r : α) (x : β) : ‖r • x‖ ≤ ‖r‖ * ‖x‖ :=
+ NormedSpace.norm_smul_le _ _
+#align norm_smul_le norm_smul_le
+
+theorem nnnorm_smul_le [NormedSpace α β] (s : α) (x : β) : ‖s • x‖₊ ≤ ‖s‖₊ * ‖x‖₊ :=
+ norm_smul_le s x
+#align nnnorm_smul_le nnnorm_smul_le
+
+theorem dist_smul_le [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s • y) ≤ ‖s‖ * dist x y :=
+ by simpa only [dist_eq_norm, ← smul_sub] using norm_smul_le _ _
+#align dist_smul_le dist_smul_le
+
+theorem nndist_smul_le [NormedSpace α β] (s : α) (x y : β) :
+ nndist (s • x) (s • y) ≤ ‖s‖₊ * nndist x y :=
+ dist_smul_le s x y
+#align nndist_smul_le nndist_smul_le
+
+end Le
+
-- see Note [lower instance priority]
instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β
where
- dist_smul_pair' x y₁ y₂ := by
- simpa [dist_eq_norm, smul_sub] using NormedSpace.norm_smul_le x (y₁ - y₂)
- dist_pair_smul' x₁ x₂ y := by
- simpa [dist_eq_norm, sub_smul] using NormedSpace.norm_smul_le (x₁ - x₂) y
+ dist_smul_pair' x y₁ y₂ := by simpa [dist_eq_norm, smul_sub] using norm_smul_le x (y₁ - y₂)
+ dist_pair_smul' x₁ x₂ y := by simpa [dist_eq_norm, sub_smul] using norm_smul_le (x₁ - x₂) y
#align normed_space.has_bounded_smul NormedSpace.boundedSMul
-- Shortcut instance, as otherwise this will be found by `normed_space.to_module` and be
-- noncomputable.
instance : Module ℝ ℝ := by infer_instance
-instance NormedField.toNormedSpace : NormedSpace α α
- where norm_smul_le a b := le_of_eq (norm_mul a b)
+instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b := norm_mul_le a b
#align normed_field.to_normed_space NormedField.toNormedSpace
theorem norm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖ = ‖s‖ * ‖x‖ :=
by
by_cases h : s = 0
· simp [h]
- · refine' le_antisymm (NormedSpace.norm_smul_le s x) _
+ · refine' le_antisymm (norm_smul_le s x) _
calc
‖s‖ * ‖x‖ = ‖s‖ * ‖s⁻¹ • s • x‖ := by rw [inv_smul_smul₀ h]
- _ ≤ ‖s‖ * (‖s⁻¹‖ * ‖s • x‖) :=
- (mul_le_mul_of_nonneg_left (NormedSpace.norm_smul_le _ _) (norm_nonneg _))
+ _ ≤ ‖s‖ * (‖s⁻¹‖ * ‖s • x‖) := (mul_le_mul_of_nonneg_left (norm_smul_le _ _) (norm_nonneg _))
_ = ‖s • x‖ := by rw [norm_inv, ← mul_assoc, mul_inv_cancel (mt norm_eq_zero.1 h), one_mul]
#align norm_smul norm_smul
@@ -134,14 +153,14 @@ theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (norm ∘ g)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
- hf.op_zero_isBoundedUnder_le hg (· • ·) fun x y => (norm_smul x y).le
+ hf.op_zero_isBoundedUnder_le hg (· • ·) norm_smul_le
#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_le
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
hg.op_zero_isBoundedUnder_le hf (flip (· • ·)) fun x y =>
- ((norm_smul y x).trans (mul_comm _ _)).le
+ (norm_smul_le y x).trans_eq (mul_comm _ _)
#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zero
theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
@@ -261,34 +280,33 @@ open NormedField
instance : NormedSpace α (ULift E) :=
{ ULift.normedAddCommGroup, ULift.module' with
- norm_smul_le := fun s x => (NormedSpace.norm_smul_le s x.down : _) }
+ norm_smul_le := fun s x => (norm_smul_le s x.down : _) }
/-- The product of two normed spaces is a normed space, with the sup norm. -/
instance Prod.normedSpace : NormedSpace α (E × F) :=
{ Prod.normedAddCommGroup, Prod.module with
- norm_smul_le := fun s x => le_of_eq <| by simp [Prod.norm_def, norm_smul, mul_max_of_nonneg] }
+ norm_smul_le := fun s x => by simp [Prod.norm_def, norm_smul_le, mul_max_of_nonneg] }
#align prod.normed_space Prod.normedSpace
/-- The product of finitely many normed spaces is a normed space, with the sup norm. -/
instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCommGroup (E i)]
[∀ i, NormedSpace α (E i)] : NormedSpace α (∀ i, E i)
where norm_smul_le a f :=
- le_of_eq <|
- show
- (↑(Finset.sup Finset.univ fun b : ι => ‖a • f b‖₊) : ℝ) =
- ‖a‖₊ * ↑(Finset.sup Finset.univ fun b : ι => ‖f b‖₊)
- by simp only [(NNReal.coe_mul _ _).symm, NNReal.mul_finset_sup, nnnorm_smul]
+ by
+ simp_rw [← coe_nnnorm, ← NNReal.coe_mul, NNReal.coe_le_coe, Pi.nnnorm_def,
+ NNReal.mul_finset_sup]
+ exact Finset.sup_mono_fun fun _ _ => norm_smul_le _ _
#align pi.normed_space Pi.normedSpace
instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
{ MulOpposite.normedAddCommGroup, MulOpposite.module _ with
- norm_smul_le := fun s x => (norm_smul s x.unop).le }
+ norm_smul_le := fun s x => norm_smul_le s x.unop }
#align mul_opposite.normed_space MulOpposite.normedSpace
/-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/
instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type _}
[SeminormedAddCommGroup E] [NormedSpace 𝕜 E] [Module R E] [IsScalarTower 𝕜 R E]
- (s : Submodule R E) : NormedSpace 𝕜 s where norm_smul_le c x := le_of_eq <| norm_smul c (x : E)
+ (s : Submodule R E) : NormedSpace 𝕜 s where norm_smul_le c x := norm_smul_le c (x : E)
#align submodule.normed_space Submodule.normedSpace
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
@@ -341,7 +359,7 @@ def NormedSpace.induced {F : Type _} (α β γ : Type _) [NormedField α] [AddCo
@NormedSpace α β _ (SeminormedAddCommGroup.induced β γ f)
where norm_smul_le a b := by
unfold norm
- exact (map_smul f a b).symm ▸ (norm_smul a (f b)).le
+ exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_space.induced NormedSpace.induced
section NormedAddCommGroup
@@ -614,7 +632,7 @@ def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Rin
@NormedAlgebra α β _ (SeminormedRing.induced β γ f)
where norm_smul_le a b := by
unfold norm
- exact (map_smul f a b).symm ▸ (norm_smul a (f b)).le
+ exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_algebra.induced NormedAlgebra.induced
instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SeminormedRing A] [NormedField 𝕜]
@@ -640,7 +658,7 @@ instance {𝕜 : Type _} {𝕜' : Type _} {E : Type _} [I : NormedAddCommGroup E
instance : NormedSpace 𝕜 (RestrictScalars 𝕜 𝕜' E) :=
{ RestrictScalars.module 𝕜 𝕜' E with
norm_smul_le := fun c x =>
- (NormedSpace.norm_smul_le (algebraMap 𝕜 𝕜' c) (_ : E)).trans_eq <| by rw [norm_algebra_map'] }
+ (norm_smul_le (algebraMap 𝕜 𝕜' c) (_ : E)).trans_eq <| by rw [norm_algebra_map'] }
-- If you think you need this, consider instead reproducing `restrict_scalars.lsmul`
-- appropriately modified here.
mathlib commit https://github.com/leanprover-community/mathlib/commit/da3fc4a33ff6bc75f077f691dc94c217b8d41559
@@ -55,13 +55,13 @@ end Prio
variable [NormedField α] [SeminormedAddCommGroup β]
-- see Note [lower instance priority]
-instance (priority := 100) NormedSpace.boundedSmul [NormedSpace α β] : BoundedSmul α β
+instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β
where
dist_smul_pair' x y₁ y₂ := by
simpa [dist_eq_norm, smul_sub] using NormedSpace.norm_smul_le x (y₁ - y₂)
dist_pair_smul' x₁ x₂ y := by
simpa [dist_eq_norm, sub_smul] using NormedSpace.norm_smul_le (x₁ - x₂) y
-#align normed_space.has_bounded_smul NormedSpace.boundedSmul
+#align normed_space.has_bounded_smul NormedSpace.boundedSMul
-- Shortcut instance, as otherwise this will be found by `normed_space.to_module` and be
-- noncomputable.
mathlib commit https://github.com/leanprover-community/mathlib/commit/2af0836443b4cfb5feda0df0051acdb398304931
@@ -491,12 +491,12 @@ variables [normed_field 𝕜] [non_unital_semi_normed_ring 𝕜']
variables [normed_module 𝕜 𝕜'] [smul_comm_class 𝕜 𝕜' 𝕜'] [is_scalar_tower 𝕜 𝕜' 𝕜']
```
-/
-class NormedAlgebra (𝕜 : Type _) (𝕜' : Type _) [NormedField 𝕜] [SemiNormedRing 𝕜'] extends
+class NormedAlgebra (𝕜 : Type _) (𝕜' : Type _) [NormedField 𝕜] [SeminormedRing 𝕜'] extends
Algebra 𝕜 𝕜' where
norm_smul_le : ∀ (r : 𝕜) (x : 𝕜'), ‖r • x‖ ≤ ‖r‖ * ‖x‖
#align normed_algebra NormedAlgebra
-variable {𝕜 : Type _} (𝕜' : Type _) [NormedField 𝕜] [SemiNormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜']
+variable {𝕜 : Type _} (𝕜' : Type _) [NormedField 𝕜] [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜']
instance (priority := 100) NormedAlgebra.toNormedSpace : NormedSpace 𝕜 𝕜'
where norm_smul_le := NormedAlgebra.norm_smul_le
@@ -586,18 +586,18 @@ instance : NormedAlgebra 𝕜 (ULift 𝕜') :=
{ ULift.normedSpace with }
/-- The product of two normed algebras is a normed algebra, with the sup norm. -/
-instance Prod.normedAlgebra {E F : Type _} [SemiNormedRing E] [SemiNormedRing F] [NormedAlgebra 𝕜 E]
+instance Prod.normedAlgebra {E F : Type _} [SeminormedRing E] [SeminormedRing F] [NormedAlgebra 𝕜 E]
[NormedAlgebra 𝕜 F] : NormedAlgebra 𝕜 (E × F) :=
{ Prod.normedSpace with }
#align prod.normed_algebra Prod.normedAlgebra
/-- The product of finitely many normed algebras is a normed algebra, with the sup norm. -/
-instance Pi.normedAlgebra {E : ι → Type _} [Fintype ι] [∀ i, SemiNormedRing (E i)]
+instance Pi.normedAlgebra {E : ι → Type _} [Fintype ι] [∀ i, SeminormedRing (E i)]
[∀ i, NormedAlgebra 𝕜 (E i)] : NormedAlgebra 𝕜 (∀ i, E i) :=
{ Pi.normedSpace, Pi.algebra _ E with }
#align pi.normed_algebra Pi.normedAlgebra
-instance MulOpposite.normedAlgebra {E : Type _} [SemiNormedRing E] [NormedAlgebra 𝕜 E] :
+instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
NormedAlgebra 𝕜 Eᵐᵒᵖ :=
{ MulOpposite.normedSpace with }
#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
@@ -610,14 +610,14 @@ end NormedAlgebra
See note [reducible non-instances] -/
@[reducible]
def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Ring β] [Algebra α β]
- [SemiNormedRing γ] [NormedAlgebra α γ] [NonUnitalAlgHomClass F α β γ] (f : F) :
- @NormedAlgebra α β _ (SemiNormedRing.induced β γ f)
+ [SeminormedRing γ] [NormedAlgebra α γ] [NonUnitalAlgHomClass F α β γ] (f : F) :
+ @NormedAlgebra α β _ (SeminormedRing.induced β γ f)
where norm_smul_le a b := by
unfold norm
exact (map_smul f a b).symm ▸ (norm_smul a (f b)).le
#align normed_algebra.induced NormedAlgebra.induced
-instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SemiNormedRing A] [NormedField 𝕜]
+instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SeminormedRing A] [NormedField 𝕜]
[NormedAlgebra 𝕜 A] (S : Subalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.Algebra _ _ _ S.val
#align subalgebra.to_normed_algebra Subalgebra.toNormedAlgebra
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -579,7 +579,7 @@ instance normedAlgebraRat {𝕜} [NormedDivisionRing 𝕜] [CharZero 𝕜] [Norm
#align normed_algebra_rat normedAlgebraRat
instance PUnit.normedAlgebra : NormedAlgebra 𝕜 PUnit
- where norm_smul_le q x := by simp only [PUnit.norm_eq_zero, mul_zero]
+ where norm_smul_le q x := by simp only [PUnit.norm_eq_zero, MulZeroClass.mul_zero]
#align punit.normed_algebra PUnit.normedAlgebra
instance : NormedAlgebra 𝕜 (ULift 𝕜') :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/3b267e70a936eebb21ab546f49a8df34dd300b25
@@ -55,13 +55,13 @@ end Prio
variable [NormedField α] [SeminormedAddCommGroup β]
-- see Note [lower instance priority]
-instance (priority := 100) NormedSpace.hasBoundedSmul [NormedSpace α β] : HasBoundedSmul α β
+instance (priority := 100) NormedSpace.boundedSmul [NormedSpace α β] : BoundedSmul α β
where
dist_smul_pair' x y₁ y₂ := by
simpa [dist_eq_norm, smul_sub] using NormedSpace.norm_smul_le x (y₁ - y₂)
dist_pair_smul' x₁ x₂ y := by
simpa [dist_eq_norm, sub_smul] using NormedSpace.norm_smul_le (x₁ - x₂) y
-#align normed_space.has_bounded_smul NormedSpace.hasBoundedSmul
+#align normed_space.has_bounded_smul NormedSpace.boundedSmul
-- Shortcut instance, as otherwise this will be found by `normed_space.to_module` and be
-- noncomputable.
mathlib commit https://github.com/leanprover-community/mathlib/commit/195fcd60ff2bfe392543bceb0ec2adcdb472db4c
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit 335232c774b3d0513ab1531582779dc25d6fdc9a
+! leanprover-community/mathlib commit 195fcd60ff2bfe392543bceb0ec2adcdb472db4c
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -294,8 +294,9 @@ instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜
/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
the rescaling element that shows up in applications. -/
-theorem rescale_to_shell_semi_normed {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E}
- (hx : ‖x‖ ≠ 0) : ∃ d : α, d ≠ 0 ∧ ‖d • x‖ < ε ∧ ε / ‖c‖ ≤ ‖d • x‖ ∧ ‖d‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
+theorem rescale_to_shell_semi_normed_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E}
+ (hx : ‖x‖ ≠ 0) :
+ ∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
by
have xεpos : 0 < ‖x‖ / ε := div_pos ((Ne.symm hx).le_iff_lt.1 (norm_nonneg x)) εpos
rcases exists_mem_Ico_zpow xεpos hc with ⟨n, hn⟩
@@ -303,21 +304,29 @@ theorem rescale_to_shell_semi_normed {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εp
have cnpos : 0 < ‖c ^ (n + 1)‖ := by
rw [norm_zpow]
exact lt_trans xεpos hn.2
- refine' ⟨(c ^ (n + 1))⁻¹, _, _, _, _⟩
- show (c ^ (n + 1))⁻¹ ≠ 0
- · rwa [Ne.def, inv_eq_zero, ← Ne.def, ← norm_pos_iff]
- show ‖(c ^ (n + 1))⁻¹ • x‖ < ε
- · rw [norm_smul, norm_inv, ← div_eq_inv_mul, div_lt_iff cnpos, mul_comm, norm_zpow]
+ refine' ⟨-(n + 1), _, _, _, _⟩
+ show c ^ (-(n + 1)) ≠ 0; exact zpow_ne_zero _ (norm_pos_iff.1 cpos)
+ show ‖c ^ (-(n + 1)) • x‖ < ε
+ · rw [norm_smul, zpow_neg, norm_inv, ← div_eq_inv_mul, div_lt_iff cnpos, mul_comm, norm_zpow]
exact (div_lt_iff εpos).1 hn.2
- show ε / ‖c‖ ≤ ‖(c ^ (n + 1))⁻¹ • x‖
- · rw [div_le_iff cpos, norm_smul, norm_inv, norm_zpow, zpow_add₀ (ne_of_gt cpos), zpow_one,
- mul_inv_rev, mul_comm, ← mul_assoc, ← mul_assoc, mul_inv_cancel (ne_of_gt cpos), one_mul, ←
- div_eq_inv_mul, le_div_iff (zpow_pos_of_pos cpos _), mul_comm]
+ show ε / ‖c‖ ≤ ‖c ^ (-(n + 1)) • x‖
+ · rw [zpow_neg, div_le_iff cpos, norm_smul, norm_inv, norm_zpow, zpow_add₀ (ne_of_gt cpos),
+ zpow_one, mul_inv_rev, mul_comm, ← mul_assoc, ← mul_assoc, mul_inv_cancel (ne_of_gt cpos),
+ one_mul, ← div_eq_inv_mul, le_div_iff (zpow_pos_of_pos cpos _), mul_comm]
exact (le_div_iff εpos).1 hn.1
- show ‖(c ^ (n + 1))⁻¹‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖
- · have : ε⁻¹ * ‖c‖ * ‖x‖ = ε⁻¹ * ‖x‖ * ‖c‖ := by ring
- rw [norm_inv, inv_inv, norm_zpow, zpow_add₀ (ne_of_gt cpos), zpow_one, this, ← div_eq_inv_mul]
+ show ‖c ^ (-(n + 1))‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖
+ · rw [zpow_neg, norm_inv, inv_inv, norm_zpow, zpow_add₀ cpos.ne', zpow_one, mul_right_comm, ←
+ div_eq_inv_mul]
exact mul_le_mul_of_nonneg_right hn.1 (norm_nonneg _)
+#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpow
+
+/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
+moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
+the rescaling element that shows up in applications. -/
+theorem rescale_to_shell_semi_normed {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E}
+ (hx : ‖x‖ ≠ 0) : ∃ d : α, d ≠ 0 ∧ ‖d • x‖ < ε ∧ ε / ‖c‖ ≤ ‖d • x‖ ∧ ‖d‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
+ let ⟨n, hn⟩ := rescale_to_shell_semi_normed_zpow hc εpos hx
+ ⟨_, hn⟩
#align rescale_to_shell_semi_normed rescale_to_shell_semi_normed
end SeminormedAddCommGroup
@@ -413,12 +422,17 @@ theorem frontier_closed_ball' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r :
variable {α}
+theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
+ ∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
+ rescale_to_shell_semi_normed_zpow hc εpos (mt norm_eq_zero.1 hx)
+#align rescale_to_shell_zpow rescale_to_shell_zpow
+
/-- If there is a scalar `c` with `‖c‖>1`, then any element can be moved by scalar multiplication to
any shell of width `‖c‖`. Also recap information on the norm of the rescaling element that shows
up in applications. -/
theorem rescale_to_shell {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
∃ d : α, d ≠ 0 ∧ ‖d • x‖ < ε ∧ ε / ‖c‖ ≤ ‖d • x‖ ∧ ‖d‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
- rescale_to_shell_semi_normed hc εpos (ne_of_lt (norm_pos_iff.2 hx)).symm
+ rescale_to_shell_semi_normed hc εpos (mt norm_eq_zero.1 hx)
#align rescale_to_shell rescale_to_shell
end NormedAddCommGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -79,7 +79,7 @@ theorem norm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖ = ‖s
calc
‖s‖ * ‖x‖ = ‖s‖ * ‖s⁻¹ • s • x‖ := by rw [inv_smul_smul₀ h]
_ ≤ ‖s‖ * (‖s⁻¹‖ * ‖s • x‖) :=
- mul_le_mul_of_nonneg_left (NormedSpace.norm_smul_le _ _) (norm_nonneg _)
+ (mul_le_mul_of_nonneg_left (NormedSpace.norm_smul_le _ _) (norm_nonneg _))
_ = ‖s • x‖ := by rw [norm_inv, ← mul_assoc, mul_inv_cancel (mt norm_eq_zero.1 h), one_mul]
#align norm_smul norm_smul
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -26,7 +26,7 @@ variable {α : Type _} {β : Type _} {γ : Type _} {ι : Type _}
open Filter Metric Function Set
-open Topology BigOperators NNReal Ennreal uniformity Pointwise
+open Topology BigOperators NNReal ENNReal uniformity Pointwise
section SeminormedAddCommGroup
mathlib commit https://github.com/leanprover-community/mathlib/commit/3ade05ac9447ae31a22d2ea5423435e054131240
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit 832a8ba8f10f11fea99367c469ff802e69a5b8ec
+! leanprover-community/mathlib commit 335232c774b3d0513ab1531582779dc25d6fdc9a
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -280,6 +280,11 @@ instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCo
by simp only [(NNReal.coe_mul _ _).symm, NNReal.mul_finset_sup, nnnorm_smul]
#align pi.normed_space Pi.normedSpace
+instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
+ { MulOpposite.normedAddCommGroup, MulOpposite.module _ with
+ norm_smul_le := fun s x => (norm_smul s x.unop).le }
+#align mul_opposite.normed_space MulOpposite.normedSpace
+
/-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/
instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type _}
[SeminormedAddCommGroup E] [NormedSpace 𝕜 E] [Module R E] [IsScalarTower 𝕜 R E]
@@ -578,6 +583,11 @@ instance Pi.normedAlgebra {E : ι → Type _} [Fintype ι] [∀ i, SemiNormedRin
{ Pi.normedSpace, Pi.algebra _ E with }
#align pi.normed_algebra Pi.normedAlgebra
+instance MulOpposite.normedAlgebra {E : Type _} [SemiNormedRing E] [NormedAlgebra 𝕜 E] :
+ NormedAlgebra 𝕜 Eᵐᵒᵖ :=
+ { MulOpposite.normedSpace with }
+#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
+
end NormedAlgebra
/-- A non-unital algebra homomorphism from an `algebra` to a `normed_algebra` induces a
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Subalgebra.Basic
(#12267)
This PR was supposed to be simultaneous with #12090 but I got ill last week.
This is based on seeing the import Algebra.Algebra.Subalgebra.Basic → RingTheory.Ideal.Operations
on the longest pole. It feels like Ideal.Operations
should not be needed to define the notion of subalgebra, only to construct some interesting examples. So I removed the import and split off anything that wouldn't fit.
The following results and their corollaries were split off:
Subalgebra.prod
Subalgebra.iSupLift
AlgHom.ker_rangeRestrict
Subalgebra.mem_of_finset_sum_eq_one_of_pow_smul_mem
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
-/
import Mathlib.Algebra.Algebra.Pi
+import Mathlib.Algebra.Algebra.Prod
import Mathlib.Algebra.Algebra.RestrictScalars
import Mathlib.Analysis.Normed.Field.Basic
import Mathlib.Analysis.Normed.MulAction
This adds the notation √r
for Real.sqrt r
. The precedence is such that √x⁻¹
is parsed as √(x⁻¹)
; not because this is particularly desirable, but because it's the default and the choice doesn't really matter.
This is extracted from #7907, which adds a more general nth root typeclass.
The idea is to perform all the boring substitutions downstream quickly, so that we can play around with custom elaborators with a much slower rate of code-rot.
This PR also won't rot as quickly, as it does not forbid writing x.sqrt
as that PR does.
While perhaps claiming √
for Real.sqrt
is greedy; it:
NNReal.sqrt
and Nat.sqrt
sqrt
on Float
Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>
@@ -41,8 +41,8 @@ noncomputable section
See also `Homeomorph.unitBall`. -/
@[simps (config := .lemmasOnly)]
def PartialHomeomorph.univUnitBall : PartialHomeomorph E E where
- toFun x := (1 + ‖x‖ ^ 2).sqrt⁻¹ • x
- invFun y := (1 - ‖(y : E)‖ ^ 2).sqrt⁻¹ • (y : E)
+ toFun x := (√(1 + ‖x‖ ^ 2))⁻¹ • x
+ invFun y := (√(1 - ‖(y : E)‖ ^ 2))⁻¹ • (y : E)
source := univ
target := ball 0 1
map_source' x _ := by
@@ -62,12 +62,12 @@ def PartialHomeomorph.univUnitBall : PartialHomeomorph E E where
open_source := isOpen_univ
open_target := isOpen_ball
continuousOn_toFun := by
- suffices Continuous fun (x:E) => (1 + ‖x‖ ^ 2).sqrt⁻¹
+ suffices Continuous fun (x:E) => (√(1 + ‖x‖ ^ 2))⁻¹
from (this.smul continuous_id).continuousOn
refine' Continuous.inv₀ _ fun x => Real.sqrt_ne_zero'.mpr (by positivity)
continuity
continuousOn_invFun := by
- have : ∀ y ∈ ball (0 : E) 1, (1 - ‖(y : E)‖ ^ 2).sqrt ≠ 0 := fun y hy ↦ by
+ have : ∀ y ∈ ball (0 : E) 1, √(1 - ‖(y : E)‖ ^ 2) ≠ 0 := fun y hy ↦ by
rw [Real.sqrt_ne_zero']
nlinarith [norm_nonneg y, mem_ball_zero_iff.1 hy]
exact ContinuousOn.smul (ContinuousOn.inv₀
@@ -128,10 +128,9 @@ instance Pi.normedSpace {ι : Type*} {E : ι → Type*} [Fintype ι] [∀ i, Sem
exact Finset.sup_mono_fun fun _ _ => norm_smul_le a _
#align pi.normed_space Pi.normedSpace
-instance MulOpposite.normedSpace : NormedSpace 𝕜 Eᵐᵒᵖ :=
- { MulOpposite.seminormedAddCommGroup (E := Eᵐᵒᵖ), MulOpposite.module _ with
- norm_smul_le := fun s x => norm_smul_le s x.unop }
-#align mul_opposite.normed_space MulOpposite.normedSpace
+instance MulOpposite.instNormedSpace : NormedSpace 𝕜 Eᵐᵒᵖ where
+ norm_smul_le _ x := norm_smul_le _ x.unop
+#align mul_opposite.normed_space MulOpposite.instNormedSpace
/-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/
instance Submodule.normedSpace {𝕜 R : Type*} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type*}
@@ -373,11 +372,11 @@ instance Pi.normedAlgebra {ι : Type*} {E : ι → Type*} [Fintype ι] [∀ i, S
variable [SeminormedRing E] [NormedAlgebra 𝕜 E]
-instance MulOpposite.normedAlgebra {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
- NormedAlgebra 𝕜 Eᵐᵒᵖ :=
- { MulOpposite.normedSpace, MulOpposite.instAlgebra with }
-
-#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
+instance MulOpposite.instNormedAlgebra {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
+ NormedAlgebra 𝕜 Eᵐᵒᵖ where
+ __ := instAlgebra
+ __ := instNormedSpace
+#align mul_opposite.normed_algebra MulOpposite.instNormedAlgebra
end NormedAlgebra
@@ -101,8 +101,8 @@ instance NormedSpace.discreteTopology_zmultiples
obtain ⟨k, rfl⟩ := AddSubgroup.mem_zmultiples_iff.mp hx
rw [mem_preimage, mem_ball_zero_iff, AddSubgroup.coe_mk, mem_singleton_iff, Subtype.ext_iff,
AddSubgroup.coe_mk, AddSubgroup.coe_zero, norm_zsmul ℚ k e, Int.norm_cast_rat,
- Int.norm_eq_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ←
- @Int.cast_one ℝ _, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
+ Int.norm_eq_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ← @Int.cast_one ℝ _,
+ ← Int.cast_abs, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
open NormedField
@@ -203,7 +203,7 @@ protected theorem NormedSpace.unbounded_univ : ¬Bornology.IsBounded (univ : Set
#align normed_space.unbounded_univ NormedSpace.unbounded_univ
protected lemma NormedSpace.cobounded_neBot : NeBot (cobounded E) := by
- rw [neBot_iff, Ne.def, cobounded_eq_bot_iff, ← isBounded_univ]
+ rw [neBot_iff, Ne, cobounded_eq_bot_iff, ← isBounded_univ]
exact NormedSpace.unbounded_univ 𝕜 E
instance (priority := 100) NontriviallyNormedField.cobounded_neBot : NeBot (cobounded 𝕜) :=
I removed some redundant instance arguments throughout Mathlib. To do this, I used VS Code's regex search. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/repeating.20instances.20from.20variable.20command I closed the previous PR for this and reopened it.
@@ -49,6 +49,7 @@ attribute [inherit_doc NormedSpace] NormedSpace.norm_smul_le
end Prio
variable [NormedField 𝕜] [SeminormedAddCommGroup E] [SeminormedAddCommGroup F]
+variable [NormedSpace 𝕜 E] [NormedSpace 𝕜 F]
-- see Note [lower instance priority]
instance (priority := 100) NormedSpace.boundedSMul [NormedSpace 𝕜 E] : BoundedSMul 𝕜 E :=
@@ -68,9 +69,6 @@ theorem norm_zsmul [NormedSpace 𝕜 E] (n : ℤ) (x : E) : ‖n • x‖ = ‖(
rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
-variable [SeminormedAddCommGroup E] [NormedSpace 𝕜 E]
-variable [SeminormedAddCommGroup F] [NormedSpace 𝕜 F]
-
theorem eventually_nhds_norm_smul_sub_lt (c : 𝕜) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
have : Tendsto (fun y ↦ ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
These will be caught by the linter in a future lean version.
@@ -92,8 +92,7 @@ theorem interior_closedBall (x : E) {r : ℝ} (hr : r ≠ 0) :
have hf1 : (1 : ℝ) ∈ f ⁻¹' interior (closedBall x <| dist y x) := by simpa [f]
have h1 : (1 : ℝ) ∈ interior (Icc (-1 : ℝ) 1) :=
interior_mono this (preimage_interior_subset_interior_preimage hfc hf1)
- contrapose h1
- simp
+ simp at h1
intro c hc
rw [mem_Icc, ← abs_le, ← Real.norm_eq_abs, ← mul_le_mul_right hr]
simpa [f, dist_eq_norm, norm_smul] using hc
mul
-div
cancellation lemmas (#11530)
Lemma names around cancellation of multiplication and division are a mess.
This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero
lemma name, the Group
lemma, the AddGroup
lemma name).
| Statement | New name | Old name | |
@@ -66,8 +66,8 @@ theorem closure_ball (x : E) {r : ℝ} (hr : r ≠ 0) : closure (ball x r) = clo
· rw [one_smul, sub_add_cancel]
· simp [closure_Ico zero_ne_one, zero_le_one]
· rintro c ⟨hc0, hc1⟩
- rw [mem_ball, dist_eq_norm, add_sub_cancel, norm_smul, Real.norm_eq_abs, abs_of_nonneg hc0,
- mul_comm, ← mul_one r]
+ rw [mem_ball, dist_eq_norm, add_sub_cancel_right, norm_smul, Real.norm_eq_abs,
+ abs_of_nonneg hc0, mul_comm, ← mul_one r]
rw [mem_closedBall, dist_eq_norm] at hy
replace hr : 0 < r := ((norm_nonneg _).trans hy).lt_of_ne hr.symm
apply mul_lt_mul' <;> assumption
This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0
branch as we update to intermediate nightlies.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>
@@ -109,7 +109,8 @@ instance NormedSpace.discreteTopology_zmultiples
open NormedField
instance ULift.normedSpace : NormedSpace 𝕜 (ULift E) :=
- { ULift.seminormedAddCommGroup (E := E), ULift.module' with
+ { __ := ULift.seminormedAddCommGroup (E := E),
+ __ := ULift.module'
norm_smul_le := fun s x => (norm_smul_le s x.down : _) }
/-- The product of two normed spaces is a normed space, with the sup norm. -/
@@ -89,14 +89,14 @@ theorem interior_closedBall (x : E) {r : ℝ} (hr : r ≠ 0) :
set f : ℝ → E := fun c : ℝ => c • (y - x) + x
suffices f ⁻¹' closedBall x (dist y x) ⊆ Icc (-1) 1 by
have hfc : Continuous f := (continuous_id.smul continuous_const).add continuous_const
- have hf1 : (1 : ℝ) ∈ f ⁻¹' interior (closedBall x <| dist y x) := by simpa
+ have hf1 : (1 : ℝ) ∈ f ⁻¹' interior (closedBall x <| dist y x) := by simpa [f]
have h1 : (1 : ℝ) ∈ interior (Icc (-1 : ℝ) 1) :=
interior_mono this (preimage_interior_subset_interior_preimage hfc hf1)
contrapose h1
simp
intro c hc
rw [mem_Icc, ← abs_le, ← Real.norm_eq_abs, ← mul_le_mul_right hr]
- simpa [dist_eq_norm, norm_smul] using hc
+ simpa [f, dist_eq_norm, norm_smul] using hc
#align interior_closed_ball interior_closedBall
theorem frontier_closedBall (x : E) {r : ℝ} (hr : r ≠ 0) :
Also use letI
for theorems about non-canonical instances.
@@ -18,7 +18,7 @@ about these definitions.
-/
-variable {α : Type*} {β : Type*} {γ : Type*} {ι : Type*}
+variable {𝕜 𝕜' E F α : Type*}
open Filter Metric Function Set Topology Bornology
open scoped BigOperators NNReal ENNReal uniformity
@@ -29,7 +29,7 @@ section Prio
-- set_option extends_priority 920 -- Porting note: option unsupported
--- Here, we set a rather high priority for the instance `[NormedSpace α β] : Module α β`
+-- Here, we set a rather high priority for the instance `[NormedSpace 𝕜 E] : Module 𝕜 E`
-- to take precedence over `Semiring.toModule` as this leads to instance paths with better
-- unification properties.
/-- A normed space over a normed field is a vector space endowed with a norm which satisfies the
@@ -39,52 +39,52 @@ equality `‖c • x‖ = ‖c‖ ‖x‖`. We require only `‖c • x‖ ≤
Note that since this requires `SeminormedAddCommGroup` and not `NormedAddCommGroup`, this
typeclass can be used for "semi normed spaces" too, just as `Module` can be used for
"semi modules". -/
-class NormedSpace (α : Type*) (β : Type*) [NormedField α] [SeminormedAddCommGroup β] extends
- Module α β where
- norm_smul_le : ∀ (a : α) (b : β), ‖a • b‖ ≤ ‖a‖ * ‖b‖
+class NormedSpace (𝕜 : Type*) (E : Type*) [NormedField 𝕜] [SeminormedAddCommGroup E]
+ extends Module 𝕜 E where
+ norm_smul_le : ∀ (a : 𝕜) (b : E), ‖a • b‖ ≤ ‖a‖ * ‖b‖
#align normed_space NormedSpace
attribute [inherit_doc NormedSpace] NormedSpace.norm_smul_le
end Prio
-variable [NormedField α] [SeminormedAddCommGroup β]
+variable [NormedField 𝕜] [SeminormedAddCommGroup E] [SeminormedAddCommGroup F]
-- see Note [lower instance priority]
-instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β :=
+instance (priority := 100) NormedSpace.boundedSMul [NormedSpace 𝕜 E] : BoundedSMul 𝕜 E :=
BoundedSMul.of_norm_smul_le NormedSpace.norm_smul_le
#align normed_space.has_bounded_smul NormedSpace.boundedSMul
-instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b := norm_mul_le a b
+instance NormedField.toNormedSpace : NormedSpace 𝕜 𝕜 where norm_smul_le a b := norm_mul_le a b
#align normed_field.to_normed_space NormedField.toNormedSpace
-- shortcut instance
-instance NormedField.to_boundedSMul : BoundedSMul α α :=
+instance NormedField.to_boundedSMul : BoundedSMul 𝕜 𝕜 :=
NormedSpace.boundedSMul
#align normed_field.to_has_bounded_smul NormedField.to_boundedSMul
-theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
- ‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
+variable (𝕜) in
+theorem norm_zsmul [NormedSpace 𝕜 E] (n : ℤ) (x : E) : ‖n • x‖ = ‖(n : 𝕜)‖ * ‖x‖ := by
+ rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
-variable {E : Type*} [SeminormedAddCommGroup E] [NormedSpace α E]
+variable [SeminormedAddCommGroup E] [NormedSpace 𝕜 E]
+variable [SeminormedAddCommGroup F] [NormedSpace 𝕜 F]
-variable {F : Type*} [SeminormedAddCommGroup F] [NormedSpace α F]
-
-theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
+theorem eventually_nhds_norm_smul_sub_lt (c : 𝕜) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
- have : Tendsto (fun y => ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
- ((continuous_id.sub continuous_const).const_smul _).norm.tendsto' _ _ (by simp)
+ have : Tendsto (fun y ↦ ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
+ Continuous.tendsto' (by fun_prop) _ _ (by simp)
this.eventually (gt_mem_nhds h)
#align eventually_nhds_norm_smul_sub_lt eventually_nhds_norm_smul_sub_lt
-theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : ι → α} {g : ι → E} {l : Filter ι}
+theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : α → 𝕜} {g : α → E} {l : Filter α}
(hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (· ≤ ·) l (Norm.norm ∘ g)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
hf.op_zero_isBoundedUnder_le hg (· • ·) norm_smul_le
#align filter.tendsto.zero_smul_is_bounded_under_le Filter.Tendsto.zero_smul_isBoundedUnder_le
-theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {l : Filter ι}
+theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : α → 𝕜} {g : α → E} {l : Filter α}
(hf : IsBoundedUnder (· ≤ ·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
Tendsto (fun x => f x • g x) l (𝓝 0) :=
hg.op_zero_isBoundedUnder_le hf (flip (· • ·)) fun x y =>
@@ -108,12 +108,12 @@ instance NormedSpace.discreteTopology_zmultiples
open NormedField
-instance ULift.normedSpace : NormedSpace α (ULift E) :=
+instance ULift.normedSpace : NormedSpace 𝕜 (ULift E) :=
{ ULift.seminormedAddCommGroup (E := E), ULift.module' with
norm_smul_le := fun s x => (norm_smul_le s x.down : _) }
/-- The product of two normed spaces is a normed space, with the sup norm. -/
-instance Prod.normedSpace : NormedSpace α (E × F) :=
+instance Prod.normedSpace : NormedSpace 𝕜 (E × F) :=
{ Prod.seminormedAddCommGroup (E := E) (F := F), Prod.instModule with
norm_smul_le := fun s x => by
simp only [norm_smul, Prod.norm_def, Prod.smul_snd, Prod.smul_fst,
@@ -121,15 +121,15 @@ instance Prod.normedSpace : NormedSpace α (E × F) :=
#align prod.normed_space Prod.normedSpace
/-- The product of finitely many normed spaces is a normed space, with the sup norm. -/
-instance Pi.normedSpace {E : ι → Type*} [Fintype ι] [∀ i, SeminormedAddCommGroup (E i)]
- [∀ i, NormedSpace α (E i)] : NormedSpace α (∀ i, E i) where
+instance Pi.normedSpace {ι : Type*} {E : ι → Type*} [Fintype ι] [∀ i, SeminormedAddCommGroup (E i)]
+ [∀ i, NormedSpace 𝕜 (E i)] : NormedSpace 𝕜 (∀ i, E i) where
norm_smul_le a f := by
simp_rw [← coe_nnnorm, ← NNReal.coe_mul, NNReal.coe_le_coe, Pi.nnnorm_def,
NNReal.mul_finset_sup]
exact Finset.sup_mono_fun fun _ _ => norm_smul_le a _
#align pi.normed_space Pi.normedSpace
-instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
+instance MulOpposite.normedSpace : NormedSpace 𝕜 Eᵐᵒᵖ :=
{ MulOpposite.seminormedAddCommGroup (E := Eᵐᵒᵖ), MulOpposite.module _ with
norm_smul_le := fun s x => norm_smul_le s x.unop }
#align mul_opposite.normed_space MulOpposite.normedSpace
@@ -147,26 +147,18 @@ domain, using the `SeminormedAddCommGroup.induced` norm.
See note [reducible non-instances] -/
@[reducible]
-def NormedSpace.induced {F : Type*} (α β γ : Type*) [NormedField α] [AddCommGroup β] [Module α β]
- [SeminormedAddCommGroup γ] [NormedSpace α γ] [FunLike F β γ] [LinearMapClass F α β γ]
- (f : F) :
- @NormedSpace α β _ (SeminormedAddCommGroup.induced β γ f) := by
- -- Porting note: trouble inferring SeminormedAddCommGroup β and Module α β
- -- unfolding the induced semi-norm is fiddly
- refine @NormedSpace.mk (α := α) (β := β) _ ?_ ?_ ?_
- · infer_instance
- · intro a b
- change ‖(⇑f) (a • b)‖ ≤ ‖a‖ * ‖(⇑f) b‖
- exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
+def NormedSpace.induced {F : Type*} (𝕜 E G : Type*) [NormedField 𝕜] [AddCommGroup E] [Module 𝕜 E]
+ [SeminormedAddCommGroup G] [NormedSpace 𝕜 G] [FunLike F E G] [LinearMapClass F 𝕜 E G] (f : F) :
+ @NormedSpace 𝕜 E _ (SeminormedAddCommGroup.induced E G f) :=
+ let _ := SeminormedAddCommGroup.induced E G f
+ ⟨fun a b ↦ by simpa only [← map_smul f a b] using norm_smul_le a (f b)⟩
#align normed_space.induced NormedSpace.induced
section NormedAddCommGroup
-variable [NormedField α]
-
-variable {E : Type*} [NormedAddCommGroup E] [NormedSpace α E]
-
-variable {F : Type*} [NormedAddCommGroup F] [NormedSpace α F]
+variable [NormedField 𝕜]
+variable [NormedAddCommGroup E] [NormedSpace 𝕜 E]
+variable [NormedAddCommGroup F] [NormedSpace 𝕜 F]
open NormedField
@@ -184,7 +176,7 @@ example
[This Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Typeclass.20resolution.20under.20binders/near/245151099)
gives some more context. -/
-instance (priority := 100) NormedSpace.toModule' : Module α F :=
+instance (priority := 100) NormedSpace.toModule' : Module 𝕜 F :=
NormedSpace.toModule
#align normed_space.to_module' NormedSpace.toModule'
@@ -192,8 +184,8 @@ end NormedAddCommGroup
section NontriviallyNormedSpace
-variable (𝕜 E : Type*) [NontriviallyNormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
- [Nontrivial E]
+variable (𝕜 E)
+variable [NontriviallyNormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E] [Nontrivial E]
/-- If `E` is a nontrivial normed space over a nontrivially normed field `𝕜`, then `E` is unbounded:
for any `c : ℝ`, there exists a vector `x : E` with norm strictly greater than `c`. -/
@@ -228,8 +220,8 @@ end NontriviallyNormedSpace
section NormedSpace
-variable (𝕜 E : Type*) [NormedField 𝕜] [Infinite 𝕜] [NormedAddCommGroup E] [Nontrivial E]
- [NormedSpace 𝕜 E]
+variable (𝕜 E)
+variable [NormedField 𝕜] [Infinite 𝕜] [NormedAddCommGroup E] [Nontrivial E] [NormedSpace 𝕜 E]
/-- A normed vector space over an infinite normed field is a noncompact space.
This cannot be an instance because in order to apply it,
@@ -276,7 +268,8 @@ class NormedAlgebra (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [Seminorme
attribute [inherit_doc NormedAlgebra] NormedAlgebra.norm_smul_le
-variable {𝕜 : Type*} (𝕜' : Type*) [NormedField 𝕜] [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜']
+variable (𝕜')
+variable [NormedField 𝕜] [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜']
instance (priority := 100) NormedAlgebra.toNormedSpace : NormedSpace 𝕜 𝕜' :=
-- Porting note: previous Lean could figure out what we were extending
@@ -374,12 +367,12 @@ instance Prod.normedAlgebra {E F : Type*} [SeminormedRing E] [SeminormedRing F]
-- Porting note: Lean 3 could synth the algebra instances for Pi Pr
/-- The product of finitely many normed algebras is a normed algebra, with the sup norm. -/
-instance Pi.normedAlgebra {E : ι → Type*} [Fintype ι] [∀ i, SeminormedRing (E i)]
+instance Pi.normedAlgebra {ι : Type*} {E : ι → Type*} [Fintype ι] [∀ i, SeminormedRing (E i)]
[∀ i, NormedAlgebra 𝕜 (E i)] : NormedAlgebra 𝕜 (∀ i, E i) :=
{ Pi.normedSpace, Pi.algebra _ E with }
#align pi.normed_algebra Pi.normedAlgebra
-variable {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E]
+variable [SeminormedRing E] [NormedAlgebra 𝕜 E]
instance MulOpposite.normedAlgebra {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
NormedAlgebra 𝕜 Eᵐᵒᵖ :=
@@ -394,16 +387,12 @@ end NormedAlgebra
See note [reducible non-instances] -/
@[reducible]
-def NormedAlgebra.induced {F : Type*} (α β γ : Type*) [NormedField α] [Ring β] [Algebra α β]
- [SeminormedRing γ] [NormedAlgebra α γ] [FunLike F β γ] [NonUnitalAlgHomClass F α β γ]
+def NormedAlgebra.induced {F : Type*} (𝕜 R S : Type*) [NormedField 𝕜] [Ring R] [Algebra 𝕜 R]
+ [SeminormedRing S] [NormedAlgebra 𝕜 S] [FunLike F R S] [NonUnitalAlgHomClass F 𝕜 R S]
(f : F) :
- @NormedAlgebra α β _ (SeminormedRing.induced β γ f) := by
- -- Porting note: trouble with SeminormedRing β, Algebra α β, and unfolding seminorm
- refine @NormedAlgebra.mk (𝕜 := α) (𝕜' := β) _ ?_ ?_ ?_
- · infer_instance
- · intro a b
- change ‖(⇑f) (a • b)‖ ≤ ‖a‖ * ‖(⇑f) b‖
- exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
+ @NormedAlgebra 𝕜 R _ (SeminormedRing.induced R S f) :=
+ letI := SeminormedRing.induced R S f
+ ⟨fun a b ↦ show ‖f (a • b)‖ ≤ ‖a‖ * ‖f b‖ from (map_smul f a b).symm ▸ norm_smul_le a (f b)⟩
#align normed_algebra.induced NormedAlgebra.induced
-- Porting note: failed to synth NonunitalAlgHomClass
@@ -416,8 +405,6 @@ section RestrictScalars
section NormInstances
-variable {𝕜 𝕜' E : Type*}
-
instance [I : SeminormedAddCommGroup E] :
SeminormedAddCommGroup (RestrictScalars 𝕜 𝕜' E) :=
I
@@ -462,8 +449,9 @@ end NormInstances
section NormedSpace
-variable (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
- (E : Type*) [SeminormedAddCommGroup E] [NormedSpace 𝕜' E]
+variable (𝕜 𝕜' E)
+variable [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
+ [SeminormedAddCommGroup E] [NormedSpace 𝕜' E]
/-- If `E` is a normed space over `𝕜'` and `𝕜` is a normed algebra over `𝕜'`, then
`RestrictScalars.module` is additionally a `NormedSpace`. -/
@@ -490,15 +478,16 @@ rather on `RestrictScalars 𝕜 𝕜' E`. This would be a very bad instance; bot
inferred, and because it is likely to create instance diamonds.
-/
def NormedSpace.restrictScalars : NormedSpace 𝕜 E :=
- RestrictScalars.normedSpace _ 𝕜' _
+ RestrictScalars.normedSpace _ 𝕜' E
#align normed_space.restrict_scalars NormedSpace.restrictScalars
end NormedSpace
section NormedAlgebra
-variable (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
- (E : Type*) [SeminormedRing E] [NormedAlgebra 𝕜' E]
+variable (𝕜 𝕜' E)
+variable [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
+ [SeminormedRing E] [NormedAlgebra 𝕜' E]
/-- If `E` is a normed algebra over `𝕜'` and `𝕜` is a normed algebra over `𝕜'`, then
`RestrictScalars.module` is additionally a `NormedAlgebra`. -/
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -96,7 +96,7 @@ instance NormedSpace.discreteTopology_zmultiples
DiscreteTopology <| AddSubgroup.zmultiples e := by
rcases eq_or_ne e 0 with (rfl | he)
· rw [AddSubgroup.zmultiples_zero_eq_bot]
- refine Subsingleton.discreteTopology (α := ↑(⊥ : Subspace ℚ E))
+ exact Subsingleton.discreteTopology (α := ↑(⊥ : Subspace ℚ E))
· rw [discreteTopology_iff_isOpen_singleton_zero, isOpen_induced_iff]
refine' ⟨Metric.ball 0 ‖e‖, Metric.isOpen_ball, _⟩
ext ⟨x, hx⟩
@@ -265,8 +265,8 @@ section NormedAlgebra
See the implementation notes for `Algebra` for a discussion about non-unital algebras. Following
the strategy there, a non-unital *normed* algebra can be written as:
```lean
-variables [NormedField 𝕜] [NonUnitalSeminormedRing 𝕜']
-variables [NormedSpace 𝕜 𝕜'] [SMulCommClass 𝕜 𝕜' 𝕜'] [IsScalarTower 𝕜 𝕜' 𝕜']
+variable [NormedField 𝕜] [NonUnitalSeminormedRing 𝕜']
+variable [NormedSpace 𝕜 𝕜'] [SMulCommClass 𝕜 𝕜' 𝕜'] [IsScalarTower 𝕜 𝕜' 𝕜']
```
-/
class NormedAlgebra (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [SeminormedRing 𝕜'] extends
NormedAlgebra.complexToReal
and other RestrictScalars
instances (#10374)
This adds some instances regarding normed algebra structures to RestrictScalars
to mimic those for normed spaces.
In addition, given a normed ℂ
-algebra, this puts a normed ℝ
-algebra structure on the same space. This is not adding any new data instances, as these already exist from Algebra.complexToReal
.
@@ -414,17 +414,57 @@ instance Subalgebra.toNormedAlgebra {𝕜 A : Type*} [SeminormedRing A] [NormedF
section RestrictScalars
-variable (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
- (E : Type*) [SeminormedAddCommGroup E] [NormedSpace 𝕜' E]
+section NormInstances
+
+variable {𝕜 𝕜' E : Type*}
-instance {𝕜 : Type*} {𝕜' : Type*} {E : Type*} [I : SeminormedAddCommGroup E] :
+instance [I : SeminormedAddCommGroup E] :
SeminormedAddCommGroup (RestrictScalars 𝕜 𝕜' E) :=
I
-instance {𝕜 : Type*} {𝕜' : Type*} {E : Type*} [I : NormedAddCommGroup E] :
+instance [I : NormedAddCommGroup E] :
NormedAddCommGroup (RestrictScalars 𝕜 𝕜' E) :=
I
+instance [I : NonUnitalSeminormedRing E] :
+ NonUnitalSeminormedRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+instance [I : NonUnitalNormedRing E] :
+ NonUnitalNormedRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+instance [I : SeminormedRing E] :
+ SeminormedRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+instance [I : NormedRing E] :
+ NormedRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+instance [I : NonUnitalSeminormedCommRing E] :
+ NonUnitalSeminormedCommRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+instance [I : NonUnitalNormedCommRing E] :
+ NonUnitalNormedCommRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+instance [I : SeminormedCommRing E] :
+ SeminormedCommRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+instance [I : NormedCommRing E] :
+ NormedCommRing (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+end NormInstances
+
+section NormedSpace
+
+variable (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
+ (E : Type*) [SeminormedAddCommGroup E] [NormedSpace 𝕜' E]
+
/-- If `E` is a normed space over `𝕜'` and `𝕜` is a normed algebra over `𝕜'`, then
`RestrictScalars.module` is additionally a `NormedSpace`. -/
instance RestrictScalars.normedSpace : NormedSpace 𝕜 (RestrictScalars 𝕜 𝕜' E) :=
@@ -453,4 +493,38 @@ def NormedSpace.restrictScalars : NormedSpace 𝕜 E :=
RestrictScalars.normedSpace _ 𝕜' _
#align normed_space.restrict_scalars NormedSpace.restrictScalars
+end NormedSpace
+
+section NormedAlgebra
+
+variable (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
+ (E : Type*) [SeminormedRing E] [NormedAlgebra 𝕜' E]
+
+/-- If `E` is a normed algebra over `𝕜'` and `𝕜` is a normed algebra over `𝕜'`, then
+`RestrictScalars.module` is additionally a `NormedAlgebra`. -/
+instance RestrictScalars.normedAlgebra : NormedAlgebra 𝕜 (RestrictScalars 𝕜 𝕜' E) :=
+ { RestrictScalars.algebra 𝕜 𝕜' E with
+ norm_smul_le := norm_smul_le }
+
+-- If you think you need this, consider instead reproducing `RestrictScalars.lsmul`
+-- appropriately modified here.
+/-- The action of the original normed_field on `RestrictScalars 𝕜 𝕜' E`.
+This is not an instance as it would be contrary to the purpose of `RestrictScalars`.
+-/
+def Module.RestrictScalars.normedAlgebraOrig {𝕜 : Type*} {𝕜' : Type*} {E : Type*} [NormedField 𝕜']
+ [SeminormedRing E] [I : NormedAlgebra 𝕜' E] : NormedAlgebra 𝕜' (RestrictScalars 𝕜 𝕜' E) :=
+ I
+
+/-- Warning: This declaration should be used judiciously.
+Please consider using `IsScalarTower` and/or `RestrictScalars 𝕜 𝕜' E` instead.
+
+This definition allows the `RestrictScalars.normedAlgebra` instance to be put directly on `E`
+rather on `RestrictScalars 𝕜 𝕜' E`. This would be a very bad instance; both because `𝕜'` cannot be
+inferred, and because it is likely to create instance diamonds.
+-/
+def NormedAlgebra.restrictScalars : NormedAlgebra 𝕜 E :=
+ RestrictScalars.normedAlgebra _ 𝕜' _
+
+end NormedAlgebra
+
end RestrictScalars
@@ -324,14 +324,14 @@ section NNReal
variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
@[simp]
-theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
+theorem norm_algebraMap_nnreal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
(norm_algebraMap' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.prop
-#align norm_algebra_map_nnreal norm_algebraMap_nNReal
+#align norm_algebra_map_nnreal norm_algebraMap_nnreal
@[simp]
-theorem nnnorm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
- Subtype.ext <| norm_algebraMap_nNReal 𝕜' x
-#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nNReal
+theorem nnnorm_algebraMap_nnreal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖₊ = x :=
+ Subtype.ext <| norm_algebraMap_nnreal 𝕜' x
+#align nnnorm_algebra_map_nnreal nnnorm_algebraMap_nnreal
end NNReal
NormedSpace.Real
(#10206)
This way we don't switch between general normed spaces and real normed spaces back and forth throughout the file.
NormedSpace.Real
(#10206)
This way we don't switch between general normed spaces and real normed spaces back and forth throughout the file.
@@ -7,7 +7,6 @@ import Mathlib.Algebra.Algebra.Pi
import Mathlib.Algebra.Algebra.RestrictScalars
import Mathlib.Analysis.Normed.Field.Basic
import Mathlib.Analysis.Normed.MulAction
-import Mathlib.Topology.Algebra.Module.Basic
#align_import analysis.normed_space.basic from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
@@ -68,31 +67,10 @@ theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β)
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
-theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
- ‖x‖⁻¹ • x ∈ closedBall (0 : β) 1 := by
- simp only [mem_closedBall_zero_iff, norm_smul, norm_inv, norm_norm, ← _root_.div_eq_inv_mul,
- div_self_le_one]
-#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ball
-
-theorem norm_smul_of_nonneg [NormedSpace ℝ β] {t : ℝ} (ht : 0 ≤ t) (x : β) : ‖t • x‖ = t * ‖x‖ := by
- rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg ht]
-#align norm_smul_of_nonneg norm_smul_of_nonneg
-
variable {E : Type*} [SeminormedAddCommGroup E] [NormedSpace α E]
variable {F : Type*} [SeminormedAddCommGroup F] [NormedSpace α F]
-theorem dist_smul_add_one_sub_smul_le [NormedSpace ℝ E] {r : ℝ} {x y : E} (h : r ∈ Icc 0 1) :
- dist (r • x + (1 - r) • y) x ≤ dist y x :=
- calc
- dist (r • x + (1 - r) • y) x = ‖1 - r‖ * ‖x - y‖ := by
- simp_rw [dist_eq_norm', ← norm_smul, sub_smul, one_smul, smul_sub, ← sub_sub, ← sub_add,
- sub_right_comm]
- _ = (1 - r) * dist y x := by
- rw [Real.norm_eq_abs, abs_eq_self.mpr (sub_nonneg.mpr h.2), dist_eq_norm']
- _ ≤ (1 - 0) * dist y x := by gcongr; exact h.1
- _ = dist y x := by rw [sub_zero, one_mul]
-
theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
have : Tendsto (fun y => ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
@@ -113,63 +91,6 @@ theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : ι → α} {g : ι → E} {
(norm_smul_le y x).trans_eq (mul_comm _ _)
#align filter.is_bounded_under.smul_tendsto_zero Filter.IsBoundedUnder.smul_tendsto_zero
-theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
- closure (ball x r) = closedBall x r := by
- refine' Subset.antisymm closure_ball_subset_closedBall fun y hy => _
- have : ContinuousWithinAt (fun c : ℝ => c • (y - x) + x) (Ico 0 1) 1 :=
- ((continuous_id.smul continuous_const).add continuous_const).continuousWithinAt
- convert this.mem_closure _ _
- · rw [one_smul, sub_add_cancel]
- · simp [closure_Ico zero_ne_one, zero_le_one]
- · rintro c ⟨hc0, hc1⟩
- rw [mem_ball, dist_eq_norm, add_sub_cancel, norm_smul, Real.norm_eq_abs, abs_of_nonneg hc0,
- mul_comm, ← mul_one r]
- rw [mem_closedBall, dist_eq_norm] at hy
- replace hr : 0 < r := ((norm_nonneg _).trans hy).lt_of_ne hr.symm
- apply mul_lt_mul' <;> assumption
-#align closure_ball closure_ball
-
-theorem frontier_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
- frontier (ball x r) = sphere x r := by
- rw [frontier, closure_ball x hr, isOpen_ball.interior_eq, closedBall_diff_ball]
-#align frontier_ball frontier_ball
-
-theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
- interior (closedBall x r) = ball x r := by
- cases' hr.lt_or_lt with hr hr
- · rw [closedBall_eq_empty.2 hr, ball_eq_empty.2 hr.le, interior_empty]
- refine' Subset.antisymm _ ball_subset_interior_closedBall
- intro y hy
- rcases (mem_closedBall.1 <| interior_subset hy).lt_or_eq with (hr | rfl)
- · exact hr
- set f : ℝ → E := fun c : ℝ => c • (y - x) + x
- suffices f ⁻¹' closedBall x (dist y x) ⊆ Icc (-1) 1 by
- have hfc : Continuous f := (continuous_id.smul continuous_const).add continuous_const
- have hf1 : (1 : ℝ) ∈ f ⁻¹' interior (closedBall x <| dist y x) := by simpa
- have h1 : (1 : ℝ) ∈ interior (Icc (-1 : ℝ) 1) :=
- interior_mono this (preimage_interior_subset_interior_preimage hfc hf1)
- contrapose h1
- simp
- intro c hc
- rw [mem_Icc, ← abs_le, ← Real.norm_eq_abs, ← mul_le_mul_right hr]
- simpa [dist_eq_norm, norm_smul] using hc
-#align interior_closed_ball interior_closedBall
-
-theorem frontier_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
- frontier (closedBall x r) = sphere x r := by
- rw [frontier, closure_closedBall, interior_closedBall x hr, closedBall_diff_ball]
-#align frontier_closed_ball frontier_closedBall
-
-theorem interior_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
- interior (sphere x r) = ∅ := by
- rw [← frontier_closedBall x hr, interior_frontier isClosed_ball]
-#align interior_sphere interior_sphere
-
-theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
- frontier (sphere x r) = sphere x r := by
- rw [isClosed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
-#align frontier_sphere frontier_sphere
-
instance NormedSpace.discreteTopology_zmultiples
{E : Type*} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
DiscreteTopology <| AddSubgroup.zmultiples e := by
@@ -267,65 +188,6 @@ instance (priority := 100) NormedSpace.toModule' : Module α F :=
NormedSpace.toModule
#align normed_space.to_module' NormedSpace.toModule'
-section Surj
-
-variable (E)
-
-variable [NormedSpace ℝ E] [Nontrivial E]
-
-theorem exists_norm_eq {c : ℝ} (hc : 0 ≤ c) : ∃ x : E, ‖x‖ = c := by
- rcases exists_ne (0 : E) with ⟨x, hx⟩
- rw [← norm_ne_zero_iff] at hx
- use c • ‖x‖⁻¹ • x
- simp [norm_smul, Real.norm_of_nonneg hc, abs_of_nonneg hc, inv_mul_cancel hx]
-#align exists_norm_eq exists_norm_eq
-
-@[simp]
-theorem range_norm : range (norm : E → ℝ) = Ici 0 :=
- Subset.antisymm (range_subset_iff.2 norm_nonneg) fun _ => exists_norm_eq E
-#align range_norm range_norm
-
-theorem nnnorm_surjective : Surjective (nnnorm : E → ℝ≥0) := fun c =>
- (exists_norm_eq E c.coe_nonneg).imp fun _ h => NNReal.eq h
-#align nnnorm_surjective nnnorm_surjective
-
-@[simp]
-theorem range_nnnorm : range (nnnorm : E → ℝ≥0) = univ :=
- (nnnorm_surjective E).range_eq
-#align range_nnnorm range_nnnorm
-
-end Surj
-
-/-- If `E` is a nontrivial topological module over `ℝ`, then `E` has no isolated points.
-This is a particular case of `Module.punctured_nhds_neBot`. -/
-instance Real.punctured_nhds_module_neBot {E : Type*} [AddCommGroup E] [TopologicalSpace E]
- [ContinuousAdd E] [Nontrivial E] [Module ℝ E] [ContinuousSMul ℝ E] (x : E) : NeBot (𝓝[≠] x) :=
- Module.punctured_nhds_neBot ℝ E x
-#align real.punctured_nhds_module_ne_bot Real.punctured_nhds_module_neBot
-
-theorem interior_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
- interior (closedBall x r) = ball x r := by
- rcases eq_or_ne r 0 with (rfl | hr)
- · rw [closedBall_zero, ball_zero, interior_singleton]
- · exact interior_closedBall x hr
-#align interior_closed_ball' interior_closedBall'
-
-theorem frontier_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
- frontier (closedBall x r) = sphere x r := by
- rw [frontier, closure_closedBall, interior_closedBall' x r, closedBall_diff_ball]
-#align frontier_closed_ball' frontier_closedBall'
-
-@[simp]
-theorem interior_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
- interior (sphere x r) = ∅ := by rw [← frontier_closedBall' x, interior_frontier isClosed_ball]
-#align interior_sphere' interior_sphere'
-
-@[simp]
-theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
- frontier (sphere x r) = sphere x r := by
- rw [isClosed_sphere.frontier_eq, interior_sphere' x, diff_empty]
-#align frontier_sphere' frontier_sphere'
-
end NormedAddCommGroup
section NontriviallyNormedSpace
The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun
instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike
is EquivLike
, since that has a custom coe_injective'
field that is easier to implement. All other classes should take FunLike
or EquivLike
as a parameter.
Previously, morphism classes would be Type
-valued and extend FunLike
:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
After this PR, they should be Prop
-valued and take FunLike
as a parameter:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
[FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
(Note that A B
stay marked as outParam
even though they are not purely required to be so due to the FunLike
parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam
is slightly faster.)
Similarly, MyEquivClass
should take EquivLike
as a parameter.
As a result, every mention of [MyHomClass F A B]
should become [FunLike F A B] [MyHomClass F A B]
.
While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul
is more expensive. This is due to suboptimal processing of arguments. For example:
variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)
theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y
example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _
Before this PR, applying map_mul f
gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Since M
and N
are out_param
s, [MulHomClass F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found.
After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Now [FunLike F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found, before trying MulHomClass F M N
which fails. Since the Mul
hierarchy is very big, this can be slow to fail, especially when there is no such Mul
instance.
A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul
to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N]
because MulHomClass
fails or succeeds much faster than the others.
As a consequence, the simpNF
linter is much slower since by design it tries and fails to apply many map_
lemmas. The same issue occurs a few times in existing calls to simp [map_mul]
, where map_mul
is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.
simp
not firing sometimesThis affects map_smulₛₗ
and related definitions. For simp
lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw
can find every argument to map_smulₛₗ
successfully but simp
can't: leanprover/lean4#3701.
Especially in the category theory library, we might sometimes have a type A
which is also accessible as a synonym (Bundled A hA).1
. Instance synthesis doesn't always work if we have f : A →* B
but x * y : (Bundled A hA).1
or vice versa. This seems to be mostly fixed by keeping A B
as outParam
s in MulHomClass F A B
. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1
instead of using the syntax in the discrimination tree.)
The timeouts can be worked around for now by specifying which map_mul
we mean, either as map_mul f
for some explicit f
, or as e.g. MonoidHomClass.map_mul
.
map_smulₛₗ
not firing as simp
lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ
a simp
lemma instead of the generic map_smulₛₗ
. Writing simp [map_smulₛₗ _]
also works.
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -227,7 +227,8 @@ domain, using the `SeminormedAddCommGroup.induced` norm.
See note [reducible non-instances] -/
@[reducible]
def NormedSpace.induced {F : Type*} (α β γ : Type*) [NormedField α] [AddCommGroup β] [Module α β]
- [SeminormedAddCommGroup γ] [NormedSpace α γ] [LinearMapClass F α β γ] (f : F) :
+ [SeminormedAddCommGroup γ] [NormedSpace α γ] [FunLike F β γ] [LinearMapClass F α β γ]
+ (f : F) :
@NormedSpace α β _ (SeminormedAddCommGroup.induced β γ f) := by
-- Porting note: trouble inferring SeminormedAddCommGroup β and Module α β
-- unfolding the induced semi-norm is fiddly
@@ -532,7 +533,8 @@ end NormedAlgebra
See note [reducible non-instances] -/
@[reducible]
def NormedAlgebra.induced {F : Type*} (α β γ : Type*) [NormedField α] [Ring β] [Algebra α β]
- [SeminormedRing γ] [NormedAlgebra α γ] [NonUnitalAlgHomClass F α β γ] (f : F) :
+ [SeminormedRing γ] [NormedAlgebra α γ] [FunLike F β γ] [NonUnitalAlgHomClass F α β γ]
+ (f : F) :
@NormedAlgebra α β _ (SeminormedRing.induced β γ f) := by
-- Porting note: trouble with SeminormedRing β, Algebra α β, and unfolding seminorm
refine @NormedAlgebra.mk (𝕜 := α) (𝕜' := β) _ ?_ ?_ ?_
@@ -545,7 +547,7 @@ def NormedAlgebra.induced {F : Type*} (α β γ : Type*) [NormedField α] [Ring
-- Porting note: failed to synth NonunitalAlgHomClass
instance Subalgebra.toNormedAlgebra {𝕜 A : Type*} [SeminormedRing A] [NormedField 𝕜]
[NormedAlgebra 𝕜 A] (S : Subalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
- @NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) _ _ _ _ S.val
+ NormedAlgebra.induced 𝕜 S A S.val
#align subalgebra.to_normed_algebra Subalgebra.toNormedAlgebra
section RestrictScalars
@@ -68,10 +68,6 @@ theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β)
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
#align norm_zsmul norm_zsmul
-@[simp]
-theorem abs_norm (z : β) : |‖z‖| = ‖z‖ := abs_of_nonneg <| norm_nonneg _
-#align abs_norm abs_norm
-
theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
‖x‖⁻¹ • x ∈ closedBall (0 : β) 1 := by
simp only [mem_closedBall_zero_iff, norm_smul, norm_inv, norm_norm, ← _root_.div_eq_inv_mul,
From sphere-eversion (slightly golfed); I'm just upstreaming it.
@@ -86,6 +86,17 @@ variable {E : Type*} [SeminormedAddCommGroup E] [NormedSpace α E]
variable {F : Type*} [SeminormedAddCommGroup F] [NormedSpace α F]
+theorem dist_smul_add_one_sub_smul_le [NormedSpace ℝ E] {r : ℝ} {x y : E} (h : r ∈ Icc 0 1) :
+ dist (r • x + (1 - r) • y) x ≤ dist y x :=
+ calc
+ dist (r • x + (1 - r) • y) x = ‖1 - r‖ * ‖x - y‖ := by
+ simp_rw [dist_eq_norm', ← norm_smul, sub_smul, one_smul, smul_sub, ← sub_sub, ← sub_add,
+ sub_right_comm]
+ _ = (1 - r) * dist y x := by
+ rw [Real.norm_eq_abs, abs_eq_self.mpr (sub_nonneg.mpr h.2), dist_eq_norm']
+ _ ≤ (1 - 0) * dist y x := by gcongr; exact h.1
+ _ = dist y x := by rw [sub_zero, one_mul]
+
theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
have : Tendsto (fun y => ‖c • (y - x)‖) (𝓝 x) (𝓝 0) :=
@@ -4,8 +4,9 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Oliver Nash
-/
import Mathlib.Topology.PartialHomeomorph
-import Mathlib.Analysis.NormedSpace.AddTorsor
+import Mathlib.Analysis.Normed.Group.AddTorsor
import Mathlib.Analysis.NormedSpace.Pointwise
+import Mathlib.Data.Real.Sqrt
#align_import analysis.normed_space.basic from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
@@ -7,7 +7,6 @@ import Mathlib.Algebra.Algebra.Pi
import Mathlib.Algebra.Algebra.RestrictScalars
import Mathlib.Analysis.Normed.Field.Basic
import Mathlib.Analysis.Normed.MulAction
-import Mathlib.Data.Real.Sqrt
import Mathlib.Topology.Algebra.Module.Basic
#align_import analysis.normed_space.basic from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
@@ -114,7 +114,7 @@ def unitBallBall (c : P) (r : ℝ) (hr : 0 < r) : PartialHomeomorph E P :=
rw [image_comp, image_smul, smul_unitBall hr.ne', IsometryEquiv.image_ball]
simp [abs_of_pos hr]
-/-- If `r > 0`, then `PartialHomeomorph.univBall c r` is a smooth local homeomorphism
+/-- If `r > 0`, then `PartialHomeomorph.univBall c r` is a smooth partial homeomorphism
with `source = Set.univ` and `target = Metric.ball c r`.
Otherwise, it is the translation by `c`.
Thus in all cases, it sends `0` to `c`, see `PartialHomeomorph.univBall_apply_zero`. -/
LocalHomeomorph
evokes a "local homeomorphism": this is not what this means.
Instead, this is a homeomorphism on an open set of the domain (extended to the whole space, by the junk value pattern). Hence, partial homeomorphism is more appropriate, and avoids confusion with IsLocallyHomeomorph
.
A future PR will rename LocalEquiv
to PartialEquiv
.
@@ -3,7 +3,7 @@ Copyright (c) 2021 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Oliver Nash
-/
-import Mathlib.Topology.LocalHomeomorph
+import Mathlib.Topology.PartialHomeomorph
import Mathlib.Analysis.NormedSpace.AddTorsor
import Mathlib.Analysis.NormedSpace.Pointwise
@@ -17,14 +17,14 @@ In this file we show that a real (semi)normed vector space is homeomorphic to th
We formalize it in two ways:
- as a `Homeomorph`, see `Homeomorph.unitBall`;
-- as a `LocalHomeomorph` with `source = Set.univ` and `target = Metric.ball (0 : E) 1`.
+- as a `PartialHomeomorph` with `source = Set.univ` and `target = Metric.ball (0 : E) 1`.
While the former approach is more natural, the latter approach provides us
with a globally defined inverse function which makes it easier to say
that this homeomorphism is in fact a diffeomorphism.
We also show that the unit ball `Metric.ball (0 : E) 1` is homeomorphic
-to a ball of positive radius in an affine space over `E`, see `LocalHomeomorph.unitBallBall`.
+to a ball of positive radius in an affine space over `E`, see `PartialHomeomorph.unitBallBall`.
## Tags
@@ -39,7 +39,7 @@ noncomputable section
/-- Local homeomorphism between a real (semi)normed space and the unit ball.
See also `Homeomorph.unitBall`. -/
@[simps (config := .lemmasOnly)]
-def LocalHomeomorph.univUnitBall : LocalHomeomorph E E where
+def PartialHomeomorph.univUnitBall : PartialHomeomorph E E where
toFun x := (1 + ‖x‖ ^ 2).sqrt⁻¹ • x
invFun y := (1 - ‖(y : E)‖ ^ 2).sqrt⁻¹ • (y : E)
source := univ
@@ -73,12 +73,12 @@ def LocalHomeomorph.univUnitBall : LocalHomeomorph E E where
(continuousOn_const.sub (continuous_norm.continuousOn.pow _)).sqrt this) continuousOn_id
@[simp]
-theorem LocalHomeomorph.univUnitBall_apply_zero : univUnitBall (0 : E) = 0 := by
- simp [LocalHomeomorph.univUnitBall_apply]
+theorem PartialHomeomorph.univUnitBall_apply_zero : univUnitBall (0 : E) = 0 := by
+ simp [PartialHomeomorph.univUnitBall_apply]
@[simp]
-theorem LocalHomeomorph.univUnitBall_symm_apply_zero : univUnitBall.symm (0 : E) = 0 := by
- simp [LocalHomeomorph.univUnitBall_symm_apply]
+theorem PartialHomeomorph.univUnitBall_symm_apply_zero : univUnitBall.symm (0 : E) = 0 := by
+ simp [PartialHomeomorph.univUnitBall_symm_apply]
/-- A (semi) normed real vector space is homeomorphic to the unit ball in the same space.
This homeomorphism sends `x : E` to `(1 + ‖x‖²)^(- ½) • x`.
@@ -86,41 +86,41 @@ This homeomorphism sends `x : E` to `(1 + ‖x‖²)^(- ½) • x`.
In many cases the actual implementation is not important, so we don't mark the projection lemmas
`Homeomorph.unitBall_apply_coe` and `Homeomorph.unitBall_symm_apply` as `@[simp]`.
-See also `Homeomorph.contDiff_unitBall` and `LocalHomeomorph.contDiffOn_unitBall_symm`
+See also `Homeomorph.contDiff_unitBall` and `PartialHomeomorph.contDiffOn_unitBall_symm`
for smoothness properties that hold when `E` is an inner-product space. -/
@[simps! (config := .lemmasOnly)]
def Homeomorph.unitBall : E ≃ₜ ball (0 : E) 1 :=
- (Homeomorph.Set.univ _).symm.trans LocalHomeomorph.univUnitBall.toHomeomorphSourceTarget
+ (Homeomorph.Set.univ _).symm.trans PartialHomeomorph.univUnitBall.toHomeomorphSourceTarget
#align homeomorph_unit_ball Homeomorph.unitBall
@[simp]
theorem Homeomorph.coe_unitBall_apply_zero :
(Homeomorph.unitBall (0 : E) : E) = 0 :=
- LocalHomeomorph.univUnitBall_apply_zero
+ PartialHomeomorph.univUnitBall_apply_zero
#align coe_homeomorph_unit_ball_apply_zero Homeomorph.coe_unitBall_apply_zero
variable {P : Type*} [PseudoMetricSpace P] [NormedAddTorsor E P]
-namespace LocalHomeomorph
+namespace PartialHomeomorph
/-- Affine homeomorphism `(r • · +ᵥ c)` between a normed space and an add torsor over this space,
-interpreted as a `LocalHomeomorph` between `Metric.ball 0 1` and `Metric.ball c r`. -/
+interpreted as a `PartialHomeomorph` between `Metric.ball 0 1` and `Metric.ball c r`. -/
@[simps!]
-def unitBallBall (c : P) (r : ℝ) (hr : 0 < r) : LocalHomeomorph E P :=
+def unitBallBall (c : P) (r : ℝ) (hr : 0 < r) : PartialHomeomorph E P :=
((Homeomorph.smulOfNeZero r hr.ne').trans
- (IsometryEquiv.vaddConst c).toHomeomorph).toLocalHomeomorphOfImageEq
+ (IsometryEquiv.vaddConst c).toHomeomorph).toPartialHomeomorphOfImageEq
(ball 0 1) isOpen_ball (ball c r) <| by
change (IsometryEquiv.vaddConst c) ∘ (r • ·) '' ball (0 : E) 1 = ball c r
rw [image_comp, image_smul, smul_unitBall hr.ne', IsometryEquiv.image_ball]
simp [abs_of_pos hr]
-/-- If `r > 0`, then `LocalHomeomorph.univBall c r` is a smooth local homeomorphism
+/-- If `r > 0`, then `PartialHomeomorph.univBall c r` is a smooth local homeomorphism
with `source = Set.univ` and `target = Metric.ball c r`.
Otherwise, it is the translation by `c`.
-Thus in all cases, it sends `0` to `c`, see `LocalHomeomorph.univBall_apply_zero`. -/
-def univBall (c : P) (r : ℝ) : LocalHomeomorph E P :=
+Thus in all cases, it sends `0` to `c`, see `PartialHomeomorph.univBall_apply_zero`. -/
+def univBall (c : P) (r : ℝ) : PartialHomeomorph E P :=
if h : 0 < r then univUnitBall.trans' (unitBallBall c r h) rfl
- else (IsometryEquiv.vaddConst c).toHomeomorph.toLocalHomeomorph
+ else (IsometryEquiv.vaddConst c).toHomeomorph.toPartialHomeomorph
@[simp]
theorem univBall_source (c : P) (r : ℝ) : (univBall c r).source = univ := by
They have type ContinuousOn ..., hence should be named accordingly. Suggested by @fpvandoorn in #8736.
@@ -60,12 +60,12 @@ def LocalHomeomorph.univUnitBall : LocalHomeomorph E E where
← Real.sqrt_div this.le]
open_source := isOpen_univ
open_target := isOpen_ball
- continuous_toFun := by
+ continuousOn_toFun := by
suffices Continuous fun (x:E) => (1 + ‖x‖ ^ 2).sqrt⁻¹
from (this.smul continuous_id).continuousOn
refine' Continuous.inv₀ _ fun x => Real.sqrt_ne_zero'.mpr (by positivity)
continuity
- continuous_invFun := by
+ continuousOn_invFun := by
have : ∀ y ∈ ball (0 : E) 1, (1 - ‖(y : E)‖ ^ 2).sqrt ≠ 0 := fun y hy ↦ by
rw [Real.sqrt_ne_zero']
nlinarith [norm_nonneg y, mem_ball_zero_iff.1 hy]
BoundedSMul
instance (#8854)
This typeclass probably didn't exist yet when this was written.
Also cleans up some nearby style and comments.
@@ -396,8 +396,8 @@ section NormedAlgebra
See the implementation notes for `Algebra` for a discussion about non-unital algebras. Following
the strategy there, a non-unital *normed* algebra can be written as:
```lean
-variables [NormedField 𝕜] [NonunitalSeminormedRing 𝕜']
-variables [NormedModule 𝕜 𝕜'] [SMulCommClass 𝕜 𝕜' 𝕜'] [IsScalarTower 𝕜 𝕜' 𝕜']
+variables [NormedField 𝕜] [NonUnitalSeminormedRing 𝕜']
+variables [NormedSpace 𝕜 𝕜'] [SMulCommClass 𝕜 𝕜' 𝕜'] [IsScalarTower 𝕜 𝕜' 𝕜']
```
-/
class NormedAlgebra (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [SeminormedRing 𝕜'] extends
Mostly, this means replacing "of_open" by "of_isOpen". A few lemmas names were misleading and are corrected differently. Zulip discussion.
@@ -170,7 +170,7 @@ instance NormedSpace.discreteTopology_zmultiples
rcases eq_or_ne e 0 with (rfl | he)
· rw [AddSubgroup.zmultiples_zero_eq_bot]
refine Subsingleton.discreteTopology (α := ↑(⊥ : Subspace ℚ E))
- · rw [discreteTopology_iff_open_singleton_zero, isOpen_induced_iff]
+ · rw [discreteTopology_iff_isOpen_singleton_zero, isOpen_induced_iff]
refine' ⟨Metric.ball 0 ‖e‖, Metric.isOpen_ball, _⟩
ext ⟨x, hx⟩
obtain ⟨k, rfl⟩ := AddSubgroup.mem_zmultiples_iff.mp hx
Generalize from nontrivially normed fields to normed fields. Also prove that a nontrivially normed field is infinite.
@@ -22,7 +22,8 @@ about these definitions.
variable {α : Type*} {β : Type*} {γ : Type*} {ι : Type*}
-open Filter Metric Function Set Topology BigOperators NNReal ENNReal uniformity
+open Filter Metric Function Set Topology Bornology
+open scoped BigOperators NNReal ENNReal uniformity
section SeminormedAddCommGroup
@@ -341,22 +342,52 @@ protected theorem NormedSpace.unbounded_univ : ¬Bornology.IsBounded (univ : Set
hx.not_le (hR x trivial)
#align normed_space.unbounded_univ NormedSpace.unbounded_univ
-/-- A normed vector space over a nontrivially normed field is a noncompact space. This cannot be
-an instance because in order to apply it, Lean would have to search for `NormedSpace 𝕜 E` with
-unknown `𝕜`. We register this as an instance in two cases: `𝕜 = E` and `𝕜 = ℝ`. -/
-protected theorem NormedSpace.noncompactSpace : NoncompactSpace E :=
- ⟨fun h => NormedSpace.unbounded_univ 𝕜 _ h.isBounded⟩
+protected lemma NormedSpace.cobounded_neBot : NeBot (cobounded E) := by
+ rw [neBot_iff, Ne.def, cobounded_eq_bot_iff, ← isBounded_univ]
+ exact NormedSpace.unbounded_univ 𝕜 E
+
+instance (priority := 100) NontriviallyNormedField.cobounded_neBot : NeBot (cobounded 𝕜) :=
+ NormedSpace.cobounded_neBot 𝕜 𝕜
+
+instance (priority := 80) RealNormedSpace.cobounded_neBot [NormedSpace ℝ E] :
+ NeBot (cobounded E) := NormedSpace.cobounded_neBot ℝ E
+
+instance (priority := 80) NontriviallyNormedField.infinite : Infinite 𝕜 :=
+ ⟨fun _ ↦ NormedSpace.unbounded_univ 𝕜 𝕜 (Set.toFinite _).isBounded⟩
+
+end NontriviallyNormedSpace
+
+section NormedSpace
+
+variable (𝕜 E : Type*) [NormedField 𝕜] [Infinite 𝕜] [NormedAddCommGroup E] [Nontrivial E]
+ [NormedSpace 𝕜 E]
+
+/-- A normed vector space over an infinite normed field is a noncompact space.
+This cannot be an instance because in order to apply it,
+Lean would have to search for `NormedSpace 𝕜 E` with unknown `𝕜`.
+We register this as an instance in two cases: `𝕜 = E` and `𝕜 = ℝ`. -/
+protected theorem NormedSpace.noncompactSpace : NoncompactSpace E := by
+ by_cases H : ∃ c : 𝕜, c ≠ 0 ∧ ‖c‖ ≠ 1
+ · letI := NontriviallyNormedField.ofNormNeOne H
+ exact ⟨fun h ↦ NormedSpace.unbounded_univ 𝕜 E h.isBounded⟩
+ · push_neg at H
+ rcases exists_ne (0 : E) with ⟨x, hx⟩
+ suffices ClosedEmbedding (Infinite.natEmbedding 𝕜 · • x) from this.noncompactSpace
+ refine closedEmbedding_of_pairwise_le_dist (norm_pos_iff.2 hx) fun k n hne ↦ ?_
+ simp only [dist_eq_norm, ← sub_smul, norm_smul]
+ rw [H, one_mul]
+ rwa [sub_ne_zero, (Embedding.injective _).ne_iff]
#align normed_space.noncompact_space NormedSpace.noncompactSpace
-instance (priority := 100) NontriviallyNormedField.noncompactSpace : NoncompactSpace 𝕜 :=
+instance (priority := 100) NormedField.noncompactSpace : NoncompactSpace 𝕜 :=
NormedSpace.noncompactSpace 𝕜 𝕜
-#align nontrivially_normed_field.noncompact_space NontriviallyNormedField.noncompactSpace
+#align nontrivially_normed_field.noncompact_space NormedField.noncompactSpace
instance (priority := 100) RealNormedSpace.noncompactSpace [NormedSpace ℝ E] : NoncompactSpace E :=
NormedSpace.noncompactSpace ℝ E
#align real_normed_space.noncompact_space RealNormedSpace.noncompactSpace
-end NontriviallyNormedSpace
+end NormedSpace
section NormedAlgebra
Metric.Bounded
(#7240)
Use Bornology.IsBounded
instead.
@@ -335,8 +335,8 @@ theorem NormedSpace.exists_lt_norm (c : ℝ) : ∃ x : E, c < ‖x‖ := by
rwa [norm_pos_iff]
#align normed_space.exists_lt_norm NormedSpace.exists_lt_norm
-protected theorem NormedSpace.unbounded_univ : ¬Bounded (univ : Set E) := fun h =>
- let ⟨R, hR⟩ := bounded_iff_forall_norm_le.1 h
+protected theorem NormedSpace.unbounded_univ : ¬Bornology.IsBounded (univ : Set E) := fun h =>
+ let ⟨R, hR⟩ := isBounded_iff_forall_norm_le.1 h
let ⟨x, hx⟩ := NormedSpace.exists_lt_norm 𝕜 E R
hx.not_le (hR x trivial)
#align normed_space.unbounded_univ NormedSpace.unbounded_univ
@@ -345,7 +345,7 @@ protected theorem NormedSpace.unbounded_univ : ¬Bounded (univ : Set E) := fun h
an instance because in order to apply it, Lean would have to search for `NormedSpace 𝕜 E` with
unknown `𝕜`. We register this as an instance in two cases: `𝕜 = E` and `𝕜 = ℝ`. -/
protected theorem NormedSpace.noncompactSpace : NoncompactSpace E :=
- ⟨fun h => NormedSpace.unbounded_univ 𝕜 _ h.bounded⟩
+ ⟨fun h => NormedSpace.unbounded_univ 𝕜 _ h.isBounded⟩
#align normed_space.noncompact_space NormedSpace.noncompactSpace
instance (priority := 100) NontriviallyNormedField.noncompactSpace : NoncompactSpace 𝕜 :=
@@ -117,7 +117,7 @@ def unitBallBall (c : P) (r : ℝ) (hr : 0 < r) : LocalHomeomorph E P :=
/-- If `r > 0`, then `LocalHomeomorph.univBall c r` is a smooth local homeomorphism
with `source = Set.univ` and `target = Metric.ball c r`.
Otherwise, it is the translation by `c`.
-Thus in all cases, it sends `0` to `c`, see `LocalHomeomorph.univBall_apply_zero`. -/
+Thus in all cases, it sends `0` to `c`, see `LocalHomeomorph.univBall_apply_zero`. -/
def univBall (c : P) (r : ℝ) : LocalHomeomorph E P :=
if h : 0 < r then univUnitBall.trans' (unitBallBall c r h) rfl
else (IsometryEquiv.vaddConst c).toHomeomorph.toLocalHomeomorph
This moves the Algebra
instance on MulOpposite
to a new file, and adds the AlgHom
and AlgEquiv
versions of various existing RingHom
and RingEquiv
definitions:
AlgHom.fromOpposite
AlgHom.toOpposite
AlgHom.op
AlgHom.unop
AlgEquiv.op
AlgHom.unop
AlgEquiv.toOpposite
As MulOpposite.instAlgebra
is no longer in Mathlib.Algebra.Algebra.Basic
, some new downstream imports are needed.
@@ -483,7 +483,8 @@ variable {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E]
instance MulOpposite.normedAlgebra {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
NormedAlgebra 𝕜 Eᵐᵒᵖ :=
- { MulOpposite.normedSpace, MulOpposite.instAlgebraMulOpposite with }
+ { MulOpposite.normedSpace, MulOpposite.instAlgebra with }
+
#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
end NormedAlgebra
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -32,7 +32,7 @@ homeomorphism, ball
-/
open Set Metric Pointwise
-variable {E : Type _} [SeminormedAddCommGroup E] [NormedSpace ℝ E]
+variable {E : Type*} [SeminormedAddCommGroup E] [NormedSpace ℝ E]
noncomputable section
@@ -99,7 +99,7 @@ theorem Homeomorph.coe_unitBall_apply_zero :
LocalHomeomorph.univUnitBall_apply_zero
#align coe_homeomorph_unit_ball_apply_zero Homeomorph.coe_unitBall_apply_zero
-variable {P : Type _} [PseudoMetricSpace P] [NormedAddTorsor E P]
+variable {P : Type*} [PseudoMetricSpace P] [NormedAddTorsor E P]
namespace LocalHomeomorph
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -20,7 +20,7 @@ about these definitions.
-/
-variable {α : Type _} {β : Type _} {γ : Type _} {ι : Type _}
+variable {α : Type*} {β : Type*} {γ : Type*} {ι : Type*}
open Filter Metric Function Set Topology BigOperators NNReal ENNReal uniformity
@@ -40,7 +40,7 @@ equality `‖c • x‖ = ‖c‖ ‖x‖`. We require only `‖c • x‖ ≤
Note that since this requires `SeminormedAddCommGroup` and not `NormedAddCommGroup`, this
typeclass can be used for "semi normed spaces" too, just as `Module` can be used for
"semi modules". -/
-class NormedSpace (α : Type _) (β : Type _) [NormedField α] [SeminormedAddCommGroup β] extends
+class NormedSpace (α : Type*) (β : Type*) [NormedField α] [SeminormedAddCommGroup β] extends
Module α β where
norm_smul_le : ∀ (a : α) (b : β), ‖a • b‖ ≤ ‖a‖ * ‖b‖
#align normed_space NormedSpace
@@ -82,9 +82,9 @@ theorem norm_smul_of_nonneg [NormedSpace ℝ β] {t : ℝ} (ht : 0 ≤ t) (x :
rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg ht]
#align norm_smul_of_nonneg norm_smul_of_nonneg
-variable {E : Type _} [SeminormedAddCommGroup E] [NormedSpace α E]
+variable {E : Type*} [SeminormedAddCommGroup E] [NormedSpace α E]
-variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace α F]
+variable {F : Type*} [SeminormedAddCommGroup F] [NormedSpace α F]
theorem eventually_nhds_norm_smul_sub_lt (c : α) (x : E) {ε : ℝ} (h : 0 < ε) :
∀ᶠ y in 𝓝 x, ‖c • (y - x)‖ < ε :=
@@ -164,7 +164,7 @@ theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
#align frontier_sphere frontier_sphere
instance NormedSpace.discreteTopology_zmultiples
- {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
+ {E : Type*} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
DiscreteTopology <| AddSubgroup.zmultiples e := by
rcases eq_or_ne e 0 with (rfl | he)
· rw [AddSubgroup.zmultiples_zero_eq_bot]
@@ -193,7 +193,7 @@ instance Prod.normedSpace : NormedSpace α (E × F) :=
#align prod.normed_space Prod.normedSpace
/-- The product of finitely many normed spaces is a normed space, with the sup norm. -/
-instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCommGroup (E i)]
+instance Pi.normedSpace {E : ι → Type*} [Fintype ι] [∀ i, SeminormedAddCommGroup (E i)]
[∀ i, NormedSpace α (E i)] : NormedSpace α (∀ i, E i) where
norm_smul_le a f := by
simp_rw [← coe_nnnorm, ← NNReal.coe_mul, NNReal.coe_le_coe, Pi.nnnorm_def,
@@ -207,7 +207,7 @@ instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
#align mul_opposite.normed_space MulOpposite.normedSpace
/-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/
-instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type _}
+instance Submodule.normedSpace {𝕜 R : Type*} [SMul 𝕜 R] [NormedField 𝕜] [Ring R] {E : Type*}
[SeminormedAddCommGroup E] [NormedSpace 𝕜 E] [Module R E] [IsScalarTower 𝕜 R E]
(s : Submodule R E) : NormedSpace 𝕜 s where norm_smul_le c x := norm_smul_le c (x : E)
#align submodule.normed_space Submodule.normedSpace
@@ -219,7 +219,7 @@ domain, using the `SeminormedAddCommGroup.induced` norm.
See note [reducible non-instances] -/
@[reducible]
-def NormedSpace.induced {F : Type _} (α β γ : Type _) [NormedField α] [AddCommGroup β] [Module α β]
+def NormedSpace.induced {F : Type*} (α β γ : Type*) [NormedField α] [AddCommGroup β] [Module α β]
[SeminormedAddCommGroup γ] [NormedSpace α γ] [LinearMapClass F α β γ] (f : F) :
@NormedSpace α β _ (SeminormedAddCommGroup.induced β γ f) := by
-- Porting note: trouble inferring SeminormedAddCommGroup β and Module α β
@@ -235,9 +235,9 @@ section NormedAddCommGroup
variable [NormedField α]
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace α E]
+variable {E : Type*} [NormedAddCommGroup E] [NormedSpace α E]
-variable {F : Type _} [NormedAddCommGroup F] [NormedSpace α F]
+variable {F : Type*} [NormedAddCommGroup F] [NormedSpace α F]
open NormedField
@@ -290,7 +290,7 @@ end Surj
/-- If `E` is a nontrivial topological module over `ℝ`, then `E` has no isolated points.
This is a particular case of `Module.punctured_nhds_neBot`. -/
-instance Real.punctured_nhds_module_neBot {E : Type _} [AddCommGroup E] [TopologicalSpace E]
+instance Real.punctured_nhds_module_neBot {E : Type*} [AddCommGroup E] [TopologicalSpace E]
[ContinuousAdd E] [Nontrivial E] [Module ℝ E] [ContinuousSMul ℝ E] (x : E) : NeBot (𝓝[≠] x) :=
Module.punctured_nhds_neBot ℝ E x
#align real.punctured_nhds_module_ne_bot Real.punctured_nhds_module_neBot
@@ -322,7 +322,7 @@ end NormedAddCommGroup
section NontriviallyNormedSpace
-variable (𝕜 E : Type _) [NontriviallyNormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
+variable (𝕜 E : Type*) [NontriviallyNormedField 𝕜] [NormedAddCommGroup E] [NormedSpace 𝕜 E]
[Nontrivial E]
/-- If `E` is a nontrivial normed space over a nontrivially normed field `𝕜`, then `E` is unbounded:
@@ -369,14 +369,14 @@ variables [NormedField 𝕜] [NonunitalSeminormedRing 𝕜']
variables [NormedModule 𝕜 𝕜'] [SMulCommClass 𝕜 𝕜' 𝕜'] [IsScalarTower 𝕜 𝕜' 𝕜']
```
-/
-class NormedAlgebra (𝕜 : Type _) (𝕜' : Type _) [NormedField 𝕜] [SeminormedRing 𝕜'] extends
+class NormedAlgebra (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [SeminormedRing 𝕜'] extends
Algebra 𝕜 𝕜' where
norm_smul_le : ∀ (r : 𝕜) (x : 𝕜'), ‖r • x‖ ≤ ‖r‖ * ‖x‖
#align normed_algebra NormedAlgebra
attribute [inherit_doc NormedAlgebra] NormedAlgebra.norm_smul_le
-variable {𝕜 : Type _} (𝕜' : Type _) [NormedField 𝕜] [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜']
+variable {𝕜 : Type*} (𝕜' : Type*) [NormedField 𝕜] [SeminormedRing 𝕜'] [NormedAlgebra 𝕜 𝕜']
instance (priority := 100) NormedAlgebra.toNormedSpace : NormedSpace 𝕜 𝕜' :=
-- Porting note: previous Lean could figure out what we were extending
@@ -467,21 +467,21 @@ instance : NormedAlgebra 𝕜 (ULift 𝕜') :=
{ ULift.normedSpace, ULift.algebra with }
/-- The product of two normed algebras is a normed algebra, with the sup norm. -/
-instance Prod.normedAlgebra {E F : Type _} [SeminormedRing E] [SeminormedRing F] [NormedAlgebra 𝕜 E]
+instance Prod.normedAlgebra {E F : Type*} [SeminormedRing E] [SeminormedRing F] [NormedAlgebra 𝕜 E]
[NormedAlgebra 𝕜 F] : NormedAlgebra 𝕜 (E × F) :=
{ Prod.normedSpace, Prod.algebra 𝕜 E F with }
#align prod.normed_algebra Prod.normedAlgebra
-- Porting note: Lean 3 could synth the algebra instances for Pi Pr
/-- The product of finitely many normed algebras is a normed algebra, with the sup norm. -/
-instance Pi.normedAlgebra {E : ι → Type _} [Fintype ι] [∀ i, SeminormedRing (E i)]
+instance Pi.normedAlgebra {E : ι → Type*} [Fintype ι] [∀ i, SeminormedRing (E i)]
[∀ i, NormedAlgebra 𝕜 (E i)] : NormedAlgebra 𝕜 (∀ i, E i) :=
{ Pi.normedSpace, Pi.algebra _ E with }
#align pi.normed_algebra Pi.normedAlgebra
-variable {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E]
+variable {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E]
-instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
+instance MulOpposite.normedAlgebra {E : Type*} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
NormedAlgebra 𝕜 Eᵐᵒᵖ :=
{ MulOpposite.normedSpace, MulOpposite.instAlgebraMulOpposite with }
#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
@@ -493,7 +493,7 @@ end NormedAlgebra
See note [reducible non-instances] -/
@[reducible]
-def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Ring β] [Algebra α β]
+def NormedAlgebra.induced {F : Type*} (α β γ : Type*) [NormedField α] [Ring β] [Algebra α β]
[SeminormedRing γ] [NormedAlgebra α γ] [NonUnitalAlgHomClass F α β γ] (f : F) :
@NormedAlgebra α β _ (SeminormedRing.induced β γ f) := by
-- Porting note: trouble with SeminormedRing β, Algebra α β, and unfolding seminorm
@@ -505,21 +505,21 @@ def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Rin
#align normed_algebra.induced NormedAlgebra.induced
-- Porting note: failed to synth NonunitalAlgHomClass
-instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SeminormedRing A] [NormedField 𝕜]
+instance Subalgebra.toNormedAlgebra {𝕜 A : Type*} [SeminormedRing A] [NormedField 𝕜]
[NormedAlgebra 𝕜 A] (S : Subalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) _ _ _ _ S.val
#align subalgebra.to_normed_algebra Subalgebra.toNormedAlgebra
section RestrictScalars
-variable (𝕜 : Type _) (𝕜' : Type _) [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
- (E : Type _) [SeminormedAddCommGroup E] [NormedSpace 𝕜' E]
+variable (𝕜 : Type*) (𝕜' : Type*) [NormedField 𝕜] [NormedField 𝕜'] [NormedAlgebra 𝕜 𝕜']
+ (E : Type*) [SeminormedAddCommGroup E] [NormedSpace 𝕜' E]
-instance {𝕜 : Type _} {𝕜' : Type _} {E : Type _} [I : SeminormedAddCommGroup E] :
+instance {𝕜 : Type*} {𝕜' : Type*} {E : Type*} [I : SeminormedAddCommGroup E] :
SeminormedAddCommGroup (RestrictScalars 𝕜 𝕜' E) :=
I
-instance {𝕜 : Type _} {𝕜' : Type _} {E : Type _} [I : NormedAddCommGroup E] :
+instance {𝕜 : Type*} {𝕜' : Type*} {E : Type*} [I : NormedAddCommGroup E] :
NormedAddCommGroup (RestrictScalars 𝕜 𝕜' E) :=
I
@@ -535,7 +535,7 @@ instance RestrictScalars.normedSpace : NormedSpace 𝕜 (RestrictScalars 𝕜
/-- The action of the original normed_field on `RestrictScalars 𝕜 𝕜' E`.
This is not an instance as it would be contrary to the purpose of `RestrictScalars`.
-/
-def Module.RestrictScalars.normedSpaceOrig {𝕜 : Type _} {𝕜' : Type _} {E : Type _} [NormedField 𝕜']
+def Module.RestrictScalars.normedSpaceOrig {𝕜 : Type*} {𝕜' : Type*} {E : Type*} [NormedField 𝕜']
[SeminormedAddCommGroup E] [I : NormedSpace 𝕜' E] : NormedSpace 𝕜' (RestrictScalars 𝕜 𝕜' E) :=
I
#align module.restrict_scalars.normed_space_orig Module.RestrictScalars.normedSpaceOrig
Per https://github.com/leanprover/lean4/issues/2343, we are going to need to change the automatic generation of instance names, as they become too long.
This PR ensures that everywhere in Mathlib that refers to an instance by name, that name is given explicitly, rather than being automatically generated.
There are four exceptions, which are now commented, with links to https://github.com/leanprover/lean4/issues/2343.
This was implemented by running Mathlib against a modified Lean that appended _ᾰ
to all automatically generated names, and fixing everything.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -186,7 +186,7 @@ instance ULift.normedSpace : NormedSpace α (ULift E) :=
/-- The product of two normed spaces is a normed space, with the sup norm. -/
instance Prod.normedSpace : NormedSpace α (E × F) :=
- { Prod.seminormedAddCommGroup (E := E) (F := F), Prod.module with
+ { Prod.seminormedAddCommGroup (E := E) (F := F), Prod.instModule with
norm_smul_le := fun s x => by
simp only [norm_smul, Prod.norm_def, Prod.smul_snd, Prod.smul_fst,
mul_max_of_nonneg, norm_nonneg, le_rfl] }
@@ -483,7 +483,7 @@ variable {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E]
instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebra 𝕜 E] :
NormedAlgebra 𝕜 Eᵐᵒᵖ :=
- { MulOpposite.normedSpace, MulOpposite.instAlgebraMulOppositeSemiring with }
+ { MulOpposite.normedSpace, MulOpposite.instAlgebraMulOpposite with }
#align mul_opposite.normed_algebra MulOpposite.normedAlgebra
end NormedAlgebra
@@ -163,7 +163,8 @@ theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
rw [isClosed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
#align frontier_sphere frontier_sphere
-instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
+instance NormedSpace.discreteTopology_zmultiples
+ {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
DiscreteTopology <| AddSubgroup.zmultiples e := by
rcases eq_or_ne e 0 with (rfl | he)
· rw [AddSubgroup.zmultiples_zero_eq_bot]
homeomorphUnitBall
(#6030)
Equiv.toLocalEquivOfImageEq
and Homeomorph.toLocalHomeomorphOfImageEq
.homeomorphUnitBall
to Homeomorph.unitBall
.LocalHomeomorph.univUnitBall
,
a LocalHomeomorph
version of Homeomorph.unitBall
.LocalHomeomorph.unitBallBall
and LocalHomeomorph.univBall
.Inspired by a definition from the sphere eversion project.
homeomorphUnitBall
(#6030)
Equiv.toLocalEquivOfImageEq
and Homeomorph.toLocalHomeomorphOfImageEq
.homeomorphUnitBall
to Homeomorph.unitBall
.LocalHomeomorph.univUnitBall
,
a LocalHomeomorph
version of Homeomorph.unitBall
.LocalHomeomorph.unitBallBall
and LocalHomeomorph.univBall
.Inspired by a definition from the sphere eversion project.
@@ -177,52 +177,6 @@ instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
Int.norm_eq_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ←
@Int.cast_one ℝ _, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
-/-- A (semi) normed real vector space is homeomorphic to the unit ball in the same space.
-This homeomorphism sends `x : E` to `(1 + ‖x‖²)^(- ½) • x`.
-
-In many cases the actual implementation is not important, so we don't mark the projection lemmas
-`homeomorphUnitBall_apply_coe` and `homeomorphUnitBall_symm_apply` as `@[simp]`.
-
-See also `contDiff_homeomorphUnitBall` and `contDiffOn_homeomorphUnitBall_symm` for
-smoothness properties that hold when `E` is an inner-product space. -/
-@[simps (config := { isSimp := false })]
-noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E) 1 where
- toFun x :=
- ⟨(1 + ‖x‖ ^ 2).sqrt⁻¹ • x, by
- have : 0 < 1 + ‖x‖ ^ 2 := by positivity
- rw [mem_ball_zero_iff, norm_smul, Real.norm_eq_abs, abs_inv, ← _root_.div_eq_inv_mul,
- div_lt_one (abs_pos.mpr <| Real.sqrt_ne_zero'.mpr this), ← abs_norm x, ← sq_lt_sq,
- abs_norm, Real.sq_sqrt this.le]
- exact lt_one_add _⟩
- invFun y := (1 - ‖(y : E)‖ ^ 2).sqrt⁻¹ • (y : E)
- left_inv x := by
- field_simp [norm_smul, smul_smul, (zero_lt_one_add_norm_sq x).ne', sq_abs,
- Real.sq_sqrt (zero_lt_one_add_norm_sq x).le, ← Real.sqrt_div (zero_lt_one_add_norm_sq x).le]
- right_inv y := by
- have : 0 < 1 - ‖(y : E)‖ ^ 2 := by
- nlinarith [norm_nonneg (y : E), (mem_ball_zero_iff.1 y.2 : ‖(y : E)‖ < 1)]
- field_simp [norm_smul, smul_smul, this.ne', sq_abs, Real.sq_sqrt this.le,
- ← Real.sqrt_div this.le]
- continuous_toFun := by
- suffices : Continuous fun (x:E) => (1 + ‖x‖ ^ 2).sqrt⁻¹;
- exact (this.smul continuous_id).subtype_mk _
- refine' Continuous.inv₀ _ fun x => Real.sqrt_ne_zero'.mpr (by positivity)
- continuity
- continuous_invFun := by
- suffices ∀ y : ball (0 : E) 1, (1 - ‖(y : E)‖ ^ 2).sqrt ≠ 0 by
- apply Continuous.smul (Continuous.inv₀
- (continuous_const.sub ?_).sqrt this) continuous_induced_dom
- continuity -- Porting note: was just this tactic for `suffices`
- intro y
- rw [Real.sqrt_ne_zero']
- nlinarith [norm_nonneg (y : E), (mem_ball_zero_iff.1 y.2 : ‖(y : E)‖ < 1)]
-#align homeomorph_unit_ball homeomorphUnitBall
-
-@[simp]
-theorem coe_homeomorphUnitBall_apply_zero [NormedSpace ℝ E] :
- (homeomorphUnitBall (0 : E) : E) = 0 := by simp [homeomorphUnitBall_apply_coe]
-#align coe_homeomorph_unit_ball_apply_zero coe_homeomorphUnitBall_apply_zero
-
open NormedField
instance ULift.normedSpace : NormedSpace α (ULift E) :=
@@ -2,11 +2,6 @@
Copyright (c) 2018 Patrick Massot. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
-
-! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Algebra.Pi
import Mathlib.Algebra.Algebra.RestrictScalars
@@ -15,6 +10,8 @@ import Mathlib.Analysis.Normed.MulAction
import Mathlib.Data.Real.Sqrt
import Mathlib.Topology.Algebra.Module.Basic
+#align_import analysis.normed_space.basic from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
+
/-!
# Normed spaces
isSimp := false
in simps
(#5977)
Lean 3 @[simps { attrs := [] }]
should be translated to @[simps (config := { isSimp := false })]
to avoid adding @[simp]
attribute.
@@ -188,7 +188,7 @@ In many cases the actual implementation is not important, so we don't mark the p
See also `contDiff_homeomorphUnitBall` and `contDiffOn_homeomorphUnitBall_symm` for
smoothness properties that hold when `E` is an inner-product space. -/
-@[simps (config := { attrs := [] })]
+@[simps (config := { isSimp := false })]
noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E) 1 where
toFun x :=
⟨(1 + ‖x‖ ^ 2).sqrt⁻¹ • x, by
@@ -221,9 +221,9 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
nlinarith [norm_nonneg (y : E), (mem_ball_zero_iff.1 y.2 : ‖(y : E)‖ < 1)]
#align homeomorph_unit_ball homeomorphUnitBall
--- Porting note: simp can prove this; removed simp
+@[simp]
theorem coe_homeomorphUnitBall_apply_zero [NormedSpace ℝ E] :
- (homeomorphUnitBall (0 : E) : E) = 0 := by simp
+ (homeomorphUnitBall (0 : E) : E) = 0 := by simp [homeomorphUnitBall_apply_coe]
#align coe_homeomorph_unit_ball_apply_zero coe_homeomorphUnitBall_apply_zero
open NormedField
This shows that, if the topology of E
is defined by some family of seminorms p
, then a seminorm q
is continuous iff ∃ s : Finset ι, ∃ C : ℝ≥0, C ≠ 0 ∧ q ≤ C • s.sup p
. Via Seminorm.continuous_iff_continuous_comp this gives the converse of Seminorm.continuous_from_bounded and hence a characterization of continuous linear maps between such spaces.
To do that, we restate all of the "bound of shell" lemmas in terms of seminorms, which needs changing some imports, but I've checked the current state of the port and this should not cause too much trouble since most of the touched files are already ported so we can changes the imports in mathlib4 too.
The WithSeminorms
file needs a naming/dot notation refactor at some point, because the naming scheme is neither predictable nor convenient to use, but this PR is already large enough.
@@ -260,44 +260,6 @@ instance Submodule.normedSpace {𝕜 R : Type _} [SMul 𝕜 R] [NormedField 𝕜
(s : Submodule R E) : NormedSpace 𝕜 s where norm_smul_le c x := norm_smul_le c (x : E)
#align submodule.normed_space Submodule.normedSpace
-/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
-moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
-the rescaling element that shows up in applications. -/
-theorem rescale_to_shell_semi_normed_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E}
- (hx : ‖x‖ ≠ 0) :
- ∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ := by
- have xεpos : 0 < ‖x‖ / ε := div_pos ((Ne.symm hx).le_iff_lt.1 (norm_nonneg x)) εpos
- rcases exists_mem_Ico_zpow xεpos hc with ⟨n, hn⟩
- have cpos : 0 < ‖c‖ := lt_trans (zero_lt_one : (0 : ℝ) < 1) hc
- have cnpos : 0 < ‖c ^ (n + 1)‖ := by
- rw [norm_zpow]
- exact lt_trans xεpos hn.2
- refine' ⟨-(n + 1), _, _, _, _⟩
- show c ^ (-(n + 1)) ≠ 0; exact zpow_ne_zero _ (norm_pos_iff.1 cpos)
- show ‖c ^ (-(n + 1)) • x‖ < ε
- · rw [norm_smul, zpow_neg, norm_inv, ← _root_.div_eq_inv_mul, div_lt_iff cnpos, mul_comm,
- norm_zpow]
- exact (div_lt_iff εpos).1 hn.2
- show ε / ‖c‖ ≤ ‖c ^ (-(n + 1)) • x‖
- · rw [zpow_neg, div_le_iff cpos, norm_smul, norm_inv, norm_zpow, zpow_add₀ (ne_of_gt cpos),
- zpow_one, mul_inv_rev, mul_comm, ← mul_assoc, ← mul_assoc, mul_inv_cancel (ne_of_gt cpos),
- one_mul, ← _root_.div_eq_inv_mul, le_div_iff (zpow_pos_of_pos cpos _), mul_comm]
- exact (le_div_iff εpos).1 hn.1
- show ‖c ^ (-(n + 1))‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖
- · rw [zpow_neg, norm_inv, inv_inv, norm_zpow, zpow_add₀ cpos.ne', zpow_one, mul_right_comm, ←
- _root_.div_eq_inv_mul]
- exact mul_le_mul_of_nonneg_right hn.1 (norm_nonneg _)
-#align rescale_to_shell_semi_normed_zpow rescale_to_shell_semi_normed_zpow
-
-/-- If there is a scalar `c` with `‖c‖>1`, then any element with nonzero norm can be
-moved by scalar multiplication to any shell of width `‖c‖`. Also recap information on the norm of
-the rescaling element that shows up in applications. -/
-theorem rescale_to_shell_semi_normed {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E}
- (hx : ‖x‖ ≠ 0) : ∃ d : α, d ≠ 0 ∧ ‖d • x‖ < ε ∧ ε / ‖c‖ ≤ ‖d • x‖ ∧ ‖d‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
- let ⟨_, hn⟩ := rescale_to_shell_semi_normed_zpow hc εpos hx
- ⟨_, hn⟩
-#align rescale_to_shell_semi_normed rescale_to_shell_semi_normed
-
end SeminormedAddCommGroup
/-- A linear map from a `Module` to a `NormedSpace` induces a `NormedSpace` structure on the
@@ -404,19 +366,6 @@ theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
rw [isClosed_sphere.frontier_eq, interior_sphere' x, diff_empty]
#align frontier_sphere' frontier_sphere'
-theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
- ∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
- rescale_to_shell_semi_normed_zpow hc εpos (mt norm_eq_zero.1 hx)
-#align rescale_to_shell_zpow rescale_to_shell_zpow
-
-/-- If there is a scalar `c` with `‖c‖>1`, then any element can be moved by scalar multiplication to
-any shell of width `‖c‖`. Also recap information on the norm of the rescaling element that shows
-up in applications. -/
-theorem rescale_to_shell {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
- ∃ d : α, d ≠ 0 ∧ ‖d • x‖ < ε ∧ ε / ‖c‖ ≤ ‖d • x‖ ∧ ‖d‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
- rescale_to_shell_semi_normed hc εpos (mt norm_eq_zero.1 hx)
-#align rescale_to_shell rescale_to_shell
-
end NormedAddCommGroup
section NontriviallyNormedSpace
@@ -65,6 +65,7 @@ instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b :=
-- shortcut instance
instance NormedField.to_boundedSMul : BoundedSMul α α :=
NormedSpace.boundedSMul
+#align normed_field.to_has_bounded_smul NormedField.to_boundedSMul
theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
@@ -65,7 +65,6 @@ instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b :=
-- shortcut instance
instance NormedField.to_boundedSMul : BoundedSMul α α :=
NormedSpace.boundedSMul
-#align normed_field.to_has_bounded_smul NormedField.to_boundedSMul
theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit ba5ff5ad5d120fb0ef094ad2994967e9bfaf5112
+! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
Forward-port of leanprover-community/mathlib#18990
Original title: feat(analysis/normed_space/basic): scaling a set scales its diameter, translating it leaves it unchanged
@@ -25,7 +25,7 @@ about these definitions.
variable {α : Type _} {β : Type _} {γ : Type _} {ι : Type _}
-open Filter Metric Function Set Topology BigOperators NNReal ENNReal uniformity Pointwise
+open Filter Metric Function Set Topology BigOperators NNReal ENNReal uniformity
section SeminormedAddCommGroup
Both the new file and the other fixes are done in the same PR, since according to the description of leanprover-community/mathlib#19053 "this should be very easy to forward-port".
@@ -4,13 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit f9dd3204df14a0749cd456fac1e6849dfe7d2b88
+! leanprover-community/mathlib commit ba5ff5ad5d120fb0ef094ad2994967e9bfaf5112
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Algebra.Algebra.Pi
import Mathlib.Algebra.Algebra.RestrictScalars
import Mathlib.Analysis.Normed.Field.Basic
+import Mathlib.Analysis.Normed.MulAction
import Mathlib.Data.Real.Sqrt
import Mathlib.Topology.Algebra.Module.Basic
@@ -53,47 +54,18 @@ end Prio
variable [NormedField α] [SeminormedAddCommGroup β]
--- note: while these are currently strictly weaker than the versions without `le`, they will cease
--- to be if we eventually generalize `NormedSpace` from `NormedField α` to `NormedRing α`.
-section LE
-
-theorem norm_smul_le [NormedSpace α β] (r : α) (x : β) : ‖r • x‖ ≤ ‖r‖ * ‖x‖ :=
- NormedSpace.norm_smul_le _ _
-#align norm_smul_le norm_smul_le
-
-theorem nnnorm_smul_le [NormedSpace α β] (s : α) (x : β) : ‖s • x‖₊ ≤ ‖s‖₊ * ‖x‖₊ :=
- norm_smul_le s x
-#align nnnorm_smul_le nnnorm_smul_le
-
-theorem dist_smul_le [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s • y) ≤ ‖s‖ * dist x y :=
- by simpa only [dist_eq_norm, ← smul_sub] using norm_smul_le _ _
-#align dist_smul_le dist_smul_le
-
-theorem nndist_smul_le [NormedSpace α β] (s : α) (x y : β) :
- nndist (s • x) (s • y) ≤ ‖s‖₊ * nndist x y :=
- dist_smul_le s x y
-#align nndist_smul_le nndist_smul_le
-
-end LE
-
-- see Note [lower instance priority]
-instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β where
- dist_smul_pair' x y₁ y₂ := by simpa [dist_eq_norm, smul_sub] using norm_smul_le x (y₁ - y₂)
- dist_pair_smul' x₁ x₂ y := by simpa [dist_eq_norm, sub_smul] using norm_smul_le (x₁ - x₂) y
+instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β :=
+ BoundedSMul.of_norm_smul_le NormedSpace.norm_smul_le
#align normed_space.has_bounded_smul NormedSpace.boundedSMul
instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b := norm_mul_le a b
#align normed_field.to_normed_space NormedField.toNormedSpace
-theorem norm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖ = ‖s‖ * ‖x‖ := by
- by_cases h : s = 0
- · simp [h]
- · refine' le_antisymm (norm_smul_le s x) _
- calc
- ‖s‖ * ‖x‖ = ‖s‖ * ‖s⁻¹ • s • x‖ := by rw [inv_smul_smul₀ h]
- _ ≤ ‖s‖ * (‖s⁻¹‖ * ‖s • x‖) := (mul_le_mul_of_nonneg_left (norm_smul_le _ _) (norm_nonneg _))
- _ = ‖s • x‖ := by rw [norm_inv, ← mul_assoc, mul_inv_cancel (mt norm_eq_zero.1 h), one_mul]
-#align norm_smul norm_smul
+-- shortcut instance
+instance NormedField.to_boundedSMul : BoundedSMul α α :=
+ NormedSpace.boundedSMul
+#align normed_field.to_has_bounded_smul NormedField.to_boundedSMul
theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
‖n • x‖ = ‖(n : α)‖ * ‖x‖ := by rw [← norm_smul, ← Int.smul_one_eq_coe, smul_assoc, one_smul]
@@ -109,23 +81,6 @@ theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
div_self_le_one]
#align inv_norm_smul_mem_closed_unit_ball inv_norm_smul_mem_closed_unit_ball
-theorem dist_smul₀ [NormedSpace α β] (s : α) (x y : β) : dist (s • x) (s • y) = ‖s‖ * dist x y := by
- simp only [dist_eq_norm, (norm_smul _ _).symm, smul_sub]
-#align dist_smul₀ dist_smul₀
-
-theorem nnnorm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖₊ = ‖s‖₊ * ‖x‖₊ :=
- NNReal.eq <| norm_smul s x
-#align nnnorm_smul nnnorm_smul
-
-theorem nndist_smul₀ [NormedSpace α β] (s : α) (x y : β) :
- nndist (s • x) (s • y) = ‖s‖₊ * nndist x y :=
- NNReal.eq <| dist_smul₀ s x y
-#align nndist_smul₀ nndist_smul₀
-
-theorem lipschitzWith_smul [NormedSpace α β] (s : α) : LipschitzWith ‖s‖₊ ((· • ·) s : β → β) :=
- lipschitzWith_iff_dist_le_mul.2 fun x y => by rw [dist_smul₀, coe_nnnorm]
-#align lipschitz_with_smul lipschitzWith_smul
-
theorem norm_smul_of_nonneg [NormedSpace ℝ β] {t : ℝ} (ht : 0 ≤ t) (x : β) : ‖t • x‖ = t * ‖x‖ := by
rw [norm_smul, Real.norm_eq_abs, abs_of_nonneg ht]
#align norm_smul_of_nonneg norm_smul_of_nonneg
@@ -291,7 +246,7 @@ instance Pi.normedSpace {E : ι → Type _} [Fintype ι] [∀ i, SeminormedAddCo
norm_smul_le a f := by
simp_rw [← coe_nnnorm, ← NNReal.coe_mul, NNReal.coe_le_coe, Pi.nnnorm_def,
NNReal.mul_finset_sup]
- exact Finset.sup_mono_fun fun _ _ => norm_smul_le _ _
+ exact Finset.sup_mono_fun fun _ _ => norm_smul_le a _
#align pi.normed_space Pi.normedSpace
instance MulOpposite.normedSpace : NormedSpace α Eᵐᵒᵖ :=
@@ -381,7 +381,7 @@ Specifically, the following instance cannot be found without this `NormedSpace.t
example
(𝕜 ι : Type*) (E : ι → Type*)
[NormedField 𝕜] [Π i, NormedAddCommGroup (E i)] [Π i, NormedSpace 𝕜 (E i)] :
- Π i, Module 𝕜 (E i) := by apply_instance
+ Π i, Module 𝕜 (E i) := by infer_instance
```
[This Zulip thread](https://leanprover.zulipchat.com/#narrow/stream/113488-general/topic/Typeclass.20resolution.20under.20binders/near/245151099)
@@ -536,7 +536,7 @@ Specifically, the following instance cannot be found without this `NormedSpace.t
example
(𝕜 ι : Type*) (E : ι → Type*)
[NormedField 𝕜] [Π i, NormedRing (E i)] [Π i, NormedAlgebra 𝕜 (E i)] :
- Π i, Module 𝕜 (E i) := by apply_instance
+ Π i, Module 𝕜 (E i) := by infer_instance
```
See `NormedSpace.toModule'` for a similar situation. -/
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -82,7 +82,6 @@ instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : Bounded
dist_pair_smul' x₁ x₂ y := by simpa [dist_eq_norm, sub_smul] using norm_smul_le (x₁ - x₂) y
#align normed_space.has_bounded_smul NormedSpace.boundedSMul
-set_option synthInstance.etaExperiment true in
instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b := norm_mul_le a b
#align normed_field.to_normed_space NormedField.toNormedSpace
@@ -593,7 +592,6 @@ instance NormedAlgebra.id : NormedAlgebra 𝕜 𝕜 :=
#align normed_algebra.id NormedAlgebra.id
-- Porting note: cannot synth scalar tower ℚ ℝ k
-set_option synthInstance.etaExperiment true in
/-- Any normed characteristic-zero division ring that is a normed algebra over the reals is also a
normed algebra over the rationals.
@@ -634,7 +632,6 @@ instance MulOpposite.normedAlgebra {E : Type _} [SeminormedRing E] [NormedAlgebr
end NormedAlgebra
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
/-- A non-unital algebra homomorphism from an `Algebra` to a `NormedAlgebra` induces a
`NormedAlgebra` structure on the domain, using the `SeminormedRing.induced` norm.
@@ -652,7 +649,6 @@ def NormedAlgebra.induced {F : Type _} (α β γ : Type _) [NormedField α] [Rin
#align normed_algebra.induced NormedAlgebra.induced
-- Porting note: failed to synth NonunitalAlgHomClass
-set_option synthInstance.etaExperiment true in
instance Subalgebra.toNormedAlgebra {𝕜 A : Type _} [SeminormedRing A] [NormedField 𝕜]
[NormedAlgebra 𝕜 A] (S : Subalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) _ _ _ _ S.val
Forward-port leanprover-community/mathlib#18921 and leanprover-community/mathlib#18924
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit 8000bbbe2e9d39b84edb993d88781f536a8a3fa8
+! leanprover-community/mathlib commit f9dd3204df14a0749cd456fac1e6849dfe7d2b88
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -101,9 +101,8 @@ theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β)
#align norm_zsmul norm_zsmul
@[simp]
-theorem abs_norm_eq_norm (z : β) : |‖z‖| = ‖z‖ :=
- (abs_eq (norm_nonneg z)).mpr (Or.inl rfl)
-#align abs_norm_eq_norm abs_norm_eq_norm
+theorem abs_norm (z : β) : |‖z‖| = ‖z‖ := abs_of_nonneg <| norm_nonneg _
+#align abs_norm abs_norm
theorem inv_norm_smul_mem_closed_unit_ball [NormedSpace ℝ β] (x : β) :
‖x‖⁻¹ • x ∈ closedBall (0 : β) 1 := by
@@ -241,8 +240,8 @@ noncomputable def homeomorphUnitBall [NormedSpace ℝ E] : E ≃ₜ ball (0 : E)
⟨(1 + ‖x‖ ^ 2).sqrt⁻¹ • x, by
have : 0 < 1 + ‖x‖ ^ 2 := by positivity
rw [mem_ball_zero_iff, norm_smul, Real.norm_eq_abs, abs_inv, ← _root_.div_eq_inv_mul,
- div_lt_one (abs_pos.mpr <| Real.sqrt_ne_zero'.mpr this), ← abs_norm_eq_norm x, ← sq_lt_sq,
- abs_norm_eq_norm, Real.sq_sqrt this.le]
+ div_lt_one (abs_pos.mpr <| Real.sqrt_ne_zero'.mpr this), ← abs_norm x, ← sq_lt_sq,
+ abs_norm, Real.sq_sqrt this.le]
exact lt_one_add _⟩
invFun y := (1 - ‖(y : E)‖ ^ 2).sqrt⁻¹ • (y : E)
left_inv x := by
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Johannes Hölzl
! This file was ported from Lean 3 source module analysis.normed_space.basic
-! leanprover-community/mathlib commit d3af0609f6db8691dffdc3e1fb7feb7da72698f2
+! leanprover-community/mathlib commit 8000bbbe2e9d39b84edb993d88781f536a8a3fa8
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -203,6 +203,16 @@ theorem frontier_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0)
rw [frontier, closure_closedBall, interior_closedBall x hr, closedBall_diff_ball]
#align frontier_closed_ball frontier_closedBall
+theorem interior_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
+ interior (sphere x r) = ∅ := by
+ rw [← frontier_closedBall x hr, interior_frontier isClosed_ball]
+#align interior_sphere interior_sphere
+
+theorem frontier_sphere [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
+ frontier (sphere x r) = sphere x r := by
+ rw [isClosed_sphere.frontier_eq, interior_sphere x hr, diff_empty]
+#align frontier_sphere frontier_sphere
+
instance {E : Type _} [NormedAddCommGroup E] [NormedSpace ℚ E] (e : E) :
DiscreteTopology <| AddSubgroup.zmultiples e := by
rcases eq_or_ne e 0 with (rfl | he)
@@ -430,6 +440,17 @@ theorem frontier_closedBall' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ
rw [frontier, closure_closedBall, interior_closedBall' x r, closedBall_diff_ball]
#align frontier_closed_ball' frontier_closedBall'
+@[simp]
+theorem interior_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
+ interior (sphere x r) = ∅ := by rw [← frontier_closedBall' x, interior_frontier isClosed_ball]
+#align interior_sphere' interior_sphere'
+
+@[simp]
+theorem frontier_sphere' [NormedSpace ℝ E] [Nontrivial E] (x : E) (r : ℝ) :
+ frontier (sphere x r) = sphere x r := by
+ rw [isClosed_sphere.frontier_eq, interior_sphere' x, diff_empty]
+#align frontier_sphere' frontier_sphere'
+
theorem rescale_to_shell_zpow {c : α} (hc : 1 < ‖c‖) {ε : ℝ} (εpos : 0 < ε) {x : E} (hx : x ≠ 0) :
∃ n : ℤ, c ^ n ≠ 0 ∧ ‖c ^ n • x‖ < ε ∧ ε / ‖c‖ ≤ ‖c ^ n • x‖ ∧ ‖c ^ n‖⁻¹ ≤ ε⁻¹ * ‖c‖ * ‖x‖ :=
rescale_to_shell_semi_normed_zpow hc εpos (mt norm_eq_zero.1 hx)
This is to fix timeouts in https://github.com/leanprover-community/mathlib4/pull/3552.
See discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233552.20.28LinearAlgebra.2EMatrix.2EToLin.29.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -82,10 +82,7 @@ instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : Bounded
dist_pair_smul' x₁ x₂ y := by simpa [dist_eq_norm, sub_smul] using norm_smul_le (x₁ - x₂) y
#align normed_space.has_bounded_smul NormedSpace.boundedSMul
--- Shortcut instance, as otherwise this will be found by `NormedSpace.toModule` and be
--- noncomputable.
-instance : Module ℝ ℝ := by infer_instance
-
+set_option synthInstance.etaExperiment true in
instance NormedField.toNormedSpace : NormedSpace α α where norm_smul_le a b := norm_mul_le a b
#align normed_field.to_normed_space NormedField.toNormedSpace
This additionally makes a further small generalization to some of the finsupp instances (labelled with porting notes) which should be backported.
The new statement of Rat.smul_one_eq_coe
fixes a proof in Mathlib/Analysis/NormedSpace/Basic.lean
that was mangled during porting.
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -585,10 +585,7 @@ norm. -/
instance normedAlgebraRat {𝕜} [NormedDivisionRing 𝕜] [CharZero 𝕜] [NormedAlgebra ℝ 𝕜] :
NormedAlgebra ℚ 𝕜 where
norm_smul_le q x := by
- rw [← smul_one_smul ℝ q x]
- -- Porting note: broken notation class seems to cause a problem here
- conv_lhs => change ‖(SMul.smul q (1:ℝ)) • x‖; rw [Rat.smul_one_eq_coe q]
- rw [norm_smul, Rat.norm_cast_real]
+ rw [← smul_one_smul ℝ q x, Rat.smul_one_eq_coe, norm_smul, Rat.norm_cast_real]
#align normed_algebra_rat normedAlgebraRat
instance PUnit.normedAlgebra : NormedAlgebra 𝕜 PUnit where
@@ -24,9 +24,7 @@ about these definitions.
variable {α : Type _} {β : Type _} {γ : Type _} {ι : Type _}
-open Filter Metric Function Set
-
-open Topology BigOperators NNReal ENNReal uniformity Pointwise
+open Filter Metric Function Set Topology BigOperators NNReal ENNReal uniformity Pointwise
section SeminormedAddCommGroup
@@ -57,7 +55,7 @@ variable [NormedField α] [SeminormedAddCommGroup β]
-- note: while these are currently strictly weaker than the versions without `le`, they will cease
-- to be if we eventually generalize `NormedSpace` from `NormedField α` to `NormedRing α`.
-section Le
+section LE
theorem norm_smul_le [NormedSpace α β] (r : α) (x : β) : ‖r • x‖ ≤ ‖r‖ * ‖x‖ :=
NormedSpace.norm_smul_le _ _
@@ -76,7 +74,7 @@ theorem nndist_smul_le [NormedSpace α β] (s : α) (x y : β) :
dist_smul_le s x y
#align nndist_smul_le nndist_smul_le
-end Le
+end LE
-- see Note [lower instance priority]
instance (priority := 100) NormedSpace.boundedSMul [NormedSpace α β] : BoundedSMul α β where
@@ -99,7 +97,6 @@ theorem norm_smul [NormedSpace α β] (s : α) (x : β) : ‖s • x‖ = ‖s
‖s‖ * ‖x‖ = ‖s‖ * ‖s⁻¹ • s • x‖ := by rw [inv_smul_smul₀ h]
_ ≤ ‖s‖ * (‖s⁻¹‖ * ‖s • x‖) := (mul_le_mul_of_nonneg_left (norm_smul_le _ _) (norm_nonneg _))
_ = ‖s • x‖ := by rw [norm_inv, ← mul_assoc, mul_inv_cancel (mt norm_eq_zero.1 h), one_mul]
-
#align norm_smul norm_smul
theorem norm_zsmul (α) [NormedField α] [NormedSpace α β] (n : ℤ) (x : β) :
@@ -174,15 +171,13 @@ theorem closure_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
rw [mem_ball, dist_eq_norm, add_sub_cancel, norm_smul, Real.norm_eq_abs, abs_of_nonneg hc0,
mul_comm, ← mul_one r]
rw [mem_closedBall, dist_eq_norm] at hy
- replace hr : 0 < r
- exact ((norm_nonneg _).trans hy).lt_of_ne hr.symm
+ replace hr : 0 < r := ((norm_nonneg _).trans hy).lt_of_ne hr.symm
apply mul_lt_mul' <;> assumption
#align closure_ball closure_ball
theorem frontier_ball [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
frontier (ball x r) = sphere x r := by
- rw [frontier, closure_ball x hr, isOpen_ball.interior_eq]
- ext x; exact (@eq_iff_le_not_lt ℝ _ _ _).symm
+ rw [frontier, closure_ball x hr, isOpen_ball.interior_eq, closedBall_diff_ball]
#align frontier_ball frontier_ball
theorem interior_closedBall [NormedSpace ℝ E] (x : E) {r : ℝ} (hr : r ≠ 0) :
@@ -353,13 +348,13 @@ See note [reducible non-instances] -/
def NormedSpace.induced {F : Type _} (α β γ : Type _) [NormedField α] [AddCommGroup β] [Module α β]
[SeminormedAddCommGroup γ] [NormedSpace α γ] [LinearMapClass F α β γ] (f : F) :
@NormedSpace α β _ (SeminormedAddCommGroup.induced β γ f) := by
- -- Porting note: trouble inferring SeminormedAddCommGroup β and Module α β
- -- unfolding the induced semi-norm is fiddly
- refine @NormedSpace.mk (α := α) (β := β) _ ?_ ?_ ?_
- · infer_instance
- · intro a b
- change ‖(⇑f) (a • b)‖ ≤ ‖a‖ * ‖(⇑f) b‖
- exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
+ -- Porting note: trouble inferring SeminormedAddCommGroup β and Module α β
+ -- unfolding the induced semi-norm is fiddly
+ refine @NormedSpace.mk (α := α) (β := β) _ ?_ ?_ ?_
+ · infer_instance
+ · intro a b
+ change ‖(⇑f) (a • b)‖ ≤ ‖a‖ * ‖(⇑f) b‖
+ exact (map_smul f a b).symm ▸ norm_smul_le a (f b)
#align normed_space.induced NormedSpace.induced
section NormedAddCommGroup
@@ -543,14 +538,14 @@ theorem nnnorm_algebraMap (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x
#align nnnorm_algebra_map nnnorm_algebraMap
@[simp]
-theorem norm_algebra_map' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
+theorem norm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖ = ‖x‖ := by
rw [norm_algebraMap, norm_one, mul_one]
-#align norm_algebra_map' norm_algebra_map'
+#align norm_algebra_map' norm_algebraMap'
@[simp]
-theorem nnnorm_algebra_map' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
- Subtype.ext <| norm_algebra_map' _ _
-#align nnnorm_algebra_map' nnnorm_algebra_map'
+theorem nnnorm_algebraMap' [NormOneClass 𝕜'] (x : 𝕜) : ‖algebraMap 𝕜 𝕜' x‖₊ = ‖x‖₊ :=
+ Subtype.ext <| norm_algebraMap' _ _
+#align nnnorm_algebra_map' nnnorm_algebraMap'
section NNReal
@@ -558,7 +553,7 @@ variable [NormOneClass 𝕜'] [NormedAlgebra ℝ 𝕜']
@[simp]
theorem norm_algebraMap_nNReal (x : ℝ≥0) : ‖algebraMap ℝ≥0 𝕜' x‖ = x :=
- (norm_algebra_map' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.prop
+ (norm_algebraMap' 𝕜' (x : ℝ)).symm ▸ Real.norm_of_nonneg x.prop
#align norm_algebra_map_nnreal norm_algebraMap_nNReal
@[simp]
@@ -573,7 +568,7 @@ variable (𝕜)
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
theorem algebraMap_isometry [NormOneClass 𝕜'] : Isometry (algebraMap 𝕜 𝕜') := by
refine' Isometry.of_dist_eq fun x y => _
- rw [dist_eq_norm, dist_eq_norm, ← RingHom.map_sub, norm_algebra_map']
+ rw [dist_eq_norm, dist_eq_norm, ← RingHom.map_sub, norm_algebraMap']
#align algebra_map_isometry algebraMap_isometry
instance NormedAlgebra.id : NormedAlgebra 𝕜 𝕜 :=
@@ -667,7 +662,7 @@ instance {𝕜 : Type _} {𝕜' : Type _} {E : Type _} [I : NormedAddCommGroup E
instance RestrictScalars.normedSpace : NormedSpace 𝕜 (RestrictScalars 𝕜 𝕜' E) :=
{ RestrictScalars.module 𝕜 𝕜' E with
norm_smul_le := fun c x =>
- (norm_smul_le (algebraMap 𝕜 𝕜' c) (_ : E)).trans_eq <| by rw [norm_algebra_map'] }
+ (norm_smul_le (algebraMap 𝕜 𝕜' c) (_ : E)).trans_eq <| by rw [norm_algebraMap'] }
-- If you think you need this, consider instead reproducing `RestrictScalars.lsmul`
-- appropriately modified here.
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file