Power operations on monoids and groups #
The power operation on monoids and groups.
We separate this from group, because it depends on ℕ
,
which in turn depends on other parts of algebra.
This module contains lemmas about a ^ n
and n • a
, where n : ℕ
or n : ℤ
.
Further lemmas can be found in Algebra.GroupPower.Lemmas
.
The analogous results for groups with zero can be found in Algebra.GroupWithZero.Power
.
Notation #
a ^ n
is used as notation forPow.pow a n
; in this filen : ℕ
orn : ℤ
.n • a
is used as notation forSMul.smul n a
; in this filen : ℕ
orn : ℤ
.
Implementation details #
We adopt the convention that 0^0 = 1
.
Commutativity #
First we prove some facts about SemiconjBy
and Commute
. They do not require any theory about
pow
and/or nsmul
and will be useful later in this file.
Monoids #
theorem
eq_zero_or_one_of_sq_eq_self
{M : Type u}
[CancelMonoidWithZero M]
{x : M}
(hx : x ^ 2 = x)
:
Commutative (additive) monoid #
abbrev
zsmul_zero.match_1
(motive : ℤ → Prop)
:
∀ (x : ℤ), (∀ (n : ℕ), motive (Int.ofNat n)) → (∀ (n : ℕ), motive (Int.negSucc n)) → motive x
Equations
- (_ : motive x) = (_ : motive x)
Instances For
@[simp]
theorem
AddCommute.zsmul_add
{α : Type u_1}
[SubtractionMonoid α]
{a : α}
{b : α}
(h : AddCommute a b)
(i : ℤ)
:
@[simp]
theorem
AddSemiconjBy.zsmul_right
{G : Type w}
[AddGroup G]
{a : G}
{x : G}
{y : G}
(h : AddSemiconjBy a x y)
(m : ℤ)
:
AddSemiconjBy a (m • x) (m • y)
@[simp]
theorem
SemiconjBy.zpow_right
{G : Type w}
[Group G]
{a : G}
{x : G}
{y : G}
(h : SemiconjBy a x y)
(m : ℤ)
:
SemiconjBy a (x ^ m) (y ^ m)
@[simp]
theorem
AddCommute.zsmul_right
{G : Type w}
[AddGroup G]
{a : G}
{b : G}
(h : AddCommute a b)
(m : ℤ)
:
AddCommute a (m • b)
@[simp]
theorem
AddCommute.zsmul_left
{G : Type w}
[AddGroup G]
{a : G}
{b : G}
(h : AddCommute a b)
(m : ℤ)
:
AddCommute (m • a) b
theorem
AddCommute.zsmul_zsmul
{G : Type w}
[AddGroup G]
{a : G}
{b : G}
(h : AddCommute a b)
(m : ℤ)
(n : ℤ)
:
AddCommute (m • a) (n • b)
theorem
AddCommute.zsmul_zsmul_self
{G : Type w}
[AddGroup G]
(a : G)
(m : ℤ)
(n : ℤ)
:
AddCommute (m • a) (n • a)