Pi instances for multiplicative actions #
This file defines instances for MulAction and related structures on Pi types.
See also #
instance Pi.isScalarTower {ι : Type u_1} {M : Type u_2} {N : Type u_3} {α : ι → Type u_4} [SMul M N] [(i : ι) → SMul N (α i)] [(i : ι) → SMul M (α i)] [∀ (i : ι), IsScalarTower M N (α i)] :
IsScalarTower M N ((i : ι) → α i)
instance Pi.vaddAssocClass {ι : Type u_1} {M : Type u_2} {N : Type u_3} {α : ι → Type u_4} [VAdd M N] [(i : ι) → VAdd N (α i)] [(i : ι) → VAdd M (α i)] [∀ (i : ι), VAddAssocClass M N (α i)] :
VAddAssocClass M N ((i : ι) → α i)
instance Pi.isScalarTower' {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} {β : ι → Type u_5} [(i : ι) → SMul M (α i)] [(i : ι) → SMul (α i) (β i)] [(i : ι) → SMul M (β i)] [∀ (i : ι), IsScalarTower M (α i) (β i)] :
IsScalarTower M ((i : ι) → α i) ((i : ι) → β i)
instance Pi.vaddAssocClass' {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} {β : ι → Type u_5} [(i : ι) → VAdd M (α i)] [(i : ι) → VAdd (α i) (β i)] [(i : ι) → VAdd M (β i)] [∀ (i : ι), VAddAssocClass M (α i) (β i)] :
VAddAssocClass M ((i : ι) → α i) ((i : ι) → β i)
instance Pi.isScalarTower'' {ι : Type u_1} {α : ι → Type u_4} {β : ι → Type u_5} {γ : ι → Type u_6} [(i : ι) → SMul (α i) (β i)] [(i : ι) → SMul (β i) (γ i)] [(i : ι) → SMul (α i) (γ i)] [∀ (i : ι), IsScalarTower (α i) (β i) (γ i)] :
IsScalarTower ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)
instance Pi.vaddAssocClass'' {ι : Type u_1} {α : ι → Type u_4} {β : ι → Type u_5} {γ : ι → Type u_6} [(i : ι) → VAdd (α i) (β i)] [(i : ι) → VAdd (β i) (γ i)] [(i : ι) → VAdd (α i) (γ i)] [∀ (i : ι), VAddAssocClass (α i) (β i) (γ i)] :
VAddAssocClass ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)
instance Pi.smulCommClass {ι : Type u_1} {M : Type u_2} {N : Type u_3} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] [(i : ι) → SMul N (α i)] [∀ (i : ι), SMulCommClass M N (α i)] :
SMulCommClass M N ((i : ι) → α i)
instance Pi.vaddCommClass {ι : Type u_1} {M : Type u_2} {N : Type u_3} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] [(i : ι) → VAdd N (α i)] [∀ (i : ι), VAddCommClass M N (α i)] :
VAddCommClass M N ((i : ι) → α i)
instance Pi.smulCommClass' {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} {β : ι → Type u_5} [(i : ι) → SMul M (β i)] [(i : ι) → SMul (α i) (β i)] [∀ (i : ι), SMulCommClass M (α i) (β i)] :
SMulCommClass M ((i : ι) → α i) ((i : ι) → β i)
instance Pi.vaddCommClass' {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} {β : ι → Type u_5} [(i : ι) → VAdd M (β i)] [(i : ι) → VAdd (α i) (β i)] [∀ (i : ι), VAddCommClass M (α i) (β i)] :
VAddCommClass M ((i : ι) → α i) ((i : ι) → β i)
instance Pi.smulCommClass'' {ι : Type u_1} {α : ι → Type u_4} {β : ι → Type u_5} {γ : ι → Type u_6} [(i : ι) → SMul (β i) (γ i)] [(i : ι) → SMul (α i) (γ i)] [∀ (i : ι), SMulCommClass (α i) (β i) (γ i)] :
SMulCommClass ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)
instance Pi.vaddCommClass'' {ι : Type u_1} {α : ι → Type u_4} {β : ι → Type u_5} {γ : ι → Type u_6} [(i : ι) → VAdd (β i) (γ i)] [(i : ι) → VAdd (α i) (γ i)] [∀ (i : ι), VAddCommClass (α i) (β i) (γ i)] :
VAddCommClass ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)
instance Pi.isCentralScalar {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] [(i : ι) → SMul Mᵐᵒᵖ (α i)] [∀ (i : ι), IsCentralScalar M (α i)] :
IsCentralScalar M ((i : ι) → α i)
instance Pi.isCentralVAdd {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] [(i : ι) → VAdd Mᵃᵒᵖ (α i)] [∀ (i : ι), IsCentralVAdd M (α i)] :
IsCentralVAdd M ((i : ι) → α i)
theorem Pi.faithfulSMul_at {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] [∀ (i : ι), Nonempty (α i)] (i : ι) [FaithfulSMul M (α i)] :
FaithfulSMul M ((i : ι) → α i)
If α i has a faithful scalar action for a given i, then so does Π i, α i. This is
not an instance as i cannot be inferred.
theorem Pi.faithfulVAdd_at {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] [∀ (i : ι), Nonempty (α i)] (i : ι) [FaithfulVAdd M (α i)] :
FaithfulVAdd M ((i : ι) → α i)
If α i has a faithful additive action for a given i, then
so does Π i, α i. This is not an instance as i cannot be inferred
instance Pi.faithfulSMul {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [Nonempty ι] [(i : ι) → SMul M (α i)] [∀ (i : ι), Nonempty (α i)] [∀ (i : ι), FaithfulSMul M (α i)] :
FaithfulSMul M ((i : ι) → α i)
instance Pi.faithfulVAdd {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [Nonempty ι] [(i : ι) → VAdd M (α i)] [∀ (i : ι), Nonempty (α i)] [∀ (i : ι), FaithfulVAdd M (α i)] :
FaithfulVAdd M ((i : ι) → α i)
@[instance_reducible]
instance Pi.mulAction {ι : Type u_1} {α : ι → Type u_4} (M : Type u_7) {m : Monoid M} [(i : ι) → MulAction M (α i)] :
MulAction M ((i : ι) → α i)
Equations
- Pi.mulAction M = { toSMul := Pi.instSMul, mul_smul := ⋯, one_smul := ⋯ }
@[instance_reducible]
instance Pi.addAction {ι : Type u_1} {α : ι → Type u_4} (M : Type u_7) {m : AddMonoid M} [(i : ι) → AddAction M (α i)] :
AddAction M ((i : ι) → α i)
Equations
- Pi.addAction M = { toVAdd := Pi.instVAdd, add_vadd := ⋯, zero_vadd := ⋯ }
@[instance_reducible]
Non-dependent version of Pi.smul. Lean gets confused by the dependent instance if this
is not present.
Equations
@[instance_reducible]
Non-dependent version of Pi.vadd. Lean gets confused by the dependent instance
if this is not present.
Equations
instance Function.smulCommClass {ι : Type u_1} {M : Type u_2} {N : Type u_3} {α : Type u_7} [SMul M α] [SMul N α] [SMulCommClass M N α] :
SMulCommClass M N (ι → α)
Non-dependent version of Pi.smulCommClass. Lean gets confused by the dependent instance if
this is not present.
instance Function.vaddCommClass {ι : Type u_1} {M : Type u_2} {N : Type u_3} {α : Type u_7} [VAdd M α] [VAdd N α] [VAddCommClass M N α] :
VAddCommClass M N (ι → α)
Non-dependent version of Pi.vaddCommClass. Lean gets confused by the dependent
instance if this is not present.