Hi Aaron, The Set class is important to have as a master class for all kinds of other classes which should exist, such as Group, Field, Vector space, Algebra, etc. As it is in Category theory.
A Python set may indeed be a good place to start, but as you suggest, it would only be a finite set of objects. There should be a more general Set class, so that for example we would have a set called the Rationals, which itself is a class, and this set would have properties such that 5/6 in Rationals would evaluate as True, even though 5/6 was not specifically instantiated beforehand. In terms of what I have in mind for calculations, there are so many! For example, out of a manifold one creates many vector bundles and vector spaces, such as the tangent bundle and the vector space of differential forms (these are possibly the most famous but there are many others) There are many calculations which can be done with forms, taking interior and exterior products, derivatives, etc. Most of the time we don't do these calculations in coordinates - they are coordinate-free (this is where their main power comes from). Even when we work on specific manifolds like spheres or tori, we still do not do our calculations in coordinates except in the most necessary cases, and in this case we choose coordinates in special ways. As an example, you could calculate the following fact: if X is a vector field and a is a 1-form, and p is a differential form (of mixed degree) then there is a universal identity (X + a)(X + a)p = a(X) p, where the left hand side is interior product by X and exterior product by a, done twice, and the right hand side is just multiplication by a scalar a(X). This kind of calculation is usually done by hand, without coordinates, just using the intrinsic behaviour of the quantities X, a, p. Another issue is that we often combine vector spaces - we take direct sums, tensor products, exterior products of vector bundles and of vector spaces... To extend all our operations to these spaces should be easy if they inherit from the right master classes... usually in the maple or mathematica packages i've used, the operations are not defined in this object-oriented way and so you have to teach the computer all your operations again, even though it should be obvious what they mean, because of inheritance. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sympy?hl=en -~----------~----~----~----~------~----~------~--~---
