The convolutive star ring on matrices #
In this file, we provide the star algebra instance on WithConv (Matrix m n R) given by
the Hadamard product and intrinsic star (i.e., the star of each element in the matrix).
@[instance_reducible]
Equations
- instSemigroupWithConvMatrix = { toMul := instMulWithConvMatrix, mul_assoc := ⋯ }
@[instance_reducible]
instance instNonUnitalNonAssocSemiringWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalNonAssocSemiring α] :
NonUnitalNonAssocSemiring (WithConv (Matrix m n α))
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- instCommMagmaWithConvMatrix = { toMul := instMulWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
Equations
- instOneWithConvMatrix = { one := WithConv.toConv (Matrix.of 1) }
@[instance_reducible]
instance instMulOneClassWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [MulOneClass α] :
MulOneClass (WithConv (Matrix m n α))
Equations
- instMulOneClassWithConvMatrix = { toOne := instOneWithConvMatrix, toMul := instMulWithConvMatrix, one_mul := ⋯, mul_one := ⋯ }
@[instance_reducible]
Equations
- instMonoidWithConvMatrix = { toOne := instOneWithConvMatrix, toMul := instMulWithConvMatrix, mul_assoc := ⋯, one_mul := ⋯, mul_one := ⋯, npow := npowRecAuto, npow_zero := ⋯, npow_succ := ⋯ }
@[instance_reducible]
instance instCommMonoidWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [CommMonoid α] :
CommMonoid (WithConv (Matrix m n α))
Equations
- instCommMonoidWithConvMatrix = { toMonoid := instMonoidWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instNonAssocSemiringWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonAssocSemiring α] :
NonAssocSemiring (WithConv (Matrix m n α))
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance instNonUnitalSemiringWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalSemiring α] :
NonUnitalSemiring (WithConv (Matrix m n α))
Equations
- instNonUnitalSemiringWithConvMatrix = { toNonUnitalNonAssocSemiring := instNonUnitalNonAssocSemiringWithConvMatrix, mul_assoc := ⋯ }
@[instance_reducible]
instance instNonUnitalNonAssocCommSemiringWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalNonAssocCommSemiring α] :
NonUnitalNonAssocCommSemiring (WithConv (Matrix m n α))
Equations
- instNonUnitalNonAssocCommSemiringWithConvMatrix = { toNonUnitalNonAssocSemiring := instNonUnitalNonAssocSemiringWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instNonUnitalCommSemiringWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalCommSemiring α] :
NonUnitalCommSemiring (WithConv (Matrix m n α))
Equations
- instNonUnitalCommSemiringWithConvMatrix = { toNonUnitalSemiring := instNonUnitalSemiringWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instNonAssocCommSemiringWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonAssocCommSemiring α] :
NonAssocCommSemiring (WithConv (Matrix m n α))
Equations
- instNonAssocCommSemiringWithConvMatrix = { toNonAssocSemiring := instNonAssocSemiringWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instCommSemiringWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [CommSemiring α] :
CommSemiring (WithConv (Matrix m n α))
Equations
- instCommSemiringWithConvMatrix = { toSemiring := instSemiringWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instNonUnitalNonAssocRingWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalNonAssocRing α] :
NonUnitalNonAssocRing (WithConv (Matrix m n α))
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance instNonUnitalNonAssocCommRingWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalNonAssocCommRing α] :
NonUnitalNonAssocCommRing (WithConv (Matrix m n α))
Equations
- instNonUnitalNonAssocCommRingWithConvMatrix = { toNonUnitalNonAssocRing := instNonUnitalNonAssocRingWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instNonUnitalRingWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalRing α] :
NonUnitalRing (WithConv (Matrix m n α))
Equations
- instNonUnitalRingWithConvMatrix = { toNonUnitalNonAssocRing := instNonUnitalNonAssocRingWithConvMatrix, mul_assoc := ⋯ }
@[instance_reducible]
instance instNonUnitalCommRingWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalCommRing α] :
NonUnitalCommRing (WithConv (Matrix m n α))
Equations
- instNonUnitalCommRingWithConvMatrix = { toNonUnitalRing := instNonUnitalRingWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instNonAssocRingWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonAssocRing α] :
NonAssocRing (WithConv (Matrix m n α))
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance instNonAssocCommRingWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonAssocCommRing α] :
NonAssocCommRing (WithConv (Matrix m n α))
Equations
- instNonAssocCommRingWithConvMatrix = { toNonAssocRing := instNonAssocRingWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
Equations
- instCommRingWithConvMatrix = { toRing := instRingWithConvMatrix, mul_comm := ⋯ }
@[instance_reducible]
instance instInvolutiveStarWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [InvolutiveStar α] :
InvolutiveStar (WithConv (Matrix m n α))
Equations
- instInvolutiveStarWithConvMatrix = { toStar := instStarWithConvMatrix, star_involutive := ⋯ }
@[instance_reducible]
instance instStarAddMonoidWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [AddMonoid α] [StarAddMonoid α] :
StarAddMonoid (WithConv (Matrix m n α))
Equations
- instStarAddMonoidWithConvMatrix = { toInvolutiveStar := instInvolutiveStarWithConvMatrix, star_add := ⋯ }
@[instance_reducible]
instance instStarMulWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [Mul α] [StarMul α] :
Equations
- instStarMulWithConvMatrix = { toInvolutiveStar := instInvolutiveStarWithConvMatrix, star_mul := ⋯ }
@[instance_reducible]
instance instStarRingWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} [NonUnitalNonAssocSemiring α] [StarRing α] :
Equations
- instStarRingWithConvMatrix = { toStarMul := instStarMulWithConvMatrix, star_add := ⋯ }
instance instSMulCommClassWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} {β : Type u_4} [Monoid β] [MulAction β α] [Mul α] [SMulCommClass β α α] :
SMulCommClass β (WithConv (Matrix m n α)) (WithConv (Matrix m n α))
instance instIsScalarTowerWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} {β : Type u_4} [Monoid β] [MulAction β α] [Mul α] [IsScalarTower β α α] :
IsScalarTower β (WithConv (Matrix m n α)) (WithConv (Matrix m n α))
@[instance_reducible]
instance instAlgebraWithConvMatrix {m : Type u_1} {n : Type u_2} {α : Type u_3} {β : Type u_4} [CommSemiring β] [Semiring α] [Algebra β α] :
Equations
theorem Matrix.WithConv.IsIdempotentElem.isSelfAdjoint {m : Type u_1} {n : Type u_2} {α : Type u_3} [Semiring α] [IsLeftCancelMulZero α] [StarRing α] {f : WithConv (Matrix m n α)} (hf : IsIdempotentElem f) :
All matrices are intrinsically self-adjoint if they are convolutively idempotent.
def WithConv.matrixToLin'StarAlgEquiv (m : Type u_1) (n : Type u_2) (α : Type u_3) [CommSemiring α] [StarRing α] [Fintype n] [DecidableEq n] :
WithConv (Matrix m n α) is ⋆-algebraically equivalent to WithConv ((n → α) →ₗ m → α).
In particular, the convolutive product on linear maps corresponds to the Hadamard product on matrices and the intrinsic star on linear maps corresponds to taking the star of each element in the matrix.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem WithConv.matrixToLin'StarAlgEquiv_apply {m : Type u_1} {n : Type u_2} {α : Type u_3} [CommSemiring α] [StarRing α] [Fintype n] [DecidableEq n] (x : WithConv (Matrix m n α)) :
@[simp]
theorem WithConv.symm_matrixToLin'StarAlgEquiv_apply {m : Type u_1} {n : Type u_2} {α : Type u_3} [CommSemiring α] [StarRing α] [Fintype n] [DecidableEq n] (x : WithConv ((n → α) →ₗ[α] m → α)) :
theorem Matrix.toLin'_hadamard {m : Type u_1} {n : Type u_2} {α : Type u_3} [CommSemiring α] [Fintype n] [DecidableEq n] (x y : Matrix m n α) :
theorem Matrix.isSymm_iff_intrinsicStar_toLin' {n : Type u_2} {α : Type u_3} [CommSemiring α] [StarRing α] [Fintype n] [DecidableEq n] {A : Matrix n n α} :