-
Notifications
You must be signed in to change notification settings - Fork 247
Clean up basic order theory definitions #2717
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
Nice issue to raise... the challenge/paradox of making naming choices in a 'standard' library:
Here, domain theory is being taken as the dominant/prevailing discourse (presumably, because Agda is often seen as a language/metalanguage for the metatheory of programming languages and their semantics, but I think we are all infinitely worse off for taking that as its distinguished mode-of-use, despite whatever I may have written making such a choice), and with that a particular set of name choices which break with the existing library. I would like to enter a counter argument, that we do not make such changes, but rather that for preorders-which-are-(pre)domains, as a distinguished mode-of-use, that we take greater care with For example: I conjecture that we speak of 'top' and 'bottom' much more since LaTeX, as names for the macros So: why not instead use the symbols as So far, I've only addressed the naming of definitions part, rather than the properties vs. definitions aspects, which make good points, that equally well could operate mutatis mutandis in terms of But I thought I should at least, in the first instance, challenge the (implied) certainty of the OP as to the 'rightness' of the proposed choices. |
Completely agree that naming is hard! I am not aware of any area of computer science/mathematics where bottom and top elements are called minimum and maximum elements though. The terms "maximal" and "minimal" elements are in common use, but these are distinct notions. The terms "greatest element" and "least element" are occasionally used in older texts (EG: Birkhoff 1940) but have fallen out of popularity even in general order theory. With that in mind, it seems like we should use the standard order-theoretic names. This isn't just a philosophical question: these names pose a real discoverability problem. We had to spend quite a while poking through the library to find them! Some |
Another way to put it: if someone is arguing for If the argument is instead that the current literature is broken and that The current names seem to originate from @MatthewDaggitt (or so says 'git blame') so perhaps he can enlighten us on the rationale for the choices? |
I will note that PR #243 from stdlib 0.16 moved these around. From what I can tell, these definitions pre-date |
NB. I'm not intending to die on the hill of
To the first point: there are eg some very old usages come from @nad who maintains a lot of legacy code for both teaching and research. I've no wish to force breakages on those if I/we can help it. More generally, the current names do seem to enjoy currency with out Swedish colleagues, so there may be other reasons for what might seem 'occult' usage to Anglophones... To the second: a recent, cognate example, is my deprecation of the use of 'minus' to notate the quasigroup The other parts of the issue definitely do make sense, distinguishing the property (and its unique-up-to-ness) from the operator symbol, but in the type theoretic context, I think it's worth having both (I could do first-order model theory with only a relational language and no functions symbols, but why, in practice?). So I don't think it's a case of 'function symbols bad; must be replaced only with universal property' as 1-4 above seem to suggest. I think we should have both, and with such, a raft of further choices as to what is reified as a manifest field of a structure, under The more nuanced among us might comment on categories having limits vs. categories with assigned choices of limits, and the various preservation properties of such under (pseudo-)functors of various kinds, but I think that the use of type theory as a metalanguage inclines towards the latter rather than the former in its theory of representation. And certainly It may very well be that 1lab makes different choices/is organised on a different conceptual basis... but as with |
The module |
For the "chosen join" vs. "is join" I completely agree that you want both. As for a less piecemeal discussion, where would be the best venue for that? |
Ach! (re: where to discuss the "future directions" for the library) |
Was working with @TOTBWF to port over some domain theory from the 1lab, and noticed that the definitions of joins/meets in preorders are a bit all over the place both in terms of naming and semantics.
I suggest that we perform the following rationalisation:
I'm open to alternative names and locations. Note that this would be a breaking change, so we would have to take the necessary steps towards deprecation.
The text was updated successfully, but these errors were encountered: