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 ^ nnpow_onea defining property:x ^ 1 = xnpow_assocstrictly positive powers of an element have associative multiplication.npow_commx ^ m * x ^ n = x ^ n * x ^ mfor strictly positivemandn.npow_mulx ^ (m * n) = (x ^ m) ^ nfor strictly positivemandn.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]