agda / agda-stdlib

The Agda standard library

Home Page:https://wiki.portal.chalmers.se/agda/Libraries/StandardLibrary

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Define `LocalRing`

jamesmckinna opened this issue · comments

Some delicacy required over the precise axiomatisation, in order to avoid too much decidability (and with the Maximal Ideal 'Theorem'/Axiom also lurking offstage; it might be useful to avoid any discussion of maximal ideals at this stage?), so perhaps using the geometric version: Every element is either zero or else has a multiplicative inverse?

Nagata, (1962, Wiley), "Local Rings"
nlab page

The most general construct here is a Fraction Domain over a (commutative?) Ring R by a Multiplicative system S in R, where the denominators for fractions over R are taken only from S.
And a subset S is required to be closed under * (I do not recall, maybe some more requirement is set for S).
A local ring is a special case of FractionDomain over S, where S = R \ I, where I is a prime ideal.
So, the most reasonable way (for an Applied Library for algebra!) is to

  1. define what is a multiplicative system, probably as the membership function agreed with ≈ and *,
  2. define the ideal notion, again, via the membership function agreed with ≈ and operations.
  3. define the constructs of (FractionDomai S), (LacalRing primeIdeal-I).

But I am sure that these constructs are not for Standard library for Agda.
Such an approach leads to that Standard library will include the algebra library having million pages of the source code.
Local rings, and many other subtle and advance constructs are only for Applied libraries.

As to Standard library, it is sufficient FractionField over a GCDDomain.
I have such in in my Applied library.
But i do not believe that I am able to make it standard.
Because it relies on the general notion of GCD, GCDDomain, and I failed to make standard even these ones.