[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: [Aldor-l] operations working in general, but not i
From: |
Christian Aistleitner |
Subject: |
[Axiom-developer] Re: [Aldor-l] operations working in general, but not in special cases -- help needed |
Date: |
Tue, 04 Apr 2006 11:39:29 +0200 |
User-agent: |
Opera M2/8.52 (Linux, build 1631) |
Dear Martin,
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.
if I understood you correctly, you did not mean "closed under op" but "op
is a partial function" -- which is a completely different thing.
Example 1, Matroids
A "matroid" is a mathematical structure with one very, very important
operation, namely "dualizing" ...
If a matroid is required to have a "dualizing function", then a graphical
matroid cannot be a matroid. Simply because it does not provide the total
function "dualize"
However, a graphical matroid can "contain" a matroid.
So the abstract setting is "graphical matroid" and the specialized one is
"matroid". Not the other way round.
Example 2, Differential Equations
Again the same problem as above.
Of course you can introduce a category
OpSubstructureType: Category == with {
opable?: % -> Boolean;
+++if opable? a, then op( a ) dualizes.
+++if ~ opable? a, then the behaviour of op is undefined
op: % -> %; -- op( a ) with ~ opable?( a ) crashes the program
opIfCan: % -> Partial %
}
and use it in all places, but think about what is the more abstract
setting and what the specialized one.
For me, a property of a generalization has to hold in its spezialization.
And a property of a specialization does not have to a generalization.
So I'd suggest
+++\begin{addescription}{provides a category for graphical matroids}
+++Some element of a \adthistype may be dualizable.
+++\end{addescription}
GraphicalMatroidType: Category == with {
dualizeable?: % -> Boolean;
+++\begin{addescription}{computes the dual element}
+++if dualizeable? a, then op( a ) dualizes.
+++if ~ dualizeable? a, then the behaviour of op is undefined
+++\end{addescription}
dualize: % -> %;
dualizeIfCan: % -> Partial %
}
and
+++\begin{addescription}{provides a category for matroids}
+++Every element of a \adthistype has to be dualizable.
+++\end{addescription}
MatroidType: Category == with {
GraphicalMatroidType;
default {
dualizeable?( a: % ): Boolean == {
true
};
dualizeIfCan( a: % ): Partial % == {
[ (address@hidden) ]
};
}
}
Kind regards,
Christian
- [Axiom-developer] operations working in general, but not in special cases -- help needed, Martin Rubey, 2006/04/04
- Re: [Axiom-developer] operations working in general, but not in special cases -- help needed, Bertfried Fauser, 2006/04/04
- [Axiom-developer] Re: [Aldor-l] operations working in general, but not in special cases -- help needed, Ralf Hemmecke, 2006/04/04
- Re: [Axiom-developer] operations working in general, but not in special cases -- help needed, William Sit, 2006/04/04
- [Axiom-developer] Re: [Aldor-l] operations working in general, but not in special cases -- help needed,
Christian Aistleitner <=