diff --git a/CAP/examples/ModulePresentationsMonoidalCategory.g b/CAP/examples/ModulePresentationsMonoidalCategory.g index da4fb01cce..a0f7f42635 100644 --- a/CAP/examples/ModulePresentationsMonoidalCategory.g +++ b/CAP/examples/ModulePresentationsMonoidalCategory.g @@ -13,8 +13,8 @@ Nl := AsLeftPresentation( HomalgMatrix( [ [ 3 ] ], 1, 1, ZZ ) ); Tl := TensorProductOnObjects( Ml, Nl ); #! Display( UnderlyingMatrix( Tl ) ); -#! [ [ 3 ], -#! [ 2 ] ] +#! [ [ 2 ], +#! [ 3 ] ] IsZeroForObjects( Tl ); #! true Bl := Braiding( DirectSum( Ml, Nl ), DirectSum( Ml, Ml ) ); @@ -38,15 +38,15 @@ generator_l1 := StandardGeneratorMorphism( IntHoml, 1 ); morphism_l1 := LambdaElimination( DirectSum( Ml, Ul ), Nl, generator_l1 ); #! Display( UnderlyingMatrix( morphism_l1 ) ); -#! [ [ -3 ], -#! [ 2 ] ] +#! [ [ -84 ], +#! [ -196 ] ] generator_l2 := StandardGeneratorMorphism( IntHoml, 2 ); #! morphism_l2 := LambdaElimination( DirectSum( Ml, Ul ), Nl, generator_l2 ); #! Display( UnderlyingMatrix( morphism_l2 ) ); -#! [ [ 0 ], -#! [ -1 ] ] +#! [ [ -39 ], +#! [ -91 ] ] IsEqualForMorphisms( LambdaIntroduction( morphism_l1 ), generator_l1 ); #! false IsCongruentForMorphisms( LambdaIntroduction( morphism_l1 ), generator_l1 ); @@ -62,7 +62,7 @@ Nr := AsRightPresentation( HomalgMatrix( [ [ 3 ] ], 1, 1, ZZ ) ); Tr := TensorProductOnObjects( Mr, Nr ); #! Display( UnderlyingMatrix( Tr ) ); -#! [ [ 3, 2 ] ] +#! [ [ 2, 3 ] ] IsZeroForObjects( Tr ); #! true Br := Braiding( DirectSum( Mr, Nr ), DirectSum( Mr, Mr ) ); @@ -86,14 +86,14 @@ generator_r1 := StandardGeneratorMorphism( IntHomr, 1 ); morphism_r1 := LambdaElimination( DirectSum( Mr, Ur ), Nr, generator_r1 ); #! Display( UnderlyingMatrix( morphism_r1 ) ); -#! [ [ -3, 2 ] ] +#! [ [ -84, -196 ] ] generator_r2 := StandardGeneratorMorphism( IntHoml, 2 ); #! morphism_r2 := LambdaElimination( DirectSum( Ml, Ul ), Nl, generator_r2 ); #! Display( UnderlyingMatrix( morphism_r2 ) ); -#! [ [ 0 ], -#! [ -1 ] ] +#! [ [ -39 ], +#! [ -91 ] ] IsEqualForMorphisms( LambdaIntroduction( morphism_r1 ), generator_r1 ); #! false IsCongruentForMorphisms( LambdaIntroduction( morphism_r1 ), generator_r1 ); diff --git a/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g b/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g index 9d3bcaf040..c240baa2ce 100644 --- a/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g +++ b/CompilerForCAP/examples/PrecompileModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.g @@ -45,25 +45,25 @@ operations_for_arbitrary_ring := [ operations_for_commutative_ring := Concatenation( operations_for_arbitrary_ring, - [ #"AssociatorLeftToRightWithGivenTensorProducts", - #"AssociatorRightToLeftWithGivenTensorProducts", - #"BraidingWithGivenTensorProducts", - #"CoevaluationMorphismWithGivenRange", + [ "AssociatorLeftToRightWithGivenTensorProducts", + "AssociatorRightToLeftWithGivenTensorProducts", + "BraidingWithGivenTensorProducts", + "CoevaluationMorphismWithGivenRange", #"Colift", #"ColiftOrFail", - #"EvaluationMorphismWithGivenSource", - #"InternalHomOnMorphismsWithGivenInternalHoms", - #"InternalHomOnObjects", + "EvaluationMorphismWithGivenSource", + "InternalHomOnMorphismsWithGivenInternalHoms", + "InternalHomOnObjects", #"IsColiftable", #"IsLiftable", - #"LeftUnitorWithGivenTensorProduct", + "LeftUnitorWithGivenTensorProduct", #"Lift", #"LiftOrFail", "MultiplyWithElementOfCommutativeRingForMorphisms", - #"RightUnitorWithGivenTensorProduct", - #"TensorProductOnMorphismsWithGivenTensorProducts", - #"TensorProductOnObjects", - #"TensorUnit", + "RightUnitorWithGivenTensorProduct", + "TensorProductOnMorphismsWithGivenTensorProducts", + "TensorProductOnObjects", + "TensorUnit", ] );; @@ -78,7 +78,11 @@ precompile_LeftPresentations := function( ring, name, operations ) name, "Precompiled" ) : - operations := operations + operations := "InternalHomOnMorphismsWithGivenInternalHoms", + number_of_objectified_objects_in_data_structure_of_object := 1, + number_of_objectified_morphisms_in_data_structure_of_object := 0, + number_of_objectified_objects_in_data_structure_of_morphism := 2, + number_of_objectified_morphisms_in_data_structure_of_morphism := 1 ); end;; precompile_LeftPresentations( @@ -102,7 +106,7 @@ precompile_RightPresentations := function( ring, name, operations ) name, "Precompiled" ) : - operations := operations, + operations := "InternalHomOnMorphismsWithGivenInternalHoms", number_of_objectified_objects_in_data_structure_of_object := 1, number_of_objectified_morphisms_in_data_structure_of_object := 0, number_of_objectified_objects_in_data_structure_of_morphism := 2, diff --git a/CompilerForCAP/gap/InferDataTypes.gi b/CompilerForCAP/gap/InferDataTypes.gi index fd8b0f9d3c..ed23933269 100644 --- a/CompilerForCAP/gap/InferDataTypes.gi +++ b/CompilerForCAP/gap/InferDataTypes.gi @@ -1492,10 +1492,18 @@ CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "CertainRows", [ "IsHomalgM CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "CertainColumns", [ "IsHomalgMatrix", "IsList" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "KroneckerMat", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "DualKroneckerMat", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); -CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "SafeRightDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "LeftDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "LeftDivide", [ "IsHomalgMatrix", "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "SafeLeftDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); -CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "UniqueRightDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "UniqueLeftDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "RightDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "RightDivide", [ "IsHomalgMatrix", "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "SafeRightDivide", [ "IsHomalgMatrix", "IsHomalgMatrix" ], "IsHomalgMatrix" ); +CapJitAddTypeSignatureDeferred( "MatricesForHomalg", "UniqueRightDivide", [ "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", "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 ec6a3122fa..dce6e87f31 100644 --- a/FreydCategoriesForCAP/gap/FreydCategory.gd +++ b/FreydCategoriesForCAP/gap/FreydCategory.gd @@ -275,9 +275,14 @@ 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 ] ); +CapJitAddTypeSignature( "INTERNAL_HOM_EMBEDDING", [ IsFreydCategory, IsFreydCategoryObject, IsFreydCategoryObject ], function ( input_types ) + + return CapJitDataTypeOfMorphismOfCategory( input_types[1].category ); + +end ); #################################################################################### ## diff --git a/FreydCategoriesForCAP/gap/FreydCategory.gi b/FreydCategoriesForCAP/gap/FreydCategory.gi index 0c4c4c8af2..88317c26b7 100644 --- a/FreydCategoriesForCAP/gap/FreydCategory.gi +++ b/FreydCategoriesForCAP/gap/FreydCategory.gi @@ -310,7 +310,7 @@ InstallOtherMethodForCompilerForCAP( MereExistenceOfWitnessForBeingCongruentToZe end ); -InstallMethodWithCacheFromObject( INTERNAL_HOM_EMBEDDING, +InstallMethod( 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 35d36b9e9c..2ad9ba9d4d 100644 --- a/LinearAlgebraForCAP/gap/CompilerLogic.gi +++ b/LinearAlgebraForCAP/gap/CompilerLogic.gi @@ -63,3 +63,388 @@ CapJitAddLogicTemplate( dst_template := "n" ) ); + +# 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 )", + ) +); + +# # Does not have an effect +# +# # 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 )", +# ) +# ); + +# # Does not have an effect +# +# # 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", + ) +); + +CapJitAddLogicTemplate( + rec( + variable_names := [ "freyd", "rows_morphism1", "rows_morphism2" ], + src_template := """UnderlyingMatrix( UnderlyingMorphism( INTERNAL_HOM_EMBEDDING( freyd, + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism1 ), + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism2 ) + ) ) )""", + dst_template := "UnderlyingMatrix( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( AsCategoryOfModulePresentations( freyd ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism1 ) ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism2 ) ) ) )", + ) +); + +CapJitAddLogicTemplate( + rec( + variable_names := [ "freyd", "rows_morphism1", "rows_morphism2" ], + src_template := """RankOfObject( Range( RelationMorphism( Range( INTERNAL_HOM_EMBEDDING( freyd, + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism1 ), + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism2 ) + ) ) ) ) )""", + dst_template := "NrColumns( UnderlyingMatrix( Range( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( AsCategoryOfModulePresentations( freyd ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism1 ) ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism2 ) ) ) ) ) )", + ) +); + +CapJitAddLogicTemplate( + rec( + variable_names := [ "freyd", "rows_morphism1", "rows_morphism2" ], + src_template := """RankOfObject( Source( RelationMorphism( Range( INTERNAL_HOM_EMBEDDING( freyd, + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism1 ), + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism2 ) + ) ) ) ) )""", + dst_template := "NrRows( UnderlyingMatrix( Range( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( AsCategoryOfModulePresentations( freyd ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism1 ) ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism2 ) ) ) ) ) )", + ) +); + +CapJitAddLogicTemplate( + rec( + variable_names := [ "freyd", "rows_morphism1", "rows_morphism2" ], + src_template := """RankOfObject( Range( RelationMorphism( Source( INTERNAL_HOM_EMBEDDING( freyd, + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism1 ), + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism2 ) + ) ) ) ) )""", + dst_template := "NrColumns( UnderlyingMatrix( Source( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( AsCategoryOfModulePresentations( freyd ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism1 ) ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism2 ) ) ) ) ) )", + ) +); + +CapJitAddLogicTemplate( + rec( + variable_names := [ "freyd", "rows_morphism1", "rows_morphism2" ], + src_template := """UnderlyingMatrix( RelationMorphism( Range( INTERNAL_HOM_EMBEDDING( freyd, + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism1 ), + CreateCapCategoryObjectWithAttributes( freyd, RelationMorphism, rows_morphism2 ) + ) ) ) )""", + dst_template := "UnderlyingMatrix( Range( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( AsCategoryOfModulePresentations( freyd ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism1 ) ), CreateCapCategoryObjectWithAttributes( AsCategoryOfModulePresentations( freyd ), UnderlyingMatrix, UnderlyingMatrix( rows_morphism2 ) ) ) ) )", + ) +); diff --git a/LinearAlgebraForCAP/gap/precompiled_categories/MatrixCategoryPrecompiled.gi b/LinearAlgebraForCAP/gap/precompiled_categories/MatrixCategoryPrecompiled.gi index 32362c3db0..b088e73207 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 ######## @@ -741,25 +733,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 ######## @@ -771,25 +762,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 ######## @@ -1362,11 +1352,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 ######## @@ -1386,11 +1376,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 ######## @@ -1860,53 +1850,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 ######## @@ -1918,54 +1906,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 := UniqueRightDivide( 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 := UniqueRightDivide( 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 ######## @@ -1977,54 +1963,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 := UniqueRightDivide( 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 := UniqueRightDivide( 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 ######## @@ -2036,53 +2020,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 ######## @@ -2096,17 +2078,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 ######## @@ -2163,11 +2145,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 ######## @@ -2924,23 +2906,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 ######## @@ -2952,23 +2933,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 ######## @@ -3010,11 +2990,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 ######## @@ -3032,11 +3012,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 ######## @@ -3107,16 +3087,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 ######## @@ -3129,16 +3109,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 ######## @@ -3150,23 +3130,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 ######## @@ -3178,23 +3157,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 ######## @@ -3433,11 +3411,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 ######## @@ -3449,23 +3427,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 ######## @@ -3482,14 +3459,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 @@ -3505,14 +3482,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 @@ -3530,14 +3507,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 @@ -3553,14 +3530,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 @@ -3669,37 +3646,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 ######## @@ -3714,37 +3691,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 ######## @@ -3756,41 +3733,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 ######## @@ -3802,41 +3778,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 ######## @@ -3851,48 +3826,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 ######## @@ -3907,48 +3882,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 ######## @@ -3960,53 +3935,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 ######## @@ -4018,53 +3991,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 ######## @@ -5023,11 +4994,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 ######## @@ -5441,50 +5412,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 ######## @@ -5496,50 +5463,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 ######## @@ -5551,55 +5514,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 ######## @@ -5611,56 +5570,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 := UniqueRightDivide( 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 := UniqueRightDivide( 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 ######## @@ -5672,56 +5627,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 := UniqueRightDivide( 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 := UniqueRightDivide( 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 ######## @@ -5733,55 +5684,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 ######## @@ -5828,25 +5775,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 ######## @@ -5858,25 +5804,24 @@ end ######## function ( cat_1, c_1, b_1, g_1, i_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 ######## @@ -5888,25 +5833,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 ######## @@ -5918,25 +5862,24 @@ end ######## function ( cat_1, a_1, b_1, f_1, i_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 ######## @@ -6007,11 +5950,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 ######## @@ -6453,25 +6396,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 ######## @@ -6483,25 +6425,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/examples/MonoidalStructure.g b/ModulePresentationsForCAP/examples/MonoidalStructure.g index 0544f86a85..6a1aef1b4d 100644 --- a/ModulePresentationsForCAP/examples/MonoidalStructure.g +++ b/ModulePresentationsForCAP/examples/MonoidalStructure.g @@ -15,8 +15,8 @@ N := AsLeftPresentation( HomalgMatrix( [ [ 3 ] ], 1, 1, R ) ); T := TensorProductOnObjects( M, N ); #! Display( T ); -#! [ [ 3 ], -#! [ 2 ] ] +#! [ [ 2 ], +#! [ 3 ] ] #! #! An object in Category of left presentations of Z IsZero( T ); @@ -37,8 +37,8 @@ l := LambdaElimination( DirectSum( M, M ), DirectSum( M, N ), alpha ); IsZero( l ); #! false Display( l ); -#! [ [ -2, 6 ], -#! [ -1, -3 ] ] +#! [ [ 236554, 0 ], +#! [ 78415, 0 ] ] #! #! A morphism in Category of left presentations of Z #! @EndExample diff --git a/ModulePresentationsForCAP/gap/ModulePresentationObject.gd b/ModulePresentationsForCAP/gap/ModulePresentationObject.gd index 9422156aa7..ab6825f759 100644 --- a/ModulePresentationsForCAP/gap/ModulePresentationObject.gd +++ b/ModulePresentationsForCAP/gap/ModulePresentationObject.gd @@ -141,7 +141,7 @@ DeclareAttribute( "Annihilator", ############################################## DeclareOperationWithCache( "INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT", - [ IsLeftOrRightPresentation, IsLeftOrRightPresentation ] ); + [ IsCategoryOfLeftPresentations, IsLeftPresentation, IsLeftPresentation ] ); DeclareOperationWithCache( "INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_RIGHT", - [ IsLeftOrRightPresentation, IsLeftOrRightPresentation ] ); + [ IsCategoryOfRightPresentations, IsRightPresentation, IsRightPresentation ] ); diff --git a/ModulePresentationsForCAP/gap/ModulePresentationObject.gi b/ModulePresentationsForCAP/gap/ModulePresentationObject.gi index 4e6a3f90f2..443efbe900 100644 --- a/ModulePresentationsForCAP/gap/ModulePresentationObject.gi +++ b/ModulePresentationsForCAP/gap/ModulePresentationObject.gi @@ -155,9 +155,9 @@ end ); ## InstallMethodWithCacheFromObject( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT, - [ IsLeftOrRightPresentation, IsLeftOrRightPresentation ], + [ IsCategoryOfLeftPresentations, IsLeftPresentation, IsLeftPresentation ], - function( object_1, object_2 ) + function( cat, object_1, object_2 ) local underlying_matrix_1, transposed_underlying_matrix_1, identity_matrix_2, differential_matrix, homalg_ring, free_module_source, free_module_range, differential; @@ -186,9 +186,9 @@ end ); ## InstallMethodWithCacheFromObject( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_RIGHT, - [ IsLeftOrRightPresentation, IsLeftOrRightPresentation ], + [ IsCategoryOfRightPresentations, IsRightPresentation, IsRightPresentation ], - function( object_1, object_2 ) + function( cat, object_1, object_2 ) local underlying_matrix_1, transposed_underlying_matrix_1, identity_matrix_2, differential_matrix, homalg_ring, free_module_source, free_module_range, differential; diff --git a/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gd b/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gd index 2d50603b15..5e298cb575 100644 --- a/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gd +++ b/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gd @@ -32,3 +32,5 @@ DeclareOperation( "LeftPresentationsAsFreydCategoryOfCategoryOfRows", #! @Arguments R DeclareOperation( "RightPresentationsAsFreydCategoryOfCategoryOfColumns", [ IsHomalgRing ] ); + +DeclareAttribute( "AsCategoryOfModulePresentations", IsFreydCategory ); diff --git a/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gi b/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gi index d6278261e8..2e6db6f191 100644 --- a/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gi +++ b/ModulePresentationsForCAP/gap/ModulePresentationsAsFreydCategoryOfCategoryOfRowsOrColumns.gi @@ -116,10 +116,13 @@ InstallMethod( LeftPresentationsAsFreydCategoryOfCategoryOfRows, wrapper!.compiler_hints.category_attribute_names := [ "UnderlyingRing", + "ModelingCategory", ]; SetUnderlyingRing( wrapper, ring ); + SetAsCategoryOfModulePresentations( freyd, wrapper ); + wrapper!.ring_for_representation_category := ring; AddCategoryToFamily( wrapper, "ModuleCategory" ); diff --git a/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gd b/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gd index 1a91bc08c4..7b260cffee 100644 --- a/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gd +++ b/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gd @@ -67,23 +67,6 @@ DeclareGlobalFunction( "ADD_PRECOMPOSE_LEFT" ); DeclareGlobalFunction( "ADD_IS_WELL_DEFINED_FOR_MORPHISM_LEFT" ); -DeclareGlobalFunction( "ADD_TENSOR_PRODUCT_ON_OBJECTS_LEFT" ); - -DeclareGlobalFunction( "ADD_TENSOR_UNIT_LEFT" ); - -DeclareGlobalFunction( "ADD_INTERNAL_HOM_ON_OBJECTS_LEFT" ); - -DeclareGlobalFunction( "ADD_INTERNAL_HOM_ON_MORPHISMS_LEFT" ); - -DeclareGlobalFunction( "ADD_BRAIDING_LEFT" ); - -DeclareGlobalFunction( "ADD_EVALUATION_MORPHISM_LEFT" ); - -DeclareGlobalFunction( "ADD_COEVALUATION_MORPHISM_LEFT" ); - -DeclareGlobalFunction( "ADD_ASSOCIATOR_LEFT" ); - - DeclareGlobalFunction( "ADD_FUNCTIONS_FOR_RIGHT_PRESENTATION" ); DeclareGlobalFunction( "ADD_KERNEL_RIGHT" ); @@ -92,31 +75,8 @@ DeclareGlobalFunction( "ADD_PRECOMPOSE_RIGHT" ); DeclareGlobalFunction( "ADD_IS_WELL_DEFINED_FOR_MORPHISM_RIGHT" ); -DeclareGlobalFunction( "ADD_TENSOR_PRODUCT_ON_OBJECTS_RIGHT" ); - -DeclareGlobalFunction( "ADD_TENSOR_UNIT_RIGHT" ); - -DeclareGlobalFunction( "ADD_INTERNAL_HOM_ON_OBJECTS_RIGHT" ); - -DeclareGlobalFunction( "ADD_INTERNAL_HOM_ON_MORPHISMS_RIGHT" ); - -DeclareGlobalFunction( "ADD_BRAIDING_RIGHT" ); - -DeclareGlobalFunction( "ADD_EVALUATION_MORPHISM_RIGHT" ); - -DeclareGlobalFunction( "ADD_COEVALUATION_MORPHISM_RIGHT" ); - -DeclareGlobalFunction( "ADD_ASSOCIATOR_RIGHT" ); - - -DeclareGlobalFunction( "ADD_UNITOR" ); - DeclareGlobalFunction( "ADD_IS_WELL_DEFINED_FOR_OBJECTS" ); -DeclareGlobalFunction( "ADD_EQUAL_FOR_OBJECTS" ); - -DeclareGlobalFunction( "ADD_TENSOR_PRODUCT_ON_MORPHISMS" ); - DeclareGlobalFunction( "ADD_LIFT_AND_COLIFT_LEFT" ); DeclareGlobalFunction( "ADD_LIFT_AND_COLIFT_RIGHT" ); diff --git a/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gi b/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gi index 7a5a7f9a45..9efe66ed59 100644 --- a/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gi +++ b/ModulePresentationsForCAP/gap/ModulePresentationsForCAP.gi @@ -237,27 +237,6 @@ InstallGlobalFunction( ADD_FUNCTIONS_FOR_LEFT_PRESENTATION, # differs from the compiled version ADD_LIFT_AND_COLIFT_LEFT( category ); - # this tensor structure slightly differs from the tensor structure of FreydCategory - ADD_ASSOCIATOR_LEFT( category ); - - ADD_UNITOR( category ); - - ADD_TENSOR_PRODUCT_ON_OBJECTS_LEFT( category ); - - ADD_TENSOR_PRODUCT_ON_MORPHISMS( category ); - - ADD_TENSOR_UNIT_LEFT( category ); - - ADD_INTERNAL_HOM_ON_OBJECTS_LEFT( category ); - - ADD_INTERNAL_HOM_ON_MORPHISMS_LEFT( category ); - - ADD_BRAIDING_LEFT( category ); - - ADD_EVALUATION_MORPHISM_LEFT( category ); - - ADD_COEVALUATION_MORPHISM_LEFT( category ); - fi; end ); @@ -279,26 +258,6 @@ InstallGlobalFunction( ADD_FUNCTIONS_FOR_RIGHT_PRESENTATION, ADD_LIFT_AND_COLIFT_RIGHT( category ); - ADD_ASSOCIATOR_RIGHT( category ); - - ADD_UNITOR( category ); - - ADD_TENSOR_PRODUCT_ON_OBJECTS_RIGHT( category ); - - ADD_TENSOR_PRODUCT_ON_MORPHISMS( category ); - - ADD_TENSOR_UNIT_RIGHT( category ); - - ADD_INTERNAL_HOM_ON_OBJECTS_RIGHT( category ); - - ADD_INTERNAL_HOM_ON_MORPHISMS_RIGHT( category ); - - ADD_BRAIDING_RIGHT( category ); - - ADD_EVALUATION_MORPHISM_RIGHT( category ); - - ADD_COEVALUATION_MORPHISM_RIGHT( category ); - fi; end ); @@ -568,585 +527,6 @@ InstallGlobalFunction( ADD_PRECOMPOSE_RIGHT, end ); -## -InstallGlobalFunction( ADD_ASSOCIATOR_LEFT, - - function( category ) - local homalg_ring, associator_func; - - homalg_ring := category!.ring_for_representation_category; - - associator_func := function( cat, source, A, B, C, range ) - - return PresentationMorphism( - source, - HomalgIdentityMatrix( NrColumns( UnderlyingMatrix( source ) ), NrColumns( UnderlyingMatrix( range ) ), homalg_ring ), - range - ); - - end; - - AddAssociatorLeftToRightWithGivenTensorProducts( category, - associator_func - ); - - AddAssociatorRightToLeftWithGivenTensorProducts( category, - associator_func - ); - -end ); - -## -InstallGlobalFunction( ADD_ASSOCIATOR_RIGHT, - - function( category ) - local homalg_ring, associator_func; - - homalg_ring := category!.ring_for_representation_category; - - associator_func := function( cat, source, A, B, C, range ) - - return PresentationMorphism( - source, - HomalgIdentityMatrix( NrRows( UnderlyingMatrix( source ) ), NrRows( UnderlyingMatrix( range ) ), homalg_ring ), - range - ); - - end; - - AddAssociatorLeftToRightWithGivenTensorProducts( category, - associator_func - ); - - AddAssociatorRightToLeftWithGivenTensorProducts( category, - associator_func - ); - -end ); - -## -InstallGlobalFunction( ADD_UNITOR, - - function( category ) - local unitor_func; - - unitor_func := function( cat, A, B ) - return IdentityMorphism( A ); - end; - - AddLeftUnitorWithGivenTensorProduct( category, unitor_func ); - - AddRightUnitorWithGivenTensorProduct( category, unitor_func ); - -end ); - -## -InstallGlobalFunction( ADD_TENSOR_PRODUCT_ON_OBJECTS_LEFT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddTensorProductOnObjects( category, - - function( cat, object_1, object_2 ) - local identity_1, identity_2, presentation_matrix_1, presentation_matrix_2, presentation_matrix; - - presentation_matrix_1 := UnderlyingMatrix( object_1 ); - - presentation_matrix_2 := UnderlyingMatrix( object_2 ); - - identity_1 := - HomalgIdentityMatrix( NrColumns( presentation_matrix_1 ), homalg_ring ); - - identity_2 := - HomalgIdentityMatrix( NrColumns( presentation_matrix_2 ), homalg_ring ); - - presentation_matrix := UnionOfRows( - KroneckerMat( identity_1, presentation_matrix_2 ), - KroneckerMat( presentation_matrix_1, identity_2 ) - ); - - return AsLeftPresentation( presentation_matrix ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_TENSOR_PRODUCT_ON_OBJECTS_RIGHT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddTensorProductOnObjects( category, - - function( cat, object_1, object_2 ) - local identity_1, identity_2, presentation_matrix_1, presentation_matrix_2, presentation_matrix; - - presentation_matrix_1 := UnderlyingMatrix( object_1 ); - - presentation_matrix_2 := UnderlyingMatrix( object_2 ); - - identity_1 := - HomalgIdentityMatrix( NrRows( presentation_matrix_1 ), homalg_ring ); - - identity_2 := - HomalgIdentityMatrix( NrRows( presentation_matrix_2 ), homalg_ring ); - - presentation_matrix := UnionOfColumns( - KroneckerMat( identity_1, presentation_matrix_2 ), - KroneckerMat( presentation_matrix_1, identity_2 ) - ); - - return AsRightPresentation( presentation_matrix ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_TENSOR_PRODUCT_ON_MORPHISMS, - - function( category ) - - AddTensorProductOnMorphismsWithGivenTensorProducts( category, - - function( cat, new_source, morphism_1, morphism_2, new_range ) - - return PresentationMorphism( new_source, - KroneckerMat( UnderlyingMatrix( morphism_1 ), UnderlyingMatrix( morphism_2 ) ), - new_range ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_TENSOR_UNIT_LEFT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddTensorUnit( category, - - function( cat ) - - return AsLeftPresentation( HomalgZeroMatrix( 0, 1, homalg_ring ) ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_TENSOR_UNIT_RIGHT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddTensorUnit( category, - - function( cat ) - - return AsRightPresentation( HomalgZeroMatrix( 1, 0, homalg_ring ) ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_INTERNAL_HOM_ON_OBJECTS_LEFT, - - function( category ) - - ## WARNING: The given function uses basic operations. - AddInternalHomOnObjects( category, - - function( cat, object_1, object_2 ) - - return Source( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( object_1, object_2 ) ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_INTERNAL_HOM_ON_OBJECTS_RIGHT, - - function( category ) - - ## WARNING: The given function uses basic operations. - AddInternalHomOnObjects( category, - - function( cat, object_1, object_2 ) - - return Source( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_RIGHT( object_1, object_2 ) ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_INTERNAL_HOM_ON_MORPHISMS_LEFT, - - function( category ) - - ## WARNING: The given function uses basic operations. - AddInternalHomOnMorphismsWithGivenInternalHoms( category, - - function( cat, new_source, morphism_1, morphism_2, new_range ) - local internal_hom_embedding_source, internal_hom_embedding_range, morphism_between_tensor_products; - - internal_hom_embedding_source := - INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( Range( morphism_1 ), Source( morphism_2 ) ); - - internal_hom_embedding_range := - INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( Source( morphism_1 ), Range( morphism_2 ) ); - - morphism_between_tensor_products := - PresentationMorphism( - Range( internal_hom_embedding_source ), - KroneckerMat( TransposedMatrix( UnderlyingMatrix( morphism_1 ) ), UnderlyingMatrix( morphism_2 ) ), - Range( internal_hom_embedding_range ) - ); - - return LiftAlongMonomorphism( internal_hom_embedding_range, - PreCompose( internal_hom_embedding_source, morphism_between_tensor_products ) ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_INTERNAL_HOM_ON_MORPHISMS_RIGHT, - - function( category ) - - ## WARNING: The given function uses basic operations. - AddInternalHomOnMorphismsWithGivenInternalHoms( category, - - function( cat, new_source, morphism_1, morphism_2, new_range ) - local internal_hom_embedding_source, internal_hom_embedding_range, morphism_between_tensor_products; - - internal_hom_embedding_source := - INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_RIGHT( Range( morphism_1 ), Source( morphism_2 ) ); - - internal_hom_embedding_range := - INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_RIGHT( Source( morphism_1 ), Range( morphism_2 ) ); - - morphism_between_tensor_products := - PresentationMorphism( - Range( internal_hom_embedding_source ), - KroneckerMat( TransposedMatrix( UnderlyingMatrix( morphism_1 ) ), UnderlyingMatrix( morphism_2 ) ), - Range( internal_hom_embedding_range ) - ); - - return LiftAlongMonomorphism( internal_hom_embedding_range, - PreCompose( internal_hom_embedding_source, morphism_between_tensor_products ) ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_BRAIDING_LEFT, - - function( category ) - - AddBraidingWithGivenTensorProducts( category, - - function( cat, object_1_tensored_object_2, object_1, object_2, object_2_tensored_object_1 ) - local homalg_ring, permutation_matrix, rank_1, rank_2, rank; - - homalg_ring := UnderlyingHomalgRing( object_1 ); - - rank_1 := NrColumns( UnderlyingMatrix( object_1 ) ); - - rank_2 := NrColumns( UnderlyingMatrix( object_2 ) ); - - rank := NrColumns( UnderlyingMatrix( object_1_tensored_object_2 ) ); - - permutation_matrix := PermutationMat( - PermList( List( [ 1 .. rank ], i -> ( RemInt( i - 1, rank_2 ) * rank_1 + QuoInt( i - 1, rank_2 ) + 1 ) ) ), - rank - ); - - return PresentationMorphism( object_1_tensored_object_2, - HomalgMatrix( permutation_matrix, rank, rank, homalg_ring ), - object_2_tensored_object_1 ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_BRAIDING_RIGHT, - - function( category ) - - AddBraidingWithGivenTensorProducts( category, - - function( cat, object_1_tensored_object_2, object_1, object_2, object_2_tensored_object_1 ) - local homalg_ring, permutation_matrix, rank_1, rank_2, rank; - - homalg_ring := UnderlyingHomalgRing( object_1 ); - - rank_1 := NrRows( UnderlyingMatrix( object_1 ) ); - - rank_2 := NrRows( UnderlyingMatrix( object_2 ) ); - - rank := NrRows( UnderlyingMatrix( object_1_tensored_object_2 ) ); - - permutation_matrix := PermutationMat( - PermList( List( [ 1 .. rank ], i -> ( RemInt( i - 1, rank_2 ) * rank_1 + QuoInt( i - 1, rank_2 ) + 1 ) ) ), - rank - ); - - return PresentationMorphism( object_1_tensored_object_2, - TransposedMatrix( HomalgMatrix( permutation_matrix, rank, rank, homalg_ring ) ), ## transposed of the left case - object_2_tensored_object_1 ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_EVALUATION_MORPHISM_LEFT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddEvaluationMorphismWithGivenSource( category, - - function( cat, object_1, object_2, internal_hom_tensored_object_1 ) - local internal_hom_embedding, rank_1, morphism, free_module, - column, zero_column, i, matrix, rank_2, lifted_evaluation; - - internal_hom_embedding := INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( object_1, object_2 ); - - rank_1 := NrColumns( UnderlyingMatrix( object_1 ) ); - - free_module := FreeLeftPresentation( rank_1, homalg_ring ); - - morphism := PreCompose( internal_hom_embedding, Braiding( free_module, object_2 ) ); - - morphism := TensorProductOnMorphisms( morphism, IdentityMorphism( object_1 ) ); - - ## Computation of F^{\vee} \otimes F \rightarrow 1 - column := [ ]; - - zero_column := List( [ 1 .. rank_1 ], i -> 0 ); - - for i in [ 1 .. rank_1 - 1 ] do - - Add( column, 1 ); - - Append( column, zero_column ); - - od; - - if rank_1 > 0 then - - Add( column, 1 ); - - fi; - - matrix := HomalgMatrix( column, rank_1 * rank_1, 1, homalg_ring ); - - rank_2 := NrColumns( UnderlyingMatrix( object_2 ) ); - - matrix := KroneckerMat( HomalgIdentityMatrix( rank_2, homalg_ring ), matrix ); - - lifted_evaluation := PresentationMorphism( Range( morphism ), matrix, object_2 ); - - return PreCompose( morphism, lifted_evaluation ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_EVALUATION_MORPHISM_RIGHT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddEvaluationMorphismWithGivenSource( category, - - function( cat, object_1, object_2, internal_hom_tensored_object_1 ) - local internal_hom_embedding, rank_1, morphism, free_module, - row, zero_row, i, matrix, rank_2, lifted_evaluation; - - internal_hom_embedding := INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_RIGHT( object_1, object_2 ); - - rank_1 := NrRows( UnderlyingMatrix( object_1 ) ); - - free_module := FreeRightPresentation( rank_1, homalg_ring ); - - morphism := PreCompose( internal_hom_embedding, Braiding( free_module, object_2 ) ); - - morphism := TensorProductOnMorphisms( morphism, IdentityMorphism( object_1 ) ); - - ## Construction of F^{\vee} \otimes F \rightarrow 1 - row := [ ]; - - zero_row := List( [ 1 .. rank_1 ], i -> 0 ); - - for i in [ 1 .. rank_1 - 1 ] do - - Add( row, 1 ); - - Append( row, zero_row ); - - od; - - if rank_1 > 0 then - - Add( row, 1 ); - - fi; - - matrix := HomalgMatrix( row, 1, rank_1 * rank_1, homalg_ring ); - - rank_2 := NrRows( UnderlyingMatrix( object_2 ) ); - - matrix := KroneckerMat( HomalgIdentityMatrix( rank_2, homalg_ring ), matrix ); - - lifted_evaluation := PresentationMorphism( Range( morphism ), matrix, object_2 ); - - return PreCompose( morphism, lifted_evaluation ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_COEVALUATION_MORPHISM_LEFT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddCoevaluationMorphismWithGivenRange( category, - - function( cat, object_1, object_2, internal_hom ) - local object_1_tensored_object_2, internal_hom_embedding, rank_2, free_module, morphism, - row, zero_row, i, matrix, rank_1, lifted_coevaluation; - - object_1_tensored_object_2 := TensorProductOnObjects( object_1, object_2 ); - - internal_hom_embedding := INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( object_2, object_1_tensored_object_2 ); - - rank_2 := NrColumns( UnderlyingMatrix( object_2 ) ); - - free_module := FreeLeftPresentation( rank_2, homalg_ring ); - - morphism := PreCompose( internal_hom_embedding, Braiding( free_module, object_1_tensored_object_2 ) ); - - ## Construction of 1 \rightarrow F \otimes F^{\vee} - - row := [ ]; - - zero_row := List( [ 1 .. rank_2 ], i -> 0 ); - - for i in [ 1 .. rank_2 - 1 ] do - - Add( row, 1 ); - - Append( row, zero_row ); - - od; - - if rank_2 > 0 then - - Add( row, 1 ); - - fi; - - matrix := HomalgMatrix( row, 1, rank_2 * rank_2, homalg_ring ); - - rank_1 := NrColumns( UnderlyingMatrix( object_1 ) ); - - matrix := KroneckerMat( HomalgIdentityMatrix( rank_1, homalg_ring ), matrix ); - - lifted_coevaluation := PresentationMorphism( object_1, matrix, Range( morphism ) ); - - return LiftAlongMonomorphism( morphism, lifted_coevaluation ); - - end ); - -end ); - -## -InstallGlobalFunction( ADD_COEVALUATION_MORPHISM_RIGHT, - - function( category ) - local homalg_ring; - - homalg_ring := category!.ring_for_representation_category; - - AddCoevaluationMorphismWithGivenRange( category, - - function( cat, object_1, object_2, internal_hom ) - local object_1_tensored_object_2, internal_hom_embedding, rank_2, free_module, morphism, - column, zero_column, i, matrix, rank_1, lifted_coevaluation; - - object_1_tensored_object_2 := TensorProductOnObjects( object_1, object_2 ); - - internal_hom_embedding := INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_RIGHT( object_2, object_1_tensored_object_2 ); - - rank_2 := NrRows( UnderlyingMatrix( object_2 ) ); - - free_module := FreeRightPresentation( rank_2, homalg_ring ); - - morphism := PreCompose( internal_hom_embedding, Braiding( free_module, object_1_tensored_object_2 ) ); - - ## Construction of 1 \rightarrow F \otimes F^{\vee} - - column := [ ]; - - zero_column := List( [ 1 .. rank_2 ], i -> 0 ); - - for i in [ 1 .. rank_2 - 1 ] do - - Add( column, 1 ); - - Append( column, zero_column ); - - od; - - if rank_2 > 0 then - - Add( column, 1 ); - - fi; - - matrix := HomalgMatrix( column, rank_2 * rank_2, 1, homalg_ring ); - - rank_1 := NrRows( UnderlyingMatrix( object_1 ) ); - - matrix := KroneckerMat( HomalgIdentityMatrix( rank_1, homalg_ring ), matrix ); - - lifted_coevaluation := PresentationMorphism( object_1, matrix, Range( morphism ) ); - - return LiftAlongMonomorphism( morphism, lifted_coevaluation ); - - end ); - -end ); - InstallGlobalFunction( ADD_LIFT_AND_COLIFT_LEFT, function( category ) diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi index 5df35a8085..509e8c8903 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled.gi @@ -6,259 +6,16 @@ BindGlobal( "ADD_FUNCTIONS_FOR_LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfCommutativeRingPrecompiled", function ( cat ) ## - AddAdditionForMorphisms( cat, + AddInternalHomOnMorphismsWithGivenInternalHoms( cat, ######## -function ( cat_1, a_1, b_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, Source( a_1 ), Range( a_1 ), UnderlyingMatrix, UnderlyingMatrix( a_1 ) + UnderlyingMatrix( b_1 ) ); -end -######## - - , 100 ); - - ## - AddAdditiveInverseForMorphisms( cat, - -######## -function ( cat_1, a_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, Source( a_1 ), Range( a_1 ), UnderlyingMatrix, - UnderlyingMatrix( a_1 ) ); -end -######## - - , 100 ); - - ## - AddCokernelColiftWithGivenCokernelObject( cat, - -######## -function ( cat_1, alpha_1, T_1, tau_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, T_1, UnderlyingMatrix, UnderlyingMatrix( tau_1 ) ); -end -######## - - , 100 ); - - ## - AddCokernelProjection( cat, - -######## -function ( cat_1, alpha_1 ) +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_4_1 := UnderlyingRing( cat_1 ); - deduped_3_1 := Range( alpha_1 ); - deduped_2_1 := UnderlyingMatrix( deduped_3_1 ); - deduped_1_1 := NumberColumns( deduped_2_1 ); - return CreateCapCategoryMorphismWithAttributes( cat_1, deduped_3_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, UnionOfRows( deduped_4_1, deduped_1_1, [ deduped_2_1, UnderlyingMatrix( alpha_1 ) ] ) ), UnderlyingMatrix, HomalgIdentityMatrix( deduped_1_1, deduped_4_1 ) ); -end -######## - - , 100 ); - - ## - AddDirectSum( cat, - -######## -function ( cat_1, arg2_1 ) - return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, DiagMat( UnderlyingRing( cat_1 ), List( arg2_1, UnderlyingMatrix ) ) ); -end -######## - - , 100 ); - - ## - AddEpimorphismFromSomeProjectiveObject( cat, - -######## -function ( cat_1, A_1 ) - local deduped_1_1, deduped_2_1; - deduped_2_1 := UnderlyingRing( cat_1 ); - deduped_1_1 := NumberColumns( UnderlyingMatrix( A_1 ) ); - return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 0, deduped_1_1, deduped_2_1 ) ), A_1, UnderlyingMatrix, HomalgIdentityMatrix( deduped_1_1, deduped_2_1 ) ); -end -######## - - , 100 ); - - ## - AddIdentityMorphism( cat, - -######## -function ( cat_1, a_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddInjectionOfCofactorOfDirectSumWithGivenDirectSum( cat, - -######## -function ( cat_1, objects_1, k_1, P_1 ) - local deduped_1_1, deduped_2_1, deduped_3_1; - deduped_3_1 := UnderlyingRing( cat_1 ); - deduped_2_1 := List( objects_1, function ( logic_new_func_x_2 ) - return NumberColumns( UnderlyingMatrix( logic_new_func_x_2 ) ); - end ); - deduped_1_1 := deduped_2_1[k_1]; - return CreateCapCategoryMorphismWithAttributes( cat_1, objects_1[k_1], P_1, UnderlyingMatrix, UnionOfColumns( HomalgZeroMatrix( deduped_1_1, Sum( deduped_2_1{[ 1 .. k_1 - 1 ]} ), deduped_3_1 ), HomalgIdentityMatrix( deduped_1_1, deduped_3_1 ), HomalgZeroMatrix( deduped_1_1, Sum( deduped_2_1{[ k_1 + 1 .. Length( objects_1 ) ]} ), deduped_3_1 ) ) ); -end -######## - - , 100 ); - - ## - AddIsCongruentForMorphisms( cat, - -######## -function ( cat_1, arg2_1, arg3_1 ) - return IsZero( DecideZeroRows( UnderlyingMatrix( arg2_1 ) - UnderlyingMatrix( arg3_1 ), UnderlyingMatrix( Range( arg2_1 ) ) ) ); -end -######## - - , 100 ); - - ## - AddIsEqualForMorphisms( cat, - -######## -function ( cat_1, arg2_1, arg3_1 ) - return UnderlyingMatrix( arg2_1 ) = UnderlyingMatrix( arg3_1 ); -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, - -######## -function ( cat_1, arg2_1 ) - return IsZero( DecideZeroRows( UnderlyingMatrix( arg2_1 ), UnderlyingMatrix( Range( arg2_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, - -######## -function ( cat_1, objects_1, k_1, P_1 ) - local deduped_1_1, deduped_2_1, deduped_3_1; - deduped_3_1 := UnderlyingRing( cat_1 ); - deduped_2_1 := List( objects_1, function ( logic_new_func_x_2 ) - return NumberColumns( UnderlyingMatrix( logic_new_func_x_2 ) ); - end ); - deduped_1_1 := deduped_2_1[k_1]; - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, objects_1[k_1], UnderlyingMatrix, UnionOfRows( HomalgZeroMatrix( Sum( deduped_2_1{[ 1 .. k_1 - 1 ]} ), deduped_1_1, deduped_3_1 ), HomalgIdentityMatrix( deduped_1_1, deduped_3_1 ), HomalgZeroMatrix( Sum( deduped_2_1{[ k_1 + 1 .. Length( objects_1 ) ]} ), deduped_1_1, deduped_3_1 ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismFromDirectSumWithGivenDirectSum( cat, - -######## -function ( cat_1, objects_1, T_1, tau_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, T_1, UnderlyingMatrix, UnionOfRows( UnderlyingRing( cat_1 ), NumberColumns( UnderlyingMatrix( T_1 ) ), List( tau_1, UnderlyingMatrix ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismFromZeroObjectWithGivenZeroObject( cat, - -######## -function ( cat_1, T_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, T_1, UnderlyingMatrix, HomalgZeroMatrix( 0, NumberColumns( UnderlyingMatrix( T_1 ) ), UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismIntoDirectSumWithGivenDirectSum( cat, - -######## -function ( cat_1, objects_1, T_1, tau_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, T_1, P_1, UnderlyingMatrix, UnionOfColumns( UnderlyingRing( cat_1 ), NumberColumns( UnderlyingMatrix( T_1 ) ), List( tau_1, UnderlyingMatrix ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismIntoZeroObjectWithGivenZeroObject( cat, - -######## -function ( cat_1, T_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, T_1, P_1, UnderlyingMatrix, HomalgZeroMatrix( NumberColumns( UnderlyingMatrix( T_1 ) ), 0, UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddZeroMorphism( cat, - -######## -function ( cat_1, a_1, b_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, b_1, UnderlyingMatrix, HomalgZeroMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), NumberColumns( UnderlyingMatrix( b_1 ) ), UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddZeroObject( cat, - -######## -function ( cat_1 ) - return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 0, 0, UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddMultiplyWithElementOfCommutativeRingForMorphisms( cat, - -######## -function ( cat_1, r_1, a_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, Source( a_1 ), Range( a_1 ), UnderlyingMatrix, r_1 * UnderlyingMatrix( a_1 ) ); + deduped_4_1 := AsCategoryOfModulePresentations( ModelingCategory( cat_1 ) ); + deduped_3_1 := INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( deduped_4_1, CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Source( alpha_1 ) ) ), CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Range( beta_1 ) ) ) ); + deduped_2_1 := UnderlyingMatrix( Range( deduped_3_1 ) ); + deduped_1_1 := NrRows( deduped_2_1 ) + 1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, CertainColumns( SafeRightDivide( UnderlyingMatrix( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( deduped_4_1, CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Range( alpha_1 ) ) ), CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Source( beta_1 ) ) ) ) ) * KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ), UnionOfRows( UnderlyingRing( cat_1 ), NrColumns( deduped_2_1 ), [ deduped_2_1, UnderlyingMatrix( deduped_3_1 ) ] ) ), [ deduped_1_1 .. deduped_1_1 - 1 + NrColumns( UnderlyingMatrix( Source( deduped_3_1 ) ) ) ] ) ); end ######## diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi index f2c3a4d76b..11fb1c99fc 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled.gi @@ -6,259 +6,16 @@ BindGlobal( "ADD_FUNCTIONS_FOR_LeftPresentationsAsFreydCategoryOfCategoryOfRowsOfFieldPrecompiled", function ( cat ) ## - AddAdditionForMorphisms( cat, + AddInternalHomOnMorphismsWithGivenInternalHoms( cat, ######## -function ( cat_1, a_1, b_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, Source( a_1 ), Range( a_1 ), UnderlyingMatrix, UnderlyingMatrix( a_1 ) + UnderlyingMatrix( b_1 ) ); -end -######## - - , 100 ); - - ## - AddAdditiveInverseForMorphisms( cat, - -######## -function ( cat_1, a_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, Source( a_1 ), Range( a_1 ), UnderlyingMatrix, - UnderlyingMatrix( a_1 ) ); -end -######## - - , 100 ); - - ## - AddCokernelColiftWithGivenCokernelObject( cat, - -######## -function ( cat_1, alpha_1, T_1, tau_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, T_1, UnderlyingMatrix, UnderlyingMatrix( tau_1 ) ); -end -######## - - , 100 ); - - ## - AddCokernelProjection( cat, - -######## -function ( cat_1, alpha_1 ) +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_4_1 := UnderlyingRing( cat_1 ); - deduped_3_1 := Range( alpha_1 ); - deduped_2_1 := UnderlyingMatrix( deduped_3_1 ); - deduped_1_1 := NumberColumns( deduped_2_1 ); - return CreateCapCategoryMorphismWithAttributes( cat_1, deduped_3_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, UnionOfRows( deduped_4_1, deduped_1_1, [ deduped_2_1, UnderlyingMatrix( alpha_1 ) ] ) ), UnderlyingMatrix, HomalgIdentityMatrix( deduped_1_1, deduped_4_1 ) ); -end -######## - - , 100 ); - - ## - AddDirectSum( cat, - -######## -function ( cat_1, arg2_1 ) - return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, DiagMat( UnderlyingRing( cat_1 ), List( arg2_1, UnderlyingMatrix ) ) ); -end -######## - - , 100 ); - - ## - AddEpimorphismFromSomeProjectiveObject( cat, - -######## -function ( cat_1, A_1 ) - local deduped_1_1, deduped_2_1; - deduped_2_1 := UnderlyingRing( cat_1 ); - deduped_1_1 := NumberColumns( UnderlyingMatrix( A_1 ) ); - return CreateCapCategoryMorphismWithAttributes( cat_1, CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 0, deduped_1_1, deduped_2_1 ) ), A_1, UnderlyingMatrix, HomalgIdentityMatrix( deduped_1_1, deduped_2_1 ) ); -end -######## - - , 100 ); - - ## - AddIdentityMorphism( cat, - -######## -function ( cat_1, a_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, a_1, UnderlyingMatrix, HomalgIdentityMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddInjectionOfCofactorOfDirectSumWithGivenDirectSum( cat, - -######## -function ( cat_1, objects_1, k_1, P_1 ) - local deduped_1_1, deduped_2_1, deduped_3_1; - deduped_3_1 := UnderlyingRing( cat_1 ); - deduped_2_1 := List( objects_1, function ( logic_new_func_x_2 ) - return NumberColumns( UnderlyingMatrix( logic_new_func_x_2 ) ); - end ); - deduped_1_1 := deduped_2_1[k_1]; - return CreateCapCategoryMorphismWithAttributes( cat_1, objects_1[k_1], P_1, UnderlyingMatrix, UnionOfColumns( HomalgZeroMatrix( deduped_1_1, Sum( deduped_2_1{[ 1 .. k_1 - 1 ]} ), deduped_3_1 ), HomalgIdentityMatrix( deduped_1_1, deduped_3_1 ), HomalgZeroMatrix( deduped_1_1, Sum( deduped_2_1{[ k_1 + 1 .. Length( objects_1 ) ]} ), deduped_3_1 ) ) ); -end -######## - - , 100 ); - - ## - AddIsCongruentForMorphisms( cat, - -######## -function ( cat_1, arg2_1, arg3_1 ) - return IsZero( DecideZeroRows( UnderlyingMatrix( arg2_1 ) - UnderlyingMatrix( arg3_1 ), UnderlyingMatrix( Range( arg2_1 ) ) ) ); -end -######## - - , 100 ); - - ## - AddIsEqualForMorphisms( cat, - -######## -function ( cat_1, arg2_1, arg3_1 ) - return UnderlyingMatrix( arg2_1 ) = UnderlyingMatrix( arg3_1 ); -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, - -######## -function ( cat_1, arg2_1 ) - return IsZero( DecideZeroRows( UnderlyingMatrix( arg2_1 ), UnderlyingMatrix( Range( arg2_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, - -######## -function ( cat_1, objects_1, k_1, P_1 ) - local deduped_1_1, deduped_2_1, deduped_3_1; - deduped_3_1 := UnderlyingRing( cat_1 ); - deduped_2_1 := List( objects_1, function ( logic_new_func_x_2 ) - return NumberColumns( UnderlyingMatrix( logic_new_func_x_2 ) ); - end ); - deduped_1_1 := deduped_2_1[k_1]; - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, objects_1[k_1], UnderlyingMatrix, UnionOfRows( HomalgZeroMatrix( Sum( deduped_2_1{[ 1 .. k_1 - 1 ]} ), deduped_1_1, deduped_3_1 ), HomalgIdentityMatrix( deduped_1_1, deduped_3_1 ), HomalgZeroMatrix( Sum( deduped_2_1{[ k_1 + 1 .. Length( objects_1 ) ]} ), deduped_1_1, deduped_3_1 ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismFromDirectSumWithGivenDirectSum( cat, - -######## -function ( cat_1, objects_1, T_1, tau_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, T_1, UnderlyingMatrix, UnionOfRows( UnderlyingRing( cat_1 ), NumberColumns( UnderlyingMatrix( T_1 ) ), List( tau_1, UnderlyingMatrix ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismFromZeroObjectWithGivenZeroObject( cat, - -######## -function ( cat_1, T_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, P_1, T_1, UnderlyingMatrix, HomalgZeroMatrix( 0, NumberColumns( UnderlyingMatrix( T_1 ) ), UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismIntoDirectSumWithGivenDirectSum( cat, - -######## -function ( cat_1, objects_1, T_1, tau_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, T_1, P_1, UnderlyingMatrix, UnionOfColumns( UnderlyingRing( cat_1 ), NumberColumns( UnderlyingMatrix( T_1 ) ), List( tau_1, UnderlyingMatrix ) ) ); -end -######## - - , 100 ); - - ## - AddUniversalMorphismIntoZeroObjectWithGivenZeroObject( cat, - -######## -function ( cat_1, T_1, P_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, T_1, P_1, UnderlyingMatrix, HomalgZeroMatrix( NumberColumns( UnderlyingMatrix( T_1 ) ), 0, UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddZeroMorphism( cat, - -######## -function ( cat_1, a_1, b_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, b_1, UnderlyingMatrix, HomalgZeroMatrix( NumberColumns( UnderlyingMatrix( a_1 ) ), NumberColumns( UnderlyingMatrix( b_1 ) ), UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddZeroObject( cat, - -######## -function ( cat_1 ) - return CreateCapCategoryObjectWithAttributes( cat_1, UnderlyingMatrix, HomalgZeroMatrix( 0, 0, UnderlyingRing( cat_1 ) ) ); -end -######## - - , 100 ); - - ## - AddMultiplyWithElementOfCommutativeRingForMorphisms( cat, - -######## -function ( cat_1, r_1, a_1 ) - return CreateCapCategoryMorphismWithAttributes( cat_1, Source( a_1 ), Range( a_1 ), UnderlyingMatrix, r_1 * UnderlyingMatrix( a_1 ) ); + deduped_4_1 := AsCategoryOfModulePresentations( ModelingCategory( cat_1 ) ); + deduped_3_1 := INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( deduped_4_1, CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Source( alpha_1 ) ) ), CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Range( beta_1 ) ) ) ); + deduped_2_1 := UnderlyingMatrix( Range( deduped_3_1 ) ); + deduped_1_1 := NrRows( deduped_2_1 ) + 1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, CertainColumns( SafeRightDivide( UnderlyingMatrix( INTERNAL_HOM_EMBEDDING_IN_TENSOR_PRODUCT_LEFT( deduped_4_1, CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Range( alpha_1 ) ) ), CreateCapCategoryObjectWithAttributes( deduped_4_1, UnderlyingMatrix, UnderlyingMatrix( Source( beta_1 ) ) ) ) ) * KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ), UnionOfRows( UnderlyingRing( cat_1 ), NrColumns( deduped_2_1 ), [ deduped_2_1, UnderlyingMatrix( deduped_3_1 ) ] ) ), [ deduped_1_1 .. deduped_1_1 - 1 + NrColumns( UnderlyingMatrix( Source( deduped_3_1 ) ) ) ] ) ); end ######## diff --git a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi index 2c4af9a821..a7a29609d7 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfCommutativeRingPrecompiled.gi @@ -253,6 +253,171 @@ 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_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 := UnderlyingMatrix( a_1 ); + deduped_21_1 := UnderlyingMatrix( b_1 ); + deduped_20_1 := UnderlyingRing( cat_1 ); + deduped_19_1 := NumberRows( deduped_22_1 ); + deduped_18_1 := NumberRows( deduped_21_1 ); + deduped_17_1 := HomalgIdentityMatrix( deduped_19_1, deduped_20_1 ); + deduped_16_1 := deduped_18_1 * deduped_18_1; + deduped_15_1 := deduped_18_1 * deduped_19_1; + deduped_14_1 := HomalgIdentityMatrix( deduped_18_1, deduped_20_1 ); + deduped_13_1 := deduped_19_1 * deduped_18_1; + deduped_12_1 := deduped_18_1 * deduped_13_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_12_1, deduped_20_1 ); + deduped_10_1 := UnionOfColumns( deduped_20_1, deduped_13_1, [ KroneckerMat( deduped_22_1, deduped_14_1 ), DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_19_1, deduped_21_1 ) ) ] ); + deduped_9_1 := DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_18_1, deduped_10_1 ) ); + deduped_8_1 := ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_21_1 ), HomalgIdentityMatrix( deduped_13_1, deduped_20_1 ) ), DiagMat( deduped_20_1, ListWithIdenticalEntries( NumberColumns( deduped_21_1 ), deduped_10_1 ) ) ); + deduped_7_1 := DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_18_1, ReducedBasisOfColumnModule( deduped_10_1 ) ) ); + deduped_6_1 := NumberColumns( deduped_9_1 ) + 1; + deduped_5_1 := UnionOfColumns( deduped_20_1, NumberRows( deduped_9_1 ), [ deduped_9_1, deduped_11_1 ] ); + deduped_4_1 := NumberColumns( deduped_7_1 ) + 1; + deduped_3_1 := [ deduped_6_1 .. deduped_6_1 - 1 + deduped_12_1 ]; + hoisted_2_1 := deduped_19_1; + hoisted_1_1 := deduped_18_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, r_1, UnderlyingMatrix, CertainRows( SafeLeftDivide( UnionOfColumns( deduped_20_1, deduped_12_1, [ deduped_7_1, CertainRows( SafeLeftDivide( deduped_5_1, deduped_8_1 ), deduped_3_1 ) ] ), CertainRows( SafeLeftDivide( deduped_5_1, deduped_11_1 ), deduped_3_1 ) * (DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_18_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_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_20_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_1_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_20_1 ), deduped_17_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_14_1 ), deduped_17_1 ))) ), [ deduped_4_1 .. deduped_4_1 - 1 + NumberColumns( deduped_8_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_15_1, deduped_16_1, deduped_17_1, deduped_18_1; + deduped_18_1 := UnderlyingMatrix( a_1 ); + deduped_17_1 := UnderlyingMatrix( b_1 ); + deduped_16_1 := UnderlyingRing( cat_1 ); + deduped_15_1 := NumberColumns( deduped_18_1 ); + deduped_14_1 := NumberRows( deduped_18_1 ); + deduped_13_1 := NumberRows( deduped_17_1 ); + deduped_12_1 := deduped_14_1 * deduped_13_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_14_1, deduped_16_1 ); + deduped_10_1 := HomalgIdentityMatrix( deduped_12_1, deduped_16_1 ); + deduped_9_1 := DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_14_1, deduped_17_1 ) ); + deduped_8_1 := DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_14_1, ReducedBasisOfColumnModule( deduped_17_1 ) ) ); + deduped_7_1 := deduped_12_1 * deduped_14_1; + deduped_6_1 := NumberColumns( deduped_9_1 ) + 1; + deduped_5_1 := UnionOfColumns( deduped_16_1, NumberRows( deduped_9_1 ), [ deduped_9_1, deduped_10_1 ] ); + deduped_4_1 := [ deduped_6_1 .. deduped_6_1 - 1 + deduped_12_1 ]; + deduped_3_1 := Sum( [ NumberColumns( deduped_8_1 ) * deduped_14_1, deduped_12_1 * deduped_15_1 ] ) + 1; + hoisted_2_1 := deduped_13_1; + hoisted_1_1 := deduped_14_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, b_1, UnderlyingMatrix, DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_13_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_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_16_1 ), deduped_11_1 ) * CertainRows( SafeLeftDivide( UnionOfColumns( deduped_16_1, deduped_7_1, [ UnionOfColumns( deduped_16_1, deduped_7_1, [ KroneckerMat( deduped_8_1, deduped_11_1 ), DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_12_1, deduped_18_1 ) ) ] ), KroneckerMat( CertainRows( SafeLeftDivide( deduped_5_1, deduped_10_1 ), deduped_4_1 ), deduped_11_1 ) ] ), HomalgIdentityMatrix( deduped_7_1, deduped_16_1 ) ), [ deduped_3_1 .. (deduped_3_1 - 1 + deduped_7_1) ] ) * KroneckerMat( CertainRows( SafeLeftDivide( deduped_5_1, ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_18_1 ), HomalgIdentityMatrix( deduped_13_1, deduped_16_1 ) ), DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_15_1, deduped_17_1 ) ) ) ), deduped_4_1 ), deduped_11_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_6_1, deduped_7_1, deduped_8_1; + deduped_8_1 := UnderlyingRing( cat_1 ); + deduped_7_1 := UnderlyingMatrix( Source( beta_1 ) ); + deduped_6_1 := UnderlyingMatrix( Range( alpha_1 ) ); + deduped_5_1 := UnderlyingMatrix( Range( beta_1 ) ); + deduped_4_1 := UnderlyingMatrix( Source( alpha_1 ) ); + deduped_3_1 := DiagMat( deduped_8_1, ListWithIdenticalEntries( NumberRows( deduped_4_1 ), deduped_5_1 ) ); + deduped_2_1 := ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_4_1 ), HomalgIdentityMatrix( NumberRows( deduped_5_1 ), deduped_8_1 ) ), DiagMat( deduped_8_1, ListWithIdenticalEntries( NumberColumns( deduped_4_1 ), deduped_5_1 ) ) ); + deduped_1_1 := NumberColumns( deduped_3_1 ) + 1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, CertainRows( SafeLeftDivide( UnionOfColumns( deduped_8_1, NumberRows( deduped_3_1 ), [ deduped_3_1, deduped_2_1 ] ), KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ) * ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_6_1 ), HomalgIdentityMatrix( NumberRows( deduped_7_1 ), deduped_8_1 ) ), DiagMat( deduped_8_1, ListWithIdenticalEntries( NumberColumns( deduped_6_1 ), deduped_7_1 ) ) ) ), [ deduped_1_1 .. deduped_1_1 - 1 + NumberColumns( 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, @@ -264,6 +429,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 370df24bff..e336f86711 100644 --- a/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfFieldPrecompiled.gi +++ b/ModulePresentationsForCAP/gap/precompiled_categories/RightPresentationsAsFreydCategoryOfCategoryOfColumnsOfFieldPrecompiled.gi @@ -253,6 +253,171 @@ 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_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 := UnderlyingMatrix( a_1 ); + deduped_21_1 := UnderlyingMatrix( b_1 ); + deduped_20_1 := UnderlyingRing( cat_1 ); + deduped_19_1 := NumberRows( deduped_22_1 ); + deduped_18_1 := NumberRows( deduped_21_1 ); + deduped_17_1 := HomalgIdentityMatrix( deduped_19_1, deduped_20_1 ); + deduped_16_1 := deduped_18_1 * deduped_18_1; + deduped_15_1 := deduped_18_1 * deduped_19_1; + deduped_14_1 := HomalgIdentityMatrix( deduped_18_1, deduped_20_1 ); + deduped_13_1 := deduped_19_1 * deduped_18_1; + deduped_12_1 := deduped_18_1 * deduped_13_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_12_1, deduped_20_1 ); + deduped_10_1 := UnionOfColumns( deduped_20_1, deduped_13_1, [ KroneckerMat( deduped_22_1, deduped_14_1 ), DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_19_1, deduped_21_1 ) ) ] ); + deduped_9_1 := DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_18_1, deduped_10_1 ) ); + deduped_8_1 := ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_21_1 ), HomalgIdentityMatrix( deduped_13_1, deduped_20_1 ) ), DiagMat( deduped_20_1, ListWithIdenticalEntries( NumberColumns( deduped_21_1 ), deduped_10_1 ) ) ); + deduped_7_1 := DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_18_1, ReducedBasisOfColumnModule( deduped_10_1 ) ) ); + deduped_6_1 := NumberColumns( deduped_9_1 ) + 1; + deduped_5_1 := UnionOfColumns( deduped_20_1, NumberRows( deduped_9_1 ), [ deduped_9_1, deduped_11_1 ] ); + deduped_4_1 := NumberColumns( deduped_7_1 ) + 1; + deduped_3_1 := [ deduped_6_1 .. deduped_6_1 - 1 + deduped_12_1 ]; + hoisted_2_1 := deduped_19_1; + hoisted_1_1 := deduped_18_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, a_1, r_1, UnderlyingMatrix, CertainRows( SafeLeftDivide( UnionOfColumns( deduped_20_1, deduped_12_1, [ deduped_7_1, CertainRows( SafeLeftDivide( deduped_5_1, deduped_8_1 ), deduped_3_1 ) ] ), CertainRows( SafeLeftDivide( deduped_5_1, deduped_11_1 ), deduped_3_1 ) * (DiagMat( deduped_20_1, ListWithIdenticalEntries( deduped_18_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_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_15_1 ), deduped_15_1, deduped_15_1, deduped_20_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_1_1 ) * hoisted_1_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_16_1 ), deduped_16_1, deduped_16_1, deduped_20_1 ), deduped_17_1 ) * KroneckerMat( ConvertMatrixToColumn( deduped_14_1 ), deduped_17_1 ))) ), [ deduped_4_1 .. deduped_4_1 - 1 + NumberColumns( deduped_8_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_15_1, deduped_16_1, deduped_17_1, deduped_18_1; + deduped_18_1 := UnderlyingMatrix( a_1 ); + deduped_17_1 := UnderlyingMatrix( b_1 ); + deduped_16_1 := UnderlyingRing( cat_1 ); + deduped_15_1 := NumberColumns( deduped_18_1 ); + deduped_14_1 := NumberRows( deduped_18_1 ); + deduped_13_1 := NumberRows( deduped_17_1 ); + deduped_12_1 := deduped_14_1 * deduped_13_1; + deduped_11_1 := HomalgIdentityMatrix( deduped_14_1, deduped_16_1 ); + deduped_10_1 := HomalgIdentityMatrix( deduped_12_1, deduped_16_1 ); + deduped_9_1 := DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_14_1, deduped_17_1 ) ); + deduped_8_1 := DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_14_1, ReducedBasisOfColumnModule( deduped_17_1 ) ) ); + deduped_7_1 := deduped_12_1 * deduped_14_1; + deduped_6_1 := NumberColumns( deduped_9_1 ) + 1; + deduped_5_1 := UnionOfColumns( deduped_16_1, NumberRows( deduped_9_1 ), [ deduped_9_1, deduped_10_1 ] ); + deduped_4_1 := [ deduped_6_1 .. deduped_6_1 - 1 + deduped_12_1 ]; + deduped_3_1 := Sum( [ NumberColumns( deduped_8_1 ) * deduped_14_1, deduped_12_1 * deduped_15_1 ] ) + 1; + hoisted_2_1 := deduped_13_1; + hoisted_1_1 := deduped_14_1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, b_1, UnderlyingMatrix, DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_13_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_1_1 ) * hoisted_2_1 + QUO_INT( deduped_1_2, hoisted_1_1 ) + 1); + end ) ), deduped_12_1 ), deduped_12_1, deduped_12_1, deduped_16_1 ), deduped_11_1 ) * CertainRows( SafeLeftDivide( UnionOfColumns( deduped_16_1, deduped_7_1, [ UnionOfColumns( deduped_16_1, deduped_7_1, [ KroneckerMat( deduped_8_1, deduped_11_1 ), DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_12_1, deduped_18_1 ) ) ] ), KroneckerMat( CertainRows( SafeLeftDivide( deduped_5_1, deduped_10_1 ), deduped_4_1 ), deduped_11_1 ) ] ), HomalgIdentityMatrix( deduped_7_1, deduped_16_1 ) ), [ deduped_3_1 .. (deduped_3_1 - 1 + deduped_7_1) ] ) * KroneckerMat( CertainRows( SafeLeftDivide( deduped_5_1, ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_18_1 ), HomalgIdentityMatrix( deduped_13_1, deduped_16_1 ) ), DiagMat( deduped_16_1, ListWithIdenticalEntries( deduped_15_1, deduped_17_1 ) ) ) ), deduped_4_1 ), deduped_11_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_6_1, deduped_7_1, deduped_8_1; + deduped_8_1 := UnderlyingRing( cat_1 ); + deduped_7_1 := UnderlyingMatrix( Source( beta_1 ) ); + deduped_6_1 := UnderlyingMatrix( Range( alpha_1 ) ); + deduped_5_1 := UnderlyingMatrix( Range( beta_1 ) ); + deduped_4_1 := UnderlyingMatrix( Source( alpha_1 ) ); + deduped_3_1 := DiagMat( deduped_8_1, ListWithIdenticalEntries( NumberRows( deduped_4_1 ), deduped_5_1 ) ); + deduped_2_1 := ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_4_1 ), HomalgIdentityMatrix( NumberRows( deduped_5_1 ), deduped_8_1 ) ), DiagMat( deduped_8_1, ListWithIdenticalEntries( NumberColumns( deduped_4_1 ), deduped_5_1 ) ) ); + deduped_1_1 := NumberColumns( deduped_3_1 ) + 1; + return CreateCapCategoryMorphismWithAttributes( cat_1, s_1, r_1, UnderlyingMatrix, CertainRows( SafeLeftDivide( UnionOfColumns( deduped_8_1, NumberRows( deduped_3_1 ), [ deduped_3_1, deduped_2_1 ] ), KroneckerMat( TransposedMatrix( UnderlyingMatrix( alpha_1 ) ), UnderlyingMatrix( beta_1 ) ) * ReducedSyzygiesOfColumns( KroneckerMat( TransposedMatrix( deduped_6_1 ), HomalgIdentityMatrix( NumberRows( deduped_7_1 ), deduped_8_1 ) ), DiagMat( deduped_8_1, ListWithIdenticalEntries( NumberColumns( deduped_6_1 ), deduped_7_1 ) ) ) ), [ deduped_1_1 .. deduped_1_1 - 1 + NumberColumns( 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, @@ -264,6 +429,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