login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit
 Topics FrontPage Aldor FriCAS language SandBox SandBox Aldor Category Theory SandBox Aldor Category Theory 4 <-- You are here. 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 Compiling FriCAS source code from file /var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/morphisms.as using AXIOM-XL compiler and options -O -Fasy -Fao -Flsp -laxiom -Mno-ALDOR_W_WillObsolete -DAxiom -Y $AXIOM/algebra -I$AXIOM/algebra Use the system command )set compiler args to change these options. Program fault (segmentation violation).#1 (Error) Program fault (segmentation violation). The )library system command was not called after compilation. fricas)library basics.ao fricasReading /var/aw/var/LatexWiki/basics.asy Domain is now explicitly exposed in frame initial Domain will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Set is now explicitly exposed in frame initial Set will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Printable is now explicitly exposed in frame initial Printable will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Preorder is now explicitly exposed in frame initial Preorder will be automatically loaded when needed from /var/aw/var/LatexWiki/basics TotalOrder is now explicitly exposed in frame initial TotalOrder will be automatically loaded when needed from /var/aw/var/LatexWiki/basics associativeProduct is now explicitly exposed in frame initial associativeProduct will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Countable is now explicitly exposed in frame initial Countable will be automatically loaded when needed from /var/aw/var/LatexWiki/basics CountablyFinite is now explicitly exposed in frame initial CountablyFinite will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Monoids is now explicitly exposed in frame initial Monoids will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Groups is now explicitly exposed in frame initial Groups will be automatically loaded when needed from /var/aw/var/LatexWiki/basics MapCategory is now explicitly exposed in frame initial MapCategory will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Map is now explicitly exposed in frame initial Map will be automatically loaded when needed from /var/aw/var/LatexWiki/basics Categorify is now explicitly exposed in frame initial Categorify will be automatically loaded when needed from /var/aw/var/LatexWiki/basics null is now explicitly exposed in frame initial null will be automatically loaded when needed from /var/aw/var/LatexWiki/basics o is now explicitly exposed in frame initial o will be automatically loaded when needed from /var/aw/var/LatexWiki/basics 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 ... --Bill Page, Tue, 20 Nov 2007 20:29:07 -0800 replySandBox Aldor Category Theory 5

 Subject:   Be Bold !! ( 15 subscribers )