On Wed, Jun 4, 2008 at 11:06 PM, William Stein wrote:
>
> On Wed, Jun 4, 2008 at 7:35 PM, Bill Page wrote:
>>
>> On Wed, Jun 4, 2008 at 1:54 PM, Robert Bradshaw wrote:
>>>
>>> David's explanation of this is right on. We need parent() to work
>>> in some sensible way on non-Elements (e.g. Python ints, objects
>>> from outside Sage) to be able do some kind of coercion reasoning
>>> on them. Python is a dynamically typed language, ever object has
>>> a type.
>>
>> So is this essentially an admission that the concept of 'parent' is
>> superfluous and could have in fact been implemented just as
>> Python 'type'?
>
> That is not the case, except that of course *anything* that can
> be implemented, can be implemented in any turing complete
> language.
>

I did not mean to pose this question in a trivial way. I meant to
suggest that the concept of type in the Python programming language,
i.e. classes, could directly implement the concept of "parent" as used
in Sage without abusing either concept at all. Can you suggest an
example that demonstrates that this is not the case?

> ...
> There are infinitely many different parents, one of each value
> of n.   For a given n, the ring Z/nZ is a specific mathematical
> object, which is itself for many many reasons worth modeling
> in a computer.  If nothing else, it is the place on which to hang
> functions like "multiplicative_generator()".

Python classes can also take parameters.

> Any computer algebra system that doesn't have first class
> actual objects that represent basic mathematical structures
> such as rings, fields, etc., feels extremely barren if one has
> used Magma for a sufficient amount of time.
>

Sure. Rings and fields are categories. Magma was not the first system
to represent these mathematical structures in a computer.

> Specific rings, fields, vector spaces, etc., are all basic objects of
> mathematics, that are just as important to fully implement and
> model in a CAS as polynomials, rational numbers, vectors, etc.
> I firmly believe Magma was the first ever system to really get this
> right, and Sage merely copies this.   I really greatly appreciate
> what Cannon et al. did...
>

I am sure Magma is an interesting system - everything I have been
reading about it confirms that - but I do not think it was the first.
I am also not yet convinced that it has implemented these general
mathematically concepts in any substantially better way then, for
example Axiom. Some things it does seem peculiar and ad hoc to me.
These are the things that standout in my mind when I think about in
what ways Sage resembles Magma. Of course there are some specific
computations that Magma does much more efficiently than any other
system. But that is not the point. We are talking here about general
design issues.

> ...
>> "SymbolicRing" is another thing that worries me a little. Exactly
>> what (mathematically) is a symbolic ring? E.g. Why is it a ring
>> and not a field? Operations like 'sin(sin(sin(x))).parent()' doesn't
>> look much like a ring to me. Probably most other computer algebra
>> systems would just call this an "expression tree" or AST or
>> something like that.
> ...
> To me, the SymbolicRing is the mathematical structure in which
> calculus teachers, engineers, etc., are kept happy.  In Sage
> that was 100% its purpose.  Ask Marshall Hampton, who is teaching
> calculus right now using Sage, about what he needs to make
> teaching calculus easy, and the answer is "The Symbolic Ring",
> plus graphics and interact.
>

I don't doubt that doing symbolic mathematics by computer is very
useful for teaching calculus - after all that is what is normally
meant by the term "calculus", i.e. a method of calculation based on
the symbolic manipulation of expressions. The name "Symbolic Ring"
however makes it sound more "algebraic",i.e. concerned with structure,
relation and quantity. So I was looking for a more formal mathematical
definition of this sort. I did not expect it was a name intended just
to keep certain people happy. :-(

> ...

Regards,
Bill Page.

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to