-
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
IntegralSemiring
proposal
#2559
Comments
Looks promising! |
I wrote a certain erroneous message and have deleted it. I think now that the notice by James@jamesmckinna is important. Consider the example with The classical definition has the second axiom And
Probably @jamesmckinna and @JacquesCarette meant this approach and call it "positive". For the two definitions, we have
And If So, the traditional classical definition is not equivalent to the one desirable for Agda. If so, how to name it in the Agda library? On practice, this notion difference will not show great. Now consider the definition of
Here The definition for Agda is proposed as
I expect this is what was meant by James@jamesmckinna. Then (I) Try to derive (II)
So (I) and (II) are equivalent for all nonzero semirings. If so, then I suggest the version (II) of the definition and expect that it is actually what James@jamesmckinna suggested But may be I have missed something. |
Sergei, thanks very much for the careful consideration of my earlier comments, and for taking the trouble to check that, at least in the presence of decidability, that there is only a difference of presentation between the two approaches, but that the 'positive' formulation is more general. (Incidentally, while I no longer really remember the source(s), I guess that the terminology of 'positive' comes from substructural logics/proof theory, or first-order model theory?, to refer to theories whose axiomatisation involves no negated atoms/formulae... just as 'geometric' refers to that fragment involving The emphasis on 'positive' formulations, as a design style, I take originally from Mines, Richman and Ruitenberg, "A Course in Constructive Algebra", and perhaps more so from other writings of Fred Richman (whose website, like that of Gabriel Stolzenberg, another early influence on my thinking, seems inaccessible at the moment, alas). I think that, following Richman (and of course, Bishop and others before that), working in a constructive meta-language such as the type theory of Agda is to be taken as an opportunity to work a bit harder in exploring mathematical concepts, while keeping a firm eye on their classical/orthodox definitions. Richman's pons asinorum example of a positive/constructive resolution of the problem of finding "two irrationals |
James, thank you for your comments. |
I think that the above "positive" approach to definitions of Field and IntegralSemiring accommodates them better to the needs of constructive algebra, because sometimes the equality is not decidable. |
Please, find attached the improved version archive of the proposal. |
#2563 resolves most of this proposal into the 'right' places in |
The fresh version (version 3) of the proposal had been lost somewhere in pull requests. |
Matthew Daggitt wrote on lib-2.2-rc1
on January 4, 2025
The --attached archive-- contains the .agda files that set up lib-2.2 to do so,
which makes it lib-2.2-next.
It is set in the standard library style.
It consists of the following files.
Algebra-Definitions.agda
to be merged to Algebra/Definitions.agda of lib-2.2.
It defines the property NoZeroDivisor
zero _∙_ = {x y : A} → (x ∙ y) ≈ zero → x ≈ zero ⊎ y ≈ zero
Algebra-Properties-Monoid.agda
to be set as Algebra/Properties/Monoid.agda.
It defines
Algebra-Structures.agda
to be merged to Algebra/Structures.agda.
It defines
Algebra-Bundles.agda
to merge to Algebra/Bundles.agda.
It defines
Algebra-Properties-Semiring-Integral.agda
to set as Algebra/Properties/Semiring/Integral.agda.
It proves
Data-Nat-Properties.agda
to be merged to Data/Nat/Properties.agda.
It proves
But this latter instance is not type-checked, I do not know why, so far.
After it is fixed, it will be added there
for
ℕ
.If all this is accepted and merged, it will be easy to add
Π
.onIntegralSemiring.zip
The text was updated successfully, but these errors were encountered: