-
Notifications
You must be signed in to change notification settings - Fork 242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ add ] Definition, consequences, properties, structures, and bundles for Algebra.*
s with the 'no zero divisors' property
#2554
Comments
Algebra.*
s with the 'no non-zero divisors' propertyAlgebra.*
s with the 'no zero divisors' property
James writes
which is (probably) too big a project to identify as a single issue/PR? |
I've thought about this kind of thing in the past, and we want to be really careful about our definitions, because not every way of defining them that's classically equivalent is constructively equivalent. We probably want two hierarchies of these:
|
Thanks @Taneb I very much agree about the need to take care over these things. As with #2542 and the subsequent proposal offered by @mechvel in #2559 , IIUC, it is possible to phrase 'no zero divisor' in a positive way. Where I would be tempted to go further, however, would be to relax his insistence on Integral = 1# ≈ 0# ⊎ ∀ {x y} → x ∙ y ≈ 0# → x ≈ 0# ⊎ y ≈ 0# This avoids/finesses/is orthogonal to the question of whether any equation I think that such a condition moreover also smoothly extends to the 'usual' lifting constructions such as 'ring of polynomials' etc. so should do no harm, while avoiding constructively troublesome conditions of the form ... but yes, eventually, we may wish to pick out the @JacquesCarette any thoughts on this? |
I definitely agree with @Taneb that we need proceed carefully. Unfortunately, I don't have enough experience formalizing Algebra are these parts ( Certainly my experience also agrees with @jamesmckinna 's implicit point that phrasing any definition in a positive way tends to work much better constructive. So that for those parts of the hierarchy where such definitions are available, that would be the way to go. |
jamesmckinna writes "As with #2542 and the subsequent proposal offered by @mechvel in #2559 , IIUC, Integral = 1# ≈ 0# ⊎ ∀ {x y} → x ∙ y ≈ 0# → x ≈ 0# ⊎ y ≈ 0# Logically, it is all right. "an integral domain is a nonzero commutative ring in which the product of Futher, if R : Semiring satisfies 0# ≈ 1#, then R consists only of #0 So, you suggestion disagrees with a known mathematical definition.
As to IntegralDomain, it will be respectively CommutativeRing which inherited semiring is integral (this will be defined after IntegralSemiring is accepted). Below there follow by erroneous remarks. James wrote Here are general considerations about constructivity in the Agda library. The definitions of They are correct and also usable on practice, they do not confused with anything classical, they have not any constructive-specific in them. Now, suppose that a user needs to program operations with polynomials with coefficients in CommutativeRing. This is similar to the reason for which Again, if the team needs to include constructive-specific methods to stdlib, For example, in my applied library, I introduce See my further message on the subject of IntegralSemiring proposal. This is about "positive" style in the definition of |
Thanks @mechvel for your comments on #2559 where I have replied. Regarding constructive/computational polynomial arithmetic, I take some inspiration from discussion with James Davenport at Bath (UK) (who is fond of the undecidability results in Shepherdson/Froehlich as an important test of the suitability of various representations): if we regard (classically) a polynomial in one variable |
Response to jamesmckinna : Symbolic computational (call it SC) mathematics is somewhat 1/4 of mathematics in the sense of the ideas and essential scientific content and value. Personally, I would never investigate into polynomial algebra in which the coefficient equality is not decidable. Because there are much more interesting problems, to my taste, in the case when it is decidable. Also I pay attention to constructive approach only because it is a default in Agda, and also consider this as a strange game. I do not think that using ExcludedThird in proofs can lead to something bad. For a predicate P, either there exists x such that (P x) or does not exist. I do not know of how to call the third possibility. May be, people know? About Bath: I visited Bath somewhat in 2013. At the conference one listener asked me after my message I am sorry, probably such a correspondence is not for stdlib-issues nor for agda-issues, I wonder even about Zulip ... |
Thanks @mechvel for the personal comments, but I think you're right: this isn''t the place, so my apologies for banging the drum for constructivism in general outside the scope of the details of this issue/PR. When I have time, I'll look at making your contributions on #2559 into a PR in line with the discussion. |
Alternatively you can write to me personally by email. The address can be found in the net by name etc. |
Lifted from #2542 , but has arisen before in various scattered proposals to extend the
Algebra
hierarchy to include:IntegralDomain
EuclideanDomain
UniqueFactorisationDomain
PrincipalIdealDomain
which is (probably) too big a project to identify as a single issue/PR?
The text was updated successfully, but these errors were encountered: