Definition. ็ฐ Ring [ring-0000]
Definition. ็ฐ Ring [ring-0000]
module ring-0000 where open import MLTT.Spartan open import UF.Sets
record Ring (R : ๐ค ฬ ) : ๐ค ฬ where field size : is-set R _โ_ : R โ R โ R ๐R : R โ-assoc : associative _โ_ 0l-neu : left-neutral ๐R _โ_ 0r-neu : right-neutral ๐R _โ_ -_ : R โ R cancel : {x : R} โ (- x โ x ๏ผ ๐R) ร (x โ - x ๏ผ ๐R) โ-comm : {a b : R} โ a โ b ๏ผ b โ a _โ_ : R โ R โ R โ-assoc : associative _โ_ ๐R : R 1l-neu : left-neutral ๐R _โ_ 1r-neu : right-neutral ๐R _โ_ distrib1 : {r s t : R} โ (r โ s) โ t ๏ผ (r โ t) โ (s โ t) distrib2 : {r s t : R} โ t โ (r โ s) ๏ผ (t โ r) โ (t โ s) infixl 30 _โ_ infixl 40 _โ_ infixl 50 -_
ไธ้ข้ๅๅฝ้กๆฏๅ ็บ (R,โโ,โ0R) ไนๅฏไปฅ็ๆไธๅ commutative group๏ผๅ ๆญคไนๅฏไปฅๅๆถๅ ฑ็ธๅ ็ๅ ็ด ไพๅพๅฐ็ตๆใๅ ถๅฏฆๅฐฑๆฏใ่ฅ xโ +โ 2โ=โyโ +โ 2 ๅ xโ=โyใ
open Ring {{...}} ring-cancel-right : {R : ๐ค ฬ } โ {{_ : Ring R}} {r s t : R} โ s โ r ๏ผ t โ r โ s ๏ผ t ring-cancel-right {R}{_} {r}{s}{t} fact = s ๏ผโจ 0r-neu s โปยน โฉ s โ ๐R ๏ผโจ ap (s โ_) (cancel .prโ โปยน) โฉ s โ (r โ - r) ๏ผโจ โ-assoc s r (- r) โปยน โฉ s โ r โ - r ๏ผโจ ap (_โ - r) fact โฉ t โ r โ - r ๏ผโจ โ-assoc t r (- r) โฉ t โ (r โ - r) ๏ผโจ ap (t โ_) (cancel .prโ) โฉ t โ ๐R ๏ผโจ 0r-neu t โฉ t โ
Example. trivial ring [ring-0001]
Example. trivial ring [ring-0001]
module ring-0001 where open import MLTT.Spartan open import UF.Subsingletons open import UF.Subsingletons-Properties open import ring-0000 open Ring {{...}}
Trivial ring ๅฐฑๅๅ้ข็พค่ซๆ้็ trivial group๏ผๅจ trivial ring ่ฃกๅ ๆณใไนๆณ้ฝไธๆจฃ๏ผๅ ็บไฝ็บๅชๆไธๅๅ ็ด ็้ๅ๏ผ่ฝ้ธๆ็ n-ๅ ้็ฎ้ฝๅชๆไธๅใ ไนๅ ๆญคไธ้ข็ terms ๅนพไน้ฝๅฏไปฅ็ฑ agda ่ชๅๅกซๆปฟ
trivial-ring : Ring (๐ {๐ค}) trivial-ring .size = props-are-sets ๐-is-prop trivial-ring ._โ_ _ _ = โ trivial-ring .๐R = โ trivial-ring .โ-assoc = ฮป x y z โ refl trivial-ring .0l-neu = ฮป x โ refl trivial-ring .0r-neu = ฮป x โ refl trivial-ring .-_ _ = โ trivial-ring .cancel = refl , refl trivial-ring .โ-comm = refl trivial-ring ._โ_ _ _ = โ trivial-ring .โ-assoc = ฮป x y z โ refl trivial-ring .๐R = โ trivial-ring .1l-neu = ฮป x โ refl trivial-ring .1r-neu = ฮป x โ refl trivial-ring .distrib1 = refl trivial-ring .distrib2 = refl
Lemma. Multiply 0 is 0 [ring-0002]
Lemma. Multiply 0 is 0 [ring-0002]
module ring-0002 where open import MLTT.Spartan open import ring-0000 open Ring {{...}}
lemma-1 : {R : ๐ค ฬ } {{_ : Ring R}} โ (r : R) โ (r โ ๐R ๏ผ ๐R) ร (๐R โ r ๏ผ ๐R) lemma-1 r = (ring-cancel-right I โปยน) , (ring-cancel-right II โปยน) where I : ๐R โ r โ ๐R ๏ผ r โ ๐R โ r โ ๐R I = ๐R โ r โ ๐R ๏ผโจ 0l-neu (r โ ๐R) โฉ r โ ๐R ๏ผโจ ap (r โ_) (0l-neu ๐R โปยน) โฉ r โ (๐R โ ๐R) ๏ผโจ distrib2 โฉ r โ ๐R โ r โ ๐R โ II : ๐R โ ๐R โ r ๏ผ ๐R โ r โ ๐R โ r II = ๐R โ ๐R โ r ๏ผโจ 0l-neu (๐R โ r) โฉ ๐R โ r ๏ผโจ ap (_โ r) (0l-neu ๐R โปยน) โฉ (๐R โ ๐R) โ r ๏ผโจ distrib1 โฉ ๐R โ r โ ๐R โ r โ
Proposition. ่ฒ ่ฒ ๅพๆญฃ [ring-0003]
Proposition. ่ฒ ่ฒ ๅพๆญฃ [ring-0003]
module ring-0003 where open import MLTT.Spartan open import ring-0000 open Ring {{...}} open import ring-0002
่ฒ ่ฒ ๅพๆญฃ้ๅธธๅฏ่ฝๅจ่ชชๅ ฉไปถไบใ็ฌฌไธ๏ผโโ โโ aโ=โa๏ผๅ ็บ โa ็ๅๅ ็ด ๆฏ a ไนๅฏไปฅๆฏ โโ โโ a๏ผๅ ๆญค โโ โโ a ไธๅฎ็ญๆผ a๏ผๅ ็บ Ring ็ๅ ๆณ้จๅๆฏไธๅ commutative group๏ผใ
neg-neg-lemma : {R : ๐ค ฬ } {{_ : Ring R}} (x : R) โ - - x ๏ผ x neg-neg-lemma x = ring-cancel-right (I โ II โปยน) where I : - - x โ - x ๏ผ ๐R I = cancel .prโ II : x โ - x ๏ผ ๐R II = cancel .prโ
ๆๆฏๆด้่ฆ็ โaโ รโ โbโ=โaโ รโ b๏ผไนๅฐฑๆฏ้่ฃก่ฆ่ญๆ็ๅฝ้ก
neg-lemma-left : {R : ๐ค ฬ } {{_ : Ring R}} (a b : R) โ - a โ b ๏ผ - (a โ b) neg-lemma-left a b = ring-cancel-right (II โ I โปยน) where I : (- (a โ b)) โ a โ b ๏ผ ๐R I = (- (a โ b)) โ a โ b ๏ผโจ cancel .prโ โฉ ๐R โ II : (- a โ b) โ a โ b ๏ผ ๐R II = (- a โ b) โ a โ b ๏ผโจ distrib1 โปยน โฉ (- a โ a) โ b ๏ผโจ ap (_โ b) (cancel .prโ) โฉ ๐R โ b ๏ผโจ lemma-1 b .prโ โฉ ๐R โ neg-lemma-right : {R : ๐ค ฬ } {{_ : Ring R}} (a b : R) โ a โ - b ๏ผ - (a โ b) neg-lemma-right a b = ring-cancel-right (II โ I โปยน) where I : (- (a โ b)) โ a โ b ๏ผ ๐R I = cancel .prโ II : (a โ - b) โ a โ b ๏ผ ๐R II = (a โ - b) โ a โ b ๏ผโจ distrib2 โปยน โฉ a โ (- b โ b) ๏ผโจ ap (a โ_) (cancel .prโ) โฉ a โ ๐R ๏ผโจ lemma-1 a .prโ โฉ ๐R โ proposition-2 : {R : ๐ค ฬ } {{_ : Ring R}} โ (a b : R) โ - a โ - b ๏ผ a โ b proposition-2 {_}{R} a b = (- a โ - b) ๏ผโจ neg-lemma-left a (- b) โฉ - (a โ - b) ๏ผโจ ap -_ (neg-lemma-right a b) โฉ - - (a โ b) ๏ผโจ neg-neg-lemma (a โ b) โฉ a โ b โ
Definition. Non zero-divisor [ring-0004]
Definition. Non zero-divisor [ring-0004]
module ring-0004 where open import MLTT.Spartan open import ring-0000 open Ring {{...}}
ไธๅ Ring R ไธญ็ๅ ็ด a ๆฏ zero divisor ๅฐฑ่กจ็คบๅญๅจ bโโ โ0โโโR ไฝฟ abโ=โ0ใ ๆไปฅๆๅ็จฑ a ๆฏ non zero-divisor ๆๅฆๆ abโ=โ0๏ผ้ฃ b ไธๅฎ็ญๆผ 0ใ
NonZeroDivisor : {R : ๐ค ฬ } {{_ : Ring R}} (a : R) โ ๐ค ฬ NonZeroDivisor {_}{R} a = (b : R) โ (a โ b ๏ผ ๐R โ b ๏ผ ๐R)
Proposition. Not zero divisor if and only if left action is injective [ring-0005]
Proposition. Not zero divisor if and only if left action is injective [ring-0005]
ไธๆฏ zero divisor ่ฅไธๅฏ่ฅๅ
ถ left action
ๆฏ injective๏ผไนๅฐฑๆฏ left-cancellable๏ผ
module ring-0005 where open import MLTT.Spartan open import ring-0000 open Ring {{...}} open import ring-0002 open import ring-0003 open import ring-0004
left-action : {R : ๐ค ฬ } {{_ : Ring R}} (a : R) โ R โ R left-action a x = a โ x proposition-3 : {R : ๐ค ฬ } {{_ : Ring R}} {a : R} โ (NonZeroDivisor a โ left-cancellable (left-action a)) ร (left-cancellable (left-action a) โ NonZeroDivisor a) proposition-3 {_}{R}{a} = if , only-if where if : NonZeroDivisor a โ left-cancellable (left-action a) if is-not-zd {x}{y} Ax=Ay = ring-cancel-right (II โ III โปยน) where I : left-action a (x โ - y) ๏ผ ๐R I = left-action a (x โ - y) ๏ผโจby-definitionโฉ a โ (x โ - y) ๏ผโจ distrib2 โฉ a โ x โ a โ - y ๏ผโจ ap (a โ x โ_) (neg-lemma-right a y) โฉ a โ x โ - (a โ y) ๏ผโจ ap (_โ - (a โ y)) Ax=Ay โฉ a โ y โ - (a โ y) ๏ผโจ cancel .prโ โฉ ๐R โ II : x โ - y ๏ผ ๐R II = is-not-zd (x โ - y) I III : y โ - y ๏ผ ๐R III = cancel .prโ only-if : left-cancellable (left-action a) โ NonZeroDivisor a only-if inj b ab=0 = inj I where I : a โ b ๏ผ a โ ๐R I = left-action a b ๏ผโจby-definitionโฉ a โ b ๏ผโจ ab=0 โฉ ๐R ๏ผโจ lemma-1 a .prโ โปยน โฉ a โ ๐R ๏ผโจby-definitionโฉ left-action a ๐R โ