Skip to content

Commit 5a2e8e2

Browse files
authored
added a decomposition of the generated ideal. (#1317)
1 parent 44374e6 commit 5a2e8e2

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

Cubical/Algebra/CommRing/Quotient/ImageQuotient.agda

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ open import Cubical.Data.Sigma
99

1010
open import Cubical.Algebra.CommRing
1111
open import Cubical.Algebra.CommRing.Ideal
12+
open import Cubical.HITs.PropositionalTruncation as PT
1213
open import Cubical.Algebra.Ring.Properties
1314
open RingTheory
1415

@@ -34,6 +35,26 @@ module _ {ℓ : Level} (R : CommRing ℓ) {X : Type ℓ} (f : X → ⟨ R ⟩) w
3435
genIdeal = makeIdeal (λ r generatedIdeal r , squash)
3536
add zero λ r mul
3637

38+
data isInGeneratedIdeal : (r : ⟨ R ⟩) Type ℓ where
39+
isImage : (r : ⟨ R ⟩) (x : X) (f x ≡ r) isInGeneratedIdeal r
40+
iszero : (r : ⟨ R ⟩) (0r ≡ r) isInGeneratedIdeal r
41+
isSum : (r : ⟨ R ⟩) (s t : ⟨ R ⟩) (s + t ≡ r)
42+
isInGeneratedIdeal s isInGeneratedIdeal t isInGeneratedIdeal r
43+
isMul : (r : ⟨ R ⟩) (s t : ⟨ R ⟩) (s · t ≡ r)
44+
isInGeneratedIdeal t isInGeneratedIdeal r
45+
46+
generatedIdealDecomp : ( r : ⟨ R ⟩ ) generatedIdeal r ∥ isInGeneratedIdeal r ∥₁
47+
generatedIdealDecomp .(f x) (single x) = ∣ isImage (f x) x refl ∣₁
48+
generatedIdealDecomp .(0r) zero = ∣ iszero 0r refl ∣₁
49+
generatedIdealDecomp .(s + t) (add {x = s} {y = t} s∈I t∈I) =
50+
PT.map2 (isSum (s + t) s t refl)
51+
(generatedIdealDecomp s s∈I) (generatedIdealDecomp t t∈I)
52+
generatedIdealDecomp .(s · t) (mul {r = s} {x = t} t∈I ) =
53+
PT.map (isMul (s · t) s t refl) (generatedIdealDecomp t t∈I)
54+
generatedIdealDecomp r (squash r∈I r∈I' i) =
55+
∥∥-isPropDep isInGeneratedIdeal
56+
(generatedIdealDecomp r r∈I) (generatedIdealDecomp r r∈I') refl i
57+
3758
_/Im_ : CommRing ℓ
3859
_/Im_ = R / genIdeal
3960

0 commit comments

Comments
 (0)