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.

Reply via email to