Library UniMath.Algebra.RigsAndRings.Ideals
Ideals
Contents
- Definitions
- Left ideals (lideal)
- Right ideals (rideal)
- Two-sided ideals (ideal)
- The above notions coincide for commutative rigs
- Kernel ideal
Require Import UniMath.Algebra.RigsAndRings.
Local Open Scope ring.
Local Open Scope rig.
Section Definitions.
Context {R : rig}.
Definition is_lideal (S : subabmonoid (rigaddabmonoid R)) : hProp.
Show proof.
use hProppair.
- exact (∏ (r : R) (s : R), S s → S (r * s)).
- do 3 (apply impred; intro).
apply propproperty.
- exact (∏ (r : R) (s : R), S s → S (r * s)).
- do 3 (apply impred; intro).
apply propproperty.
Definition lideal : UU := ∑ S : subabmonoid (rigaddabmonoid R), is_lideal S.
Definition mk_lideal :
∏ (S : subabmonoid (rigaddabmonoid R)), is_lideal S → lideal := tpair _.
Definition is_rideal (S : subabmonoid (rigaddabmonoid R)) : hProp.
Show proof.
use hProppair.
- exact (∏ (r : R) (s : R), S s → S (s * r)).
- do 3 (apply impred; intro).
apply propproperty.
- exact (∏ (r : R) (s : R), S s → S (s * r)).
- do 3 (apply impred; intro).
apply propproperty.
Definition rideal : UU := ∑ S : subabmonoid (rigaddabmonoid R), is_rideal S.
Definition mk_rideal :
∏ (S : subabmonoid (rigaddabmonoid R)), is_rideal S → rideal := tpair _.
Definition is_ideal (S : subabmonoid (rigaddabmonoid R)) : hProp :=
hconj (is_lideal S) (is_rideal S).
Definition ideal : UU := ∑ S : subabmonoid (rigaddabmonoid R), is_ideal S.
Definition mk_ideal (S : subabmonoid (rigaddabmonoid R))
(isl : is_lideal S) (isr : is_rideal S) : ideal :=
tpair _ S (dirprodpair isl isr).
End Definitions.
Arguments lideal _ : clear implicits.
Arguments rideal _ : clear implicits.
Arguments ideal _ : clear implicits.
Lemma commrig_ideals (R : commrig) (S : subabmonoid (rigaddabmonoid R)) :
is_lideal S ≃ is_rideal S.
Show proof.
apply weqimplimpl.
- intros islid r s ss.
use transportf.
+ exact (S (r * s)).
+ exact (maponpaths S (rigcomm2 _ _ _)).
+ apply (islid r s ss).
- intros isrid r s ss.
use transportf.
+ exact (S (s * r)).
+ exact (maponpaths S (rigcomm2 _ _ _)).
+ apply (isrid r s ss).
- apply propproperty.
- apply propproperty.
- intros islid r s ss.
use transportf.
+ exact (S (r * s)).
+ exact (maponpaths S (rigcomm2 _ _ _)).
+ apply (islid r s ss).
- intros isrid r s ss.
use transportf.
+ exact (S (s * r)).
+ exact (maponpaths S (rigcomm2 _ _ _)).
+ apply (isrid r s ss).
- apply propproperty.
- apply propproperty.
Corollary commrig_ideals' (R : commrig) : lideal R ≃ rideal R.
Show proof.
apply weqfibtototal; intro; apply commrig_ideals.
Definition kernel_ideal {R S : rig} (f : rigfun R S) : @ideal R.
Show proof.
Show proof.
use mk_ideal.
- use submonoidpair.
+ exact (@monoid_kernel_hsubtype (rigaddabmonoid R) (rigaddabmonoid S)
(rigaddfun f)).
+
- use submonoidpair.
+ exact (@monoid_kernel_hsubtype (rigaddabmonoid R) (rigaddabmonoid S)
(rigaddfun f)).
+
This does, in fact, describe a submonoid
apply kernel_issubmonoid.
-
-
It's closed under × from the left
intros r s ss; cbn in *.
refine (monoidfunmul (rigmultfun f) _ _ @ _); cbn.
refine (maponpaths _ ss @ _).
refine (rigmultx0 _ (pr1 f r) @ _).
reflexivity.
- intros r s ss; cbn in *.
refine (monoidfunmul (rigmultfun f) _ _ @ _); cbn.
abstract (rewrite ss; refine (rigmult0x _ (pr1 f r) @ _); reflexivity).
refine (monoidfunmul (rigmultfun f) _ _ @ _); cbn.
refine (maponpaths _ ss @ _).
refine (rigmultx0 _ (pr1 f r) @ _).
reflexivity.
- intros r s ss; cbn in *.
refine (monoidfunmul (rigmultfun f) _ _ @ _); cbn.
abstract (rewrite ss; refine (rigmult0x _ (pr1 f r) @ _); reflexivity).