fricas
(1) -> <aldor>
#include "axiom"
#pile
#library lBasics "basics.ao"
import from lBasics
define AutomorphismCategory(Obj:Category,A:Obj):Category == Groups with
aut: (A->A,A->A) -> % -- create an automorphism from a morphism and it's inverse
aut: % ->(A->A,A->A) -- create a morphism and it's inverse from an automorphism
+++
+++ If X is an object in any category, Aut X given below is the group
+++ of automorphisms. If the category has Set and CountablyInfinite,
+++ autmorphisms are said to be equal if they have equal values at each
+++ point in their domain.
+++
define Automorphism(Obj:Category):Category == with
Aut: (A:Obj) -> AutomorphismCategory (Obj,A)
default
Aut(A:Obj):AutomorphismCategory(Obj,A) ==
WW0:AutomorphismCategory(Obj,A) == add
Rep == Record(iso:A->A,isi:A->A); import from Rep
1:% == per [(a:A):A +-> a, (a:A):A +-> a]
(x:%)=(y:%):Boolean ==
A has CountablyFinite with Set =>
import from A
forall? ( ((rep x).iso)(a) = ((rep y).iso)(a) for a in (elements$A)() )
error "Equality is not available for these automorphisms."
import from o(Obj,A,A,A)
(g:%)*(f:%):% == per [ ((rep g).iso) ** ((rep f).iso) , ((rep f).isi) ** ((rep g).isi) ]
inv(f:%):% == per [ (rep f).isi, (rep f).iso ]
aut(isomorphism:A->A,isomorphismInverse:A->A):% == per [isomorphism,isomorphismInverse]
aut(f:%):(A->A,A->A) == explode rep f
coerce(f:%):OutputForm == message "[Automorphism]"
WW0 add
define EndomorphismCategory(Obj:Category,A:Obj):Category == Monoids with
end: (A->A) -> % -- create an endomorphisms from a morphism
end: % -> (A->A) -- create a morphism from an endomorphism
+++
+++ If X is an object in any category, End X given below is the monoid
+++ of endomorphisms. If the category has Set and CountablyInfinite,
+++ endomorphisms are computed to be equal if they have equal values at
+++ each point in their domain.
+++
define Endomorphism(Obj:Category):Category == with
End: (A:Obj) -> EndomorphismCategory(Obj,A)
default
End(A:Obj):EndomorphismCategory(Obj,A) ==
WW1:EndomorphismCategory(Obj,A) == add
Rep ==> A->A
1:% == per ( (a:A):A +-> a )
import from o(Obj,A,A,A)
(x:%)=(y:%):Boolean ==
A has CountablyFinite with Set =>
import from A
forall? ( (rep x) a = (rep y) a for a in (elements$A)() )
error "Equality is not available for endomorphisms."
(g:%)*(f:%):% == per ( (rep g)**(rep f) )
end(f:A->A):% == per f
end(f:%):(A->A) == rep f
coerce(f:%):OutputForm == message "[Endomorphism]"
WW1 add
define Morphisms(Obj:Category):Category == Automorphism Obj with Endomorphism Obj</aldor>
fricas
Compiling FriCAS source code from file
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/morphisms.as
using Aldor compiler and options
-O -Fasy -Fao -Flsp -lfricas -Mno-ALDOR_W_WillObsolete -DFriCAS -Y $FRICAS/algebra -I $FRICAS/algebra
Use the system command )set compiler args to change these
options.
"/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/morphisms.as", line 1:
#include "axiom"
^
[L1 C1] #1 (Error) Could not open file `axiom'.
The )library system command was not called after compilation.
fricas
)library basics.ao
)library cannot find the file basics.ao.
fricas
)show Domains
The )show system command is used to display information about types
or partial types. For example, )show Integer will show
information about Integer .
Domains is not the name of a known type constructor. If you want
to see information about any operations named Domains , issue
)display operations Domains
SandBox Aldor Category Theory 5