analysis.normed_space.star.basic
⟷
Mathlib.Analysis.NormedSpace.Star.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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
@@ -10,6 +10,7 @@ import analysis.normed_space.linear_isometry
import algebra.star.self_adjoint
import algebra.star.unitary
import topology.algebra.star_subalgebra
+import topology.algebra.module.star
/-!
# Normed star rings and algebras
@@ -257,6 +258,10 @@ variables {𝕜}
lemma starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x := rfl
+@[simp] lemma starₗᵢ_to_continuous_linear_equiv :
+ (starₗᵢ 𝕜 : E ≃ₗᵢ⋆[𝕜] E).to_continuous_linear_equiv = (starL 𝕜 : E ≃L⋆[𝕜] E) :=
+continuous_linear_equiv.ext rfl
+
end starₗᵢ
namespace star_subalgebra
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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
@@ -328,7 +328,7 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
by
induction' n with k hk
· simp only [pow_zero, pow_one]
- · rw [pow_succ, pow_mul', sq]
+ · rw [pow_succ', pow_mul', sq]
nth_rw 1 [← self_adjoint.mem_iff.mp hx]
rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,13 +3,13 @@ Copyright (c) 2021 Frédéric Dupuis. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis
-/
-import Mathbin.Analysis.Normed.Group.Hom
-import Mathbin.Analysis.NormedSpace.Basic
-import Mathbin.Analysis.NormedSpace.LinearIsometry
-import Mathbin.Algebra.Star.SelfAdjoint
-import Mathbin.Algebra.Star.Unitary
-import Mathbin.Topology.Algebra.StarSubalgebra
-import Mathbin.Topology.Algebra.Module.Star
+import Analysis.Normed.Group.Hom
+import Analysis.NormedSpace.Basic
+import Analysis.NormedSpace.LinearIsometry
+import Algebra.Star.SelfAdjoint
+import Algebra.Star.Unitary
+import Topology.Algebra.StarSubalgebra
+import Topology.Algebra.Module.Star
#align_import analysis.normed_space.star.basic from "leanprover-community/mathlib"@"aa6669832974f87406a3d9d70fc5707a60546207"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -99,11 +99,11 @@ instance RingHomIsometric.starRingEnd [NormedCommRing E] [StarRing E] [NormedSta
/-- A C*-ring is a normed star ring that satifies the stronger condition `‖x⋆ * x‖ = ‖x‖^2`
for every `x`. -/
class CstarRing (E : Type _) [NonUnitalNormedRing E] [StarRing E] : Prop where
- norm_star_mul_self : ∀ {x : E}, ‖x⋆ * x‖ = ‖x‖ * ‖x‖
+ norm_star_hMul_self : ∀ {x : E}, ‖x⋆ * x‖ = ‖x‖ * ‖x‖
#align cstar_ring CstarRing
-/
-instance : CstarRing ℝ where norm_star_mul_self x := by simp only [star, id.def, norm_mul]
+instance : CstarRing ℝ where norm_star_hMul_self x := by simp only [star, id.def, norm_mul]
namespace CstarRing
@@ -153,7 +153,7 @@ theorem nnnorm_self_mul_star {x : E} : ‖x * star x‖₊ = ‖x‖₊ * ‖x
#print CstarRing.nnnorm_star_mul_self /-
theorem nnnorm_star_mul_self {x : E} : ‖x⋆ * x‖₊ = ‖x‖₊ * ‖x‖₊ :=
- Subtype.ext norm_star_mul_self
+ Subtype.ext norm_star_hMul_self
#align cstar_ring.nnnorm_star_mul_self CstarRing.nnnorm_star_mul_self
-/
@@ -207,7 +207,7 @@ variable [Fintype ι] [∀ i, CstarRing (R i)]
#print Prod.cstarRing /-
instance Prod.cstarRing : CstarRing (R₁ × R₂)
- where norm_star_mul_self x := by
+ where norm_star_hMul_self x := by
unfold norm
simp only [Prod.fst_mul, Prod.fst_star, Prod.snd_mul, Prod.snd_star, norm_star_mul_self, ← sq]
refine' le_antisymm _ _
@@ -221,7 +221,7 @@ instance Prod.cstarRing : CstarRing (R₁ × R₂)
#print Pi.cstarRing /-
instance Pi.cstarRing : CstarRing (∀ i, R i)
- where norm_star_mul_self x :=
+ where norm_star_hMul_self x :=
by
simp only [norm, Pi.mul_apply, Pi.star_apply, nnnorm_star_mul_self, ← sq]
norm_cast
@@ -258,7 +258,7 @@ instance (priority := 100) [Nontrivial E] : NormOneClass E :=
#print CstarRing.norm_coe_unitary /-
theorem norm_coe_unitary [Nontrivial E] (U : unitary E) : ‖(U : E)‖ = 1 := by
- rw [← sq_eq_sq (norm_nonneg _) zero_le_one, one_pow 2, sq, ← CstarRing.norm_star_mul_self,
+ rw [← sq_eq_sq (norm_nonneg _) zero_le_one, one_pow 2, sq, ← CstarRing.norm_star_hMul_self,
unitary.coe_star_mul_self, CstarRing.norm_one]
#align cstar_ring.norm_coe_unitary CstarRing.norm_coe_unitary
-/
@@ -397,7 +397,7 @@ instance toNormedAlgebra {𝕜 A : Type _} [NormedField 𝕜] [StarRing 𝕜] [S
#print StarSubalgebra.to_cstarRing /-
instance to_cstarRing {R A} [CommRing R] [StarRing R] [NormedRing A] [StarRing A] [CstarRing A]
[Algebra R A] [StarModule R A] (S : StarSubalgebra R A) : CstarRing S
- where norm_star_mul_self x := @CstarRing.norm_star_mul_self A _ _ _ x
+ where norm_star_hMul_self x := @CstarRing.norm_star_hMul_self A _ _ _ x
#align star_subalgebra.to_cstar_ring StarSubalgebra.to_cstarRing
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2021 Frédéric Dupuis. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis
-
-! This file was ported from Lean 3 source module analysis.normed_space.star.basic
-! leanprover-community/mathlib commit aa6669832974f87406a3d9d70fc5707a60546207
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Normed.Group.Hom
import Mathbin.Analysis.NormedSpace.Basic
@@ -16,6 +11,8 @@ import Mathbin.Algebra.Star.Unitary
import Mathbin.Topology.Algebra.StarSubalgebra
import Mathbin.Topology.Algebra.Module.Star
+#align_import analysis.normed_space.star.basic from "leanprover-community/mathlib"@"aa6669832974f87406a3d9d70fc5707a60546207"
+
/-!
# Normed star rings and algebras
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -42,7 +42,6 @@ To get a C⋆-algebra `E` over field `𝕜`, use
open scoped Topology
--- mathport name: «expr ⋆»
local postfix:max "⋆" => star
#print NormedStarGroup /-
@@ -138,38 +137,54 @@ instance (priority := 100) to_normedStarGroup : NormedStarGroup E :=
#align cstar_ring.to_normed_star_group CstarRing.to_normedStarGroup
-/
+#print CstarRing.norm_self_mul_star /-
theorem norm_self_mul_star {x : E} : ‖x * x⋆‖ = ‖x‖ * ‖x‖ := by nth_rw 1 [← star_star x];
simp only [norm_star_mul_self, norm_star]
#align cstar_ring.norm_self_mul_star CstarRing.norm_self_mul_star
+-/
+#print CstarRing.norm_star_mul_self' /-
theorem norm_star_mul_self' {x : E} : ‖x⋆ * x‖ = ‖x⋆‖ * ‖x‖ := by rw [norm_star_mul_self, norm_star]
#align cstar_ring.norm_star_mul_self' CstarRing.norm_star_mul_self'
+-/
+#print CstarRing.nnnorm_self_mul_star /-
theorem nnnorm_self_mul_star {x : E} : ‖x * star x‖₊ = ‖x‖₊ * ‖x‖₊ :=
Subtype.ext norm_self_mul_star
#align cstar_ring.nnnorm_self_mul_star CstarRing.nnnorm_self_mul_star
+-/
+#print CstarRing.nnnorm_star_mul_self /-
theorem nnnorm_star_mul_self {x : E} : ‖x⋆ * x‖₊ = ‖x‖₊ * ‖x‖₊ :=
Subtype.ext norm_star_mul_self
#align cstar_ring.nnnorm_star_mul_self CstarRing.nnnorm_star_mul_self
+-/
+#print CstarRing.star_mul_self_eq_zero_iff /-
@[simp]
theorem star_mul_self_eq_zero_iff (x : E) : star x * x = 0 ↔ x = 0 := by
rw [← norm_eq_zero, norm_star_mul_self]; exact mul_self_eq_zero.trans norm_eq_zero
#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iff
+-/
+#print CstarRing.star_mul_self_ne_zero_iff /-
theorem star_mul_self_ne_zero_iff (x : E) : star x * x ≠ 0 ↔ x ≠ 0 := by
simp only [Ne.def, star_mul_self_eq_zero_iff]
#align cstar_ring.star_mul_self_ne_zero_iff CstarRing.star_mul_self_ne_zero_iff
+-/
+#print CstarRing.mul_star_self_eq_zero_iff /-
@[simp]
theorem mul_star_self_eq_zero_iff (x : E) : x * star x = 0 ↔ x = 0 := by
simpa only [star_eq_zero, star_star] using @star_mul_self_eq_zero_iff _ _ _ _ (star x)
#align cstar_ring.mul_star_self_eq_zero_iff CstarRing.mul_star_self_eq_zero_iff
+-/
+#print CstarRing.mul_star_self_ne_zero_iff /-
theorem mul_star_self_ne_zero_iff (x : E) : x * star x ≠ 0 ↔ x ≠ 0 := by
simp only [Ne.def, mul_star_self_eq_zero_iff]
#align cstar_ring.mul_star_self_ne_zero_iff CstarRing.mul_star_self_ne_zero_iff
+-/
end NonUnital
@@ -193,6 +208,7 @@ instance Pi.starRing' : StarRing (∀ i, R i) :=
variable [Fintype ι] [∀ i, CstarRing (R i)]
+#print Prod.cstarRing /-
instance Prod.cstarRing : CstarRing (R₁ × R₂)
where norm_star_mul_self x := by
unfold norm
@@ -204,6 +220,7 @@ instance Prod.cstarRing : CstarRing (R₁ × R₂)
· rw [le_sup_iff]
rcases le_total ‖x.fst‖ ‖x.snd‖ with (h | h) <;> simp [h]
#align prod.cstar_ring Prod.cstarRing
+-/
#print Pi.cstarRing /-
instance Pi.cstarRing : CstarRing (∀ i, R i)
@@ -229,27 +246,34 @@ section Unital
variable [NormedRing E] [StarRing E] [CstarRing E]
+#print CstarRing.norm_one /-
@[simp]
theorem norm_one [Nontrivial E] : ‖(1 : E)‖ = 1 :=
by
have : 0 < ‖(1 : E)‖ := norm_pos_iff.mpr one_ne_zero
rw [← mul_left_inj' this.ne', ← norm_star_mul_self, mul_one, star_one, one_mul]
#align cstar_ring.norm_one CstarRing.norm_one
+-/
-- see Note [lower instance priority]
instance (priority := 100) [Nontrivial E] : NormOneClass E :=
⟨norm_one⟩
+#print CstarRing.norm_coe_unitary /-
theorem norm_coe_unitary [Nontrivial E] (U : unitary E) : ‖(U : E)‖ = 1 := by
rw [← sq_eq_sq (norm_nonneg _) zero_le_one, one_pow 2, sq, ← CstarRing.norm_star_mul_self,
unitary.coe_star_mul_self, CstarRing.norm_one]
#align cstar_ring.norm_coe_unitary CstarRing.norm_coe_unitary
+-/
+#print CstarRing.norm_of_mem_unitary /-
@[simp]
theorem norm_of_mem_unitary [Nontrivial E] {U : E} (hU : U ∈ unitary E) : ‖U‖ = 1 :=
norm_coe_unitary ⟨U, hU⟩
#align cstar_ring.norm_of_mem_unitary CstarRing.norm_of_mem_unitary
+-/
+#print CstarRing.norm_coe_unitary_mul /-
@[simp]
theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A‖ :=
by
@@ -265,16 +289,22 @@ theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A
_ ≤ ‖(U : E)⋆‖ * ‖(U : E) * A‖ := by rw [mul_assoc]; exact norm_mul_le _ _
_ = ‖(U : E) * A‖ := by rw [norm_star, norm_coe_unitary, one_mul]
#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mul
+-/
+#print CstarRing.norm_unitary_smul /-
@[simp]
theorem norm_unitary_smul (U : unitary E) (A : E) : ‖U • A‖ = ‖A‖ :=
norm_coe_unitary_mul U A
#align cstar_ring.norm_unitary_smul CstarRing.norm_unitary_smul
+-/
+#print CstarRing.norm_mem_unitary_mul /-
theorem norm_mem_unitary_mul {U : E} (A : E) (hU : U ∈ unitary E) : ‖U * A‖ = ‖A‖ :=
norm_coe_unitary_mul ⟨U, hU⟩ A
#align cstar_ring.norm_mem_unitary_mul CstarRing.norm_mem_unitary_mul
+-/
+#print CstarRing.norm_mul_coe_unitary /-
@[simp]
theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
calc
@@ -283,15 +313,19 @@ theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
_ = ‖A⋆‖ := (norm_mem_unitary_mul (star A) (unitary.star_mem U.Prop))
_ = ‖A‖ := norm_star _
#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitary
+-/
+#print CstarRing.norm_mul_mem_unitary /-
theorem norm_mul_mem_unitary (A : E) {U : E} (hU : U ∈ unitary E) : ‖A * U‖ = ‖A‖ :=
norm_mul_coe_unitary A ⟨U, hU⟩
#align cstar_ring.norm_mul_mem_unitary CstarRing.norm_mul_mem_unitary
+-/
end Unital
end CstarRing
+#print IsSelfAdjoint.nnnorm_pow_two_pow /-
theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] {x : E}
(hx : IsSelfAdjoint x) (n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
by
@@ -301,11 +335,14 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
nth_rw 1 [← self_adjoint.mem_iff.mp hx]
rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
+-/
+#print selfAdjoint.nnnorm_pow_two_pow /-
theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] (x : selfAdjoint E)
(n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
x.Prop.nnnorm_pow_two_pow _
#align self_adjoint.nnnorm_pow_two_pow selfAdjoint.nnnorm_pow_two_pow
+-/
section starₗᵢ
@@ -328,14 +365,18 @@ def starₗᵢ : E ≃ₗᵢ⋆[𝕜] E :=
variable {𝕜}
+#print coe_starₗᵢ /-
@[simp]
theorem coe_starₗᵢ : (starₗᵢ 𝕜 : E → E) = star :=
rfl
#align coe_starₗᵢ coe_starₗᵢ
+-/
+#print starₗᵢ_apply /-
theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
rfl
#align starₗᵢ_apply starₗᵢ_apply
+-/
#print starₗᵢ_toContinuousLinearEquiv /-
@[simp]
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -130,12 +130,10 @@ instance (priority := 100) to_normedStarGroup : NormedStarGroup E :=
calc
‖x‖ * ‖x‖ = ‖x⋆ * x‖ := norm_star_mul_self.symm
_ ≤ ‖x⋆‖ * ‖x‖ := norm_mul_le _ _
-
have h₂ :=
calc
‖x⋆‖ * ‖x⋆‖ = ‖x * x⋆‖ := by rw [← norm_star_mul_self, star_star]
_ ≤ ‖x‖ * ‖x⋆‖ := norm_mul_le _ _
-
exact le_antisymm (le_of_mul_le_mul_right h₂ hnt_star) (le_of_mul_le_mul_right h₁ hnt)⟩
#align cstar_ring.to_normed_star_group CstarRing.to_normedStarGroup
-/
@@ -261,13 +259,11 @@ theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A
calc
_ ≤ ‖(U : E)‖ * ‖A‖ := norm_mul_le _ _
_ = ‖A‖ := by rw [norm_coe_unitary, one_mul]
-
·
calc
_ = ‖(U : E)⋆ * U * A‖ := by rw [unitary.coe_star_mul_self U, one_mul]
_ ≤ ‖(U : E)⋆‖ * ‖(U : E) * A‖ := by rw [mul_assoc]; exact norm_mul_le _ _
_ = ‖(U : E) * A‖ := by rw [norm_star, norm_coe_unitary, one_mul]
-
#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mul
@[simp]
@@ -286,7 +282,6 @@ theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
_ = ‖(U : E)⋆ * A⋆‖ := by rw [norm_star]
_ = ‖A⋆‖ := (norm_mem_unitary_mul (star A) (unitary.star_mem U.Prop))
_ = ‖A‖ := norm_star _
-
#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitary
theorem norm_mul_mem_unitary (A : E) {U : E} (hU : U ∈ unitary E) : ‖A * U‖ = ‖A‖ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -40,7 +40,7 @@ To get a C⋆-algebra `E` over field `𝕜`, use
-/
-open Topology
+open scoped Topology
-- mathport name: «expr ⋆»
local postfix:max "⋆" => star
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -140,83 +140,35 @@ instance (priority := 100) to_normedStarGroup : NormedStarGroup E :=
#align cstar_ring.to_normed_star_group CstarRing.to_normedStarGroup
-/
-/- warning: cstar_ring.norm_self_mul_star -> CstarRing.norm_self_mul_star is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) x) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) x))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_self_mul_star CstarRing.norm_self_mul_starₓ'. -/
theorem norm_self_mul_star {x : E} : ‖x * x⋆‖ = ‖x‖ * ‖x‖ := by nth_rw 1 [← star_star x];
simp only [norm_star_mul_self, norm_star]
#align cstar_ring.norm_self_mul_star CstarRing.norm_self_mul_star
-/- warning: cstar_ring.norm_star_mul_self' -> CstarRing.norm_star_mul_self' is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) x))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_star_mul_self' CstarRing.norm_star_mul_self'ₓ'. -/
theorem norm_star_mul_self' {x : E} : ‖x⋆ * x‖ = ‖x⋆‖ * ‖x‖ := by rw [norm_star_mul_self, norm_star]
#align cstar_ring.norm_star_mul_self' CstarRing.norm_star_mul_self'
-/- warning: cstar_ring.nnnorm_self_mul_star -> CstarRing.nnnorm_self_mul_star is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) 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} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.nnnorm_self_mul_star CstarRing.nnnorm_self_mul_starₓ'. -/
theorem nnnorm_self_mul_star {x : E} : ‖x * star x‖₊ = ‖x‖₊ * ‖x‖₊ :=
Subtype.ext norm_self_mul_star
#align cstar_ring.nnnorm_self_mul_star CstarRing.nnnorm_self_mul_star
-/- warning: cstar_ring.nnnorm_star_mul_self -> CstarRing.nnnorm_star_mul_self is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) 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} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.nnnorm_star_mul_self CstarRing.nnnorm_star_mul_selfₓ'. -/
theorem nnnorm_star_mul_self {x : E} : ‖x⋆ * x‖₊ = ‖x‖₊ * ‖x‖₊ :=
Subtype.ext norm_star_mul_self
#align cstar_ring.nnnorm_star_mul_self CstarRing.nnnorm_star_mul_self
-/- warning: cstar_ring.star_mul_self_eq_zero_iff -> CstarRing.star_mul_self_eq_zero_iff is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iffₓ'. -/
@[simp]
theorem star_mul_self_eq_zero_iff (x : E) : star x * x = 0 ↔ x = 0 := by
rw [← norm_eq_zero, norm_star_mul_self]; exact mul_self_eq_zero.trans norm_eq_zero
#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iff
-/- warning: cstar_ring.star_mul_self_ne_zero_iff -> CstarRing.star_mul_self_ne_zero_iff is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.star_mul_self_ne_zero_iff CstarRing.star_mul_self_ne_zero_iffₓ'. -/
theorem star_mul_self_ne_zero_iff (x : E) : star x * x ≠ 0 ↔ x ≠ 0 := by
simp only [Ne.def, star_mul_self_eq_zero_iff]
#align cstar_ring.star_mul_self_ne_zero_iff CstarRing.star_mul_self_ne_zero_iff
-/- warning: cstar_ring.mul_star_self_eq_zero_iff -> CstarRing.mul_star_self_eq_zero_iff is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.mul_star_self_eq_zero_iff CstarRing.mul_star_self_eq_zero_iffₓ'. -/
@[simp]
theorem mul_star_self_eq_zero_iff (x : E) : x * star x = 0 ↔ x = 0 := by
simpa only [star_eq_zero, star_star] using @star_mul_self_eq_zero_iff _ _ _ _ (star x)
#align cstar_ring.mul_star_self_eq_zero_iff CstarRing.mul_star_self_eq_zero_iff
-/- warning: cstar_ring.mul_star_self_ne_zero_iff -> CstarRing.mul_star_self_ne_zero_iff is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.mul_star_self_ne_zero_iff CstarRing.mul_star_self_ne_zero_iffₓ'. -/
theorem mul_star_self_ne_zero_iff (x : E) : x * star x ≠ 0 ↔ x ≠ 0 := by
simp only [Ne.def, mul_star_self_eq_zero_iff]
#align cstar_ring.mul_star_self_ne_zero_iff CstarRing.mul_star_self_ne_zero_iff
@@ -243,12 +195,6 @@ instance Pi.starRing' : StarRing (∀ i, R i) :=
variable [Fintype ι] [∀ i, CstarRing (R i)]
-/- warning: prod.cstar_ring -> Prod.cstarRing is a dubious translation:
-lean 3 declaration is
- forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : NonUnitalNormedRing.{u1} R₁] [_inst_2 : StarRing.{u1} R₁ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1))] [_inst_3 : CstarRing.{u1} R₁ _inst_1 _inst_2] [_inst_4 : NonUnitalNormedRing.{u2} R₂] [_inst_5 : StarRing.{u2} R₂ (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4))] [_inst_6 : CstarRing.{u2} R₂ _inst_4 _inst_5], CstarRing.{max u1 u2} (Prod.{u1, u2} R₁ R₂) (Prod.nonUnitalNormedRing.{u1, u2} R₁ R₂ _inst_1 _inst_4) (Prod.starRing.{u1, u2} R₁ R₂ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1)) (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4)) _inst_2 _inst_5)
-but is expected to have type
- forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : NonUnitalNormedRing.{u1} R₁] [_inst_2 : StarRing.{u1} R₁ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1))] [_inst_3 : CstarRing.{u1} R₁ _inst_1 _inst_2] [_inst_4 : NonUnitalNormedRing.{u2} R₂] [_inst_5 : StarRing.{u2} R₂ (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4))] [_inst_6 : CstarRing.{u2} R₂ _inst_4 _inst_5], CstarRing.{max u2 u1} (Prod.{u1, u2} R₁ R₂) (Prod.nonUnitalNormedRing.{u1, u2} R₁ R₂ _inst_1 _inst_4) (Prod.instStarRingProdInstNonUnitalSemiringProd.{u1, u2} R₁ R₂ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1)) (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4)) _inst_2 _inst_5)
-Case conversion may be inaccurate. Consider using '#align prod.cstar_ring Prod.cstarRingₓ'. -/
instance Prod.cstarRing : CstarRing (R₁ × R₂)
where norm_star_mul_self x := by
unfold norm
@@ -285,12 +231,6 @@ section Unital
variable [NormedRing E] [StarRing E] [CstarRing E]
-/- warning: cstar_ring.norm_one -> CstarRing.norm_one is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E], Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (OfNat.ofNat.{u1} E 1 (OfNat.mk.{u1} E 1 (One.one.{u1} E (AddMonoidWithOne.toOne.{u1} E (AddGroupWithOne.toAddMonoidWithOne.{u1} E (AddCommGroupWithOne.toAddGroupWithOne.{u1} E (Ring.toAddCommGroupWithOne.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E], Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (OfNat.ofNat.{u1} E 1 (One.toOfNat1.{u1} E (Semiring.toOne.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_one CstarRing.norm_oneₓ'. -/
@[simp]
theorem norm_one [Nontrivial E] : ‖(1 : E)‖ = 1 :=
by
@@ -302,34 +242,16 @@ theorem norm_one [Nontrivial E] : ‖(1 : E)‖ = 1 :=
instance (priority := 100) [Nontrivial E] : NormOneClass E :=
⟨norm_one⟩
-/- warning: cstar_ring.norm_coe_unitary -> CstarRing.norm_coe_unitary is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_coe_unitary CstarRing.norm_coe_unitaryₓ'. -/
theorem norm_coe_unitary [Nontrivial E] (U : unitary E) : ‖(U : E)‖ = 1 := by
rw [← sq_eq_sq (norm_nonneg _) zero_le_one, one_pow 2, sq, ← CstarRing.norm_star_mul_self,
unitary.coe_star_mul_self, CstarRing.norm_one]
#align cstar_ring.norm_coe_unitary CstarRing.norm_coe_unitary
-/- warning: cstar_ring.norm_of_mem_unitary -> CstarRing.norm_of_mem_unitary is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] {U : E}, (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) U) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) U) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_of_mem_unitary CstarRing.norm_of_mem_unitaryₓ'. -/
@[simp]
theorem norm_of_mem_unitary [Nontrivial E] {U : E} (hU : U ∈ unitary E) : ‖U‖ = 1 :=
norm_coe_unitary ⟨U, hU⟩
#align cstar_ring.norm_of_mem_unitary CstarRing.norm_of_mem_unitary
-/- warning: cstar_ring.norm_coe_unitary_mul -> CstarRing.norm_coe_unitary_mul is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U) A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U) A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mulₓ'. -/
@[simp]
theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A‖ :=
by
@@ -348,33 +270,15 @@ theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A
#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mul
-/- warning: cstar_ring.norm_unitary_smul -> CstarRing.norm_unitary_smul is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (SMul.smul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (Submonoid.hasSmul.{u1, u1} E E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))) (Mul.toSMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) U A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HSMul.hSMul.{u1, u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) E E (instHSMul.{u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) E (Submonoid.smul.{u1, u1} E E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SMulWithZero.toSMulZeroClass.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_unitary_smul CstarRing.norm_unitary_smulₓ'. -/
@[simp]
theorem norm_unitary_smul (U : unitary E) (A : E) : ‖U • A‖ = ‖A‖ :=
norm_coe_unitary_mul U A
#align cstar_ring.norm_unitary_smul CstarRing.norm_unitary_smul
-/- warning: cstar_ring.norm_mem_unitary_mul -> CstarRing.norm_mem_unitary_mul is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {U : E} (A : E), (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) U A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {U : E} (A : E), (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mem_unitary_mul CstarRing.norm_mem_unitary_mulₓ'. -/
theorem norm_mem_unitary_mul {U : E} (A : E) (hU : U ∈ unitary E) : ‖U * A‖ = ‖A‖ :=
norm_coe_unitary_mul ⟨U, hU⟩ A
#align cstar_ring.norm_mem_unitary_mul CstarRing.norm_mem_unitary_mul
-/- warning: cstar_ring.norm_mul_coe_unitary -> CstarRing.norm_mul_coe_unitary is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) A ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U))) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U))) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitaryₓ'. -/
@[simp]
theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
calc
@@ -385,12 +289,6 @@ theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitary
-/- warning: cstar_ring.norm_mul_mem_unitary -> CstarRing.norm_mul_mem_unitary is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) {U : E}, (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) A U)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A U)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
-Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mul_mem_unitary CstarRing.norm_mul_mem_unitaryₓ'. -/
theorem norm_mul_mem_unitary (A : E) {U : E} (hU : U ∈ unitary E) : ‖A * U‖ = ‖A‖ :=
norm_mul_coe_unitary A ⟨U, hU⟩
#align cstar_ring.norm_mul_mem_unitary CstarRing.norm_mul_mem_unitary
@@ -399,12 +297,6 @@ end Unital
end CstarRing
-/- warning: is_self_adjoint.nnnorm_pow_two_pow -> IsSelfAdjoint.nnnorm_pow_two_pow is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {x : E}, (IsSelfAdjoint.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) x) -> (forall (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (HPow.hPow.{u1, 0, u1} E Nat E (instHPow.{u1, 0} E Nat (Monoid.Pow.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal NNReal.semiring)))) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n)))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {x : E}, (IsSelfAdjoint.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (AddMonoidWithOne.toAddMonoid.{u1} E (AddGroupWithOne.toAddMonoidWithOne.{u1} E (Ring.toAddGroupWithOne.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) x) -> (forall (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (HPow.hPow.{u1, 0, u1} E Nat E (instHPow.{u1, 0} E Nat (Monoid.Pow.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)))
-Case conversion may be inaccurate. Consider using '#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_powₓ'. -/
theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] {x : E}
(hx : IsSelfAdjoint x) (n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
by
@@ -415,9 +307,6 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
-/- warning: self_adjoint.nnnorm_pow_two_pow -> selfAdjoint.nnnorm_pow_two_pow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align self_adjoint.nnnorm_pow_two_pow selfAdjoint.nnnorm_pow_two_powₓ'. -/
theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] (x : selfAdjoint E)
(n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
x.Prop.nnnorm_pow_two_pow _
@@ -444,17 +333,11 @@ def starₗᵢ : E ≃ₗᵢ⋆[𝕜] E :=
variable {𝕜}
-/- warning: coe_starₗᵢ -> coe_starₗᵢ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align coe_starₗᵢ coe_starₗᵢₓ'. -/
@[simp]
theorem coe_starₗᵢ : (starₗᵢ 𝕜 : E → E) = star :=
rfl
#align coe_starₗᵢ coe_starₗᵢ
-/- warning: starₗᵢ_apply -> starₗᵢ_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align starₗᵢ_apply starₗᵢ_applyₓ'. -/
theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
rfl
#align starₗᵢ_apply starₗᵢ_apply
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -146,9 +146,7 @@ lean 3 declaration is
but is expected to have type
forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x))
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_self_mul_star CstarRing.norm_self_mul_starₓ'. -/
-theorem norm_self_mul_star {x : E} : ‖x * x⋆‖ = ‖x‖ * ‖x‖ :=
- by
- nth_rw 1 [← star_star x]
+theorem norm_self_mul_star {x : E} : ‖x * x⋆‖ = ‖x‖ * ‖x‖ := by nth_rw 1 [← star_star x];
simp only [norm_star_mul_self, norm_star]
#align cstar_ring.norm_self_mul_star CstarRing.norm_self_mul_star
@@ -188,10 +186,8 @@ but is expected to have type
forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
Case conversion may be inaccurate. Consider using '#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iffₓ'. -/
@[simp]
-theorem star_mul_self_eq_zero_iff (x : E) : star x * x = 0 ↔ x = 0 :=
- by
- rw [← norm_eq_zero, norm_star_mul_self]
- exact mul_self_eq_zero.trans norm_eq_zero
+theorem star_mul_self_eq_zero_iff (x : E) : star x * x = 0 ↔ x = 0 := by
+ rw [← norm_eq_zero, norm_star_mul_self]; exact mul_self_eq_zero.trans norm_eq_zero
#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iff
/- warning: cstar_ring.star_mul_self_ne_zero_iff -> CstarRing.star_mul_self_ne_zero_iff is a dubious translation:
@@ -347,9 +343,7 @@ theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A
·
calc
_ = ‖(U : E)⋆ * U * A‖ := by rw [unitary.coe_star_mul_self U, one_mul]
- _ ≤ ‖(U : E)⋆‖ * ‖(U : E) * A‖ := by
- rw [mul_assoc]
- exact norm_mul_le _ _
+ _ ≤ ‖(U : E)⋆‖ * ‖(U : E) * A‖ := by rw [mul_assoc]; exact norm_mul_le _ _
_ = ‖(U : E) * A‖ := by rw [norm_star, norm_coe_unitary, one_mul]
#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mul
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -422,10 +422,7 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
/- warning: self_adjoint.nnnorm_pow_two_pow -> selfAdjoint.nnnorm_pow_two_pow is a dubious translation:
-lean 3 declaration is
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (x : coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (SeminormedAddGroup.toNNNorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (HPow.hPow.{u1, 0, u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) Nat (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (instHPow.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) Nat (selfAdjoint.Nat.hasPow.{u1} E (NormedRing.toRing.{u1} E _inst_1) _inst_2)) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal NNReal.semiring)))) (NNNorm.nnnorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (SeminormedAddGroup.toNNNorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))
-but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (x : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) Nat (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (instHPow.{u1, 0} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) Nat (selfAdjoint.instPowSubtypeMemAddSubgroupToAddGroupToAddGroupWithOneInstMembershipInstSetLikeAddSubgroupSelfAdjointToStarAddMonoidToNonUnitalSemiringToSemiringNat.{u1} E (NormedRing.toRing.{u1} E _inst_1) _inst_2)) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))
+<too large>
Case conversion may be inaccurate. Consider using '#align self_adjoint.nnnorm_pow_two_pow selfAdjoint.nnnorm_pow_two_powₓ'. -/
theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] (x : selfAdjoint E)
(n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
@@ -454,10 +451,7 @@ def starₗᵢ : E ≃ₗᵢ⋆[𝕜] E :=
variable {𝕜}
/- warning: coe_starₗᵢ -> coe_starₗᵢ is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toHasStar.{u1} 𝕜 (StarAddMonoid.toHasInvolutiveStar.{u1} 𝕜 (AddCommMonoid.toAddMonoid.{u1} 𝕜 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} 𝕜 (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toSemiring.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))], Eq.{succ u2} ((fun (_x : LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) => E -> E) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)) (coeFn.{succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (fun (_x : LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) => E -> E) (LinearIsometryEquiv.hasCoeToFun.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)) (Star.star.{u2} E (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)))
-but is expected to have type
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toStar.{u1} 𝕜 (StarAddMonoid.toInvolutiveStar.{u1} 𝕜 (AddMonoidWithOne.toAddMonoid.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toCommMonoidWithZero.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))], Eq.{succ u2} (forall (a : E), (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E (fun (_x : E) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) _x) (ContinuousMapClass.toFunLike.{u2, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (ContinuousSemilinearMapClass.toContinuousMapClass.{u2, u1, u1, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6 _inst_6 (SemilinearIsometryClass.instContinuousSemilinearMapClassToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroupToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroup.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (SemilinearIsometryEquivClass.instSemilinearIsometryClass.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (LinearIsometryEquiv.instSemilinearIsometryEquivClassLinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6))))) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)) (Star.star.{u2} E (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)))
+<too large>
Case conversion may be inaccurate. Consider using '#align coe_starₗᵢ coe_starₗᵢₓ'. -/
@[simp]
theorem coe_starₗᵢ : (starₗᵢ 𝕜 : E → E) = star :=
@@ -465,10 +459,7 @@ theorem coe_starₗᵢ : (starₗᵢ 𝕜 : E → E) = star :=
#align coe_starₗᵢ coe_starₗᵢ
/- warning: starₗᵢ_apply -> starₗᵢ_apply is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toHasStar.{u1} 𝕜 (StarAddMonoid.toHasInvolutiveStar.{u1} 𝕜 (AddCommMonoid.toAddMonoid.{u1} 𝕜 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} 𝕜 (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toSemiring.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))] {x : E}, Eq.{succ u2} E (coeFn.{succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (fun (_x : LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) => E -> E) (LinearIsometryEquiv.hasCoeToFun.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) x) (Star.star.{u2} E (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) x)
-but is expected to have type
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toStar.{u1} 𝕜 (StarAddMonoid.toInvolutiveStar.{u1} 𝕜 (AddMonoidWithOne.toAddMonoid.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toCommMonoidWithZero.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))] {x : E}, Eq.{succ u2} ((fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E (fun (_x : E) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) _x) (ContinuousMapClass.toFunLike.{u2, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (ContinuousSemilinearMapClass.toContinuousMapClass.{u2, u1, u1, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6 _inst_6 (SemilinearIsometryClass.instContinuousSemilinearMapClassToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroupToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroup.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (SemilinearIsometryEquivClass.instSemilinearIsometryClass.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (LinearIsometryEquiv.instSemilinearIsometryEquivClassLinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6))))) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) x) (Star.star.{u2} E (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align starₗᵢ_apply starₗᵢ_applyₓ'. -/
theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
rfl
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -474,11 +474,13 @@ theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
rfl
#align starₗᵢ_apply starₗᵢ_apply
+#print starₗᵢ_toContinuousLinearEquiv /-
@[simp]
theorem starₗᵢ_toContinuousLinearEquiv :
(starₗᵢ 𝕜 : E ≃ₗᵢ⋆[𝕜] E).toContinuousLinearEquiv = (starL 𝕜 : E ≃L⋆[𝕜] E) :=
ContinuousLinearEquiv.ext rfl
#align starₗᵢ_to_continuous_linear_equiv starₗᵢ_toContinuousLinearEquiv
+-/
end starₗᵢ
mathlib commit https://github.com/leanprover-community/mathlib/commit/f51de8769c34652d82d1c8e5f8f18f8374782bed
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis
! This file was ported from Lean 3 source module analysis.normed_space.star.basic
-! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
+! leanprover-community/mathlib commit aa6669832974f87406a3d9d70fc5707a60546207
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,7 @@ import Mathbin.Analysis.NormedSpace.LinearIsometry
import Mathbin.Algebra.Star.SelfAdjoint
import Mathbin.Algebra.Star.Unitary
import Mathbin.Topology.Algebra.StarSubalgebra
+import Mathbin.Topology.Algebra.Module.Star
/-!
# Normed star rings and algebras
@@ -473,6 +474,12 @@ theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
rfl
#align starₗᵢ_apply starₗᵢ_apply
+@[simp]
+theorem starₗᵢ_toContinuousLinearEquiv :
+ (starₗᵢ 𝕜 : E ≃ₗᵢ⋆[𝕜] E).toContinuousLinearEquiv = (starL 𝕜 : E ≃L⋆[𝕜] E) :=
+ ContinuousLinearEquiv.ext rfl
+#align starₗᵢ_to_continuous_linear_equiv starₗᵢ_toContinuousLinearEquiv
+
end starₗᵢ
namespace StarSubalgebra
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -292,7 +292,7 @@ variable [NormedRing E] [StarRing E] [CstarRing E]
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E], Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (OfNat.ofNat.{u1} E 1 (OfNat.mk.{u1} E 1 (One.one.{u1} E (AddMonoidWithOne.toOne.{u1} E (AddGroupWithOne.toAddMonoidWithOne.{u1} E (AddCommGroupWithOne.toAddGroupWithOne.{u1} E (Ring.toAddCommGroupWithOne.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E], Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (OfNat.ofNat.{u1} E 1 (One.toOfNat1.{u1} E (NonAssocRing.toOne.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E], Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (OfNat.ofNat.{u1} E 1 (One.toOfNat1.{u1} E (Semiring.toOne.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_one CstarRing.norm_oneₓ'. -/
@[simp]
theorem norm_one [Nontrivial E] : ‖(1 : E)‖ = 1 :=
@@ -309,7 +309,7 @@ instance (priority := 100) [Nontrivial E] : NormOneClass E :=
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_coe_unitary CstarRing.norm_coe_unitaryₓ'. -/
theorem norm_coe_unitary [Nontrivial E] (U : unitary E) : ‖(U : E)‖ = 1 := by
rw [← sq_eq_sq (norm_nonneg _) zero_le_one, one_pow 2, sq, ← CstarRing.norm_star_mul_self,
@@ -320,7 +320,7 @@ theorem norm_coe_unitary [Nontrivial E] (U : unitary E) : ‖(U : E)‖ = 1 := b
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] {U : E}, (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) U) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) U) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) U) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_of_mem_unitary CstarRing.norm_of_mem_unitaryₓ'. -/
@[simp]
theorem norm_of_mem_unitary [Nontrivial E] {U : E} (hU : U ∈ unitary E) : ‖U‖ = 1 :=
@@ -331,7 +331,7 @@ theorem norm_of_mem_unitary [Nontrivial E] {U : E} (hU : U ∈ unitary E) : ‖U
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U) A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U) A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U) A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mulₓ'. -/
@[simp]
theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A‖ :=
@@ -357,7 +357,7 @@ theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (SMul.smul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (Submonoid.hasSmul.{u1, u1} E E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))) (Mul.toSMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) U A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HSMul.hSMul.{u1, u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) E E (instHSMul.{u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) E (Submonoid.smul.{u1, u1} E E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SMulWithZero.toSMulZeroClass.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HSMul.hSMul.{u1, u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) E E (instHSMul.{u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) E (Submonoid.smul.{u1, u1} E E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SMulWithZero.toSMulZeroClass.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_unitary_smul CstarRing.norm_unitary_smulₓ'. -/
@[simp]
theorem norm_unitary_smul (U : unitary E) (A : E) : ‖U • A‖ = ‖A‖ :=
@@ -368,7 +368,7 @@ theorem norm_unitary_smul (U : unitary E) (A : E) : ‖U • A‖ = ‖A‖ :=
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {U : E} (A : E), (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) U A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A))
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {U : E} (A : E), (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {U : E} (A : E), (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mem_unitary_mul CstarRing.norm_mem_unitary_mulₓ'. -/
theorem norm_mem_unitary_mul {U : E} (A : E) (hU : U ∈ unitary E) : ‖U * A‖ = ‖A‖ :=
norm_coe_unitary_mul ⟨U, hU⟩ A
@@ -378,7 +378,7 @@ theorem norm_mem_unitary_mul {U : E} (A : E) (hU : U ∈ unitary E) : ‖U * A
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) A ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U))) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U))) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) U))) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitaryₓ'. -/
@[simp]
theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
@@ -394,7 +394,7 @@ theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) {U : E}, (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) A U)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A))
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A U)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A U)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mul_mem_unitary CstarRing.norm_mul_mem_unitaryₓ'. -/
theorem norm_mul_mem_unitary (A : E) {U : E} (hU : U ∈ unitary E) : ‖A * U‖ = ‖A‖ :=
norm_mul_coe_unitary A ⟨U, hU⟩
@@ -408,7 +408,7 @@ end CstarRing
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {x : E}, (IsSelfAdjoint.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) x) -> (forall (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (HPow.hPow.{u1, 0, u1} E Nat E (instHPow.{u1, 0} E Nat (Monoid.Pow.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal NNReal.semiring)))) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n)))
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {x : E}, (IsSelfAdjoint.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (AddMonoidWithOne.toAddMonoid.{u1} E (AddGroupWithOne.toAddMonoidWithOne.{u1} E (Ring.toAddGroupWithOne.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) x) -> (forall (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (HPow.hPow.{u1, 0, u1} E Nat E (instHPow.{u1, 0} E Nat (Monoid.Pow.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)))
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {x : E}, (IsSelfAdjoint.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (AddMonoidWithOne.toAddMonoid.{u1} E (AddGroupWithOne.toAddMonoidWithOne.{u1} E (Ring.toAddGroupWithOne.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2))) x) -> (forall (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (HPow.hPow.{u1, 0, u1} E Nat E (instHPow.{u1, 0} E Nat (Monoid.Pow.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)))
Case conversion may be inaccurate. Consider using '#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_powₓ'. -/
theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] {x : E}
(hx : IsSelfAdjoint x) (n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
@@ -424,7 +424,7 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
lean 3 declaration is
forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (x : coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (SeminormedAddGroup.toNNNorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (HPow.hPow.{u1, 0, u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) Nat (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (instHPow.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) Nat (selfAdjoint.Nat.hasPow.{u1} E (NormedRing.toRing.{u1} E _inst_1) _inst_2)) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal NNReal.semiring)))) (NNNorm.nnnorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (SeminormedAddGroup.toNNNorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))
but is expected to have type
- forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (x : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) Nat (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (instHPow.{u1, 0} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) Nat (selfAdjoint.instPowSubtypeMemAddSubgroupToAddGroupToAddGroupWithOneInstMembershipInstSetLikeAddSubgroupSelfAdjointToStarAddMonoidToNonUnitalSemiringToNonUnitalRingNat.{u1} E (NormedRing.toRing.{u1} E _inst_1) _inst_2)) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (x : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) Nat (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (instHPow.{u1, 0} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) Nat (selfAdjoint.instPowSubtypeMemAddSubgroupToAddGroupToAddGroupWithOneInstMembershipInstSetLikeAddSubgroupSelfAdjointToStarAddMonoidToNonUnitalSemiringToSemiringNat.{u1} E (NormedRing.toRing.{u1} E _inst_1) _inst_2)) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (Semiring.toNonUnitalSemiring.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))) _inst_2)))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))
Case conversion may be inaccurate. Consider using '#align self_adjoint.nnnorm_pow_two_pow selfAdjoint.nnnorm_pow_two_powₓ'. -/
theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] (x : selfAdjoint E)
(n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/738054fa93d43512da144ec45ce799d18fd44248
@@ -276,10 +276,10 @@ instance Pi.cstarRing : CstarRing (∀ i, R i)
#align pi.cstar_ring Pi.cstarRing
-/
-#print Pi.cstar_ring' /-
-instance Pi.cstar_ring' : CstarRing (ι → R₁) :=
+#print Pi.cstarRing' /-
+instance Pi.cstarRing' : CstarRing (ι → R₁) :=
Pi.cstarRing
-#align pi.cstar_ring' Pi.cstar_ring'
+#align pi.cstar_ring' Pi.cstarRing'
-/
end ProdPi
mathlib commit https://github.com/leanprover-community/mathlib/commit/fa78268d4d77cb2b2fbc89f0527e2e7807763780
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis
! This file was ported from Lean 3 source module analysis.normed_space.star.basic
-! leanprover-community/mathlib commit e65771194f9e923a70dfb49b6ca7be6e400d8b6f
+! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -18,6 +18,9 @@ import Mathbin.Topology.Algebra.StarSubalgebra
/-!
# Normed star rings and algebras
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A normed star group is a normed group with a compatible `star` which is isometric.
A C⋆-ring is a normed star group that is also a ring and that verifies the stronger
mathlib commit https://github.com/leanprover-community/mathlib/commit/2651125b48fc5c170ab1111afd0817c903b1fc6c
@@ -41,10 +41,12 @@ open Topology
-- mathport name: «expr ⋆»
local postfix:max "⋆" => star
+#print NormedStarGroup /-
/-- A normed star group is a normed group with a compatible `star` which is isometric. -/
class NormedStarGroup (E : Type _) [SeminormedAddCommGroup E] [StarAddMonoid E] : Prop where
norm_star : ∀ x : E, ‖x⋆‖ = ‖x‖
#align normed_star_group NormedStarGroup
+-/
export NormedStarGroup (norm_star)
@@ -56,38 +58,50 @@ section NormedStarGroup
variable [SeminormedAddCommGroup E] [StarAddMonoid E] [NormedStarGroup E]
+#print nnnorm_star /-
@[simp]
theorem nnnorm_star (x : E) : ‖star x‖₊ = ‖x‖₊ :=
Subtype.ext <| norm_star _
#align nnnorm_star nnnorm_star
+-/
+#print starNormedAddGroupHom /-
/-- The `star` map in a normed star group is a normed group homomorphism. -/
def starNormedAddGroupHom : NormedAddGroupHom E E :=
{ starAddEquiv with bound' := ⟨1, fun v => le_trans (norm_star _).le (one_mul _).symm.le⟩ }
#align star_normed_add_group_hom starNormedAddGroupHom
+-/
+#print star_isometry /-
/-- The `star` map in a normed star group is an isometry -/
theorem star_isometry : Isometry (star : E → E) :=
show Isometry starAddEquiv from
AddMonoidHomClass.isometry_of_norm starAddEquiv (show ∀ x, ‖x⋆‖ = ‖x‖ from norm_star)
#align star_isometry star_isometry
+-/
+#print NormedStarGroup.to_continuousStar /-
instance (priority := 100) NormedStarGroup.to_continuousStar : ContinuousStar E :=
⟨star_isometry.Continuous⟩
#align normed_star_group.to_has_continuous_star NormedStarGroup.to_continuousStar
+-/
end NormedStarGroup
+#print RingHomIsometric.starRingEnd /-
instance RingHomIsometric.starRingEnd [NormedCommRing E] [StarRing E] [NormedStarGroup E] :
RingHomIsometric (starRingEnd E) :=
⟨norm_star⟩
#align ring_hom_isometric.star_ring_end RingHomIsometric.starRingEnd
+-/
+#print CstarRing /-
/-- A C*-ring is a normed star ring that satifies the stronger condition `‖x⋆ * x‖ = ‖x‖^2`
for every `x`. -/
class CstarRing (E : Type _) [NonUnitalNormedRing E] [StarRing E] : Prop where
norm_star_mul_self : ∀ {x : E}, ‖x⋆ * x‖ = ‖x‖ * ‖x‖
#align cstar_ring CstarRing
+-/
instance : CstarRing ℝ where norm_star_mul_self x := by simp only [star, id.def, norm_mul]
@@ -97,6 +111,7 @@ section NonUnital
variable [NonUnitalNormedRing E] [StarRing E] [CstarRing E]
+#print CstarRing.to_normedStarGroup /-
-- see Note [lower instance priority]
/-- In a C*-ring, star preserves the norm. -/
instance (priority := 100) to_normedStarGroup : NormedStarGroup E :=
@@ -119,24 +134,55 @@ instance (priority := 100) to_normedStarGroup : NormedStarGroup E :=
exact le_antisymm (le_of_mul_le_mul_right h₂ hnt_star) (le_of_mul_le_mul_right h₁ hnt)⟩
#align cstar_ring.to_normed_star_group CstarRing.to_normedStarGroup
+-/
+/- warning: cstar_ring.norm_self_mul_star -> CstarRing.norm_self_mul_star is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) x) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) x))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x))) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_self_mul_star CstarRing.norm_self_mul_starₓ'. -/
theorem norm_self_mul_star {x : E} : ‖x * x⋆‖ = ‖x‖ * ‖x‖ :=
by
nth_rw 1 [← star_star x]
simp only [norm_star_mul_self, norm_star]
#align cstar_ring.norm_self_mul_star CstarRing.norm_self_mul_star
+/- warning: cstar_ring.norm_star_mul_self' -> CstarRing.norm_star_mul_self' is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (Norm.norm.{u1} E (NonUnitalNormedRing.toHasNorm.{u1} E _inst_1) x))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} Real (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x)) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (Norm.norm.{u1} E (NonUnitalNormedRing.toNorm.{u1} E _inst_1) x))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_star_mul_self' CstarRing.norm_star_mul_self'ₓ'. -/
theorem norm_star_mul_self' {x : E} : ‖x⋆ * x‖ = ‖x⋆‖ * ‖x‖ := by rw [norm_star_mul_self, norm_star]
#align cstar_ring.norm_star_mul_self' CstarRing.norm_star_mul_self'
+/- warning: cstar_ring.nnnorm_self_mul_star -> CstarRing.nnnorm_self_mul_star is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) 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} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.nnnorm_self_mul_star CstarRing.nnnorm_self_mul_starₓ'. -/
theorem nnnorm_self_mul_star {x : E} : ‖x * star x‖₊ = ‖x‖₊ * ‖x‖₊ :=
Subtype.ext norm_self_mul_star
#align cstar_ring.nnnorm_self_mul_star CstarRing.nnnorm_self_mul_star
+/- warning: cstar_ring.nnnorm_star_mul_self -> CstarRing.nnnorm_star_mul_self is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) 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} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] {x : E}, Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x)) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E _inst_1)))) x))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.nnnorm_star_mul_self CstarRing.nnnorm_star_mul_selfₓ'. -/
theorem nnnorm_star_mul_self {x : E} : ‖x⋆ * x‖₊ = ‖x‖₊ * ‖x‖₊ :=
Subtype.ext norm_star_mul_self
#align cstar_ring.nnnorm_star_mul_self CstarRing.nnnorm_star_mul_self
+/- warning: cstar_ring.star_mul_self_eq_zero_iff -> CstarRing.star_mul_self_eq_zero_iff is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iffₓ'. -/
@[simp]
theorem star_mul_self_eq_zero_iff (x : E) : star x * x = 0 ↔ x = 0 :=
by
@@ -144,15 +190,33 @@ theorem star_mul_self_eq_zero_iff (x : E) : star x * x = 0 ↔ x = 0 :=
exact mul_self_eq_zero.trans norm_eq_zero
#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iff
+/- warning: cstar_ring.star_mul_self_ne_zero_iff -> CstarRing.star_mul_self_ne_zero_iff is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x) x) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.star_mul_self_ne_zero_iff CstarRing.star_mul_self_ne_zero_iffₓ'. -/
theorem star_mul_self_ne_zero_iff (x : E) : star x * x ≠ 0 ↔ x ≠ 0 := by
simp only [Ne.def, star_mul_self_eq_zero_iff]
#align cstar_ring.star_mul_self_ne_zero_iff CstarRing.star_mul_self_ne_zero_iff
+/- warning: cstar_ring.mul_star_self_eq_zero_iff -> CstarRing.mul_star_self_eq_zero_iff is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Eq.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Eq.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.mul_star_self_eq_zero_iff CstarRing.mul_star_self_eq_zero_iffₓ'. -/
@[simp]
theorem mul_star_self_eq_zero_iff (x : E) : x * star x = 0 ↔ x = 0 := by
simpa only [star_eq_zero, star_star] using @star_mul_self_eq_zero_iff _ _ _ _ (star x)
#align cstar_ring.mul_star_self_eq_zero_iff CstarRing.mul_star_self_eq_zero_iff
+/- warning: cstar_ring.mul_star_self_ne_zero_iff -> CstarRing.mul_star_self_ne_zero_iff is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (NonUnitalNonAssocSemiring.toDistrib.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))) x (Star.star.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (MulZeroClass.toHasZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NonUnitalNormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))] [_inst_3 : CstarRing.{u1} E _inst_1 _inst_2] (x : E), Iff (Ne.{succ u1} E (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonUnitalRing.toNonUnitalNonAssocRing.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))) x (Star.star.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E _inst_1))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)) _inst_2))) x)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1))))))) (Ne.{succ u1} E x (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (SemigroupWithZero.toZero.{u1} E (NonUnitalSemiring.toSemigroupWithZero.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.mul_star_self_ne_zero_iff CstarRing.mul_star_self_ne_zero_iffₓ'. -/
theorem mul_star_self_ne_zero_iff (x : E) : x * star x ≠ 0 ↔ x ≠ 0 := by
simp only [Ne.def, mul_star_self_eq_zero_iff]
#align cstar_ring.mul_star_self_ne_zero_iff CstarRing.mul_star_self_ne_zero_iff
@@ -169,14 +233,22 @@ variable [NonUnitalNormedRing R₂] [StarRing R₂] [CstarRing R₂]
variable [∀ i, NonUnitalNormedRing (R i)] [∀ i, StarRing (R i)]
+#print Pi.starRing' /-
/-- This instance exists to short circuit type class resolution because of problems with
inference involving Π-types. -/
instance Pi.starRing' : StarRing (∀ i, R i) :=
inferInstance
#align pi.star_ring' Pi.starRing'
+-/
variable [Fintype ι] [∀ i, CstarRing (R i)]
+/- warning: prod.cstar_ring -> Prod.cstarRing is a dubious translation:
+lean 3 declaration is
+ forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : NonUnitalNormedRing.{u1} R₁] [_inst_2 : StarRing.{u1} R₁ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1))] [_inst_3 : CstarRing.{u1} R₁ _inst_1 _inst_2] [_inst_4 : NonUnitalNormedRing.{u2} R₂] [_inst_5 : StarRing.{u2} R₂ (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4))] [_inst_6 : CstarRing.{u2} R₂ _inst_4 _inst_5], CstarRing.{max u1 u2} (Prod.{u1, u2} R₁ R₂) (Prod.nonUnitalNormedRing.{u1, u2} R₁ R₂ _inst_1 _inst_4) (Prod.starRing.{u1, u2} R₁ R₂ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1)) (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4)) _inst_2 _inst_5)
+but is expected to have type
+ forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} [_inst_1 : NonUnitalNormedRing.{u1} R₁] [_inst_2 : StarRing.{u1} R₁ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1))] [_inst_3 : CstarRing.{u1} R₁ _inst_1 _inst_2] [_inst_4 : NonUnitalNormedRing.{u2} R₂] [_inst_5 : StarRing.{u2} R₂ (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4))] [_inst_6 : CstarRing.{u2} R₂ _inst_4 _inst_5], CstarRing.{max u2 u1} (Prod.{u1, u2} R₁ R₂) (Prod.nonUnitalNormedRing.{u1, u2} R₁ R₂ _inst_1 _inst_4) (Prod.instStarRingProdInstNonUnitalSemiringProd.{u1, u2} R₁ R₂ (NonUnitalRing.toNonUnitalSemiring.{u1} R₁ (NonUnitalNormedRing.toNonUnitalRing.{u1} R₁ _inst_1)) (NonUnitalRing.toNonUnitalSemiring.{u2} R₂ (NonUnitalNormedRing.toNonUnitalRing.{u2} R₂ _inst_4)) _inst_2 _inst_5)
+Case conversion may be inaccurate. Consider using '#align prod.cstar_ring Prod.cstarRingₓ'. -/
instance Prod.cstarRing : CstarRing (R₁ × R₂)
where norm_star_mul_self x := by
unfold norm
@@ -189,6 +261,7 @@ instance Prod.cstarRing : CstarRing (R₁ × R₂)
rcases le_total ‖x.fst‖ ‖x.snd‖ with (h | h) <;> simp [h]
#align prod.cstar_ring Prod.cstarRing
+#print Pi.cstarRing /-
instance Pi.cstarRing : CstarRing (∀ i, R i)
where norm_star_mul_self x :=
by
@@ -198,10 +271,13 @@ instance Pi.cstarRing : CstarRing (∀ i, R i)
(Finset.comp_sup_eq_sup_comp_of_is_total (fun x : NNReal => x ^ 2)
(fun x y h => by simpa only [sq] using mul_le_mul' h h) (by simp)).symm
#align pi.cstar_ring Pi.cstarRing
+-/
+#print Pi.cstar_ring' /-
instance Pi.cstar_ring' : CstarRing (ι → R₁) :=
Pi.cstarRing
#align pi.cstar_ring' Pi.cstar_ring'
+-/
end ProdPi
@@ -209,6 +285,12 @@ section Unital
variable [NormedRing E] [StarRing E] [CstarRing E]
+/- warning: cstar_ring.norm_one -> CstarRing.norm_one is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E], Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (OfNat.ofNat.{u1} E 1 (OfNat.mk.{u1} E 1 (One.one.{u1} E (AddMonoidWithOne.toOne.{u1} E (AddGroupWithOne.toAddMonoidWithOne.{u1} E (AddCommGroupWithOne.toAddGroupWithOne.{u1} E (Ring.toAddCommGroupWithOne.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E], Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (OfNat.ofNat.{u1} E 1 (One.toOfNat1.{u1} E (NonAssocRing.toOne.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_one CstarRing.norm_oneₓ'. -/
@[simp]
theorem norm_one [Nontrivial E] : ‖(1 : E)‖ = 1 :=
by
@@ -220,16 +302,34 @@ theorem norm_one [Nontrivial E] : ‖(1 : E)‖ = 1 :=
instance (priority := 100) [Nontrivial E] : NormOneClass E :=
⟨norm_one⟩
+/- warning: cstar_ring.norm_coe_unitary -> CstarRing.norm_coe_unitary is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U)) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_coe_unitary CstarRing.norm_coe_unitaryₓ'. -/
theorem norm_coe_unitary [Nontrivial E] (U : unitary E) : ‖(U : E)‖ = 1 := by
rw [← sq_eq_sq (norm_nonneg _) zero_le_one, one_pow 2, sq, ← CstarRing.norm_star_mul_self,
unitary.coe_star_mul_self, CstarRing.norm_one]
#align cstar_ring.norm_coe_unitary CstarRing.norm_coe_unitary
+/- warning: cstar_ring.norm_of_mem_unitary -> CstarRing.norm_of_mem_unitary is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] {U : E}, (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) U) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] [_inst_4 : Nontrivial.{u1} E] {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) U) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_of_mem_unitary CstarRing.norm_of_mem_unitaryₓ'. -/
@[simp]
theorem norm_of_mem_unitary [Nontrivial E] {U : E} (hU : U ∈ unitary E) : ‖U‖ = 1 :=
norm_coe_unitary ⟨U, hU⟩
#align cstar_ring.norm_of_mem_unitary CstarRing.norm_of_mem_unitary
+/- warning: cstar_ring.norm_coe_unitary_mul -> CstarRing.norm_coe_unitary_mul is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U) A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U) A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mulₓ'. -/
@[simp]
theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A‖ :=
by
@@ -250,15 +350,33 @@ theorem norm_coe_unitary_mul (U : unitary E) (A : E) : ‖(U : E) * A‖ = ‖A
#align cstar_ring.norm_coe_unitary_mul CstarRing.norm_coe_unitary_mul
+/- warning: cstar_ring.norm_unitary_smul -> CstarRing.norm_unitary_smul is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (SMul.smul.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (Submonoid.hasSmul.{u1, u1} E E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))) (Mul.toSMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) U A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (A : E), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HSMul.hSMul.{u1, u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) E E (instHSMul.{u1, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) E (Submonoid.smul.{u1, u1} E E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (SMulZeroClass.toSMul.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SMulWithZero.toSMulZeroClass.{u1, u1} E E (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MonoidWithZero.toZero.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (MulZeroClass.toSMulWithZero.{u1} E (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} E (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_unitary_smul CstarRing.norm_unitary_smulₓ'. -/
@[simp]
theorem norm_unitary_smul (U : unitary E) (A : E) : ‖U • A‖ = ‖A‖ :=
norm_coe_unitary_mul U A
#align cstar_ring.norm_unitary_smul CstarRing.norm_unitary_smul
+/- warning: cstar_ring.norm_mem_unitary_mul -> CstarRing.norm_mem_unitary_mul is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {U : E} (A : E), (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) U A)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {U : E} (A : E), (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U A)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mem_unitary_mul CstarRing.norm_mem_unitary_mulₓ'. -/
theorem norm_mem_unitary_mul {U : E} (A : E) (hU : U ∈ unitary E) : ‖U * A‖ = ‖A‖ :=
norm_coe_unitary_mul ⟨U, hU⟩ A
#align cstar_ring.norm_mem_unitary_mul CstarRing.norm_mem_unitary_mul
+/- warning: cstar_ring.norm_mul_coe_unitary -> CstarRing.norm_mul_coe_unitary is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) (U : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) A ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) E (coeSubtype.{succ u1} E (fun (x : E) => Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) x (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))))))) U))) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A)
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) (U : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) x (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))), Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A (Subtype.val.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (SetLike.coe.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) U))) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A)
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitaryₓ'. -/
@[simp]
theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
calc
@@ -269,6 +387,12 @@ theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitary
+/- warning: cstar_ring.norm_mul_mem_unitary -> CstarRing.norm_mul_mem_unitary is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) {U : E}, (Membership.Mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) E (Submonoid.setLike.{u1} E (Monoid.toMulOneClass.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) U (unitary.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (Distrib.toHasMul.{u1} E (Ring.toDistrib.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) A U)) (Norm.norm.{u1} E (NormedRing.toHasNorm.{u1} E _inst_1) A))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (A : E) {U : E}, (Membership.mem.{u1, u1} E (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) E (Submonoid.instSetLikeSubmonoid.{u1} E (Monoid.toMulOneClass.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1))))))) U (unitary.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarSemigroup.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) (HMul.hMul.{u1, u1, u1} E E E (instHMul.{u1} E (NonUnitalNonAssocRing.toMul.{u1} E (NonAssocRing.toNonUnitalNonAssocRing.{u1} E (Ring.toNonAssocRing.{u1} E (NormedRing.toRing.{u1} E _inst_1))))) A U)) (Norm.norm.{u1} E (NormedRing.toNorm.{u1} E _inst_1) A))
+Case conversion may be inaccurate. Consider using '#align cstar_ring.norm_mul_mem_unitary CstarRing.norm_mul_mem_unitaryₓ'. -/
theorem norm_mul_mem_unitary (A : E) {U : E} (hU : U ∈ unitary E) : ‖A * U‖ = ‖A‖ :=
norm_mul_coe_unitary A ⟨U, hU⟩
#align cstar_ring.norm_mul_mem_unitary CstarRing.norm_mul_mem_unitary
@@ -277,6 +401,12 @@ end Unital
end CstarRing
+/- warning: is_self_adjoint.nnnorm_pow_two_pow -> IsSelfAdjoint.nnnorm_pow_two_pow is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {x : E}, (IsSelfAdjoint.{u1} E (InvolutiveStar.toHasStar.{u1} E (StarAddMonoid.toHasInvolutiveStar.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} E (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) x) -> (forall (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (HPow.hPow.{u1, 0, u1} E Nat E (instHPow.{u1, 0} E Nat (Monoid.Pow.{u1} E (Ring.toMonoid.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal NNReal.semiring)))) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n)))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] {x : E}, (IsSelfAdjoint.{u1} E (InvolutiveStar.toStar.{u1} E (StarAddMonoid.toInvolutiveStar.{u1} E (AddMonoidWithOne.toAddMonoid.{u1} E (AddGroupWithOne.toAddMonoidWithOne.{u1} E (Ring.toAddGroupWithOne.{u1} E (NormedRing.toRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) x) -> (forall (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (HPow.hPow.{u1, 0, u1} E Nat E (instHPow.{u1, 0} E Nat (Monoid.Pow.{u1} E (MonoidWithZero.toMonoid.{u1} E (Semiring.toMonoidWithZero.{u1} E (Ring.toSemiring.{u1} E (NormedRing.toRing.{u1} E _inst_1)))))) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} E (SeminormedAddGroup.toNNNorm.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n)))
+Case conversion may be inaccurate. Consider using '#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_powₓ'. -/
theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] {x : E}
(hx : IsSelfAdjoint x) (n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
by
@@ -287,6 +417,12 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
+/- warning: self_adjoint.nnnorm_pow_two_pow -> selfAdjoint.nnnorm_pow_two_pow is a dubious translation:
+lean 3 declaration is
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (x : coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (SeminormedAddGroup.toNNNorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (HPow.hPow.{u1, 0, u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) Nat (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (instHPow.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) Nat (selfAdjoint.Nat.hasPow.{u1} E (NormedRing.toRing.{u1} E _inst_1) _inst_2)) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal NNReal.semiring)))) (NNNorm.nnnorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (SeminormedAddGroup.toNNNorm.{u1} (coeSort.{succ u1, succ (succ u1)} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.setLike.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat (Monoid.Pow.{0} Nat Nat.monoid)) (OfNat.ofNat.{0} Nat 2 (OfNat.mk.{0} Nat 2 (bit0.{0} Nat Nat.hasAdd (One.one.{0} Nat Nat.hasOne)))) n))
+but is expected to have type
+ forall {E : Type.{u1}} [_inst_1 : NormedRing.{u1} E] [_inst_2 : StarRing.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))] [_inst_3 : CstarRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1) _inst_2] (x : Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (n : Nat), Eq.{1} NNReal (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (HPow.hPow.{u1, 0, u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) Nat (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (instHPow.{u1, 0} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) Nat (selfAdjoint.instPowSubtypeMemAddSubgroupToAddGroupToAddGroupWithOneInstMembershipInstSetLikeAddSubgroupSelfAdjointToStarAddMonoidToNonUnitalSemiringToNonUnitalRingNat.{u1} E (NormedRing.toRing.{u1} E _inst_1) _inst_2)) x (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))) (HPow.hPow.{0, 0, 0} NNReal Nat NNReal (instHPow.{0, 0} NNReal Nat (Monoid.Pow.{0} NNReal (MonoidWithZero.toMonoid.{0} NNReal (Semiring.toMonoidWithZero.{0} NNReal instNNRealSemiring)))) (NNNorm.nnnorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (SeminormedAddGroup.toNNNorm.{u1} (Subtype.{succ u1} E (fun (x : E) => Membership.mem.{u1, u1} E (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) (SetLike.instMembership.{u1, u1} (AddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))))) E (AddSubgroup.instSetLikeAddSubgroup.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))))) x (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) (AddSubgroup.seminormedAddGroup.{u1} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u1} E (NonUnitalSeminormedRing.toSeminormedAddCommGroup.{u1} E (NonUnitalNormedRing.toNonUnitalSeminormedRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (selfAdjoint.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E (NonUnitalNormedRing.toNormedAddCommGroup.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1)))) (StarRing.toStarAddMonoid.{u1} E (NonUnitalRing.toNonUnitalSemiring.{u1} E (NonUnitalNormedRing.toNonUnitalRing.{u1} E (NormedRing.toNonUnitalNormedRing.{u1} E _inst_1))) _inst_2)))) x) (HPow.hPow.{0, 0, 0} Nat Nat Nat (instHPow.{0, 0} Nat Nat instPowNat) (OfNat.ofNat.{0} Nat 2 (instOfNatNat 2)) n))
+Case conversion may be inaccurate. Consider using '#align self_adjoint.nnnorm_pow_two_pow selfAdjoint.nnnorm_pow_two_powₓ'. -/
theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] (x : selfAdjoint E)
(n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
x.Prop.nnnorm_pow_two_pow _
@@ -302,20 +438,34 @@ variable [Module 𝕜 E] [StarModule 𝕜 E]
variable (𝕜)
+#print starₗᵢ /-
/-- `star` bundled as a linear isometric equivalence -/
def starₗᵢ : E ≃ₗᵢ⋆[𝕜] E :=
{ starAddEquiv with
map_smul' := star_smul
norm_map' := norm_star }
#align starₗᵢ starₗᵢ
+-/
variable {𝕜}
+/- warning: coe_starₗᵢ -> coe_starₗᵢ is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toHasStar.{u1} 𝕜 (StarAddMonoid.toHasInvolutiveStar.{u1} 𝕜 (AddCommMonoid.toAddMonoid.{u1} 𝕜 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} 𝕜 (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toSemiring.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))], Eq.{succ u2} ((fun (_x : LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) => E -> E) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)) (coeFn.{succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (fun (_x : LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) => E -> E) (LinearIsometryEquiv.hasCoeToFun.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)) (Star.star.{u2} E (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)))
+but is expected to have type
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toStar.{u1} 𝕜 (StarAddMonoid.toInvolutiveStar.{u1} 𝕜 (AddMonoidWithOne.toAddMonoid.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toCommMonoidWithZero.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))], Eq.{succ u2} (forall (a : E), (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E (fun (_x : E) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) _x) (ContinuousMapClass.toFunLike.{u2, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (ContinuousSemilinearMapClass.toContinuousMapClass.{u2, u1, u1, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6 _inst_6 (SemilinearIsometryClass.instContinuousSemilinearMapClassToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroupToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroup.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (SemilinearIsometryEquivClass.instSemilinearIsometryClass.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (LinearIsometryEquiv.instSemilinearIsometryEquivClassLinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6))))) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)) (Star.star.{u2} E (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)))
+Case conversion may be inaccurate. Consider using '#align coe_starₗᵢ coe_starₗᵢₓ'. -/
@[simp]
theorem coe_starₗᵢ : (starₗᵢ 𝕜 : E → E) = star :=
rfl
#align coe_starₗᵢ coe_starₗᵢ
+/- warning: starₗᵢ_apply -> starₗᵢ_apply is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toHasStar.{u1} 𝕜 (StarAddMonoid.toHasInvolutiveStar.{u1} 𝕜 (AddCommMonoid.toAddMonoid.{u1} 𝕜 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} 𝕜 (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toSemiring.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))] {x : E}, Eq.{succ u2} E (coeFn.{succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (fun (_x : LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) => E -> E) (LinearIsometryEquiv.hasCoeToFun.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.StarRingEnd.ringHomInvPair.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) x) (Star.star.{u2} E (InvolutiveStar.toHasStar.{u2} E (StarAddMonoid.toHasInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) x)
+but is expected to have type
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} [_inst_1 : CommSemiring.{u1} 𝕜] [_inst_2 : StarRing.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1))] [_inst_3 : SeminormedAddCommGroup.{u2} E] [_inst_4 : StarAddMonoid.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3))))] [_inst_5 : NormedStarGroup.{u2} E _inst_3 _inst_4] [_inst_6 : Module.{u1, u2} 𝕜 E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3))] [_inst_7 : StarModule.{u1, u2} 𝕜 E (InvolutiveStar.toStar.{u1} 𝕜 (StarAddMonoid.toInvolutiveStar.{u1} 𝕜 (AddMonoidWithOne.toAddMonoid.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (StarRing.toStarAddMonoid.{u1} 𝕜 (NonUnitalCommSemiring.toNonUnitalSemiring.{u1} 𝕜 (CommSemiring.toNonUnitalCommSemiring.{u1} 𝕜 _inst_1)) _inst_2))) (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) (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} 𝕜 (CommSemiring.toCommMonoidWithZero.{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} 𝕜 (CommSemiring.toSemiring.{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 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6))))] {x : E}, Eq.{succ u2} ((fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E (fun (_x : E) => (fun (x._@.Mathlib.Topology.ContinuousFunction.Basic._hyg.699 : E) => E) _x) (ContinuousMapClass.toFunLike.{u2, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) E E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (ContinuousSemilinearMapClass.toContinuousMapClass.{u2, u1, u1, u2, u2} (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E _inst_3))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E _inst_3)) _inst_6 _inst_6 (SemilinearIsometryClass.instContinuousSemilinearMapClassToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroupToTopologicalSpaceToUniformSpaceToPseudoMetricSpaceToAddCommMonoidToAddCommGroup.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (SemilinearIsometryEquivClass.instSemilinearIsometryClass.{u1, u1, u2, u2, u2} 𝕜 𝕜 E E (LinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) E E _inst_3 _inst_3 _inst_6 _inst_6) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6 (LinearIsometryEquiv.instSemilinearIsometryEquivClassLinearIsometryEquiv.{u1, u1, u2, u2} 𝕜 𝕜 E E (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (CommSemiring.toSemiring.{u1} 𝕜 _inst_1) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (starRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) (RingHomInvPair.instRingHomInvPairToSemiringStarRingEnd.{u1} 𝕜 _inst_1 _inst_2) _inst_3 _inst_3 _inst_6 _inst_6))))) (starₗᵢ.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) x) (Star.star.{u2} E (InvolutiveStar.toStar.{u2} E (StarAddMonoid.toInvolutiveStar.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (SeminormedAddGroup.toAddGroup.{u2} E (SeminormedAddCommGroup.toSeminormedAddGroup.{u2} E _inst_3)))) _inst_4)) x)
+Case conversion may be inaccurate. Consider using '#align starₗᵢ_apply starₗᵢ_applyₓ'. -/
theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
rfl
#align starₗᵢ_apply starₗᵢ_apply
@@ -324,15 +474,19 @@ end starₗᵢ
namespace StarSubalgebra
+#print StarSubalgebra.toNormedAlgebra /-
instance toNormedAlgebra {𝕜 A : Type _} [NormedField 𝕜] [StarRing 𝕜] [SeminormedRing A] [StarRing A]
[NormedAlgebra 𝕜 A] [StarModule 𝕜 A] (S : StarSubalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.Algebra _ _ _ S.Subtype
#align star_subalgebra.to_normed_algebra StarSubalgebra.toNormedAlgebra
+-/
+#print StarSubalgebra.to_cstarRing /-
instance to_cstarRing {R A} [CommRing R] [StarRing R] [NormedRing A] [StarRing A] [CstarRing A]
[Algebra R A] [StarModule R A] (S : StarSubalgebra R A) : CstarRing S
where norm_star_mul_self x := @CstarRing.norm_star_mul_self A _ _ _ x
#align star_subalgebra.to_cstar_ring StarSubalgebra.to_cstarRing
+-/
end StarSubalgebra
mathlib commit https://github.com/leanprover-community/mathlib/commit/2af0836443b4cfb5feda0df0051acdb398304931
@@ -324,7 +324,7 @@ end starₗᵢ
namespace StarSubalgebra
-instance toNormedAlgebra {𝕜 A : Type _} [NormedField 𝕜] [StarRing 𝕜] [SemiNormedRing A] [StarRing A]
+instance toNormedAlgebra {𝕜 A : Type _} [NormedField 𝕜] [StarRing 𝕜] [SeminormedRing A] [StarRing A]
[NormedAlgebra 𝕜 A] [StarModule 𝕜 A] (S : StarSubalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.Algebra _ _ _ S.Subtype
#align star_subalgebra.to_normed_algebra StarSubalgebra.toNormedAlgebra
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -264,7 +264,7 @@ theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
calc
_ = ‖((U : E)⋆ * A⋆)⋆‖ := by simp only [star_star, star_mul]
_ = ‖(U : E)⋆ * A⋆‖ := by rw [norm_star]
- _ = ‖A⋆‖ := norm_mem_unitary_mul (star A) (unitary.star_mem U.Prop)
+ _ = ‖A⋆‖ := (norm_mem_unitary_mul (star A) (unitary.star_mem U.Prop))
_ = ‖A‖ := norm_star _
#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitary
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis
! This file was ported from Lean 3 source module analysis.normed_space.star.basic
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit e65771194f9e923a70dfb49b6ca7be6e400d8b6f
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,7 @@ import Mathbin.Analysis.NormedSpace.Basic
import Mathbin.Analysis.NormedSpace.LinearIsometry
import Mathbin.Algebra.Star.SelfAdjoint
import Mathbin.Algebra.Star.Unitary
+import Mathbin.Topology.Algebra.StarSubalgebra
/-!
# Normed star rings and algebras
@@ -321,3 +322,17 @@ theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
end starₗᵢ
+namespace StarSubalgebra
+
+instance toNormedAlgebra {𝕜 A : Type _} [NormedField 𝕜] [StarRing 𝕜] [SemiNormedRing A] [StarRing A]
+ [NormedAlgebra 𝕜 A] [StarModule 𝕜 A] (S : StarSubalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
+ @NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.Algebra _ _ _ S.Subtype
+#align star_subalgebra.to_normed_algebra StarSubalgebra.toNormedAlgebra
+
+instance to_cstarRing {R A} [CommRing R] [StarRing R] [NormedRing A] [StarRing A] [CstarRing A]
+ [Algebra R A] [StarModule R A] (S : StarSubalgebra R A) : CstarRing S
+ where norm_star_mul_self x := @CstarRing.norm_star_mul_self A _ _ _ x
+#align star_subalgebra.to_cstar_ring StarSubalgebra.to_cstarRing
+
+end StarSubalgebra
+
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -86,7 +86,7 @@ class CstarRing (E : Type*) [NonUnitalNormedRing E] [StarRing E] : Prop where
norm_star_mul_self : ∀ {x : E}, ‖x⋆ * x‖ = ‖x‖ * ‖x‖
#align cstar_ring CstarRing
-instance : CstarRing ℝ where norm_star_mul_self {x} := by simp only [star, id.def, norm_mul]
+instance : CstarRing ℝ where norm_star_mul_self {x} := by simp only [star, id, norm_mul]
namespace CstarRing
@@ -248,7 +248,7 @@ theorem norm_mul_coe_unitary (A : E) (U : unitary E) : ‖A * U‖ = ‖A‖ :=
calc
_ = ‖((U : E)⋆ * A⋆)⋆‖ := by simp only [star_star, star_mul]
_ = ‖(U : E)⋆ * A⋆‖ := by rw [norm_star]
- _ = ‖A⋆‖ := (norm_mem_unitary_mul (star A) (unitary.star_mem U.prop))
+ _ = ‖A⋆‖ := norm_mem_unitary_mul (star A) (unitary.star_mem U.prop)
_ = ‖A‖ := norm_star _
#align cstar_ring.norm_mul_coe_unitary CstarRing.norm_mul_coe_unitary
@@ -138,7 +138,7 @@ theorem star_mul_self_eq_zero_iff (x : E) : x⋆ * x = 0 ↔ x = 0 := by
#align cstar_ring.star_mul_self_eq_zero_iff CstarRing.star_mul_self_eq_zero_iff
theorem star_mul_self_ne_zero_iff (x : E) : x⋆ * x ≠ 0 ↔ x ≠ 0 := by
- simp only [Ne.def, star_mul_self_eq_zero_iff]
+ simp only [Ne, star_mul_self_eq_zero_iff]
#align cstar_ring.star_mul_self_ne_zero_iff CstarRing.star_mul_self_ne_zero_iff
@[simp]
@@ -147,7 +147,7 @@ theorem mul_star_self_eq_zero_iff (x : E) : x * x⋆ = 0 ↔ x = 0 := by
#align cstar_ring.mul_star_self_eq_zero_iff CstarRing.mul_star_self_eq_zero_iff
theorem mul_star_self_ne_zero_iff (x : E) : x * x⋆ ≠ 0 ↔ x ≠ 0 := by
- simp only [Ne.def, mul_star_self_eq_zero_iff]
+ simp only [Ne, mul_star_self_eq_zero_iff]
#align cstar_ring.mul_star_self_ne_zero_iff CstarRing.mul_star_self_ne_zero_iff
end NonUnital
We change the following field in the definition of an additive commutative monoid:
nsmul_succ : ∀ (n : ℕ) (x : G),
- AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+ AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
where the latter is more natural
We adjust the definitions of ^
in monoids, groups, etc.
Originally there was a warning comment about why this natural order was preferred
use
x * npowRec n x
and notnpowRec n x * x
in the definition to make sure that definitional unfolding ofnpowRec
is blocked, to avoid deep recursion issues.
but it seems to no longer apply.
Remarks on the PR :
pow_succ
and pow_succ'
have switched their meanings.Ideal.IsPrime.mul_mem_pow
which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul
.@@ -264,7 +264,7 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
(hx : IsSelfAdjoint x) (n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n := by
induction' n with k hk
· simp only [pow_zero, pow_one, Nat.zero_eq]
- · rw [pow_succ, pow_mul', sq]
+ · rw [pow_succ', pow_mul', sq]
nth_rw 1 [← selfAdjoint.mem_iff.mp hx]
rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -155,11 +155,8 @@ end NonUnital
section ProdPi
variable {ι R₁ R₂ : Type*} {R : ι → Type*}
-
variable [NonUnitalNormedRing R₁] [StarRing R₁] [CstarRing R₁]
-
variable [NonUnitalNormedRing R₂] [StarRing R₂] [CstarRing R₂]
-
variable [∀ i, NonUnitalNormedRing (R i)] [∀ i, StarRing (R i)]
/-- This instance exists to short circuit type class resolution because of problems with
@@ -280,11 +277,8 @@ theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E]
section starₗᵢ
variable [CommSemiring 𝕜] [StarRing 𝕜]
-
variable [SeminormedAddCommGroup E] [StarAddMonoid E] [NormedStarGroup E]
-
variable [Module 𝕜 E] [StarModule 𝕜 E]
-
variable (𝕜)
/-- `star` bundled as a linear isometric equivalence -/
@@ -202,7 +202,7 @@ section Unital
variable [NormedRing E] [StarRing E] [CstarRing E]
-@[simp, nolint simpNF] -- Porting note: simp cannot prove this
+@[simp, nolint simpNF] -- Porting note (#10959): simp cannot prove this
theorem norm_one [Nontrivial E] : ‖(1 : E)‖ = 1 := by
have : 0 < ‖(1 : E)‖ := norm_pos_iff.mpr one_ne_zero
rw [← mul_left_inj' this.ne', ← norm_star_mul_self, mul_one, star_one, one_mul]
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>
@@ -317,7 +317,7 @@ namespace StarSubalgebra
instance toNormedAlgebra {𝕜 A : Type*} [NormedField 𝕜] [StarRing 𝕜] [SeminormedRing A] [StarRing A]
[NormedAlgebra 𝕜 A] [StarModule 𝕜 A] (S : StarSubalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
- @NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.algebra _ _ _ S.subtype
+ NormedAlgebra.induced 𝕜 S A S.subtype
#align star_subalgebra.to_normed_algebra StarSubalgebra.toNormedAlgebra
instance to_cstarRing {R A} [CommRing R] [StarRing R] [NormedRing A] [StarRing A] [CstarRing A]
@@ -7,8 +7,8 @@ import Mathlib.Analysis.Normed.Group.Hom
import Mathlib.Analysis.NormedSpace.Basic
import Mathlib.Analysis.NormedSpace.LinearIsometry
import Mathlib.Algebra.Star.SelfAdjoint
+import Mathlib.Algebra.Star.Subalgebra
import Mathlib.Algebra.Star.Unitary
-import Mathlib.Topology.Algebra.StarSubalgebra
import Mathlib.Topology.Algebra.Module.Star
#align_import analysis.normed_space.star.basic from "leanprover-community/mathlib"@"aa6669832974f87406a3d9d70fc5707a60546207"
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -39,7 +39,7 @@ open Topology
local postfix:max "⋆" => star
/-- A normed star group is a normed group with a compatible `star` which is isometric. -/
-class NormedStarGroup (E : Type _) [SeminormedAddCommGroup E] [StarAddMonoid E] : Prop where
+class NormedStarGroup (E : Type*) [SeminormedAddCommGroup E] [StarAddMonoid E] : Prop where
norm_star : ∀ x : E, ‖x⋆‖ = ‖x‖
#align normed_star_group NormedStarGroup
@@ -47,7 +47,7 @@ export NormedStarGroup (norm_star)
attribute [simp] norm_star
-variable {𝕜 E α : Type _}
+variable {𝕜 E α : Type*}
section NormedStarGroup
@@ -82,7 +82,7 @@ instance RingHomIsometric.starRingEnd [NormedCommRing E] [StarRing E] [NormedSta
/-- A C*-ring is a normed star ring that satisfies the stronger condition `‖x⋆ * x‖ = ‖x‖^2`
for every `x`. -/
-class CstarRing (E : Type _) [NonUnitalNormedRing E] [StarRing E] : Prop where
+class CstarRing (E : Type*) [NonUnitalNormedRing E] [StarRing E] : Prop where
norm_star_mul_self : ∀ {x : E}, ‖x⋆ * x‖ = ‖x‖ * ‖x‖
#align cstar_ring CstarRing
@@ -154,7 +154,7 @@ end NonUnital
section ProdPi
-variable {ι R₁ R₂ : Type _} {R : ι → Type _}
+variable {ι R₁ R₂ : Type*} {R : ι → Type*}
variable [NonUnitalNormedRing R₁] [StarRing R₁] [CstarRing R₁]
@@ -315,7 +315,7 @@ end starₗᵢ
namespace StarSubalgebra
-instance toNormedAlgebra {𝕜 A : Type _} [NormedField 𝕜] [StarRing 𝕜] [SeminormedRing A] [StarRing A]
+instance toNormedAlgebra {𝕜 A : Type*} [NormedField 𝕜] [StarRing 𝕜] [SeminormedRing A] [StarRing A]
[NormedAlgebra 𝕜 A] [StarModule 𝕜 A] (S : StarSubalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.algebra _ _ _ S.subtype
#align star_subalgebra.to_normed_algebra StarSubalgebra.toNormedAlgebra
@@ -2,11 +2,6 @@
Copyright (c) 2021 Frédéric Dupuis. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis
-
-! This file was ported from Lean 3 source module analysis.normed_space.star.basic
-! leanprover-community/mathlib commit aa6669832974f87406a3d9d70fc5707a60546207
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Normed.Group.Hom
import Mathlib.Analysis.NormedSpace.Basic
@@ -16,6 +11,8 @@ import Mathlib.Algebra.Star.Unitary
import Mathlib.Topology.Algebra.StarSubalgebra
import Mathlib.Topology.Algebra.Module.Star
+#align_import analysis.normed_space.star.basic from "leanprover-community/mathlib"@"aa6669832974f87406a3d9d70fc5707a60546207"
+
/-!
# Normed star rings and algebras
WIP: experiments with changing instance priorities. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/std4.20.2F.20Lean4.20bump/near/374996945 .
Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
@@ -106,7 +106,7 @@ instance (priority := 100) to_normedStarGroup : NormedStarGroup E :=
· simp only [htriv, star_zero]
· have hnt : 0 < ‖x‖ := norm_pos_iff.mpr htriv
have hnt_star : 0 < ‖x⋆‖ :=
- norm_pos_iff.mpr ((AddEquiv.map_ne_zero_iff starAddEquiv).mpr htriv)
+ norm_pos_iff.mpr ((AddEquiv.map_ne_zero_iff starAddEquiv (M := E)).mpr htriv)
have h₁ :=
calc
‖x‖ * ‖x‖ = ‖x⋆ * x‖ := norm_star_mul_self.symm
I ran codespell Mathlib
and got tired halfway through the suggestions.
@@ -83,7 +83,7 @@ instance RingHomIsometric.starRingEnd [NormedCommRing E] [StarRing E] [NormedSta
⟨@norm_star _ _ _ _⟩
#align ring_hom_isometric.star_ring_end RingHomIsometric.starRingEnd
-/-- A C*-ring is a normed star ring that satifies the stronger condition `‖x⋆ * x‖ = ‖x‖^2`
+/-- A C*-ring is a normed star ring that satisfies the stronger condition `‖x⋆ * x‖ = ‖x‖^2`
for every `x`. -/
class CstarRing (E : Type _) [NonUnitalNormedRing E] [StarRing E] : Prop where
norm_star_mul_self : ∀ {x : E}, ‖x⋆ * x‖ = ‖x‖ * ‖x‖
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Frédéric Dupuis
! This file was ported from Lean 3 source module analysis.normed_space.star.basic
-! leanprover-community/mathlib commit e65771194f9e923a70dfb49b6ca7be6e400d8b6f
+! leanprover-community/mathlib commit aa6669832974f87406a3d9d70fc5707a60546207
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,7 @@ import Mathlib.Analysis.NormedSpace.LinearIsometry
import Mathlib.Algebra.Star.SelfAdjoint
import Mathlib.Algebra.Star.Unitary
import Mathlib.Topology.Algebra.StarSubalgebra
+import Mathlib.Topology.Algebra.Module.Star
/-!
# Normed star rings and algebras
@@ -307,6 +308,12 @@ theorem starₗᵢ_apply {x : E} : starₗᵢ 𝕜 x = star x :=
rfl
#align starₗᵢ_apply starₗᵢ_apply
+@[simp]
+theorem starₗᵢ_toContinuousLinearEquiv :
+ (starₗᵢ 𝕜 : E ≃ₗᵢ⋆[𝕜] E).toContinuousLinearEquiv = (starL 𝕜 : E ≃L⋆[𝕜] E) :=
+ ContinuousLinearEquiv.ext rfl
+#align starₗᵢ_to_continuous_linear_equiv starₗᵢ_toContinuousLinearEquiv
+
end starₗᵢ
namespace StarSubalgebra
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>
@@ -77,7 +77,6 @@ instance (priority := 100) NormedStarGroup.to_continuousStar : ContinuousStar E
end NormedStarGroup
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
instance RingHomIsometric.starRingEnd [NormedCommRing E] [StarRing E] [NormedStarGroup E] :
RingHomIsometric (starRingEnd E) :=
⟨@norm_star _ _ _ _⟩
@@ -202,7 +201,6 @@ end ProdPi
section Unital
-set_option synthInstance.etaExperiment true
variable [NormedRing E] [StarRing E] [CstarRing E]
@@ -267,7 +265,6 @@ end Unital
end CstarRing
-set_option synthInstance.etaExperiment true in
theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] {x : E}
(hx : IsSelfAdjoint x) (n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n := by
induction' n with k hk
@@ -277,7 +274,6 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
-set_option synthInstance.etaExperiment true in
theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] (x : selfAdjoint E)
(n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
x.prop.nnnorm_pow_two_pow _
@@ -315,13 +311,11 @@ end starₗᵢ
namespace StarSubalgebra
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
instance toNormedAlgebra {𝕜 A : Type _} [NormedField 𝕜] [StarRing 𝕜] [SeminormedRing A] [StarRing A]
[NormedAlgebra 𝕜 A] [StarModule 𝕜 A] (S : StarSubalgebra 𝕜 A) : NormedAlgebra 𝕜 S :=
@NormedAlgebra.induced _ 𝕜 S A _ (SubringClass.toRing S) S.algebra _ _ _ S.subtype
#align star_subalgebra.to_normed_algebra StarSubalgebra.toNormedAlgebra
-set_option synthInstance.etaExperiment true in -- Porting note: gets around lean4#2074
instance to_cstarRing {R A} [CommRing R] [StarRing R] [NormedRing A] [StarRing A] [CstarRing A]
[Algebra R A] [StarModule R A] (S : StarSubalgebra R A) : CstarRing S where
norm_star_mul_self {x} := @CstarRing.norm_star_mul_self A _ _ _ x
We make sure that the canonical path from NonAssocSemiring
to Ring
passes through Semiring
,
as this is a path which is followed all the time in linear algebra where the defining semilinear map
σ : R →+* S
depends on the NonAssocSemiring
structure of R
and S
while the module
definition depends on the Semiring
structure.
Tt is not currently possible to adjust priorities by hand (see lean4#2115). Instead, the last
declared instance is used, so we make sure that Semiring
is declared after NonAssocRing
, so
that Semiring -> NonAssocSemiring
is tried before NonAssocRing -> NonAssocSemiring
.
@@ -202,6 +202,8 @@ end ProdPi
section Unital
+set_option synthInstance.etaExperiment true
+
variable [NormedRing E] [StarRing E] [CstarRing E]
@[simp, nolint simpNF] -- Porting note: simp cannot prove this
@@ -265,6 +267,7 @@ end Unital
end CstarRing
+set_option synthInstance.etaExperiment true in
theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] {x : E}
(hx : IsSelfAdjoint x) (n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n := by
induction' n with k hk
@@ -274,6 +277,7 @@ theorem IsSelfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing
rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
#align is_self_adjoint.nnnorm_pow_two_pow IsSelfAdjoint.nnnorm_pow_two_pow
+set_option synthInstance.etaExperiment true in
theorem selfAdjoint.nnnorm_pow_two_pow [NormedRing E] [StarRing E] [CstarRing E] (x : selfAdjoint E)
(n : ℕ) : ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n :=
x.prop.nnnorm_pow_two_pow _
@@ -194,9 +194,9 @@ instance _root_.Pi.cstarRing : CstarRing (∀ i, R i) where
(fun x y h => by simpa only [sq] using mul_le_mul' h h) (by simp)).symm
#align pi.cstar_ring Pi.cstarRing
-instance _root_.Pi.cstar_ring' : CstarRing (ι → R₁) :=
+instance _root_.Pi.cstarRing' : CstarRing (ι → R₁) :=
Pi.cstarRing
-#align pi.cstar_ring' Pi.cstar_ring'
+#align pi.cstar_ring' Pi.cstarRing'
end ProdPi
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