Kurt Pagani wrote:
>
> I'd like to construct the tensor product of three or more different modules,
> e.g. U#V#W. This is possible when iterating TensorProduct, however, the output
> somehow doesn't look as expected. I created a sandbox example (esp. eq 18).
>
> http://axiom-wiki.newsynthesis.org/SandBoxTensorProduct3
>
> I've no idea how there to correctly set B12 in order to get e_1#g_1#h^1
> instead
> of [e_1,g_1]#h^1.
Unfortunately, this is "expected" output. Note that in textbooks
first there is a definition corresponding to (e_1#g_1)#h^1 and
then texbook says that tensor product is associative and we
can write is without parenthesis. Now, to get resonable
representation we use basis and [e_1,g_1] is how product is
printed.
AFAICS classical Axiom answer for changing output is to define
new domain, wrapping the old one, but having different coercion
to OutputForm. In case of tensor products this does not
work so nice: we would need a separate domain for each arity..
ATM it is not clear for me how to resolve this problem. It
seems that mathematical practice here performs quite a lot
of implicit type convertions...
> I'm also wondering why in TensorProduct(R, B1, B2, M1, M2)
> the ordered sets B1,B2 are not extracted from M1,M2 (I guess there is reason
> for
> that). Moreover it would be nice if an ordered basis could be exported from TP
> which can be reused when building higher orders.
Well, the general style used in Axiom was to pass all parameters,
both needed explicitely and implicitely (that is parameters to
parameters). One reason was that in Axiom extraction of type
parameters was not possible: functions in Axiom could not return
types. In principle we could add appropriate extraction
functions to FriCAS. However, it is not clear how well
would this work with current typechecking. Actually,
there is kind of pattern:
D(A : T, B : C(A))
where A is a type and C is category parametrized by this type.
Without explicitely passing A we can not say what the category
of B should be. I am affraid that with current typechecker
we need to pass A trough all chains leading to D (existential
types probably would help here, but currently remain
unimplemented).
--
Waldek Hebisch
--
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 https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.