This is an archived version pinned as of the submission of my master's thesis. An up-to-date version may be found online.

Subsets of rings

module ring-theory.subsets-rings where
Imports
open import foundation.identity-types
open import foundation.propositional-extensionality
open import foundation.propositions
open import foundation.sets
open import foundation.subtypes
open import foundation.universe-levels

open import group-theory.subgroups-abelian-groups

open import ring-theory.rings

Idea

A subset of a ring is a subtype of the underlying type of a ring

Definition

Subsets of rings

subset-Ring :
  (l : Level) {l1 : Level} (R : Ring l1) → UU (lsuc l ⊔ l1)
subset-Ring l R = subtype l (type-Ring R)

is-set-subset-Ring :
  (l : Level) {l1 : Level} (R : Ring l1) → is-set (subset-Ring l R)
is-set-subset-Ring l R =
  is-set-function-type is-set-type-Prop

module _
  {l1 l2 : Level} (R : Ring l1) (S : subset-Ring l2 R)
  where

  is-in-subset-Ring : type-Ring R → UU l2
  is-in-subset-Ring = is-in-subtype S

  is-prop-is-in-subset-Ring : (x : type-Ring R) → is-prop (is-in-subset-Ring x)
  is-prop-is-in-subset-Ring = is-prop-is-in-subtype S

  type-subset-Ring : UU (l1 ⊔ l2)
  type-subset-Ring = type-subtype S

  inclusion-subset-Ring : type-subset-Ring → type-Ring R
  inclusion-subset-Ring = inclusion-subtype S

  ap-inclusion-subset-Ring :
    (x y : type-subset-Ring) →
    x = y → (inclusion-subset-Ring x = inclusion-subset-Ring y)
  ap-inclusion-subset-Ring = ap-inclusion-subtype S

  is-in-subset-inclusion-subset-Ring :
    (x : type-subset-Ring) → is-in-subset-Ring (inclusion-subset-Ring x)
  is-in-subset-inclusion-subset-Ring =
    is-in-subtype-inclusion-subtype S

  is-closed-under-eq-subset-Ring :
    {x y : type-Ring R} → is-in-subset-Ring x → (x = y) → is-in-subset-Ring y
  is-closed-under-eq-subset-Ring =
    is-closed-under-eq-subtype S

  is-closed-under-eq-subset-Ring' :
    {x y : type-Ring R} → is-in-subset-Ring y → (x = y) → is-in-subset-Ring x
  is-closed-under-eq-subset-Ring' =
    is-closed-under-eq-subtype' S

The condition that a subset contains zero

module _
  {l1 l2 : Level} (R : Ring l1) (S : subset-Ring l2 R)
  where

  contains-zero-subset-Ring : UU l2
  contains-zero-subset-Ring = is-in-subset-Ring R S (zero-Ring R)

The condition that a subset contains one

  contains-one-subset-Ring : UU l2
  contains-one-subset-Ring = is-in-subset-Ring R S (one-Ring R)

The condition that a subset is closed under addition

  is-closed-under-addition-subset-Ring : UU (l1 ⊔ l2)
  is-closed-under-addition-subset-Ring =
    {x y : type-Ring R} →
    is-in-subset-Ring R S x → is-in-subset-Ring R S y →
    is-in-subset-Ring R S (add-Ring R x y)

The condition that a subset is closed under negatives

  is-closed-under-negatives-subset-Ring : UU (l1 ⊔ l2)
  is-closed-under-negatives-subset-Ring =
    {x : type-Ring R} →
    is-in-subset-Ring R S x → is-in-subset-Ring R S (neg-Ring R x)

The condition that a subset is closed under multiplication

  is-closed-under-multiplication-subset-Ring : UU (l1 ⊔ l2)
  is-closed-under-multiplication-subset-Ring =
    (x y : type-Ring R) → is-in-subset-Ring R S x → is-in-subset-Ring R S y →
    is-in-subset-Ring R S (mul-Ring R x y)

The condition that a subset is closed under multiplication from the left by an arbitrary element

  is-closed-under-left-multiplication-subset-Ring-Prop : Prop (l1 ⊔ l2)
  is-closed-under-left-multiplication-subset-Ring-Prop =
    Π-Prop
      ( type-Ring R)
      ( λ x →
        Π-Prop
          ( type-Ring R)
          ( λ y →
            function-Prop
              ( is-in-subset-Ring R S y)
              ( S (mul-Ring R x y))))

  is-closed-under-left-multiplication-subset-Ring : UU (l1 ⊔ l2)
  is-closed-under-left-multiplication-subset-Ring =
    type-Prop is-closed-under-left-multiplication-subset-Ring-Prop

  is-prop-is-closed-under-left-multiplication-subset-Ring :
    is-prop is-closed-under-left-multiplication-subset-Ring
  is-prop-is-closed-under-left-multiplication-subset-Ring =
    is-prop-type-Prop is-closed-under-left-multiplication-subset-Ring-Prop

The condition that a subset is closed-under-multiplication from the right by an arbitrary element

  is-closed-under-right-multiplication-subset-Ring-Prop : Prop (l1 ⊔ l2)
  is-closed-under-right-multiplication-subset-Ring-Prop =
    Π-Prop
      ( type-Ring R)
      ( λ x →
        Π-Prop
          ( type-Ring R)
          ( λ y →
            function-Prop
              ( is-in-subset-Ring R S x)
              ( S (mul-Ring R x y))))

  is-closed-under-right-multiplication-subset-Ring : UU (l1 ⊔ l2)
  is-closed-under-right-multiplication-subset-Ring =
    type-Prop is-closed-under-right-multiplication-subset-Ring-Prop

  is-prop-is-closed-under-right-multiplication-subset-Ring :
    is-prop is-closed-under-right-multiplication-subset-Ring
  is-prop-is-closed-under-right-multiplication-subset-Ring =
    is-prop-type-Prop is-closed-under-right-multiplication-subset-Ring-Prop

The condition that a subset is an additive subgroup

module _
  {l1 : Level} (R : Ring l1)
  where

  is-additive-subgroup-subset-Ring :
    {l2 : Level} → subset-Ring l2 R → UU (l1 ⊔ l2)
  is-additive-subgroup-subset-Ring = is-subgroup-Ab (ab-Ring R)

  is-prop-is-additive-subgroup-subset-Ring :
    {l2 : Level} (A : subset-Ring l2 R) →
    is-prop (is-additive-subgroup-subset-Ring A)
  is-prop-is-additive-subgroup-subset-Ring =
    is-prop-is-subgroup-Ab (ab-Ring R)