# mathlibdocumentation

group_theory.group_action.units

# Group actions on and by units M#

This file provides the action of a unit on a type α, has_scalar (units M) α, in the presence of has_scalar M α, with the obvious definition stated in units.smul_def. This definition preserves mul_action and distrib_mul_action structures too.

Additionally, a mul_action G M for some group G satisfying some additional properties admits a mul_action G (units M) structure, again with the obvious definition stated in units.coe_smul. These instances use a primed name.

The results are repeated for add_units and has_vadd where relevant.

### Action of the units of M on a type α#

@[instance]
def units.has_scalar {M : Type u_3} {α : Type u_5} [monoid M] [ α] :
Equations
@[instance]
def add_units.has_scalar {M : Type u_3} {α : Type u_5} [add_monoid M] [ α] :
α
m +ᵥ a = m +ᵥ a
theorem units.smul_def {M : Type u_3} {α : Type u_5} [monoid M] [ α] (m : units M) (a : α) :
m a = m a
theorem is_unit.inv_smul {α : Type u_5} [monoid α] {a : α} (h : is_unit a) :
(h.unit)⁻¹ a = 1
@[instance]
def add_units.has_faithful_scalar {M : Type u_3} {α : Type u_5} [add_monoid M] [ α] [ α] :
@[instance]
def units.has_faithful_scalar {M : Type u_3} {α : Type u_5} [monoid M] [ α] [ α] :
α
@[instance]
α
@[instance]
def units.mul_action {M : Type u_3} {α : Type u_5} [monoid M] [ α] :
Equations
@[instance]
def units.distrib_mul_action {M : Type u_3} {α : Type u_5} [monoid M] [add_monoid α] [ α] :
α
Equations
@[instance]
def units.mul_distrib_mul_action {M : Type u_3} {α : Type u_5} [monoid M] [monoid α]  :
Equations
@[instance]
def units.smul_comm_class_left {M : Type u_3} {N : Type u_4} {α : Type u_5} [monoid M] [ α] [ α] [ α] :
N α
@[instance]
def units.smul_comm_class_right {M : Type u_3} {N : Type u_4} {α : Type u_5} [monoid N] [ α] [ α] [ α] :
(units N) α
@[instance]
def units.is_scalar_tower {M : Type u_3} {N : Type u_4} {α : Type u_5} [monoid M] [ N] [ α] [ α] [ α] :
N α

### Action of a group G on units of M#

@[instance]
def units.mul_action' {G : Type u_1} {M : Type u_3} [group G] [monoid M] [ M] [ M] [ M] :
(units M)

If an action G associates and commutes with multiplication on M, then it lifts to an action on units M. Notably, this provides mul_action (units M) (units N) under suitable conditions.

Equations
@[simp]
theorem units.coe_smul {G : Type u_1} {M : Type u_3} [group G] [monoid M] [ M] [ M] [ M] (g : G) (m : units M) :
(g m) = g m
@[simp]
theorem units.smul_inv {G : Type u_1} {M : Type u_3} [group G] [monoid M] [ M] [ M] [ M] (g : G) (m : units M) :

Note that this lemma exists more generally as the global smul_inv

@[instance]
def units.smul_comm_class' {G : Type u_1} {H : Type u_2} {M : Type u_3} [group G] [group H] [monoid M] [ M] [ M] [ M] [ M] [ M] [ M] [ M] :
(units M)

Transfer smul_comm_class G H M to smul_comm_class G H (units M)

@[instance]
def units.is_scalar_tower' {G : Type u_1} {H : Type u_2} {M : Type u_3} [ H] [group G] [group H] [monoid M] [ M] [ M] [ M] [ M] [ M] [ M] [ M] :
(units M)

Transfer is_scalar_tower G H M to is_scalar_tower G H (units M)

@[instance]
def units.is_scalar_tower'_left {G : Type u_1} {M : Type u_3} {α : Type u_5} [group G] [monoid M] [ M] [ α] [ α] [ M] [ M] [ α] :
(units M) α

Transfer is_scalar_tower G M α to is_scalar_tower G (units M) α