Associated elements. #
In this file we define an equivalence relation Associated
saying that two elements of a monoid differ by a multiplication by a unit.
Then we show that the quotient type Associates is a monoid
and prove basic properties of this quotient.
Two elements of a Monoid are Associated if one of them is another one
multiplied by a unit on the right.
Equations
Instances For
@[simp]
theorem
Associated.trans
{M : Type u_1}
[Monoid M]
{x y z : M}
:
Associated x y โ Associated y z โ Associated x z
The setoid of the relation x ~แตค y iff there is a unit u such that x * u = y
Equations
Instances For
theorem
Associated.map
{M : Type u_2}
{N : Type u_3}
[Monoid M]
[Monoid N]
{F : Type u_4}
[FunLike F M N]
[MonoidHomClass F M N]
(f : F)
{x y : M}
(ha : Associated x y)
:
Associated (f x) (f y)
@[simp]
@[simp]
theorem
associated_one_of_mul_eq_one
{M : Type u_1}
[CommMonoid M]
{a : M}
(b : M)
(hab : a * b = 1)
:
Associated a 1
theorem
associated_one_of_associated_mul_one
{M : Type u_1}
[CommMonoid M]
{a b : M}
:
Associated (a * b) 1 โ Associated a 1
theorem
associated_mul_unit_left
{N : Type u_2}
[Monoid N]
(a u : N)
(hu : IsUnit u)
:
Associated (a * u) a
theorem
associated_unit_mul_left
{N : Type u_2}
[CommMonoid N]
(a u : N)
(hu : IsUnit u)
:
Associated (u * a) a
theorem
associated_mul_unit_right
{N : Type u_2}
[Monoid N]
(a u : N)
(hu : IsUnit u)
:
Associated a (a * u)
theorem
associated_unit_mul_right
{N : Type u_2}
[CommMonoid N]
(a u : N)
(hu : IsUnit u)
:
Associated a (u * a)
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Associated.mul_left
{M : Type u_1}
[Monoid M]
(a : M)
{b c : M}
(h : Associated b c)
:
Associated (a * b) (a * c)
theorem
Associated.mul_right
{M : Type u_1}
[CommMonoid M]
{a b : M}
(h : Associated a b)
(c : M)
:
Associated (a * c) (b * c)
theorem
Associated.mul_mul
{M : Type u_1}
[CommMonoid M]
{aโ aโ bโ bโ : M}
(hโ : Associated aโ bโ)
(hโ : Associated aโ bโ)
:
Associated (aโ * aโ) (bโ * bโ)
theorem
Associated.pow_pow
{M : Type u_1}
[CommMonoid M]
{a b : M}
{n : โ}
(h : Associated a b)
:
Associated (a ^ n) (b ^ n)
theorem
associated_of_dvd_dvd
{M : Type u_1}
[MonoidWithZero M]
[IsLeftCancelMulZero M]
{a b : M}
(hab : a โฃ b)
(hba : b โฃ a)
:
Associated a b
theorem
dvd_dvd_iff_associated
{M : Type u_1}
[MonoidWithZero M]
[IsLeftCancelMulZero M]
{a b : M}
:
instance
instDecidableRelAssociatedOfIsLeftCancelMulZeroOfDvd
{M : Type u_1}
[MonoidWithZero M]
[IsLeftCancelMulZero M]
[DecidableRel fun (x1 x2 : M) => x1 โฃ x2]
:
DecidableRel fun (x1 x2 : M) => Associated x1 x2
Equations
theorem
Associated.prime
{M : Type u_1}
[CommMonoidWithZero M]
{p q : M}
(h : Associated p q)
(hp : Prime p)
:
Prime q
@[simp]
theorem
Irreducible.associated_of_dvd
{M : Type u_1}
[Monoid M]
{p q : M}
(p_irr : Irreducible p)
(q_irr : Irreducible q)
(dvd : p โฃ q)
:
Associated p q
theorem
Irreducible.dvd_irreducible_iff_associated
{M : Type u_1}
[Monoid M]
{p q : M}
(pp : Irreducible p)
(qp : Irreducible q)
:
theorem
Prime.associated_of_dvd
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{p q : M}
(p_prime : Prime p)
(q_prime : Prime q)
(dvd : p โฃ q)
:
Associated p q
theorem
Prime.dvd_prime_iff_associated
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{p q : M}
(pp : Prime p)
(qp : Prime q)
:
theorem
Irreducible.isUnit_iff_not_associated_of_dvd
{M : Type u_1}
[Monoid M]
{x y : M}
(hx : Irreducible x)
(hy : y โฃ x)
:
theorem
Associated.irreducible
{M : Type u_1}
[Monoid M]
{p q : M}
(h : Associated p q)
(hp : Irreducible p)
:
theorem
Associated.of_mul_left
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{a b c d : M}
(h : Associated (a * b) (c * d))
(hโ : Associated a c)
(ha : a โ 0)
:
Associated b d
theorem
Associated.of_mul_right
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{a b c d : M}
:
Associated (a * b) (c * d) โ Associated b d โ b โ 0 โ Associated a c
theorem
Associated.of_pow_associated_of_prime
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{pโ pโ : M}
{kโ kโ : โ}
(hpโ : Prime pโ)
(hpโ : Prime pโ)
(hkโ : 0 < kโ)
(h : Associated (pโ ^ kโ) (pโ ^ kโ))
:
Associated pโ pโ
theorem
Associated.of_pow_associated_of_prime'
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{pโ pโ : M}
{kโ kโ : โ}
(hpโ : Prime pโ)
(hpโ : Prime pโ)
(hkโ : 0 < kโ)
(h : Associated (pโ ^ kโ) (pโ ^ kโ))
:
Associated pโ pโ
theorem
Irreducible.isRelPrime_iff_not_dvd
{M : Type u_1}
[Monoid M]
{p n : M}
(hp : Irreducible p)
:
See also Irreducible.coprime_iff_not_dvd.
theorem
prime_dvd_prime_iff_eq
{M : Type u_2}
[CommMonoidWithZero M]
[IsCancelMulZero M]
[Subsingleton Mหฃ]
{p q : M}
(pp : Prime p)
(qp : Prime q)
:
theorem
eq_of_prime_pow_eq
{R : Type u_2}
[CommMonoidWithZero R]
[IsCancelMulZero R]
[Subsingleton Rหฃ]
{pโ pโ : R}
{kโ kโ : โ}
(hpโ : Prime pโ)
(hpโ : Prime pโ)
(hkโ : 0 < kโ)
(h : pโ ^ kโ = pโ ^ kโ)
:
theorem
eq_of_prime_pow_eq'
{R : Type u_2}
[CommMonoidWithZero R]
[IsCancelMulZero R]
[Subsingleton Rหฃ]
{pโ pโ : R}
{kโ kโ : โ}
(hpโ : Prime pโ)
(hpโ : Prime pโ)
(hkโ : 0 < kโ)
(h : pโ ^ kโ = pโ ^ kโ)
:
@[reducible, inline]
The quotient of a monoid by the Associated relation. Two elements x and y
are associated iff there is a unit u such that x * u = y. There is a natural
monoid structure on Associates M.
Equations
Instances For
@[reducible, inline]
The canonical quotient map from a monoid M into the Associates of M
Equations
Instances For
Equations
@[simp]
theorem
Associates.mk_quot_out
{M : Type u_1}
[Monoid M]
(a : M)
:
Associated (Quot.out (Associates.mk a)) a
Equations
@[simp]
@[simp]
Equations
theorem
Associates.exists_rep
{M : Type u_1}
[Monoid M]
(a : Associates M)
:
โ (a0 : M), Associates.mk a0 = a
instance
Associates.instUniqueOfSubsingleton
{M : Type u_1}
[Monoid M]
[Subsingleton M]
:
Unique (Associates M)
Equations
Equations
Equations
Equations
@[simp]
theorem
Associates.associated_map_mk
{M : Type u_1}
[CommMonoid M]
{f : Associates M โ* M}
(hinv : Function.RightInverse (โf) Associates.mk)
(a : M)
:
Associated a (f (Associates.mk a))
Equations
@[simp]
theorem
Associates.mul_mono
{M : Type u_1}
[CommMonoid M]
{a b c d : Associates M}
(hโ : a โค b)
(hโ : c โค d)
:
Equations
@[simp]
theorem
Associates.dvd_of_mk_le_mk
{M : Type u_1}
[CommMonoid M]
{a b : M}
:
Associates.mk a โค Associates.mk b โ a โฃ b
theorem
Associates.mk_le_mk_of_dvd
{M : Type u_1}
[CommMonoid M]
{a b : M}
:
a โฃ b โ Associates.mk a โค Associates.mk b
@[simp]
@[simp]
@[simp]
Equations
Equations
@[simp]
@[simp]
@[simp]
instance
Associates.instNontrivial
{M : Type u_1}
[MonoidWithZero M]
[Nontrivial M]
:
Nontrivial (Associates M)
theorem
Associates.exists_non_zero_rep
{M : Type u_1}
[MonoidWithZero M]
{a : Associates M}
:
a โ 0 โ โ (a0 : M), a0 โ 0 โง Associates.mk a0 = a
Equations
Equations
@[simp]
Equations
instance
Associates.instDecidableRelDvd
{M : Type u_1}
[CommMonoidWithZero M]
[DecidableRel fun (x1 x2 : M) => x1 โฃ x2]
:
DecidableRel fun (x1 x2 : Associates M) => x1 โฃ x2
Equations
theorem
Associates.Prime.le_or_le
{M : Type u_1}
[CommMonoidWithZero M]
{p : Associates M}
(hp : Prime p)
{a b : Associates M}
(h : p โค a * b)
:
@[simp]
@[simp]
@[simp]
theorem
Associates.dvdNotUnit_of_lt
{M : Type u_1}
[CommMonoidWithZero M]
{a b : Associates M}
(hlt : a < b)
:
DvdNotUnit a b
Equations
theorem
associates_irreducible_iff_prime
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
[DecompositionMonoid M]
{p : Associates M}
:
theorem
Associates.le_of_mul_le_mul_left
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
(a b c : Associates M)
(ha : a โ 0)
:
theorem
Associates.one_or_eq_of_le_of_prime
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{p m : Associates M}
(hp : Prime p)
(hle : m โค p)
:
theorem
Associates.dvdNotUnit_iff_lt
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{a b : Associates M}
:
theorem
Associates.le_one_iff
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{p : Associates M}
:
theorem
dvdNotUnit_of_dvdNotUnit_associated
{M : Type u_1}
[CommMonoidWithZero M]
[Nontrivial M]
{p q r : M}
(h : DvdNotUnit p q)
(h' : Associated q r)
:
DvdNotUnit p r
theorem
isUnit_of_associated_mul
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{p b : M}
(h : Associated (p * b) p)
(hp : p โ 0)
:
IsUnit b
theorem
DvdNotUnit.not_associated
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{p q : M}
(h : DvdNotUnit p q)
:
ยฌAssociated p q
theorem
dvd_prime_pow
{M : Type u_1}
[CommMonoidWithZero M]
[IsCancelMulZero M]
{p q : M}
(hp : Prime p)
(n : โ)
: