On 08/17/2015 02:14 AM, Waldek Hebisch wrote: > 1) Just operation '+' (named AdditiveOperation or possible > AdditiveMagma)
The aldor library calls it "AdditiveType", but it already has 0 and -. https://github.com/pippijn/aldor/blob/master/aldor/lib/aldor/src/arith/sal_arith.as#L30 I'm rather in favour of excluding 0 and - from the very basic category. > 2) '+' and 0 (neutral element) I am tempted to call it > AdditiveOperation0 I'd rather use AdditiveOperationsZero or AdditiveMagmaZero. I somewhat don't like the number symbol in the category name. But that's not a very strong opinion. > 3) Associativity: AdditiveSemigroup > 4) Associativity and 0: AdditiveMonoid If you call it "Monoid" then, of course, that would include the axiom for the unit element 0 and not just the existence of a distinct element 0 with no further properties. I'm not really sure, but maybe we could think of introducing a category that represents the axioms. AdditiveSemigroup is OK for associativity, but, according to https://en.wikipedia.org/wiki/Magma_%28algebra%29 there is also "unital magma", i.e. without associativity. > 5) Associativity and Inverse: AdditiveGroup > 6) Associativity and cancellation property (left/right) > > 3, 4, 5 and commutativity give existing categories: AbelianSemigroup, > AbelianMonoid, AbelianGroup Although "Abelian" seems to be used consistently, i.e. always only wrt. the + operation, why not continue using "Additive" and "Multiplicative" in the name to avoid confusion? I.e. we would have AbelianAdditiveGroup, AbelianMultiplicativeGroup, etc. Currently, we have Group reserved for *. The respective categories for + always include commutativity. Not perfect, I would say. So I would want AdditiveGroup and MultiplicativeGroup. > Then similar categories for '*', starting from say > MultiplicativeOperation). I find it somewhat unfortunate, but with the current language, we can only express these algebraic concepts in terms of the symbol + or *, i.e. we will basically have two copies of the same algebraic hierarchy (additive and multiplicative) as categories in FriCAS. But this duplication is OK for now. > Then we get categories combining the two operations: > - just operation > - 0 which is identity for '+' and satisfies 0*x = x*0 = 0 > (supposedly this is called Shell) I think these are two properties (1) identity, (2) absorbing element, and thus would introduce two categories UnitalAdditiveMagma and AbsorbingZero (or ZeroElement or AbsorbingElement or ...). https://en.wikipedia.org/wiki/Absorbing_element The above url even speaks about left and right zero. > - near-semiring: two associative operations with right > distributive law > - near-ring: group with respect to addition > > I do not expect to be able to perform a lot of computations with > domains of such general categories. However, some exaples are > easy to create and I think it would be nice to have them > incorporated into our category hierarchy. I fully agree with Waldek on starting the categories just with the operations (without any axioms) and then step by step add the axioms in terms of a named category that clearly documents what property of the operation(s) is required. Ralf -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.
