File tree Expand file tree Collapse file tree 1 file changed +57
-0
lines changed
src/Algebra/Ideal/Construct Expand file tree Collapse file tree 1 file changed +57
-0
lines changed Original file line number Diff line number Diff line change 1+ ------------------------------------------------------------------------
2+ -- The Agda standard library
3+ --
4+ -- Ideals generated by a single element
5+ ------------------------------------------------------------------------
6+
7+ {-# OPTIONS --safe --cubical-compatible #-}
8+
9+ open import Algebra.Bundles
10+
11+ module Algebra.Ideal.Construct.Principal {c ℓ} (R : CommutativeRing c ℓ) where
12+
13+ open CommutativeRing R
14+
15+ open import Algebra.Ideal ring
16+ open import Algebra.Properties.Ring ring
17+ open import Function.Base
18+ open import Relation.Binary.Reasoning.Setoid setoid
19+
20+ ⟨_⟩ : Carrier → Ideal c ℓ
21+ ⟨ a ⟩ = record
22+ { I = record
23+ { Carrierᴹ = Carrier
24+ ; _≈ᴹ_ = _≈_ on _* a
25+ ; _+ᴹ_ = _+_
26+ ; _*ₗ_ = _*_
27+ ; _*ᵣ_ = _*_
28+ ; 0ᴹ = 0#
29+ ; -ᴹ_ = -_
30+ }
31+ ; ι = _* a
32+ ; ι-monomorphism = record
33+ { isModuleHomomorphism = record
34+ { isBimoduleHomomorphism = record
35+ { +ᴹ-isGroupHomomorphism = record
36+ { isMonoidHomomorphism = record
37+ { isMagmaHomomorphism = record
38+ { isRelHomomorphism = record
39+ { cong = λ p → p
40+ }
41+ ; homo = distribʳ a
42+ }
43+ ; ε-homo = zeroˡ a
44+ }
45+ ; ⁻¹-homo = λ x → sym (-‿distribˡ-* x a)
46+ }
47+ ; *ₗ-homo = λ r x → *-assoc r x a
48+ ; *ᵣ-homo = λ r x → begin
49+ x * r * a ≈⟨ *-assoc x r a ⟩
50+ x * (r * a) ≈⟨ *-congˡ (*-comm r a) ⟩
51+ x * (a * r) ≈⟨ *-assoc x a r ⟨
52+ x * a * r ∎
53+ }
54+ }
55+ ; injective = λ p → p
56+ }
57+ }
You can’t perform that action at this time.
0 commit comments