On 04/04/2006 10:11 AM, Martin Rubey wrote:
Example 1, Matroids
A "matroid" is a mathematical structure with one very, very important
operation, namely "dualizing" which transforms a given matroid into
another. Thus, one is tempted to have a category "MatroidCat", which exports an
operation "dual: % -> %".
However, a very important class of matroids, called "graphic matroids", do have
this operation only if the matroid is "planar". (In fact, "graphic matroids"
are simply undirected, unweighted graphs)
From your description it is totally obvious: "graphic matroids" are not
"matroids".
Since I cannot believe this, I would simply say, your "dual" function is
not as inherent to a matroid as you think. You probably would like to create
define MatroidCategory: Category == with {
-- don't know yet
}
define DualizableMatroidCategory: Category == with {
MatroidCategory;
dual: % ->%;
}
define GraphicalMatroidCategory: Category == with {
MatroidCategory;
if ... --express "planar" here
then DualizableMatroidCategory;
}
The general case
We have a category A with an operation op: % -> %. However, there are natural
subdomains of domains of A, which are no longer closed under op.
So think of Z (integers) and N (natural numbers) and the operation
-: % -> %
You would probably never say that N is an additive Group where the
negation fails. Well, you could do this, but that is not mathematically
natural. You simply say N is not an additive group.
Well, of course, you don't declare N to be of AbelianGroup.
I see your point, but at the moment I cannot think of a good advice for
the general case. For the "holonomic" example, it sounds a bit strange
to say that rational functions do not inherit from holonomic functions.
But what is true is that rational function don't inherit the closure
properties. So maybe as above that are two categories and one of them is
the "ClosurePropertyCategory".
I don't yet know whether this is the best thing, but I cannot think of
anything better at the moment.
Ralf
_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer