-
Notifications
You must be signed in to change notification settings - Fork 247
on lib-2.2-rc1 #2542
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
Comments
This is in addition to my last message.
So, over And for
|
Also consider
Is not it better |
Hmm, if |
|
Previously, @MatthewDaggitt wrote:
I think I do agree also, but two comments regarding this:
I'm in two minds about the second: is it the case that all/most (for suitable definitions of such quantifiers) named uses of UPDATED: see #2545 If we do merge the associated PR, should we also make the one use of the lemma in the library, viz. in ∷⊈[] : ∀ {x xs} → x ∷ xs ⊈ []
∷⊈[] p = Membershipₚ._∉[] S _ $ p (here refl) |
Suggest closing this issue after the discussion on #2545 ? |
I thought that as
Let the library team decide. |
Yes, but the problem as @jamesmckinna identified is that when the library modules are not fully parameterised then the misfix notation no longer works. In general, the notation we choose should work for both. |
See #2549 where I disagree with that conclusion. |
Thanks @mechvel . Your choice of words here is interesting, as you say that " It really does seem to be the case that the routine (semantic) expression of |
I understand this as follows. The type expression |
I write "bound" because I do not know the implementation of the type checker. I only refer to its probable property: |
Summarising the original post to isolate each point as a separate issue:
For the rest, @MatthewDaggitt has already indicated that they are out-of-scope for v2.2 (now released!), so I propose we close this issue without taking them further, and in any case:
Followup comments to the issues above, or else feel free to open new ones focused on individual points. |
I have tested it under
Agda 2.7.0.1 built with flags (cabal -f optimise-heavily)
ghc-9.0.2. Debian Linux 12
on my large library of computer algebra.
It works all right.
Please, find my remarks below.
I doubt, may be it is better to denote this
¬∣∣
.Because seeing
x ∤∤ y
the reader could think of "neitherx ∣ y
nory ∣ x
".Data.List.Base:
The names
take, drop, span, takeWhile, filter ...
come from the Haskell library.And
deduplicate
corresponds tonub
of Haskell library.Right?
So, I wonder of whether
deduplicate
needs to be renamed tonub
(also I do not know the mnemonic of the name
nub
).It is also needed a proof for the main properties of
deduplicate
, the ones that explain why this function is needed:(a)
ys = (deduplicate xs)
andxs
need to be equal as sets (to be subsets of each other),(b)
ys
must not have repetitions.For example, I have in my library
Why is it introduced
∃[ x ] (P x)
while it is provided
∃ (\x → P x)
?Is the former simpler? It looks like multiplying entities.
Data.List.Properties
:It is better to treat the thing in a general way.
To introduce
IntegralSemiring
(a semiring without zero divisor). It isSemiring
with the axiomFor example,
ℕ
andℤ/(3)
(integers modulo 3) are integral semirings,while
ℕ × ℕ
andℤ/(4)
are not.Then,
ℕ
andℤ
have theIntegralSemiring
instance proved in a simple way.And
product≢0 : All NonZero xs → NonZero (product xs)
is proved for any
IntegralSemiring
also in a simple way.The notion (I) is as important and as simply expressed and as widely used in algebra as, for example, the notion of
Commutative
.In classical algebra the notion
IntegralDomain
meansCommutativeRing
with the property (I).Also it has sense to introduce is the property
And the property (I) itself is called "a semiring without zero divisor".
So,
IntegralDomain
is occupied in algebra (as mentioned above),IntegralSemiring
(I do not know of whether this term is occupied)
or
SemiringWithoutZeroDivisor
(which surely does not break anything in classical terminology).
The text was updated successfully, but these errors were encountered: