Skip to content

Commit

Permalink
added Julia support and CategoryOfRepresentations.ipynb
Browse files Browse the repository at this point in the history
  • Loading branch information
mohamed-barakat committed Oct 12, 2020
1 parent 95877a0 commit 5b68099
Show file tree
Hide file tree
Showing 10 changed files with 1,861 additions and 25 deletions.
2 changes: 1 addition & 1 deletion PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ SetPackageInfo( rec(
PackageName := "CatReps",
Subtitle := "Representations and cohomology of finite categories",
Version := Maximum( [
"2020.07.05", ## Mohamed's version
"2020.09.02", ## Mohamed's version
## this line prevents merge conflicts
"2020.07.04", ## Tibor's version
## this line prevents merge conflicts
Expand Down
6 changes: 6 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[deps]
HomalgProject = "50bd374c-87b5-11e9-015a-2febe71398bd"
IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a"

[compat]
julia = "1.3"
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ Q

### History of this package

`CatReps` was originally meant to wrap [Peter Webb](https://www-users.math.umn.edu/~webb/)'s pre-package [`catreps`](https://www-users.math.umn.edu/~webb/GAPfiles/catreps) into the categorical framework offered by [`CAP`](https://homalg-project.github.io/CAP_project/). The only dependency left can be found in the file [gap/catreps.g](https://codecov.io/gh/homalg-project/CatReps/src/master/gap/catreps.g). The entire functionality of [`catreps`](https://www-users.math.umn.edu/~webb/GAPfiles/catreps) is now available through [`FunctorCategories`](https://github.com/homalg-project/FunctorCategories).
`CatReps` was originally meant to wrap [Peter Webb](https://www-users.math.umn.edu/~webb/)'s pre-package [`catreps`](https://www-users.math.umn.edu/~webb/GAPfiles/catreps) into the categorical framework offered by [`CAP`](https://homalg-project.github.io/docs/CAP_project/). The only dependency left can be found in the file [gap/catreps.g](https://codecov.io/gh/homalg-project/CatReps/src/master/gap/catreps.g). The entire functionality of [`catreps`](https://www-users.math.umn.edu/~webb/GAPfiles/catreps) is now available through [`FunctorCategories`](https://homalg-project.github.io/pkg/FunctorCategories).

In March 2020 [Peter Webb](https://www-users.math.umn.edu/~webb/)' and his coauthors made a major new release of the former packages `reps` and `catreps` in which they are combined as one. The code of these former packages is still available at [`groupreps`](https://www-users.math.umn.edu/~webb/GAPfiles/groupreps) ([manual](https://www-users.math.umn.edu/~webb/GAPfiles/grouprepstutorial.html)) (the new name for the former reps) and [`catreps`](https://www-users.math.umn.edu/~webb/GAPfiles/catreps) ([manual](https://www-users.math.umn.edu/~webb/GAPfiles/catrepstutorial.html)), but it will no longer be supported. The new package [`reps`](https://www-users.math.umn.edu/~webb/GAPfiles/reps) combines the functionality of both former packages.
In March 2020 [Peter Webb](https://www-users.math.umn.edu/~webb/)' and his coauthors made a major new release of the former packages `reps` and `catreps` in which they are combined as one. The code of these former packages is still available at [`groupreps`](https://www-users.math.umn.edu/~webb/GAPfiles/groupreps) ([tutorial](https://www-users.math.umn.edu/~webb/GAPfiles/grouprepstutorial.html)) (the new name for the former reps) and [`catreps`](https://www-users.math.umn.edu/~webb/GAPfiles/catreps) ([tutorial](https://www-users.math.umn.edu/~webb/GAPfiles/catrepstutorial.html)), but it will no longer be supported. The new package [`reps`](https://www-users.math.umn.edu/~webb/GAPfiles/reps) combines the functionality of both former packages.

<!-- BEGIN FOOTER -->
[docs-img]: https://img.shields.io/badge/docs-stable-blue.svg
Expand Down
55 changes: 33 additions & 22 deletions examples/CategoryOfRepresentations.g
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ SetIsLinearClosureOfACategory( kq, true );
#! A representation of the category c3c3 is another way to encode
#! a module homomorphism between two modules over the cyclic group $C_3$ of order $3$:
#! The vector space underlying the first module is the given by the value of (1).
#! The action of C3 on the first module is given by the value of (a).
#! The action of $C_3$ on the first module is given by the value of (a).
#! The vector space underlying the second module is the given by the value of (2).
#! The action on the second module is given by the value of (c).
#! The above relation of the quiver states that the value of (b) is
Expand Down Expand Up @@ -65,9 +65,9 @@ Display( zero );
#! (an empty 0 x 0 matrix)
#!
#! A zero, identity morphism in Category of matrices over GF(3)
const := TensorUnit( CatReps );
unit := TensorUnit( CatReps );
#! <(1)->1, (2)->1; (a)->1x1, (b)->1x1, (c)->1x1>
Display( const );
Display( unit );
#! An object in The category of functors: Algebroid generated by the
#! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices
#! over GF(3) defined by the following data:
Expand Down Expand Up @@ -139,13 +139,13 @@ Display( nine );
#! . . . 1
#!
#! A morphism in Category of matrices over GF(3)
nine(kq.1);
nine( kq.1 );
#! <A vector space object over GF(3) of dimension 5>
nine(kq.2);
nine( kq.2 );
#! <A vector space object over GF(3) of dimension 4>
nine(kq.b);
nine( kq.b );
#! <A morphism in Category of matrices over GF(3)>
Display( nine(kq.b) );
Display( nine( kq.b ) );
#! . 1 . .
#! . . 1 .
#! . . . .
Expand All @@ -165,11 +165,11 @@ fortyone( kq.1 );
#! <A vector space object over GF(3) of dimension 25>
fortyone( kq.2 );
#! <A vector space object over GF(3) of dimension 16>
fortyone(kq.a) = TensorProductOnMorphisms( nine(kq.a), nine(kq.a) );
fortyone( kq.a ) = TensorProductOnMorphisms( nine( kq.a ), nine( kq.a ) );
#! true
fortyone(kq.b) = TensorProductOnMorphisms( nine(kq.b), nine(kq.b) );
fortyone( kq.b ) = TensorProductOnMorphisms( nine( kq.b ), nine( kq.b ) );
#! true
fortyone(kq.c) = TensorProductOnMorphisms( nine(kq.c), nine(kq.c) );
fortyone( kq.c ) = TensorProductOnMorphisms( nine( kq.c ), nine( kq.c ) );
#! true
Display( fortyone );
#! An object in The category of functors: Algebroid generated by the
Expand Down Expand Up @@ -271,8 +271,6 @@ iso := UniversalMorphismFromDirectSum( etas );
#! <(1)->25x25, (2)->16x16>
IsIsomorphism( iso );
#! true
iso;
#! <(1)->25x25, (2)->16x16>
Display( Source( iso ) );
#! An object in The category of functors: Algebroid generated by the
#! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices
Expand Down Expand Up @@ -459,7 +457,7 @@ Display( six );
#! . . 1
#!
#! A morphism in Category of matrices over GF(3)
emb := EmbeddingOfSumOfImagesOfAllMorphisms( const, six );
emb := EmbeddingOfSumOfImagesOfAllMorphisms( unit, six );
#! <(1)->1x3, (2)->0x3>
Display( emb );
#! A morphism in The category of functors: Algebroid generated by the
Expand Down Expand Up @@ -509,17 +507,17 @@ Display( s1 );
#! A zero, isomorphism in Category of matrices over GF(3)
kqop := AlgebroidOverOppositeAlgebra( kq );
#! Algebroid generated by the right quiver q_op(2)[a:1->1,b:2->1,c:2->2]
Y := YonedaEmbedding( kqop );
Yop := YonedaEmbedding( kqop );
#! Yoneda embedding functor
Display( Y );
Display( Yop );
#! Yoneda embedding functor:
#!
#! Algebroid generated by the right quiver q_op(2)[a:1->1,b:2->1,c:2->2]
#! |
#! V
#! The category of functors: Algebroid generated by the right quiver
#! q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices over GF(3)
proj1 := Y( kqop.1 );
proj1 := Yop( kqop.1 );
#! <(1)->3, (2)->3; (a)->3x3, (b)->3x3, (c)->3x3>
IsProjective( proj1 );
#! true
Expand Down Expand Up @@ -557,7 +555,7 @@ Display( proj1 );
#! 1 . .
#!
#! A morphism in Category of matrices over GF(3)
e1 := EmbeddingOfSumOfImagesOfAllMorphisms( const, proj1 );
e1 := EmbeddingOfSumOfImagesOfAllMorphisms( unit, proj1 );
#! <(1)->1x3, (2)->1x3>
Source( e1 );
#! <(1)->1, (2)->1; (a)->1x1, (b)->1x1, (c)->1x1>
Expand Down Expand Up @@ -597,17 +595,30 @@ Display( five );
#! . . 1
#!
#! A morphism in Category of matrices over GF(3)
#! @EndExample
#! The next calculation shows that the $3$-dimensional representation of $C_3$
#! associated to object $1$ is a single copy of the regular representation of $C_3$.
#! @Example
SumOfImagesOfAllMorphisms( s1, six );
#! <(1)->1, (2)->0; (a)->1x1, (b)->1x0, (c)->0x0>
#! @EndExample
#! The next calculation shows that the quotient representation <C>five</C> maps
#! its module at object $1$ monomorphically to the module at object $2$,
#! which must either be indecomposable of dimension $3$, or else the
#! direct sum of indecomposables of dimension $2$ and $1$.
#! @Example
SumOfImagesOfAllMorphisms( s1, five );
#! <(1)->0, (2)->0; (a)->0x0, (b)->0x0, (c)->0x0>
SumOfImagesOfAllMorphisms( const, five );
SumOfImagesOfAllMorphisms( unit, five );
#! <(1)->1, (2)->1; (a)->1x1, (b)->1x1, (c)->1x1>
SumOfImagesOfAllMorphisms( five, const );
#! <(1)->0, (2)->1; (a)->0x0, (b)->0x1, (c)->1x1>
SumOfImagesOfAllMorphisms( six, const );
#! @EndExample
#! The next calculation shows that the module at object $2$ for <C>six</C>
#! is indecomposable of dimension $3$.
#! We now have sufficient information to describe <C>six</C> completely.
#! @Example
SumOfImagesOfAllMorphisms( six, unit );
#! <(1)->0, (2)->1; (a)->0x0, (b)->0x1, (c)->1x1>
proj2 := Y( kqop.2 );
proj2 := Yop( kqop.2 );
#! <(1)->0, (2)->3; (a)->0x0, (b)->0x3, (c)->3x3>
IsProjective( proj2 );
#! true
Expand Down
2 changes: 2 additions & 0 deletions examples/julia/notebooks/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/.ipynb_checkpoints/
/Manifest.toml
Loading

0 comments on commit 5b68099

Please sign in to comment.