Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gap-linearalgebraforcap for 
openSUSE:Factory checked in at 2026-06-17 16:26:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gap-linearalgebraforcap (Old)
 and      /work/SRC/openSUSE:Factory/.gap-linearalgebraforcap.new.1981 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gap-linearalgebraforcap"

Wed Jun 17 16:26:55 2026 rev:6 rq:1359995 version:2026.05.04

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gap-linearalgebraforcap/gap-linearalgebraforcap.changes
  2026-06-16 14:01:27.453343128 +0200
+++ 
/work/SRC/openSUSE:Factory/.gap-linearalgebraforcap.new.1981/gap-linearalgebraforcap.changes
        2026-06-17 16:28:31.752656093 +0200
@@ -1,0 +2,6 @@
+Wed Jun 17 09:07:56 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 2026.05.04
+  * No changelog was provided
+
+-------------------------------------------------------------------

Old:
----
  LinearAlgebraForCAP-2026.04-01.tar.gz

New:
----
  LinearAlgebraForCAP-2026.05-04.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gap-linearalgebraforcap.spec ++++++
--- /var/tmp/diff_new_pack.bT5PDu/_old  2026-06-17 16:28:33.792741027 +0200
+++ /var/tmp/diff_new_pack.bT5PDu/_new  2026-06-17 16:28:33.792741027 +0200
@@ -17,8 +17,8 @@
 
 
 Name:           gap-linearalgebraforcap
-Version:        2026.04.01
-%define sillyver 2026.04-01
+Version:        2026.05.04
+%define sillyver 2026.05-04
 Release:        0
 Summary:        GAP: Category of Matrices over a Field for CAP
 License:        GPL-2.0-or-later
@@ -28,11 +28,11 @@
 Source:         
https://github.com/homalg-project/CAP_project/releases/download/LinearAlgebraForCAP-%sillyver/LinearAlgebraForCAP-%sillyver.tar.gz
 BuildRequires:  gap-devel >= 4.13.0
 BuildRequires:  gap-rpm-devel
-Requires:       gap-cap >= 2026.04.01
+Requires:       gap-cap >= 2026.05.02
 Requires:       gap-core >= 4.13.0
 Requires:       gap-gaussforhomalg >= 2026.04.01
 Requires:       gap-matricesforhomalg >= 2026.04.01
-Requires:       gap-monoidalcategories >= 2025.08.01
+Requires:       gap-monoidalcategories >= 2026.05.02
 Requires:       gap-toolsforhomalg >= 2026.04.01
 
 %description

++++++ LinearAlgebraForCAP-2026.04-01.tar.gz -> 
LinearAlgebraForCAP-2026.05-04.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/PackageInfo.g 
new/LinearAlgebraForCAP-2026.05-04/PackageInfo.g
--- old/LinearAlgebraForCAP-2026.04-01/PackageInfo.g    2026-04-10 
19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/PackageInfo.g    2026-05-22 
21:38:04.000000000 +0200
@@ -10,8 +10,8 @@
 
 PackageName := "LinearAlgebraForCAP",
 Subtitle := "Category of Matrices over a Field for CAP",
-Version := "2026.04-01",
-Date := "2026-04-10",
+Version := "2026.05-04",
+Date := "2026-05-22",
 License := "GPL-2.0-or-later",
 
 Persons := [
@@ -103,15 +103,15 @@
   NeededOtherPackages := [ [ "ToolsForHomalg", ">= 2026.04-01" ],
                            [ "MatricesForHomalg", ">= 2026.04-01" ],
                            [ "GaussForHomalg", ">= 2026.04-01" ],
-                           [ "CAP", ">= 2026.04-01" ],
-                           [ "MonoidalCategories", ">= 2025.08-01" ],
+                           [ "CAP", ">= 2026.05-02" ],
+                           [ "MonoidalCategories", ">= 2026.05-02" ],
                            ],
   ExternalConditions := [ ],
 ),
 
 Extensions := [
   rec(
-    needed := [ [ "AdditiveClosuresForCAP", ">= 2025.06-01" ] ],
+    needed := [ [ "AdditiveClosuresForCAP", ">= 2026.05-01" ] ],
     filename := "gap/MatrixCategory_as_CategoryOfRows.gi",
   ),
 ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/doc/_Chapter_Examples_and_Tests.xml 
new/LinearAlgebraForCAP-2026.05-04/doc/_Chapter_Examples_and_Tests.xml
--- old/LinearAlgebraForCAP-2026.04-01/doc/_Chapter_Examples_and_Tests.xml      
2026-04-10 19:42:33.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/_Chapter_Examples_and_Tests.xml      
2026-05-22 21:38:03.000000000 +0200
@@ -633,8 +633,10 @@
 IsAdditiveMonoidalCategory
 IsBraidedMonoidalCategory
 IsCategoryWithCoequalizers
+IsCategoryWithCoequalizersOfIdentityAndAutomorphisms
 IsCategoryWithCokernels
 IsCategoryWithEqualizers
+IsCategoryWithEqualizersOfIdentityAndAutomorphisms
 IsCategoryWithInitialObject
 IsCategoryWithKernels
 IsCategoryWithTerminalObject
@@ -645,6 +647,8 @@
 IsEquippedWithHomomorphismStructure
 IsLinearCategoryOverCommutativeRing
 IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
+IsLinearCategoryOverCommutativeSemiring
+IsLinearCategoryOverCommutativeSemiringWithFinitelyGeneratedFreeExternalHoms
 IsMonoidalCategory
 IsPreAbelianCategory
 IsRigidSymmetricClosedMonoidalCategory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/_entities.xml 
new/LinearAlgebraForCAP-2026.05-04/doc/_entities.xml
--- old/LinearAlgebraForCAP-2026.04-01/doc/_entities.xml        2026-04-10 
19:42:33.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/_entities.xml        2026-05-22 
21:38:03.000000000 +0200
@@ -1,6 +1,6 @@
 <!ENTITY CAP 'CAP'>
 <!ENTITY LinearAlgebraForCAP '<Package>LinearAlgebraForCAP</Package>'>
-<!ENTITY RELEASEDATE '10 April 2026'>
+<!ENTITY RELEASEDATE '22 May 2026'>
 <!ENTITY RELEASEYEAR '2026'>
-<!ENTITY VERSION '2026.04-01'>
+<!ENTITY VERSION '2026.05-04'>
 <!ENTITY homalg 'homalg'>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/chap0.html 
new/LinearAlgebraForCAP-2026.05-04/doc/chap0.html
--- old/LinearAlgebraForCAP-2026.04-01/doc/chap0.html   2026-04-10 
19:42:36.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/chap0.html   2026-05-22 
21:38:05.000000000 +0200
@@ -29,10 +29,10 @@
 <h2>Category of Matrices over a Field for CAP</h2>
 
 <p>
-    2026.04-01</p>
+    2026.05-04</p>
 
 <p>
-    10 April 2026
+    22 May 2026
   </p>
 
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/chap0.txt 
new/LinearAlgebraForCAP-2026.05-04/doc/chap0.txt
--- old/LinearAlgebraForCAP-2026.04-01/doc/chap0.txt    2026-04-10 
19:42:33.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/chap0.txt    2026-05-22 
21:38:03.000000000 +0200
@@ -6,10 +6,10 @@
                    Category of Matrices over a Field for CAP 
   
   
-                                   2026.04-01
+                                   2026.05-04
   
   
-                                 10 April 2026
+                                  22 May 2026
   
   
                                Sebastian Gutsche
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/chap0_mj.html 
new/LinearAlgebraForCAP-2026.05-04/doc/chap0_mj.html
--- old/LinearAlgebraForCAP-2026.04-01/doc/chap0_mj.html        2026-04-10 
19:42:36.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/chap0_mj.html        2026-05-22 
21:38:05.000000000 +0200
@@ -32,10 +32,10 @@
 <h2>Category of Matrices over a Field for CAP</h2>
 
 <p>
-    2026.04-01</p>
+    2026.05-04</p>
 
 <p>
-    10 April 2026
+    22 May 2026
   </p>
 
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/chap2.html 
new/LinearAlgebraForCAP-2026.05-04/doc/chap2.html
--- old/LinearAlgebraForCAP-2026.04-01/doc/chap2.html   2026-04-10 
19:42:36.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/chap2.html   2026-05-22 
21:38:05.000000000 +0200
@@ -701,8 +701,10 @@
 IsAdditiveMonoidalCategory
 IsBraidedMonoidalCategory
 IsCategoryWithCoequalizers
+IsCategoryWithCoequalizersOfIdentityAndAutomorphisms
 IsCategoryWithCokernels
 IsCategoryWithEqualizers
+IsCategoryWithEqualizersOfIdentityAndAutomorphisms
 IsCategoryWithInitialObject
 IsCategoryWithKernels
 IsCategoryWithTerminalObject
@@ -713,6 +715,8 @@
 IsEquippedWithHomomorphismStructure
 IsLinearCategoryOverCommutativeRing
 IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
+IsLinearCategoryOverCommutativeSemiring
+IsLinearCategoryOverCommutativeSemiringWithFinitelyGeneratedFreeExternalHoms
 IsMonoidalCategory
 IsPreAbelianCategory
 IsRigidSymmetricClosedMonoidalCategory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/chap2.txt 
new/LinearAlgebraForCAP-2026.05-04/doc/chap2.txt
--- old/LinearAlgebraForCAP-2026.04-01/doc/chap2.txt    2026-04-10 
19:42:33.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/chap2.txt    2026-05-22 
21:38:03.000000000 +0200
@@ -616,8 +616,10 @@
     IsAdditiveMonoidalCategory
     IsBraidedMonoidalCategory
     IsCategoryWithCoequalizers
+    IsCategoryWithCoequalizersOfIdentityAndAutomorphisms
     IsCategoryWithCokernels
     IsCategoryWithEqualizers
+    IsCategoryWithEqualizersOfIdentityAndAutomorphisms
     IsCategoryWithInitialObject
     IsCategoryWithKernels
     IsCategoryWithTerminalObject
@@ -628,6 +630,8 @@
     IsEquippedWithHomomorphismStructure
     IsLinearCategoryOverCommutativeRing
     
IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
+    IsLinearCategoryOverCommutativeSemiring
+    
IsLinearCategoryOverCommutativeSemiringWithFinitelyGeneratedFreeExternalHoms
     IsMonoidalCategory
     IsPreAbelianCategory
     IsRigidSymmetricClosedMonoidalCategory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/chap2_mj.html 
new/LinearAlgebraForCAP-2026.05-04/doc/chap2_mj.html
--- old/LinearAlgebraForCAP-2026.04-01/doc/chap2_mj.html        2026-04-10 
19:42:36.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/chap2_mj.html        2026-05-22 
21:38:05.000000000 +0200
@@ -704,8 +704,10 @@
 IsAdditiveMonoidalCategory
 IsBraidedMonoidalCategory
 IsCategoryWithCoequalizers
+IsCategoryWithCoequalizersOfIdentityAndAutomorphisms
 IsCategoryWithCokernels
 IsCategoryWithEqualizers
+IsCategoryWithEqualizersOfIdentityAndAutomorphisms
 IsCategoryWithInitialObject
 IsCategoryWithKernels
 IsCategoryWithTerminalObject
@@ -716,6 +718,8 @@
 IsEquippedWithHomomorphismStructure
 IsLinearCategoryOverCommutativeRing
 IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
+IsLinearCategoryOverCommutativeSemiring
+IsLinearCategoryOverCommutativeSemiringWithFinitelyGeneratedFreeExternalHoms
 IsMonoidalCategory
 IsPreAbelianCategory
 IsRigidSymmetricClosedMonoidalCategory
Binary files old/LinearAlgebraForCAP-2026.04-01/doc/manual.pdf and 
new/LinearAlgebraForCAP-2026.05-04/doc/manual.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/manual.six 
new/LinearAlgebraForCAP-2026.05-04/doc/manual.six
--- old/LinearAlgebraForCAP-2026.04-01/doc/manual.six   2026-04-10 
19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/manual.six   2026-05-22 
21:38:04.000000000 +0200
@@ -40,16 +40,16 @@
       [ 2, 8, 0 ], 601, 17, "opposite category", "X84410C637B3C1D0E" ], 
   [ 
       "\033[1X\033[33X\033[0;-2YPreComposeList and 
PostComposeList\033[133X\033[1\
-01X", "2.9", [ 2, 9, 0 ], 671, 18, "precomposelist and postcomposelist", 
+01X", "2.9", [ 2, 9, 0 ], 675, 18, "precomposelist and postcomposelist", 
       "X7F34E29281DF3FCE" ], 
   [ "\033[1X\033[33X\033[0;-2YSplit epi summand\033[133X\033[101X", "2.10", 
-      [ 2, 10, 0 ], 698, 19, "split epi summand", "X87F5609A7B33C58C" ], 
+      [ 2, 10, 0 ], 702, 19, "split epi summand", "X87F5609A7B33C58C" ], 
   [ "\033[1X\033[33X\033[0;-2YKernel\033[133X\033[101X", "2.11", 
-      [ 2, 11, 0 ], 731, 19, "kernel", "X7DCD99628504B810" ], 
+      [ 2, 11, 0 ], 735, 19, "kernel", "X7DCD99628504B810" ], 
   [ "\033[1X\033[33X\033[0;-2YFiberProduct\033[133X\033[101X", "2.12", 
-      [ 2, 12, 0 ], 805, 21, "fiberproduct", "X7DE20941803BFBD9" ], 
+      [ 2, 12, 0 ], 809, 21, "fiberproduct", "X7DE20941803BFBD9" ], 
   [ "\033[1X\033[33X\033[0;-2YWrapperCategory\033[133X\033[101X", "2.13", 
-      [ 2, 13, 0 ], 829, 21, "wrappercategory", "X8245BF297DF9A3E7" ], 
+      [ 2, 13, 0 ], 833, 21, "wrappercategory", "X8245BF297DF9A3E7" ], 
   [ "Index", "ind", [ "Ind", 0, 0 ], 1, 22, "index", "X83A0356F839C696F" ], 
   [ "\033[2XMatrixCategory\033[102X for IsFieldForHomalg", "1.1-1", 
       [ 1, 1, 1 ], 7, 3, "matrixcategory for isfieldforhomalg", 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/LinearAlgebraForCAP-2026.04-01/doc/title.xml 
new/LinearAlgebraForCAP-2026.05-04/doc/title.xml
--- old/LinearAlgebraForCAP-2026.04-01/doc/title.xml    2026-04-10 
19:42:33.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/doc/title.xml    2026-05-22 
21:38:03.000000000 +0200
@@ -9,7 +9,7 @@
     Category of Matrices over a Field for CAP
   </Subtitle>
   <Version>
-    2026.04-01
+    2026.05-04
   </Version>
   <Author>
     Sebastian Gutsche
@@ -46,6 +46,6 @@
 <Homepage>https://github.com/zickgraf/</Homepage>
   </Author>
   <Date>
-    10 April 2026
+    22 May 2026
   </Date>
   </TitlePage>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/examples/OppositeCategory.g 
new/LinearAlgebraForCAP-2026.05-04/examples/OppositeCategory.g
--- old/LinearAlgebraForCAP-2026.04-01/examples/OppositeCategory.g      
2026-04-10 19:25:59.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/examples/OppositeCategory.g      
2026-05-22 21:05:16.000000000 +0200
@@ -17,8 +17,10 @@
 #! IsAdditiveMonoidalCategory
 #! IsBraidedMonoidalCategory
 #! IsCategoryWithCoequalizers
+#! IsCategoryWithCoequalizersOfIdentityAndAutomorphisms
 #! IsCategoryWithCokernels
 #! IsCategoryWithEqualizers
+#! IsCategoryWithEqualizersOfIdentityAndAutomorphisms
 #! IsCategoryWithInitialObject
 #! IsCategoryWithKernels
 #! IsCategoryWithTerminalObject
@@ -29,6 +31,8 @@
 #! IsEquippedWithHomomorphismStructure
 #! IsLinearCategoryOverCommutativeRing
 #! IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
+#! IsLinearCategoryOverCommutativeSemiring
+#! IsLinearCategoryOverCommutativeSemiringWithFinitelyGeneratedFreeExternalHoms
 #! IsMonoidalCategory
 #! IsPreAbelianCategory
 #! IsRigidSymmetricClosedMonoidalCategory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/gap/precompiled_categories/MatrixCategory_precompiled.gi
 
new/LinearAlgebraForCAP-2026.05-04/gap/precompiled_categories/MatrixCategory_precompiled.gi
--- 
old/LinearAlgebraForCAP-2026.04-01/gap/precompiled_categories/MatrixCategory_precompiled.gi
 2026-04-10 19:25:59.000000000 +0200
+++ 
new/LinearAlgebraForCAP-2026.05-04/gap/precompiled_categories/MatrixCategory_precompiled.gi
 2026-05-22 21:05:16.000000000 +0200
@@ -1668,6 +1668,104 @@
     ;
     
     ##
+    AddCoequalizerOfIdentityAndAutomorphisms( cat,
+        
+########
+function ( cat_1, Y_1, automorphisms_1 )
+    local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1;
+    deduped_4_1 := UnderlyingRing( cat_1 );
+    deduped_3_1 := AsInteger( Y_1 );
+    deduped_2_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_1_1 := Concatenation( [ HomalgIdentityMatrix( deduped_3_1, 
deduped_4_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    return AsCapCategoryObject( cat_1, deduped_3_1 - RowRankOfMatrix( 
UnionOfRows( deduped_4_1, deduped_3_1, deduped_1_1{[ 1 .. deduped_2_1 - 1 ]} ) 
- UnionOfRows( deduped_4_1, deduped_3_1, deduped_1_1{[ 2 .. deduped_2_1 ]} ) ) 
);
+end
+########
+        
+    , 2925 : IsPrecompiledDerivation := true );
+    
+    ##
+    AddCoequalizerOfIdentityAndAutomorphismsFunctorial( cat,
+        
+########
+function ( cat_1, automorphisms_1, mu_1, automorphismsp_1 )
+    local morphism_attr_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 := AsInteger( Range( mu_1 ) );
+    deduped_6_1 := AsInteger( Source( mu_1 ) );
+    deduped_5_1 := Sum( [ 1, Length( automorphismsp_1 ) ] );
+    deduped_4_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_3_1 := Concatenation( [ HomalgIdentityMatrix( deduped_7_1, 
deduped_8_1 ) ], List( automorphismsp_1, AsHomalgMatrix ) );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_6_1, 
deduped_8_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := UniqueLeftDivide( SyzygiesOfColumns( UnionOfRows( 
deduped_8_1, deduped_6_1, deduped_2_1{[ 1 .. deduped_4_1 - 1 ]} ) - 
UnionOfRows( deduped_8_1, deduped_6_1, deduped_2_1{[ 2 .. deduped_4_1 ]} ) ), 
AsHomalgMatrix( mu_1 ) * SyzygiesOfColumns( UnionOfRows( deduped_8_1, 
deduped_7_1, deduped_3_1{[ 1 .. deduped_5_1 - 1 ]} ) - UnionOfRows( 
deduped_8_1, deduped_7_1, deduped_3_1{[ 2 .. deduped_5_1 ]} ) ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 11903 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.CoequalizerOfIdentityAndAutomorphismsFunctorial
 :=
+        
+########
+function ( cat_1, automorphisms_1, mu_1, automorphismsp_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_9_1;
+    deduped_9_1 := UnderlyingRing( cat_1 );
+    deduped_8_1 := AsInteger( Range( mu_1 ) );
+    deduped_7_1 := AsInteger( Source( mu_1 ) );
+    deduped_6_1 := Sum( [ 1, Length( automorphismsp_1 ) ] );
+    deduped_5_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_4_1 := Concatenation( [ HomalgIdentityMatrix( deduped_8_1, 
deduped_9_1 ) ], List( automorphismsp_1, AsHomalgMatrix ) );
+    deduped_3_1 := Concatenation( [ HomalgIdentityMatrix( deduped_7_1, 
deduped_9_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_2_1 := UnionOfRows( deduped_9_1, deduped_8_1, deduped_4_1{[ 1 .. 
deduped_6_1 - 1 ]} ) - UnionOfRows( deduped_9_1, deduped_8_1, deduped_4_1{[ 2 
.. deduped_6_1 ]} );
+    deduped_1_1 := UnionOfRows( deduped_9_1, deduped_7_1, deduped_3_1{[ 1 .. 
deduped_5_1 - 1 ]} ) - UnionOfRows( deduped_9_1, deduped_7_1, deduped_3_1{[ 2 
.. deduped_5_1 ]} );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
deduped_7_1 - RowRankOfMatrix( deduped_1_1 ) ), UniqueLeftDivide( 
SyzygiesOfColumns( deduped_1_1 ), AsHomalgMatrix( mu_1 ) * SyzygiesOfColumns( 
deduped_2_1 ) ), AsCapCategoryObject( cat_1, deduped_8_1 - RowRankOfMatrix( 
deduped_2_1 ) ) );
+end
+########
+        
+    ;
+    
+    ##
+    AddCoequalizerOfIdentityAndAutomorphismsFunctorialWithGivenCoequalizers( 
cat,
+        
+########
+function ( cat_1, P_1, automorphisms_1, mu_1, automorphismsp_1, Pp_1 )
+    local morphism_attr_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 := AsInteger( Range( mu_1 ) );
+    deduped_6_1 := AsInteger( Source( mu_1 ) );
+    deduped_5_1 := Sum( [ 1, Length( automorphismsp_1 ) ] );
+    deduped_4_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_3_1 := Concatenation( [ HomalgIdentityMatrix( deduped_7_1, 
deduped_8_1 ) ], List( automorphismsp_1, AsHomalgMatrix ) );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_6_1, 
deduped_8_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := UniqueLeftDivide( SyzygiesOfColumns( UnionOfRows( 
deduped_8_1, deduped_6_1, deduped_2_1{[ 1 .. deduped_4_1 - 1 ]} ) - 
UnionOfRows( deduped_8_1, deduped_6_1, deduped_2_1{[ 2 .. deduped_4_1 ]} ) ), 
AsHomalgMatrix( mu_1 ) * SyzygiesOfColumns( UnionOfRows( deduped_8_1, 
deduped_7_1, deduped_3_1{[ 1 .. deduped_5_1 - 1 ]} ) - UnionOfRows( 
deduped_8_1, deduped_7_1, deduped_3_1{[ 2 .. deduped_5_1 ]} ) ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 6052 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.CoequalizerOfIdentityAndAutomorphismsFunctorialWithGivenCoequalizers
 :=
+        
+########
+function ( cat_1, P_1, automorphisms_1, mu_1, automorphismsp_1, Pp_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_9_1;
+    deduped_9_1 := UnderlyingRing( cat_1 );
+    deduped_8_1 := AsInteger( Range( mu_1 ) );
+    deduped_7_1 := AsInteger( Source( mu_1 ) );
+    deduped_6_1 := Sum( [ 1, Length( automorphismsp_1 ) ] );
+    deduped_5_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_4_1 := Concatenation( [ HomalgIdentityMatrix( deduped_8_1, 
deduped_9_1 ) ], List( automorphismsp_1, AsHomalgMatrix ) );
+    deduped_3_1 := Concatenation( [ HomalgIdentityMatrix( deduped_7_1, 
deduped_9_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_2_1 := UnionOfRows( deduped_9_1, deduped_8_1, deduped_4_1{[ 1 .. 
deduped_6_1 - 1 ]} ) - UnionOfRows( deduped_9_1, deduped_8_1, deduped_4_1{[ 2 
.. deduped_6_1 ]} );
+    deduped_1_1 := UnionOfRows( deduped_9_1, deduped_7_1, deduped_3_1{[ 1 .. 
deduped_5_1 - 1 ]} ) - UnionOfRows( deduped_9_1, deduped_7_1, deduped_3_1{[ 2 
.. deduped_5_1 ]} );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
deduped_7_1 - RowRankOfMatrix( deduped_1_1 ) ), UniqueLeftDivide( 
SyzygiesOfColumns( deduped_1_1 ), AsHomalgMatrix( mu_1 ) * SyzygiesOfColumns( 
deduped_2_1 ) ), AsCapCategoryObject( cat_1, deduped_8_1 - RowRankOfMatrix( 
deduped_2_1 ) ) );
+end
+########
+        
+    ;
+    
+    ##
     AddCoevaluationForDual( cat,
         
 ########
@@ -4721,6 +4819,76 @@
     ;
     
     ##
+    AddIsomorphismFromCoequalizerOfIdentityAndAutomorphismsToCoequalizer( cat,
+        
+########
+function ( cat_1, Y_1, automorphisms_1 )
+    local morphism_attr_1_1, deduped_2_1, deduped_3_1, deduped_4_1, 
deduped_5_1;
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    deduped_4_1 := AsInteger( Y_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_4_1, 
deduped_5_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := HomalgIdentityMatrix( deduped_4_1 - RowRankOfMatrix( 
UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 1 .. deduped_3_1 - 1 ]} ) 
- UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 2 .. deduped_3_1 ]} ) ), 
deduped_5_1 );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 3025 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.IsomorphismFromCoequalizerOfIdentityAndAutomorphismsToCoequalizer
 :=
+        
+########
+function ( cat_1, Y_1, automorphisms_1 )
+    local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1, 
deduped_6_1;
+    deduped_6_1 := UnderlyingRing( cat_1 );
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_3_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_6_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_2_1 := deduped_5_1 - RowRankOfMatrix( UnionOfRows( deduped_6_1, 
deduped_5_1, deduped_3_1{[ 1 .. deduped_4_1 - 1 ]} ) - UnionOfRows( 
deduped_6_1, deduped_5_1, deduped_3_1{[ 2 .. deduped_4_1 ]} ) );
+    deduped_1_1 := AsCapCategoryObject( cat_1, deduped_2_1 );
+    return AsCapCategoryMorphism( cat_1, deduped_1_1, HomalgIdentityMatrix( 
deduped_2_1, deduped_6_1 ), deduped_1_1 );
+end
+########
+        
+    ;
+    
+    ##
+    AddIsomorphismFromCoequalizerToCoequalizerOfIdentityAndAutomorphisms( cat,
+        
+########
+function ( cat_1, Y_1, automorphisms_1 )
+    local morphism_attr_1_1, deduped_2_1, deduped_3_1, deduped_4_1, 
deduped_5_1;
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    deduped_4_1 := AsInteger( Y_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_4_1, 
deduped_5_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := HomalgIdentityMatrix( deduped_4_1 - RowRankOfMatrix( 
UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 1 .. deduped_3_1 - 1 ]} ) 
- UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 2 .. deduped_3_1 ]} ) ), 
deduped_5_1 );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 3025 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.IsomorphismFromCoequalizerToCoequalizerOfIdentityAndAutomorphisms
 :=
+        
+########
+function ( cat_1, Y_1, automorphisms_1 )
+    local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1, 
deduped_6_1;
+    deduped_6_1 := UnderlyingRing( cat_1 );
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_3_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_6_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_2_1 := deduped_5_1 - RowRankOfMatrix( UnionOfRows( deduped_6_1, 
deduped_5_1, deduped_3_1{[ 1 .. deduped_4_1 - 1 ]} ) - UnionOfRows( 
deduped_6_1, deduped_5_1, deduped_3_1{[ 2 .. deduped_4_1 ]} ) );
+    deduped_1_1 := AsCapCategoryObject( cat_1, deduped_2_1 );
+    return AsCapCategoryMorphism( cat_1, deduped_1_1, HomalgIdentityMatrix( 
deduped_2_1, deduped_6_1 ), deduped_1_1 );
+end
+########
+        
+    ;
+    
+    ##
     
AddIsomorphismFromCoequalizerToCokernelOfJointPairwiseDifferencesOfMorphismsFromCoproduct(
 cat,
         
 ########
@@ -5850,42 +6018,46 @@
         
 ########
 function ( cat_1, a_1, L_1 )
-    local morphism_attr_1_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1, deduped_9_1;
+    local hoisted_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, 
deduped_9_1;
     deduped_9_1 := Length( L_1 );
     deduped_8_1 := List( L_1, AsInteger );
     deduped_7_1 := AsInteger( a_1 );
     deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 );
-    morphism_attr_1_1 := UnionOfColumns( deduped_6_1, deduped_7_1 * Sum( 
deduped_8_1 ), List( [ 1 .. deduped_9_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_8_1[i_2];
-              return KroneckerMat( hoisted_5_1, UnionOfRows( deduped_6_1, 
deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_8_1{[ 1 .. i_2 - 1 ]} ), 
deduped_1_2, deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( Sum( deduped_8_1{[ i_2 + 1 .. deduped_9_1 ]} ), deduped_1_2, 
deduped_6_1 ) ] ) );
+    hoisted_4_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 );
+    deduped_5_1 := UnionOfColumns( deduped_6_1, deduped_7_1 * Sum( deduped_8_1 
), List( [ 1 .. deduped_9_1 ], function ( i_2 )
+              local deduped_1_2, deduped_2_2;
+              deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+              deduped_1_2 := deduped_8_1[deduped_2_2];
+              return KroneckerMat( hoisted_4_1, CAP_JIT_INCOMPLETE_LOGIC( 
UnionOfRows( deduped_6_1, deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_8_1{[ 1 
.. deduped_2_2 - 1 ]} ), deduped_1_2, deduped_6_1 ), HomalgIdentityMatrix( 
deduped_1_2, deduped_6_1 ), HomalgZeroMatrix( Sum( deduped_8_1{[ deduped_2_2 + 
1 .. deduped_9_1 ]} ), deduped_1_2, deduped_6_1 ) ] ) ) );
           end ) );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( deduped_5_1 ) ), deduped_5_1, AsCapCategoryObject( cat_1, 
NumberColumns( deduped_5_1 ) ) );
 end
 ########
         
-    , 1707 : IsPrecompiledDerivation := true );
+    , 1102 : IsPrecompiledDerivation := true );
     
     ##
     cat!.cached_precompiled_functions.LeftDistributivityExpanding :=
         
 ########
 function ( cat_1, a_1, L_1 )
-    local hoisted_4_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, 
deduped_10_1;
-    deduped_10_1 := Length( L_1 );
-    deduped_9_1 := UnderlyingRing( cat_1 );
-    deduped_8_1 := List( L_1, AsInteger );
-    deduped_7_1 := AsInteger( a_1 );
-    deduped_6_1 := deduped_7_1 * Sum( deduped_8_1 );
-    hoisted_4_1 := HomalgIdentityMatrix( deduped_7_1, deduped_9_1 );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
deduped_6_1 ), UnionOfColumns( deduped_9_1, deduped_6_1, List( [ 1 .. 
deduped_10_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_8_1[i_2];
-                return KroneckerMat( hoisted_4_1, UnionOfRows( deduped_9_1, 
deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_8_1{[ 1 .. i_2 - 1 ]} ), 
deduped_1_2, deduped_9_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_9_1 ), 
HomalgZeroMatrix( Sum( deduped_8_1{[ i_2 + 1 .. deduped_10_1 ]} ), deduped_1_2, 
deduped_9_1 ) ] ) );
-            end ) ), AsCapCategoryObject( cat_1, Sum( List( L_1, function ( 
summand_2 )
-                  return deduped_7_1 * AsInteger( summand_2 );
-              end ) ) ) );
+    local 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_12_1 := Length( L_1 );
+    deduped_11_1 := UnderlyingRing( cat_1 );
+    deduped_10_1 := List( L_1, AsInteger );
+    deduped_9_1 := AsInteger( a_1 );
+    deduped_8_1 := [ 1 .. deduped_12_1 ];
+    deduped_7_1 := deduped_9_1 * Sum( deduped_10_1 );
+    deduped_6_1 := AsCapCategoryObject( cat_1, deduped_7_1 );
+    hoisted_5_1 := HomalgIdentityMatrix( deduped_9_1, deduped_11_1 );
+    hoisted_4_1 := List( deduped_8_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_10_1[i_2];
+            return UnionOfRows( deduped_11_1, deduped_1_2, [ HomalgZeroMatrix( 
Sum( deduped_10_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, deduped_11_1 ), 
HomalgIdentityMatrix( deduped_1_2, deduped_11_1 ), HomalgZeroMatrix( Sum( 
deduped_10_1{[ i_2 + 1 .. deduped_12_1 ]} ), deduped_1_2, deduped_11_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, deduped_6_1, UnionOfColumns( 
deduped_11_1, deduped_7_1, List( deduped_8_1, function ( i_2 )
+                return KroneckerMat( hoisted_5_1, hoisted_4_1[i_2] );
+            end ) ), deduped_6_1 );
 end
 ########
         
@@ -5896,40 +6068,41 @@
         
 ########
 function ( cat_1, s_1, a_1, L_1, r_1 )
-    local morphism_attr_1_1, deduped_2_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( AsInteger( a_1 ), deduped_6_1 );
-    deduped_2_1 := List( L_1, AsInteger );
-    morphism_attr_1_1 := UnionOfColumns( deduped_6_1, AsInteger( s_1 ), List( 
[ 1 .. deduped_7_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_2_1[i_2];
-              return KroneckerMat( hoisted_5_1, UnionOfRows( deduped_6_1, 
deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_2_1{[ 1 .. i_2 - 1 ]} ), 
deduped_1_2, deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( Sum( deduped_2_1{[ i_2 + 1 .. deduped_7_1 ]} ), deduped_1_2, 
deduped_6_1 ) ] ) );
-          end ) );
-    return AsCapCategoryMorphism( cat_1, s_1, morphism_attr_1_1, 
AsCapCategoryObject( cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+    local deduped_1_1, hoisted_4_1, deduped_5_1, deduped_6_1;
+    deduped_6_1 := Length( L_1 );
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    hoisted_4_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_5_1 );
+    deduped_1_1 := List( L_1, AsInteger );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfColumns( deduped_5_1, 
AsInteger( s_1 ), List( [ 1 .. deduped_6_1 ], function ( i_2 )
+                local deduped_1_2, deduped_2_2;
+                deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+                deduped_1_2 := deduped_1_1[deduped_2_2];
+                return KroneckerMat( hoisted_4_1, CAP_JIT_INCOMPLETE_LOGIC( 
UnionOfRows( deduped_5_1, deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_1_1{[ 1 
.. deduped_2_2 - 1 ]} ), deduped_1_2, deduped_5_1 ), HomalgIdentityMatrix( 
deduped_1_2, deduped_5_1 ), HomalgZeroMatrix( Sum( deduped_1_1{[ deduped_2_2 + 
1 .. deduped_6_1 ]} ), deduped_1_2, deduped_5_1 ) ] ) ) );
+            end ) ), r_1 );
 end
 ########
         
-    , 1506 : IsPrecompiledDerivation := true );
+    , 901 : IsPrecompiledDerivation := true );
     
     ##
     
cat!.cached_precompiled_functions.LeftDistributivityExpandingWithGivenObjects :=
         
 ########
 function ( cat_1, s_1, a_1, L_1, r_1 )
-    local deduped_1_1, hoisted_4_1, deduped_6_1, deduped_7_1, deduped_8_1;
-    deduped_8_1 := AsInteger( a_1 );
-    deduped_7_1 := Length( L_1 );
-    deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
+    local deduped_1_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1;
+    deduped_8_1 := Length( L_1 );
+    deduped_7_1 := UnderlyingRing( cat_1 );
+    deduped_6_1 := [ 1 .. deduped_8_1 ];
+    hoisted_5_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_7_1 );
     deduped_1_1 := List( L_1, AsInteger );
-    return AsCapCategoryMorphism( cat_1, s_1, UnionOfColumns( deduped_6_1, 
AsInteger( s_1 ), List( [ 1 .. deduped_7_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_1_1[i_2];
-                return KroneckerMat( hoisted_4_1, UnionOfRows( deduped_6_1, 
deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_1_1{[ 1 .. i_2 - 1 ]} ), 
deduped_1_2, deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( Sum( deduped_1_1{[ i_2 + 1 .. deduped_7_1 ]} ), deduped_1_2, 
deduped_6_1 ) ] ) );
-            end ) ), AsCapCategoryObject( cat_1, Sum( List( L_1, function ( 
summand_2 )
-                  return deduped_8_1 * AsInteger( summand_2 );
-              end ) ) ) );
+    hoisted_4_1 := List( deduped_6_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_1_1[i_2];
+            return UnionOfRows( deduped_7_1, deduped_1_2, [ HomalgZeroMatrix( 
Sum( deduped_1_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, deduped_7_1 ), 
HomalgIdentityMatrix( deduped_1_2, deduped_7_1 ), HomalgZeroMatrix( Sum( 
deduped_1_1{[ i_2 + 1 .. deduped_8_1 ]} ), deduped_1_2, deduped_7_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfColumns( deduped_7_1, 
AsInteger( s_1 ), List( deduped_6_1, function ( i_2 )
+                return KroneckerMat( hoisted_5_1, hoisted_4_1[i_2] );
+            end ) ), r_1 );
 end
 ########
         
@@ -5940,42 +6113,46 @@
         
 ########
 function ( cat_1, a_1, L_1 )
-    local morphism_attr_1_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1, deduped_9_1;
+    local hoisted_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, 
deduped_9_1;
     deduped_9_1 := Length( L_1 );
     deduped_8_1 := List( L_1, AsInteger );
     deduped_7_1 := AsInteger( a_1 );
     deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 );
-    morphism_attr_1_1 := UnionOfRows( deduped_6_1, deduped_7_1 * Sum( 
deduped_8_1 ), List( [ 1 .. deduped_9_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_8_1[i_2];
-              return KroneckerMat( hoisted_5_1, UnionOfColumns( deduped_6_1, 
deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( deduped_8_1{[ 1 .. i_2 - 1 
]} ), deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_8_1{[ i_2 + 1 .. deduped_9_1 ]} ), 
deduped_6_1 ) ] ) );
+    hoisted_4_1 := HomalgIdentityMatrix( deduped_7_1, deduped_6_1 );
+    deduped_5_1 := UnionOfRows( deduped_6_1, deduped_7_1 * Sum( deduped_8_1 ), 
List( [ 1 .. deduped_9_1 ], function ( i_2 )
+              local deduped_1_2, deduped_2_2;
+              deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+              deduped_1_2 := deduped_8_1[deduped_2_2];
+              return KroneckerMat( hoisted_4_1, CAP_JIT_INCOMPLETE_LOGIC( 
UnionOfColumns( deduped_6_1, deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( 
deduped_8_1{[ 1 .. deduped_2_2 - 1 ]} ), deduped_6_1 ), HomalgIdentityMatrix( 
deduped_1_2, deduped_6_1 ), HomalgZeroMatrix( deduped_1_2, Sum( deduped_8_1{[ 
deduped_2_2 + 1 .. deduped_9_1 ]} ), deduped_6_1 ) ] ) ) );
           end ) );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( deduped_5_1 ) ), deduped_5_1, AsCapCategoryObject( cat_1, 
NumberColumns( deduped_5_1 ) ) );
 end
 ########
         
-    , 1707 : IsPrecompiledDerivation := true );
+    , 1102 : IsPrecompiledDerivation := true );
     
     ##
     cat!.cached_precompiled_functions.LeftDistributivityFactoring :=
         
 ########
 function ( cat_1, a_1, L_1 )
-    local hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, 
deduped_10_1;
-    deduped_10_1 := Length( L_1 );
-    deduped_9_1 := List( L_1, AsInteger );
-    deduped_8_1 := AsInteger( a_1 );
-    deduped_7_1 := UnderlyingRing( cat_1 );
-    deduped_6_1 := deduped_8_1 * Sum( deduped_9_1 );
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_8_1, deduped_7_1 );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, Sum( 
List( L_1, function ( summand_2 )
-                  return deduped_8_1 * AsInteger( summand_2 );
-              end ) ) ), UnionOfRows( deduped_7_1, deduped_6_1, List( [ 1 .. 
deduped_10_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_9_1[i_2];
-                return KroneckerMat( hoisted_5_1, UnionOfColumns( deduped_7_1, 
deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( deduped_9_1{[ 1 .. i_2 - 1 
]} ), deduped_7_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_7_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_9_1{[ i_2 + 1 .. deduped_10_1 ]} ), 
deduped_7_1 ) ] ) );
-            end ) ), AsCapCategoryObject( cat_1, deduped_6_1 ) );
+    local 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_12_1 := Length( L_1 );
+    deduped_11_1 := UnderlyingRing( cat_1 );
+    deduped_10_1 := List( L_1, AsInteger );
+    deduped_9_1 := AsInteger( a_1 );
+    deduped_8_1 := [ 1 .. deduped_12_1 ];
+    deduped_7_1 := deduped_9_1 * Sum( deduped_10_1 );
+    deduped_6_1 := AsCapCategoryObject( cat_1, deduped_7_1 );
+    hoisted_5_1 := HomalgIdentityMatrix( deduped_9_1, deduped_11_1 );
+    hoisted_4_1 := List( deduped_8_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_10_1[i_2];
+            return UnionOfColumns( deduped_11_1, deduped_1_2, [ 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_10_1{[ 1 .. i_2 - 1 ]} ), 
deduped_11_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_11_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_10_1{[ i_2 + 1 .. deduped_12_1 ]} 
), deduped_11_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, deduped_6_1, UnionOfRows( 
deduped_11_1, deduped_7_1, List( deduped_8_1, function ( i_2 )
+                return KroneckerMat( hoisted_5_1, hoisted_4_1[i_2] );
+            end ) ), deduped_6_1 );
 end
 ########
         
@@ -5986,39 +6163,40 @@
         
 ########
 function ( cat_1, s_1, a_1, L_1, r_1 )
-    local morphism_attr_1_1, deduped_2_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( AsInteger( a_1 ), deduped_6_1 );
-    deduped_2_1 := List( L_1, AsInteger );
-    morphism_attr_1_1 := UnionOfRows( deduped_6_1, AsInteger( r_1 ), List( [ 1 
.. deduped_7_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_2_1[i_2];
-              return KroneckerMat( hoisted_5_1, UnionOfColumns( deduped_6_1, 
deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ 1 .. i_2 - 1 
]} ), deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ i_2 + 1 .. deduped_7_1 ]} ), 
deduped_6_1 ) ] ) );
-          end ) );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, r_1 );
+    local deduped_1_1, hoisted_4_1, deduped_5_1, deduped_6_1;
+    deduped_6_1 := Length( L_1 );
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    hoisted_4_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_5_1 );
+    deduped_1_1 := List( L_1, AsInteger );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfRows( deduped_5_1, 
AsInteger( r_1 ), List( [ 1 .. deduped_6_1 ], function ( i_2 )
+                local deduped_1_2, deduped_2_2;
+                deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+                deduped_1_2 := deduped_1_1[deduped_2_2];
+                return KroneckerMat( hoisted_4_1, CAP_JIT_INCOMPLETE_LOGIC( 
UnionOfColumns( deduped_5_1, deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( 
deduped_1_1{[ 1 .. deduped_2_2 - 1 ]} ), deduped_5_1 ), HomalgIdentityMatrix( 
deduped_1_2, deduped_5_1 ), HomalgZeroMatrix( deduped_1_2, Sum( deduped_1_1{[ 
deduped_2_2 + 1 .. deduped_6_1 ]} ), deduped_5_1 ) ] ) ) );
+            end ) ), r_1 );
 end
 ########
         
-    , 1506 : IsPrecompiledDerivation := true );
+    , 901 : IsPrecompiledDerivation := true );
     
     ##
     
cat!.cached_precompiled_functions.LeftDistributivityFactoringWithGivenObjects :=
         
 ########
 function ( cat_1, s_1, a_1, L_1, r_1 )
-    local deduped_2_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1;
-    deduped_8_1 := AsInteger( a_1 );
-    deduped_7_1 := Length( L_1 );
-    deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
-    deduped_2_1 := List( L_1, AsInteger );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, Sum( 
List( L_1, function ( summand_2 )
-                  return deduped_8_1 * AsInteger( summand_2 );
-              end ) ) ), UnionOfRows( deduped_6_1, AsInteger( r_1 ), List( [ 1 
.. deduped_7_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_2_1[i_2];
-                return KroneckerMat( hoisted_5_1, UnionOfColumns( deduped_6_1, 
deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ 1 .. i_2 - 1 
]} ), deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ i_2 + 1 .. deduped_7_1 ]} ), 
deduped_6_1 ) ] ) );
+    local deduped_1_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1;
+    deduped_8_1 := Length( L_1 );
+    deduped_7_1 := UnderlyingRing( cat_1 );
+    deduped_6_1 := [ 1 .. deduped_8_1 ];
+    hoisted_5_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_7_1 );
+    deduped_1_1 := List( L_1, AsInteger );
+    hoisted_4_1 := List( deduped_6_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_1_1[i_2];
+            return UnionOfColumns( deduped_7_1, deduped_1_2, [ 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_1_1{[ 1 .. i_2 - 1 ]} ), 
deduped_7_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_7_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_1_1{[ i_2 + 1 .. deduped_8_1 ]} ), 
deduped_7_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfRows( deduped_7_1, 
AsInteger( r_1 ), List( deduped_6_1, function ( i_2 )
+                return KroneckerMat( hoisted_5_1, hoisted_4_1[i_2] );
             end ) ), r_1 );
 end
 ########
@@ -8234,6 +8412,74 @@
     ;
     
     ##
+    AddProjectionOntoCoequalizerOfIdentityAndAutomorphisms( cat,
+        
+########
+function ( cat_1, Y_1, automorphisms_1 )
+    local morphism_attr_1_1, deduped_2_1, deduped_3_1, deduped_4_1, 
deduped_5_1;
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := UnderlyingRing( cat_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_4_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := SyzygiesOfColumns( UnionOfRows( deduped_4_1, 
deduped_5_1, deduped_2_1{[ 1 .. deduped_3_1 - 1 ]} ) - UnionOfRows( 
deduped_4_1, deduped_5_1, deduped_2_1{[ 2 .. deduped_3_1 ]} ) );
+    return AsCapCategoryMorphism( cat_1, Y_1, morphism_attr_1_1, 
AsCapCategoryObject( cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 5750 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.ProjectionOntoCoequalizerOfIdentityAndAutomorphisms
 :=
+        
+########
+function ( cat_1, Y_1, automorphisms_1 )
+    local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1;
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := UnderlyingRing( cat_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_4_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_1_1 := UnionOfRows( deduped_4_1, deduped_5_1, deduped_2_1{[ 1 .. 
deduped_3_1 - 1 ]} ) - UnionOfRows( deduped_4_1, deduped_5_1, deduped_2_1{[ 2 
.. deduped_3_1 ]} );
+    return AsCapCategoryMorphism( cat_1, Y_1, SyzygiesOfColumns( deduped_1_1 
), AsCapCategoryObject( cat_1, deduped_5_1 - RowRankOfMatrix( deduped_1_1 ) ) );
+end
+########
+        
+    ;
+    
+    ##
+    
AddProjectionOntoCoequalizerOfIdentityAndAutomorphismsWithGivenCoequalizer( cat,
+        
+########
+function ( cat_1, Y_1, automorphisms_1, P_1 )
+    local morphism_attr_1_1, deduped_2_1, deduped_3_1, deduped_4_1, 
deduped_5_1;
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := UnderlyingRing( cat_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_4_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := SyzygiesOfColumns( UnionOfRows( deduped_4_1, 
deduped_5_1, deduped_2_1{[ 1 .. deduped_3_1 - 1 ]} ) - UnionOfRows( 
deduped_4_1, deduped_5_1, deduped_2_1{[ 2 .. deduped_3_1 ]} ) );
+    return AsCapCategoryMorphism( cat_1, Y_1, morphism_attr_1_1, 
AsCapCategoryObject( cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 2925 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.ProjectionOntoCoequalizerOfIdentityAndAutomorphismsWithGivenCoequalizer
 :=
+        
+########
+function ( cat_1, Y_1, automorphisms_1, P_1 )
+    local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1;
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := UnderlyingRing( cat_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_4_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_1_1 := UnionOfRows( deduped_4_1, deduped_5_1, deduped_2_1{[ 1 .. 
deduped_3_1 - 1 ]} ) - UnionOfRows( deduped_4_1, deduped_5_1, deduped_2_1{[ 2 
.. deduped_3_1 ]} );
+    return AsCapCategoryMorphism( cat_1, Y_1, SyzygiesOfColumns( deduped_1_1 
), AsCapCategoryObject( cat_1, deduped_5_1 - RowRankOfMatrix( deduped_1_1 ) ) );
+end
+########
+        
+    ;
+    
+    ##
     AddProjectionOntoCoequalizerWithGivenCoequalizer( cat,
         
 ########
@@ -8516,42 +8762,46 @@
         
 ########
 function ( cat_1, L_1, a_1 )
-    local morphism_attr_1_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1, deduped_9_1;
+    local hoisted_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, 
deduped_9_1;
     deduped_9_1 := Length( L_1 );
     deduped_8_1 := AsInteger( a_1 );
     deduped_7_1 := List( L_1, AsInteger );
     deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
-    morphism_attr_1_1 := UnionOfColumns( deduped_6_1, Sum( deduped_7_1 ) * 
deduped_8_1, List( [ 1 .. deduped_9_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_7_1[i_2];
-              return KroneckerMat( UnionOfRows( deduped_6_1, deduped_1_2, [ 
HomalgZeroMatrix( Sum( deduped_7_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, 
deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( Sum( deduped_7_1{[ i_2 + 1 .. deduped_9_1 ]} ), deduped_1_2, 
deduped_6_1 ) ] ), hoisted_5_1 );
+    hoisted_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
+    deduped_5_1 := UnionOfColumns( deduped_6_1, Sum( deduped_7_1 ) * 
deduped_8_1, List( [ 1 .. deduped_9_1 ], function ( i_2 )
+              local deduped_1_2, deduped_2_2;
+              deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+              deduped_1_2 := deduped_7_1[deduped_2_2];
+              return KroneckerMat( CAP_JIT_INCOMPLETE_LOGIC( UnionOfRows( 
deduped_6_1, deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_7_1{[ 1 .. 
deduped_2_2 - 1 ]} ), deduped_1_2, deduped_6_1 ), HomalgIdentityMatrix( 
deduped_1_2, deduped_6_1 ), HomalgZeroMatrix( Sum( deduped_7_1{[ deduped_2_2 + 
1 .. deduped_9_1 ]} ), deduped_1_2, deduped_6_1 ) ] ) ), hoisted_4_1 );
           end ) );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( deduped_5_1 ) ), deduped_5_1, AsCapCategoryObject( cat_1, 
NumberColumns( deduped_5_1 ) ) );
 end
 ########
         
-    , 1707 : IsPrecompiledDerivation := true );
+    , 1102 : IsPrecompiledDerivation := true );
     
     ##
     cat!.cached_precompiled_functions.RightDistributivityExpanding :=
         
 ########
 function ( cat_1, L_1, a_1 )
-    local hoisted_4_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, 
deduped_10_1;
-    deduped_10_1 := Length( L_1 );
-    deduped_9_1 := UnderlyingRing( cat_1 );
-    deduped_8_1 := AsInteger( a_1 );
-    deduped_7_1 := List( L_1, AsInteger );
-    deduped_6_1 := Sum( deduped_7_1 ) * deduped_8_1;
-    hoisted_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_9_1 );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
deduped_6_1 ), UnionOfColumns( deduped_9_1, deduped_6_1, List( [ 1 .. 
deduped_10_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_7_1[i_2];
-                return KroneckerMat( UnionOfRows( deduped_9_1, deduped_1_2, [ 
HomalgZeroMatrix( Sum( deduped_7_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, 
deduped_9_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_9_1 ), 
HomalgZeroMatrix( Sum( deduped_7_1{[ i_2 + 1 .. deduped_10_1 ]} ), deduped_1_2, 
deduped_9_1 ) ] ), hoisted_4_1 );
-            end ) ), AsCapCategoryObject( cat_1, Sum( List( L_1, function ( 
summand_2 )
-                  return AsInteger( summand_2 ) * deduped_8_1;
-              end ) ) ) );
+    local 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_12_1 := Length( L_1 );
+    deduped_11_1 := UnderlyingRing( cat_1 );
+    deduped_10_1 := AsInteger( a_1 );
+    deduped_9_1 := List( L_1, AsInteger );
+    deduped_8_1 := [ 1 .. deduped_12_1 ];
+    deduped_7_1 := Sum( deduped_9_1 ) * deduped_10_1;
+    deduped_6_1 := AsCapCategoryObject( cat_1, deduped_7_1 );
+    hoisted_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_11_1 );
+    hoisted_4_1 := List( deduped_8_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_9_1[i_2];
+            return UnionOfRows( deduped_11_1, deduped_1_2, [ HomalgZeroMatrix( 
Sum( deduped_9_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, deduped_11_1 ), 
HomalgIdentityMatrix( deduped_1_2, deduped_11_1 ), HomalgZeroMatrix( Sum( 
deduped_9_1{[ i_2 + 1 .. deduped_12_1 ]} ), deduped_1_2, deduped_11_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, deduped_6_1, UnionOfColumns( 
deduped_11_1, deduped_7_1, List( deduped_8_1, function ( i_2 )
+                return KroneckerMat( hoisted_4_1[i_2], hoisted_5_1 );
+            end ) ), deduped_6_1 );
 end
 ########
         
@@ -8562,40 +8812,41 @@
         
 ########
 function ( cat_1, s_1, L_1, a_1, r_1 )
-    local morphism_attr_1_1, deduped_2_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( AsInteger( a_1 ), deduped_6_1 );
-    deduped_2_1 := List( L_1, AsInteger );
-    morphism_attr_1_1 := UnionOfColumns( deduped_6_1, AsInteger( s_1 ), List( 
[ 1 .. deduped_7_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_2_1[i_2];
-              return KroneckerMat( UnionOfRows( deduped_6_1, deduped_1_2, [ 
HomalgZeroMatrix( Sum( deduped_2_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, 
deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( Sum( deduped_2_1{[ i_2 + 1 .. deduped_7_1 ]} ), deduped_1_2, 
deduped_6_1 ) ] ), hoisted_5_1 );
-          end ) );
-    return AsCapCategoryMorphism( cat_1, s_1, morphism_attr_1_1, 
AsCapCategoryObject( cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+    local deduped_1_1, hoisted_4_1, deduped_5_1, deduped_6_1;
+    deduped_6_1 := Length( L_1 );
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    hoisted_4_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_5_1 );
+    deduped_1_1 := List( L_1, AsInteger );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfColumns( deduped_5_1, 
AsInteger( s_1 ), List( [ 1 .. deduped_6_1 ], function ( i_2 )
+                local deduped_1_2, deduped_2_2;
+                deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+                deduped_1_2 := deduped_1_1[deduped_2_2];
+                return KroneckerMat( CAP_JIT_INCOMPLETE_LOGIC( UnionOfRows( 
deduped_5_1, deduped_1_2, [ HomalgZeroMatrix( Sum( deduped_1_1{[ 1 .. 
deduped_2_2 - 1 ]} ), deduped_1_2, deduped_5_1 ), HomalgIdentityMatrix( 
deduped_1_2, deduped_5_1 ), HomalgZeroMatrix( Sum( deduped_1_1{[ deduped_2_2 + 
1 .. deduped_6_1 ]} ), deduped_1_2, deduped_5_1 ) ] ) ), hoisted_4_1 );
+            end ) ), r_1 );
 end
 ########
         
-    , 1506 : IsPrecompiledDerivation := true );
+    , 901 : IsPrecompiledDerivation := true );
     
     ##
     
cat!.cached_precompiled_functions.RightDistributivityExpandingWithGivenObjects 
:=
         
 ########
 function ( cat_1, s_1, L_1, a_1, r_1 )
-    local deduped_1_1, hoisted_4_1, deduped_6_1, deduped_7_1, deduped_8_1;
-    deduped_8_1 := AsInteger( a_1 );
-    deduped_7_1 := Length( L_1 );
-    deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
+    local deduped_1_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1;
+    deduped_8_1 := Length( L_1 );
+    deduped_7_1 := UnderlyingRing( cat_1 );
+    deduped_6_1 := [ 1 .. deduped_8_1 ];
+    hoisted_5_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_7_1 );
     deduped_1_1 := List( L_1, AsInteger );
-    return AsCapCategoryMorphism( cat_1, s_1, UnionOfColumns( deduped_6_1, 
AsInteger( s_1 ), List( [ 1 .. deduped_7_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_1_1[i_2];
-                return KroneckerMat( UnionOfRows( deduped_6_1, deduped_1_2, [ 
HomalgZeroMatrix( Sum( deduped_1_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, 
deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( Sum( deduped_1_1{[ i_2 + 1 .. deduped_7_1 ]} ), deduped_1_2, 
deduped_6_1 ) ] ), hoisted_4_1 );
-            end ) ), AsCapCategoryObject( cat_1, Sum( List( L_1, function ( 
summand_2 )
-                  return AsInteger( summand_2 ) * deduped_8_1;
-              end ) ) ) );
+    hoisted_4_1 := List( deduped_6_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_1_1[i_2];
+            return UnionOfRows( deduped_7_1, deduped_1_2, [ HomalgZeroMatrix( 
Sum( deduped_1_1{[ 1 .. i_2 - 1 ]} ), deduped_1_2, deduped_7_1 ), 
HomalgIdentityMatrix( deduped_1_2, deduped_7_1 ), HomalgZeroMatrix( Sum( 
deduped_1_1{[ i_2 + 1 .. deduped_8_1 ]} ), deduped_1_2, deduped_7_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfColumns( deduped_7_1, 
AsInteger( s_1 ), List( deduped_6_1, function ( i_2 )
+                return KroneckerMat( hoisted_4_1[i_2], hoisted_5_1 );
+            end ) ), r_1 );
 end
 ########
         
@@ -8606,42 +8857,46 @@
         
 ########
 function ( cat_1, L_1, a_1 )
-    local morphism_attr_1_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1, deduped_9_1;
+    local hoisted_4_1, deduped_5_1, deduped_6_1, deduped_7_1, deduped_8_1, 
deduped_9_1;
     deduped_9_1 := Length( L_1 );
     deduped_8_1 := AsInteger( a_1 );
     deduped_7_1 := List( L_1, AsInteger );
     deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
-    morphism_attr_1_1 := UnionOfRows( deduped_6_1, Sum( deduped_7_1 ) * 
deduped_8_1, List( [ 1 .. deduped_9_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_7_1[i_2];
-              return KroneckerMat( UnionOfColumns( deduped_6_1, deduped_1_2, [ 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_7_1{[ 1 .. i_2 - 1 ]} ), 
deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_7_1{[ i_2 + 1 .. deduped_9_1 ]} ), 
deduped_6_1 ) ] ), hoisted_5_1 );
+    hoisted_4_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
+    deduped_5_1 := UnionOfRows( deduped_6_1, Sum( deduped_7_1 ) * deduped_8_1, 
List( [ 1 .. deduped_9_1 ], function ( i_2 )
+              local deduped_1_2, deduped_2_2;
+              deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+              deduped_1_2 := deduped_7_1[deduped_2_2];
+              return KroneckerMat( CAP_JIT_INCOMPLETE_LOGIC( UnionOfColumns( 
deduped_6_1, deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( deduped_7_1{[ 1 
.. deduped_2_2 - 1 ]} ), deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, 
deduped_6_1 ), HomalgZeroMatrix( deduped_1_2, Sum( deduped_7_1{[ deduped_2_2 + 
1 .. deduped_9_1 ]} ), deduped_6_1 ) ] ) ), hoisted_4_1 );
           end ) );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( deduped_5_1 ) ), deduped_5_1, AsCapCategoryObject( cat_1, 
NumberColumns( deduped_5_1 ) ) );
 end
 ########
         
-    , 1707 : IsPrecompiledDerivation := true );
+    , 1102 : IsPrecompiledDerivation := true );
     
     ##
     cat!.cached_precompiled_functions.RightDistributivityFactoring :=
         
 ########
 function ( cat_1, L_1, a_1 )
-    local hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1, deduped_9_1, 
deduped_10_1;
-    deduped_10_1 := Length( L_1 );
-    deduped_9_1 := AsInteger( a_1 );
-    deduped_8_1 := List( L_1, AsInteger );
-    deduped_7_1 := UnderlyingRing( cat_1 );
-    deduped_6_1 := Sum( deduped_8_1 ) * deduped_9_1;
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_9_1, deduped_7_1 );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, Sum( 
List( L_1, function ( summand_2 )
-                  return AsInteger( summand_2 ) * deduped_9_1;
-              end ) ) ), UnionOfRows( deduped_7_1, deduped_6_1, List( [ 1 .. 
deduped_10_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_8_1[i_2];
-                return KroneckerMat( UnionOfColumns( deduped_7_1, deduped_1_2, 
[ HomalgZeroMatrix( deduped_1_2, Sum( deduped_8_1{[ 1 .. i_2 - 1 ]} ), 
deduped_7_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_7_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_8_1{[ i_2 + 1 .. deduped_10_1 ]} ), 
deduped_7_1 ) ] ), hoisted_5_1 );
-            end ) ), AsCapCategoryObject( cat_1, deduped_6_1 ) );
+    local 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_12_1 := Length( L_1 );
+    deduped_11_1 := UnderlyingRing( cat_1 );
+    deduped_10_1 := AsInteger( a_1 );
+    deduped_9_1 := List( L_1, AsInteger );
+    deduped_8_1 := [ 1 .. deduped_12_1 ];
+    deduped_7_1 := Sum( deduped_9_1 ) * deduped_10_1;
+    deduped_6_1 := AsCapCategoryObject( cat_1, deduped_7_1 );
+    hoisted_5_1 := HomalgIdentityMatrix( deduped_10_1, deduped_11_1 );
+    hoisted_4_1 := List( deduped_8_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_9_1[i_2];
+            return UnionOfColumns( deduped_11_1, deduped_1_2, [ 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_9_1{[ 1 .. i_2 - 1 ]} ), 
deduped_11_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_11_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_9_1{[ i_2 + 1 .. deduped_12_1 ]} ), 
deduped_11_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, deduped_6_1, UnionOfRows( 
deduped_11_1, deduped_7_1, List( deduped_8_1, function ( i_2 )
+                return KroneckerMat( hoisted_4_1[i_2], hoisted_5_1 );
+            end ) ), deduped_6_1 );
 end
 ########
         
@@ -8652,39 +8907,40 @@
         
 ########
 function ( cat_1, s_1, L_1, a_1, r_1 )
-    local morphism_attr_1_1, deduped_2_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( AsInteger( a_1 ), deduped_6_1 );
-    deduped_2_1 := List( L_1, AsInteger );
-    morphism_attr_1_1 := UnionOfRows( deduped_6_1, AsInteger( r_1 ), List( [ 1 
.. deduped_7_1 ], function ( i_2 )
-              local deduped_1_2;
-              deduped_1_2 := deduped_2_1[i_2];
-              return KroneckerMat( UnionOfColumns( deduped_6_1, deduped_1_2, [ 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ 1 .. i_2 - 1 ]} ), 
deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ i_2 + 1 .. deduped_7_1 ]} ), 
deduped_6_1 ) ] ), hoisted_5_1 );
-          end ) );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, r_1 );
+    local deduped_1_1, hoisted_4_1, deduped_5_1, deduped_6_1;
+    deduped_6_1 := Length( L_1 );
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    hoisted_4_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_5_1 );
+    deduped_1_1 := List( L_1, AsInteger );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfRows( deduped_5_1, 
AsInteger( r_1 ), List( [ 1 .. deduped_6_1 ], function ( i_2 )
+                local deduped_1_2, deduped_2_2;
+                deduped_2_2 := CAP_JIT_INCOMPLETE_LOGIC( i_2 );
+                deduped_1_2 := deduped_1_1[deduped_2_2];
+                return KroneckerMat( CAP_JIT_INCOMPLETE_LOGIC( UnionOfColumns( 
deduped_5_1, deduped_1_2, [ HomalgZeroMatrix( deduped_1_2, Sum( deduped_1_1{[ 1 
.. deduped_2_2 - 1 ]} ), deduped_5_1 ), HomalgIdentityMatrix( deduped_1_2, 
deduped_5_1 ), HomalgZeroMatrix( deduped_1_2, Sum( deduped_1_1{[ deduped_2_2 + 
1 .. deduped_6_1 ]} ), deduped_5_1 ) ] ) ), hoisted_4_1 );
+            end ) ), r_1 );
 end
 ########
         
-    , 1506 : IsPrecompiledDerivation := true );
+    , 901 : IsPrecompiledDerivation := true );
     
     ##
     
cat!.cached_precompiled_functions.RightDistributivityFactoringWithGivenObjects 
:=
         
 ########
 function ( cat_1, s_1, L_1, a_1, r_1 )
-    local deduped_2_1, hoisted_5_1, deduped_6_1, deduped_7_1, deduped_8_1;
-    deduped_8_1 := AsInteger( a_1 );
-    deduped_7_1 := Length( L_1 );
-    deduped_6_1 := UnderlyingRing( cat_1 );
-    hoisted_5_1 := HomalgIdentityMatrix( deduped_8_1, deduped_6_1 );
-    deduped_2_1 := List( L_1, AsInteger );
-    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, Sum( 
List( L_1, function ( summand_2 )
-                  return AsInteger( summand_2 ) * deduped_8_1;
-              end ) ) ), UnionOfRows( deduped_6_1, AsInteger( r_1 ), List( [ 1 
.. deduped_7_1 ], function ( i_2 )
-                local deduped_1_2;
-                deduped_1_2 := deduped_2_1[i_2];
-                return KroneckerMat( UnionOfColumns( deduped_6_1, deduped_1_2, 
[ HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ 1 .. i_2 - 1 ]} ), 
deduped_6_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_6_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_2_1{[ i_2 + 1 .. deduped_7_1 ]} ), 
deduped_6_1 ) ] ), hoisted_5_1 );
+    local deduped_1_1, hoisted_4_1, hoisted_5_1, deduped_6_1, deduped_7_1, 
deduped_8_1;
+    deduped_8_1 := Length( L_1 );
+    deduped_7_1 := UnderlyingRing( cat_1 );
+    deduped_6_1 := [ 1 .. deduped_8_1 ];
+    hoisted_5_1 := HomalgIdentityMatrix( AsInteger( a_1 ), deduped_7_1 );
+    deduped_1_1 := List( L_1, AsInteger );
+    hoisted_4_1 := List( deduped_6_1, function ( i_2 )
+            local deduped_1_2;
+            deduped_1_2 := deduped_1_1[i_2];
+            return UnionOfColumns( deduped_7_1, deduped_1_2, [ 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_1_1{[ 1 .. i_2 - 1 ]} ), 
deduped_7_1 ), HomalgIdentityMatrix( deduped_1_2, deduped_7_1 ), 
HomalgZeroMatrix( deduped_1_2, Sum( deduped_1_1{[ i_2 + 1 .. deduped_8_1 ]} ), 
deduped_7_1 ) ] );
+        end );
+    return AsCapCategoryMorphism( cat_1, s_1, UnionOfRows( deduped_7_1, 
AsInteger( r_1 ), List( deduped_6_1, function ( i_2 )
+                return KroneckerMat( hoisted_4_1[i_2], hoisted_5_1 );
             end ) ), r_1 );
 end
 ########
@@ -9526,6 +9782,43 @@
     , 14453 : IsPrecompiledDerivation := true );
     
     ##
+    AddTensorProductOnMorphismAndObject( cat,
+        
+########
+function ( cat_1, alpha_1, b_1 )
+    local morphism_attr_1_1;
+    morphism_attr_1_1 := KroneckerMat( AsHomalgMatrix( alpha_1 ), 
HomalgIdentityMatrix( AsInteger( b_1 ), UnderlyingRing( cat_1 ) ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 402 : IsPrecompiledDerivation := true );
+    
+    ##
+    cat!.cached_precompiled_functions.TensorProductOnMorphismAndObject :=
+        
+########
+function ( cat_1, alpha_1, b_1 )
+    local deduped_1_1;
+    deduped_1_1 := AsInteger( b_1 );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
AsInteger( Source( alpha_1 ) ) * deduped_1_1 ), KroneckerMat( AsHomalgMatrix( 
alpha_1 ), HomalgIdentityMatrix( deduped_1_1, UnderlyingRing( cat_1 ) ) ), 
AsCapCategoryObject( cat_1, AsInteger( Range( alpha_1 ) ) * deduped_1_1 ) );
+end
+########
+        
+    ;
+    
+    ##
+    AddTensorProductOnMorphismAndObjectWithGivenTensorProducts( cat,
+        
+########
+function ( cat_1, s_1, alpha_1, b_1, r_1 )
+    return AsCapCategoryMorphism( cat_1, s_1, KroneckerMat( AsHomalgMatrix( 
alpha_1 ), HomalgIdentityMatrix( AsInteger( b_1 ), UnderlyingRing( cat_1 ) ) ), 
r_1 );
+end
+########
+        
+    , 201 : IsPrecompiledDerivation := true );
+    
+    ##
     AddTensorProductOnMorphisms( cat,
         
 ########
@@ -9561,6 +9854,43 @@
     , 100 );
     
     ##
+    AddTensorProductOnObjectAndMorphism( cat,
+        
+########
+function ( cat_1, a_1, beta_1 )
+    local morphism_attr_1_1;
+    morphism_attr_1_1 := KroneckerMat( HomalgIdentityMatrix( AsInteger( a_1 ), 
UnderlyingRing( cat_1 ) ), AsHomalgMatrix( beta_1 ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, AsCapCategoryObject( 
cat_1, NumberColumns( morphism_attr_1_1 ) ) );
+end
+########
+        
+    , 402 : IsPrecompiledDerivation := true );
+    
+    ##
+    cat!.cached_precompiled_functions.TensorProductOnObjectAndMorphism :=
+        
+########
+function ( cat_1, a_1, beta_1 )
+    local deduped_1_1;
+    deduped_1_1 := AsInteger( a_1 );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
deduped_1_1 * AsInteger( Source( beta_1 ) ) ), KroneckerMat( 
HomalgIdentityMatrix( deduped_1_1, UnderlyingRing( cat_1 ) ), AsHomalgMatrix( 
beta_1 ) ), AsCapCategoryObject( cat_1, deduped_1_1 * AsInteger( Range( beta_1 
) ) ) );
+end
+########
+        
+    ;
+    
+    ##
+    AddTensorProductOnObjectAndMorphismWithGivenTensorProducts( cat,
+        
+########
+function ( cat_1, s_1, a_1, beta_1, r_1 )
+    return AsCapCategoryMorphism( cat_1, s_1, KroneckerMat( 
HomalgIdentityMatrix( AsInteger( a_1 ), UnderlyingRing( cat_1 ) ), 
AsHomalgMatrix( beta_1 ) ), r_1 );
+end
+########
+        
+    , 201 : IsPrecompiledDerivation := true );
+    
+    ##
     AddTensorProductOnObjects( cat,
         
 ########
@@ -10280,6 +10610,74 @@
 end
 ########
         
+    ;
+    
+    ##
+    AddUniversalMorphismFromCoequalizerOfIdentityAndAutomorphisms( cat,
+        
+########
+function ( cat_1, Y_1, automorphisms_1, T_1, tau_1 )
+    local morphism_attr_1_1, deduped_2_1, deduped_3_1, deduped_4_1, 
deduped_5_1;
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := UnderlyingRing( cat_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_4_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := UniqueLeftDivide( SyzygiesOfColumns( UnionOfRows( 
deduped_4_1, deduped_5_1, deduped_2_1{[ 1 .. deduped_3_1 - 1 ]} ) - 
UnionOfRows( deduped_4_1, deduped_5_1, deduped_2_1{[ 2 .. deduped_3_1 ]} ) ), 
AsHomalgMatrix( tau_1 ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, Range( tau_1 ) );
+end
+########
+        
+    , 5851 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.UniversalMorphismFromCoequalizerOfIdentityAndAutomorphisms
 :=
+        
+########
+function ( cat_1, Y_1, automorphisms_1, T_1, tau_1 )
+    local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1;
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    deduped_4_1 := AsInteger( Y_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_4_1, 
deduped_5_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_1_1 := UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 1 .. 
deduped_3_1 - 1 ]} ) - UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 2 
.. deduped_3_1 ]} );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
deduped_4_1 - RowRankOfMatrix( deduped_1_1 ) ), UniqueLeftDivide( 
SyzygiesOfColumns( deduped_1_1 ), AsHomalgMatrix( tau_1 ) ), Range( tau_1 ) );
+end
+########
+        
+    ;
+    
+    ##
+    
AddUniversalMorphismFromCoequalizerOfIdentityAndAutomorphismsWithGivenCoequalizer(
 cat,
+        
+########
+function ( cat_1, Y_1, automorphisms_1, T_1, tau_1, P_1 )
+    local morphism_attr_1_1, deduped_2_1, deduped_3_1, deduped_4_1, 
deduped_5_1;
+    deduped_5_1 := AsInteger( Y_1 );
+    deduped_4_1 := UnderlyingRing( cat_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_5_1, 
deduped_4_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    morphism_attr_1_1 := UniqueLeftDivide( SyzygiesOfColumns( UnionOfRows( 
deduped_4_1, deduped_5_1, deduped_2_1{[ 1 .. deduped_3_1 - 1 ]} ) - 
UnionOfRows( deduped_4_1, deduped_5_1, deduped_2_1{[ 2 .. deduped_3_1 ]} ) ), 
AsHomalgMatrix( tau_1 ) );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
NumberRows( morphism_attr_1_1 ) ), morphism_attr_1_1, Range( tau_1 ) );
+end
+########
+        
+    , 3026 : IsPrecompiledDerivation := true );
+    
+    ##
+    
cat!.cached_precompiled_functions.UniversalMorphismFromCoequalizerOfIdentityAndAutomorphismsWithGivenCoequalizer
 :=
+        
+########
+function ( cat_1, Y_1, automorphisms_1, T_1, tau_1, P_1 )
+    local deduped_1_1, deduped_2_1, deduped_3_1, deduped_4_1, deduped_5_1;
+    deduped_5_1 := UnderlyingRing( cat_1 );
+    deduped_4_1 := AsInteger( Y_1 );
+    deduped_3_1 := Sum( [ 1, Length( automorphisms_1 ) ] );
+    deduped_2_1 := Concatenation( [ HomalgIdentityMatrix( deduped_4_1, 
deduped_5_1 ) ], List( automorphisms_1, AsHomalgMatrix ) );
+    deduped_1_1 := UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 1 .. 
deduped_3_1 - 1 ]} ) - UnionOfRows( deduped_5_1, deduped_4_1, deduped_2_1{[ 2 
.. deduped_3_1 ]} );
+    return AsCapCategoryMorphism( cat_1, AsCapCategoryObject( cat_1, 
deduped_4_1 - RowRankOfMatrix( deduped_1_1 ) ), UniqueLeftDivide( 
SyzygiesOfColumns( deduped_1_1 ), AsHomalgMatrix( tau_1 ) ), Range( tau_1 ) );
+end
+########
+        
     ;
     
     ##
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap13.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap13.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap13.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap13.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap13.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:621-686
+# doc/_Chapter_Examples_and_Tests.xml:621-690
 gap> LoadPackage( "LinearAlgebraForCAP", ">= 2024.01-04", false );
 true
 gap> QQ := HomalgFieldOfRationals();;
@@ -25,8 +25,10 @@
 IsAdditiveMonoidalCategory
 IsBraidedMonoidalCategory
 IsCategoryWithCoequalizers
+IsCategoryWithCoequalizersOfIdentityAndAutomorphisms
 IsCategoryWithCokernels
 IsCategoryWithEqualizers
+IsCategoryWithEqualizersOfIdentityAndAutomorphisms
 IsCategoryWithInitialObject
 IsCategoryWithKernels
 IsCategoryWithTerminalObject
@@ -37,6 +39,8 @@
 IsEquippedWithHomomorphismStructure
 IsLinearCategoryOverCommutativeRing
 IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
+IsLinearCategoryOverCommutativeSemiring
+IsLinearCategoryOverCommutativeSemiringWithFinitelyGeneratedFreeExternalHoms
 IsMonoidalCategory
 IsPreAbelianCategory
 IsRigidSymmetricClosedMonoidalCategory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap14.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap14.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap14.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap14.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap14.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:693-715
+# doc/_Chapter_Examples_and_Tests.xml:697-719
 gap> field := HomalgFieldOfRationals( );;
 gap> vec := MatrixCategory( field );;
 gap> A := MatrixCategoryObject( vec, 1 );;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap15.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap15.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap15.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap15.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap15.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:722-743
+# doc/_Chapter_Examples_and_Tests.xml:726-747
 gap> LoadPackage( "LinearAlgebraForCAP", false );
 true
 gap> Q := HomalgFieldOfRationals();;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap16.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap16.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap16.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap16.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap16.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:745-750
+# doc/_Chapter_Examples_and_Tests.xml:749-754
 gap> # @drop_example_in_Julia: differences in the output of (Safe)RightDivide, 
see https://github.com/homalg-project/MatricesForHomalg.jl/issues/50
 > delta := SomeReductionBySplitEpiSummand_MorphismToInputRange( alpha );;
 gap> Display( EntriesOfHomalgMatrixAsListList( UnderlyingMatrix( delta ) ) );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap17.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap17.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap17.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap17.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap17.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:757-778
+# doc/_Chapter_Examples_and_Tests.xml:761-782
 gap> Q := HomalgFieldOfRationals();;
 gap> vec := MatrixCategory( Q );;
 gap> V := MatrixCategoryObject( vec, 2 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap18.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap18.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap18.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap18.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap18.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:780-799
+# doc/_Chapter_Examples_and_Tests.xml:784-803
 gap> Q := HomalgFieldOfRationals();;
 gap> vec := MatrixCategory( Q );;
 gap> V := MatrixCategoryObject( vec, 2 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap19.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap19.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap19.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap19.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap19.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:801-826
+# doc/_Chapter_Examples_and_Tests.xml:805-830
 gap> Q := HomalgFieldOfRationals();;
 gap> vec := MatrixCategory( Q );;
 gap> V := MatrixCategoryObject( vec, 2 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap20.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap20.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap20.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap20.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap20.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:833-852
+# doc/_Chapter_Examples_and_Tests.xml:837-856
 gap> Q := HomalgFieldOfRationals();;
 gap> vec := MatrixCategory( Q );;
 gap> A := MatrixCategoryObject( vec, 1 );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap21.tst 
new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap21.tst
--- old/LinearAlgebraForCAP-2026.04-01/tst/linearalgebraforcap21.tst    
2026-04-10 19:42:35.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/linearalgebraforcap21.tst    
2026-05-22 21:38:04.000000000 +0200
@@ -10,7 +10,7 @@
 #
 gap> START_TEST("linearalgebraforcap21.tst");
 
-# doc/_Chapter_Examples_and_Tests.xml:859-880
+# doc/_Chapter_Examples_and_Tests.xml:863-884
 gap> LoadPackage( "LinearAlgebraForCAP", false );
 true
 gap> Q := HomalgFieldOfRationals( );;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/LinearAlgebraForCAP-2026.04-01/tst/testall_no_precompiled_code.g 
new/LinearAlgebraForCAP-2026.05-04/tst/testall_no_precompiled_code.g
--- old/LinearAlgebraForCAP-2026.04-01/tst/testall_no_precompiled_code.g        
2026-04-10 19:25:59.000000000 +0200
+++ new/LinearAlgebraForCAP-2026.05-04/tst/testall_no_precompiled_code.g        
2026-05-22 21:05:16.000000000 +0200
@@ -3,6 +3,28 @@
 #
 # This file runs package tests without precompiled code.
 #
+
+# In the current GAP master START_TEST and STOP_TEST reset the global options
+# stack (see https://github.com/gap-system/gap/pull/6215).
+# We override them to re-push the no_precompiled_code option after each reset.
+_ORIG_START_TEST := START_TEST;
+START_TEST := function( name )
+    _ORIG_START_TEST( name );
+    if ValueOption( "no_precompiled_code" ) <> true then
+        PushOptions( rec( no_precompiled_code := true ) );
+    fi;
+end;
+
+_ORIG_STOP_TEST_QUIET := STOP_TEST_QUIET;
+STOP_TEST_QUIET := function( args... )
+    local result;
+    result := CallFuncList( _ORIG_STOP_TEST_QUIET, args );
+    if ValueOption( "no_precompiled_code" ) <> true then
+        PushOptions( rec( no_precompiled_code := true ) );
+    fi;
+    return result;
+end;
+
 PushOptions(
     rec(
         no_precompiled_code := true,

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.bT5PDu/_old  2026-06-17 16:28:34.156756183 +0200
+++ /var/tmp/diff_new_pack.bT5PDu/_new  2026-06-17 16:28:34.176757015 +0200
@@ -1,5 +1,5 @@
-mtime: 1781538917
-commit: d8cd6cdab715a2aa8c877bda249c12612560e661e9fdb6f91209fcdc44ccdd01
+mtime: 1781687288
+commit: 4db6010c400ebdba10c0524aa7e4e630372b1de79c5eb8815b32bfd1c797863e
 url: https://src.opensuse.org/jengelh/gap-linearalgebraforcap
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-06-17 11:08:08.000000000 +0200
@@ -0,0 +1 @@
+.osc

Reply via email to