Gaby,

I have a few questions at the end of this email, but first can I check 
if I have understood correctly:

As I understand it, in the existing 'catdef.spad.pamphlet':
Categories that inherit from SemiGroup use '*' as the main operation
*: (%,%) -> %
Categories that inherit from AbelianSemiGroup use '+' as the main 
operation +: (%,%) -> %
So we can get ring and field-like categories by inheriting from both.
So the commutative axiom is bound up with function names and inheritance 
details when it might be more flexible if they were independent concepts.

The code in the Yue Li sandbox works differently from this in that it 
uses a generalised mapping op: Mapping(T, T, T) which can be mixed and 
matched in a more general way.

I get the impression that the new 'assume' syntax is intended to allow 
this more generalised approach to be applied to the categories in 
'catdef.spad.pamphlet'. I get the impression that each of these mappings 
would have a category and a domain like this:
category BINOPC BinaryOperatorCategory
domain BINOP BinaryOperation

So my questions are:

q1) Are my above assumptions correct?
q2) How do you plan to meld this new structure into 
catdef.spad.pamphlet? Do you plan to replace existing categories 
one-by-one or build the new structure in parallel with the existing.
q3) Would all categories in catdef.spad.pamphlet, that represent a 
single operation over set, also have a domain?
q4) How would you code a ring-like category to combine two single 
operation categories?
q5) Would these new domains add any run-time overhead?
q6) How to convert logic/rules into axioms/quantifiers, for instance in 
CancellationAbelianMonoid: c = a+b <=> c-b = a
q7) Or in EntireRing: ab=0 => a=0 or b=0
q8) Or in EntireRing: not(1=0)
q9) Or in OrderedSet: a<b and b<c => a<c
q10) How would you handle "Conditional attributes" such as in 
EuclideanDomain: multiplicativeValuation Size(a*b)=Size(a)*Size(b)
q11) How would you handle constraints like in
Field: a*(b/a) = b | (a not 0)

I Have drawn a diagram (by hand) of all the existing categories in 
catdef.spad.pamphlet about half way down on this page:
http://www.euclideanspace.com/maths/standards/program/axiomsInAxiom/
This is just a start, it really needs to be optimised to clarify these 
issues. Perhaps if I understood the answers to the above questions 
better I might be able to change it to reflect the proposed new structure?

Martin


------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to