More rings stuff (#83)

This commit is contained in:
Patrick Stevens
2019-11-23 13:53:54 +00:00
committed by GitHub
parent 660d7aa27c
commit 2ed7bd8044
12 changed files with 260 additions and 17 deletions

View File

@@ -2,8 +2,10 @@
open import LogicalFormulae
open import Groups.Groups
open import Groups.Lemmas
open import Groups.Homomorphisms.Definition
open import Groups.Definition
open import Groups.Subgroups.Definition
open import Numbers.Naturals.Naturals
open import Setoids.Orders
open import Setoids.Setoids
@@ -17,13 +19,29 @@ open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
module Rings.Ideals.Definition {a b : _} {A : Set a} {S : Setoid {a} {b} A} {_+_ _*_ : A A A} (R : Ring S _+_ _*_) where
open import Groups.Subgroups.Definition (Ring.additiveGroup R)
open Ring R
open Setoid S
open Equivalence eq
open Group additiveGroup
open import Rings.Lemmas R
record Ideal {c : _} (pred : A Set c) : Set (a b c) where
field
isSubgroup : Subgroup pred
isSubgroup : Subgroup additiveGroup pred
accumulatesTimes : {x : A} {y : A} pred x pred (x * y)
closedUnderPlus = Subgroup.closedUnderPlus isSubgroup
closedUnderInverse = Subgroup.closedUnderInverse isSubgroup
containsIdentity = Subgroup.containsIdentity isSubgroup
isSubset = Subgroup.isSubset isSubgroup
predicate = pred
generatedIdealPred : A A Set (a b)
generatedIdealPred a b = Sg A (λ c Setoid.__ S (a * c) b)
generatedIdeal : (a : A) Ideal (generatedIdealPred a)
Subgroup.isSubset (Ideal.isSubgroup (generatedIdeal a)) {x} {y} x=y (c , prC) = c , transitive prC x=y
Subgroup.closedUnderPlus (Ideal.isSubgroup (generatedIdeal a)) {g} {h} (c , prC) (d , prD) = (c + d) , transitive *DistributesOver+ (+WellDefined prC prD)
Subgroup.containsIdentity (Ideal.isSubgroup (generatedIdeal a)) = 0G , timesZero
Subgroup.closedUnderInverse (Ideal.isSubgroup (generatedIdeal a)) {g} (c , prC) = inverse c , transitive ringMinusExtracts (inverseWellDefined additiveGroup prC)
Ideal.accumulatesTimes (generatedIdeal a) {x} {y} (c , prC) = (c * y) , transitive *Associative (*WellDefined prC reflexive)