Quotient Modules

Let R be a ring, A an R-Module and cm a comodule of A. We will prove that A / ~cm is a module, called QuotMod.

QuotMod is a setoid

To achieve this we define a new apartness on the elements of A.

Section QuotMod.

Variable R : CRing.
Variable A :RModule R.
Variable cm: comod A.

Definition ap_quotmod (x y:A) := cm(x[-]y).

Lemma ap_quotmod_irreflexive : irreflexive ap_quotmod.


Lemma ap_quotmod_symmetric : Csymmetric ap_quotmod.

Lemma ap_quotmod_cotransitive : cotransitive ap_quotmod.

We take `not apart' as the new equality.

Definition eq_quotmod (x y:A) := ~ (cm(x[-]y)).

Lemma eq_quotmod_wd : forall (x y:A), x[=]y -> (eq_quotmod x y).

Lemma ap_quotmod_tight : tight_apart eq_quotmod ap_quotmod.

Definition ap_quotmod_is_apartness :=
Build_is_CSetoid A eq_quotmod ap_quotmod
ap_quotmod_irreflexive
ap_quotmod_symmetric
ap_quotmod_cotransitive
ap_quotmod_tight.

Definition quotmod_as_CSetoid := Build_CSetoid _ _ _
ap_quotmod_is_apartness.

QuotMod is a semigroup

We use + as the operation for this.

QuotMod ia a monoid

0:A will work as unit.


QuotMod is a group

The same function still works as inverse (i.e. minus).

QuotMod is an Abelian group

QuotMod is an R-module

rm_mu A does the job.

Lemma dmmu_is_ext : bin_fun_strext R
quotmod_as_CAbGroup quotmod_as_CAbGroup (rm_mu A).

Definition dmmu_is_bin_fun :=
Build_CSetoid_bin_fun R quotmod_as_CAbGroup
quotmod_as_CAbGroup (rm_mu A) dmmu_is_ext.

Lemma quotmod_is_RModule : is_RModule quotmod_as_CAbGroup
dmmu_is_bin_fun.

Definition quotmod_as_RModule := Build_RModule R quotmod_as_CAbGroup
dmmu_is_bin_fun quotmod_is_RModule.

End QuotMod.