# star on pi types #

We put a Star structure on pi types that operates elementwise, such that it describes the complex conjugation of vectors.

instance Pi.instStarForall {I : Type u} {f : IType v} [(i : I) → Star (f i)] :
Star ((i : I) → f i)
Equations
• Pi.instStarForall = { star := fun (x : (i : I) → f i) (i : I) => star (x i) }
@[simp]
theorem Pi.star_apply {I : Type u} {f : IType v} [(i : I) → Star (f i)] (x : (i : I) → f i) (i : I) :
star x i = star (x i)
theorem Pi.star_def {I : Type u} {f : IType v} [(i : I) → Star (f i)] (x : (i : I) → f i) :
star x = fun (i : I) => star (x i)
instance Pi.instTrivialStarForall {I : Type u} {f : IType v} [(i : I) → Star (f i)] [∀ (i : I), TrivialStar (f i)] :
TrivialStar ((i : I) → f i)
Equations
• =
instance Pi.instInvolutiveStarForall {I : Type u} {f : IType v} [(i : I) → InvolutiveStar (f i)] :
InvolutiveStar ((i : I) → f i)
Equations
• Pi.instInvolutiveStarForall =
instance Pi.instStarMulForall {I : Type u} {f : IType v} [(i : I) → Mul (f i)] [(i : I) → StarMul (f i)] :
StarMul ((i : I) → f i)
Equations
• Pi.instStarMulForall =
instance Pi.instStarAddMonoidForall {I : Type u} {f : IType v} [(i : I) → AddMonoid (f i)] [(i : I) → StarAddMonoid (f i)] :
StarAddMonoid ((i : I) → f i)
Equations
instance Pi.instStarRingForall {I : Type u} {f : IType v} [(i : I) → NonUnitalSemiring (f i)] [(i : I) → StarRing (f i)] :
StarRing ((i : I) → f i)
Equations
• Pi.instStarRingForall =
instance Pi.instStarModuleForall {I : Type u} {f : IType v} {R : Type w} [(i : I) → SMul R (f i)] [Star R] [(i : I) → Star (f i)] [∀ (i : I), StarModule R (f i)] :
StarModule R ((i : I) → f i)
Equations
• =
theorem Pi.single_star {I : Type u} {f : IType v} [(i : I) → AddMonoid (f i)] [(i : I) → StarAddMonoid (f i)] [] (i : I) (a : f i) :
Pi.single i (star a) = star ()
@[simp]
theorem Pi.conj_apply {ι : Type u_1} {α : ιType u_2} [(i : ι) → CommSemiring (α i)] [(i : ι) → StarRing (α i)] (f : (i : ι) → α i) (i : ι) :
(starRingEnd ((i : ι) → α i)) f i = (starRingEnd (α i)) (f i)
theorem Function.update_star {I : Type u} {f : IType v} [(i : I) → Star (f i)] [] (h : (i : I) → f i) (i : I) (a : f i) :
theorem Function.star_sum_elim {I : Type u_1} {J : Type u_2} {α : Type u_3} (x : Iα) (y : Jα) [Star α] :