« Home

Example. trivial ring [ring-0001]

module ring-0001 where

open import MLTT.Spartan
open import UF.Subsingletons
open import UF.Subsingletons-Properties
open import UF.Equiv

open import ring-0000
open Ring {{...}}
open import ring-0002

Trivial ring 就像前面群論提過的 trivial group,在 trivial ring 裡加法、乘法都一樣,因為作為只有一個元素的集合,能選擇的 n-元運算都只有一個。 也因此下面的 terms 幾乎都可以由 agda 自動填滿

trivial-ring : Ring (𝟙 {𝓤})
trivial-ring .size = props-are-sets 𝟙-is-prop
trivial-ring ._+ᴿ_ _ _ = 
trivial-ring .0r = 
trivial-ring .+-assoc = λ x y z  refl
trivial-ring .+-neuL = λ x  refl
trivial-ring .+-neuR = λ x  refl
trivial-ring .-_ _ = 
trivial-ring .cancel = refl
trivial-ring .+-comm = λ x y  refl
trivial-ring ._·_ _ _ = 
trivial-ring .·-assoc = λ x y z  refl
trivial-ring .1r = 
trivial-ring .·-neuL = λ x  refl
trivial-ring .·-neuR = λ x  refl
trivial-ring .distribL = refl
trivial-ring .distribR = refl

事實上如果 Ring R1 = 0,那麼 R 只有一個元素

0=1-leads-trivial-ring : {R : 𝓤 ̇ }  {{∈R : Ring R}}  1r  0r  𝟙 {𝓤}  R
0=1-leads-trivial-ring {𝓤}{R} 1=0 =  _  0r) , (ι , λ x  every-elem-is-0 x ⁻¹) , (ι , λ _  refl)
  where
  ι : R  𝟙 {𝓤}
  ι _ = 

  every-elem-is-0 :  (x : R)  x  0r
  every-elem-is-0 x =
    x      =⟨ ·-neuR x ⁻¹ 
    x · 1r =⟨ ap (x ·_) 1=0 
    x · 0r =⟨ lemma-1 x .pr₁ 

這裡雖然用了等一下才要證明的定理,但任何元素乘上 0 等於 0 應該是很直覺的想法

    0r