diff --git a/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g b/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g index c5eb6d76f7..30693cd150 100644 --- a/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g +++ b/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g @@ -19,52 +19,52 @@ EEE := KoszulDualRing( QQxy * "a,b" );; operations_for_arbitrary_ring := [ "AdditionForMorphisms", "AdditiveInverseForMorphisms", - #"AssociatorLeftToRightWithGivenTensorProducts", - #"AssociatorRightToLeftWithGivenTensorProducts", - #"BraidingWithGivenTensorProducts", - #"CoevaluationMorphismWithGivenRange", "CokernelColiftWithGivenCokernelObject", "CokernelProjection", - #"Colift", - #"ColiftOrFail", "DirectSum", "EpimorphismFromSomeProjectiveObject", - #"EvaluationMorphismWithGivenSource", "IdentityMorphism", "InjectionOfCofactorOfDirectSumWithGivenDirectSum", - #"InternalHomOnMorphismsWithGivenInternalHoms", - #"InternalHomOnObjects", - #"IsColiftable", "IsCongruentForMorphisms", "IsEqualForMorphisms", - #"IsEqualForObjects", - #"IsLiftable", + "IsEqualForObjects", #"IsWellDefinedForMorphisms", #"IsWellDefinedForObjects", "IsZeroForMorphisms", - #"KernelEmbedding", - #"LeftUnitorWithGivenTensorProduct", - #"Lift", - #"LiftAlongMonomorphism", - #"LiftOrFail", - #"MultiplyWithElementOfCommutativeRingForMorphisms", - #"PreCompose", + "KernelEmbedding", + "LiftAlongMonomorphism", + "PreCompose", "ProjectionInFactorOfDirectSumWithGivenDirectSum", - #"RightUnitorWithGivenTensorProduct", - #"TensorProductOnMorphismsWithGivenTensorProducts", - #"TensorProductOnObjects", - #"TensorUnit", "UniversalMorphismFromDirectSumWithGivenDirectSum", "UniversalMorphismFromZeroObjectWithGivenZeroObject", "UniversalMorphismIntoDirectSumWithGivenDirectSum", "UniversalMorphismIntoZeroObjectWithGivenZeroObject", "ZeroMorphism", - "ZeroObject" + "ZeroObject", ];; operations_for_commutative_ring := Concatenation( operations_for_arbitrary_ring, - [ "MultiplyWithElementOfCommutativeRingForMorphisms" ] + [ "AssociatorLeftToRightWithGivenTensorProducts", + "AssociatorRightToLeftWithGivenTensorProducts", + "BraidingWithGivenTensorProducts", + "CoevaluationMorphismWithGivenRange", + #"Colift", + #"ColiftOrFail", + "EvaluationMorphismWithGivenSource", + "InternalHomOnMorphismsWithGivenInternalHoms", + "InternalHomOnObjects", + #"IsColiftable", + #"IsLiftable", + "LeftUnitorWithGivenTensorProduct", + #"Lift", + #"LiftOrFail", + "MultiplyWithElementOfCommutativeRingForMorphisms", + "RightUnitorWithGivenTensorProduct", + "TensorProductOnMorphismsWithGivenTensorProducts", + "TensorProductOnObjects", + "TensorUnit", + ] );; precompile_LeftPresentations := function( ring, name, operations ) diff --git a/CompilerForCAP/gap/InferDataTypes.gi b/CompilerForCAP/gap/InferDataTypes.gi index fd9be5a77f..5c198a3fa6 100644 --- a/CompilerForCAP/gap/InferDataTypes.gi +++ b/CompilerForCAP/gap/InferDataTypes.gi @@ -1461,8 +1461,14 @@ CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "CertainRows", [ "IsHomalgM CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "CertainColumns", [ "IsHomalgMatrix", "IsList" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "KroneckerMat", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "DualKroneckerMat", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "BasisOfRowModule", [ "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "BasisOfColumnModule", [ "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "ReducedBasisOfRowModule", [ "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "ReducedBasisOfColumnModule", [ "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "LeftDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "LeftDivide", [ "IsHomalgMatrix", "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "RightDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "RightDivide", [ "IsHomalgMatrix", "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "BasisOfRows", [ "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "BasisOfColumns", [ "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "SyzygiesOfRows", [ "IsHomalgMatrix" ], "IsHomalgMatrix" ); diff --git a/FreydCategoriesForCAP/gap/FreydCategory.gd b/FreydCategoriesForCAP/gap/FreydCategory.gd index f520743f06..a7262f0ca3 100644 --- a/FreydCategoriesForCAP/gap/FreydCategory.gd +++ b/FreydCategoriesForCAP/gap/FreydCategory.gd @@ -237,7 +237,7 @@ DeclareGlobalFunction( "IsValidInputForFreydCategory" ); #! into $\mathrm{\underline{Hom}}(A, b)$ is the internal Hom-embedding. This method returns this very map. #! @Returns a (mono)morphism #! @Arguments cat, a, b -DeclareOperationWithCache( "INTERNAL_HOM_EMBEDDING", +DeclareOperation( "INTERNAL_HOM_EMBEDDING", [ IsFreydCategory, IsFreydCategoryObject, IsFreydCategoryObject ] ); diff --git a/FreydCategoriesForCAP/gap/FreydCategory.gi b/FreydCategoriesForCAP/gap/FreydCategory.gi index fc694a8305..a40ebfbb3c 100644 --- a/FreydCategoriesForCAP/gap/FreydCategory.gi +++ b/FreydCategoriesForCAP/gap/FreydCategory.gi @@ -337,7 +337,7 @@ InstallOtherMethodForCompilerForCAP( MereExistenceOfWitnessForBeingCongruentToZe end ); -InstallMethodWithCacheFromObject( INTERNAL_HOM_EMBEDDING, +InstallMethodForCompilerForCAP( INTERNAL_HOM_EMBEDDING, [ IsFreydCategory, IsFreydCategoryObject, IsFreydCategoryObject ], function( cat, a, b ) local source, range, mor; diff --git a/LinearAlgebraForCAP/gap/CompilerLogic.gi b/LinearAlgebraForCAP/gap/CompilerLogic.gi index 5e0e1a81cd..11c5422bb3 100644 --- a/LinearAlgebraForCAP/gap/CompilerLogic.gi +++ b/LinearAlgebraForCAP/gap/CompilerLogic.gi @@ -54,3 +54,329 @@ CapJitAddLogicTemplate( needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], ) ); + +# TransposedMatrix( HomalgIdentityMatrix( size, ring ) ) -> HomalgIdentityMatrix( size, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "size", "ring" ], + src_template := "TransposedMatrix( HomalgIdentityMatrix( size, ring ) )", + dst_template := "HomalgIdentityMatrix( size, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# TransposedMatrix( HomalgZeroMatrix( 0, size, ring ) ) -> HomalgZeroMatrix( size, 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "size", "ring" ], + src_template := "TransposedMatrix( HomalgZeroMatrix( 0, size, ring ) )", + dst_template := "HomalgZeroMatrix( size, 0, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# TransposedMatrix( HomalgZeroMatrix( size, 0, ring ) ) -> HomalgZeroMatrix( 0, size, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "size", "ring" ], + src_template := "TransposedMatrix( HomalgZeroMatrix( size, 0, ring ) )", + dst_template := "HomalgZeroMatrix( 0, size, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# KroneckerMat( HomalgZeroMatrix( size, 0, ring ), matrix ) -> HomalgZeroMatrix( size * NumberRows( matrix ), 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "size", "matrix", "ring" ], + src_template := "KroneckerMat( HomalgZeroMatrix( size, 0, ring ), matrix )", + dst_template := "HomalgZeroMatrix( size * NumberRows( matrix ), 0, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# KroneckerMat( HomalgZeroMatrix( 0, size, ring ), matrix ) -> HomalgZeroMatrix( 0, size * NumberColumns( matrix ), ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "size", "matrix", "ring" ], + src_template := "KroneckerMat( HomalgZeroMatrix( 0, size, ring ), matrix )", + dst_template := "HomalgZeroMatrix( 0, size * NumberColumns( matrix ), ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# KroneckerMat( matrix, HomalgZeroMatrix( size, 0, ring ) ) -> HomalgZeroMatrix( NumberRows( matrix ) * size, 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "size", "matrix", "ring" ], + src_template := "KroneckerMat( matrix, HomalgZeroMatrix( size, 0, ring ) )", + dst_template := "HomalgZeroMatrix( NumberRows( matrix ) * size, 0, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# KroneckerMat( matrix, HomalgZeroMatrix( 0, size, ring ) ) -> HomalgZeroMatrix( 0, NumberColumns( matrix ) * size, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "size", "matrix", "ring" ], + src_template := "KroneckerMat( matrix, HomalgZeroMatrix( 0, size, ring ) )", + dst_template := "HomalgZeroMatrix( 0, NumberColumns( matrix ) * size, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# KroneckerMat( HomalgIdentityMatrix( 0, ring ), matrix ) -> HomalgIdentityMatrix( 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "ring" ], + src_template := "KroneckerMat( HomalgIdentityMatrix( 0, ring ), matrix )", + dst_template := "HomalgIdentityMatrix( 0, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# KroneckerMat( matrix, HomalgIdentityMatrix( 0, ring ) ) -> HomalgIdentityMatrix( 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "ring" ], + src_template := "KroneckerMat( matrix, HomalgIdentityMatrix( 0, ring ) )", + dst_template := "HomalgIdentityMatrix( 0, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# KroneckerMat( HomalgIdentityMatrix( m, ring ) , HomalgIdentityMatrix( n ring ) ) -> HomalgIdentityMatrix( m*n, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "m", "n", "ring" ], + src_template := "KroneckerMat( HomalgIdentityMatrix( m, ring ), HomalgIdentityMatrix( n, ring ) )", + dst_template := "HomalgIdentityMatrix( m*n, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# TODO? +# KroneckerMat( HomalgIdentityMatrix( m, ring ), matrix ) -> DiagMat( ring, ListWithIdenticalEntries( m, matrix ) ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "m", "matrix", "ring" ], + src_template := "KroneckerMat( HomalgIdentityMatrix( m, ring ), matrix )", + dst_template := "DiagMat( ring, ListWithIdenticalEntries( m, matrix ) )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# DiagMat( ring, [ ] ) -> HomalgIdentityMatrix( 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "ring" ], + src_template := "DiagMat( ring, [ ] )", + dst_template := "HomalgIdentityMatrix( 0, ring )", + ) +); + +# ReducedSyzygiesOfRows( matrix, HomalgIdentityMatrix( 0, ring ) ) -> ReducedSyzygiesOfRows( matrix ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "ring" ], + src_template := "ReducedSyzygiesOfRows( matrix, HomalgIdentityMatrix( 0, ring ) )", + dst_template := "ReducedSyzygiesOfRows( matrix )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# ReducedSyzygiesOfColumns( matrix, HomalgIdentityMatrix( 0, ring ) ) -> ReducedSyzygiesOfColumns( matrix ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "ring" ], + src_template := "ReducedSyzygiesOfColumns( matrix, HomalgIdentityMatrix( 0, ring ) )", + dst_template := "ReducedSyzygiesOfColumns( matrix )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# ReducedSyzygiesOfRows( matrix, HomalgZeroMatrix( m, n, ring ) ) -> ReducedSyzygiesOfRows( matrix ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "m", "n", "ring" ], + src_template := "ReducedSyzygiesOfRows( matrix, HomalgZeroMatrix( m, n, ring ) )", + dst_template := "ReducedSyzygiesOfRows( matrix )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# ReducedSyzygiesOfColumns( matrix, HomalgZeroMatrix( m, n, ring ) ) -> ReducedSyzygiesOfColumns( matrix ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "m", "n", "ring" ], + src_template := "ReducedSyzygiesOfColumns( matrix, HomalgZeroMatrix( m, n, ring ) )", + dst_template := "ReducedSyzygiesOfColumns( matrix )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# ReducedSyzygiesOfRows( HomalgZeroMatrix( 0, m, ring ) ) -> HomalgZeroMatrix( 0, 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "m", "ring" ], + src_template := "ReducedSyzygiesOfRows( HomalgZeroMatrix( 0, m, ring ) )", + dst_template := "HomalgZeroMatrix( 0, 0, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# ReducedSyzygiesOfRows( HomalgZeroMatrix( m, 0, ring ) ) -> HomalgIdentityMatrix( m, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "m", "ring" ], + src_template := "ReducedSyzygiesOfRows( HomalgZeroMatrix( m, 0, ring ) )", + dst_template := "HomalgIdentityMatrix( m, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# ReducedSyzygiesOfColumns( HomalgZeroMatrix( 0, m, ring ) ) -> HomalgIdentityMatrix( m, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "m", "ring" ], + src_template := "ReducedSyzygiesOfColumns( HomalgZeroMatrix( 0, m, ring ) )", + dst_template := "HomalgIdentityMatrix( m, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# ReducedSyzygiesOfColumns( HomalgZeroMatrix( m, 0, ring ) ) -> HomalgZeroMatrix( 0, 0, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "m", "ring" ], + src_template := "ReducedSyzygiesOfColumns( HomalgZeroMatrix( m, 0, ring ) )", + dst_template := "HomalgZeroMatrix( 0, 0, ring )", + needed_packages := [ [ "MatricesForHomalg", ">= 2020.05.19" ] ], + ) +); + +# TODO +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix_B", "matrix_A", "matrix_L", "ring", "nr_cols_A", "nr_rows_L" ], + src_template := "CertainColumns( RightDivide( matrix_B, UnionOfRows( ring, nr_cols_A, [ matrix_L, matrix_A ] ) ), [ NumberRows( matrix_L ) + 1 .. NumberRows( matrix_L ) + 1 - 1 + nr_rows_L ] ) ", + dst_template := "RightDivide( matrix_B, matrix_A, matrix_L )", + ) +); + +# TODO +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix_A", "matrix_B", "matrix_L", "ring", "nr_rows_A", "nr_cols_L" ], + src_template := "CertainRows( LeftDivide( UnionOfColumns( ring, nr_rows_A, [ matrix_L, matrix_A ] ), matrix_B ), [ NumberColumns( matrix_L ) + 1 .. NumberColumns( matrix_L ) + 1 - 1 + nr_cols_L ] )", + dst_template := "LeftDivide( matrix_A, matrix_B, matrix_L )", + ) +); + +# RightDivide( HomalgIdentityMatrix( number, ring ), HomalgIdentityMatrix( number, ring ), matrix_L ) -> HomalgIdentityMatrix( number, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix_L", "ring", "number" ], + src_template := "RightDivide( HomalgIdentityMatrix( number, ring ), HomalgIdentityMatrix( number, ring ), matrix_L )", + dst_template := "HomalgIdentityMatrix( number, ring )", + ) +); + +# LeftDivide( HomalgIdentityMatrix( number, ring ), HomalgIdentityMatrix( number, ring ), matrix_L ) -> HomalgIdentityMatrix( number, ring ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix_L", "ring", "number" ], + src_template := "LeftDivide( HomalgIdentityMatrix( number, ring ), HomalgIdentityMatrix( number, ring ), matrix_L )", + dst_template := "HomalgIdentityMatrix( number, ring )", + ) +); + +# ReducedSyzygiesOfRows( HomalgIdentityMatrix( number, ring ), M2 ) -> ReducedBasisOfRowModule( M2 ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "M2", "ring", "number" ], + src_template := "ReducedSyzygiesOfRows( HomalgIdentityMatrix( number, ring ), M2 )", + dst_template := "ReducedBasisOfRowModule( M2 )", + ) +); + +# ReducedSyzygiesOfColumns( HomalgIdentityMatrix( number, ring ), M2 ) -> ReducedBasisOfColumnModule( M2 ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "M2", "ring", "number" ], + src_template := "ReducedSyzygiesOfColumns( HomalgIdentityMatrix( number, ring ), M2 )", + dst_template := "ReducedBasisOfColumnModule( M2 )", + ) +); + +# ReducedBasisOfRowModule( DiagMat( ring, ListWithIdenticalEntries( number, matrix ) ) ) -> DiagMat( ring, ListWithIdenticalEntries( number, ReducedBasisOfRowModule( matrix ) ) ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "ring", "number" ], + src_template := "ReducedBasisOfRowModule( DiagMat( ring, ListWithIdenticalEntries( number, matrix ) ) )", + dst_template := "DiagMat( ring, ListWithIdenticalEntries( number, ReducedBasisOfRowModule( matrix ) ) )", + ) +); + +# ReducedBasisOfColumnModule( DiagMat( ring, ListWithIdenticalEntries( number, matrix ) ) ) -> DiagMat( ring, ListWithIdenticalEntries( number, ReducedBasisOfColumnModule( matrix ) ) ) +CapJitAddLogicTemplate( + rec( + variable_names := [ "matrix", "ring", "number" ], + src_template := "ReducedBasisOfColumnModule( DiagMat( ring, ListWithIdenticalEntries( number, matrix ) ) )", + dst_template := "DiagMat( ring, ListWithIdenticalEntries( number, ReducedBasisOfColumnModule( matrix ) ) )", + ) +); + +# ListWithIdenticalEntries( 0, a ) = [ ] +CapJitAddLogicTemplate( + rec( + variable_names := [ "a" ], + src_template := "ListWithIdenticalEntries( 0, a )", + dst_template := "[ ]", + ) +); + +# [ 1 .. 2 - 1 ] -> [ 1 ] +CapJitAddLogicTemplate( + rec( + variable_names := [ ], + src_template := "[ 1 .. 2 - 1 ]", + dst_template := "[ 1 ]", + ) +); + +# [ a, b ]{ [ 1 ] } -> [ a ] +CapJitAddLogicTemplate( + rec( + variable_names := [ "a", "b" ], + src_template := "[ a, b ]{ [ 1 ] }", + dst_template := "[ a ]", + ) +); + +# Sum( [ a ] ) -> a +CapJitAddLogicTemplate( + rec( + variable_names := [ "a" ], + src_template := "Sum( [ a ] )", + dst_template := "a", + ) +); + +# 0 * a = 0 +CapJitAddLogicTemplate( + rec( + variable_names := [ "a" ], + src_template := "0 * a", + dst_template := "0", + ) +); + +# a * 0 = 0 +CapJitAddLogicTemplate( + rec( + variable_names := [ "a" ], + src_template := "a * 0", + dst_template := "0", + ) +); diff --git a/LinearAlgebraForCAP/gap/precompiled_categories/MatrixCategoryPrecompiled.gi b/LinearAlgebraForCAP/gap/precompiled_categories/MatrixCategoryPrecompiled.gi index 65ebd579eb..361a9c4cfd 100644 --- a/LinearAlgebraForCAP/gap/precompiled_categories/MatrixCategoryPrecompiled.gi +++ b/LinearAlgebraForCAP/gap/precompiled_categories/MatrixCategoryPrecompiled.gi @@ -253,48 +253,46 @@ end ######## function ( cat_1, a_1, b_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1; - deduped_21_1 := UnderlyingRing( cat_1 ); - deduped_20_1 := Dimension( b_1 ); - deduped_19_1 := Dimension( a_1 ); - deduped_18_1 := 1 * deduped_19_1; - deduped_17_1 := HomalgIdentityMatrix( deduped_19_1, deduped_21_1 ); - deduped_16_1 := 1 * deduped_20_1; - deduped_15_1 := HomalgIdentityMatrix( deduped_20_1, deduped_21_1 ); - deduped_14_1 := HomalgIdentityMatrix( 1, deduped_21_1 ); - deduped_13_1 := deduped_19_1 * deduped_20_1; - deduped_12_1 := deduped_13_1 * deduped_13_1; - deduped_11_1 := deduped_18_1 * deduped_16_1; - deduped_10_1 := deduped_19_1 * deduped_16_1; - deduped_9_1 := HomalgIdentityMatrix( deduped_13_1, deduped_21_1 ); - deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_21_1 ); - deduped_7_1 := deduped_11_1 * deduped_13_1; - hoisted_6_1 := deduped_11_1; - hoisted_5_1 := deduped_13_1; - hoisted_4_1 := deduped_16_1; - hoisted_3_1 := deduped_19_1; - hoisted_2_1 := deduped_20_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_9_1 ), KroneckerMat( deduped_14_1, KroneckerMat( deduped_14_1, ConvertMatrixToRow( deduped_15_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1; + deduped_19_1 := Dimension( b_1 ); + deduped_18_1 := Dimension( a_1 ); + deduped_17_1 := UnderlyingRing( cat_1 ); + deduped_16_1 := 1 * deduped_18_1; + deduped_15_1 := HomalgIdentityMatrix( deduped_18_1, deduped_17_1 ); + deduped_14_1 := 1 * deduped_19_1; + deduped_13_1 := HomalgIdentityMatrix( deduped_19_1, deduped_17_1 ); + deduped_12_1 := deduped_18_1 * deduped_19_1; + deduped_11_1 := deduped_12_1 * deduped_12_1; + deduped_10_1 := deduped_16_1 * deduped_14_1; + deduped_9_1 := deduped_18_1 * deduped_14_1; + deduped_8_1 := HomalgIdentityMatrix( deduped_10_1, deduped_17_1 ); + deduped_7_1 := deduped_10_1 * deduped_12_1; + hoisted_6_1 := deduped_10_1; + hoisted_5_1 := deduped_12_1; + hoisted_4_1 := deduped_14_1; + hoisted_3_1 := deduped_18_1; + hoisted_2_1 := deduped_19_1; + morphism_attr_1_1 := DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_12_1, DiagMat( deduped_17_1, ListWithIdenticalEntries( 1, DiagMat( deduped_17_1, ListWithIdenticalEntries( 1, ConvertMatrixToRow( deduped_13_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_21_1 ), deduped_15_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_20_1 * 1), deduped_21_1 ), deduped_15_1 ) ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_14_1, ConvertMatrixToRow( deduped_17_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_21_1 ), deduped_17_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_19_1 * 1), deduped_21_1 ), deduped_17_1 )), HomalgIdentityMatrix( deduped_16_1, deduped_21_1 ) ), deduped_15_1 ) * KroneckerMat( KroneckerMat( HomalgIdentityMatrix( deduped_18_1, deduped_21_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_21_1 ) ), deduped_15_1 ) ) * (KroneckerMat( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_17_1 ), deduped_13_1 ) ) ) * KroneckerMat( KroneckerMat( (DiagMat( deduped_17_1, ListWithIdenticalEntries( 1, ConvertMatrixToRow( deduped_15_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_17_1 ), deduped_15_1 )), HomalgIdentityMatrix( deduped_14_1, deduped_17_1 ) ), deduped_13_1 ) * KroneckerMat( DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_16_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_17_1 ) ) ), deduped_13_1 ) ) ) * (DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_21_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_21_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_9_1 ), deduped_8_1 )) * KroneckerMat( deduped_17_1, deduped_15_1 ); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_17_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_17_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_12_1, deduped_17_1 ) ), deduped_8_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -306,48 +304,46 @@ end ######## function ( cat_1, s_1, a_1, b_1, r_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1; - deduped_21_1 := UnderlyingRing( cat_1 ); - deduped_20_1 := Dimension( b_1 ); - deduped_19_1 := Dimension( a_1 ); - deduped_18_1 := 1 * deduped_19_1; - deduped_17_1 := HomalgIdentityMatrix( deduped_19_1, deduped_21_1 ); - deduped_16_1 := 1 * deduped_20_1; - deduped_15_1 := HomalgIdentityMatrix( deduped_20_1, deduped_21_1 ); - deduped_14_1 := HomalgIdentityMatrix( 1, deduped_21_1 ); - deduped_13_1 := deduped_19_1 * deduped_20_1; - deduped_12_1 := deduped_13_1 * deduped_13_1; - deduped_11_1 := deduped_18_1 * deduped_16_1; - deduped_10_1 := deduped_19_1 * deduped_16_1; - deduped_9_1 := HomalgIdentityMatrix( deduped_13_1, deduped_21_1 ); - deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_21_1 ); - deduped_7_1 := deduped_11_1 * deduped_13_1; - hoisted_6_1 := deduped_11_1; - hoisted_5_1 := deduped_13_1; - hoisted_4_1 := deduped_16_1; - hoisted_3_1 := deduped_19_1; - hoisted_2_1 := deduped_20_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_9_1 ), KroneckerMat( deduped_14_1, KroneckerMat( deduped_14_1, ConvertMatrixToRow( deduped_15_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1; + deduped_19_1 := Dimension( b_1 ); + deduped_18_1 := Dimension( a_1 ); + deduped_17_1 := UnderlyingRing( cat_1 ); + deduped_16_1 := 1 * deduped_18_1; + deduped_15_1 := HomalgIdentityMatrix( deduped_18_1, deduped_17_1 ); + deduped_14_1 := 1 * deduped_19_1; + deduped_13_1 := HomalgIdentityMatrix( deduped_19_1, deduped_17_1 ); + deduped_12_1 := deduped_18_1 * deduped_19_1; + deduped_11_1 := deduped_12_1 * deduped_12_1; + deduped_10_1 := deduped_16_1 * deduped_14_1; + deduped_9_1 := deduped_18_1 * deduped_14_1; + deduped_8_1 := HomalgIdentityMatrix( deduped_10_1, deduped_17_1 ); + deduped_7_1 := deduped_10_1 * deduped_12_1; + hoisted_6_1 := deduped_10_1; + hoisted_5_1 := deduped_12_1; + hoisted_4_1 := deduped_14_1; + hoisted_3_1 := deduped_18_1; + hoisted_2_1 := deduped_19_1; + morphism_attr_1_1 := DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_12_1, DiagMat( deduped_17_1, ListWithIdenticalEntries( 1, DiagMat( deduped_17_1, ListWithIdenticalEntries( 1, ConvertMatrixToRow( deduped_13_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_21_1 ), deduped_15_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_20_1 * 1), deduped_21_1 ), deduped_15_1 ) ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_14_1, ConvertMatrixToRow( deduped_17_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_21_1 ), deduped_17_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_19_1 * 1), deduped_21_1 ), deduped_17_1 )), HomalgIdentityMatrix( deduped_16_1, deduped_21_1 ) ), deduped_15_1 ) * KroneckerMat( KroneckerMat( HomalgIdentityMatrix( deduped_18_1, deduped_21_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_21_1 ) ), deduped_15_1 ) ) * (KroneckerMat( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_17_1 ), deduped_13_1 ) ) ) * KroneckerMat( KroneckerMat( (DiagMat( deduped_17_1, ListWithIdenticalEntries( 1, ConvertMatrixToRow( deduped_15_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_17_1 ), deduped_15_1 )), HomalgIdentityMatrix( deduped_14_1, deduped_17_1 ) ), deduped_13_1 ) * KroneckerMat( DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_16_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_17_1 ) ) ), deduped_13_1 ) ) ) * (DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_21_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_21_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_9_1 ), deduped_8_1 )) * KroneckerMat( deduped_17_1, deduped_15_1 ); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_17_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_17_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_12_1, deduped_17_1 ) ), deduped_8_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -361,17 +357,17 @@ end function ( cat_1, a_1, b_1, alpha_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := UnderlyingRing( cat_1 ); - deduped_6_1 := Dimension( a_1 ); - deduped_5_1 := deduped_6_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ); - hoisted_3_1 := deduped_6_1; + deduped_7_1 := Dimension( a_1 ); + deduped_6_1 := UnderlyingRing( cat_1 ); + deduped_5_1 := deduped_7_1 * deduped_8_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 ); + hoisted_3_1 := deduped_7_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_6_1, deduped_7_1 ), ConvertMatrixToRow( deduped_4_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_8_1 * deduped_6_1), deduped_7_1 ), deduped_4_1 ) * KroneckerMat( UnderlyingMatrix( alpha_1 ), deduped_4_1 ); + morphism_attr_1_1 := DiagMat( deduped_6_1, ListWithIdenticalEntries( deduped_7_1, ConvertMatrixToRow( deduped_4_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( UnderlyingMatrix( alpha_1 ), deduped_4_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), b_1, UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -383,23 +379,22 @@ end ######## function ( cat_1, alpha_1 ) - local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; - deduped_8_1 := UnderlyingRing( cat_1 ); - deduped_7_1 := HomalgIdentityMatrix( 1, deduped_8_1 ); - deduped_6_1 := Dimension( Range( alpha_1 ) ); - deduped_5_1 := deduped_6_1 * deduped_6_1; - deduped_4_1 := 1 * deduped_6_1; - deduped_3_1 := HomalgIdentityMatrix( deduped_6_1, deduped_8_1 ); - hoisted_2_1 := deduped_6_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_3_1 ), UnderlyingMatrix( alpha_1 ) ) * (KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1; + deduped_7_1 := UnderlyingRing( cat_1 ); + deduped_6_1 := HomalgIdentityMatrix( 1, deduped_7_1 ); + deduped_5_1 := Dimension( Range( alpha_1 ) ); + deduped_4_1 := deduped_5_1 * deduped_5_1; + deduped_3_1 := 1 * deduped_5_1; + hoisted_2_1 := deduped_5_1; + morphism_attr_1_1 := DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_5_1, UnderlyingMatrix( alpha_1 ) ) ) * (DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_5_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_3_1 ), deduped_7_1 )); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_7_1 ), deduped_6_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_5_1, deduped_7_1 ) ), deduped_6_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -419,11 +414,11 @@ function ( cat_1, a_1 ) deduped_4_1 := 1 * deduped_7_1; deduped_3_1 := HomalgIdentityMatrix( deduped_7_1, deduped_8_1 ); hoisted_2_1 := deduped_7_1; - morphism_attr_1_1 := ConvertMatrixToRow( deduped_3_1 ) * (KroneckerMat( TransposedMatrix( deduped_3_1 ), deduped_3_1 ) * (KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + morphism_attr_1_1 := ConvertMatrixToRow( deduped_3_1 ) * (DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, deduped_3_1 ) ) * (DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); @@ -439,23 +434,22 @@ end ######## function ( cat_1, alpha_1 ) - local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; - deduped_8_1 := UnderlyingRing( cat_1 ); - deduped_7_1 := HomalgIdentityMatrix( 1, deduped_8_1 ); - deduped_6_1 := Dimension( Range( alpha_1 ) ); - deduped_5_1 := deduped_6_1 * deduped_6_1; - deduped_4_1 := 1 * deduped_6_1; - deduped_3_1 := HomalgIdentityMatrix( deduped_6_1, deduped_8_1 ); - hoisted_2_1 := deduped_6_1; - morphism_attr_1_1 := ConvertMatrixToRow( HomalgIdentityMatrix( Dimension( Source( alpha_1 ) ), deduped_8_1 ) ) * (KroneckerMat( TransposedMatrix( deduped_3_1 ), UnderlyingMatrix( alpha_1 ) ) * (KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1; + deduped_7_1 := UnderlyingRing( cat_1 ); + deduped_6_1 := HomalgIdentityMatrix( 1, deduped_7_1 ); + deduped_5_1 := Dimension( Range( alpha_1 ) ); + deduped_4_1 := deduped_5_1 * deduped_5_1; + deduped_3_1 := 1 * deduped_5_1; + hoisted_2_1 := deduped_5_1; + morphism_attr_1_1 := ConvertMatrixToRow( HomalgIdentityMatrix( Dimension( Source( alpha_1 ) ), deduped_7_1 ) ) * (DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_5_1, UnderlyingMatrix( alpha_1 ) ) ) * (DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_5_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_3_1 ), deduped_7_1 ))); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_7_1 ), deduped_6_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_5_1, deduped_7_1 ) ), deduped_6_1 ))); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -518,25 +512,24 @@ end ######## function ( cat_1, a_1, b_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( a_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( a_1 ); deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := deduped_10_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; + deduped_7_1 := UnderlyingRing( cat_1 ); + deduped_6_1 := HomalgIdentityMatrix( deduped_9_1, deduped_7_1 ); + deduped_5_1 := deduped_8_1 * deduped_8_1; + deduped_4_1 := deduped_9_1 * deduped_8_1; + hoisted_3_1 := deduped_9_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_9_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_4_1 ), deduped_7_1 ); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_6_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ) ), deduped_6_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -548,25 +541,24 @@ end ######## function ( cat_1, a_1, b_1, s_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( a_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( a_1 ); deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := deduped_10_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; + deduped_7_1 := UnderlyingRing( cat_1 ); + deduped_6_1 := HomalgIdentityMatrix( deduped_9_1, deduped_7_1 ); + deduped_5_1 := deduped_8_1 * deduped_8_1; + deduped_4_1 := deduped_9_1 * deduped_8_1; + hoisted_3_1 := deduped_9_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_9_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_4_1 ), deduped_7_1 ); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_6_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ) ), deduped_6_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -604,17 +596,17 @@ end function ( cat_1, a_1, b_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := UnderlyingRing( cat_1 ); - deduped_6_1 := Dimension( a_1 ); - deduped_5_1 := deduped_6_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ); - hoisted_3_1 := deduped_6_1; + deduped_7_1 := Dimension( a_1 ); + deduped_6_1 := UnderlyingRing( cat_1 ); + deduped_5_1 := deduped_7_1 * deduped_8_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 ); + hoisted_3_1 := deduped_7_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_6_1, deduped_7_1 ), ConvertMatrixToRow( deduped_4_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_8_1 * deduped_6_1), deduped_7_1 ), deduped_4_1 ); + morphism_attr_1_1 := DiagMat( deduped_6_1, ListWithIdenticalEntries( deduped_7_1, ConvertMatrixToRow( deduped_4_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ), deduped_4_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -628,17 +620,17 @@ end function ( cat_1, a_1, b_1, r_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := UnderlyingRing( cat_1 ); - deduped_6_1 := Dimension( a_1 ); - deduped_5_1 := deduped_6_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ); - hoisted_3_1 := deduped_6_1; + deduped_7_1 := Dimension( a_1 ); + deduped_6_1 := UnderlyingRing( cat_1 ); + deduped_5_1 := deduped_7_1 * deduped_8_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 ); + hoisted_3_1 := deduped_7_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_6_1, deduped_7_1 ), ConvertMatrixToRow( deduped_4_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_8_1 * deduped_6_1), deduped_7_1 ), deduped_4_1 ); + morphism_attr_1_1 := DiagMat( deduped_6_1, ListWithIdenticalEntries( deduped_7_1, ConvertMatrixToRow( deduped_4_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ), deduped_4_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -685,25 +677,24 @@ end ######## function ( cat_1, a_1, b_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( a_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); - deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := deduped_8_1 * deduped_10_1; - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; - hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_4_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( a_1 ); + deduped_8_1 := UnderlyingRing( cat_1 ); + deduped_7_1 := Dimension( b_1 ); + deduped_6_1 := deduped_7_1 * deduped_9_1; + deduped_5_1 := deduped_7_1 * deduped_7_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_9_1, deduped_8_1 ); + hoisted_3_1 := deduped_9_1; + hoisted_2_1 := deduped_7_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_7_1, deduped_8_1 ) ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_5_1 ) * KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_9_1 ) ); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_4_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_8_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -715,25 +706,24 @@ end ######## function ( cat_1, a_1, b_1, r_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( a_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); - deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := deduped_8_1 * deduped_10_1; - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; - hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_4_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( a_1 ); + deduped_8_1 := UnderlyingRing( cat_1 ); + deduped_7_1 := Dimension( b_1 ); + deduped_6_1 := deduped_7_1 * deduped_9_1; + deduped_5_1 := deduped_7_1 * deduped_7_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_9_1, deduped_8_1 ); + hoisted_3_1 := deduped_9_1; + hoisted_2_1 := deduped_7_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_7_1, deduped_8_1 ) ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_5_1 ) * KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_9_1 ) ); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_4_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_8_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -1272,11 +1262,11 @@ function ( cat_1, a_1, b_1 ) deduped_4_1 := deduped_6_1 * deduped_7_1; hoisted_3_1 := deduped_6_1; hoisted_2_1 := deduped_7_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_4_1, deduped_8_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ), deduped_5_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_7_1, deduped_8_1 ), ConvertMatrixToColumn( deduped_5_1 ) ); + morphism_attr_1_1 := KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ), deduped_5_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, ConvertMatrixToColumn( deduped_5_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -1296,11 +1286,11 @@ function ( cat_1, a_1, b_1, s_1 ) deduped_4_1 := deduped_6_1 * deduped_7_1; hoisted_3_1 := deduped_6_1; hoisted_2_1 := deduped_7_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_4_1, deduped_8_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ), deduped_5_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_7_1, deduped_8_1 ), ConvertMatrixToColumn( deduped_5_1 ) ); + morphism_attr_1_1 := KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ), deduped_5_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, ConvertMatrixToColumn( deduped_5_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -1798,53 +1788,51 @@ end ######## function ( cat_1, list_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1; - deduped_26_1 := UnderlyingRing( cat_1 ); - deduped_25_1 := List( list_1, Dimension ); - deduped_24_1 := deduped_25_1[2]; - deduped_23_1 := deduped_25_1[1]; - deduped_22_1 := deduped_25_1[4]; - deduped_21_1 := deduped_25_1[3]; - deduped_20_1 := deduped_23_1 * deduped_21_1; - deduped_19_1 := HomalgIdentityMatrix( deduped_21_1, deduped_26_1 ); - deduped_18_1 := deduped_24_1 * deduped_22_1; - deduped_17_1 := HomalgIdentityMatrix( deduped_22_1, deduped_26_1 ); - deduped_16_1 := HomalgIdentityMatrix( deduped_23_1, deduped_26_1 ); - deduped_15_1 := deduped_21_1 * deduped_22_1; - deduped_14_1 := deduped_15_1 * deduped_15_1; - deduped_13_1 := deduped_20_1 * deduped_18_1; - deduped_12_1 := deduped_21_1 * deduped_18_1; - deduped_11_1 := HomalgIdentityMatrix( deduped_15_1, deduped_26_1 ); - deduped_10_1 := HomalgIdentityMatrix( deduped_13_1, deduped_26_1 ); - deduped_9_1 := deduped_13_1 * deduped_15_1; - hoisted_8_1 := deduped_13_1; - hoisted_7_1 := deduped_15_1; - hoisted_6_1 := deduped_18_1; - hoisted_5_1 := deduped_23_1; - hoisted_4_1 := deduped_21_1; - hoisted_3_1 := deduped_24_1; - hoisted_2_1 := deduped_22_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_11_1 ), KroneckerMat( deduped_16_1, KroneckerMat( HomalgIdentityMatrix( deduped_24_1, deduped_26_1 ), ConvertMatrixToRow( deduped_17_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_26_1 ), deduped_17_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_22_1 * deduped_24_1), deduped_26_1 ), deduped_17_1 ) ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_16_1, ConvertMatrixToRow( deduped_19_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_20_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1; + deduped_24_1 := List( list_1, Dimension ); + deduped_23_1 := UnderlyingRing( cat_1 ); + deduped_22_1 := deduped_24_1[2]; + deduped_21_1 := deduped_24_1[1]; + deduped_20_1 := deduped_24_1[4]; + deduped_19_1 := deduped_24_1[3]; + deduped_18_1 := deduped_21_1 * deduped_19_1; + deduped_17_1 := HomalgIdentityMatrix( deduped_19_1, deduped_23_1 ); + deduped_16_1 := deduped_22_1 * deduped_20_1; + deduped_15_1 := HomalgIdentityMatrix( deduped_20_1, deduped_23_1 ); + deduped_14_1 := deduped_19_1 * deduped_20_1; + deduped_13_1 := deduped_14_1 * deduped_14_1; + deduped_12_1 := deduped_18_1 * deduped_16_1; + deduped_11_1 := deduped_19_1 * deduped_16_1; + deduped_10_1 := HomalgIdentityMatrix( deduped_12_1, deduped_23_1 ); + deduped_9_1 := deduped_12_1 * deduped_14_1; + hoisted_8_1 := deduped_12_1; + hoisted_7_1 := deduped_14_1; + hoisted_6_1 := deduped_16_1; + hoisted_5_1 := deduped_21_1; + hoisted_4_1 := deduped_19_1; + hoisted_3_1 := deduped_22_1; + hoisted_2_1 := deduped_20_1; + morphism_attr_1_1 := DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_14_1, DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_21_1, DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToRow( deduped_15_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_23_1 ), deduped_15_1 ) ) ) * KroneckerMat( KroneckerMat( (DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_21_1, ConvertMatrixToRow( deduped_17_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_20_1 ), deduped_20_1, deduped_20_1, deduped_26_1 ), deduped_19_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_21_1 * deduped_23_1), deduped_26_1 ), deduped_19_1 )), HomalgIdentityMatrix( deduped_18_1, deduped_26_1 ) ), deduped_17_1 ) * KroneckerMat( KroneckerMat( HomalgIdentityMatrix( deduped_20_1, deduped_26_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) + end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_23_1 ), deduped_17_1 )), HomalgIdentityMatrix( deduped_16_1, deduped_23_1 ) ), deduped_15_1 ) * KroneckerMat( DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_18_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_23_1 ) ) ), deduped_15_1 ) ) ) * (DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_26_1 ) ), deduped_17_1 ) ) * (KroneckerMat( deduped_11_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_26_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); + end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_23_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_26_1 ), deduped_10_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_11_1 ), deduped_10_1 )); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_23_1 ), deduped_10_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_14_1, deduped_23_1 ) ), deduped_10_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -1856,54 +1844,52 @@ end ######## function ( cat_1, list_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1, deduped_27_1; - deduped_27_1 := UnderlyingRing( cat_1 ); - deduped_26_1 := List( list_1, Dimension ); - deduped_25_1 := deduped_26_1[2]; - deduped_24_1 := deduped_26_1[1]; - deduped_23_1 := deduped_26_1[4]; - deduped_22_1 := deduped_26_1[3]; - deduped_21_1 := HomalgIdentityMatrix( deduped_22_1, deduped_27_1 ); - deduped_20_1 := HomalgIdentityMatrix( deduped_23_1, deduped_27_1 ); - deduped_19_1 := HomalgIdentityMatrix( deduped_24_1, deduped_27_1 ); - deduped_18_1 := deduped_25_1 * deduped_23_1; - deduped_17_1 := deduped_24_1 * deduped_22_1; - deduped_16_1 := deduped_22_1 * deduped_23_1; - deduped_15_1 := deduped_22_1 * deduped_18_1; - deduped_14_1 := deduped_16_1 * deduped_16_1; - deduped_13_1 := deduped_17_1 * deduped_18_1; - deduped_12_1 := HomalgIdentityMatrix( deduped_16_1, deduped_27_1 ); - deduped_11_1 := HomalgIdentityMatrix( deduped_13_1, deduped_27_1 ); - deduped_10_1 := deduped_13_1 * deduped_16_1; - hoisted_3_1 := deduped_13_1; - hoisted_2_1 := deduped_16_1; - deduped_9_1 := KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_27_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1; + deduped_25_1 := List( list_1, Dimension ); + deduped_24_1 := UnderlyingRing( cat_1 ); + deduped_23_1 := deduped_25_1[2]; + deduped_22_1 := deduped_25_1[1]; + deduped_21_1 := deduped_25_1[4]; + deduped_20_1 := deduped_25_1[3]; + deduped_19_1 := HomalgIdentityMatrix( deduped_20_1, deduped_24_1 ); + deduped_18_1 := HomalgIdentityMatrix( deduped_21_1, deduped_24_1 ); + deduped_17_1 := deduped_23_1 * deduped_21_1; + deduped_16_1 := deduped_22_1 * deduped_20_1; + deduped_15_1 := deduped_20_1 * deduped_21_1; + deduped_14_1 := deduped_20_1 * deduped_17_1; + deduped_13_1 := deduped_15_1 * deduped_15_1; + deduped_12_1 := deduped_16_1 * deduped_17_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_12_1, deduped_24_1 ); + deduped_10_1 := deduped_12_1 * deduped_15_1; + hoisted_3_1 := deduped_12_1; + hoisted_2_1 := deduped_15_1; + deduped_9_1 := DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_24_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_27_1 ), deduped_11_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_12_1 ), deduped_11_1 ); - hoisted_8_1 := deduped_18_1; - hoisted_7_1 := deduped_24_1; - hoisted_6_1 := deduped_22_1; - hoisted_5_1 := deduped_25_1; - hoisted_4_1 := deduped_23_1; - morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_27_1 ), KroneckerMat( TransposedMatrix( deduped_12_1 ), KroneckerMat( deduped_19_1, KroneckerMat( HomalgIdentityMatrix( deduped_25_1, deduped_27_1 ), ConvertMatrixToRow( deduped_20_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_27_1 ), deduped_20_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_23_1 * deduped_25_1), deduped_27_1 ), deduped_20_1 ) ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_19_1, ConvertMatrixToRow( deduped_21_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_24_1 ), deduped_11_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_15_1, deduped_24_1 ) ), deduped_11_1 ); + hoisted_8_1 := deduped_17_1; + hoisted_7_1 := deduped_22_1; + hoisted_6_1 := deduped_20_1; + hoisted_5_1 := deduped_23_1; + hoisted_4_1 := deduped_21_1; + morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_24_1 ), DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_23_1, ConvertMatrixToRow( deduped_18_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_24_1 ), deduped_18_1 ) ) ) * KroneckerMat( KroneckerMat( (DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToRow( deduped_19_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_27_1 ), deduped_21_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_22_1 * deduped_24_1), deduped_27_1 ), deduped_21_1 )), HomalgIdentityMatrix( deduped_18_1, deduped_27_1 ) ), deduped_20_1 ) * KroneckerMat( KroneckerMat( HomalgIdentityMatrix( deduped_17_1, deduped_27_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_27_1 ) ), deduped_20_1 ) ) * deduped_9_1 ); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_24_1 ), deduped_19_1 )), HomalgIdentityMatrix( deduped_17_1, deduped_24_1 ) ), deduped_18_1 ) * KroneckerMat( DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_16_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_24_1 ) ) ), deduped_18_1 ) ) ) * deduped_9_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -1915,54 +1901,52 @@ end ######## function ( cat_1, source_1, list_1, range_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1, deduped_27_1; - deduped_27_1 := UnderlyingRing( cat_1 ); - deduped_26_1 := List( list_1, Dimension ); - deduped_25_1 := deduped_26_1[2]; - deduped_24_1 := deduped_26_1[1]; - deduped_23_1 := deduped_26_1[4]; - deduped_22_1 := deduped_26_1[3]; - deduped_21_1 := HomalgIdentityMatrix( deduped_22_1, deduped_27_1 ); - deduped_20_1 := HomalgIdentityMatrix( deduped_23_1, deduped_27_1 ); - deduped_19_1 := HomalgIdentityMatrix( deduped_24_1, deduped_27_1 ); - deduped_18_1 := deduped_25_1 * deduped_23_1; - deduped_17_1 := deduped_24_1 * deduped_22_1; - deduped_16_1 := deduped_22_1 * deduped_23_1; - deduped_15_1 := deduped_22_1 * deduped_18_1; - deduped_14_1 := deduped_16_1 * deduped_16_1; - deduped_13_1 := deduped_17_1 * deduped_18_1; - deduped_12_1 := HomalgIdentityMatrix( deduped_16_1, deduped_27_1 ); - deduped_11_1 := HomalgIdentityMatrix( deduped_13_1, deduped_27_1 ); - deduped_10_1 := deduped_13_1 * deduped_16_1; - hoisted_3_1 := deduped_13_1; - hoisted_2_1 := deduped_16_1; - deduped_9_1 := KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_27_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1; + deduped_25_1 := List( list_1, Dimension ); + deduped_24_1 := UnderlyingRing( cat_1 ); + deduped_23_1 := deduped_25_1[2]; + deduped_22_1 := deduped_25_1[1]; + deduped_21_1 := deduped_25_1[4]; + deduped_20_1 := deduped_25_1[3]; + deduped_19_1 := HomalgIdentityMatrix( deduped_20_1, deduped_24_1 ); + deduped_18_1 := HomalgIdentityMatrix( deduped_21_1, deduped_24_1 ); + deduped_17_1 := deduped_23_1 * deduped_21_1; + deduped_16_1 := deduped_22_1 * deduped_20_1; + deduped_15_1 := deduped_20_1 * deduped_21_1; + deduped_14_1 := deduped_20_1 * deduped_17_1; + deduped_13_1 := deduped_15_1 * deduped_15_1; + deduped_12_1 := deduped_16_1 * deduped_17_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_12_1, deduped_24_1 ); + deduped_10_1 := deduped_12_1 * deduped_15_1; + hoisted_3_1 := deduped_12_1; + hoisted_2_1 := deduped_15_1; + deduped_9_1 := DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_24_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_27_1 ), deduped_11_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_12_1 ), deduped_11_1 ); - hoisted_8_1 := deduped_18_1; - hoisted_7_1 := deduped_24_1; - hoisted_6_1 := deduped_22_1; - hoisted_5_1 := deduped_25_1; - hoisted_4_1 := deduped_23_1; - morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_27_1 ), KroneckerMat( TransposedMatrix( deduped_12_1 ), KroneckerMat( deduped_19_1, KroneckerMat( HomalgIdentityMatrix( deduped_25_1, deduped_27_1 ), ConvertMatrixToRow( deduped_20_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_27_1 ), deduped_20_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_23_1 * deduped_25_1), deduped_27_1 ), deduped_20_1 ) ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_19_1, ConvertMatrixToRow( deduped_21_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_24_1 ), deduped_11_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_15_1, deduped_24_1 ) ), deduped_11_1 ); + hoisted_8_1 := deduped_17_1; + hoisted_7_1 := deduped_22_1; + hoisted_6_1 := deduped_20_1; + hoisted_5_1 := deduped_23_1; + hoisted_4_1 := deduped_21_1; + morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_24_1 ), DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_23_1, ConvertMatrixToRow( deduped_18_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_24_1 ), deduped_18_1 ) ) ) * KroneckerMat( KroneckerMat( (DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToRow( deduped_19_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_27_1 ), deduped_21_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_22_1 * deduped_24_1), deduped_27_1 ), deduped_21_1 )), HomalgIdentityMatrix( deduped_18_1, deduped_27_1 ) ), deduped_20_1 ) * KroneckerMat( KroneckerMat( HomalgIdentityMatrix( deduped_17_1, deduped_27_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_27_1 ) ), deduped_20_1 ) ) * deduped_9_1 ); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_24_1 ), deduped_19_1 )), HomalgIdentityMatrix( deduped_17_1, deduped_24_1 ) ), deduped_18_1 ) * KroneckerMat( DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_16_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_24_1 ) ) ), deduped_18_1 ) ) ) * deduped_9_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -1974,53 +1958,51 @@ end ######## function ( cat_1, source_1, list_1, range_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1; - deduped_26_1 := UnderlyingRing( cat_1 ); - deduped_25_1 := List( list_1, Dimension ); - deduped_24_1 := deduped_25_1[2]; - deduped_23_1 := deduped_25_1[1]; - deduped_22_1 := deduped_25_1[4]; - deduped_21_1 := deduped_25_1[3]; - deduped_20_1 := deduped_23_1 * deduped_21_1; - deduped_19_1 := HomalgIdentityMatrix( deduped_21_1, deduped_26_1 ); - deduped_18_1 := deduped_24_1 * deduped_22_1; - deduped_17_1 := HomalgIdentityMatrix( deduped_22_1, deduped_26_1 ); - deduped_16_1 := HomalgIdentityMatrix( deduped_23_1, deduped_26_1 ); - deduped_15_1 := deduped_21_1 * deduped_22_1; - deduped_14_1 := deduped_15_1 * deduped_15_1; - deduped_13_1 := deduped_20_1 * deduped_18_1; - deduped_12_1 := deduped_21_1 * deduped_18_1; - deduped_11_1 := HomalgIdentityMatrix( deduped_15_1, deduped_26_1 ); - deduped_10_1 := HomalgIdentityMatrix( deduped_13_1, deduped_26_1 ); - deduped_9_1 := deduped_13_1 * deduped_15_1; - hoisted_8_1 := deduped_13_1; - hoisted_7_1 := deduped_15_1; - hoisted_6_1 := deduped_18_1; - hoisted_5_1 := deduped_23_1; - hoisted_4_1 := deduped_21_1; - hoisted_3_1 := deduped_24_1; - hoisted_2_1 := deduped_22_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_11_1 ), KroneckerMat( deduped_16_1, KroneckerMat( HomalgIdentityMatrix( deduped_24_1, deduped_26_1 ), ConvertMatrixToRow( deduped_17_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_26_1 ), deduped_17_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_22_1 * deduped_24_1), deduped_26_1 ), deduped_17_1 ) ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_16_1, ConvertMatrixToRow( deduped_19_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_20_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1; + deduped_24_1 := List( list_1, Dimension ); + deduped_23_1 := UnderlyingRing( cat_1 ); + deduped_22_1 := deduped_24_1[2]; + deduped_21_1 := deduped_24_1[1]; + deduped_20_1 := deduped_24_1[4]; + deduped_19_1 := deduped_24_1[3]; + deduped_18_1 := deduped_21_1 * deduped_19_1; + deduped_17_1 := HomalgIdentityMatrix( deduped_19_1, deduped_23_1 ); + deduped_16_1 := deduped_22_1 * deduped_20_1; + deduped_15_1 := HomalgIdentityMatrix( deduped_20_1, deduped_23_1 ); + deduped_14_1 := deduped_19_1 * deduped_20_1; + deduped_13_1 := deduped_14_1 * deduped_14_1; + deduped_12_1 := deduped_18_1 * deduped_16_1; + deduped_11_1 := deduped_19_1 * deduped_16_1; + deduped_10_1 := HomalgIdentityMatrix( deduped_12_1, deduped_23_1 ); + deduped_9_1 := deduped_12_1 * deduped_14_1; + hoisted_8_1 := deduped_12_1; + hoisted_7_1 := deduped_14_1; + hoisted_6_1 := deduped_16_1; + hoisted_5_1 := deduped_21_1; + hoisted_4_1 := deduped_19_1; + hoisted_3_1 := deduped_22_1; + hoisted_2_1 := deduped_20_1; + morphism_attr_1_1 := DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_14_1, DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_21_1, DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToRow( deduped_15_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_23_1 ), deduped_15_1 ) ) ) * KroneckerMat( KroneckerMat( (DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_21_1, ConvertMatrixToRow( deduped_17_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_20_1 ), deduped_20_1, deduped_20_1, deduped_26_1 ), deduped_19_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_21_1 * deduped_23_1), deduped_26_1 ), deduped_19_1 )), HomalgIdentityMatrix( deduped_18_1, deduped_26_1 ) ), deduped_17_1 ) * KroneckerMat( KroneckerMat( HomalgIdentityMatrix( deduped_20_1, deduped_26_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) + end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_23_1 ), deduped_17_1 )), HomalgIdentityMatrix( deduped_16_1, deduped_23_1 ) ), deduped_15_1 ) * KroneckerMat( DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_18_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_23_1 ) ) ), deduped_15_1 ) ) ) * (DiagMat( deduped_23_1, ListWithIdenticalEntries( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_26_1 ) ), deduped_17_1 ) ) * (KroneckerMat( deduped_11_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_26_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); + end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_23_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_26_1 ), deduped_10_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_11_1 ), deduped_10_1 )); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_23_1 ), deduped_10_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_14_1, deduped_23_1 ) ), deduped_10_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2034,17 +2016,17 @@ end function ( cat_1, a_1, b_1, f_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := UnderlyingRing( cat_1 ); - deduped_6_1 := Dimension( a_1 ); - deduped_5_1 := deduped_6_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ); - hoisted_3_1 := deduped_6_1; + deduped_7_1 := Dimension( a_1 ); + deduped_6_1 := UnderlyingRing( cat_1 ); + deduped_5_1 := deduped_7_1 * deduped_8_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 ); + hoisted_3_1 := deduped_7_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_6_1, deduped_7_1 ), ConvertMatrixToRow( deduped_4_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_8_1 * deduped_6_1), deduped_7_1 ), deduped_4_1 ) * KroneckerMat( UnderlyingMatrix( f_1 ), deduped_4_1 ); + morphism_attr_1_1 := DiagMat( deduped_6_1, ListWithIdenticalEntries( deduped_7_1, ConvertMatrixToRow( deduped_4_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( UnderlyingMatrix( f_1 ), deduped_4_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2101,11 +2083,11 @@ function ( cat_1, b_1, c_1, g_1 ) deduped_4_1 := HomalgIdentityMatrix( deduped_6_1, deduped_7_1 ); hoisted_3_1 := deduped_6_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( UnderlyingMatrix( g_1 ), deduped_4_1 ) * (KroneckerMat( HomalgIdentityMatrix( deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ), ConvertMatrixToColumn( deduped_4_1 ) )); + morphism_attr_1_1 := KroneckerMat( UnderlyingMatrix( g_1 ), deduped_4_1 ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, ConvertMatrixToColumn( deduped_4_1 ) ) )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2783,23 +2765,22 @@ end ######## function ( cat_1, a_1 ) - local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; - deduped_8_1 := 1 * 1; - deduped_7_1 := Dimension( a_1 ); - deduped_6_1 := UnderlyingRing( cat_1 ); - deduped_5_1 := deduped_7_1 * 1; - deduped_4_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 ); - deduped_3_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); - hoisted_2_1 := deduped_7_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_3_1 ), deduped_4_1 ) * (KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1; + deduped_7_1 := 1 * 1; + deduped_6_1 := Dimension( a_1 ); + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := HomalgIdentityMatrix( deduped_6_1, deduped_5_1 ); + deduped_3_1 := deduped_6_1 * 1; + hoisted_2_1 := deduped_6_1; + morphism_attr_1_1 := DiagMat( deduped_5_1, ListWithIdenticalEntries( 1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_3_1 ), deduped_4_1 )); + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_5_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_5_1 ), deduped_4_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( 1, deduped_5_1 ) ), deduped_4_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2811,23 +2792,22 @@ end ######## function ( cat_1, a_1, s_1 ) - local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; - deduped_8_1 := 1 * 1; - deduped_7_1 := Dimension( a_1 ); - deduped_6_1 := UnderlyingRing( cat_1 ); - deduped_5_1 := deduped_7_1 * 1; - deduped_4_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 ); - deduped_3_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); - hoisted_2_1 := deduped_7_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_3_1 ), deduped_4_1 ) * (KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1; + deduped_7_1 := 1 * 1; + deduped_6_1 := Dimension( a_1 ); + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := HomalgIdentityMatrix( deduped_6_1, deduped_5_1 ); + deduped_3_1 := deduped_6_1 * 1; + hoisted_2_1 := deduped_6_1; + morphism_attr_1_1 := DiagMat( deduped_5_1, ListWithIdenticalEntries( 1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_3_1 ), deduped_4_1 )); + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_5_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_5_1 ), deduped_4_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( 1, deduped_5_1 ) ), deduped_4_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2869,11 +2849,11 @@ function ( cat_1, a_1 ) deduped_4_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); deduped_3_1 := 1 * deduped_5_1; hoisted_2_1 := deduped_5_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_3_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_5_1, deduped_6_1 ), ConvertMatrixToColumn( deduped_4_1 ) ); + morphism_attr_1_1 := KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_6_1 ), deduped_4_1 ) * DiagMat( deduped_6_1, ListWithIdenticalEntries( deduped_5_1, ConvertMatrixToColumn( deduped_4_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2891,11 +2871,11 @@ function ( cat_1, a_1, s_1 ) deduped_4_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); deduped_3_1 := 1 * deduped_5_1; hoisted_2_1 := deduped_5_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_3_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_5_1, deduped_6_1 ), ConvertMatrixToColumn( deduped_4_1 ) ); + morphism_attr_1_1 := KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_6_1 ), deduped_4_1 ) * DiagMat( deduped_6_1, ListWithIdenticalEntries( deduped_5_1, ConvertMatrixToColumn( deduped_4_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2977,16 +2957,16 @@ end ######## function ( cat_1, a_1 ) local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1; - deduped_6_1 := UnderlyingRing( cat_1 ); - deduped_5_1 := Dimension( a_1 ); - deduped_4_1 := deduped_5_1 * 1; - deduped_3_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); - hoisted_2_1 := deduped_5_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_5_1, deduped_6_1 ), ConvertMatrixToRow( deduped_3_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_6_1 ), deduped_3_1 ) * KroneckerMat( HomalgIdentityMatrix( (1 * deduped_5_1), deduped_6_1 ), deduped_3_1 ); + deduped_6_1 := Dimension( a_1 ); + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := deduped_6_1 * 1; + deduped_3_1 := HomalgIdentityMatrix( 1, deduped_5_1 ); + hoisted_2_1 := deduped_6_1; + morphism_attr_1_1 := DiagMat( deduped_5_1, ListWithIdenticalEntries( deduped_6_1, ConvertMatrixToRow( deduped_3_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_5_1 ), deduped_3_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), a_1, UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -2999,16 +2979,16 @@ end ######## function ( cat_1, a_1, r_1 ) local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1; - deduped_6_1 := UnderlyingRing( cat_1 ); - deduped_5_1 := Dimension( a_1 ); - deduped_4_1 := deduped_5_1 * 1; - deduped_3_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); - hoisted_2_1 := deduped_5_1; - morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( deduped_5_1, deduped_6_1 ), ConvertMatrixToRow( deduped_3_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_6_1 ), deduped_3_1 ) * KroneckerMat( HomalgIdentityMatrix( (1 * deduped_5_1), deduped_6_1 ), deduped_3_1 ); + deduped_6_1 := Dimension( a_1 ); + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := deduped_6_1 * 1; + deduped_3_1 := HomalgIdentityMatrix( 1, deduped_5_1 ); + hoisted_2_1 := deduped_6_1; + morphism_attr_1_1 := DiagMat( deduped_5_1, ListWithIdenticalEntries( deduped_6_1, ConvertMatrixToRow( deduped_3_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_5_1 ), deduped_3_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), r_1, UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3020,23 +3000,22 @@ end ######## function ( cat_1, a_1 ) - local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; - deduped_8_1 := 1 * 1; - deduped_7_1 := Dimension( a_1 ); - deduped_6_1 := UnderlyingRing( cat_1 ); - deduped_5_1 := 1 * deduped_7_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 ); - deduped_3_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); - hoisted_2_1 := deduped_7_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_3_1 ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1; + deduped_7_1 := 1 * 1; + deduped_6_1 := Dimension( a_1 ); + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := 1 * deduped_6_1; + deduped_3_1 := HomalgIdentityMatrix( deduped_6_1, deduped_5_1 ); + hoisted_2_1 := deduped_6_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( 1, deduped_5_1 ) ), deduped_3_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_5_1 ), deduped_3_1 ) * DiagMat( deduped_5_1, ListWithIdenticalEntries( 1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ) ) * KroneckerMat( TransposedMatrix( deduped_3_1 ), deduped_4_1 ); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_5_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3048,23 +3027,22 @@ end ######## function ( cat_1, a_1, r_1 ) - local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; - deduped_8_1 := 1 * 1; - deduped_7_1 := Dimension( a_1 ); - deduped_6_1 := UnderlyingRing( cat_1 ); - deduped_5_1 := 1 * deduped_7_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 ); - deduped_3_1 := HomalgIdentityMatrix( 1, deduped_6_1 ); - hoisted_2_1 := deduped_7_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_3_1 ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_6_1 ), deduped_4_1 ) * KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1; + deduped_7_1 := 1 * 1; + deduped_6_1 := Dimension( a_1 ); + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := 1 * deduped_6_1; + deduped_3_1 := HomalgIdentityMatrix( deduped_6_1, deduped_5_1 ); + hoisted_2_1 := deduped_6_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( 1, deduped_5_1 ) ), deduped_3_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * 1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_5_1 ), deduped_3_1 ) * DiagMat( deduped_5_1, ListWithIdenticalEntries( 1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * 1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_6_1 ) ) * KroneckerMat( TransposedMatrix( deduped_3_1 ), deduped_4_1 ); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_5_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3269,11 +3247,11 @@ function ( cat_1, a_1, b_1, alpha_1 ) deduped_4_1 := HomalgIdentityMatrix( deduped_6_1, deduped_7_1 ); hoisted_3_1 := deduped_6_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( UnderlyingMatrix( alpha_1 ), deduped_4_1 ) * (KroneckerMat( HomalgIdentityMatrix( deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ), ConvertMatrixToColumn( deduped_4_1 ) )); + morphism_attr_1_1 := KroneckerMat( UnderlyingMatrix( alpha_1 ), deduped_4_1 ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_4_1 ) * DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, ConvertMatrixToColumn( deduped_4_1 ) ) )); return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3285,23 +3263,22 @@ end ######## function ( cat_1, alpha_1 ) - local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1; - deduped_8_1 := UnderlyingRing( cat_1 ); - deduped_7_1 := HomalgIdentityMatrix( 1, deduped_8_1 ); - deduped_6_1 := Dimension( Source( alpha_1 ) ); - deduped_5_1 := deduped_6_1 * 1; - deduped_4_1 := deduped_6_1 * deduped_6_1; - deduped_3_1 := HomalgIdentityMatrix( deduped_6_1, deduped_8_1 ); - hoisted_2_1 := deduped_6_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_3_1 ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1; + deduped_7_1 := UnderlyingRing( cat_1 ); + deduped_6_1 := HomalgIdentityMatrix( 1, deduped_7_1 ); + deduped_5_1 := Dimension( Source( alpha_1 ) ); + deduped_4_1 := deduped_5_1 * 1; + deduped_3_1 := deduped_5_1 * deduped_5_1; + hoisted_2_1 := deduped_5_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_5_1, deduped_7_1 ) ), deduped_6_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ), deduped_7_1 ) * KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ) ) * KroneckerMat( TransposedMatrix( deduped_3_1 ), UnderlyingMatrix( alpha_1 ) ); + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, deduped_7_1 ), deduped_6_1 ) * DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_5_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_7_1 ) ) ) * DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_5_1, UnderlyingMatrix( alpha_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3318,14 +3295,14 @@ function ( cat_1, a_1, L_1 ) deduped_8_1 := List( L_1, Dimension ); deduped_7_1 := Dimension( a_1 ); deduped_6_1 := UnderlyingRing( cat_1 ); - hoisted_5_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 ); + hoisted_5_1 := deduped_7_1; hoisted_4_1 := deduped_9_1; hoisted_3_1 := deduped_6_1; hoisted_2_1 := deduped_8_1; morphism_attr_1_1 := UnionOfColumns( deduped_6_1, deduped_7_1 * Sum( deduped_8_1 ), List( [ 1 .. deduped_9_1 ], function ( logic_new_func_x_2 ) local deduped_1_2; deduped_1_2 := hoisted_2_1[logic_new_func_x_2]; - return KroneckerMat( hoisted_5_1, UnionOfRows( HomalgZeroMatrix( Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), deduped_1_2, hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), deduped_1_2, hoisted_3_1 ) ) ); + return DiagMat( hoisted_3_1, ListWithIdenticalEntries( hoisted_5_1, UnionOfRows( HomalgZeroMatrix( Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), deduped_1_2, hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), deduped_1_2, hoisted_3_1 ) ) ) ); end ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end @@ -3341,14 +3318,14 @@ function ( cat_1, s_1, a_1, L_1, r_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1; deduped_7_1 := Length( L_1 ); deduped_6_1 := UnderlyingRing( cat_1 ); - hoisted_5_1 := HomalgIdentityMatrix( Dimension( a_1 ), deduped_6_1 ); + hoisted_5_1 := Dimension( a_1 ); hoisted_4_1 := deduped_7_1; hoisted_3_1 := deduped_6_1; hoisted_2_1 := List( L_1, Dimension ); morphism_attr_1_1 := UnionOfColumns( deduped_6_1, Dimension( s_1 ), List( [ 1 .. deduped_7_1 ], function ( logic_new_func_x_2 ) local deduped_1_2; deduped_1_2 := hoisted_2_1[logic_new_func_x_2]; - return KroneckerMat( hoisted_5_1, UnionOfRows( HomalgZeroMatrix( Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), deduped_1_2, hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), deduped_1_2, hoisted_3_1 ) ) ); + return DiagMat( hoisted_3_1, ListWithIdenticalEntries( hoisted_5_1, UnionOfRows( HomalgZeroMatrix( Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), deduped_1_2, hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), deduped_1_2, hoisted_3_1 ) ) ) ); end ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end @@ -3366,14 +3343,14 @@ function ( cat_1, a_1, L_1 ) deduped_8_1 := List( L_1, Dimension ); deduped_7_1 := Dimension( a_1 ); deduped_6_1 := UnderlyingRing( cat_1 ); - hoisted_5_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 ); + hoisted_5_1 := deduped_7_1; hoisted_4_1 := deduped_9_1; hoisted_3_1 := deduped_6_1; hoisted_2_1 := deduped_8_1; morphism_attr_1_1 := UnionOfRows( deduped_6_1, deduped_7_1 * Sum( deduped_8_1 ), List( [ 1 .. deduped_9_1 ], function ( logic_new_func_x_2 ) local deduped_1_2; deduped_1_2 := hoisted_2_1[logic_new_func_x_2]; - return KroneckerMat( hoisted_5_1, UnionOfColumns( HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), hoisted_3_1 ) ) ); + return DiagMat( hoisted_3_1, ListWithIdenticalEntries( hoisted_5_1, UnionOfColumns( HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), hoisted_3_1 ) ) ) ); end ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end @@ -3389,14 +3366,14 @@ function ( cat_1, s_1, a_1, L_1, r_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1; deduped_7_1 := Length( L_1 ); deduped_6_1 := UnderlyingRing( cat_1 ); - hoisted_5_1 := HomalgIdentityMatrix( Dimension( a_1 ), deduped_6_1 ); + hoisted_5_1 := Dimension( a_1 ); hoisted_4_1 := deduped_7_1; hoisted_3_1 := deduped_6_1; hoisted_2_1 := List( L_1, Dimension ); morphism_attr_1_1 := UnionOfRows( deduped_6_1, Dimension( r_1 ), List( [ 1 .. deduped_7_1 ], function ( logic_new_func_x_2 ) local deduped_1_2; deduped_1_2 := hoisted_2_1[logic_new_func_x_2]; - return KroneckerMat( hoisted_5_1, UnionOfColumns( HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), hoisted_3_1 ) ) ); + return DiagMat( hoisted_3_1, ListWithIdenticalEntries( hoisted_5_1, UnionOfColumns( HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ 1 .. logic_new_func_x_2 - 1 ]} ), hoisted_3_1 ), HomalgIdentityMatrix( deduped_1_2, hoisted_3_1 ), HomalgZeroMatrix( deduped_1_2, Sum( hoisted_2_1{[ logic_new_func_x_2 + 1 .. hoisted_4_1 ]} ), hoisted_3_1 ) ) ) ); end ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), r_1, UnderlyingMatrix, morphism_attr_1_1 ); end @@ -3505,37 +3482,37 @@ function ( cat_1, a_1, b_1, c_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1; deduped_17_1 := Dimension( b_1 ); deduped_16_1 := Dimension( a_1 ); - deduped_15_1 := UnderlyingRing( cat_1 ); - deduped_14_1 := Dimension( c_1 ); - deduped_13_1 := deduped_14_1 * deduped_14_1; - deduped_12_1 := deduped_17_1 * deduped_14_1; - deduped_11_1 := deduped_16_1 * deduped_17_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_17_1, deduped_15_1 ); - deduped_9_1 := HomalgIdentityMatrix( deduped_14_1, deduped_15_1 ); - deduped_8_1 := deduped_11_1 * deduped_12_1; - deduped_7_1 := HomalgIdentityMatrix( deduped_8_1, deduped_15_1 ); - deduped_6_1 := deduped_8_1 * deduped_14_1; + deduped_15_1 := Dimension( c_1 ); + deduped_14_1 := UnderlyingRing( cat_1 ); + deduped_13_1 := deduped_15_1 * deduped_15_1; + deduped_12_1 := deduped_17_1 * deduped_15_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_15_1, deduped_14_1 ); + deduped_10_1 := deduped_16_1 * deduped_17_1; + deduped_9_1 := HomalgIdentityMatrix( deduped_17_1, deduped_14_1 ); + deduped_8_1 := deduped_10_1 * deduped_12_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_8_1, deduped_14_1 ); + deduped_6_1 := deduped_8_1 * deduped_15_1; hoisted_5_1 := deduped_8_1; - hoisted_4_1 := deduped_14_1; + hoisted_4_1 := deduped_15_1; hoisted_3_1 := deduped_16_1; hoisted_2_1 := deduped_17_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_9_1 ), KroneckerMat( HomalgIdentityMatrix( deduped_16_1, deduped_15_1 ), ConvertMatrixToRow( deduped_10_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_15_1, DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_16_1, ConvertMatrixToRow( deduped_9_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_15_1 ), deduped_10_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_17_1 * deduped_16_1), deduped_15_1 ), deduped_10_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_11_1, deduped_15_1 ), (KroneckerMat( deduped_10_1, ConvertMatrixToRow( deduped_9_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_15_1 ), deduped_9_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_14_1 * deduped_17_1), deduped_15_1 ), deduped_9_1 )) ) ) * (KroneckerMat( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_15_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_14_1 ), deduped_9_1 ) * DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_10_1, (DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_17_1, ConvertMatrixToRow( deduped_11_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_14_1 ), deduped_11_1 )) ) ) ) ) * (DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_14_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_15_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_9_1 ), deduped_7_1 )); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_14_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_11_1 ), deduped_7_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3550,37 +3527,37 @@ function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1; deduped_17_1 := Dimension( b_1 ); deduped_16_1 := Dimension( a_1 ); - deduped_15_1 := UnderlyingRing( cat_1 ); - deduped_14_1 := Dimension( c_1 ); - deduped_13_1 := deduped_14_1 * deduped_14_1; - deduped_12_1 := deduped_17_1 * deduped_14_1; - deduped_11_1 := deduped_16_1 * deduped_17_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_17_1, deduped_15_1 ); - deduped_9_1 := HomalgIdentityMatrix( deduped_14_1, deduped_15_1 ); - deduped_8_1 := deduped_11_1 * deduped_12_1; - deduped_7_1 := HomalgIdentityMatrix( deduped_8_1, deduped_15_1 ); - deduped_6_1 := deduped_8_1 * deduped_14_1; + deduped_15_1 := Dimension( c_1 ); + deduped_14_1 := UnderlyingRing( cat_1 ); + deduped_13_1 := deduped_15_1 * deduped_15_1; + deduped_12_1 := deduped_17_1 * deduped_15_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_15_1, deduped_14_1 ); + deduped_10_1 := deduped_16_1 * deduped_17_1; + deduped_9_1 := HomalgIdentityMatrix( deduped_17_1, deduped_14_1 ); + deduped_8_1 := deduped_10_1 * deduped_12_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_8_1, deduped_14_1 ); + deduped_6_1 := deduped_8_1 * deduped_15_1; hoisted_5_1 := deduped_8_1; - hoisted_4_1 := deduped_14_1; + hoisted_4_1 := deduped_15_1; hoisted_3_1 := deduped_16_1; hoisted_2_1 := deduped_17_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_9_1 ), KroneckerMat( HomalgIdentityMatrix( deduped_16_1, deduped_15_1 ), ConvertMatrixToRow( deduped_10_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_15_1, DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_16_1, ConvertMatrixToRow( deduped_9_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_15_1 ), deduped_10_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_17_1 * deduped_16_1), deduped_15_1 ), deduped_10_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_11_1, deduped_15_1 ), (KroneckerMat( deduped_10_1, ConvertMatrixToRow( deduped_9_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_15_1 ), deduped_9_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_14_1 * deduped_17_1), deduped_15_1 ), deduped_9_1 )) ) ) * (KroneckerMat( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_15_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_14_1 ), deduped_9_1 ) * DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_10_1, (DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_17_1, ConvertMatrixToRow( deduped_11_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_14_1 ), deduped_11_1 )) ) ) ) ) * (DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_14_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_15_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_9_1 ), deduped_7_1 )); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_14_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_11_1 ), deduped_7_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3592,41 +3569,40 @@ end ######## function ( cat_1, a_1, b_1, c_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1; - deduped_18_1 := Dimension( c_1 ); - deduped_17_1 := Dimension( b_1 ); - deduped_16_1 := UnderlyingRing( cat_1 ); - deduped_15_1 := Dimension( a_1 ); - deduped_14_1 := HomalgIdentityMatrix( deduped_17_1, deduped_16_1 ); - deduped_13_1 := deduped_15_1 * deduped_15_1; - deduped_12_1 := deduped_15_1 * deduped_17_1; - deduped_11_1 := deduped_17_1 * deduped_18_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_15_1, deduped_16_1 ); - deduped_9_1 := HomalgIdentityMatrix( deduped_11_1, deduped_16_1 ); - deduped_8_1 := deduped_11_1 * deduped_12_1; - deduped_7_1 := deduped_15_1 * deduped_8_1; - deduped_6_1 := HomalgIdentityMatrix( deduped_8_1, deduped_16_1 ); - hoisted_5_1 := deduped_18_1; - hoisted_4_1 := deduped_17_1; + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1; + deduped_17_1 := Dimension( c_1 ); + deduped_16_1 := Dimension( b_1 ); + deduped_15_1 := UnderlyingRing( cat_1 ); + deduped_14_1 := Dimension( a_1 ); + deduped_13_1 := HomalgIdentityMatrix( deduped_16_1, deduped_15_1 ); + deduped_12_1 := deduped_14_1 * deduped_14_1; + deduped_11_1 := deduped_14_1 * deduped_16_1; + deduped_10_1 := deduped_16_1 * deduped_17_1; + deduped_9_1 := HomalgIdentityMatrix( deduped_14_1, deduped_15_1 ); + deduped_8_1 := deduped_10_1 * deduped_11_1; + deduped_7_1 := deduped_14_1 * deduped_8_1; + deduped_6_1 := HomalgIdentityMatrix( deduped_8_1, deduped_15_1 ); + hoisted_5_1 := deduped_17_1; + hoisted_4_1 := deduped_16_1; hoisted_3_1 := deduped_8_1; - hoisted_2_1 := deduped_15_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_10_1 ), deduped_6_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + hoisted_2_1 := deduped_14_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_9_1 ), deduped_6_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_16_1 ), deduped_6_1 ) * KroneckerMat( deduped_10_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_16_1 ) ) * KroneckerMat( TransposedMatrix( deduped_10_1 ), (KroneckerMat( deduped_9_1, KroneckerMat( HomalgIdentityMatrix( deduped_12_1, deduped_16_1 ), deduped_10_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_16_1 ), deduped_10_1 ) * KroneckerMat( deduped_14_1, ConvertMatrixToColumn( deduped_10_1 ) ) ) * (KroneckerMat( deduped_9_1, deduped_14_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_15_1 ), deduped_6_1 ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_15_1 ) ) ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_14_1, (DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_10_1, KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_15_1 ), deduped_9_1 ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_16_1, ConvertMatrixToColumn( deduped_9_1 ) ) ) ) ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_16_1 ), deduped_14_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_18_1, deduped_16_1 ), ConvertMatrixToColumn( deduped_14_1 ) ))) ); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_15_1 ), deduped_13_1 ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_17_1, ConvertMatrixToColumn( deduped_13_1 ) ) ))) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3638,41 +3614,40 @@ end ######## function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1; - deduped_18_1 := Dimension( c_1 ); - deduped_17_1 := Dimension( b_1 ); - deduped_16_1 := UnderlyingRing( cat_1 ); - deduped_15_1 := Dimension( a_1 ); - deduped_14_1 := HomalgIdentityMatrix( deduped_17_1, deduped_16_1 ); - deduped_13_1 := deduped_15_1 * deduped_15_1; - deduped_12_1 := deduped_15_1 * deduped_17_1; - deduped_11_1 := deduped_17_1 * deduped_18_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_15_1, deduped_16_1 ); - deduped_9_1 := HomalgIdentityMatrix( deduped_11_1, deduped_16_1 ); - deduped_8_1 := deduped_11_1 * deduped_12_1; - deduped_7_1 := deduped_15_1 * deduped_8_1; - deduped_6_1 := HomalgIdentityMatrix( deduped_8_1, deduped_16_1 ); - hoisted_5_1 := deduped_18_1; - hoisted_4_1 := deduped_17_1; + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1; + deduped_17_1 := Dimension( c_1 ); + deduped_16_1 := Dimension( b_1 ); + deduped_15_1 := UnderlyingRing( cat_1 ); + deduped_14_1 := Dimension( a_1 ); + deduped_13_1 := HomalgIdentityMatrix( deduped_16_1, deduped_15_1 ); + deduped_12_1 := deduped_14_1 * deduped_14_1; + deduped_11_1 := deduped_14_1 * deduped_16_1; + deduped_10_1 := deduped_16_1 * deduped_17_1; + deduped_9_1 := HomalgIdentityMatrix( deduped_14_1, deduped_15_1 ); + deduped_8_1 := deduped_10_1 * deduped_11_1; + deduped_7_1 := deduped_14_1 * deduped_8_1; + deduped_6_1 := HomalgIdentityMatrix( deduped_8_1, deduped_15_1 ); + hoisted_5_1 := deduped_17_1; + hoisted_4_1 := deduped_16_1; hoisted_3_1 := deduped_8_1; - hoisted_2_1 := deduped_15_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_10_1 ), deduped_6_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + hoisted_2_1 := deduped_14_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_9_1 ), deduped_6_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_16_1 ), deduped_6_1 ) * KroneckerMat( deduped_10_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_16_1 ) ) * KroneckerMat( TransposedMatrix( deduped_10_1 ), (KroneckerMat( deduped_9_1, KroneckerMat( HomalgIdentityMatrix( deduped_12_1, deduped_16_1 ), deduped_10_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_16_1 ), deduped_10_1 ) * KroneckerMat( deduped_14_1, ConvertMatrixToColumn( deduped_10_1 ) ) ) * (KroneckerMat( deduped_9_1, deduped_14_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_15_1 ), deduped_6_1 ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_15_1 ) ) ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_14_1, (DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_10_1, KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_15_1 ), deduped_9_1 ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_16_1, ConvertMatrixToColumn( deduped_9_1 ) ) ) ) ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_16_1 ), deduped_14_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_18_1, deduped_16_1 ), ConvertMatrixToColumn( deduped_14_1 ) ))) ); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_15_1 ), deduped_13_1 ) * DiagMat( deduped_15_1, ListWithIdenticalEntries( deduped_17_1, ConvertMatrixToColumn( deduped_13_1 ) ) ))) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3687,48 +3662,48 @@ function ( cat_1, a_1, b_1, c_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1; deduped_20_1 := Dimension( b_1 ); deduped_19_1 := Dimension( a_1 ); - deduped_18_1 := UnderlyingRing( cat_1 ); - deduped_17_1 := Dimension( c_1 ); - deduped_16_1 := deduped_17_1 * deduped_17_1; - deduped_15_1 := deduped_20_1 * deduped_17_1; - deduped_14_1 := deduped_19_1 * deduped_20_1; - deduped_13_1 := HomalgIdentityMatrix( deduped_20_1, deduped_18_1 ); - deduped_12_1 := HomalgIdentityMatrix( deduped_17_1, deduped_18_1 ); - deduped_11_1 := deduped_15_1 * deduped_14_1; - deduped_10_1 := deduped_17_1 * deduped_14_1; - deduped_9_1 := deduped_14_1 * deduped_20_1; - deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_18_1 ); - deduped_7_1 := deduped_11_1 * deduped_17_1; + deduped_18_1 := Dimension( c_1 ); + deduped_17_1 := UnderlyingRing( cat_1 ); + deduped_16_1 := deduped_18_1 * deduped_18_1; + deduped_15_1 := deduped_20_1 * deduped_18_1; + deduped_14_1 := HomalgIdentityMatrix( deduped_18_1, deduped_17_1 ); + deduped_13_1 := deduped_19_1 * deduped_20_1; + deduped_12_1 := HomalgIdentityMatrix( deduped_20_1, deduped_17_1 ); + deduped_11_1 := deduped_15_1 * deduped_13_1; + deduped_10_1 := deduped_18_1 * deduped_13_1; + deduped_9_1 := deduped_13_1 * deduped_20_1; + deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_17_1 ); + deduped_7_1 := deduped_11_1 * deduped_18_1; hoisted_6_1 := deduped_11_1; - hoisted_5_1 := deduped_17_1; - hoisted_4_1 := deduped_14_1; + hoisted_5_1 := deduped_18_1; + hoisted_4_1 := deduped_13_1; hoisted_3_1 := deduped_19_1; hoisted_2_1 := deduped_20_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_12_1 ), KroneckerMat( HomalgIdentityMatrix( deduped_19_1, deduped_18_1 ), ConvertMatrixToRow( deduped_13_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_18_1, DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_19_1, ConvertMatrixToRow( deduped_12_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_18_1 ), deduped_13_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_20_1 * deduped_19_1), deduped_18_1 ), deduped_13_1 ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_18_1 ) * KroneckerMat( (KroneckerMat( deduped_13_1, ConvertMatrixToRow( deduped_12_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_17_1 ), deduped_12_1 ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_17_1 ) * KroneckerMat( (DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_20_1, ConvertMatrixToRow( deduped_14_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_18_1 ), deduped_12_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_17_1 * deduped_20_1), deduped_18_1 ), deduped_12_1 )), HomalgIdentityMatrix( deduped_14_1, deduped_18_1 ) ) * KroneckerMat( HomalgIdentityMatrix( deduped_15_1, deduped_18_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_18_1 ) ) ) * (KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_18_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_17_1 ), deduped_14_1 )), HomalgIdentityMatrix( deduped_13_1, deduped_17_1 ) ) * DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_17_1 ) ) ) ) ) * (DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_18_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_17_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_18_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_12_1 ), deduped_8_1 )); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_17_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_14_1 ), deduped_8_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3743,48 +3718,48 @@ function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1; deduped_20_1 := Dimension( b_1 ); deduped_19_1 := Dimension( a_1 ); - deduped_18_1 := UnderlyingRing( cat_1 ); - deduped_17_1 := Dimension( c_1 ); - deduped_16_1 := deduped_17_1 * deduped_17_1; - deduped_15_1 := deduped_20_1 * deduped_17_1; - deduped_14_1 := deduped_19_1 * deduped_20_1; - deduped_13_1 := HomalgIdentityMatrix( deduped_20_1, deduped_18_1 ); - deduped_12_1 := HomalgIdentityMatrix( deduped_17_1, deduped_18_1 ); - deduped_11_1 := deduped_15_1 * deduped_14_1; - deduped_10_1 := deduped_17_1 * deduped_14_1; - deduped_9_1 := deduped_14_1 * deduped_20_1; - deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_18_1 ); - deduped_7_1 := deduped_11_1 * deduped_17_1; + deduped_18_1 := Dimension( c_1 ); + deduped_17_1 := UnderlyingRing( cat_1 ); + deduped_16_1 := deduped_18_1 * deduped_18_1; + deduped_15_1 := deduped_20_1 * deduped_18_1; + deduped_14_1 := HomalgIdentityMatrix( deduped_18_1, deduped_17_1 ); + deduped_13_1 := deduped_19_1 * deduped_20_1; + deduped_12_1 := HomalgIdentityMatrix( deduped_20_1, deduped_17_1 ); + deduped_11_1 := deduped_15_1 * deduped_13_1; + deduped_10_1 := deduped_18_1 * deduped_13_1; + deduped_9_1 := deduped_13_1 * deduped_20_1; + deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_17_1 ); + deduped_7_1 := deduped_11_1 * deduped_18_1; hoisted_6_1 := deduped_11_1; - hoisted_5_1 := deduped_17_1; - hoisted_4_1 := deduped_14_1; + hoisted_5_1 := deduped_18_1; + hoisted_4_1 := deduped_13_1; hoisted_3_1 := deduped_19_1; hoisted_2_1 := deduped_20_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_12_1 ), KroneckerMat( HomalgIdentityMatrix( deduped_19_1, deduped_18_1 ), ConvertMatrixToRow( deduped_13_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_18_1, DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_19_1, ConvertMatrixToRow( deduped_12_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_18_1 ), deduped_13_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_20_1 * deduped_19_1), deduped_18_1 ), deduped_13_1 ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_18_1 ) * KroneckerMat( (KroneckerMat( deduped_13_1, ConvertMatrixToRow( deduped_12_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_17_1 ), deduped_12_1 ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_9_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_9_1 ), deduped_9_1, deduped_9_1, deduped_17_1 ) * KroneckerMat( (DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_20_1, ConvertMatrixToRow( deduped_14_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_18_1 ), deduped_12_1 ) * KroneckerMat( HomalgIdentityMatrix( (deduped_17_1 * deduped_20_1), deduped_18_1 ), deduped_12_1 )), HomalgIdentityMatrix( deduped_14_1, deduped_18_1 ) ) * KroneckerMat( HomalgIdentityMatrix( deduped_15_1, deduped_18_1 ), HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_18_1 ) ) ) * (KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_18_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_17_1 ), deduped_14_1 )), HomalgIdentityMatrix( deduped_13_1, deduped_17_1 ) ) * DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_17_1 ) ) ) ) ) * (DiagMat( deduped_17_1, ListWithIdenticalEntries( deduped_18_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_17_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_18_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_12_1 ), deduped_8_1 )); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_17_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_14_1 ), deduped_8_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3796,53 +3771,51 @@ end ######## function ( cat_1, a_1, b_1, c_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1; - deduped_22_1 := Dimension( c_1 ); - deduped_21_1 := Dimension( b_1 ); - deduped_20_1 := UnderlyingRing( cat_1 ); - deduped_19_1 := Dimension( a_1 ); - deduped_18_1 := HomalgIdentityMatrix( deduped_21_1, deduped_20_1 ); - deduped_17_1 := deduped_19_1 * deduped_19_1; - deduped_16_1 := deduped_21_1 * deduped_22_1; - deduped_15_1 := deduped_19_1 * deduped_21_1; - deduped_14_1 := HomalgIdentityMatrix( deduped_19_1, deduped_20_1 ); - deduped_13_1 := deduped_21_1 * deduped_16_1; - deduped_12_1 := HomalgIdentityMatrix( deduped_16_1, deduped_20_1 ); - deduped_11_1 := deduped_16_1 * deduped_19_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_15_1, deduped_20_1 ); - deduped_9_1 := deduped_15_1 * deduped_16_1; - deduped_8_1 := deduped_19_1 * deduped_9_1; - deduped_7_1 := HomalgIdentityMatrix( deduped_9_1, deduped_20_1 ); - hoisted_6_1 := deduped_22_1; - hoisted_5_1 := deduped_21_1; - hoisted_4_1 := deduped_16_1; + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1; + deduped_20_1 := Dimension( c_1 ); + deduped_19_1 := Dimension( b_1 ); + deduped_18_1 := UnderlyingRing( cat_1 ); + deduped_17_1 := Dimension( a_1 ); + deduped_16_1 := HomalgIdentityMatrix( deduped_19_1, deduped_18_1 ); + deduped_15_1 := deduped_17_1 * deduped_17_1; + deduped_14_1 := deduped_19_1 * deduped_20_1; + deduped_13_1 := deduped_17_1 * deduped_19_1; + deduped_12_1 := HomalgIdentityMatrix( deduped_17_1, deduped_18_1 ); + deduped_11_1 := deduped_19_1 * deduped_14_1; + deduped_10_1 := deduped_14_1 * deduped_17_1; + deduped_9_1 := deduped_13_1 * deduped_14_1; + deduped_8_1 := deduped_17_1 * deduped_9_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_9_1, deduped_18_1 ); + hoisted_6_1 := deduped_20_1; + hoisted_5_1 := deduped_19_1; + hoisted_4_1 := deduped_14_1; hoisted_3_1 := deduped_9_1; - hoisted_2_1 := deduped_19_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_14_1 ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + hoisted_2_1 := deduped_17_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_12_1 ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_20_1 ), deduped_7_1 ) * KroneckerMat( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_20_1 ) ) * KroneckerMat( TransposedMatrix( deduped_14_1 ), (KroneckerMat( deduped_10_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_20_1 ) ) * KroneckerMat( (KroneckerMat( deduped_10_1, deduped_14_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_18_1 ), deduped_7_1 ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_17_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_18_1 ) ) ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_17_1, (DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_13_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_18_1 ) ) ) * KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_20_1 ), deduped_14_1 ) * KroneckerMat( deduped_18_1, ConvertMatrixToColumn( deduped_14_1 ) )), deduped_12_1 ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_20_1 ) * (KroneckerMat( deduped_12_1, deduped_18_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_18_1 ), deduped_12_1 ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_19_1, ConvertMatrixToColumn( deduped_12_1 ) ) )), HomalgIdentityMatrix( deduped_14_1, deduped_18_1 ) ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_18_1 ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_20_1 ), deduped_18_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_22_1, deduped_20_1 ), ConvertMatrixToColumn( deduped_18_1 ) ))) ); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_18_1 ), deduped_16_1 ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_20_1, ConvertMatrixToColumn( deduped_16_1 ) ) ))) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -3854,53 +3827,51 @@ end ######## function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1; - deduped_22_1 := Dimension( c_1 ); - deduped_21_1 := Dimension( b_1 ); - deduped_20_1 := UnderlyingRing( cat_1 ); - deduped_19_1 := Dimension( a_1 ); - deduped_18_1 := HomalgIdentityMatrix( deduped_21_1, deduped_20_1 ); - deduped_17_1 := deduped_19_1 * deduped_19_1; - deduped_16_1 := deduped_21_1 * deduped_22_1; - deduped_15_1 := deduped_19_1 * deduped_21_1; - deduped_14_1 := HomalgIdentityMatrix( deduped_19_1, deduped_20_1 ); - deduped_13_1 := deduped_21_1 * deduped_16_1; - deduped_12_1 := HomalgIdentityMatrix( deduped_16_1, deduped_20_1 ); - deduped_11_1 := deduped_16_1 * deduped_19_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_15_1, deduped_20_1 ); - deduped_9_1 := deduped_15_1 * deduped_16_1; - deduped_8_1 := deduped_19_1 * deduped_9_1; - deduped_7_1 := HomalgIdentityMatrix( deduped_9_1, deduped_20_1 ); - hoisted_6_1 := deduped_22_1; - hoisted_5_1 := deduped_21_1; - hoisted_4_1 := deduped_16_1; + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1; + deduped_20_1 := Dimension( c_1 ); + deduped_19_1 := Dimension( b_1 ); + deduped_18_1 := UnderlyingRing( cat_1 ); + deduped_17_1 := Dimension( a_1 ); + deduped_16_1 := HomalgIdentityMatrix( deduped_19_1, deduped_18_1 ); + deduped_15_1 := deduped_17_1 * deduped_17_1; + deduped_14_1 := deduped_19_1 * deduped_20_1; + deduped_13_1 := deduped_17_1 * deduped_19_1; + deduped_12_1 := HomalgIdentityMatrix( deduped_17_1, deduped_18_1 ); + deduped_11_1 := deduped_19_1 * deduped_14_1; + deduped_10_1 := deduped_14_1 * deduped_17_1; + deduped_9_1 := deduped_13_1 * deduped_14_1; + deduped_8_1 := deduped_17_1 * deduped_9_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_9_1, deduped_18_1 ); + hoisted_6_1 := deduped_20_1; + hoisted_5_1 := deduped_19_1; + hoisted_4_1 := deduped_14_1; hoisted_3_1 := deduped_9_1; - hoisted_2_1 := deduped_19_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_14_1 ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + hoisted_2_1 := deduped_17_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_12_1 ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_20_1 ), deduped_7_1 ) * KroneckerMat( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_20_1 ) ) * KroneckerMat( TransposedMatrix( deduped_14_1 ), (KroneckerMat( deduped_10_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_20_1 ) ) * KroneckerMat( (KroneckerMat( deduped_10_1, deduped_14_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_18_1 ), deduped_7_1 ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_17_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_18_1 ) ) ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_17_1, (DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_13_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_18_1 ) ) ) * KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_20_1 ), deduped_14_1 ) * KroneckerMat( deduped_18_1, ConvertMatrixToColumn( deduped_14_1 ) )), deduped_12_1 ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_20_1 ) * (KroneckerMat( deduped_12_1, deduped_18_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_18_1 ), deduped_12_1 ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_19_1, ConvertMatrixToColumn( deduped_12_1 ) ) )), HomalgIdentityMatrix( deduped_14_1, deduped_18_1 ) ) * HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_18_1 ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_20_1 ), deduped_18_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_22_1, deduped_20_1 ), ConvertMatrixToColumn( deduped_18_1 ) ))) ); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_18_1 ), deduped_16_1 ) * DiagMat( deduped_18_1, ListWithIdenticalEntries( deduped_20_1, ConvertMatrixToColumn( deduped_16_1 ) ) ))) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -4757,11 +4728,11 @@ function ( cat_1, a_1 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_4_1 ) * KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_8_1 ) ) * KroneckerMat( TransposedMatrix( deduped_3_1 ), deduped_3_1 ) * ConvertMatrixToColumn( deduped_3_1 ); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_4_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_8_1 ) ) ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, deduped_3_1 ) ) * ConvertMatrixToColumn( deduped_3_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5182,50 +5153,46 @@ end ######## function ( cat_1, a_1, b_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1; - deduped_23_1 := Dimension( b_1 ); - deduped_22_1 := UnderlyingRing( cat_1 ); - deduped_21_1 := Dimension( a_1 ); - deduped_20_1 := HomalgIdentityMatrix( 1, deduped_22_1 ); - deduped_19_1 := deduped_23_1 * 1; - deduped_18_1 := deduped_21_1 * 1; - deduped_17_1 := deduped_21_1 * deduped_23_1; - deduped_16_1 := HomalgIdentityMatrix( deduped_23_1, deduped_22_1 ); - deduped_15_1 := HomalgIdentityMatrix( deduped_21_1, deduped_22_1 ); - deduped_14_1 := HomalgIdentityMatrix( deduped_19_1, deduped_22_1 ); - deduped_13_1 := deduped_19_1 * deduped_21_1; - deduped_12_1 := HomalgIdentityMatrix( deduped_18_1, deduped_22_1 ); - deduped_11_1 := deduped_17_1 * deduped_17_1; - deduped_10_1 := deduped_18_1 * deduped_19_1; - deduped_9_1 := HomalgIdentityMatrix( deduped_17_1, deduped_22_1 ); - deduped_8_1 := deduped_17_1 * deduped_10_1; - deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_22_1 ); - hoisted_6_1 := deduped_23_1; - hoisted_5_1 := deduped_19_1; - hoisted_4_1 := deduped_21_1; - hoisted_3_1 := deduped_10_1; - hoisted_2_1 := deduped_17_1; - morphism_attr_1_1 := KroneckerMat( deduped_15_1, deduped_16_1 ) * (KroneckerMat( ConvertMatrixToRow( deduped_9_1 ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_22_1 ), deduped_7_1 ) * KroneckerMat( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1; + deduped_19_1 := UnderlyingRing( cat_1 ); + deduped_18_1 := Dimension( b_1 ); + deduped_17_1 := Dimension( a_1 ); + deduped_16_1 := HomalgIdentityMatrix( deduped_17_1, deduped_19_1 ); + deduped_15_1 := HomalgIdentityMatrix( deduped_18_1, deduped_19_1 ); + deduped_14_1 := deduped_18_1 * 1; + deduped_13_1 := deduped_17_1 * 1; + deduped_12_1 := deduped_17_1 * deduped_18_1; + deduped_11_1 := deduped_14_1 * deduped_17_1; + deduped_10_1 := deduped_12_1 * deduped_12_1; + deduped_9_1 := deduped_13_1 * deduped_14_1; + deduped_8_1 := deduped_12_1 * deduped_9_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_9_1, deduped_19_1 ); + hoisted_6_1 := deduped_18_1; + hoisted_5_1 := deduped_14_1; + hoisted_4_1 := deduped_17_1; + hoisted_3_1 := deduped_9_1; + hoisted_2_1 := deduped_12_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_12_1, deduped_19_1 ) ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_19_1 ), deduped_7_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_22_1 ) ) * KroneckerMat( TransposedMatrix( deduped_9_1 ), (KroneckerMat( KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_22_1 ) ), deduped_16_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_12_1, deduped_15_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_22_1 ), deduped_15_1 ) * KroneckerMat( deduped_20_1, ConvertMatrixToColumn( deduped_15_1 ) )), deduped_14_1 ), deduped_16_1 ) * KroneckerMat( deduped_20_1, (KroneckerMat( deduped_14_1, deduped_16_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_19_1 ], function ( i_2 ) + end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_19_1 ) ) ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( deduped_12_1, (KroneckerMat( DiagMat( deduped_19_1, ListWithIdenticalEntries( deduped_13_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_19_1 ) ) ), deduped_15_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_19_1 ), deduped_16_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( 1, ConvertMatrixToColumn( deduped_16_1 ) ) )), HomalgIdentityMatrix( deduped_14_1, deduped_19_1 ) ), deduped_15_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( 1, (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, 1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_19_1 ), deduped_19_1, deduped_19_1, deduped_22_1 ), deduped_16_1 ) * KroneckerMat( deduped_20_1, ConvertMatrixToColumn( deduped_16_1 ) )) )) )); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_19_1 ), deduped_15_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( 1, ConvertMatrixToColumn( deduped_15_1 ) ) )) ) )) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5237,50 +5204,46 @@ end ######## function ( cat_1, s_1, a_1, b_1, r_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1; - deduped_23_1 := Dimension( b_1 ); - deduped_22_1 := UnderlyingRing( cat_1 ); - deduped_21_1 := Dimension( a_1 ); - deduped_20_1 := HomalgIdentityMatrix( 1, deduped_22_1 ); - deduped_19_1 := deduped_23_1 * 1; - deduped_18_1 := deduped_21_1 * 1; - deduped_17_1 := deduped_21_1 * deduped_23_1; - deduped_16_1 := HomalgIdentityMatrix( deduped_23_1, deduped_22_1 ); - deduped_15_1 := HomalgIdentityMatrix( deduped_21_1, deduped_22_1 ); - deduped_14_1 := HomalgIdentityMatrix( deduped_19_1, deduped_22_1 ); - deduped_13_1 := deduped_19_1 * deduped_21_1; - deduped_12_1 := HomalgIdentityMatrix( deduped_18_1, deduped_22_1 ); - deduped_11_1 := deduped_17_1 * deduped_17_1; - deduped_10_1 := deduped_18_1 * deduped_19_1; - deduped_9_1 := HomalgIdentityMatrix( deduped_17_1, deduped_22_1 ); - deduped_8_1 := deduped_17_1 * deduped_10_1; - deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_22_1 ); - hoisted_6_1 := deduped_23_1; - hoisted_5_1 := deduped_19_1; - hoisted_4_1 := deduped_21_1; - hoisted_3_1 := deduped_10_1; - hoisted_2_1 := deduped_17_1; - morphism_attr_1_1 := KroneckerMat( deduped_15_1, deduped_16_1 ) * (KroneckerMat( ConvertMatrixToRow( deduped_9_1 ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_22_1 ), deduped_7_1 ) * KroneckerMat( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1; + deduped_19_1 := UnderlyingRing( cat_1 ); + deduped_18_1 := Dimension( b_1 ); + deduped_17_1 := Dimension( a_1 ); + deduped_16_1 := HomalgIdentityMatrix( deduped_17_1, deduped_19_1 ); + deduped_15_1 := HomalgIdentityMatrix( deduped_18_1, deduped_19_1 ); + deduped_14_1 := deduped_18_1 * 1; + deduped_13_1 := deduped_17_1 * 1; + deduped_12_1 := deduped_17_1 * deduped_18_1; + deduped_11_1 := deduped_14_1 * deduped_17_1; + deduped_10_1 := deduped_12_1 * deduped_12_1; + deduped_9_1 := deduped_13_1 * deduped_14_1; + deduped_8_1 := deduped_12_1 * deduped_9_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_9_1, deduped_19_1 ); + hoisted_6_1 := deduped_18_1; + hoisted_5_1 := deduped_14_1; + hoisted_4_1 := deduped_17_1; + hoisted_3_1 := deduped_9_1; + hoisted_2_1 := deduped_12_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_12_1, deduped_19_1 ) ), deduped_7_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_19_1 ), deduped_7_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_22_1 ) ) * KroneckerMat( TransposedMatrix( deduped_9_1 ), (KroneckerMat( KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_22_1 ) ), deduped_16_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_12_1, deduped_15_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_22_1 ), deduped_15_1 ) * KroneckerMat( deduped_20_1, ConvertMatrixToColumn( deduped_15_1 ) )), deduped_14_1 ), deduped_16_1 ) * KroneckerMat( deduped_20_1, (KroneckerMat( deduped_14_1, deduped_16_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_19_1 ], function ( i_2 ) + end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_19_1 ) ) ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( deduped_12_1, (KroneckerMat( DiagMat( deduped_19_1, ListWithIdenticalEntries( deduped_13_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_19_1 ) ) ), deduped_15_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_19_1 ), deduped_16_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( 1, ConvertMatrixToColumn( deduped_16_1 ) ) )), HomalgIdentityMatrix( deduped_14_1, deduped_19_1 ) ), deduped_15_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( 1, (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, 1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_19_1 ), deduped_19_1, deduped_19_1, deduped_22_1 ), deduped_16_1 ) * KroneckerMat( deduped_20_1, ConvertMatrixToColumn( deduped_16_1 ) )) )) )); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_19_1 ), deduped_15_1 ) * DiagMat( deduped_19_1, ListWithIdenticalEntries( 1, ConvertMatrixToColumn( deduped_15_1 ) ) )) ) )) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5292,55 +5255,51 @@ end ######## function ( cat_1, list_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1, deduped_27_1, deduped_28_1; - deduped_28_1 := UnderlyingRing( cat_1 ); - deduped_27_1 := List( list_1, Dimension ); - deduped_26_1 := deduped_27_1[4]; - deduped_25_1 := deduped_27_1[2]; - deduped_24_1 := deduped_27_1[3]; - deduped_23_1 := deduped_27_1[1]; - deduped_22_1 := HomalgIdentityMatrix( deduped_25_1, deduped_28_1 ); - deduped_21_1 := HomalgIdentityMatrix( deduped_23_1, deduped_28_1 ); - deduped_20_1 := HomalgIdentityMatrix( deduped_24_1, deduped_28_1 ); - deduped_19_1 := deduped_24_1 * deduped_26_1; - deduped_18_1 := deduped_23_1 * deduped_25_1; - deduped_17_1 := deduped_23_1 * deduped_24_1; - deduped_16_1 := HomalgIdentityMatrix( deduped_19_1, deduped_28_1 ); - deduped_15_1 := deduped_19_1 * deduped_23_1; - deduped_14_1 := HomalgIdentityMatrix( deduped_18_1, deduped_28_1 ); - deduped_13_1 := deduped_17_1 * deduped_17_1; - deduped_12_1 := deduped_18_1 * deduped_19_1; - deduped_11_1 := HomalgIdentityMatrix( deduped_17_1, deduped_28_1 ); - deduped_10_1 := deduped_17_1 * deduped_12_1; - deduped_9_1 := HomalgIdentityMatrix( deduped_12_1, deduped_28_1 ); - hoisted_8_1 := deduped_24_1; - hoisted_7_1 := deduped_26_1; - hoisted_6_1 := deduped_25_1; - hoisted_5_1 := deduped_19_1; - hoisted_4_1 := deduped_23_1; - hoisted_3_1 := deduped_12_1; - hoisted_2_1 := deduped_17_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_11_1 ), deduped_9_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1; + deduped_24_1 := UnderlyingRing( cat_1 ); + deduped_23_1 := List( list_1, Dimension ); + deduped_22_1 := deduped_23_1[4]; + deduped_21_1 := deduped_23_1[2]; + deduped_20_1 := deduped_23_1[3]; + deduped_19_1 := deduped_23_1[1]; + deduped_18_1 := HomalgIdentityMatrix( deduped_19_1, deduped_24_1 ); + deduped_17_1 := HomalgIdentityMatrix( deduped_20_1, deduped_24_1 ); + deduped_16_1 := deduped_20_1 * deduped_22_1; + deduped_15_1 := deduped_19_1 * deduped_21_1; + deduped_14_1 := deduped_19_1 * deduped_20_1; + deduped_13_1 := deduped_16_1 * deduped_19_1; + deduped_12_1 := deduped_14_1 * deduped_14_1; + deduped_11_1 := deduped_15_1 * deduped_16_1; + deduped_10_1 := deduped_14_1 * deduped_11_1; + deduped_9_1 := HomalgIdentityMatrix( deduped_11_1, deduped_24_1 ); + hoisted_8_1 := deduped_20_1; + hoisted_7_1 := deduped_22_1; + hoisted_6_1 := deduped_21_1; + hoisted_5_1 := deduped_16_1; + hoisted_4_1 := deduped_19_1; + hoisted_3_1 := deduped_11_1; + hoisted_2_1 := deduped_14_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_14_1, deduped_24_1 ) ), deduped_9_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_28_1 ), deduped_9_1 ) * KroneckerMat( deduped_11_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_28_1 ) ) * KroneckerMat( TransposedMatrix( deduped_11_1 ), (KroneckerMat( KroneckerMat( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_28_1 ) ), deduped_20_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_14_1, deduped_21_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_24_1 ), deduped_9_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_24_1 ) ) ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_14_1, (KroneckerMat( DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_24_1 ) ) ), deduped_17_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_28_1 ), deduped_21_1 ) * KroneckerMat( deduped_22_1, ConvertMatrixToColumn( deduped_21_1 ) )), deduped_16_1 ), deduped_20_1 ) * KroneckerMat( deduped_22_1, (KroneckerMat( deduped_16_1, deduped_20_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_19_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_19_1 ), deduped_19_1, deduped_19_1, deduped_28_1 ), deduped_20_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_26_1, deduped_28_1 ), ConvertMatrixToColumn( deduped_20_1 ) )) )) ); + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_24_1 ), deduped_18_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_21_1, ConvertMatrixToColumn( deduped_18_1 ) ) )), HomalgIdentityMatrix( deduped_16_1, deduped_24_1 ) ), deduped_17_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_21_1, (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_24_1 ), deduped_17_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToColumn( deduped_17_1 ) ) )) ) )) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5352,56 +5311,52 @@ end ######## function ( cat_1, list_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1, deduped_27_1, deduped_28_1, deduped_29_1; - deduped_29_1 := UnderlyingRing( cat_1 ); - deduped_28_1 := List( list_1, Dimension ); - deduped_27_1 := deduped_28_1[4]; - deduped_26_1 := deduped_28_1[2]; - deduped_25_1 := deduped_28_1[3]; - deduped_24_1 := deduped_28_1[1]; - deduped_23_1 := HomalgIdentityMatrix( deduped_26_1, deduped_29_1 ); - deduped_22_1 := HomalgIdentityMatrix( deduped_24_1, deduped_29_1 ); - deduped_21_1 := HomalgIdentityMatrix( deduped_25_1, deduped_29_1 ); - deduped_20_1 := deduped_25_1 * deduped_27_1; - deduped_19_1 := deduped_24_1 * deduped_26_1; - deduped_18_1 := deduped_24_1 * deduped_25_1; - deduped_17_1 := deduped_18_1 * deduped_18_1; - deduped_16_1 := deduped_19_1 * deduped_20_1; - deduped_15_1 := HomalgIdentityMatrix( deduped_20_1, deduped_29_1 ); - deduped_14_1 := deduped_20_1 * deduped_24_1; - deduped_13_1 := HomalgIdentityMatrix( deduped_19_1, deduped_29_1 ); - deduped_12_1 := HomalgIdentityMatrix( deduped_18_1, deduped_29_1 ); - deduped_11_1 := deduped_18_1 * deduped_16_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_16_1, deduped_29_1 ); - hoisted_6_1 := deduped_25_1; - hoisted_5_1 := deduped_27_1; - hoisted_4_1 := deduped_26_1; - hoisted_3_1 := deduped_20_1; - hoisted_2_1 := deduped_24_1; - deduped_9_1 := KroneckerMat( TransposedMatrix( deduped_12_1 ), KroneckerMat( KroneckerMat( deduped_13_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_29_1 ) ), deduped_21_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_13_1, deduped_22_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_19_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1; + deduped_25_1 := List( list_1, Dimension ); + deduped_24_1 := UnderlyingRing( cat_1 ); + deduped_23_1 := deduped_25_1[4]; + deduped_22_1 := deduped_25_1[2]; + deduped_21_1 := deduped_25_1[3]; + deduped_20_1 := deduped_25_1[1]; + deduped_19_1 := HomalgIdentityMatrix( deduped_20_1, deduped_24_1 ); + deduped_18_1 := HomalgIdentityMatrix( deduped_21_1, deduped_24_1 ); + deduped_17_1 := deduped_21_1 * deduped_23_1; + deduped_16_1 := deduped_20_1 * deduped_22_1; + deduped_15_1 := deduped_20_1 * deduped_21_1; + deduped_14_1 := deduped_15_1 * deduped_15_1; + deduped_13_1 := deduped_16_1 * deduped_17_1; + deduped_12_1 := deduped_17_1 * deduped_20_1; + deduped_11_1 := deduped_15_1 * deduped_13_1; + deduped_10_1 := HomalgIdentityMatrix( deduped_13_1, deduped_24_1 ); + hoisted_6_1 := deduped_21_1; + hoisted_5_1 := deduped_23_1; + hoisted_4_1 := deduped_22_1; + hoisted_3_1 := deduped_17_1; + hoisted_2_1 := deduped_20_1; + deduped_9_1 := DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, KroneckerMat( DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_16_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_24_1 ) ) ), deduped_18_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_19_1 ), deduped_19_1, deduped_19_1, deduped_29_1 ), deduped_22_1 ) * KroneckerMat( deduped_23_1, ConvertMatrixToColumn( deduped_22_1 ) )), deduped_15_1 ), deduped_21_1 ) * KroneckerMat( deduped_23_1, (KroneckerMat( deduped_15_1, deduped_21_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_20_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_20_1 ), deduped_20_1, deduped_20_1, deduped_29_1 ), deduped_21_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_27_1, deduped_29_1 ), ConvertMatrixToColumn( deduped_21_1 ) )) ) ); - hoisted_8_1 := deduped_16_1; - hoisted_7_1 := deduped_18_1; - morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_29_1 ), KroneckerMat( ConvertMatrixToRow( deduped_12_1 ), deduped_10_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_24_1 ), deduped_19_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToColumn( deduped_19_1 ) ) )), HomalgIdentityMatrix( deduped_17_1, deduped_24_1 ) ), deduped_18_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); + end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_24_1 ), deduped_18_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_23_1, ConvertMatrixToColumn( deduped_18_1 ) ) )) ) ) ) ); + hoisted_8_1 := deduped_13_1; + hoisted_7_1 := deduped_15_1; + morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_24_1 ), KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_15_1, deduped_24_1 ) ), deduped_10_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_29_1 ), deduped_10_1 ) * KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_29_1 ) ) * deduped_9_1 ); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_24_1 ), deduped_10_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_24_1 ) ) ) * deduped_9_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5413,56 +5368,52 @@ end ######## function ( cat_1, source_1, list_1, range_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1, deduped_27_1, deduped_28_1, deduped_29_1; - deduped_29_1 := UnderlyingRing( cat_1 ); - deduped_28_1 := List( list_1, Dimension ); - deduped_27_1 := deduped_28_1[4]; - deduped_26_1 := deduped_28_1[2]; - deduped_25_1 := deduped_28_1[3]; - deduped_24_1 := deduped_28_1[1]; - deduped_23_1 := HomalgIdentityMatrix( deduped_26_1, deduped_29_1 ); - deduped_22_1 := HomalgIdentityMatrix( deduped_24_1, deduped_29_1 ); - deduped_21_1 := HomalgIdentityMatrix( deduped_25_1, deduped_29_1 ); - deduped_20_1 := deduped_25_1 * deduped_27_1; - deduped_19_1 := deduped_24_1 * deduped_26_1; - deduped_18_1 := deduped_24_1 * deduped_25_1; - deduped_17_1 := deduped_18_1 * deduped_18_1; - deduped_16_1 := deduped_19_1 * deduped_20_1; - deduped_15_1 := HomalgIdentityMatrix( deduped_20_1, deduped_29_1 ); - deduped_14_1 := deduped_20_1 * deduped_24_1; - deduped_13_1 := HomalgIdentityMatrix( deduped_19_1, deduped_29_1 ); - deduped_12_1 := HomalgIdentityMatrix( deduped_18_1, deduped_29_1 ); - deduped_11_1 := deduped_18_1 * deduped_16_1; - deduped_10_1 := HomalgIdentityMatrix( deduped_16_1, deduped_29_1 ); - hoisted_6_1 := deduped_25_1; - hoisted_5_1 := deduped_27_1; - hoisted_4_1 := deduped_26_1; - hoisted_3_1 := deduped_20_1; - hoisted_2_1 := deduped_24_1; - deduped_9_1 := KroneckerMat( TransposedMatrix( deduped_12_1 ), KroneckerMat( KroneckerMat( deduped_13_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_29_1 ) ), deduped_21_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_13_1, deduped_22_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_19_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1; + deduped_25_1 := List( list_1, Dimension ); + deduped_24_1 := UnderlyingRing( cat_1 ); + deduped_23_1 := deduped_25_1[4]; + deduped_22_1 := deduped_25_1[2]; + deduped_21_1 := deduped_25_1[3]; + deduped_20_1 := deduped_25_1[1]; + deduped_19_1 := HomalgIdentityMatrix( deduped_20_1, deduped_24_1 ); + deduped_18_1 := HomalgIdentityMatrix( deduped_21_1, deduped_24_1 ); + deduped_17_1 := deduped_21_1 * deduped_23_1; + deduped_16_1 := deduped_20_1 * deduped_22_1; + deduped_15_1 := deduped_20_1 * deduped_21_1; + deduped_14_1 := deduped_15_1 * deduped_15_1; + deduped_13_1 := deduped_16_1 * deduped_17_1; + deduped_12_1 := deduped_17_1 * deduped_20_1; + deduped_11_1 := deduped_15_1 * deduped_13_1; + deduped_10_1 := HomalgIdentityMatrix( deduped_13_1, deduped_24_1 ); + hoisted_6_1 := deduped_21_1; + hoisted_5_1 := deduped_23_1; + hoisted_4_1 := deduped_22_1; + hoisted_3_1 := deduped_17_1; + hoisted_2_1 := deduped_20_1; + deduped_9_1 := DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, KroneckerMat( DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_16_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_24_1 ) ) ), deduped_18_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_19_1 ), deduped_19_1, deduped_19_1, deduped_29_1 ), deduped_22_1 ) * KroneckerMat( deduped_23_1, ConvertMatrixToColumn( deduped_22_1 ) )), deduped_15_1 ), deduped_21_1 ) * KroneckerMat( deduped_23_1, (KroneckerMat( deduped_15_1, deduped_21_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_20_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); - end ) ), deduped_20_1 ), deduped_20_1, deduped_20_1, deduped_29_1 ), deduped_21_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_27_1, deduped_29_1 ), ConvertMatrixToColumn( deduped_21_1 ) )) ) ); - hoisted_8_1 := deduped_16_1; - hoisted_7_1 := deduped_18_1; - morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_29_1 ), KroneckerMat( ConvertMatrixToRow( deduped_12_1 ), deduped_10_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_24_1 ), deduped_19_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToColumn( deduped_19_1 ) ) )), HomalgIdentityMatrix( deduped_17_1, deduped_24_1 ) ), deduped_18_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_17_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_5_1 ) * hoisted_6_1 + QUO_INT( deduped_1_2, hoisted_5_1 ) + 1); + end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_24_1 ), deduped_18_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_23_1, ConvertMatrixToColumn( deduped_18_1 ) ) )) ) ) ) ); + hoisted_8_1 := deduped_13_1; + hoisted_7_1 := deduped_15_1; + morphism_attr_1_1 := RightDivide( HomalgIdentityMatrix( NumberColumns( deduped_9_1 ), deduped_24_1 ), KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_15_1, deduped_24_1 ) ), deduped_10_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_14_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_17_1 ), deduped_17_1, deduped_17_1, deduped_29_1 ), deduped_10_1 ) * KroneckerMat( deduped_12_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); - end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_29_1 ) ) * deduped_9_1 ); + end ) ), deduped_14_1 ), deduped_14_1, deduped_14_1, deduped_24_1 ), deduped_10_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_11_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_8_1 ) * hoisted_7_1 + QUO_INT( deduped_1_2, hoisted_8_1 ) + 1); + end ) ), deduped_11_1 ), deduped_11_1, deduped_11_1, deduped_24_1 ) ) ) * deduped_9_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5474,55 +5425,51 @@ end ######## function ( cat_1, source_1, list_1, range_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1, deduped_25_1, deduped_26_1, deduped_27_1, deduped_28_1; - deduped_28_1 := UnderlyingRing( cat_1 ); - deduped_27_1 := List( list_1, Dimension ); - deduped_26_1 := deduped_27_1[4]; - deduped_25_1 := deduped_27_1[2]; - deduped_24_1 := deduped_27_1[3]; - deduped_23_1 := deduped_27_1[1]; - deduped_22_1 := HomalgIdentityMatrix( deduped_25_1, deduped_28_1 ); - deduped_21_1 := HomalgIdentityMatrix( deduped_23_1, deduped_28_1 ); - deduped_20_1 := HomalgIdentityMatrix( deduped_24_1, deduped_28_1 ); - deduped_19_1 := deduped_24_1 * deduped_26_1; - deduped_18_1 := deduped_23_1 * deduped_25_1; - deduped_17_1 := deduped_23_1 * deduped_24_1; - deduped_16_1 := HomalgIdentityMatrix( deduped_19_1, deduped_28_1 ); - deduped_15_1 := deduped_19_1 * deduped_23_1; - deduped_14_1 := HomalgIdentityMatrix( deduped_18_1, deduped_28_1 ); - deduped_13_1 := deduped_17_1 * deduped_17_1; - deduped_12_1 := deduped_18_1 * deduped_19_1; - deduped_11_1 := HomalgIdentityMatrix( deduped_17_1, deduped_28_1 ); - deduped_10_1 := deduped_17_1 * deduped_12_1; - deduped_9_1 := HomalgIdentityMatrix( deduped_12_1, deduped_28_1 ); - hoisted_8_1 := deduped_24_1; - hoisted_7_1 := deduped_26_1; - hoisted_6_1 := deduped_25_1; - hoisted_5_1 := deduped_19_1; - hoisted_4_1 := deduped_23_1; - hoisted_3_1 := deduped_12_1; - hoisted_2_1 := deduped_17_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_11_1 ), deduped_9_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, hoisted_4_1, hoisted_5_1, hoisted_6_1, hoisted_7_1, hoisted_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1, deduped_15_1, deduped_16_1, deduped_17_1, deduped_18_1, deduped_19_1, deduped_20_1, deduped_21_1, deduped_22_1, deduped_23_1, deduped_24_1; + deduped_24_1 := UnderlyingRing( cat_1 ); + deduped_23_1 := List( list_1, Dimension ); + deduped_22_1 := deduped_23_1[4]; + deduped_21_1 := deduped_23_1[2]; + deduped_20_1 := deduped_23_1[3]; + deduped_19_1 := deduped_23_1[1]; + deduped_18_1 := HomalgIdentityMatrix( deduped_19_1, deduped_24_1 ); + deduped_17_1 := HomalgIdentityMatrix( deduped_20_1, deduped_24_1 ); + deduped_16_1 := deduped_20_1 * deduped_22_1; + deduped_15_1 := deduped_19_1 * deduped_21_1; + deduped_14_1 := deduped_19_1 * deduped_20_1; + deduped_13_1 := deduped_16_1 * deduped_19_1; + deduped_12_1 := deduped_14_1 * deduped_14_1; + deduped_11_1 := deduped_15_1 * deduped_16_1; + deduped_10_1 := deduped_14_1 * deduped_11_1; + deduped_9_1 := HomalgIdentityMatrix( deduped_11_1, deduped_24_1 ); + hoisted_8_1 := deduped_20_1; + hoisted_7_1 := deduped_22_1; + hoisted_6_1 := deduped_21_1; + hoisted_5_1 := deduped_16_1; + hoisted_4_1 := deduped_19_1; + hoisted_3_1 := deduped_11_1; + hoisted_2_1 := deduped_14_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_14_1, deduped_24_1 ) ), deduped_9_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_12_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_28_1 ), deduped_9_1 ) * KroneckerMat( deduped_11_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_28_1 ) ) * KroneckerMat( TransposedMatrix( deduped_11_1 ), (KroneckerMat( KroneckerMat( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); - end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_28_1 ) ), deduped_20_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( deduped_14_1, deduped_21_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_18_1 ], function ( i_2 ) + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_24_1 ), deduped_9_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_14_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_10_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_10_1 ), deduped_10_1, deduped_10_1, deduped_24_1 ) ) ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_14_1, (KroneckerMat( DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_15_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_13_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_4_1 ) * hoisted_5_1 + QUO_INT( deduped_1_2, hoisted_4_1 ) + 1); + end ) ), deduped_13_1 ), deduped_13_1, deduped_13_1, deduped_24_1 ) ) ), deduped_17_1 ) * KroneckerMat( KroneckerMat( (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_15_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_6_1 ) * hoisted_4_1 + QUO_INT( deduped_1_2, hoisted_6_1 ) + 1); - end ) ), deduped_18_1 ), deduped_18_1, deduped_18_1, deduped_28_1 ), deduped_21_1 ) * KroneckerMat( deduped_22_1, ConvertMatrixToColumn( deduped_21_1 ) )), deduped_16_1 ), deduped_20_1 ) * KroneckerMat( deduped_22_1, (KroneckerMat( deduped_16_1, deduped_20_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_19_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); - end ) ), deduped_19_1 ), deduped_19_1, deduped_19_1, deduped_28_1 ), deduped_20_1 ) * KroneckerMat( HomalgIdentityMatrix( deduped_26_1, deduped_28_1 ), ConvertMatrixToColumn( deduped_20_1 ) )) )) ); + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_24_1 ), deduped_18_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_21_1, ConvertMatrixToColumn( deduped_18_1 ) ) )), HomalgIdentityMatrix( deduped_16_1, deduped_24_1 ) ), deduped_17_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_21_1, (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_16_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_7_1 ) * hoisted_8_1 + QUO_INT( deduped_1_2, hoisted_7_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_24_1 ), deduped_17_1 ) * DiagMat( deduped_24_1, ListWithIdenticalEntries( deduped_22_1, ConvertMatrixToColumn( deduped_17_1 ) ) )) ) )) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5569,25 +5516,24 @@ end ######## function ( cat_1, c_1, b_1, g_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( c_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( c_1 ); deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := deduped_10_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; + deduped_7_1 := UnderlyingRing( cat_1 ); + deduped_6_1 := HomalgIdentityMatrix( deduped_9_1, deduped_7_1 ); + deduped_5_1 := deduped_8_1 * deduped_8_1; + deduped_4_1 := deduped_9_1 * deduped_8_1; + hoisted_3_1 := deduped_9_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_4_1 ), UnderlyingMatrix( g_1 ) ) * (KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_9_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, UnderlyingMatrix( g_1 ) ) ) * (DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_4_1 ), deduped_7_1 )); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_6_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ) ), deduped_6_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5599,25 +5545,24 @@ end ######## function ( cat_1, a_1, b_1, f_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( a_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); - deduped_8_1 := Dimension( b_1 ); - deduped_7_1 := deduped_8_1 * deduped_10_1; - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; - hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_4_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( a_1 ); + deduped_8_1 := UnderlyingRing( cat_1 ); + deduped_7_1 := Dimension( b_1 ); + deduped_6_1 := deduped_7_1 * deduped_9_1; + deduped_5_1 := deduped_7_1 * deduped_7_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_9_1, deduped_8_1 ); + hoisted_3_1 := deduped_9_1; + hoisted_2_1 := deduped_7_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_7_1, deduped_8_1 ) ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_5_1 ) * KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_9_1 ) ) * KroneckerMat( TransposedMatrix( deduped_4_1 ), UnderlyingMatrix( f_1 ) ); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_4_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_8_1 ) ) ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, UnderlyingMatrix( f_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -5688,11 +5633,11 @@ function ( cat_1, alpha_1 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ), deduped_7_1 ) * KroneckerMat( deduped_3_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ) ) * KroneckerMat( TransposedMatrix( deduped_3_1 ), UnderlyingMatrix( alpha_1 ) ) * ConvertMatrixToColumn( deduped_3_1 ); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_8_1 ), deduped_7_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_6_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, 1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, 1 ) + 1); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ) ) ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_6_1, UnderlyingMatrix( alpha_1 ) ) ) * ConvertMatrixToColumn( deduped_3_1 ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -6066,25 +6011,24 @@ end ######## function ( cat_1, t_1, a_1, alpha_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( t_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( t_1 ); deduped_8_1 := Dimension( a_1 ); - deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := deduped_10_1 * deduped_8_1; - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; + deduped_7_1 := UnderlyingRing( cat_1 ); + deduped_6_1 := HomalgIdentityMatrix( deduped_9_1, deduped_7_1 ); + deduped_5_1 := deduped_8_1 * deduped_8_1; + deduped_4_1 := deduped_9_1 * deduped_8_1; + hoisted_3_1 := deduped_9_1; hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( TransposedMatrix( deduped_4_1 ), UnderlyingMatrix( alpha_1 ) ) * (KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_9_1 ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + morphism_attr_1_1 := DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, UnderlyingMatrix( alpha_1 ) ) ) * (DiagMat( deduped_7_1, ListWithIdenticalEntries( deduped_8_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_4_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_3_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_4_1 ), deduped_4_1, deduped_4_1, deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_7_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_4_1 ), deduped_7_1 )); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_7_1 ), deduped_6_1 ) * KroneckerMat( ConvertMatrixToColumn( HomalgIdentityMatrix( deduped_8_1, deduped_7_1 ) ), deduped_6_1 )); return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberColumns( morphism_attr_1_1 ) ), UnderlyingMatrix, morphism_attr_1_1 ); end ######## @@ -6096,25 +6040,24 @@ end ######## function ( cat_1, t_1, a_1, alpha_1 ) - local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1; - deduped_10_1 := Dimension( t_1 ); - deduped_9_1 := UnderlyingRing( cat_1 ); - deduped_8_1 := Dimension( a_1 ); - deduped_7_1 := deduped_8_1 * deduped_10_1; - deduped_6_1 := deduped_8_1 * deduped_8_1; - deduped_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_9_1 ); - deduped_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 ); - hoisted_3_1 := deduped_10_1; - hoisted_2_1 := deduped_8_1; - morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( deduped_4_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local morphism_attr_1_1, hoisted_2_1, hoisted_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1; + deduped_9_1 := Dimension( t_1 ); + deduped_8_1 := UnderlyingRing( cat_1 ); + deduped_7_1 := Dimension( a_1 ); + deduped_6_1 := deduped_7_1 * deduped_9_1; + deduped_5_1 := deduped_7_1 * deduped_7_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_9_1, deduped_8_1 ); + hoisted_3_1 := deduped_9_1; + hoisted_2_1 := deduped_7_1; + morphism_attr_1_1 := KroneckerMat( ConvertMatrixToRow( HomalgIdentityMatrix( deduped_7_1, deduped_8_1 ) ), deduped_4_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_5_1 ], function ( i_2 ) local deduped_1_2; deduped_1_2 := (i_2 - 1); return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); - end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_9_1 ), deduped_5_1 ) * KroneckerMat( deduped_4_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) - local deduped_1_2; - deduped_1_2 := (i_2 - 1); - return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); - end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_9_1 ) ) * KroneckerMat( TransposedMatrix( deduped_4_1 ), UnderlyingMatrix( alpha_1 ) ); + end ) ), deduped_5_1 ), deduped_5_1, deduped_5_1, deduped_8_1 ), deduped_4_1 ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_3_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_3_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_8_1 ) ) ) * DiagMat( deduped_8_1, ListWithIdenticalEntries( deduped_7_1, UnderlyingMatrix( alpha_1 ) ) ); return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, Dimension, NumberRows( morphism_attr_1_1 ) ), a_1, UnderlyingMatrix, morphism_attr_1_1 ); end ######## diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfArbitraryRingPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfArbitraryRingPrecompiled.gi index 624c67774d..83fc831c24 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfArbitraryRingPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfArbitraryRingPrecompiled.gi @@ -129,6 +129,25 @@ end , 100 ); + ## + AddIsEqualForObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := UnderlyingMatrix( arg3_1 ); + deduped_1_1 := UnderlyingMatrix( arg2_1 ); + if NumberRows( deduped_1_1 ) = NumberRows( deduped_2_1 ) and NumberColumns( deduped_1_1 ) = NumberColumns( deduped_2_1 ) then + return deduped_1_1 = deduped_2_1; + else + return false; + fi; + return; +end +######## + + , 100 ); + ## AddIsZeroForMorphisms( cat, @@ -140,6 +159,42 @@ end , 100 ); + ## + AddKernelEmbedding( cat, + +######## +function ( cat_1, alpha_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := Source( alpha_1 ); + deduped_1_1 := ReducedSyzygiesOfRows( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( Range( alpha_1 ) ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfRows( deduped_1_1, UnderlyingMatrix( deduped_2_1 ) ) ), deduped_2_1, UnderlyingMatrix, deduped_1_1 ); +end +######## + + , 100 ); + + ## + AddLiftAlongMonomorphism( cat, + +######## +function ( cat_1, iota_1, tau_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( tau_1 ), Source( iota_1 ), UnderlyingMatrix, RightDivide( UnderlyingMatrix( tau_1 ), UnderlyingMatrix( iota_1 ), UnderlyingMatrix( Range( iota_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddPreCompose( cat, + +######## +function ( cat_1, alpha_1, beta_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( alpha_1 ), Range( beta_1 ), UnderlyingMatrix, UnderlyingMatrix( alpha_1 ) * UnderlyingMatrix( beta_1 ) ); +end +######## + + , 100 ); + ## AddProjectionInFactorOfDirectSumWithGivenDirectSum( cat, diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi index 3e5692d3d2..e043bb4ae4 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi @@ -129,6 +129,25 @@ end , 100 ); + ## + AddIsEqualForObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := UnderlyingMatrix( arg3_1 ); + deduped_1_1 := UnderlyingMatrix( arg2_1 ); + if NumberRows( deduped_1_1 ) = NumberRows( deduped_2_1 ) and NumberColumns( deduped_1_1 ) = NumberColumns( deduped_2_1 ) then + return deduped_1_1 = deduped_2_1; + else + return false; + fi; + return; +end +######## + + , 100 ); + ## AddIsZeroForMorphisms( cat, @@ -140,6 +159,42 @@ end , 100 ); + ## + AddKernelEmbedding( cat, + +######## +function ( cat_1, alpha_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := Source( alpha_1 ); + deduped_1_1 := ReducedSyzygiesOfRows( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( Range( alpha_1 ) ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfRows( deduped_1_1, UnderlyingMatrix( deduped_2_1 ) ) ), deduped_2_1, UnderlyingMatrix, deduped_1_1 ); +end +######## + + , 100 ); + + ## + AddLiftAlongMonomorphism( cat, + +######## +function ( cat_1, iota_1, tau_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( tau_1 ), Source( iota_1 ), UnderlyingMatrix, RightDivide( UnderlyingMatrix( tau_1 ), UnderlyingMatrix( iota_1 ), UnderlyingMatrix( Range( iota_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddPreCompose( cat, + +######## +function ( cat_1, alpha_1, beta_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( alpha_1 ), Range( beta_1 ), UnderlyingMatrix, UnderlyingMatrix( alpha_1 ) * UnderlyingMatrix( beta_1 ) ); +end +######## + + , 100 ); + ## AddProjectionInFactorOfDirectSumWithGivenDirectSum( cat, @@ -223,6 +278,155 @@ end , 100 ); + ## + AddAssociatorLeftToRightWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddAssociatorRightToLeftWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddBraidingWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := NumberColumns( UnderlyingMatrix( b_1 ) ); + deduped_4_1 := NumberColumns( UnderlyingMatrix( a_1 ) ); + deduped_3_1 := deduped_4_1 * deduped_5_1; + hoisted_2_1 := deduped_4_1; + hoisted_1_1 := deduped_5_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := i_2 - 1; + return REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1; + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddCoevaluationMorphismWithGivenRange( cat, + +######## +function ( cat_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1; + deduped_13_1 := UnderlyingMatrix( a_1 ); + deduped_12_1 := UnderlyingRing( cat_1 ); + deduped_11_1 := UnderlyingMatrix( b_1 ); + deduped_10_1 := NumberColumns( deduped_13_1 ); + deduped_9_1 := NumberColumns( deduped_11_1 ); + deduped_8_1 := deduped_10_1 * deduped_9_1; + deduped_7_1 := deduped_9_1 * deduped_10_1; + deduped_6_1 := deduped_9_1 * deduped_9_1; + deduped_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_12_1 ); + deduped_4_1 := HomalgIdentityMatrix( deduped_9_1, deduped_12_1 ); + deduped_3_1 := UnionOfRows( deduped_12_1, deduped_8_1, [ KroneckerMat( deduped_13_1, deduped_4_1 ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_10_1, deduped_11_1 ) ) ] ); + hoisted_2_1 := deduped_10_1; + hoisted_1_1 := deduped_9_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, r_1, UnderlyingMatrix, RightDivide( KroneckerMat( ConvertMatrixToRow( deduped_4_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_12_1 ), deduped_5_1 ) * DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_12_1 ) ) ), RightDivide( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_11_1 ), HomalgIdentityMatrix( deduped_8_1, deduped_12_1 ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( NumberRows( deduped_11_1 ), deduped_3_1 ) ) ), HomalgIdentityMatrix( deduped_9_1 * deduped_8_1, deduped_12_1 ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, deduped_3_1 ) ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, ReducedBasisOfRowModule( deduped_3_1 ) ) ) ) ); +end +######## + + , 100 ); + + ## + AddEvaluationMorphismWithGivenSource( cat, + +######## +function ( cat_1, a_1, b_1, s_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1; + deduped_14_1 := UnderlyingRing( cat_1 ); + deduped_13_1 := UnderlyingMatrix( b_1 ); + deduped_12_1 := UnderlyingMatrix( a_1 ); + deduped_11_1 := NumberColumns( deduped_12_1 ); + deduped_10_1 := NumberRows( deduped_12_1 ); + deduped_9_1 := NumberColumns( deduped_13_1 ); + deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_14_1 ); + deduped_7_1 := deduped_11_1 * deduped_9_1; + deduped_6_1 := DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_11_1, ReducedBasisOfRowModule( deduped_13_1 ) ) ); + deduped_5_1 := deduped_7_1 * deduped_11_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_5_1, deduped_14_1 ); + deduped_3_1 := Sum( [ NumberRows( deduped_6_1 ) * deduped_11_1, deduped_7_1 * deduped_10_1 ] ) + 1; + hoisted_2_1 := deduped_11_1; + hoisted_1_1 := deduped_9_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, b_1, UnderlyingMatrix, KroneckerMat( RightDivide( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_12_1 ), HomalgIdentityMatrix( deduped_9_1, deduped_14_1 ) ), DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_10_1, deduped_13_1 ) ) ), HomalgIdentityMatrix( deduped_7_1, deduped_14_1 ), DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_11_1, deduped_13_1 ) ) ), deduped_8_1 ) * (CertainColumns( RightDivide( deduped_4_1, UnionOfRows( deduped_14_1, deduped_5_1, [ UnionOfRows( deduped_14_1, deduped_5_1, [ KroneckerMat( deduped_6_1, deduped_8_1 ), DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_7_1, deduped_12_1 ) ) ] ), deduped_4_1 ] ) ), [ deduped_3_1 .. (deduped_3_1 - 1 + deduped_5_1) ] ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_14_1 ), deduped_8_1 ) * DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_9_1, ConvertMatrixToColumn( deduped_8_1 ) ) ))) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnMorphismsWithGivenInternalHoms( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := UnderlyingMatrix( Range( beta_1 ) ); + deduped_3_1 := UnderlyingMatrix( Source( alpha_1 ) ); + deduped_2_1 := UnderlyingMatrix( Source( beta_1 ) ); + deduped_1_1 := UnderlyingMatrix( Range( alpha_1 ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, RightDivide( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberColumns( deduped_2_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ) * KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ), ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_3_1 ), HomalgIdentityMatrix( NumberColumns( deduped_4_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberRows( deduped_3_1 ), deduped_4_1 ) ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberColumns( deduped_3_1 ), deduped_4_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnObjects( cat, + +######## +function ( cat_1, a_1, b_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1; + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := UnderlyingMatrix( b_1 ); + deduped_1_1 := UnderlyingMatrix( a_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfRows( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberColumns( deduped_2_1 ), deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberColumns( deduped_1_1 ), deduped_2_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddLeftUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + ## AddMultiplyWithElementOfCommutativeRingForMorphisms( cat, @@ -234,6 +438,56 @@ end , 100 ); + ## + AddRightUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnMorphismsWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, KroneckerMat( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( beta_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingMatrix( arg3_1 ); + deduped_4_1 := UnderlyingMatrix( arg2_1 ); + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := NumberColumns( deduped_5_1 ); + deduped_1_1 := NumberColumns( deduped_4_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, UnionOfRows( deduped_3_1, deduped_1_1 * deduped_2_1, [ KroneckerMat( deduped_4_1, HomalgIdentityMatrix( deduped_2_1, deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( deduped_1_1, deduped_5_1 ) ) ] ) ); +end +######## + + , 100 ); + + ## + AddTensorUnit( cat, + +######## +function ( cat_1 ) + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 0, 1, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + if IsBound( cat!.precompiled_functions_added ) then # COVERAGE_IGNORE_NEXT_LINE diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi index fae4a6ef4c..385b7f5214 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi @@ -129,6 +129,25 @@ end , 100 ); + ## + AddIsEqualForObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := UnderlyingMatrix( arg3_1 ); + deduped_1_1 := UnderlyingMatrix( arg2_1 ); + if NumberRows( deduped_1_1 ) = NumberRows( deduped_2_1 ) and NumberColumns( deduped_1_1 ) = NumberColumns( deduped_2_1 ) then + return deduped_1_1 = deduped_2_1; + else + return false; + fi; + return; +end +######## + + , 100 ); + ## AddIsZeroForMorphisms( cat, @@ -140,6 +159,42 @@ end , 100 ); + ## + AddKernelEmbedding( cat, + +######## +function ( cat_1, alpha_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := Source( alpha_1 ); + deduped_1_1 := ReducedSyzygiesOfRows( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( Range( alpha_1 ) ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfRows( deduped_1_1, UnderlyingMatrix( deduped_2_1 ) ) ), deduped_2_1, UnderlyingMatrix, deduped_1_1 ); +end +######## + + , 100 ); + + ## + AddLiftAlongMonomorphism( cat, + +######## +function ( cat_1, iota_1, tau_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( tau_1 ), Source( iota_1 ), UnderlyingMatrix, RightDivide( UnderlyingMatrix( tau_1 ), UnderlyingMatrix( iota_1 ), UnderlyingMatrix( Range( iota_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddPreCompose( cat, + +######## +function ( cat_1, alpha_1, beta_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( alpha_1 ), Range( beta_1 ), UnderlyingMatrix, UnderlyingMatrix( alpha_1 ) * UnderlyingMatrix( beta_1 ) ); +end +######## + + , 100 ); + ## AddProjectionInFactorOfDirectSumWithGivenDirectSum( cat, @@ -223,6 +278,155 @@ end , 100 ); + ## + AddAssociatorLeftToRightWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddAssociatorRightToLeftWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddBraidingWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := NumberColumns( UnderlyingMatrix( b_1 ) ); + deduped_4_1 := NumberColumns( UnderlyingMatrix( a_1 ) ); + deduped_3_1 := deduped_4_1 * deduped_5_1; + hoisted_2_1 := deduped_4_1; + hoisted_1_1 := deduped_5_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := i_2 - 1; + return REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1; + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddCoevaluationMorphismWithGivenRange( cat, + +######## +function ( cat_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1; + deduped_13_1 := UnderlyingMatrix( a_1 ); + deduped_12_1 := UnderlyingRing( cat_1 ); + deduped_11_1 := UnderlyingMatrix( b_1 ); + deduped_10_1 := NumberColumns( deduped_13_1 ); + deduped_9_1 := NumberColumns( deduped_11_1 ); + deduped_8_1 := deduped_10_1 * deduped_9_1; + deduped_7_1 := deduped_9_1 * deduped_10_1; + deduped_6_1 := deduped_9_1 * deduped_9_1; + deduped_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_12_1 ); + deduped_4_1 := HomalgIdentityMatrix( deduped_9_1, deduped_12_1 ); + deduped_3_1 := UnionOfRows( deduped_12_1, deduped_8_1, [ KroneckerMat( deduped_13_1, deduped_4_1 ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_10_1, deduped_11_1 ) ) ] ); + hoisted_2_1 := deduped_10_1; + hoisted_1_1 := deduped_9_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, r_1, UnderlyingMatrix, RightDivide( KroneckerMat( ConvertMatrixToRow( deduped_4_1 ), deduped_5_1 ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_12_1 ), deduped_5_1 ) * DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_2_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_2_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_12_1 ) ) ), RightDivide( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_11_1 ), HomalgIdentityMatrix( deduped_8_1, deduped_12_1 ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( NumberRows( deduped_11_1 ), deduped_3_1 ) ) ), HomalgIdentityMatrix( deduped_9_1 * deduped_8_1, deduped_12_1 ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, deduped_3_1 ) ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, ReducedBasisOfRowModule( deduped_3_1 ) ) ) ) ); +end +######## + + , 100 ); + + ## + AddEvaluationMorphismWithGivenSource( cat, + +######## +function ( cat_1, a_1, b_1, s_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1; + deduped_14_1 := UnderlyingRing( cat_1 ); + deduped_13_1 := UnderlyingMatrix( b_1 ); + deduped_12_1 := UnderlyingMatrix( a_1 ); + deduped_11_1 := NumberColumns( deduped_12_1 ); + deduped_10_1 := NumberRows( deduped_12_1 ); + deduped_9_1 := NumberColumns( deduped_13_1 ); + deduped_8_1 := HomalgIdentityMatrix( deduped_11_1, deduped_14_1 ); + deduped_7_1 := deduped_11_1 * deduped_9_1; + deduped_6_1 := DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_11_1, ReducedBasisOfRowModule( deduped_13_1 ) ) ); + deduped_5_1 := deduped_7_1 * deduped_11_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_5_1, deduped_14_1 ); + deduped_3_1 := Sum( [ NumberRows( deduped_6_1 ) * deduped_11_1, deduped_7_1 * deduped_10_1 ] ) + 1; + hoisted_2_1 := deduped_11_1; + hoisted_1_1 := deduped_9_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, b_1, UnderlyingMatrix, KroneckerMat( RightDivide( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_12_1 ), HomalgIdentityMatrix( deduped_9_1, deduped_14_1 ) ), DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_10_1, deduped_13_1 ) ) ), HomalgIdentityMatrix( deduped_7_1, deduped_14_1 ), DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_11_1, deduped_13_1 ) ) ), deduped_8_1 ) * (CertainColumns( RightDivide( deduped_4_1, UnionOfRows( deduped_14_1, deduped_5_1, [ UnionOfRows( deduped_14_1, deduped_5_1, [ KroneckerMat( deduped_6_1, deduped_8_1 ), DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_7_1, deduped_12_1 ) ) ] ), deduped_4_1 ] ) ), [ deduped_3_1 .. (deduped_3_1 - 1 + deduped_5_1) ] ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_14_1 ), deduped_8_1 ) * DiagMat( deduped_14_1, ListWithIdenticalEntries( deduped_9_1, ConvertMatrixToColumn( deduped_8_1 ) ) ))) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnMorphismsWithGivenInternalHoms( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := UnderlyingMatrix( Range( beta_1 ) ); + deduped_3_1 := UnderlyingMatrix( Source( alpha_1 ) ); + deduped_2_1 := UnderlyingMatrix( Source( beta_1 ) ); + deduped_1_1 := UnderlyingMatrix( Range( alpha_1 ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, RightDivide( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberColumns( deduped_2_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ) * KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ), ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_3_1 ), HomalgIdentityMatrix( NumberColumns( deduped_4_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberRows( deduped_3_1 ), deduped_4_1 ) ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberColumns( deduped_3_1 ), deduped_4_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnObjects( cat, + +######## +function ( cat_1, a_1, b_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1; + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := UnderlyingMatrix( b_1 ); + deduped_1_1 := UnderlyingMatrix( a_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfRows( ReducedSyzygiesOfRows( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberColumns( deduped_2_1 ), deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberColumns( deduped_1_1 ), deduped_2_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddLeftUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + ## AddMultiplyWithElementOfCommutativeRingForMorphisms( cat, @@ -234,6 +438,56 @@ end , 100 ); + ## + AddRightUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnMorphismsWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, KroneckerMat( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( beta_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingMatrix( arg3_1 ); + deduped_4_1 := UnderlyingMatrix( arg2_1 ); + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := NumberColumns( deduped_5_1 ); + deduped_1_1 := NumberColumns( deduped_4_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, UnionOfRows( deduped_3_1, deduped_1_1 * deduped_2_1, [ KroneckerMat( deduped_4_1, HomalgIdentityMatrix( deduped_2_1, deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( deduped_1_1, deduped_5_1 ) ) ] ) ); +end +######## + + , 100 ); + + ## + AddTensorUnit( cat, + +######## +function ( cat_1 ) + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 0, 1, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + if IsBound( cat!.precompiled_functions_added ) then # COVERAGE_IGNORE_NEXT_LINE diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfArbitraryRingPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfArbitraryRingPrecompiled.gi index d68fad3743..9caa4b418e 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfArbitraryRingPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfArbitraryRingPrecompiled.gi @@ -129,6 +129,25 @@ end , 100 ); + ## + AddIsEqualForObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := UnderlyingMatrix( arg3_1 ); + deduped_1_1 := UnderlyingMatrix( arg2_1 ); + if NumberColumns( deduped_1_1 ) = NumberColumns( deduped_2_1 ) and NumberRows( deduped_1_1 ) = NumberRows( deduped_2_1 ) then + return deduped_1_1 = deduped_2_1; + else + return false; + fi; + return; +end +######## + + , 100 ); + ## AddIsZeroForMorphisms( cat, @@ -140,6 +159,42 @@ end , 100 ); + ## + AddKernelEmbedding( cat, + +######## +function ( cat_1, alpha_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := Source( alpha_1 ); + deduped_1_1 := ReducedSyzygiesOfColumns( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( Range( alpha_1 ) ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfColumns( deduped_1_1, UnderlyingMatrix( deduped_2_1 ) ) ), deduped_2_1, UnderlyingMatrix, deduped_1_1 ); +end +######## + + , 100 ); + + ## + AddLiftAlongMonomorphism( cat, + +######## +function ( cat_1, iota_1, tau_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( tau_1 ), Source( iota_1 ), UnderlyingMatrix, LeftDivide( UnderlyingMatrix( iota_1 ), UnderlyingMatrix( tau_1 ), UnderlyingMatrix( Range( iota_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddPreCompose( cat, + +######## +function ( cat_1, alpha_1, beta_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( alpha_1 ), Range( beta_1 ), UnderlyingMatrix, UnderlyingMatrix( beta_1 ) * UnderlyingMatrix( alpha_1 ) ); +end +######## + + , 100 ); + ## AddProjectionInFactorOfDirectSumWithGivenDirectSum( cat, diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi index 8f052556ec..c07e58e593 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi @@ -129,6 +129,25 @@ end , 100 ); + ## + AddIsEqualForObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := UnderlyingMatrix( arg3_1 ); + deduped_1_1 := UnderlyingMatrix( arg2_1 ); + if NumberColumns( deduped_1_1 ) = NumberColumns( deduped_2_1 ) and NumberRows( deduped_1_1 ) = NumberRows( deduped_2_1 ) then + return deduped_1_1 = deduped_2_1; + else + return false; + fi; + return; +end +######## + + , 100 ); + ## AddIsZeroForMorphisms( cat, @@ -140,6 +159,42 @@ end , 100 ); + ## + AddKernelEmbedding( cat, + +######## +function ( cat_1, alpha_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := Source( alpha_1 ); + deduped_1_1 := ReducedSyzygiesOfColumns( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( Range( alpha_1 ) ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfColumns( deduped_1_1, UnderlyingMatrix( deduped_2_1 ) ) ), deduped_2_1, UnderlyingMatrix, deduped_1_1 ); +end +######## + + , 100 ); + + ## + AddLiftAlongMonomorphism( cat, + +######## +function ( cat_1, iota_1, tau_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( tau_1 ), Source( iota_1 ), UnderlyingMatrix, LeftDivide( UnderlyingMatrix( iota_1 ), UnderlyingMatrix( tau_1 ), UnderlyingMatrix( Range( iota_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddPreCompose( cat, + +######## +function ( cat_1, alpha_1, beta_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( alpha_1 ), Range( beta_1 ), UnderlyingMatrix, UnderlyingMatrix( beta_1 ) * UnderlyingMatrix( alpha_1 ) ); +end +######## + + , 100 ); + ## AddProjectionInFactorOfDirectSumWithGivenDirectSum( cat, @@ -223,6 +278,155 @@ end , 100 ); + ## + AddAssociatorLeftToRightWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddAssociatorRightToLeftWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddBraidingWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := NumberRows( UnderlyingMatrix( b_1 ) ); + deduped_4_1 := NumberRows( UnderlyingMatrix( a_1 ) ); + deduped_3_1 := deduped_4_1 * deduped_5_1; + hoisted_2_1 := deduped_5_1; + hoisted_1_1 := deduped_4_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := i_2 - 1; + return REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1; + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddCoevaluationMorphismWithGivenRange( cat, + +######## +function ( cat_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1; + deduped_13_1 := UnderlyingRing( cat_1 ); + deduped_12_1 := UnderlyingMatrix( a_1 ); + deduped_11_1 := UnderlyingMatrix( b_1 ); + deduped_10_1 := NumberRows( deduped_12_1 ); + deduped_9_1 := NumberRows( deduped_11_1 ); + deduped_8_1 := HomalgIdentityMatrix( deduped_10_1, deduped_13_1 ); + deduped_7_1 := deduped_9_1 * deduped_9_1; + deduped_6_1 := deduped_9_1 * deduped_10_1; + deduped_5_1 := HomalgIdentityMatrix( deduped_9_1, deduped_13_1 ); + deduped_4_1 := deduped_10_1 * deduped_9_1; + deduped_3_1 := UnionOfColumns( deduped_13_1, deduped_4_1, [ KroneckerMat( deduped_12_1, deduped_5_1 ), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_10_1, deduped_11_1 ) ) ] ); + hoisted_2_1 := deduped_10_1; + hoisted_1_1 := deduped_9_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, r_1, UnderlyingMatrix, LeftDivide( LeftDivide( HomalgIdentityMatrix( deduped_9_1 * deduped_4_1, deduped_13_1 ), ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_11_1 ), HomalgIdentityMatrix( deduped_4_1, deduped_13_1 ) ), DiagMat( deduped_13_1, ListWithIdenticalEntries( NumberColumns( deduped_11_1 ), deduped_3_1 ) ) ), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_9_1, deduped_3_1 ) ) ), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_13_1 ) ) ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_13_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_5_1 ), deduped_8_1 )), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_9_1, ReducedBasisOfColumnModule( deduped_3_1 ) ) ) ) ); +end +######## + + , 100 ); + + ## + AddEvaluationMorphismWithGivenSource( cat, + +######## +function ( cat_1, a_1, b_1, s_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1; + deduped_14_1 := UnderlyingMatrix( a_1 ); + deduped_13_1 := UnderlyingMatrix( b_1 ); + deduped_12_1 := UnderlyingRing( cat_1 ); + deduped_11_1 := NumberColumns( deduped_14_1 ); + deduped_10_1 := NumberRows( deduped_14_1 ); + deduped_9_1 := NumberRows( deduped_13_1 ); + deduped_8_1 := deduped_10_1 * deduped_9_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_12_1 ); + deduped_6_1 := DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_10_1, ReducedBasisOfColumnModule( deduped_13_1 ) ) ); + deduped_5_1 := deduped_8_1 * deduped_10_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_5_1, deduped_12_1 ); + deduped_3_1 := Sum( [ NumberColumns( deduped_6_1 ) * deduped_10_1, deduped_8_1 * deduped_11_1 ] ) + 1; + hoisted_2_1 := deduped_9_1; + hoisted_1_1 := deduped_10_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, b_1, UnderlyingMatrix, DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, ConvertMatrixToRow( deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_12_1 ), deduped_7_1 ) * CertainRows( LeftDivide( UnionOfColumns( deduped_12_1, deduped_5_1, [ UnionOfColumns( deduped_12_1, deduped_5_1, [ KroneckerMat( deduped_6_1, deduped_7_1 ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_8_1, deduped_14_1 ) ) ] ), deduped_4_1 ] ), deduped_4_1 ), [ deduped_3_1 .. (deduped_3_1 - 1 + deduped_5_1) ] ) * KroneckerMat( LeftDivide( HomalgIdentityMatrix( deduped_8_1, deduped_12_1 ), ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_14_1 ), HomalgIdentityMatrix( deduped_9_1, deduped_12_1 ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_11_1, deduped_13_1 ) ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_10_1, deduped_13_1 ) ) ), deduped_7_1 ) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnMorphismsWithGivenInternalHoms( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := UnderlyingMatrix( Source( beta_1 ) ); + deduped_3_1 := UnderlyingMatrix( Range( alpha_1 ) ); + deduped_2_1 := UnderlyingMatrix( Range( beta_1 ) ); + deduped_1_1 := UnderlyingMatrix( Source( alpha_1 ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, LeftDivide( ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberRows( deduped_2_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberColumns( deduped_1_1 ), deduped_2_1 ) ) ), KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ) * ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_3_1 ), HomalgIdentityMatrix( NumberRows( deduped_4_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberColumns( deduped_3_1 ), deduped_4_1 ) ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnObjects( cat, + +######## +function ( cat_1, a_1, b_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1; + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := UnderlyingMatrix( b_1 ); + deduped_1_1 := UnderlyingMatrix( a_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfColumns( ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberRows( deduped_2_1 ), deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberColumns( deduped_1_1 ), deduped_2_1 ) ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddLeftUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + ## AddMultiplyWithElementOfCommutativeRingForMorphisms( cat, @@ -234,6 +438,56 @@ end , 100 ); + ## + AddRightUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnMorphismsWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, KroneckerMat( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( beta_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingMatrix( arg3_1 ); + deduped_4_1 := UnderlyingMatrix( arg2_1 ); + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := NumberRows( deduped_5_1 ); + deduped_1_1 := NumberRows( deduped_4_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, UnionOfColumns( deduped_3_1, deduped_1_1 * deduped_2_1, [ KroneckerMat( deduped_4_1, HomalgIdentityMatrix( deduped_2_1, deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( deduped_1_1, deduped_5_1 ) ) ] ) ); +end +######## + + , 100 ); + + ## + AddTensorUnit( cat, + +######## +function ( cat_1 ) + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 1, 0, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + if IsBound( cat!.precompiled_functions_added ) then # COVERAGE_IGNORE_NEXT_LINE diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfFieldPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfFieldPrecompiled.gi index cdff8fad44..eec97e826b 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfFieldPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfFieldPrecompiled.gi @@ -129,6 +129,25 @@ end , 100 ); + ## + AddIsEqualForObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := UnderlyingMatrix( arg3_1 ); + deduped_1_1 := UnderlyingMatrix( arg2_1 ); + if NumberColumns( deduped_1_1 ) = NumberColumns( deduped_2_1 ) and NumberRows( deduped_1_1 ) = NumberRows( deduped_2_1 ) then + return deduped_1_1 = deduped_2_1; + else + return false; + fi; + return; +end +######## + + , 100 ); + ## AddIsZeroForMorphisms( cat, @@ -140,6 +159,42 @@ end , 100 ); + ## + AddKernelEmbedding( cat, + +######## +function ( cat_1, alpha_1 ) + local deduped_1_1, deduped_2_1; + deduped_2_1 := Source( alpha_1 ); + deduped_1_1 := ReducedSyzygiesOfColumns( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( Range( alpha_1 ) ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfColumns( deduped_1_1, UnderlyingMatrix( deduped_2_1 ) ) ), deduped_2_1, UnderlyingMatrix, deduped_1_1 ); +end +######## + + , 100 ); + + ## + AddLiftAlongMonomorphism( cat, + +######## +function ( cat_1, iota_1, tau_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( tau_1 ), Source( iota_1 ), UnderlyingMatrix, LeftDivide( UnderlyingMatrix( iota_1 ), UnderlyingMatrix( tau_1 ), UnderlyingMatrix( Range( iota_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddPreCompose( cat, + +######## +function ( cat_1, alpha_1, beta_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, Source( alpha_1 ), Range( beta_1 ), UnderlyingMatrix, UnderlyingMatrix( beta_1 ) * UnderlyingMatrix( alpha_1 ) ); +end +######## + + , 100 ); + ## AddProjectionInFactorOfDirectSumWithGivenDirectSum( cat, @@ -223,6 +278,155 @@ end , 100 ); + ## + AddAssociatorLeftToRightWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddAssociatorRightToLeftWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, c_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( s_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddBraidingWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := NumberRows( UnderlyingMatrix( b_1 ) ); + deduped_4_1 := NumberRows( UnderlyingMatrix( a_1 ) ); + deduped_3_1 := deduped_4_1 * deduped_5_1; + hoisted_2_1 := deduped_5_1; + hoisted_1_1 := deduped_4_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_3_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := i_2 - 1; + return REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1; + end ) ), deduped_3_1 ), deduped_3_1, deduped_3_1, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddCoevaluationMorphismWithGivenRange( cat, + +######## +function ( cat_1, a_1, b_1, r_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1; + deduped_13_1 := UnderlyingRing( cat_1 ); + deduped_12_1 := UnderlyingMatrix( a_1 ); + deduped_11_1 := UnderlyingMatrix( b_1 ); + deduped_10_1 := NumberRows( deduped_12_1 ); + deduped_9_1 := NumberRows( deduped_11_1 ); + deduped_8_1 := HomalgIdentityMatrix( deduped_10_1, deduped_13_1 ); + deduped_7_1 := deduped_9_1 * deduped_9_1; + deduped_6_1 := deduped_9_1 * deduped_10_1; + deduped_5_1 := HomalgIdentityMatrix( deduped_9_1, deduped_13_1 ); + deduped_4_1 := deduped_10_1 * deduped_9_1; + deduped_3_1 := UnionOfColumns( deduped_13_1, deduped_4_1, [ KroneckerMat( deduped_12_1, deduped_5_1 ), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_10_1, deduped_11_1 ) ) ] ); + hoisted_2_1 := deduped_10_1; + hoisted_1_1 := deduped_9_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, r_1, UnderlyingMatrix, LeftDivide( LeftDivide( HomalgIdentityMatrix( deduped_9_1 * deduped_4_1, deduped_13_1 ), ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_11_1 ), HomalgIdentityMatrix( deduped_4_1, deduped_13_1 ) ), DiagMat( deduped_13_1, ListWithIdenticalEntries( NumberColumns( deduped_11_1 ), deduped_3_1 ) ) ), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_9_1, deduped_3_1 ) ) ), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_9_1, HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_6_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_6_1 ), deduped_6_1, deduped_6_1, deduped_13_1 ) ) ) * (KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_7_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_7_1 ), deduped_7_1, deduped_7_1, deduped_13_1 ), deduped_8_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_5_1 ), deduped_8_1 )), DiagMat( deduped_13_1, ListWithIdenticalEntries( deduped_9_1, ReducedBasisOfColumnModule( deduped_3_1 ) ) ) ) ); +end +######## + + , 100 ); + + ## + AddEvaluationMorphismWithGivenSource( cat, + +######## +function ( cat_1, a_1, b_1, s_1 ) + local hoisted_1_1, hoisted_2_1, deduped_3_1, deduped_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, deduped_10_1, deduped_11_1, deduped_12_1, deduped_13_1, deduped_14_1; + deduped_14_1 := UnderlyingMatrix( a_1 ); + deduped_13_1 := UnderlyingMatrix( b_1 ); + deduped_12_1 := UnderlyingRing( cat_1 ); + deduped_11_1 := NumberColumns( deduped_14_1 ); + deduped_10_1 := NumberRows( deduped_14_1 ); + deduped_9_1 := NumberRows( deduped_13_1 ); + deduped_8_1 := deduped_10_1 * deduped_9_1; + deduped_7_1 := HomalgIdentityMatrix( deduped_10_1, deduped_12_1 ); + deduped_6_1 := DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_10_1, ReducedBasisOfColumnModule( deduped_13_1 ) ) ); + deduped_5_1 := deduped_8_1 * deduped_10_1; + deduped_4_1 := HomalgIdentityMatrix( deduped_5_1, deduped_12_1 ); + deduped_3_1 := Sum( [ NumberColumns( deduped_6_1 ) * deduped_10_1, deduped_8_1 * deduped_11_1 ] ) + 1; + hoisted_2_1 := deduped_9_1; + hoisted_1_1 := deduped_10_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, b_1, UnderlyingMatrix, DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_9_1, ConvertMatrixToRow( deduped_7_1 ) ) ) * KroneckerMat( HomalgMatrix( PermutationMat( PermList( List( [ 1 .. deduped_8_1 ], function ( i_2 ) + local deduped_1_2; + deduped_1_2 := (i_2 - 1); + return (REM_INT( deduped_1_2, hoisted_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_8_1 ), deduped_8_1, deduped_8_1, deduped_12_1 ), deduped_7_1 ) * CertainRows( LeftDivide( UnionOfColumns( deduped_12_1, deduped_5_1, [ UnionOfColumns( deduped_12_1, deduped_5_1, [ KroneckerMat( deduped_6_1, deduped_7_1 ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_8_1, deduped_14_1 ) ) ] ), deduped_4_1 ] ), deduped_4_1 ), [ deduped_3_1 .. (deduped_3_1 - 1 + deduped_5_1) ] ) * KroneckerMat( LeftDivide( HomalgIdentityMatrix( deduped_8_1, deduped_12_1 ), ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_14_1 ), HomalgIdentityMatrix( deduped_9_1, deduped_12_1 ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_11_1, deduped_13_1 ) ) ), DiagMat( deduped_12_1, ListWithIdenticalEntries( deduped_10_1, deduped_13_1 ) ) ), deduped_7_1 ) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnMorphismsWithGivenInternalHoms( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingRing( cat_1 ); + deduped_4_1 := UnderlyingMatrix( Source( beta_1 ) ); + deduped_3_1 := UnderlyingMatrix( Range( alpha_1 ) ); + deduped_2_1 := UnderlyingMatrix( Range( beta_1 ) ); + deduped_1_1 := UnderlyingMatrix( Source( alpha_1 ) ); + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, LeftDivide( ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberRows( deduped_2_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberColumns( deduped_1_1 ), deduped_2_1 ) ) ), KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ) * ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_3_1 ), HomalgIdentityMatrix( NumberRows( deduped_4_1 ), deduped_5_1 ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberColumns( deduped_3_1 ), deduped_4_1 ) ) ), DiagMat( deduped_5_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddInternalHomOnObjects( cat, + +######## +function ( cat_1, a_1, b_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1; + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := UnderlyingMatrix( b_1 ); + deduped_1_1 := UnderlyingMatrix( a_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, ReducedSyzygiesOfColumns( ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_1_1 ), HomalgIdentityMatrix( NumberRows( deduped_2_1 ), deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberColumns( deduped_1_1 ), deduped_2_1 ) ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( NumberRows( deduped_1_1 ), deduped_2_1 ) ) ) ); +end +######## + + , 100 ); + + ## + AddLeftUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + ## AddMultiplyWithElementOfCommutativeRingForMorphisms( cat, @@ -234,6 +438,56 @@ end , 100 ); + ## + AddRightUnitorWithGivenTensorProduct( cat, + +######## +function ( cat_1, a_1, s_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberRows( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnMorphismsWithGivenTensorProducts( cat, + +######## +function ( cat_1, s_1, alpha_1, beta_1, r_1 ) + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, KroneckerMat( UnderlyingMatrix( alpha_1 ), UnderlyingMatrix( beta_1 ) ) ); +end +######## + + , 100 ); + + ## + AddTensorProductOnObjects( cat, + +######## +function ( cat_1, arg2_1, arg3_1 ) + local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1; + deduped_5_1 := UnderlyingMatrix( arg3_1 ); + deduped_4_1 := UnderlyingMatrix( arg2_1 ); + deduped_3_1 := UnderlyingRing( cat_1 ); + deduped_2_1 := NumberRows( deduped_5_1 ); + deduped_1_1 := NumberRows( deduped_4_1 ); + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, UnionOfColumns( deduped_3_1, deduped_1_1 * deduped_2_1, [ KroneckerMat( deduped_4_1, HomalgIdentityMatrix( deduped_2_1, deduped_3_1 ) ), DiagMat( deduped_3_1, ListWithIdenticalEntries( deduped_1_1, deduped_5_1 ) ) ] ) ); +end +######## + + , 100 ); + + ## + AddTensorUnit( cat, + +######## +function ( cat_1 ) + return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 1, 0, UnderlyingRing( cat_1 ) ) ); +end +######## + + , 100 ); + if IsBound( cat!.precompiled_functions_added ) then # COVERAGE_IGNORE_NEXT_LINE