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

Local rings

module ring-theory.local-rings where
Imports
open import foundation.dependent-pair-types
open import foundation.disjunction
open import foundation.propositions
open import foundation.sets
open import foundation.universe-levels

open import ring-theory.invertible-elements-rings
open import ring-theory.rings

Idea

A local ring is a ring such that whenever a sum of elements is invertible, then one of its summands is invertible. This implies that the noninvertible elements form an ideal. However, the law of excluded middle is needed to show that any ring of which the noninvertible elements form an ideal is a local ring.

Definition

is-local-prop-Ring : {l : Level} (R : Ring l)  Prop l
is-local-prop-Ring R =
  Π-Prop
    ( type-Ring R)
    ( λ a 
      Π-Prop
        ( type-Ring R)
        ( λ b 
          function-Prop
            ( is-invertible-element-Ring R (add-Ring R a b))
            ( disjunction-Prop
              ( is-invertible-element-prop-Ring R a)
              ( is-invertible-element-prop-Ring R b))))

is-local-Ring : {l : Level}  Ring l  UU l
is-local-Ring R = type-Prop (is-local-prop-Ring R)

is-prop-is-local-Ring : {l : Level} (R : Ring l)  is-prop (is-local-Ring R)
is-prop-is-local-Ring R = is-prop-type-Prop (is-local-prop-Ring R)

Local-Ring : (l : Level)  UU (lsuc l)
Local-Ring l = Σ (Ring l) is-local-Ring

module _
  {l : Level} (R : Local-Ring l)
  where

  ring-Local-Ring : Ring l
  ring-Local-Ring = pr1 R

  set-Local-Ring : Set l
  set-Local-Ring = set-Ring ring-Local-Ring

  type-Local-Ring : UU l
  type-Local-Ring = type-Ring ring-Local-Ring

  is-local-ring-Local-Ring : is-local-Ring ring-Local-Ring
  is-local-ring-Local-Ring = pr2 R