# Option instances for additive and multiplicative actions #

This file defines instances for additive and multiplicative actions on Option type. Scalar multiplication is defined by a • some b = some (a • b) and a • none = none.

• GroupTheory.GroupAction.Pi
• GroupTheory.GroupAction.Prod
• GroupTheory.GroupAction.Sigma
• GroupTheory.GroupAction.Sum
instance Option.VAdd {M : Type u_1} {α : Type u_3} [VAdd M α] :
Equations
• Option.VAdd = { vadd := fun (a : M) => Option.map fun (x : α) => a +ᵥ x }
instance Option.instSMul {M : Type u_1} {α : Type u_3} [SMul M α] :
SMul M ()
Equations
• Option.instSMul = { smul := fun (a : M) => Option.map fun (x : α) => a x }
theorem Option.vadd_def {M : Type u_1} {α : Type u_3} [VAdd M α] (a : M) (x : ) :
a +ᵥ x = Option.map (fun (x : α) => a +ᵥ x) x
theorem Option.smul_def {M : Type u_1} {α : Type u_3} [SMul M α] (a : M) (x : ) :
a x = Option.map (fun (x : α) => a x) x
@[simp]
theorem Option.vadd_none {M : Type u_1} {α : Type u_3} [VAdd M α] (a : M) :
a +ᵥ none = none
@[simp]
theorem Option.smul_none {M : Type u_1} {α : Type u_3} [SMul M α] (a : M) :
a none = none
@[simp]
theorem Option.vadd_some {M : Type u_1} {α : Type u_3} [VAdd M α] (a : M) (b : α) :
a +ᵥ some b = some (a +ᵥ b)
@[simp]
theorem Option.smul_some {M : Type u_1} {α : Type u_3} [SMul M α] (a : M) (b : α) :
a some b = some (a b)
instance Option.instIsScalarTowerOfVAdd {M : Type u_1} {N : Type u_2} {α : Type u_3} [VAdd M α] [VAdd N α] [VAdd M N] [] :
Equations
• =
instance Option.instIsScalarTowerOfSMul {M : Type u_1} {N : Type u_2} {α : Type u_3} [SMul M α] [SMul N α] [SMul M N] [] :
Equations
• =
instance Option.instVAddCommClass {M : Type u_1} {N : Type u_2} {α : Type u_3} [VAdd M α] [VAdd N α] [] :
Equations
• =
instance Option.instSMulCommClass {M : Type u_1} {N : Type u_2} {α : Type u_3} [SMul M α] [SMul N α] [] :
Equations
• =
instance Option.instIsCentralVAdd {M : Type u_1} {α : Type u_3} [VAdd M α] [VAdd Mᵃᵒᵖ α] [] :
Equations
• =
instance Option.instIsCentralScalar {M : Type u_1} {α : Type u_3} [SMul M α] [SMul Mᵐᵒᵖ α] [] :
Equations
• =
instance Option.instFaithfulVAdd {M : Type u_1} {α : Type u_3} [VAdd M α] [] :
Equations
• =
instance Option.instFaithfulSMul {M : Type u_1} {α : Type u_3} [SMul M α] [] :
Equations
• =
instance Option.instMulAction {M : Type u_1} {α : Type u_3} [] [] :
Equations
• Option.instMulAction =