Typeclasses for power-associative structures #
In this file we define power-associativity for algebraic structures with a multiplication operation.
The class is a Prop-valued mixin named NatPowAssoc.
Results #
- npow_adda defining property:- x ^ (k + n) = x ^ k * x ^ n
- npow_onea defining property:- x ^ 1 = x
- npow_assocstrictly positive powers of an element have associative multiplication.
- npow_comm- x ^ m * x ^ n = x ^ n * x ^ mfor strictly positive- mand- n.
- npow_mul- x ^ (m * n) = (x ^ m) ^ nfor strictly positive- mand- n.
- npow_eq_powmonoid exponentiation coincides with semigroup exponentiation.
Instances #
We also produce the following instances:
- NatPowAssocfor Monoids, Pi types and products.
TODO #
- to_additive?
A mixin for power-associative multiplication.
- Multiplication is power-associative. 
- Exponent zero is one. 
- Exponent one is identity. 
Instances
@[simp]
@[simp]
theorem
neg_npow_assoc
{R : Type u_2}
[NonAssocRing R]
[Pow R ℕ]
[NatPowAssoc R]
(a b : R)
(k : ℕ)
 :
instance
Pi.instNatPowAssoc
{ι : Type u_2}
{α : ι → Type u_3}
[(i : ι) → MulOneClass (α i)]
[(i : ι) → Pow (α i) ℕ]
[∀ (i : ι), NatPowAssoc (α i)]
 :
NatPowAssoc ((i : ι) → α i)
instance
Prod.instNatPowAssoc
{M : Type u_1}
{N : Type u_2}
[MulOneClass M]
[Pow M ℕ]
[NatPowAssoc M]
[MulOneClass N]
[Pow N ℕ]
[NatPowAssoc N]
 :
NatPowAssoc (M × N)
@[simp]
@[simp]