Another phrasing of Euclidean Domain (#90)

This commit is contained in:
Patrick Stevens
2019-12-23 10:26:20 +00:00
committed by GitHub
parent 2f64111407
commit 876396eaaa
4 changed files with 105 additions and 6 deletions

View File

@@ -23,8 +23,23 @@ open import Agda.Primitive using (Level; lzero; lsuc; _⊔_)
module Rings.EuclideanDomains.Lemmas {a b : _} {A : Set a} {S : Setoid {a} {b} A} {_+_ _*_ : A A A} {R : Ring S _+_ _*_} (E : EuclideanDomain R) where
open import Rings.PrincipalIdealDomain R
open import Rings.PrincipalIdealDomains.Definition (EuclideanDomain.isIntegralDomain E)
open import Rings.Ideals.Principal.Definition R
open import Rings.Divisible.Definition R
open Setoid S
open Ring R
open Equivalence eq
euclideanDomainIsPid : {c : _} PrincipalIdealDomain {c}
euclideanDomainIsPid ideal = {!!}
euclideanDomainIsPid {pred = pred} ideal = {!!}
-- We definitely need to be able to decide equality in order to deduce this; otherwise we can't tell the difference
-- between "everything is 0" and "something is nonzero", and the proofs are genuinely different in the two cases.
where
r : A
r = {!!}
r!=0 : (r 0R) False
r!=0 = {!!}
predR : pred r
predR = {!!}
sr : (s : A) r s
sr = EuclideanDomain.divisionAlg r!=0 s!=0 ?