[Aldor-l] Aldor-Meet
Oleg Golubitsky
oleg.golubitsky at gmail.com
Tue Nov 20 11:15:21 EST 2007
The two definitions of `Meet(C1,C2)':
1) a category which has the *intersection* of exports of `C1' and `C2'
2) a category `C' such that
D has C <=> D has C1 or D has C2
(in other words: C has *all exports of C1* or *all exports of C2*)
are actually not equivalent: "2)" implies "1)" but not vice versa.
The above test has shown that the compiler does not require "2)".
However, it might make sense to do so, for two reasons:
i. if we use definition "1)" then it might be hard to find
good examples for `Meet', because one can always
define category `C' first, and then define `C1' and `C2'
both as `C with { something }' instead of defining first
`C1' and `C2' and using `C == Meet(C1,C2)'.
ii. for definition "2)" there is an example.
A bivariate polynomial can be viewed as an element of
a) R[x,y] (free module with the monomial basis)
b) R[x][y] (polynomial ring over the univariate polynomial ring)
So one could define the category of bivariate polynomials
as the `Meet' of "a)" and "b)".
Oleg
More information about the Aldor-l
mailing list