On 8 October 2014 03:17, Ralf Hemmecke <[email protected]> wrote: > On 10/08/2014 04:07 AM, Bill Page wrote: >> Something goes wrong with the display of a SquareMatrix with computed >> dependent size parameter that is passed as a parameter to a type. > >> DifferentialGeometry(CoefRing, listIndVar : List Symbol, g:SMR) : >> Export == Implement where >> CoefRing : Join(IntegralDomain, Comparable) >> DERHAM ==> DeRhamComplex(CoefRing, listIndVar) >> ... >> R ==> Expression(CoefRing) >> SMR ==> SquareMatrix(#listIndVar,R > > Not that I know a solution for this problem, but why not taking another > point of view, namely that everything is without variable names? In > other words, variable names are just used to achieve a nice looking > output. I don't think that variable names are important mathematically. > > Unfortunately, that would mean some more deep change to Algebra, since > FriCAS, for example uses differentiate: (%, Symbol) -> % in > Expression(R) which is basically used in DERHAM (and, of course, it's > somehow convenient). >
I think you are right that this is mostly a matter of convenience. The CliffordAlgebra domain for example does without specifying variable names and in FriCAS we have polynomial domains both with and without the specification of variable names. > Of course that would lead to the question whether K[x] is the "same" as > K[y], but it would remove all of the problems where parameters in types > have to be *computed* in order to test whether the expression has a > correct type. > > Suppose you have > > Foo(l1: List Symbol, Bar(#l1)): ... == ... > > And in a session you type > > list1 := ['x, 'y] > list2 := ['x, 'y] > F1 := Foo(list1, Bar # list1) > F2 := Foo(list2, Bar # list1) > > Should FriCAS already complain in the construction of F2? Yes. See for example: http://axiom-wiki.newsynthesis.org/SandBoxDifferentialGeometry#[email protected] > Are F1 and F2 identical? No. Identical no, isomorphic yes. Something like DirectProduct(2,DirectProduct(2,Integer)) and DirectProduct(4,Integer). > I.e., can I have something like > > f1: F1 := ... > f2: F2 := ... > > f := f1 + f2 -- suppos Foo exports "+: (%,%)->". > What's the type of f? F1 or F2? > > Now play the same game with initially setting list2 to ['u,'v]. > This should not be possible and as far as I can see FriCAS prevents it. > You probably remember that DirectProct(5, Integer) and > DirectProduct(2+3, Integer) are different types (at least in Aldor). > Yes, but that is a different issue. It is perhaps a bit surprising that FriCAS apparently correctly compiles this dependent type definition: DifferentialGeometry(CoefRing, listIndVar : List Symbol, g:SquareMatrix(#listIndVar,R) The evaluation of # superficially seems is not so different than your DirectProduct(2+3,Integer), but the point is I guess that in both cases these expressions and simply not evaluated at all. Bill Page. -- 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.
