File: Mathlib/Algebra/Group/Action/Pi.lean

full_name: Pi.vadd'
code: @[to_additive]
instance smul' [∀ i, SMul (α i) (β i)] : SMul (∀ i, α i) (∀ i, β i) 
goal: VAdd ((i : ι) → α i) ((i : ι) → β i)

full_name: Pi.smul'
code: @[to_additive]
instance smul' [∀ i, SMul (α i) (β i)] : SMul (∀ i, α i) (∀ i, β i) 
goal: SMul ((i : ι) → α i) ((i : ι) → β i)

full_name: Pi.smul_apply'
code: @[to_additive (attr := simp)]
lemma smul_apply' [∀ i, SMul (α i) (β i)] (s : ∀ i, α i) (x : ∀ i, β i) : (s • x) i = s i • x i 
goal: (s • x) i = s i • x i

full_name: Pi.vadd_apply'
code: @[to_additive (attr := simp)]
lemma smul_apply' [∀ i, SMul (α i) (β i)] (s : ∀ i, α i) (x : ∀ i, β i) : (s • x) i = s i • x i 
goal: (s +ᵥ x) i = s i +ᵥ x i

full_name: Pi.vaddAssocClass
code: @[to_additive Pi.vaddAssocClass]
instance isScalarTower [SMul M N] [∀ i, SMul N (α i)] [∀ i, SMul M (α i)]
    [∀ i, IsScalarTower M N (α i)] : IsScalarTower M N (∀ i, α i) 
goal: VAddAssocClass M N ((i : ι) → α i)

full_name: Pi.isScalarTower
code: @[to_additive Pi.vaddAssocClass]
instance isScalarTower [SMul M N] [∀ i, SMul N (α i)] [∀ i, SMul M (α i)]
    [∀ i, IsScalarTower M N (α i)] : IsScalarTower M N (∀ i, α i) 
goal: IsScalarTower M N ((i : ι) → α i)

full_name: Pi.isScalarTower'
code: @[to_additive Pi.vaddAssocClass']
instance isScalarTower' [∀ i, SMul M (α i)] [∀ i, SMul (α i) (β i)] [∀ i, SMul M (β i)]
    [∀ i, IsScalarTower M (α i) (β i)] : IsScalarTower M (∀ i, α i) (∀ i, β i) 
goal: IsScalarTower M ((i : ι) → α i) ((i : ι) → β i)

full_name: Pi.vaddAssocClass'
code: @[to_additive Pi.vaddAssocClass']
instance isScalarTower' [∀ i, SMul M (α i)] [∀ i, SMul (α i) (β i)] [∀ i, SMul M (β i)]
    [∀ i, IsScalarTower M (α i) (β i)] : IsScalarTower M (∀ i, α i) (∀ i, β i) 
goal: VAddAssocClass M ((i : ι) → α i) ((i : ι) → β i)

full_name: Pi.vaddAssocClass''
code: @[to_additive Pi.vaddAssocClass'']
instance isScalarTower'' [∀ i, SMul (α i) (β i)] [∀ i, SMul (β i) (γ i)] [∀ i, SMul (α i) (γ i)]
    [∀ i, IsScalarTower (α i) (β i) (γ i)] : IsScalarTower (∀ i, α i) (∀ i, β i) (∀ i, γ i) 
goal: VAddAssocClass ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)

full_name: Pi.isScalarTower''
code: @[to_additive Pi.vaddAssocClass'']
instance isScalarTower'' [∀ i, SMul (α i) (β i)] [∀ i, SMul (β i) (γ i)] [∀ i, SMul (α i) (γ i)]
    [∀ i, IsScalarTower (α i) (β i) (γ i)] : IsScalarTower (∀ i, α i) (∀ i, β i) (∀ i, γ i) 
goal: IsScalarTower ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)

full_name: Pi.smulCommClass
code: @[to_additive]
instance smulCommClass [∀ i, SMul M (α i)] [∀ i, SMul N (α i)] [∀ i, SMulCommClass M N (α i)] :
    SMulCommClass M N (∀ i, α i) 
goal: SMulCommClass M N ((i : ι) → α i)

full_name: Pi.vaddCommClass
code: @[to_additive]
instance smulCommClass [∀ i, SMul M (α i)] [∀ i, SMul N (α i)] [∀ i, SMulCommClass M N (α i)] :
    SMulCommClass M N (∀ i, α i) 
goal: VAddCommClass M N ((i : ι) → α i)

full_name: Pi.vaddCommClass'
code: @[to_additive]
instance smulCommClass' [∀ i, SMul M (β i)] [∀ i, SMul (α i) (β i)]
    [∀ i, SMulCommClass M (α i) (β i)] : SMulCommClass M (∀ i, α i) (∀ i, β i) 
goal: VAddCommClass M ((i : ι) → α i) ((i : ι) → β i)

full_name: Pi.smulCommClass'
code: @[to_additive]
instance smulCommClass' [∀ i, SMul M (β i)] [∀ i, SMul (α i) (β i)]
    [∀ i, SMulCommClass M (α i) (β i)] : SMulCommClass M (∀ i, α i) (∀ i, β i) 
goal: SMulCommClass M ((i : ι) → α i) ((i : ι) → β i)

full_name: Pi.vaddCommClass''
code: @[to_additive]
instance smulCommClass'' [∀ i, SMul (β i) (γ i)] [∀ i, SMul (α i) (γ i)]
    [∀ i, SMulCommClass (α i) (β i) (γ i)] : SMulCommClass (∀ i, α i) (∀ i, β i) (∀ i, γ i) 
goal: VAddCommClass ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)

full_name: Pi.smulCommClass''
code: @[to_additive]
instance smulCommClass'' [∀ i, SMul (β i) (γ i)] [∀ i, SMul (α i) (γ i)]
    [∀ i, SMulCommClass (α i) (β i) (γ i)] : SMulCommClass (∀ i, α i) (∀ i, β i) (∀ i, γ i) 
goal: SMulCommClass ((i : ι) → α i) ((i : ι) → β i) ((i : ι) → γ i)

full_name: Pi.isCentralScalar
code: @[to_additive]
instance isCentralScalar [∀ i, SMul M (α i)] [∀ i, SMul Mᵐᵒᵖ (α i)] [∀ i, IsCentralScalar M (α i)] :
    IsCentralScalar M (∀ i, α i) 
goal: IsCentralScalar M ((i : ι) → α i)

full_name: Pi.isCentralVAdd
code: @[to_additive]
instance isCentralScalar [∀ i, SMul M (α i)] [∀ i, SMul Mᵐᵒᵖ (α i)] [∀ i, IsCentralScalar M (α i)] :
    IsCentralScalar M (∀ i, α i) 
goal: IsCentralVAdd M ((i : ι) → α i)

full_name: Pi.faithfulSMul_at
code: /-- 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. -/
@[to_additive
"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"]
lemma faithfulSMul_at [∀ i, SMul M (α i)] [∀ i, Nonempty (α i)] (i : ι) [FaithfulSMul M (α i)] :
    FaithfulSMul M (∀ i, α i) 
goal: FaithfulSMul M ((i : ι) → α i)

full_name: Pi.faithfulVAdd_at
code: /-- 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. -/
@[to_additive
"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"]
lemma faithfulSMul_at [∀ i, SMul M (α i)] [∀ i, Nonempty (α i)] (i : ι) [FaithfulSMul M (α i)] :
    FaithfulSMul M (∀ i, α i) 
goal: FaithfulVAdd M ((i : ι) → α i)

full_name: Pi.faithfulSMul
code: @[to_additive]
instance faithfulSMul [Nonempty ι] [∀ i, SMul M (α i)] [∀ i, Nonempty (α i)]
    [∀ i, FaithfulSMul M (α i)] : FaithfulSMul M (∀ i, α i) 
goal: FaithfulSMul M ((i : ι) → α i)

full_name: Pi.faithfulVAdd
code: @[to_additive]
instance faithfulSMul [Nonempty ι] [∀ i, SMul M (α i)] [∀ i, Nonempty (α i)]
    [∀ i, FaithfulSMul M (α i)] : FaithfulSMul M (∀ i, α i) 
goal: FaithfulVAdd M ((i : ι) → α i)

full_name: Pi.addAction
code: @[to_additive]
instance mulAction (M) {m : Monoid M} [∀ i, MulAction M (α i)] : @MulAction M (∀ i, α i) m 
goal: AddAction M ((i : ι) → α i)

full_name: Pi.mulAction
code: @[to_additive]
instance mulAction (M) {m : Monoid M} [∀ i, MulAction M (α i)] : @MulAction M (∀ i, α i) m 
goal: MulAction M ((i : ι) → α i)

full_name: Pi.mulAction'
code: @[to_additive]
instance mulAction' {m : ∀ i, Monoid (α i)} [∀ i, MulAction (α i) (β i)] :
    @MulAction (∀ i, α i) (∀ i, β i)
      (@Pi.monoid ι α m) 
goal: MulAction ((i : ι) → α i) ((i : ι) → β i)

full_name: Pi.addAction'
code: @[to_additive]
instance mulAction' {m : ∀ i, Monoid (α i)} [∀ i, MulAction (α i) (β i)] :
    @MulAction (∀ i, α i) (∀ i, β i)
      (@Pi.monoid ι α m) 
goal: AddAction ((i : ι) → α i) ((i : ι) → β i)

full_name: Function.hasSMul
code: /-- Non-dependent version of `Pi.smul`. Lean gets confused by the dependent instance if this
is not present. -/
@[to_additive
"Non-dependent version of `Pi.vadd`. Lean gets confused by the dependent instance
if this is not present."]
instance hasSMul {α : Type*} [SMul M α] : SMul M (ι → α) 
goal: SMul M (ι → α)

full_name: Function.hasVAdd
code: /-- Non-dependent version of `Pi.smul`. Lean gets confused by the dependent instance if this
is not present. -/
@[to_additive
"Non-dependent version of `Pi.vadd`. Lean gets confused by the dependent instance
if this is not present."]
instance hasSMul {α : Type*} [SMul M α] : SMul M (ι → α) 
goal: VAdd M (ι → α)

full_name: Function.vaddCommClass
code: /-- Non-dependent version of `Pi.smulCommClass`. Lean gets confused by the dependent instance if
this is not present. -/
@[to_additive
  "Non-dependent version of `Pi.vaddCommClass`. Lean gets confused by the dependent
  instance if this is not present."]
instance smulCommClass {α : Type*} [SMul M α] [SMul N α] [SMulCommClass M N α] :
    SMulCommClass M N (ι → α) 
goal: VAddCommClass M N (ι → α)

full_name: Function.smulCommClass
code: /-- Non-dependent version of `Pi.smulCommClass`. Lean gets confused by the dependent instance if
this is not present. -/
@[to_additive
  "Non-dependent version of `Pi.vaddCommClass`. Lean gets confused by the dependent
  instance if this is not present."]
instance smulCommClass {α : Type*} [SMul M α] [SMul N α] [SMulCommClass M N α] :
    SMulCommClass M N (ι → α) 
goal: SMulCommClass M N (ι → α)

full_name: Function.update_smul
code: @[to_additive]
lemma update_smul [∀ i, SMul M (α i)] [DecidableEq ι] (c : M) (f₁ : ∀ i, α i)
    (i : ι) (x₁ : α i) : update (c • f₁) i (c • x₁) = c • update f₁ i x₁ 
goal: Function.update (c • f₁) i (c • x₁) = c • Function.update f₁ i x₁

full_name: Function.update_vadd
code: @[to_additive]
lemma update_smul [∀ i, SMul M (α i)] [DecidableEq ι] (c : M) (f₁ : ∀ i, α i)
    (i : ι) (x₁ : α i) : update (c • f₁) i (c • x₁) = c • update f₁ i x₁ 
goal: Function.update (c +ᵥ f₁) i (c +ᵥ x₁) = c +ᵥ Function.update f₁ i x₁

full_name: Function.extend_vadd
code: @[to_additive]
lemma extend_smul {M α β : Type*} [SMul M β] (r : M) (f : ι → α) (g : ι → β) (e : α → β) :
    extend f (r • g) (r • e) = r • extend f g e 
goal: Function.extend f (r +ᵥ g) (r +ᵥ e) = r +ᵥ Function.extend f g e

full_name: Function.extend_smul
code: @[to_additive]
lemma extend_smul {M α β : Type*} [SMul M β] (r : M) (f : ι → α) (g : ι → β) (e : α → β) :
    extend f (r • g) (r • e) = r • extend f g e 
goal: Function.extend f (r • g) (r • e) = r • Function.extend f g e

full_name: Set.piecewise_smul
code: @[to_additive]
lemma piecewise_smul [∀ i, SMul M (α i)] (s : Set ι) [∀ i, Decidable (i ∈ s)]
    (c : M) (f₁ g₁ : ∀ i, α i) : s.piecewise (c • f₁) (c • g₁) = c • s.piecewise f₁ g₁ 
goal: s.piecewise (c • f₁) (c • g₁) = c • s.piecewise f₁ g₁

full_name: Set.piecewise_vadd
code: @[to_additive]
lemma piecewise_smul [∀ i, SMul M (α i)] (s : Set ι) [∀ i, Decidable (i ∈ s)]
    (c : M) (f₁ g₁ : ∀ i, α i) : s.piecewise (c • f₁) (c • g₁) = c • s.piecewise f₁ g₁ 
goal: s.piecewise (c +ᵥ f₁) (c +ᵥ g₁) = c +ᵥ s.piecewise f₁ g₁