Martin's beautiful idea: We can use the Aldor
aldor Compiling FriCAS source code from file
/var/zope2/var/LatexWiki/mymonoid.as using AXIOM-XL compiler and
options
-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom -Y $AXIOM/algebra
Use the system command )set compiler args to change these
options.
#1 (Warning) Deprecated message prefix: use `ALDOR_' instead of `_AXL'
Compiling Lisp source code from file ./mymonoid.lsp
Issuing )library command for mymonoid
Reading /var/zope2/var/LatexWiki/mymonoid.asy
MyMonoid is now explicitly exposed in frame initial
MyMonoid will be automatically loaded when needed from
/var/zope2/var/LatexWiki/mymonoid
aldor Compiling FriCAS source code from file
/var/zope2/var/LatexWiki/9179840256381573157-25px002.as using
AXIOM-XL compiler and options
-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom -Y $AXIOM/algebra
Use the system command )set compiler args to change these
options.
#1 (Warning) Deprecated message prefix: use `ALDOR_' instead of `_AXL'
Compiling Lisp source code from file
./9179840256381573157-25px002.lsp
Issuing )library command for 9179840256381573157-25px002
Reading /var/zope2/var/LatexWiki/9179840256381573157-25px002.asy
MyWord is now explicitly exposed in frame initial
MyWord will be automatically loaded when needed from
/var/zope2/var/LatexWiki/9179840256381573157-25px002This is what Axiom sees:
Try it:
Type: MyWord?
Type: MyWord?
Type: Boolean
That's pretty cool that Axiom knows But:
Type: Boolean
Oops, that's not cool! :( Aldor and the Axiom interpreter ought to be able to do better than this. Here are some more examples:
aldor Compiling FriCAS source code from file
/var/zope2/var/LatexWiki/797595480097738355-25px006.as using
AXIOM-XL compiler and options
-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom -Y $AXIOM/algebra
Use the system command )set compiler args to change these
options.
#1 (Warning) Deprecated message prefix: use `ALDOR_' instead of `_AXL'
Compiling Lisp source code from file
./797595480097738355-25px006.lsp
Issuing )library command for 797595480097738355-25px006
Reading /var/zope2/var/LatexWiki/797595480097738355-25px006.asy
MyInt is now explicitly exposed in frame initial
MyInt will be automatically loaded when needed from
/var/zope2/var/LatexWiki/797595480097738355-25px006This is what Axiom sees:
Try it:
Type: MyInt?
Type: MyInt?
Type: MyInt?
This is very general. Notice that we can rename the monoid operation from * to +!
aldor Compiling FriCAS source code from file
/var/zope2/var/LatexWiki/4949806727147037492-25px009.as using
AXIOM-XL compiler and options
-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom -Y $AXIOM/algebra
Use the system command )set compiler args to change these
options.
#1 (Warning) Deprecated message prefix: use `ALDOR_' instead of `_AXL'
Compiling Lisp source code from file
./4949806727147037492-25px009.lsp
Issuing )library command for 4949806727147037492-25px009
Reading /var/zope2/var/LatexWiki/4949806727147037492-25px009.asy
MyFloat is now explicitly exposed in frame initial
MyFloat will be automatically loaded when needed from
/var/zope2/var/LatexWiki/4949806727147037492-25px009This is what Axiom sees:
Try it:
Type: MyFloat?
Type: MyFloat?
Type: MyFloat?
Type: MyFloat?
Here's a variation on the example
aldor Compiling FriCAS source code from file
/var/zope2/var/LatexWiki/mydirprod.as using AXIOM-XL compiler and
options
-O -Fasy -Fao -Flsp -laxiom -Mno-AXL_W_WillObsolete -DAxiom -Y $AXIOM/algebra
Use the system command )set compiler args to change these
options.
#1 (Warning) Deprecated message prefix: use `ALDOR_' instead of `_AXL'
Compiling Lisp source code from file ./mydirprod.lsp
Issuing )library command for mydirprod
Reading /var/zope2/var/LatexWiki/mydirprod.asy
DirProd is now explicitly exposed in frame initial
DirProd will be automatically loaded when needed from
/var/zope2/var/LatexWiki/mydirprod
DirProdCat is now explicitly exposed in frame initial
DirProdCat will be automatically loaded when needed from
/var/zope2/var/LatexWiki/mydirprodTry it:
Type: Domain
Type: Domain
Type: Void
Type: Boolean
Type: Boolean
Type: Boolean
Type: Boolean
The results show that the Aldor compiler treats a domain (R) and an element of a domain (n) differently in terms of information retained for the
|