I also want to add this bit.
https://github.com/fricas/fricas/blob/master/src/algebra/catdef.spad#L214
CharacteristicZero() : Category == Ring
===============
Suppose
Foo1(R: CharacteristicZero) : ... == ...
Foo2(R: Ring) : ... == ...
FriCAS uses the named category CharacteristicZero to transport the
message that a corresponding domain should implement a ring with
characteristic 0. That is a bit of information that can be exploited in
the implementation of Foo1, but not Foo2.
Admittedly, it would be nicer that instead of just using well-chosen
names we had a mechanism (syntax) to specify the mathematical axioms for
that property.
Similarly, it is done for CommutativeRing. Commutativity of * of the
ring in FriCAS is nowhere else specified than by the special category
CommutativeStar which (more or less) comes with an empty definition as
most other categories in the file attribs.spad.
https://github.com/fricas/fricas/blob/master/src/algebra/attribs.spad#L88
Hill, if you find a better (more mathematical) way to implement
properties/axioms that would be great. It probably was a challenge back
then when Scratchpad started, but maybe it is not anymore. Do you know?
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 view this discussion on the web visit
https://groups.google.com/d/msgid/fricas-devel/44817e6f-f23f-49f5-b7e9-e43368b3fbe9%40hemmecke.org.