File: Mathlib/Algebra/Star/Module.lean

full_name: star_natCast_smul
code: @[simp]
theorem star_natCast_smul [Semiring R] [AddCommMonoid M] [Module R M] [StarAddMonoid M] (n : ℕ)
    (x : M) : star ((n : R) • x) = (n : R) • star x 
goal: star (↑n • x) = ↑n • star x

full_name: star_intCast_smul
code: @[simp]
theorem star_intCast_smul [Ring R] [AddCommGroup M] [Module R M] [StarAddMonoid M] (n : ℤ)
    (x : M) : star ((n : R) • x) = (n : R) • star x 
goal: star (↑n • x) = ↑n • star x

full_name: star_inv_natCast_smul
code: @[simp]
theorem star_inv_natCast_smul [DivisionSemiring R] [AddCommMonoid M] [Module R M] [StarAddMonoid M]
    (n : ℕ) (x : M) : star ((n⁻¹ : R) • x) = (n⁻¹ : R) • star x 
goal: star ((↑n)⁻¹ • x) = (↑n)⁻¹ • star x

full_name: star_inv_intCast_smul
code: @[simp]
theorem star_inv_intCast_smul [DivisionRing R] [AddCommGroup M] [Module R M] [StarAddMonoid M]
    (n : ℤ) (x : M) : star ((n⁻¹ : R) • x) = (n⁻¹ : R) • star x 
goal: star ((↑n)⁻¹ • x) = (↑n)⁻¹ • star x

full_name: star_ratCast_smul
code: @[simp]
theorem star_ratCast_smul [DivisionRing R] [AddCommGroup M] [Module R M] [StarAddMonoid M] (n : ℚ)
    (x : M) : star ((n : R) • x) = (n : R) • star x 
goal: star (↑n • x) = ↑n • star x

full_name: star_rat_smul
code: @[simp]
theorem star_rat_smul {R : Type*} [AddCommGroup R] [StarAddMonoid R] [Module ℚ R] (x : R) (n : ℚ) :
    star (n • x) = n • star x 
goal: star (n • x) = n • star x

full_name: starLinearEquiv_symm_apply
code: /-- If `A` is a module over a commutative `R` with compatible actions,
then `star` is a semilinear equivalence. -/
@[simps]
def starLinearEquiv (R : Type*) {A : Type*} [CommSemiring R] [StarRing R] [AddCommMonoid A]
    [StarAddMonoid A] [Module R A] [StarModule R A] : A ≃ₗ⋆[R] A 
goal: ∀ (a : A), (starLinearEquiv R).symm a = starAddEquiv.invFun a

full_name: starLinearEquiv
code: /-- If `A` is a module over a commutative `R` with compatible actions,
then `star` is a semilinear equivalence. -/
@[simps]
def starLinearEquiv (R : Type*) {A : Type*} [CommSemiring R] [StarRing R] [AddCommMonoid A]
    [StarAddMonoid A] [Module R A] [StarModule R A] : A ≃ₗ⋆[R] A 
goal: A ≃ₗ⋆[R] A

full_name: starLinearEquiv_apply
code: /-- If `A` is a module over a commutative `R` with compatible actions,
then `star` is a semilinear equivalence. -/
@[simps]
def starLinearEquiv (R : Type*) {A : Type*} [CommSemiring R] [StarRing R] [AddCommMonoid A]
    [StarAddMonoid A] [Module R A] [StarModule R A] : A ≃ₗ⋆[R] A 
goal: ∀ (a : A), (starLinearEquiv R) a = star a

full_name: selfAdjoint.submodule
code: /-- The self-adjoint elements of a star module, as a submodule. -/
def selfAdjoint.submodule : Submodule R A 
goal: Submodule R A

full_name: skewAdjoint.submodule
code: /-- The skew-adjoint elements of a star module, as a submodule. -/
def skewAdjoint.submodule : Submodule R A 
goal: Submodule R A

full_name: selfAdjointPart
code: /-- The self-adjoint part of an element of a star module, as a linear map. -/
@[simps]
def selfAdjointPart : A →ₗ[R] selfAdjoint A 
goal: A →ₗ[R] ↥(selfAdjoint A)

full_name: selfAdjointPart_apply_coe
code: /-- The self-adjoint part of an element of a star module, as a linear map. -/
@[simps]
def selfAdjointPart : A →ₗ[R] selfAdjoint A 
goal: ↑((selfAdjointPart R) x) = ⅟2 • (x + star x)

full_name: skewAdjointPart_apply_coe
code: /-- The skew-adjoint part of an element of a star module, as a linear map. -/
@[simps]
def skewAdjointPart : A →ₗ[R] skewAdjoint A 
goal: ↑((skewAdjointPart R) x) = ⅟2 • (x - star x)

full_name: skewAdjointPart
code: /-- The skew-adjoint part of an element of a star module, as a linear map. -/
@[simps]
def skewAdjointPart : A →ₗ[R] skewAdjoint A 
goal: A →ₗ[R] ↥(skewAdjoint A)

full_name: StarModule.selfAdjointPart_add_skewAdjointPart
code: theorem StarModule.selfAdjointPart_add_skewAdjointPart (x : A) :
    (selfAdjointPart R x : A) + skewAdjointPart R x = x 
goal: ↑((selfAdjointPart R) x) + ↑((skewAdjointPart R) x) = x

full_name: IsSelfAdjoint.coe_selfAdjointPart_apply
code: theorem IsSelfAdjoint.coe_selfAdjointPart_apply {x : A} (hx : IsSelfAdjoint x) :
    (selfAdjointPart R x : A) = x 
goal: ↑((selfAdjointPart R) x) = x

full_name: IsSelfAdjoint.selfAdjointPart_apply
code: theorem IsSelfAdjoint.selfAdjointPart_apply {x : A} (hx : IsSelfAdjoint x) :
    selfAdjointPart R x = ⟨x, hx⟩ 
goal: (selfAdjointPart R) x = ⟨x, hx⟩

full_name: selfAdjointPart_comp_subtype_selfAdjoint
code: theorem selfAdjointPart_comp_subtype_selfAdjoint :
    (selfAdjointPart R).comp (selfAdjoint.submodule R A).subtype = .id 
goal: selfAdjointPart R ∘ₗ (selfAdjoint.submodule R A).subtype = LinearMap.id

full_name: IsSelfAdjoint.skewAdjointPart_apply
code: theorem IsSelfAdjoint.skewAdjointPart_apply {x : A} (hx : IsSelfAdjoint x) :
    skewAdjointPart R x = 0 
goal: (skewAdjointPart R) x = 0

full_name: skewAdjointPart_comp_subtype_selfAdjoint
code: theorem skewAdjointPart_comp_subtype_selfAdjoint :
    (skewAdjointPart R).comp (selfAdjoint.submodule R A).subtype = 0 
goal: skewAdjointPart R ∘ₗ (selfAdjoint.submodule R A).subtype = 0

full_name: selfAdjointPart_comp_subtype_skewAdjoint
code: theorem selfAdjointPart_comp_subtype_skewAdjoint :
    (selfAdjointPart R).comp (skewAdjoint.submodule R A).subtype = 0 
goal: selfAdjointPart R ∘ₗ (skewAdjoint.submodule R A).subtype = 0

full_name: skewAdjointPart_comp_subtype_skewAdjoint
code: theorem skewAdjointPart_comp_subtype_skewAdjoint :
    (skewAdjointPart R).comp (skewAdjoint.submodule R A).subtype = .id 
goal: skewAdjointPart R ∘ₗ (skewAdjoint.submodule R A).subtype = LinearMap.id

full_name: StarModule.decomposeProdAdjoint_apply
code: /-- The decomposition of elements of a star module into their self- and skew-adjoint parts,
as a linear equivalence. -/
-- Porting note: This attribute causes a `timeout at 'whnf'`.
@[simps!]
def StarModule.decomposeProdAdjoint : A ≃ₗ[R] selfAdjoint A × skewAdjoint A 
goal: (StarModule.decomposeProdAdjoint R A) i = ((selfAdjointPart R) i, (skewAdjointPart R) i)

full_name: StarModule.decomposeProdAdjoint
code: /-- The decomposition of elements of a star module into their self- and skew-adjoint parts,
as a linear equivalence. -/
-- Porting note: This attribute causes a `timeout at 'whnf'`.
@[simps!]
def StarModule.decomposeProdAdjoint : A ≃ₗ[R] selfAdjoint A × skewAdjoint A 
goal: A ≃ₗ[R] ↥(selfAdjoint A) × ↥(skewAdjoint A)

full_name: StarModule.decomposeProdAdjoint_symm_apply
code: /-- The decomposition of elements of a star module into their self- and skew-adjoint parts,
as a linear equivalence. -/
-- Porting note: This attribute causes a `timeout at 'whnf'`.
@[simps!]
def StarModule.decomposeProdAdjoint : A ≃ₗ[R] selfAdjoint A × skewAdjoint A 
goal: (StarModule.decomposeProdAdjoint R A).symm a =
  (selfAdjoint.submodule R A).subtype a.1 + (skewAdjoint.submodule R A).subtype a.2

full_name: algebraMap_star_comm
code: @[simp]
theorem algebraMap_star_comm (r : R) : algebraMap R A (star r) = star (algebraMap R A r) 
goal: (algebraMap R A) (star r) = star ((algebraMap R A) r)

full_name: IsSelfAdjoint.algebraMap
code: protected lemma IsSelfAdjoint.algebraMap {r : R} (hr : IsSelfAdjoint r) :
    IsSelfAdjoint (algebraMap R A r) 
goal: IsSelfAdjoint ((algebraMap R A) r)

full_name: isSelfAdjoint_algebraMap_iff
code: lemma isSelfAdjoint_algebraMap_iff {r : R} (h : Function.Injective (algebraMap R A)) :
    IsSelfAdjoint (algebraMap R A r) ↔ IsSelfAdjoint r 
goal: IsSelfAdjoint ((algebraMap R A) r) ↔ IsSelfAdjoint r