Skip to content

Commit

Permalink
Merge branch 'pr-13' into devel
Browse files Browse the repository at this point in the history
* pr-13:
  bumped Tibor's version
  recode ibmpc..lat1 examples/DecomposeOnceByRandomEndomorphism.g
  finished example DecomposeOnceByRandomEndomorphism and solved the documentation problem.
  Tests run, no errors. Included example in documentation, but it will not appear as example between C3C3 and C4C4 in the printed manual. Maybe need to change CatRepsWithCAP.gd ?
  newline at end
  Example for one step of decomposition of fortyone. Compare the block diagonal structure of matrices fortyone(kq.a) with S(kq.a). Some tests needed.
  • Loading branch information
mohamed-barakat committed Oct 17, 2020
2 parents 189ee1c + f2e72d5 commit 74bbfe0
Show file tree
Hide file tree
Showing 3 changed files with 305 additions and 2 deletions.
4 changes: 2 additions & 2 deletions PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ SetPackageInfo( rec(
PackageName := "CatReps",
Subtitle := "Representations and cohomology of finite categories",
Version := Maximum( [
"2020.10.01", ## Mohamed's version
"2020.10-01", ## Mohamed's version
## this line prevents merge conflicts
"2020.07.04", ## Tibor's version
"2020.10-02", ## Tibor's version
## this line prevents merge conflicts
"2020.01.01", ## Peter's version
] ),
Expand Down
3 changes: 3 additions & 0 deletions doc/Doc.autodoc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
@Subsection A category of module homomorphisms
@InsertChunk CategoryOfRepresentations

@Subsection One step in the direct sum decomposition
@InsertChunk DecomposeOnce

@Subsection Another category of module homomorphisms
@InsertChunk RepresentingC4C4

Expand Down
300 changes: 300 additions & 0 deletions examples/DecomposeOnceByRandomEndomorphism.g
Original file line number Diff line number Diff line change
@@ -0,0 +1,300 @@
#! @BeginChunk DecomposeOnce

LoadPackage( "CatReps" );

#! @BeginExample
c3c3 := ConcreteCategoryForCAP( [ [2,3,1], [4,5,6], [,,,5,6,4] ] );
#! A finite concrete category
GF3 := HomalgRingOfIntegers( 3 );
#! GF(3)
kq := Algebroid( GF3, c3c3 );
#! Algebroid generated by the right quiver q(2)[a:1->1,b:1->2,c:2->2]
SetIsLinearClosureOfACategory( kq, true );
CatReps := Hom( kq, GF3 );
#! 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)
d := [[1,1,0,0,0],[0,1,1,0,0],[0,0,1,0,0],[0,0,0,1,1],[0,0,0,0,1]];;
e := [[0,1,0,0],[0,0,1,0],[0,0,0,0],[0,1,0,1],[0,0,1,0]];;
f := [[1,1,0,0],[0,1,1,0],[0,0,1,0],[0,0,0,1]];;
nine := AsObjectInHomCategory( kq, [ 5, 4 ], [ d, e, f ] );
#! <(1)->5, (2)->4; (a)->5x5, (b)->5x4, (c)->4x4>
DecomposeOnceByRandomEndomorphism( nine );
#! fail
#! @EndExample

#! The above shows that our representation <C>nine</C> is
#! indecomposable (with a high probability).
#! We use the tensor product to generate another representation
#! <C>fortyone</C>, that is hopefully decomposable, and
#! inspect the two resulting embeddings <C>iota</C> and
#! <C>kappa</C>.

#! @BeginExample
fortyone := TensorProductOnObjects( nine, nine );
#! <(1)->25, (2)->16; (a)->25x25, (b)->25x16, (c)->16x16>
result := DecomposeOnceByRandomEndomorphism( fortyone );
#! [ <(1)->3x25, (2)->1x16>, <(1)->22x25, (2)->15x16> ]
iota := result[1];
#! <(1)->3x25, (2)->1x16>
kappa := result[2];
#! <(1)->22x25, (2)->15x16>
Display( fortyone );
#! 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:
#!
#!
#! Image of <(1)>:
#! A vector space object over GF(3) of dimension 25
#!
#! Image of <(2)>:
#! A vector space object over GF(3) of dimension 16
#!
#! Image of (1)-[{ Z(3)^0*(a) }]->(1):
#! 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . .
#! . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . .
#! . . 1 . . . . 1 . . . . . . . . . . . . . . . . .
#! . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . .
#! . . . . 1 . . . . 1 . . . . . . . . . . . . . . .
#! . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . .
#! . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . .
#! . . . . . . . 1 . . . . 1 . . . . . . . . . . . .
#! . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . .
#! . . . . . . . . . 1 . . . . 1 . . . . . . . . . .
#! . . . . . . . . . . 1 1 . . . . . . . . . . . . .
#! . . . . . . . . . . . 1 1 . . . . . . . . . . . .
#! . . . . . . . . . . . . 1 . . . . . . . . . . . .
#! . . . . . . . . . . . . . 1 1 . . . . . . . . . .
#! . . . . . . . . . . . . . . 1 . . . . . . . . . .
#! . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . .
#! . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . .
#! . . . . . . . . . . . . . . . . . 1 . . . . 1 . .
#! . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1
#! . . . . . . . . . . . . . . . . . . . 1 . . . . 1
#! . . . . . . . . . . . . . . . . . . . . 1 1 . . .
#! . . . . . . . . . . . . . . . . . . . . . 1 1 . .
#! . . . . . . . . . . . . . . . . . . . . . . 1 . .
#! . . . . . . . . . . . . . . . . . . . . . . . 1 1
#! . . . . . . . . . . . . . . . . . . . . . . . . 1
#!
#! A morphism in Category of matrices over GF(3)
#!
#!
#! Image of (1)-[{ Z(3)^0*(b) }]->(2):
#! . . . . . 1 . . . . . . . . . .
#! . . . . . . 1 . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . 1 . 1 . . . . . . . .
#! . . . . . . 1 . . . . . . . . .
#! . . . . . . . . . 1 . . . . . .
#! . . . . . . . . . . 1 . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . 1 . 1 . . . .
#! . . . . . . . . . . 1 . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . 1 . . . . . . . 1 . .
#! . . . . . . 1 . . . . . . . 1 .
#! . . . . . . . . . . . . . . . .
#! . . . . . 1 . 1 . . . . . 1 . 1
#! . . . . . . 1 . . . . . . . 1 .
#! . . . . . . . . . 1 . . . . . .
#! . . . . . . . . . . 1 . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . 1 . 1 . . . .
#! . . . . . . . . . . 1 . . . . .
#!
#! A morphism in Category of matrices over GF(3)
#!
#!
#! Image of (2)-[{ Z(3)^0*(c) }]->(2):
#! 1 1 . . 1 1 . . . . . . . . . .
#! . 1 1 . . 1 1 . . . . . . . . .
#! . . 1 . . . 1 . . . . . . . . .
#! . . . 1 . . . 1 . . . . . . . .
#! . . . . 1 1 . . 1 1 . . . . . .
#! . . . . . 1 1 . . 1 1 . . . . .
#! . . . . . . 1 . . . 1 . . . . .
#! . . . . . . . 1 . . . 1 . . . .
#! . . . . . . . . 1 1 . . . . . .
#! . . . . . . . . . 1 1 . . . . .
#! . . . . . . . . . . 1 . . . . .
#! . . . . . . . . . . . 1 . . . .
#! . . . . . . . . . . . . 1 1 . .
#! . . . . . . . . . . . . . 1 1 .
#! . . . . . . . . . . . . . . 1 .
#! . . . . . . . . . . . . . . . 1
#!
#! A morphism in Category of matrices over GF(3)
S := DirectSum( [ Source( iota ), Source( kappa ) ] );
#! <(1)->25, (2)->16; (a)->25x25, (b)->25x16, (c)->16x16>
Display( S );
#! 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:
#!
#!
#! Image of <(1)>:
#! A vector space object over GF(3) of dimension 25
#!
#! Image of <(2)>:
#! A vector space object over GF(3) of dimension 16
#!
#! Image of (1)-[{ Z(3)^0*(a) }]->(1):
#! . 2 . . . . . . . . . . . . . . . . . . . . . . .
#! 1 2 2 . . . . . . . . . . . . . . . . . . . . . .
#! . . 1 . . . . . . . . . . . . . . . . . . . . . .
#! . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . .
#! . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . .
#! . . . . . 1 . . . . 1 . . . . . . . . . . . . . .
#! . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . .
#! . . . . . . . 1 . . . . 1 . . . . . . . . . . . .
#! . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . .
#! . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . .
#! . . . . . . . . . . 1 . . . . 1 . . . . . . . . .
#! . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . .
#! . . . . . . . . . . . . 1 . . . . 1 . . . . . . .
#! . . . . . . . . . . . . . 1 1 . . . . . . . . . .
#! . . . . . . . . . . . . . . 1 1 . . . . . . . . .
#! . . . . . . . . . . . . . . . 1 . . . . . . . . .
#! . . . . . . . . . . . . . . . . 1 1 . . . . . . .
#! . . . . . . . . . . . . . . . . . 1 . . . . . . .
#! . . . . . . . . . . . . . . . . . . 1 1 . 1 1 . .
#! . . . . . . . . . . . . . . . . . . . 1 1 . 1 1 .
#! . . . . . . . . . . . . . . . . . . . . 1 . . 1 .
#! . . . . . . . . . . . . . . . . . . . . . 1 1 . .
#! . . . . . . . . . . . . . . . . . . . . . . 1 1 .
#! . . . . . . . . . . . . . . . . . . . . . . . 1 .
#! . . . . . . . . . . . . . . . . . . . . . . . . 1
#!
#! A morphism in Category of matrices over GF(3)
#!
#!
#! Image of (1)-[{ Z(3)^0*(b) }]->(2):
#! 2 . . . . . . . . . . . . . . .
#! 1 . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . 1 . . . . . . . . .
#! . . . . . . . 1 . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . 1 . 1 . . . . . . .
#! . . . . . . . 1 . . . . . . . .
#! . . . . . . . . . . 1 . . . . .
#! . . . . . . . . . . . 1 . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . 1 . 1 . . .
#! . . . . . . . . . . . 1 . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . 1 . . . . . . . 1 .
#! . . . . . . . 1 . . . . . . . 1
#! . . . . . . . . . . . . . . . .
#! . . . . . . . . . . 1 . . . . .
#! . . . . . . . . . . . 1 . . . .
#! . . . . . . . . . . . . . . . .
#! . . . . . . . 2 . . 1 . 1 . . 2
#!
#! A morphism in Category of matrices over GF(3)
#!
#!
#! Image of (2)-[{ Z(3)^0*(c) }]->(2):
#! 1 . . . . . . . . . . . . . . .
#! . 1 1 . . 1 1 . . . . . . . . .
#! . . 1 1 . . 1 1 . . . . . . . .
#! . . . 1 . . . 1 . . . . . . . .
#! . . . . 1 . . . 1 . . . . . . .
#! . . . . . 1 1 . . 1 1 . . . . .
#! . . . . . . 1 1 . . 1 1 . . . .
#! . . . . . . . 1 . . . 1 . . . .
#! . . . . . . . . 1 . . . 1 . . .
#! . . . . . . . . . 1 1 . . . . .
#! . . . . . . . . . . 1 1 . . . .
#! . . . . . . . . . . . 1 . . . .
#! . . . . . . . . . . . . 1 . . .
#! . . . . . . . . . . . . . 1 1 .
#! . . . . . . . . . . . . . . 1 1
#! . . . . . . . . . . . . . . . 1
#!
#! A morphism in Category of matrices over GF(3)
#! @EndExample

#! Comparing the matrices of <C>fortyone</C> with those of
#! <C>S</C>, we see
#! that after decomposing once, we have separated one small
#! matrix on the diagonal: A $3\times 3$-matrix from <C>S(kq.a)</C>,
#! a $3 \times 1$-matrix from <C>S(kq.b)</C> and a $1\times 1$-matrix
#! from <C>S(kq.c)</C>. This matches with the source of the
#! embedding <C>iota</C>.

#! @BeginExample
Display( iota );
#! A morphism 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:
#!
#!
#! Image of <(1)>:
#! 2 2 . 1 1 . . . . . . . . . . 1 2 1 2 1 . . . . .
#! 1 2 1 2 1 1 2 1 2 1 . . . . . 2 . . 1 . 2 . . 1 .
#! . . 2 . . . 1 2 . 2 2 . . 1 . . . 1 . . . 2 . . 1
#!
#! A split monomorphism in Category of matrices over GF(3)
#!
#!
#! Image of <(2)>:
#! . . . . . . . . . . . . . . . 1
#!
#! A split monomorphism in Category of matrices over GF(3)
Display( Source( iota) );
#! 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:
#!
#! Image of <(1)>:
#! A vector space object over GF(3) of dimension 3
#!
#! Image of <(2)>:
#! A vector space object over GF(3) of dimension 1
#!
#! Image of (1)-[{ Z(3)^0*(a) }]->(1):
#! . 2 .
#! 1 2 2
#! . . 1
#!
#! A morphism in Category of matrices over GF(3)
#!
#!
#! Image of (1)-[{ Z(3)^0*(b) }]->(2):
#! 2
#! 1
#! .
#!
#! A morphism in Category of matrices over GF(3)
#!
#!
#! Image of (2)-[{ Z(3)^0*(c) }]->(2):
#! 1
#!
#! A morphism in Category of matrices over GF(3)
#! @EndExample

#! We can then look at the other embedding of the direct sum
#! decomposition, <C>kappa</C>. The iteration of
#! <C>WeakDirectSumDecomposition</C> will continue then
#! with <C>Source( kappa )</C>. Each time the random
#! endomorphism will decompose the representation,
#! lowering the dimensions of each object at most by $3$.

#! @Example
Source( kappa );
#! <(1)->22, (2)->15; (a)->22x22, (b)->22x15, (c)->15x15>
result2 := DecomposeOnceByRandomEndomorphism( Source( kappa ) );
#! [ <(1)->3x22, (2)->3x15>, <(1)->19x22, (2)->12x15> ]
#! @EndExample
#! @EndChunk

0 comments on commit 74bbfe0

Please sign in to comment.