├── .github
├── pull_request_template.md
└── workflows
│ └── Tests.yml
├── .gitignore
├── ActionsForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── ActionsTest.g
│ ├── ActionsTest2.g
│ ├── CategoryWithAttributesTest.g
│ ├── IndirectionTest.g
│ └── IndirectionTest2.g
├── gap
│ ├── ActionMorphisms.gd
│ ├── ActionMorphisms.gi
│ ├── ActionObjects.gd
│ ├── ActionObjects.gi
│ ├── ActionsCategory.gd
│ ├── ActionsCategory.gi
│ ├── CoactionMorphisms.gd
│ ├── CoactionMorphisms.gi
│ ├── CoactionObjects.gd
│ ├── CoactionObjects.gi
│ ├── CoactionsCategory.gd
│ ├── CoactionsCategory.gi
│ ├── SemisimpleCategory.gd
│ └── SemisimpleCategory.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── AttributeCategoryForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ └── example.g
├── gap
│ ├── AttributeCategory.gd
│ └── AttributeCategory.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── CAP
├── .gitignore
├── GeneralizedAddMethod.md
├── IDEAS
├── LICENSE
├── LOGIC_SYNTAX_IDEAS
├── LogicForCategories
│ ├── PredicateImplicationsForAbCategories.tex
│ ├── PredicateImplicationsForAbelianCategories.tex
│ ├── PredicateImplicationsForAdditiveCategories.tex
│ ├── PredicateImplicationsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex
│ ├── PredicateImplicationsForGeneralCategories.tex
│ ├── PredicateImplicationsForPreabelianCategories.tex
│ ├── PropositionsForAbCategories.tex
│ ├── PropositionsForAbelianCategories.tex
│ ├── PropositionsForAdditiveCategories.tex
│ ├── PropositionsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex
│ ├── PropositionsForGeneralCategories.tex
│ ├── PropositionsForPreabelianCategories.tex
│ ├── RelationsForAbCategories.tex
│ ├── RelationsForAbelianCategories.tex
│ ├── RelationsForAdditiveCategories.tex
│ ├── RelationsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex
│ ├── RelationsForGeneralCategories.tex
│ └── RelationsForPreabelianCategories.tex
├── PackageInfo.g
├── README.md
├── TODO
├── doc
│ ├── AddFunctions.autodoc
│ ├── Doc.autodoc
│ ├── Limits.autodoc
│ └── clean
├── examples
│ ├── CacheTest.g
│ ├── DummyCategory.g
│ ├── Functors.g
│ ├── HandlePrecompiledTowers.g
│ ├── IntegerCategory.g
│ ├── Schemes.g
│ ├── TerminalCategoryWithMultipleObjects.g
│ ├── TerminalCategoryWithSingleObject.g
│ └── dummy_rings.g
├── gap
│ ├── CAP.gd
│ ├── CAP.gi
│ ├── CategoriesCategory.gd
│ ├── CategoriesCategory.gi
│ ├── CategoryConstructor.gd
│ ├── CategoryConstructor.gi
│ ├── CategoryMorphisms.gd
│ ├── CategoryMorphisms.gi
│ ├── CategoryMorphismsOperations.gd
│ ├── CategoryMorphismsOperations.gi
│ ├── CategoryObjects.gd
│ ├── CategoryObjects.gi
│ ├── CategoryObjectsOperations.gd
│ ├── CategoryObjectsOperations.gi
│ ├── CategoryTwoCells.gd
│ ├── CategoryTwoCells.gi
│ ├── CategoryTwoCellsOperations.gd
│ ├── CategoryTwoCellsOperations.gi
│ ├── ConstructiveCategoriesRecord.gd
│ ├── ConstructiveCategoriesRecord.gi
│ ├── Derivations.gd
│ ├── Derivations.gi
│ ├── DerivedMethods.autogen.gi
│ ├── DerivedMethods.gi
│ ├── DummyImplementations.gd
│ ├── DummyImplementations.gi
│ ├── DummyImplementationsOfMatricesForHomalg.gd
│ ├── DummyImplementationsOfMatricesForHomalg.gi
│ ├── Finalize.gd
│ ├── Finalize.gi
│ ├── InstallAdds.gd
│ ├── InstallAdds.gi
│ ├── LimitConvenience.gd
│ ├── LimitConvenience.gi
│ ├── LimitConvenienceOutput.gi
│ ├── LogicForCAP.gd
│ ├── LogicForCAP.gi
│ ├── MethodRecord.gi
│ ├── MethodRecordDeclarations.autogen.gd
│ ├── MethodRecordInstallations.autogen.gi
│ ├── MethodRecordTools.gd
│ ├── MethodRecordTools.gi
│ ├── OppositeCategory.gd
│ ├── OppositeCategory.gi
│ ├── PrepareFunctions.gi
│ ├── PrepareFunctionsTools.gd
│ ├── PrepareFunctionsTools.gi
│ ├── PrintingFunctions.gd
│ ├── PrintingFunctions.gi
│ ├── ProductCategory.gd
│ ├── ProductCategory.gi
│ ├── ReinterpretationOfCategory.gd
│ ├── ReinterpretationOfCategory.gi
│ ├── TerminalCategory.gd
│ ├── TerminalCategory.gi
│ ├── TheoremParser.gd
│ ├── TheoremParser.gi
│ ├── ToolsForCategories.gd
│ ├── ToolsForCategories.gi
│ ├── UniversalObjects.gd
│ ├── UniversalObjects.gi
│ ├── WrapperCategory.gd
│ ├── WrapperCategory.gi
│ └── init.gi
├── help_for_CAP.md
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ ├── CAP_INTERNAL_ASSERT_VALUE_IS_OF_TYPE_GETTER.tst
│ ├── IsWellDefinedForMorphismsWithGivenSourceAndRange.tst
│ ├── ListWithKeys.tst
│ ├── Simplify.tst
│ └── testall.g
├── CartesianCategories
├── .codecov.yml
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── InfoStringOfInstalledOperationsOfCategory.g
│ └── InitialCategory.g
├── gap
│ ├── AUTOGENERATED_FROM.md
│ ├── BicartesianCategories.gd
│ ├── BicartesianCategories.gi
│ ├── BraidedCartesianCategories.gd
│ ├── BraidedCartesianCategories.gi
│ ├── BraidedCartesianCategoriesDerivedMethods.gi
│ ├── BraidedCartesianCategoriesMethodRecord.gi
│ ├── BraidedCartesianCategoriesMethodRecordDeclarations.autogen.gd
│ ├── BraidedCartesianCategoriesMethodRecordInstallations.autogen.gi
│ ├── BraidedCartesianCategoriesTest.gd
│ ├── BraidedCartesianCategoriesTest.gi
│ ├── BraidedCocartesianCategories.gd
│ ├── BraidedCocartesianCategories.gi
│ ├── BraidedCocartesianCategoriesDerivedMethods.gi
│ ├── BraidedCocartesianCategoriesMethodRecord.gi
│ ├── BraidedCocartesianCategoriesMethodRecordDeclarations.autogen.gd
│ ├── BraidedCocartesianCategoriesMethodRecordInstallations.autogen.gi
│ ├── BraidedCocartesianCategoriesTest.gd
│ ├── BraidedCocartesianCategoriesTest.gi
│ ├── CartesianCategories.gd
│ ├── CartesianCategories.gi
│ ├── CartesianCategoriesDerivedMethods.gi
│ ├── CartesianCategoriesDerivedMethods_extra.gi
│ ├── CartesianCategoriesMethodRecord.gi
│ ├── CartesianCategoriesMethodRecordDeclarations.autogen.gd
│ ├── CartesianCategoriesMethodRecordInstallations.autogen.gi
│ ├── CartesianCategoriesProperties.gd
│ ├── CartesianCategoriesProperties.gi
│ ├── CartesianCategoriesTest.gd
│ ├── CartesianCategoriesTest.gi
│ ├── CartesianCategories_extra.gd
│ ├── CartesianCategories_extra.gi
│ ├── CartesianClosedCategories.gd
│ ├── CartesianClosedCategories.gi
│ ├── CartesianClosedCategoriesDerivedMethods.gi
│ ├── CartesianClosedCategoriesDerivedMethods_extra.gi
│ ├── CartesianClosedCategoriesMethodRecord.gi
│ ├── CartesianClosedCategoriesMethodRecordDeclarations.autogen.gd
│ ├── CartesianClosedCategoriesMethodRecordInstallations.autogen.gi
│ ├── CartesianClosedCategoriesProperties.gd
│ ├── CartesianClosedCategoriesProperties.gi
│ ├── CartesianClosedCategoriesTest.gd
│ ├── CartesianClosedCategoriesTest.gi
│ ├── CocartesianCategories.gd
│ ├── CocartesianCategories.gi
│ ├── CocartesianCategoriesDerivedMethods.gi
│ ├── CocartesianCategoriesDerivedMethods_extra.gi
│ ├── CocartesianCategoriesMethodRecord.gi
│ ├── CocartesianCategoriesMethodRecordDeclarations.autogen.gd
│ ├── CocartesianCategoriesMethodRecordInstallations.autogen.gi
│ ├── CocartesianCategoriesProperties.gd
│ ├── CocartesianCategoriesProperties.gi
│ ├── CocartesianCategoriesTest.gd
│ ├── CocartesianCategoriesTest.gi
│ ├── CocartesianCategories_extra.gd
│ ├── CocartesianCategories_extra.gi
│ ├── CocartesianCoclosedCategories.gd
│ ├── CocartesianCoclosedCategories.gi
│ ├── CocartesianCoclosedCategoriesDerivedMethods.gi
│ ├── CocartesianCoclosedCategoriesMethodRecord.gi
│ ├── CocartesianCoclosedCategoriesMethodRecordDeclarations.autogen.gd
│ ├── CocartesianCoclosedCategoriesMethodRecordInstallations.autogen.gi
│ ├── CocartesianCoclosedCategoriesProperties.gd
│ ├── CocartesianCoclosedCategoriesProperties.gi
│ ├── CocartesianCoclosedCategoriesTest.gd
│ ├── CocartesianCoclosedCategoriesTest.gi
│ ├── CodistributiveCocartesianCategories.gd
│ ├── CodistributiveCocartesianCategories.gi
│ ├── CodistributiveCocartesianCategoriesMethodRecord.gi
│ ├── CodistributiveCocartesianCategoriesMethodRecordDeclarations.autogen.gd
│ ├── CodistributiveCocartesianCategoriesMethodRecordInstallations.autogen.gi
│ ├── CodistributiveCocartesianCategoriesProperties.gd
│ ├── CodistributiveCocartesianCategoriesTest.gd
│ ├── CodistributiveCocartesianCategoriesTest.gi
│ ├── DistributiveCartesianCategories.gd
│ ├── DistributiveCartesianCategories.gi
│ ├── DistributiveCartesianCategoriesMethodRecord.gi
│ ├── DistributiveCartesianCategoriesMethodRecordDeclarations.autogen.gd
│ ├── DistributiveCartesianCategoriesMethodRecordInstallations.autogen.gi
│ ├── DistributiveCartesianCategoriesProperties.gd
│ ├── DistributiveCartesianCategoriesTest.gd
│ ├── DistributiveCartesianCategoriesTest.gi
│ ├── HomomorphismStructureDerivedMethods.gi
│ ├── InitialCategory.gd
│ ├── InitialCategory.gi
│ ├── InitialCategoryProperties.gd
│ ├── SymmetricCartesianCategoriesDerivedMethods.gi
│ ├── SymmetricCartesianClosedCategoriesDerivedMethods.gi
│ ├── SymmetricCocartesianCategoriesDerivedMethods.gi
│ ├── SymmetricCocartesianCoclosedCategoriesDerivedMethods.gi
│ ├── Synonyms.gd
│ ├── Synonyms.gi
│ ├── Tools.gd
│ └── Tools.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ ├── TerminalCategoryCartesian.tst
│ ├── TerminalCategoryCocartesian.tst
│ └── testall.g
├── CompilerForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── TODO
├── benchmarks
│ ├── FPres.g
│ ├── ZX.g
│ ├── algorithms.g
│ ├── boxing.g
│ └── data_structures.g
├── doc
│ ├── Doc.autodoc
│ ├── Extension.autodoc
│ ├── Usage.autodoc
│ └── clean
├── examples
│ ├── LinearAlgebraForCAP.g
│ ├── precompile_CategoryOfColumns_as_Opposite_CategoryOfRows.g
│ ├── precompile_CategoryOfRows_as_AdditiveClosure_RingAsCategory.g
│ ├── precompile_CoFreydCategory_as_Opposite_FreydCategory_Opposite.g
│ ├── precompile_MatrixCategory_as_CategoryOfRows.g
│ ├── precompile_ModulePresentations_as_FreydCategory_CategoryOfRowsOrColumns.g
│ └── precompile_Opposite_MatrixCategory.g
├── gap
│ ├── CleanUpHoistedAndDeduplicatedExpressions.gd
│ ├── CleanUpHoistedAndDeduplicatedExpressions.gi
│ ├── CompileCAPOperation.gd
│ ├── CompileCAPOperation.gi
│ ├── CompilerForCAP.gd
│ ├── CompilerForCAP.gi
│ ├── CompilerHints.gd
│ ├── CompilerHints.gi
│ ├── DeduplicateExpressions.gd
│ ├── DeduplicateExpressions.gi
│ ├── DropHandledEdgeCases.gd
│ ├── DropHandledEdgeCases.gi
│ ├── DropUnusedBindings.gd
│ ├── DropUnusedBindings.gi
│ ├── EnhancedSyntaxTree.gd
│ ├── EnhancedSyntaxTree.gi
│ ├── HoistExpressions.gd
│ ├── HoistExpressions.gi
│ ├── InferDataTypes.gd
│ ├── InferDataTypes.gi
│ ├── InlineArguments.gd
│ ├── InlineArguments.gi
│ ├── InlineBindings.gd
│ ├── InlineBindings.gi
│ ├── InlineFunctionCalls.gd
│ ├── InlineFunctionCalls.gi
│ ├── InlineSimpleFunctionCalls.gd
│ ├── InlineSimpleFunctionCalls.gi
│ ├── IterateOverTree.gd
│ ├── IterateOverTree.gi
│ ├── Logic.gd
│ ├── Logic.gi
│ ├── LogicTemplates.gd
│ ├── LogicTemplates.gi
│ ├── OutlineWrappedArguments.gd
│ ├── OutlineWrappedArguments.gi
│ ├── PrecompileCategory.gd
│ ├── PrecompileCategory.gi
│ ├── PrettyPrintSyntaxTree.gd
│ ├── PrettyPrintSyntaxTree.gi
│ ├── ProofAssistant.gd
│ ├── ProofAssistant.gi
│ ├── ResolveGlobalVariables.gd
│ ├── ResolveGlobalVariables.gi
│ ├── ResolveOperations.gd
│ ├── ResolveOperations.gi
│ ├── Tools.gd
│ ├── Tools.gi
│ ├── TypeSignaturesOfMatricesForHomalg.gi
│ └── TypeSignaturesOfQPA.gi
├── img
│ ├── BMWK_Fz_2017_WebSVG_en.svg
│ ├── compilation_process.svg
│ ├── compilation_process.tex
│ ├── example_category.svg
│ ├── example_category.tex
│ ├── example_computation.svg
│ └── example_computation.tex
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ ├── 200_CAP_JIT_INTERNAL_FUNCTION_ID.tst
│ ├── 300_proof_AdditiveClosure_has_a_zero_object.tst
│ ├── 300_proof_AdditiveClosure_has_direct_sums.tst
│ ├── 300_proof_AdditiveClosure_has_preadditive_structure.tst
│ ├── 300_proof_AdditiveClosure_hom_structure.tst
│ ├── 300_proof_CategoryOfRows_has_kernels.tst
│ ├── 300_proof_OppositeCategory_hom_structure.tst
│ ├── 300_proof_RingAsCategory_has_associative_composition.tst
│ ├── 300_proof_RingAsCategory_has_preadditive_structure.tst
│ ├── 300_proof_RingAsCategory_of_k_algebra_has_linear_structure.tst
│ ├── 300_proof_hom_structure_for_linear_categories.tst
│ ├── 400_proof_assistant_mode_disabled.tst
│ ├── CAP_JIT_DROP_NEXT_STATEMENT.tst
│ ├── CAP_JIT_INTERNAL_TELESCOPED_ITERATION.tst
│ ├── CAP_JIT_NEXT_FUNCCALL_DOES_NOT_RETURN_FAIL.tst
│ ├── CapJitAddKnownMethod.tst
│ ├── CapJitCompiledCAPOperationAsEnhancedSyntaxTree.tst
│ ├── CapJitCompiledFunction.tst
│ ├── CapJitDeduplicatedExpressions.tst
│ ├── CapJitDisableDataTypeInference.tst
│ ├── CapJitDroppedHandledEdgeCases.tst
│ ├── CapJitDroppedUnusedBindings.tst
│ ├── CapJitEnableProofAssistantMode.tst
│ ├── CapJitEnableStepByStepCompilation.tst
│ ├── CapJitHoistedExpressions.tst
│ ├── CapJitInlinedBindings.tst
│ ├── CapJitInlinedFunctionCalls.tst
│ ├── CapJitIsEqualForEnhancedSyntaxTrees.tst
│ ├── CapJitReplacedSourceAndRangeAttributes.tst
│ ├── CapJitResolvedGlobalVariables.tst
│ ├── CapJitResolvedOperations.tst
│ ├── CapJitTypedExpression.tst
│ ├── ENHANCED_SYNTAX_TREE.tst
│ ├── EXPR_CASE.tst
│ ├── Logic.tst
│ ├── LogicTemplates.tst
│ ├── MatElm.tst
│ ├── StopCompilationAtCategory.tst
│ ├── do_not_resolve_CAP_operations_statically.tst
│ ├── generalized_loop_fusion.tst
│ ├── generate_opposite_derivations.tst
│ ├── inline_arguments_for_variadic_functions.tst
│ ├── loop_extraction.tst
│ ├── proof_assistant.tst
│ ├── rapid_rassignment.tst
│ ├── testall.g
│ └── unique_function_ids.tst
├── ComplexesAndFilteredObjectsForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ └── .gitkeep
├── gap
│ ├── CocomplexCategory.gd
│ ├── CocomplexCategory.gi
│ ├── FilteredObjects.gd
│ ├── FilteredObjects.gi
│ ├── ZFunctors.gd
│ └── ZFunctors.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── FreydCategoriesForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── ToDo
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── AdditiveClosure.g
│ ├── AdditiveClosureKronecker.g
│ ├── AdditiveClosureMonoidal.g
│ ├── AdelmanCategoryBasics.g
│ ├── Basics.gi
│ ├── CategoryOfColumns.g
│ ├── CategoryOfRows.g
│ ├── CoFreydCategory.g
│ ├── CokernelImageClosureExample.gi
│ ├── FreydCategoryOfGradedRowsAndColumns.g
│ ├── Functors.g
│ ├── GradeSequenceNotAuslanderRegular.g
│ ├── GradeSequenceOnFpFunctors.g
│ ├── GradedRowsAndColumns.g
│ ├── GroupsAsCats.g
│ ├── HomOfFpFunctors.g
│ ├── HomStructureTest.g
│ ├── LinearClosure.g
│ ├── MatricesOverProsets.g
│ ├── MatricesOverZG.g
│ ├── Opposite_CategoryOfRows_as_CategoryOfColumns.g
│ ├── ProjInjBij.g
│ ├── Prosets.g
│ ├── Random.g
│ ├── Relations.g
│ ├── RingsAsAbCats.g
│ ├── RowsAndColsOverFields.g
│ ├── Simplify.g
│ ├── StandardTensorStructure.g
│ └── generate_documentation.g
├── gap
│ ├── AdditiveClosure.gd
│ ├── AdditiveClosure.gi
│ ├── AdelmanCategory.gd
│ ├── AdelmanCategory.gi
│ ├── CategoryOfColumns.gd
│ ├── CategoryOfColumns.gi
│ ├── CategoryOfColumns_as_Opposite_CategoryOfRows.gd
│ ├── CategoryOfColumns_as_Opposite_CategoryOfRows.gi
│ ├── CategoryOfGradedRowsAndColumns
│ │ ├── CategoryOfGradedColumns.gd
│ │ ├── CategoryOfGradedColumns.gi
│ │ ├── CategoryOfGradedRows.gd
│ │ ├── CategoryOfGradedRows.gi
│ │ ├── GradedRowOrColumn.gd
│ │ ├── GradedRowOrColumn.gi
│ │ ├── GradedRowOrColumnMorphism.gd
│ │ ├── GradedRowOrColumnMorphism.gi
│ │ ├── ToDo.txt
│ │ ├── Tools.gd
│ │ └── Tools.gi
│ ├── CategoryOfRows.autogen.gd
│ ├── CategoryOfRows.gd
│ ├── CategoryOfRows.gi
│ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory.gd
│ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory.gi
│ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory_CompilerLogic.gi
│ ├── CoFreydCategory.gd
│ ├── CoFreydCategory.gi
│ ├── CoFreydCategory_as_Opposite_FreydCategory_Opposite.gd
│ ├── CoFreydCategory_as_Opposite_FreydCategory_Opposite.gi
│ ├── CokernelImageClosure.gd
│ ├── CokernelImageClosure.gi
│ ├── FreydCategoriesDerivedMethods.gi
│ ├── FreydCategoriesForCAP.gd
│ ├── FreydCategoriesForCAP.gi
│ ├── FreydCategory.gd
│ ├── FreydCategory.gi
│ ├── GradeFiltration.gd
│ ├── GradeFiltration.gi
│ ├── GradedModulePresentationsByFreyd
│ │ ├── GradedModulePresentationsByFreyd.gd
│ │ ├── GradedModulePresentationsByFreyd.gi
│ │ └── ToDo.txt
│ ├── GroupsAsCats.gd
│ ├── GroupsAsCats.gi
│ ├── LinearClosure.gd
│ ├── LinearClosure.gi
│ ├── MethodRecordDeclarations.autogen.gd
│ ├── MethodRecordInstallations.autogen.gi
│ ├── ProSetsAsCats.gd
│ ├── ProSetsAsCats.gi
│ ├── Relations.gd
│ ├── Relations.gi
│ ├── RingsAsAbCats.gd
│ ├── RingsAsAbCats.gi
│ ├── SerreSubcategoryFunctions.gd
│ ├── SerreSubcategoryFunctions.gi
│ └── precompiled_categories
│ │ ├── CategoryOfColumns_as_Opposite_CategoryOfRows_ArbitraryRing_precompiled.gi
│ │ ├── CategoryOfColumns_as_Opposite_CategoryOfRows_CommutativeRing_precompiled.gi
│ │ ├── CategoryOfColumns_as_Opposite_CategoryOfRows_Field_precompiled.gi
│ │ ├── CategoryOfColumns_as_Opposite_CategoryOfRows_HomalgExteriorRingOverField_precompiled.gi
│ │ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory_ArbitraryRing_precompiled.gi
│ │ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory_CommutativeRing_precompiled.gi
│ │ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory_Field_precompiled.gi
│ │ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory_HomalgExteriorRingOverField_precompiled.gi
│ │ └── CoFreydCategory_as_Opposite_FreydCategory_Opposite_precompiled.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 050_load_with_suggested_dependencies.tst
│ ├── 100_LoadPackage.tst
│ ├── CategoryOfRows_as_AdditiveClosure_RingAsCategory.tst
│ ├── ClosedAndCoclosedRows.tst
│ ├── TensorCorrespondenceRowsAndOppositeOfRows.tst
│ ├── add_hom_structure_using_external_hom.tst
│ └── testall.g
├── GeneralizedMorphismsForCAP
├── .gitignore
├── LICENSE
├── LogicForGeneralizedMorphismCategory
│ └── PredicateImplicationsForGeneralizedMorphismCategory.tex
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── ArtinianModules.g
│ ├── Example.g
│ ├── FiniteZModules.g
│ ├── IntersectionCospan.g
│ ├── IntersectionSpan.g
│ ├── IntersectionThreeArrow.g
│ ├── IsSupportedInOrigin.g
│ ├── QuasiAffine.g
│ ├── SnakeInMatrixCategory.g
│ ├── SnakeLemmaTrondheim.g
│ ├── Sweep.g
│ ├── VectorSpacesGeneralizedMorphismsCategory.g
│ └── VectorSpacesIsWellDefined.g
├── gap
│ ├── GeneralizedMorphismCategory.gd
│ ├── GeneralizedMorphismCategory.gi
│ ├── GeneralizedMorphismCategoryByCospans.gd
│ ├── GeneralizedMorphismCategoryByCospans.gi
│ ├── GeneralizedMorphismCategoryBySpans.gd
│ ├── GeneralizedMorphismCategoryBySpans.gi
│ ├── GeneralizedMorphismCategoryByThreeArrows.gd
│ ├── GeneralizedMorphismCategoryByThreeArrows.gi
│ ├── GeneralizedMorphismCategoryFunctors.gd
│ ├── GeneralizedMorphismCategoryFunctors.gi
│ ├── SerreQuotientSubcategory.gd
│ ├── SerreQuotientSubcategory.gi
│ ├── SerreQuotients.gd
│ ├── SerreQuotients.gi
│ ├── SerreQuotientsByCospans.gd
│ ├── SerreQuotientsByCospans.gi
│ ├── SerreQuotientsBySpans.gd
│ ├── SerreQuotientsBySpans.gi
│ ├── SerreQuotientsByThreeArrows.gd
│ ├── SerreQuotientsByThreeArrows.gi
│ ├── SerreQuotientsFunctors.gd
│ ├── SerreQuotientsFunctors.gi
│ ├── Switcher.gd
│ └── Switcher.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── GradedModulePresentationsForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── CohP1.g
│ ├── g_lp_over_polynomial_ring.g
│ └── g_rp_over_polynomial_ring.g
├── gap
│ ├── GradedModuleFunctors.gd
│ ├── GradedModuleFunctors.gi
│ ├── GradedModulePresentationMorphism.gd
│ ├── GradedModulePresentationMorphism.gi
│ ├── GradedModulePresentationObjects.gd
│ ├── GradedModulePresentationObjects.gi
│ ├── GradedModulePresentations.gd
│ ├── GradedModulePresentations.gi
│ ├── LiftPresentationTransformation.gd
│ └── LiftPresentationTransformation.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── GroupRepresentationsForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── A4CategoryTest.g
│ ├── AssociatorComputation
│ │ ├── ComputeAssociatorS3.g
│ │ ├── ReadDec.g
│ │ ├── ReadReps.g
│ │ ├── S3Ass.g
│ │ ├── S3Dec.g
│ │ ├── S3Key.g
│ │ ├── S3Reps.g
│ │ └── WriteAssociator.g
│ ├── D8CategoryTest.g
│ ├── HM1000CategoryTest.g
│ ├── Q8CategoryTest.g
│ ├── S3CategoryTest.g
│ ├── S3ZGradedCategoryTest.g
│ ├── S4CategoryTest.g
│ ├── S5CategoryTest.g
│ ├── SemisimpleCategoryTest.g
│ ├── SemisimpleCategoryTestForGZGraded.g
│ └── doc
│ │ ├── Quickstart_Associator_D8.g
│ │ └── Quickstart_RepD8.g
├── gap
│ ├── AssociatorsDatabase
│ │ ├── 1Ass.g
│ │ ├── A4Ass.g
│ │ ├── A5
│ │ │ ├── A5Ass.g
│ │ │ ├── A5Dec.g
│ │ │ ├── A5Key.g
│ │ │ └── A5Reps.g
│ │ ├── D14AssD.g
│ │ ├── D8
│ │ │ ├── D8Ass.g
│ │ │ ├── D8Dec.g
│ │ │ ├── D8Key.g
│ │ │ ├── D8Reps.g
│ │ │ └── WriteD8.g
│ │ ├── DatabaseKeys.g
│ │ ├── HM1000AssD.g
│ │ ├── Q8
│ │ │ ├── Q8Ass.g
│ │ │ ├── Q8Dec.g
│ │ │ ├── Q8Key.g
│ │ │ ├── Q8Reps.g
│ │ │ └── WriteQ8.g
│ │ ├── S3Ass.g
│ │ ├── S4Ass.g
│ │ └── S5AssD.g
│ ├── AssociatorsForRepresentationCategoryOfGroup.gd
│ ├── AssociatorsForRepresentationCategoryOfGroup.gi
│ ├── GIrreducibleObjects.gd
│ ├── GIrreducibleObjects.gi
│ ├── GZGradedIrreducibleObjects.gd
│ ├── GZGradedIrreducibleObjects.gi
│ ├── RepresentationCategoryOfGroup.gd
│ ├── RepresentationCategoryOfGroup.gi
│ ├── SemisimpleCategory.gd
│ ├── SemisimpleCategory.gi
│ ├── SemisimpleCategoryMorphisms.gd
│ ├── SemisimpleCategoryMorphisms.gi
│ ├── SemisimpleCategoryObjects.gd
│ ├── SemisimpleCategoryObjects.gi
│ ├── Tools.gd
│ └── Tools.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── HomologicalAlgebraForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── BettiTableSpectralSequence.g
│ ├── Homology.g
│ ├── SnakeLemmaModules.g
│ ├── SpectralSequences.g
│ └── SpectralSequencesTest.g
├── gap
│ ├── HomologicalAlgebraAlgorithms.gd
│ └── HomologicalAlgebraAlgorithms.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── InternalExteriorAlgebraForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── HMCohomology.g
│ └── InternalExteriorAlgebraModulesTest.g
├── gap
│ ├── InternalExteriorAlgebraModules.gd
│ └── InternalExteriorAlgebraModules.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── Jenkinsfile
├── LinearAlgebraForCAP
├── .gitignore
├── LICENSE
├── LogicForMatrixCategory
│ └── PredicateImplicationsForMatrixCategory.tex
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── Example.g
│ ├── Functors.g
│ ├── HomologyObject.g
│ ├── Liftable.g
│ ├── LinearAlgebraMissingsOperations.g
│ ├── MatrixCategory.g
│ ├── MonoidalStructure.g
│ ├── MorphismToSink_MorphismFromSource.g
│ ├── OppositeCategory.g
│ ├── PreComposeList.g
│ ├── SplitEpiSummand.g
│ ├── VectorSpacesKernelTest.g
│ ├── VectorSpacesPullback.g
│ └── WrapperCategory.g
├── gap
│ ├── CompilerLogic.gi
│ ├── LinearAlgebraForCAP.gd
│ ├── LinearAlgebraForCAP.gi
│ ├── MatrixCategoryMorphism.gd
│ ├── MatrixCategoryMorphism.gi
│ ├── MatrixCategoryObject.gd
│ ├── MatrixCategoryObject.gi
│ ├── MatrixCategory_as_CategoryOfRows.gd
│ ├── MatrixCategory_as_CategoryOfRows.gi
│ └── precompiled_categories
│ │ ├── MatrixCategory_precompiled.gi
│ │ └── Opposite_MatrixCategory_precompiled.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ ├── 200_FreydCategoriesForCAP.tst
│ ├── ClosedAndCoclosedInMatrixCategory.tst
│ ├── TensorCorrespondenceMatrixCategoryAndOpposite.tst
│ ├── testall.g
│ └── testall_no_precompiled_code.g
├── Manual
├── .gitignore
├── Bibliography.bib
├── CAPManual.pdf
├── CAPManual.tex
├── Caching.tex
├── Constructions.tex
├── ConstructiveCategoryTheory.tex
├── GAP_code
│ ├── group_example
│ │ └── complete_example.g
│ └── vecspaces_example
│ │ └── complete_example.g
├── GAP_tex
│ ├── group_example
│ │ ├── AddGroup.g
│ │ ├── AddGroup.tex
│ │ ├── AddGroup_main.tex
│ │ ├── AddIdentityMorphism.g
│ │ ├── AddIdentityMorphism.tex
│ │ ├── AddIdentityMorphism_main.tex
│ │ ├── AddIsCongruentForMorphisms.g
│ │ ├── AddIsCongruentForMorphisms.tex
│ │ ├── AddIsCongruentForMorphisms_main.tex
│ │ ├── AddPreCompose.g
│ │ ├── AddPreCompose.tex
│ │ ├── AddPreCompose_main.tex
│ │ ├── AdditionalMorphism.g
│ │ ├── AdditionalMorphism.tex
│ │ ├── AdditionalMorphism_main.tex
│ │ ├── CreateCategory.g
│ │ ├── CreateCategory.tex
│ │ ├── CreateCategory_main.tex
│ │ ├── EnableAdd.g
│ │ ├── EnableAdd.tex
│ │ ├── EnableAdd_main.tex
│ │ ├── Finalize.g
│ │ ├── Finalize.tex
│ │ ├── Finalize_main.tex
│ │ ├── GroupFilter.g
│ │ ├── GroupFilter.tex
│ │ ├── GroupFilter_main.tex
│ │ ├── IdentityMorphism.g
│ │ ├── IdentityMorphism.tex
│ │ └── IdentityMorphism_main.tex
│ └── vecspaces_example
│ │ ├── ApplyDoubleFunctor.g
│ │ ├── ApplyDoubleFunctor.tex
│ │ ├── ApplyDoubleFunctor_main.tex
│ │ ├── Cokernel.tex
│ │ ├── CreateMorphisms.g
│ │ ├── CreateMorphisms.tex
│ │ ├── CreateMorphisms_main.tex
│ │ ├── Declarations.tex
│ │ ├── Declarations2.tex
│ │ ├── DerivedMethodsExample.g
│ │ ├── DerivedMethodsExample.tex
│ │ ├── DerivedMethodsExample_main.tex
│ │ ├── DirectSum.tex
│ │ ├── DoubleFunctor.tex
│ │ ├── Equalities.tex
│ │ ├── Finalize.tex
│ │ ├── Functions1.tex
│ │ ├── HomSets.tex
│ │ ├── IdentityFunctor.g
│ │ ├── IdentityFunctor.tex
│ │ ├── IdentityFunctor2.g
│ │ ├── IdentityFunctor2.tex
│ │ ├── IdentityFunctor2_main.tex
│ │ ├── IdentityFunctor_main.tex
│ │ ├── InstallFunctor.g
│ │ ├── InstallFunctor.tex
│ │ ├── InstallFunctor_main.tex
│ │ ├── IntersectionExample.g
│ │ ├── IntersectionExample.tex
│ │ ├── IntersectionExample_main.tex
│ │ ├── Kernel.tex
│ │ ├── KernelAlternative.gi
│ │ ├── KernelAlternative.tex
│ │ ├── KernelExample.g
│ │ ├── KernelExample.tex
│ │ ├── KernelExample_main.tex
│ │ ├── NaturalTrafo.tex
│ │ ├── NaturalTrafoApply.g
│ │ ├── NaturalTrafoApply.tex
│ │ ├── NaturalTrafoApply_main.tex
│ │ ├── QuadrupleFunctor.g
│ │ ├── QuadrupleFunctor.tex
│ │ ├── QuadrupleFunctor_main.tex
│ │ ├── SnakeLemma.g
│ │ ├── SnakeLemma.tex
│ │ ├── SnakeLemmaImplementation.tex
│ │ ├── SnakeLemma_main.tex
│ │ ├── View.tex
│ │ ├── ViewOperations.g
│ │ ├── ViewOperations.tex
│ │ ├── ViewOperations_main.tex
│ │ └── ZeroObject.tex
├── Index.tex
├── Introduction.tex
├── Logic.tex
├── README.md
├── Specifications.tex
├── Tutorial.tex
├── header.tex
├── myalpha.bst
└── pre.tex
├── ModulePresentationsForCAP
├── .gitignore
├── LICENSE
├── LogicForModulePresentations
│ ├── .gitignore
│ ├── LICENSE
│ ├── PredicateImplicationsForGeneralModuleCategories.tex
│ ├── PropositionsForGeneralModuleCategories.tex
│ └── RelationsForGeneralModuleCategories.tex
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── Annihilator.g
│ ├── Gabriel_Purity_Paper.g
│ ├── IntersectionOfIdeals.g
│ ├── Koszul.g
│ ├── MatricesGrowthTest.g
│ ├── ModulePresentationsMonoidalCategory.g
│ ├── MonoidalStructure.g
│ ├── MorphismBetweenDirectSums.g
│ ├── ProjectivityTest.g
│ ├── Purity.g
│ ├── Resolution.g
│ ├── SpectralSequenceTest.g
│ └── testfile.g
├── gap
│ ├── ModulePresentationFunctors.gd
│ ├── ModulePresentationFunctors.gi
│ ├── ModulePresentationMorphism.gd
│ ├── ModulePresentationMorphism.gi
│ ├── ModulePresentationNaturalTransformations.gd
│ ├── ModulePresentationNaturalTransformations.gi
│ ├── ModulePresentationObject.gd
│ ├── ModulePresentationObject.gi
│ ├── ModulePresentationsForCAP.gd
│ ├── ModulePresentationsForCAP.gi
│ ├── ModulePresentations_as_FreydCategory_CategoryOfRowsOrColumns.gd
│ ├── ModulePresentations_as_FreydCategory_CategoryOfRowsOrColumns.gi
│ ├── Tools.gd
│ ├── Tools.gi
│ └── precompiled_categories
│ │ ├── LeftPresentations_as_FreydCategory_CategoryOfRows_ArbitraryRing_precompiled.gi
│ │ ├── LeftPresentations_as_FreydCategory_CategoryOfRows_CommutativeRing_precompiled.gi
│ │ ├── LeftPresentations_as_FreydCategory_CategoryOfRows_Field_precompiled.gi
│ │ ├── RightPresentations_as_FreydCategory_CategoryOfColumns_ArbitraryRing_precompiled.gi
│ │ ├── RightPresentations_as_FreydCategory_CategoryOfColumns_CommutativeRing_precompiled.gi
│ │ └── RightPresentations_as_FreydCategory_CategoryOfColumns_Field_precompiled.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ ├── basic.tst
│ └── testall.g
├── ModulesOverLocalRingsForCAP
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── BasisOfRowModule.g
│ ├── Category.g
│ ├── ComplexTask.g
│ ├── General.g
│ ├── IntersectionFormula.g
│ ├── IntersectionFormulaHartshorne.g
│ ├── NonMaximalIdeal.g
│ ├── Regular.g
│ └── homalgTest.g
├── gap
│ ├── Functors.gd
│ ├── Functors.gi
│ ├── GaussForQuotientField.gd
│ ├── GaussForQuotientField.gi
│ ├── ModulesOverLocalRingsForCAP.gd
│ ├── ModulesOverLocalRingsForCAP.gi
│ ├── Morphisms.gd
│ ├── Morphisms.gi
│ ├── NaturalTransformations.gd
│ ├── NaturalTransformations.gi
│ ├── Objects.gd
│ └── Objects.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── MonoidalCategories
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ └── .gitkeep
├── gap
│ ├── AdditiveMonoidalCategories.gd
│ ├── AdditiveMonoidalCategories.gi
│ ├── AdditiveMonoidalCategoriesDerivedMethods.gi
│ ├── AdditiveMonoidalCategoriesMethodRecord.gi
│ ├── AdditiveMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── AdditiveMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── AdditiveMonoidalCategoriesTest.gd
│ ├── AdditiveMonoidalCategoriesTest.gi
│ ├── BraidedMonoidalCategories.gd
│ ├── BraidedMonoidalCategories.gi
│ ├── BraidedMonoidalCategoriesDerivedMethods.gi
│ ├── BraidedMonoidalCategoriesMethodRecord.gi
│ ├── BraidedMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── BraidedMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── BraidedMonoidalCategoriesProperties.gd
│ ├── BraidedMonoidalCategoriesProperties.gi
│ ├── BraidedMonoidalCategoriesTest.gd
│ ├── BraidedMonoidalCategoriesTest.gi
│ ├── ClosedMonoidalCategories.gd
│ ├── ClosedMonoidalCategories.gi
│ ├── ClosedMonoidalCategoriesDerivedMethods.gi
│ ├── ClosedMonoidalCategoriesDerivedMethods_extra.gi
│ ├── ClosedMonoidalCategoriesMethodRecord.gi
│ ├── ClosedMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── ClosedMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── ClosedMonoidalCategoriesProperties.gd
│ ├── ClosedMonoidalCategoriesProperties.gi
│ ├── ClosedMonoidalCategoriesTest.gd
│ ├── ClosedMonoidalCategoriesTest.gi
│ ├── ClosedMonoidalCategoriesTestWithGiven.gd
│ ├── ClosedMonoidalCategoriesTestWithGiven.gi
│ ├── CoclosedMonoidalCategories.gd
│ ├── CoclosedMonoidalCategories.gi
│ ├── CoclosedMonoidalCategoriesDerivedMethods.gi
│ ├── CoclosedMonoidalCategoriesMethodRecord.gi
│ ├── CoclosedMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── CoclosedMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── CoclosedMonoidalCategoriesProperties.gd
│ ├── CoclosedMonoidalCategoriesProperties.gi
│ ├── CoclosedMonoidalCategoriesTest.gd
│ ├── CoclosedMonoidalCategoriesTest.gi
│ ├── CoclosedMonoidalCategoriesTestWithGiven.gd
│ ├── CoclosedMonoidalCategoriesTestWithGiven.gi
│ ├── CreateClosedMonoidalCategories.gd
│ ├── CreateClosedMonoidalCategories.gi
│ ├── CreateCoclosedMonoidalCategories.gd
│ ├── CreateCoclosedMonoidalCategories.gi
│ ├── CreateLeftClosedMonoidalCategories.gd
│ ├── CreateLeftClosedMonoidalCategories.gi
│ ├── CreateLeftCoclosedMonoidalCategories.gd
│ ├── CreateLeftCoclosedMonoidalCategories.gi
│ ├── CreateMonoidalCategories.gd
│ ├── CreateMonoidalCategories.gi
│ ├── HomomorphismStructureDerivedMethods.gi
│ ├── LeftClosedMonoidalCategories.gd
│ ├── LeftClosedMonoidalCategories.gi
│ ├── LeftClosedMonoidalCategoriesDerivedMethods.gi
│ ├── LeftClosedMonoidalCategoriesMethodRecord.gi
│ ├── LeftClosedMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── LeftClosedMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── LeftClosedMonoidalCategoriesProperties.gd
│ ├── LeftClosedMonoidalCategoriesProperties.gi
│ ├── LeftClosedMonoidalCategoriesTest.gd
│ ├── LeftClosedMonoidalCategoriesTest.gi
│ ├── LeftClosedMonoidalCategoriesTestWithGiven.gd
│ ├── LeftClosedMonoidalCategoriesTestWithGiven.gi
│ ├── LeftCoclosedMonoidalCategories.gd
│ ├── LeftCoclosedMonoidalCategories.gi
│ ├── LeftCoclosedMonoidalCategoriesDerivedMethods.gi
│ ├── LeftCoclosedMonoidalCategoriesMethodRecord.gi
│ ├── LeftCoclosedMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── LeftCoclosedMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── LeftCoclosedMonoidalCategoriesProperties.gd
│ ├── LeftCoclosedMonoidalCategoriesProperties.gi
│ ├── LeftCoclosedMonoidalCategoriesTest.gd
│ ├── LeftCoclosedMonoidalCategoriesTest.gi
│ ├── LeftCoclosedMonoidalCategoriesTestWithGiven.gd
│ ├── LeftCoclosedMonoidalCategoriesTestWithGiven.gi
│ ├── MonoidalCategories.gd
│ ├── MonoidalCategories.gi
│ ├── MonoidalCategoriesDerivedMethods.gi
│ ├── MonoidalCategoriesMethodRecord.gi
│ ├── MonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── MonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── MonoidalCategoriesProperties.gd
│ ├── MonoidalCategoriesTensorProductOnObjectsAndTensorUnit.gd
│ ├── MonoidalCategoriesTensorProductOnObjectsAndTensorUnit.gi
│ ├── MonoidalCategoriesTensorProductOnObjectsAndTensorUnitMethodRecord.gi
│ ├── MonoidalCategoriesTensorProductOnObjectsAndTensorUnitMethodRecordDeclarations.autogen.gd
│ ├── MonoidalCategoriesTensorProductOnObjectsAndTensorUnitMethodRecordInstallations.autogen.gi
│ ├── MonoidalCategoriesTensorProductOnObjectsAndTensorUnitTest.gd
│ ├── MonoidalCategoriesTensorProductOnObjectsAndTensorUnitTest.gi
│ ├── MonoidalCategoriesTest.gd
│ ├── MonoidalCategoriesTest.gi
│ ├── RigidSymmetricClosedMonoidalCategories.gd
│ ├── RigidSymmetricClosedMonoidalCategories.gi
│ ├── RigidSymmetricClosedMonoidalCategoriesDerivedMethods.gi
│ ├── RigidSymmetricClosedMonoidalCategoriesMethodRecord.gi
│ ├── RigidSymmetricClosedMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── RigidSymmetricClosedMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── RigidSymmetricClosedMonoidalCategoriesProperties.gd
│ ├── RigidSymmetricClosedMonoidalCategoriesProperties.gi
│ ├── RigidSymmetricClosedMonoidalCategoriesTest.gd
│ ├── RigidSymmetricClosedMonoidalCategoriesTest.gi
│ ├── RigidSymmetricCoclosedMonoidalCategories.gd
│ ├── RigidSymmetricCoclosedMonoidalCategories.gi
│ ├── RigidSymmetricCoclosedMonoidalCategoriesDerivedMethods.gi
│ ├── RigidSymmetricCoclosedMonoidalCategoriesMethodRecord.gi
│ ├── RigidSymmetricCoclosedMonoidalCategoriesMethodRecordDeclarations.autogen.gd
│ ├── RigidSymmetricCoclosedMonoidalCategoriesMethodRecordInstallations.autogen.gi
│ ├── RigidSymmetricCoclosedMonoidalCategoriesProperties.gd
│ ├── RigidSymmetricCoclosedMonoidalCategoriesProperties.gi
│ ├── RigidSymmetricCoclosedMonoidalCategoriesTest.gd
│ ├── RigidSymmetricCoclosedMonoidalCategoriesTest.gi
│ ├── SymmetricClosedMonoidalCategoriesDerivedMethods.gi
│ ├── SymmetricClosedMonoidalCategoriesProperties.gd
│ ├── SymmetricClosedMonoidalCategoriesProperties.gi
│ ├── SymmetricCoclosedMonoidalCategoriesDerivedMethods.gi
│ ├── SymmetricCoclosedMonoidalCategoriesProperties.gd
│ ├── SymmetricCoclosedMonoidalCategoriesProperties.gi
│ ├── SymmetricMonoidalCategoriesDerivedMethods.gi
│ ├── SymmetricMonoidalCategoriesProperties.gd
│ ├── SymmetricMonoidalCategoriesProperties.gi
│ ├── Synonyms.gd
│ └── Synonyms.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ ├── TerminalCategoryMonoidal.tst
│ ├── TerminalCategoryMonoidalLeft.tst
│ └── testall.g
├── README.md
├── ToricSheaves
├── .gitignore
├── LICENSE
├── PackageInfo.g
├── README.md
├── doc
│ ├── Doc.autodoc
│ └── clean
├── examples
│ ├── Gabriel_Purity_Paper_Sheaves.g
│ ├── Hirzebruch7.gi
│ └── WeightedProjectiveSpace.gi
├── gap
│ ├── CoverByLocallyFreeObject.gd
│ ├── CoverByLocallyFreeObject.gi
│ ├── GlobalSectionFunctors.gd
│ ├── GlobalSectionFunctors.gi
│ ├── ToricSheaves.gd
│ ├── ToricSheaves.gi
│ ├── ToricSheavesForToricVarieties.gd
│ ├── ToricSheavesForToricVarieties.gi
│ └── ZeroPartOfModule.gi
├── init.g
├── makedoc.g
├── makedoc_with_overfull_hbox_warnings.g
├── makefile
├── read.g
└── tst
│ ├── 100_LoadPackage.tst
│ └── testall.g
├── dev
├── .release
├── ci_gaprc
├── codecov.yml
├── make_dist.sh
├── process_coverage.py
├── release-gap-package
├── simulate_dist.sh
└── upload_codecov.sh
└── makefile
/.gitignore:
--------------------------------------------------------------------------------
1 | tmp/
2 | gh-pages
3 | *swp
4 | DISCUSS
5 | *~
6 | # git-ls-files --others --exclude-from=.git/info/exclude
7 | # Lines that start with '#' are comments.
8 | # For a project mostly in C, the following would be a good set of
9 | # exclude patterns (uncomment them if you want to use them):
10 | # *.[oa]
11 | *~
12 | bin
13 | change.log
14 | VERSION
15 | public_html
16 | public_html.version
17 | */doc/manual.six
18 | */doc/*.pdf
19 | */doc/*.html
20 | */doc/*.txt
21 | */doc/*.css
22 | */doc/*.js
23 | */doc/*Bib.xml
24 | */doc/*Bib.xml.bib
25 | */doc/*.aux
26 | */doc/*.bbl
27 | */doc/*.blg
28 | */doc/*.brf
29 | */doc/*.idx
30 | */doc/*.ilg
31 | */doc/*.ind
32 | */doc/*.log
33 | */doc/*.pnr
34 | */doc/*.tex
35 | */doc/*.toc
36 | */doc/*.out
37 | */doc/manual.lab
38 | *.DS_Store
39 | doc/*.xml
40 | */doc/*.xml
41 | maketest.g
42 | parsertest.g
43 | judgement_test
44 |
45 | stats
46 | coverage.json
47 |
--------------------------------------------------------------------------------
/ActionsForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/actionsforcap*.tst
35 |
--------------------------------------------------------------------------------
/ActionsForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Actions
2 | @Chapter Coactions
3 | @Chapter G-Irreducible Objects
4 | @Chapter G-Z-Graded Irreducible Objects
5 | @Chapter Internal Exterior Algebra Modules
6 | @Chapter Semisimple Categories
7 | @Chapter Representation Category of Groups
8 | @Chapter Associators
9 |
--------------------------------------------------------------------------------
/ActionsForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/ActionsForCAP/examples/ActionsTest.g:
--------------------------------------------------------------------------------
1 | #! @Chapter Examples and tests
2 |
3 | #! @Section Tests
4 |
5 | #! @Example
6 |
7 | LoadPackage( "ActionsForCAP", false );
8 | #! true
9 | LoadPackage( "LinearAlgebraForCAP", false );
10 | #! true
11 |
12 | Q := HomalgFieldOfRationals();;
13 | vec := MatrixCategory( Q );;
14 | u := TensorUnit( vec );;
15 | cat := LeftActionsCategory( u );
16 | #! Category of left actions of
17 | V := MatrixCategoryObject( vec, 2 );
18 | #!
19 | alpha := VectorSpaceMorphism( TensorProductOnObjects( u, V ), HomalgMatrix( [ [ 0, 1 ], [ -1, 0 ] ], 2, 2, Q ), V );
20 | #!
21 |
22 | #! @EndExample
23 |
--------------------------------------------------------------------------------
/ActionsForCAP/examples/ActionsTest2.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "ActionsForCAP" );
2 |
3 | LoadPackage( "LinearAlgebraForCAP" );
4 |
5 | Q := HomalgFieldOfRationals( );
6 |
7 | category := MatrixCategory( Q );
8 |
9 | u := TensorUnit( category );
10 |
11 | a := VectorSpaceObject( 2, Q );
12 |
13 | structure_morphism := VectorSpaceMorphism( TensorProductOnObjects( u, a ),
14 | HomalgMatrix( [ [ 0, 1 ], [ -1, 0 ] ], 2, 2, Q ),
15 | a );
16 |
17 | act_a := LeftActionObject( structure_morphism, u );
18 |
19 | coact_a := RightCoactionObject( (-1) * RightUnitorInverse( a ), u );
20 |
21 | mor_1 := ActionMorphism( act_a, IdentityMorphism( a ), act_a );
22 |
--------------------------------------------------------------------------------
/ActionsForCAP/init.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ActionsForCAP: Actions and Coactions for CAP
3 | #
4 | # Reading the declaration part of the package.
5 | #
6 | ReadPackage( "ActionsForCAP", "gap/ActionsCategory.gd" );
7 |
8 | ReadPackage( "ActionsForCAP", "gap/CoactionsCategory.gd" );
9 |
10 | ReadPackage( "ActionsForCAP", "gap/ActionObjects.gd" );
11 |
12 | ReadPackage( "ActionsForCAP", "gap/CoactionObjects.gd" );
13 |
14 | ReadPackage( "ActionsForCAP", "gap/ActionMorphisms.gd" );
15 |
16 | ReadPackage( "ActionsForCAP", "gap/CoactionMorphisms.gd" );
17 |
--------------------------------------------------------------------------------
/ActionsForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ActionsForCAP: Actions and Coactions for CAP
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/ActionsForCAP/read.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ActionsForCAP: Actions and Coactions for CAP
3 | #
4 | # Reading the implementation part of the package.
5 | #
6 | ReadPackage( "ActionsForCAP", "gap/ActionObjects.gi" );
7 |
8 | ReadPackage( "ActionsForCAP", "gap/CoactionObjects.gi" );
9 |
10 | ReadPackage( "ActionsForCAP", "gap/ActionMorphisms.gi" );
11 |
12 | ReadPackage( "ActionsForCAP", "gap/CoactionMorphisms.gi" );
13 |
14 | ReadPackage( "ActionsForCAP", "gap/ActionsCategory.gi" );
15 |
16 | ReadPackage( "ActionsForCAP", "gap/CoactionsCategory.gi" );
17 |
--------------------------------------------------------------------------------
/ActionsForCAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ActionsForCAP: Actions and Coactions for CAP
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "ActionsForCAP", false );
11 | true
12 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
13 | gap> LoadPackage( "ActionsForCAP" );
14 | true
15 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
16 |
--------------------------------------------------------------------------------
/AttributeCategoryForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/attributecategoryforcap*.tst
35 |
--------------------------------------------------------------------------------
/AttributeCategoryForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Attribute Category
2 |
--------------------------------------------------------------------------------
/AttributeCategoryForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/AttributeCategoryForCAP/init.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # AttributeCategoryForCAP: Automatic enhancement with attributes of a CAP category
3 | #
4 | # Reading the declaration part of the package.
5 | #
6 |
7 | ReadPackage( "AttributeCategoryForCAP", "gap/AttributeCategory.gd" );
8 |
--------------------------------------------------------------------------------
/AttributeCategoryForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # AttributeCategoryForCAP: Automatic enhancement with attributes of a CAP category
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/AttributeCategoryForCAP/read.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # AttributeCategoryForCAP: Automatic enhancement with attributes of a CAP category
3 | #
4 | # Reading the implementation part of the package.
5 | #
6 | ReadPackage( "AttributeCategoryForCAP", "gap/AttributeCategory.gi" );
7 |
--------------------------------------------------------------------------------
/AttributeCategoryForCAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # AttributeCategoryForCAP: Automatic enhancement with attributes of a CAP category
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "AttributeCategoryForCAP", false );
11 | true
12 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
13 | gap> LoadPackage( "AttributeCategoryForCAP" );
14 | true
15 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
16 |
--------------------------------------------------------------------------------
/CAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/cap*.tst
35 |
--------------------------------------------------------------------------------
/CAP/IDEAS:
--------------------------------------------------------------------------------
1 | Constructor: Give categories for objects and morphisms to category.
2 | Install filters for containment in category.
3 | Install AddToCategory, which can add an object to a category and sets the filter to true.
4 |
5 |
6 |
7 | TODO REIMER:
8 | Why is there a possibility to add an identity morphism without declaring it?
9 |
10 | TODO:
11 | * Add caching to methods
12 | * Add generic display methods
13 |
14 | ToDo:
15 | * Gruppenkategorie, additive Kategorie.
16 | * Kategorie muss lernen.
17 | * Verallgemeinerte Morphismen Kategorie.
18 |
19 | Bugs:
20 | * Add( Category, object ) muss derzeit im Konstruktor aufgerufen werden (z.B bei QVectorSpace), da sonst
21 | die generic Print Methoden einen Fehler werfen (HomalgCategory nicht bekannt)
22 | * FullView: is direct sum -> was created as direct sum (ebenso: direct product, cokernel, kernel)
23 |
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PredicateImplicationsForAbCategories.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/PredicateImplicationsForAbCategories.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PredicateImplicationsForAbelianCategories.tex:
--------------------------------------------------------------------------------
1 | \begin{sequent}
2 | \begin{align*}
3 | \alpha: \Mor ~|~ \IsMonomorphism( \alpha ), \IsEpimorphism( \alpha ) \vdash \IsIsomorphism( \alpha )
4 | \end{align*}
5 | \end{sequent}
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PredicateImplicationsForAdditiveCategories.tex:
--------------------------------------------------------------------------------
1 | \begin{sequent}
2 | \begin{align*}
3 | A:\Obj ~|~ \IsTerminal( A ) \vdash \IsZeroForObjects( A )
4 | \end{align*}
5 | \end{sequent}
6 |
7 | \begin{sequent}
8 | \begin{align*}
9 | A:\Obj ~|~ \IsInitial( A ) \vdash \IsZeroForObjects( A )
10 | \end{align*}
11 | \end{sequent}
12 |
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PredicateImplicationsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/PredicateImplicationsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PredicateImplicationsForPreabelianCategories.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/PredicateImplicationsForPreabelianCategories.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PropositionsForAdditiveCategories.tex:
--------------------------------------------------------------------------------
1 | \begin{sequent}
2 | \begin{align*}
3 | a: \Obj ~|~ \IsZeroForObjects \big( a \big) \vdash \IsZeroForMorphisms \big( \IdentityMorphism( a ) \big)
4 | \end{align*}
5 | \end{sequent}
6 |
7 | \begin{sequent}
8 | \begin{align*}
9 | a: \Obj, b: \Obj ~|~ \IsZeroForObjects \big( a \big), \IsZeroForObjects \big( b \big) \\
10 | \vdash & \IsZeroForObjects \big( \DirectSum( [ a, b ] ) \big)
11 | \end{align*}
12 | \end{sequent}
13 |
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PropositionsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/PropositionsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/PropositionsForPreabelianCategories.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/PropositionsForPreabelianCategories.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/RelationsForAbCategories.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/RelationsForAbCategories.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/RelationsForAbelianCategories.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/RelationsForAbelianCategories.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/RelationsForAdditiveCategories.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/RelationsForAdditiveCategories.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/RelationsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/RelationsForCategoriesEnrichedOverCommutativeRegularSemigroups.tex
--------------------------------------------------------------------------------
/CAP/LogicForCategories/RelationsForPreabelianCategories.tex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/CAP/LogicForCategories/RelationsForPreabelianCategories.tex
--------------------------------------------------------------------------------
/CAP/TODO:
--------------------------------------------------------------------------------
1 | * Dokumentation
2 | * Tests
3 | - Abgeleitete Algorithmen testen
4 |
5 | Technik:
6 | * Trace auf Product -> Gutsche
7 | * Maintain ToDo List in Opposite.gi
8 |
9 | ToDo:
10 | * Komplexe -> Gutsche
11 | * Cokomplexe -> Gutsche -> QPA
12 | * Serre-Quotienten
13 |
14 |
15 | Fehlt:
16 | * GeneralizedMorphisms
17 | - Propagation:
18 | + Honest und Mono/Epi => Splitmono/Splitepi
19 |
20 | Cleanup:
21 | * FiberProduct/ Pushout derivation without FiberProductAsKernelDiagram/PushoutAsCokernelObjectDiagram
22 | * higher methods and convenient methods must not use *WithGiven*
23 |
24 | Neue Kategorien
25 | * Spektralsequenzen
26 |
--------------------------------------------------------------------------------
/CAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter CAP Categories
2 |
3 | @Chapter Objects
4 |
5 | @Chapter Morphisms
6 |
7 | @Chapter Category 2-Cells
8 |
9 | @Chapter Category of Categories
10 |
11 | @Chapter Universal Objects
12 |
13 | @Chapter Add Functions
14 |
15 | @Chapter Managing Derived Methods
16 |
17 | @Chapter Technical Details
18 |
19 | @Chapter Limits and Colimits
20 |
21 | @Chapter The Category Constructor
22 |
23 | @Chapter Reinterpretations of categories
24 |
25 | @Chapter Create wrapper hulls of a category
26 |
27 | @Chapter Dummy implementations
28 |
29 | @Chapter Examples and Tests
30 |
--------------------------------------------------------------------------------
/CAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/CAP/examples/CacheTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "CAP" );
2 | LoadPackage( "AutoDoc" );
3 | T := DocumentationTree( );
4 | xx := CachingObject( );
5 | SetCacheValue( xx, [ T ], T );
6 | SetCacheValue( xx, [ T ], T );
7 |
--------------------------------------------------------------------------------
/CAP/examples/DummyCategory.g:
--------------------------------------------------------------------------------
1 | #! @Chapter Examples and Tests
2 |
3 | #! @Section Dummy implementations
4 |
5 | #! @Subsection Dummy categories
6 |
7 | #! @Example
8 |
9 | LoadPackage( "CAP", false );
10 | #! true
11 |
12 | list_of_operations_to_install := [
13 | "ObjectConstructor",
14 | "MorphismConstructor",
15 | "ObjectDatum",
16 | "MorphismDatum",
17 | "IsCongruentForMorphisms",
18 | "PreCompose",
19 | "IdentityMorphism",
20 | "DirectSum",
21 | ];;
22 |
23 | dummy := DummyCategory( rec(
24 | list_of_operations_to_install := list_of_operations_to_install,
25 | properties := [ "IsAdditiveCategory" ],
26 | ) );;
27 |
28 | ForAll( list_of_operations_to_install, o -> CanCompute( dummy, o ) );
29 | #! true
30 | IsAdditiveCategory( dummy );
31 | #! true
32 |
33 | #! @EndExample
34 |
--------------------------------------------------------------------------------
/CAP/examples/dummy_rings.g:
--------------------------------------------------------------------------------
1 | #! @Chapter Examples and Tests
2 |
3 | #! @Section Dummy implementations
4 |
5 | #! @Subsection Dummy rings
6 |
7 | #! @Example
8 |
9 | LoadPackage( "CAP", false );
10 | #! true
11 |
12 | DummyRing( );
13 | #! Dummy ring 1
14 | DummyRing( );
15 | #! Dummy ring 2
16 | IsRing( DummyRing( ) );
17 | #! true
18 |
19 | DummyCommutativeRing( );
20 | #! Dummy commutative ring 1
21 | DummyCommutativeRing( );
22 | #! Dummy commutative ring 2
23 | IsRing( DummyCommutativeRing( ) );
24 | #! true
25 | IsCommutative( DummyCommutativeRing( ) );
26 | #! true
27 |
28 | DummyField( );
29 | #! Dummy field 1
30 | DummyField( );
31 | #! Dummy field 2
32 | IsRing( DummyField( ) );
33 | #! true
34 | IsField( DummyField( ) );
35 | #! true
36 |
37 | #! @EndExample
38 |
--------------------------------------------------------------------------------
/CAP/gap/CategoryTwoCellsOperations.gi:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # Implementations
5 | #
6 |
7 | ###########################
8 | ##
9 | ## IsWellDefined
10 | ##
11 | ###########################
12 |
13 | ##
14 | InstallMethod( IsWellDefined,
15 | [ IsCapCategoryTwoCell ],
16 |
17 | IsWellDefinedForTwoCells
18 | );
19 |
20 |
--------------------------------------------------------------------------------
/CAP/gap/ConstructiveCategoriesRecord.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # Declarations
5 | #
6 | DeclareGlobalVariable( "CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD" );
7 |
--------------------------------------------------------------------------------
/CAP/gap/Finalize.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Finalize
7 |
8 | DeclareAttribute( "IsFinalized",
9 | IsCapCategory,
10 | "mutable" );
11 |
12 | DeclareOperation( "Finalize",
13 | [ IsCapCategory ] );
14 |
15 |
--------------------------------------------------------------------------------
/CAP/gap/InstallAdds.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Chapter Add Functions
8 |
9 | #! @Section InstallAdd Function
10 |
11 | DeclareOperation( "AddCapOperation", [ IsString, IsCapCategory, IsFunction, IsInt ] );
12 |
13 | DeclareGlobalFunction( "CAP_INTERNAL_INSTALL_ADDS_FROM_RECORD" );
14 |
--------------------------------------------------------------------------------
/CAP/gap/LimitConvenience.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Chapter Limits and Colimits
8 |
9 | #! @Section Functions
10 |
11 | #! @Description
12 | #! This function takes a package name, a method name record and a list of enhanced limits,
13 | #! and generates convenience methods for the limits as a string of GAP code.
14 | #! The result is compared to the content of the file package_name`/gap/LimitConvenienceOutput.gi`.
15 | #! If a difference is found, a warning is raised and the generated string is written to a temporary file for manual inspection.
16 | #! @Arguments package_name, method_name_record, limits
17 | DeclareGlobalFunction( "CAP_INTERNAL_GENERATE_CONVENIENCE_METHODS_FOR_LIMITS" );
18 |
--------------------------------------------------------------------------------
/CAP/gap/PrintingFunctions.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Pretty print methods
7 |
8 | DeclareGlobalFunction( "InfoStringOfInstalledOperationsOfCategory" );
9 |
10 | DeclareGlobalFunction( "InfoOfInstalledOperationsOfCategory" );
11 |
--------------------------------------------------------------------------------
/CAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | \usepackage{tikz}
24 | \usetikzlibrary{arrows}
25 | \pgfarrowsdeclarecombine{twohead}{twohead}{latex}{latex}{latex}{latex}
26 | """,
27 | ),
28 | ),
29 | scaffold := rec(
30 | entities := [ "homalg", "CAP" ],
31 | ),
32 | ) );
33 |
34 | QUIT;
35 |
--------------------------------------------------------------------------------
/CAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CAP: Categories, Algorithms, Programming
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "ModulePresentationsForCAP", false );
11 | true
12 | gap> LoadPackage( "CAP", false );
13 | true
14 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
15 | gap> LoadPackage( "ModulePresentationsForCAP" );
16 | true
17 | gap> LoadPackage( "CAP" );
18 | true
19 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
20 |
--------------------------------------------------------------------------------
/CartesianCategories/.codecov.yml:
--------------------------------------------------------------------------------
1 | codecov:
2 | disable_default_path_fixes: true
3 | require_ci_to_pass: false
4 | fixes:
5 | - "/home/gap/.gap/pkg/CartesianCategories/::"
6 | ignore:
7 | - "home/"
8 |
--------------------------------------------------------------------------------
/CartesianCategories/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/cartesiancategories*.tst
35 |
--------------------------------------------------------------------------------
/CartesianCategories/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/CartesianCategories/examples/InfoStringOfInstalledOperationsOfCategory.g:
--------------------------------------------------------------------------------
1 | #! @Chapter Examples and Tests
2 |
3 | #! @Section InfoOfInstalledOperationsOfCategory
4 |
5 | #! @Example
6 |
7 | LoadPackage( "CartesianCategories", false );
8 | #! true
9 |
10 | distributive := DummyCategory( rec(
11 | list_of_operations_to_install :=
12 | ListOfDefiningOperations( "IsBicartesianClosedCategory" ),
13 | properties := [ "IsBicartesianClosedCategory", "IsSkeletalCategory" ] ) );;
14 |
15 | InfoOfInstalledOperationsOfCategory( distributive );
16 | #! 21 primitive operations were used to derive 121 operations for this category \
17 | #! which algorithmically
18 | #! * IsBicartesianClosedCategory
19 | #! and not yet algorithmically
20 | #! * IsDistributiveCategory
21 | #! and furthermore mathematically
22 | #! * IsSkeletalCategory
23 |
24 | #! @EndExample
25 |
--------------------------------------------------------------------------------
/CartesianCategories/examples/InitialCategory.g:
--------------------------------------------------------------------------------
1 | #! @Chunk InitialCategory
2 |
3 | LoadPackage( "CartesianCategories" );
4 |
5 | #! @Example
6 | I := InitialCategory( );
7 | #! InitialCategory( )
8 | IsInitialCategory( I );
9 | #! true
10 | Display( I );
11 | #! A CAP category with name InitialCategory( ):
12 | #!
13 | #! 5 primitive operations were used to derive 13 operations for this category \
14 | #! which not yet algorithmically
15 | #! * IsEquippedWithHomomorphismStructure
16 | #! and furthermore mathematically
17 | #! * IsInitialCategory
18 | OI := Opposite( I );
19 | #! Opposite( InitialCategory( ) )
20 | IsInitialCategory( OI );
21 | #! true
22 | Display( OI );
23 | #! A CAP category with name Opposite( InitialCategory( ) ):
24 | #!
25 | #! 17 primitive operations were used to derive 17 operations for this category \
26 | #! which not yet algorithmically
27 | #! * IsEquippedWithHomomorphismStructure
28 | #! and furthermore mathematically
29 | #! * IsInitialCategory
30 | #! @EndExample
31 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/AUTOGENERATED_FROM.md:
--------------------------------------------------------------------------------
1 | The files of this package which include the line `THIS FILE WAS AUTOMATICALLY GENERATED` in their header have been autogenerated
2 |
3 | * from MonoidalCategories v2025.03-02
4 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/CartesianCategoriesProperties.gi:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Implementations
5 | #
6 |
7 | InstallTrueMethod( IsCategoryWithTerminalObject, IsCartesianCategory );
8 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/CartesianClosedCategoriesProperties.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Description
8 | #! The property of the category C being cartesian closed.
9 | #! @Arguments C
10 | DeclareProperty( "IsCartesianClosedCategory", IsCapCategory );
11 |
12 | AddCategoricalProperty( [ "IsCartesianClosedCategory", "IsCocartesianCoclosedCategory" ] );
13 |
14 | #! @Description
15 | #! The property of the category C being bicartesian closed.
16 | #! @Arguments C
17 | DeclareProperty( "IsBicartesianClosedCategory", IsCapCategory );
18 |
19 | AddCategoricalProperty( [ "IsBicartesianClosedCategory", "IsBicartesianCoclosedCategory" ] );
20 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/CartesianClosedCategoriesProperties.gi:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Implementations
5 | #
6 | # THIS FILE WAS AUTOMATICALLY GENERATED
7 |
8 |
9 |
10 | InstallTrueMethod( IsCartesianCategory, IsCartesianClosedCategory );
11 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/CocartesianCategoriesProperties.gi:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Implementations
5 | #
6 |
7 | InstallTrueMethod( IsCategoryWithInitialObject, IsCocartesianCategory );
8 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/CocartesianCoclosedCategoriesProperties.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Description
8 | #! The property of the category C being cocartesian coclosed.
9 | #! @Arguments C
10 | DeclareProperty( "IsCocartesianCoclosedCategory", IsCapCategory );
11 |
12 | AddCategoricalProperty( [ "IsCocartesianCoclosedCategory", "IsCartesianClosedCategory" ] );
13 |
14 | #! @Description
15 | #! The property of the category C being bicartesian coclosed.
16 | #! @Arguments C
17 | DeclareProperty( "IsBicartesianCoclosedCategory", IsCapCategory );
18 |
19 | AddCategoricalProperty( [ "IsBicartesianCoclosedCategory", "IsBicartesianClosedCategory" ] );
20 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/CocartesianCoclosedCategoriesProperties.gi:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Implementations
5 | #
6 | # THIS FILE WAS AUTOMATICALLY GENERATED
7 |
8 |
9 |
10 | InstallTrueMethod( IsCocartesianCategory, IsCocartesianCoclosedCategory );
11 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/CodistributiveCocartesianCategoriesProperties.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Description
8 | #! The property of the category C being codistributive.
9 | #! @Arguments C
10 | DeclareProperty( "IsCodistributiveCategory", IsCapCategory );
11 |
12 | AddCategoricalProperty( [ "IsCodistributiveCategory", "IsDistributiveCategory" ] );
13 |
14 | InstallTrueMethod( IsCartesianCategory, IsCodistributiveCategory );
15 |
16 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsCodistributiveCategory :=
17 | DuplicateFreeList(
18 | Concatenation(
19 | ListOfDefiningOperations( "IsBicartesianCategory" ),
20 | [ "LeftCocartesianCodistributivityFactoringWithGivenObjects",
21 | "RightCocartesianCodistributivityFactoringWithGivenObjects",
22 | ] ) );
23 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/DistributiveCartesianCategoriesProperties.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Description
8 | #! The property of the category C being distributive.
9 | #! @Arguments C
10 | DeclareProperty( "IsDistributiveCategory", IsCapCategory );
11 |
12 | AddCategoricalProperty( [ "IsDistributiveCategory", "IsCodistributiveCategory" ] );
13 |
14 | InstallTrueMethod( IsCocartesianCategory, IsDistributiveCategory );
15 |
16 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsDistributiveCategory :=
17 | DuplicateFreeList(
18 | Concatenation(
19 | ListOfDefiningOperations( "IsBicartesianCategory" ),
20 | [ "LeftCartesianDistributivityExpandingWithGivenObjects",
21 | "RightCartesianDistributivityExpandingWithGivenObjects",
22 | ] ) );
23 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/InitialCategoryProperties.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Description
8 | #! The property of the category C being initial.
9 | #! @Arguments C
10 | DeclareProperty( "IsInitialCategory", IsCapCategory );
11 |
12 | AddCategoricalProperty( [ "IsInitialCategory", "IsInitialCategory" ] );
13 |
--------------------------------------------------------------------------------
/CartesianCategories/gap/Tools.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # Declarations
5 | #
6 |
7 | # @Chapter Tools
8 |
9 | # @Section Tools
10 |
11 | DeclareGlobalFunction( "CreateFilesForCartesianCategoriesPackage" );
12 |
--------------------------------------------------------------------------------
/CartesianCategories/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/CartesianCategories/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CartesianCategories: Cartesian and cocartesian categories and various subdoctrines
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "CartesianCategories", false );
11 | true
12 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
13 | gap> LoadPackage( "CartesianCategories" );
14 | true
15 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
16 |
--------------------------------------------------------------------------------
/CompilerForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/compilerforcap*.tst
35 |
--------------------------------------------------------------------------------
/CompilerForCAP/TODO:
--------------------------------------------------------------------------------
1 | Speed:
2 |
3 | * reduce number of calls to `StructuralCopy`
4 | * turn logic functions into peephole optimizations
5 | * avoid CAP_JIT_INTERNAL_REPLACED_FVARS_FUNC_ID where possible
6 |
7 | Features:
8 |
9 | * list expressions for logic templates
10 | * do not inline variables but only a reference to them for the logic to use
11 | * For categories with finitely many objects (or morphisms): detect parts of the code which can be precomputed, e.g. hom_structure_on_basis_paths in Algebroids.
12 | * unify deduplication and hoisting: hoisting in duplicate code can lead to different variable names, so the deduplication does not match anymore (partially fixed)
13 |
--------------------------------------------------------------------------------
/CompilerForCAP/benchmarks/FPres.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "FreydCategoriesForCAP", false );
2 | LoadPackage( "ModulePresentationsForCAP", false );
3 |
4 | QQ := HomalgFieldOfRationalsInSingular( );;
5 | QQxy := QQ * "x,y";;
6 | ring := KoszulDualRing( QQxy );;
7 |
8 | rfpres := RightPresentations_as_FreydCategory_CategoryOfColumns( ring : no_precompiled_code := true ); # true or false
9 |
10 | m := 1; # 1, 2, 3, 4, 5, 10, 20, 30
11 |
12 | I := HomalgIdentityMatrix( m, ring );
13 |
14 | M := ObjectConstructor( rfpres, I );
15 |
16 | id := IdentityMorphism( M );
17 |
18 | Display( "start computation" );
19 | StartTimer( "Lift" );
20 | lift := Lift( id, id );
21 | DisplayTimer( "Lift" );
22 |
23 | Assert( 0, IsOne( lift ) );
24 |
--------------------------------------------------------------------------------
/CompilerForCAP/benchmarks/ZX.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "ZXCalculusForCAP", false );
2 |
3 | cat := CategoryOfZXDiagrams( : no_precompiled_code := true ); # true or false
4 |
5 | m := ObjectConstructor( cat, 1 ); # 1, 125, 250, 500, 1000, 2000
6 |
7 | id := IdentityMorphism( m );
8 |
9 | ev := EvaluationForDual( m );
10 | coev := CoevaluationForDual( m );
11 |
12 | StartTimer( "comp" );
13 | comp := PreCompose( TensorProductOnMorphisms( coev, id ), TensorProductOnMorphisms( id, ev ) );
14 | DisplayTimer( "comp" );
15 |
16 | Assert( 0, IsEqualForMorphisms( comp, id ) );
17 |
--------------------------------------------------------------------------------
/CompilerForCAP/benchmarks/algorithms.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "CompilerForCAP", false );
2 | LoadPackage( "FreydCategoriesForCAP", false );
3 |
4 | star := RingAsCategoryUniqueObject( RingAsCategory( Integers ) );
5 |
6 | func_tuples := function ( m, n )
7 |
8 | return Length( Concatenation( ListWithIdenticalEntries( m, star ), ListWithIdenticalEntries( n, star ) ) );
9 |
10 | end;
11 |
12 | func_integers := function ( m, n )
13 |
14 | return m + n;
15 |
16 | end;
17 |
18 | m := 1; # 1, 25, 50, 100, 200, 400, 10^(10^9)
19 | m := m * 10^6;
20 |
21 | CollectGarbage( true );
22 | StartTimer( "benchmark" );
23 | func_tuples( m, m ); # func_tuples or func_integers
24 | DisplayTimer( "benchmark" );
25 |
--------------------------------------------------------------------------------
/CompilerForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Using the compiler
2 |
3 | @Chapter Improving and extending the compiler
4 | @ChapterLabel ImprovingAndExtendingTheCompiler
5 |
6 | @Chapter Examples and tests
7 |
8 | @Section Examples
9 |
10 |
--------------------------------------------------------------------------------
/CompilerForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/CleanUpHoistedAndDeduplicatedExpressions.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Cleans up variable names after hoisting and deduplication:
12 | #! * Assignments of the form `hoisted_xxx := deduped_yyy;` are deleted and all references to `hoisted_xxx` are replaced by references to `deduped_yyy`.
13 | #! * If `hoisted_xxx` is used more than once, it is renamed to `deduped_xxx`. Note: Even if a hoisted value is used more than once during ,
14 | #! it is not necessarily used more than once after because the places where it was used might have been deduplicated themselves.
15 | #! @Returns a record
16 | #! @Arguments tree
17 | DeclareGlobalFunction( "CapJitCleanedUpHoistedAndDeduplicatedExpressions" );
18 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/CompileCAPOperation.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Using the compiler
7 |
8 | #! @Section Compiling a function manually
9 |
10 | #! @Description
11 | #! A special version of compiling the operation
12 | #! given by operation_name in cat.
13 | #! @Arguments cat, operation_name
14 | DeclareGlobalFunction( "CapJitCompiledCAPOperationAsEnhancedSyntaxTree" );
15 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/DeduplicateExpressions.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Deduplicates expressions occuring at least twice in the enhanced syntax tree tree.
12 | #! @Returns a record
13 | #! @Arguments tree
14 | DeclareGlobalFunction( "CapJitDeduplicatedExpressions" );
15 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/DropUnusedBindings.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Drops bindings (and names) of variables in functions in tree which are never referenced.
12 | #! @Returns a record
13 | #! @Arguments tree
14 | DeclareGlobalFunction( "CapJitDroppedUnusedBindings" );
15 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/InlineArguments.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Example: transforms `(function(x) return x; end)(1)` into `(function() local x; x := 1; return x; end)()`.
12 | #! Details: Searches for function calls of resolved functions. Assigns the argument values to local variables
13 | #! at the beginning of the function, and drops the arguments (i.e., makes the function a 0-ary function).
14 | #! @Returns a record
15 | #! @Arguments tree
16 | DeclareGlobalFunction( "CapJitInlinedArguments" );
17 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/InlineSimpleFunctionCalls.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Replaces function calls of the form `(function() return value; end)()` by `value`.
12 | #! Assumes that arguments of function calls are inlined (i.e., you should use first).
13 | #! @Returns a record
14 | #! @Arguments tree
15 | DeclareGlobalFunction( "CapJitInlinedSimpleFunctionCalls" );
16 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/OutlineWrappedArguments.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Outlines wrapped arguments to local variables. This includes:
12 | #! * the attribute value(s) in `CreateCapCategoryObjectWithAttributes` and `AsCapCategoryObject`
13 | #! * the attribute values (including the arguments `source` and `range`) in `CreateCapCategoryMorphismWithAttributes` and `AsCapCategoryMorphism`
14 | #! * the arguments of `NTuple` (excluding the first argument)
15 | #! @Returns a record
16 | #! @Arguments tree
17 | DeclareGlobalFunction( "CapJitOutlinedWrappedArguments" );
18 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/PrettyPrintSyntaxTree.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Tools
9 |
10 | #! @Description
11 | #! Displays an enhanced syntax tree in a more useful way. For example, prints the
12 | #! type of a node on top.
13 | #! @Arguments tree
14 | DeclareGlobalFunction( "CapJitPrettyPrintSyntaxTree" );
15 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/ResolveGlobalVariables.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Resolves global variables (except those which are listed in `CAP_JIT_NON_RESOLVABLE_GLOBAL_VARIABLE_NAMES`):
12 | #! * Replaces a global variable referencing a plain function by the syntax tree of this function in case the function is annotated with the pragma `CAP_JIT_RESOLVE_FUNCTION`.
13 | #! * Computes attributes of categories stored in global variables and places the results into global variables again.
14 | #! @Returns a record
15 | #! @Arguments tree
16 | DeclareGlobalFunction( "CapJitResolvedGlobalVariables" );
17 |
--------------------------------------------------------------------------------
/CompilerForCAP/gap/ResolveOperations.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Improving and extending the compiler
7 |
8 | #! @Section Compilation steps
9 |
10 | #! @Description
11 | #! Tries to resolve operations in tree:
12 | #! * Operations of CAP categories are resolved by taking one of the functions added to the category via an `Add` function.
13 | #! * Operations announced to the compiler via `InstallMethodForCompilerForCAP` or `InstallOtherMethodForCompilerForCAP`
14 | #! (see the documentation of CAP) are resolved via the number of arguments.
15 | #! @Returns a record
16 | #! @Arguments tree
17 | DeclareGlobalFunction( "CapJitResolvedOperations" );
18 |
--------------------------------------------------------------------------------
/CompilerForCAP/img/example_category.tex:
--------------------------------------------------------------------------------
1 | \documentclass{standalone}
2 |
3 | \usepackage{mathtools}
4 |
5 | \newcommand{\Acal}{\boldsymbol{\mathcal{A}}}
6 | \newcommand{\Ccal}{\boldsymbol{\mathcal{C}}}
7 | \newcommand{\add}{{\boldsymbol{\oplus}}}
8 |
9 | \begin{document}
10 | $\Acal\left(\Ccal(R)^\add\right)$
11 | \end{document}
12 |
--------------------------------------------------------------------------------
/CompilerForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up and verify categorical algorithms
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | % this is the only way to suppress an overfull hbox in the signature of CapJitIterateOverTree
24 | \geometry{left=26mm,right=26mm}
25 | """,
26 | ),
27 | ),
28 | scaffold := rec(
29 | entities := [ "homalg", "CAP" ],
30 | ),
31 | ) );
32 |
33 | QUIT;
34 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/200_CAP_JIT_INTERNAL_FUNCTION_ID.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # CompilerForCAP: Speed up computations in CAP categories
3 | #
4 | # make sure that compilation does not slow down with larger function IDs
5 | # e.g. one must not use function IDs as list indices
6 | gap> CAP_JIT_INTERNAL_FUNCTION_ID := 10^9;;
7 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/400_proof_assistant_mode_disabled.tst:
--------------------------------------------------------------------------------
1 | # make sure proof assistant mode is disabled
2 | gap> CAP_JIT_PROOF_ASSISTANT_MODE_ENABLED;
3 | false
4 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/CAP_JIT_DROP_NEXT_STATEMENT.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "CAP_JIT_DROP_NEXT_STATEMENT" );
2 |
3 | #
4 | gap> LoadPackage( "CompilerForCAP", false );
5 | true
6 |
7 | #
8 | gap> func := function ( )
9 | > #% CAP_JIT_DROP_NEXT_STATEMENT
10 | > Display( 1 ); return 1; end;;
11 |
12 | #
13 | gap> Display( CapJitCompiledFunction( func ) );
14 | function ( )
15 | return 1;
16 | end
17 |
18 | #
19 | gap> STOP_TEST( "CAP_JIT_DROP_NEXT_STATEMENT" );
20 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/CapJitCompiledCAPOperationAsEnhancedSyntaxTree.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "CapJitCompiledCAPOperationAsEnhancedSyntaxTree" );
2 |
3 | #
4 | gap> LoadPackage( "CompilerForCAP", false );
5 | true
6 |
7 | #
8 | gap> dummy := DummyCategory( rec(
9 | > list_of_operations_to_install := [
10 | > "IsCongruentForMorphisms",
11 | > "IdentityMorphism",
12 | > ],
13 | > ) : FinalizeCategory := false );;
14 |
15 | #
16 | gap> AddIsProjective( dummy, ReturnTrue );
17 |
18 | #
19 | gap> Finalize( dummy );;
20 |
21 | #
22 | gap> Display( CapJitCompiledFunction(
23 | > { cat, obj } -> IsProjective( cat, obj ),
24 | > dummy
25 | > ) );
26 | function ( cat_1, obj_1 )
27 | return RETURN_TRUE( cat_1, obj_1 );
28 | end
29 |
30 | #
31 | gap> STOP_TEST( "CapJitCompiledCAPOperationAsEnhancedSyntaxTree" );
32 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/CapJitIsEqualForEnhancedSyntaxTrees.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "CapJitIsEqualForEnhancedSyntaxTrees" );
2 |
3 | #
4 | gap> LoadPackage( "CompilerForCAP", false );
5 | true
6 |
7 | # test that `CAP_JIT_NOT_RESOLVABLE` does not cause errors when comparing syntax trees
8 | gap> DeclareOperation( "MyNonResolvableOperation", [ ] );
9 |
10 | #
11 | gap> func := { } -> MyNonResolvableOperation( );;
12 |
13 | #
14 | gap> tree := ENHANCED_SYNTAX_TREE( func );;
15 |
16 | #
17 | gap> tree2 := StructuralCopy( tree );;
18 | gap> tree2.bindings.BINDING_RETURN_VALUE.funcref.CAP_JIT_NOT_RESOLVABLE := true;;
19 |
20 | #
21 | gap> CapJitIsEqualForEnhancedSyntaxTrees( tree, tree2 );
22 | true
23 |
24 | #
25 | gap> STOP_TEST( "CapJitIsEqualForEnhancedSyntaxTrees" );
26 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/MatElm.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "MatElm" );
2 |
3 | #
4 | gap> LoadPackage( "CompilerForCAP", false );
5 | true
6 |
7 | #
8 | gap> func := x -> MatElm( x, 1, 1 );;
9 | gap> tree := ENHANCED_SYNTAX_TREE( func );;
10 | gap> tree := CapJitResolvedGlobalVariables( tree );;
11 | gap> Display( ENHANCED_SYNTAX_TREE_CODE( tree ) );
12 | function ( x_1 )
13 | return x_1[1, 1];
14 | end
15 |
16 | #
17 | gap> STOP_TEST( "MatElm" );
18 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/do_not_resolve_CAP_operations_statically.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "do_not_resolve_CAP_operations_statically" );
2 |
3 | #
4 | gap> LoadPackage( "LinearAlgebraForCAP", false );
5 | true
6 |
7 | #
8 | gap> Q := HomalgFieldOfRationals();;
9 | gap> vec := MatrixCategory( Q );;
10 |
11 | #
12 | gap> func := function ( cat, x )
13 | > #% CAP_JIT_RESOLVE_FUNCTION
14 | > return ZeroObject( cat ); end;;
15 |
16 | # make sure that ZeroObject( cat ) is not resolved to a global variable
17 | gap> Display( CapJitCompiledFunction( { cat, x } -> func( cat, x ), vec ) );
18 | function ( cat_1, x_1 )
19 | return AsCapCategoryObject( cat_1, 0 );
20 | end
21 |
22 | #
23 | gap> STOP_TEST( "do_not_resolve_CAP_operations_statically" );
24 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/inline_arguments_for_variadic_functions.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "inline_arguments_for_variadic_functions" );
2 |
3 | #
4 | gap> LoadPackage( "CompilerForCAP", false );
5 | true
6 |
7 | #
8 | gap> func := function ( )
9 | > local x; x := { args... } -> 1; return x( ); end;;
10 |
11 | #
12 | gap> Display( CapJitCompiledFunction( func ) );
13 | function ( )
14 | return 1;
15 | end
16 |
17 | #
18 | gap> STOP_TEST( "inline_arguments_for_variadic_functions" );
19 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/rapid_rassignment.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "rapid_rassignment" );
2 |
3 | #
4 | gap> LoadPackage( "CompilerForCAP", false );
5 | true
6 |
7 | #
8 | gap> func1 := function( x, y )
9 | > #% CAP_JIT_RESOLVE_FUNCTION
10 | > return x; end;;
11 |
12 | #
13 | gap> func2 := function( )
14 | > local var; var := 1; var := func1( 2, var ); return var; end;;
15 |
16 | #
17 | gap> compiled_func := CapJitCompiledFunction( func2 );;
18 | gap> compiled_func();
19 | 2
20 |
21 | #
22 | gap> STOP_TEST( "rapid_rassignment" );
23 |
--------------------------------------------------------------------------------
/CompilerForCAP/tst/unique_function_ids.tst:
--------------------------------------------------------------------------------
1 | gap> START_TEST( "unique_function_ids" );
2 |
3 | #
4 | gap> LoadPackage( "CompilerForCAP", false );
5 | true
6 |
7 | #
8 | gap> func := function( )
9 | > local id; id := y -> y; return [ id, id ]; end;;
10 |
11 | # we are not interested in the output, but only that this does not throw
12 | # an error due to some function id being used multiple times
13 | gap> CapJitCompiledFunction( func );;
14 |
15 | #
16 | gap> STOP_TEST( "unique_function_ids" );
17 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/complexesandfilteredobjectsforcap*.tst
35 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Functors from integers category
2 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/examples/.gitkeep:
--------------------------------------------------------------------------------
1 | needed for `make test-basic-spacing` not to complain about missing directory `examples`
2 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/init.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ComplexesAndFilteredObjectsForCAP: Implementation of complexes, cocomplexes and filtered objects for CAP
3 | #
4 | # Reading the declaration part of the package.
5 | #
6 |
7 | ReadPackage( "ComplexesAndFilteredObjectsForCAP", "gap/ZFunctors.gd" );
8 |
9 | ReadPackage( "ComplexesAndFilteredObjectsForCAP", "gap/CocomplexCategory.gd" );
10 |
11 | ReadPackage( "ComplexesAndFilteredObjectsForCAP", "gap/FilteredObjects.gd" );
12 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ComplexesAndFilteredObjectsForCAP: Implementation of complexes, cocomplexes and filtered objects for CAP
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/read.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ComplexesAndFilteredObjectsForCAP: Implementation of complexes, cocomplexes and filtered objects for CAP
3 | #
4 | # Reading the implementation part of the package.
5 | #
6 |
7 | ReadPackage( "ComplexesAndFilteredObjectsForCAP", "gap/ZFunctors.gi" );
8 |
9 | ReadPackage( "ComplexesAndFilteredObjectsForCAP", "gap/CocomplexCategory.gi" );
10 |
11 | ReadPackage( "ComplexesAndFilteredObjectsForCAP", "gap/FilteredObjects.gi" );
12 |
--------------------------------------------------------------------------------
/ComplexesAndFilteredObjectsForCAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # ComplexesAndFilteredObjectsForCAP: Implementation of complexes, cocomplexes and filtered objects for CAP
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "ComplexesAndFilteredObjectsForCAP", false );
11 | true
12 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
13 | gap> LoadPackage( "ComplexesAndFilteredObjectsForCAP" );
14 | true
15 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
16 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/freydcategoriesforcap*.tst
35 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/ToDo:
--------------------------------------------------------------------------------
1 | For category of columns and rows, we do not have weak fibre product and weak pushouts for multiple morphism (neither the corresponding projections and injections)
2 |
3 | Likewise, tensor product and internal hom are not implemented for these categories
4 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Basic operations
2 |
3 | @Chapter Additive closure
4 |
5 | @Chapter Example on additive closure
6 |
7 | @Chapter Adelman category
8 |
9 | @Chapter Category of rows
10 |
11 | @Chapter Example on category of rows
12 |
13 | @Chapter Category of columns
14 |
15 | @Chapter Example on category of columns
16 |
17 | @Chapter Category of graded rows and category of graded columns
18 |
19 | @Chapter Cokernel image closure
20 |
21 | @Chapter Freyd category
22 |
23 | @Chapter Examples and Tests
24 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/examples/Random.g:
--------------------------------------------------------------------------------
1 | #! @Chapter Examples and Tests
2 |
3 | #! @Section Tests
4 |
5 | #! @Example
6 | LoadPackage( "FreydCategoriesForCAP", false );
7 | #! true
8 | R := HomalgRingOfIntegers( ) ;;
9 | cat := CategoryOfColumns( R );;
10 | A := RandomObjectByInteger( cat, 2 );;
11 | B := RandomObjectByInteger( cat, 2 );;
12 | mor1 := RandomMorphismByInteger( cat, 2 );;
13 | mor2 := RandomMorphismWithFixedSourceByInteger( cat, CategoryOfColumnsObject( cat, 3 ), 2 );;
14 | mor3 := RandomMorphismWithFixedRangeByInteger( cat, CategoryOfColumnsObject( cat, 3 ), 2 );;
15 | mor4 := RandomMorphismWithFixedSourceAndRangeByInteger( cat, CategoryOfColumnsObject( cat, 3 ), CategoryOfColumnsObject( cat, 4 ), 2 );;
16 | RankOfObject( Source( mor2 ) ) = 3;
17 | #! true
18 | RankOfObject( Range( mor3 ) ) = 3;
19 | #! true
20 | RankOfObject( Source( mor4 ) ) = 3;
21 | #! true
22 | RankOfObject( Range( mor4 ) ) = 4;
23 | #! true
24 |
25 | #! @EndExample
26 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/examples/generate_documentation.g:
--------------------------------------------------------------------------------
1 | #! @Chapter Examples and Tests
2 |
3 | #! @Section Tests
4 |
5 | #! @Example
6 |
7 | LoadPackage( "FreydCategoriesForCAP", false );
8 | #! true
9 |
10 | QQ := HomalgFieldOfRationalsInSingular( );;
11 | QQxy := QQ * "x,y";;
12 | EQQxy := KoszulDualRing( QQxy );;
13 | R := KoszulDualRing( HomalgRingOfIntegersInSingular( ) * "x,y" );;
14 |
15 | CAP_INTERNAL_GENERATE_DOCUMENTATION_FOR_CATEGORY_INSTANCES(
16 | [
17 | [ CategoryOfRows( R ), "CategoryOfRows of an arbitrary ring" ],
18 | [ CategoryOfRows( EQQxy ), "CategoryOfRows of an exterior algebra over a field" ],
19 | [ CategoryOfRows( QQxy ), "CategoryOfRows of a commutative ring" ],
20 | [ CategoryOfRows( QQ ), "CategoryOfRows of a field" ],
21 | ],
22 | "FreydCategoriesForCAP",
23 | "CategoryOfRows.autogen.gd",
24 | "Category of rows",
25 | "Supported CAP operations"
26 | );
27 |
28 | #! @EndExample
29 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/gap/CategoryOfColumns_as_Opposite_CategoryOfRows.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # FreydCategoriesForCAP: Freyd categories - Formal (co)kernels for additive categories
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Category of columns
7 |
8 | ####################################
9 | ##
10 | #! @Section Constructors
11 | ##
12 | ####################################
13 |
14 | DeclareOperation( "CategoryOfColumns_as_Opposite_CategoryOfRows",
15 | [ IsHomalgRing ] );
16 |
17 | DeclareGlobalFunction( "INSTALL_FUNCTIONS_FOR_CATEGORY_OF_COLUMNS_AS_OPPOSITE_OF_CATEGORY_OF_ROWS" );
18 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/gap/CategoryOfGradedRowsAndColumns/ToDo.txt:
--------------------------------------------------------------------------------
1 | TODO:
2 | (*) Create interface for general weak fiber products/ weak pushouts
3 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/gap/CoFreydCategory_as_Opposite_FreydCategory_Opposite.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # FreydCategoriesForCAP: Freyd categories - Formal (co)kernels for additive categories
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter CoFreyd category
7 |
8 | ####################################
9 | ##
10 | #! @Section Constructors
11 | ##
12 | ####################################
13 |
14 | DeclareOperation( "CoFreydCategory_as_Opposite_FreydCategory_Opposite",
15 | [ IsCapCategory ] );
16 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/gap/GradeFiltration.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # FreydCategoriesForCAP: Freyd categories - Formal (co)kernels for additive categories
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Grade filtration
7 |
8 | ##
9 | KeyDependentOperation( "GradeFiltrationNthNaturalTransformation",
10 | IsCapCategory, IsInt, ReturnTrue );
11 |
12 | ##
13 | KeyDependentOperation( "GradeFiltrationNthNaturalTransformationComponent",
14 | IsAdelmanCategoryObject, IsInt, ReturnTrue );
15 |
16 | ##
17 | KeyDependentOperation( "GradeFiltrationNthMonomorphism",
18 | IsFreydCategoryObject, IsInt, ReturnTrue );
19 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/gap/SerreSubcategoryFunctions.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # FreydCategoriesForCAP: Freyd categories - Formal (co)kernels for additive categories
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Serre subcategory functions
7 |
8 | DeclareOperation( "MembershipFunctionSerreSubcategoryGeneratedByObjects",
9 | [ IsList, IsInt, IsCapCategory ] );
10 |
11 | DeclareOperation( "MembershipFunctionSerreSubcategoryGeneratedByObjects",
12 | [ IsList, IsCapCategory ] );
13 |
14 | DeclareGlobalFunction( "FREYD_CATEGORIES_REFINEMENT_FOR_SERRE_SUBCATEGORIES" );
15 |
16 | DeclareGlobalFunction( "FREYD_CATEGORIES_CHOP_ABOVE_SERRE_SUBCATEGORIES" );
17 |
18 | DeclareGlobalFunction( "FREYD_CATEGORIES_CHOP_BELOW_SERRE_SUBCATEGORIES" );
19 |
20 | DeclareGlobalFunction( "FREYD_CATEGORIES_GENERATORS_OF_FREYD_OBJECT_OVER_ROWS" );
21 |
--------------------------------------------------------------------------------
/FreydCategoriesForCAP/tst/050_load_with_suggested_dependencies.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # FreydCategoriesForCAP: Freyd categories - Formal (co)kernels for additive categories
3 | #
4 | # We want to execute the tests with QPA and FinSetsForCAP if available as long as this does
5 | # not cause any problems. Thus, we load FreydCategoriesForCAP including suggested dependencies here.
6 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
7 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
8 | gap> LoadPackage( "FreydCategoriesForCAP", false );
9 | true
10 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
11 | gap> LoadPackage( "FreydCategoriesForCAP" );
12 | true
13 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
14 | gap> HOMALG_IO.show_banners := false;;
15 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/generalizedmorphismsforcap*.tst
35 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/LogicForGeneralizedMorphismCategory/PredicateImplicationsForGeneralizedMorphismCategory.tex:
--------------------------------------------------------------------------------
1 | \begin{sequent}
2 | \begin{align*}
3 | \alpha:\Mor ~|~ \HasFullDomain( \alpha ), \HasFullCodomain( \alpha ) \vdash \IsHonest( \alpha )
4 | \end{align*}
5 | \end{sequent}
6 |
7 | \begin{sequent}
8 | \begin{align*}
9 | \alpha:\Mor ~|~ \IsHonest( \alpha ) \vdash \HasFullDomain( \alpha )
10 | \end{align*}
11 | \end{sequent}
12 |
13 | \begin{sequent}
14 | \begin{align*}
15 | \alpha:\Mor ~|~ \IsHonest( \alpha ) \vdash \HasFullCodomain( \alpha )
16 | \end{align*}
17 | \end{sequent}
18 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Generalized Morphism Category
2 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/examples/ArtinianModules.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "ModulePresentationsForCAP" );
2 | LoadPackage( "GeneralizedMorphismsForCAP" );
3 | LoadPackage( "RingsForHomalg" );
4 |
5 | is_artinian_left := function( module )
6 | local mat;
7 |
8 | mat := UnderlyingMatrix( module );
9 |
10 | return IsZero( HilbertPolynomial( mat ) );
11 |
12 | end;
13 |
14 | is_artinian_right := function( module )
15 | local mat;
16 |
17 | mat := UnderlyingMatrix( module );
18 |
19 | mat := TransposedMat( mat );
20 |
21 | return IsZero( HilbertPolynomial( mat ) );
22 |
23 | end;
24 |
25 | R := HomalgFieldOfRationalsInSingular( ) * "x,y,z";
26 |
27 | serre_quotient := LeftPresentations( R ) / is_artinian_left;
28 |
29 |
30 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/examples/VectorSpacesIsWellDefined.g:
--------------------------------------------------------------------------------
1 | #! @Chapter Examples and Tests
2 |
3 | #! @Section IsWellDefined
4 |
5 | LoadPackage( "GeneralizedMorphismsForCAP" );
6 | LoadPackage( "LinearAlgebraForCAP" );
7 |
8 | #! @Example
9 | Q := HomalgFieldOfRationals();
10 | #! Q
11 | A := VectorSpaceObject( 1, Q );
12 | #!
13 | B := VectorSpaceObject( 2, Q );
14 | #!
15 | alpha := VectorSpaceMorphism( A, [ [ 1, 2 ] ], B );
16 | #!
17 | g := GeneralizedMorphism( alpha, alpha, alpha );
18 | #!
19 | IsWellDefined( alpha );
20 | #! true
21 | IsWellDefined( g );
22 | #! true
23 | IsEqualForObjects( A, B );
24 | #! false
25 | #! @EndExample
26 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/gap/Switcher.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GeneralizedMorphismsForCAP: Implementations of generalized morphisms for the CAP project
3 | #
4 | # Declarations
5 | #
6 |
7 | DeclareGlobalFunction( "SwitchGeneralizedMorphismStandard" );
8 |
9 | DeclareGlobalVariable( "CAP_INTERNAL_GENERALIZED_MORPHISM_TRANSLATION_LIST" );
10 |
11 | DeclareGlobalFunction( "SwitchGeneralizedMorphismStandardHARDCODE" );
12 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GeneralizedMorphismsForCAP: Implementations of generalized morphisms for the CAP project
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/GeneralizedMorphismsForCAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GeneralizedMorphismsForCAP: Implementations of generalized morphisms for the CAP project
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "LinearAlgebraForCAP", false );
11 | true
12 | gap> LoadPackage( "GeneralizedMorphismsForCAP", false );
13 | true
14 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
15 | gap> LoadPackage( "LinearAlgebraForCAP" );
16 | true
17 | gap> LoadPackage( "GeneralizedMorphismsForCAP" );
18 | true
19 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
20 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/gradedmodulepresentationsforcap*.tst
35 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Graded Module Presentations
2 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/examples/g_lp_over_polynomial_ring.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "ComplexesAndFilteredObjectsForCAP" );
2 | LoadPackage( "GradedModulePresentations" );
3 |
4 | S := GradedRing( HomalgFieldOfRationalsInSingular( )*"x,y,z" );
5 | SetWeightsOfIndeterminates( S, [ 1, 1, 0 ] );
6 |
7 | M := GradedFreeLeftPresentation( 2, S, [ 1, 2 ] );
8 | N := GradedFreeLeftPresentation( 3, S, [ 0, -1, -2 ] );
9 |
10 | m := HomalgMatrix( "[ [ x, x*y-y^2, x^3-y^3 ], [ -x^2-2*x*y, x*y^2-y^3, 3*x*y^3 ] ]", 2, 3, S );
11 | f := GradedPresentationMorphism( M, m, N );
12 |
13 | IsWellDefined( f );
14 | IsMonomorphism( f );
15 | IsEpimorphism( f );
16 |
17 | T := AsGradedLeftPresentation( m, [ 0, -1, -2 ] );
18 | GeneratorDegrees( T );
19 | IsWellDefined( T );
20 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/examples/g_rp_over_polynomial_ring.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "ComplexesAndFilteredObjectsForCAP" );
2 | LoadPackage( "GradedModulePresentations" );
3 |
4 | S := GradedRing( HomalgFieldOfRationalsInSingular( )*"x,y,z" );
5 | SetWeightsOfIndeterminates( S, [ 1, 1, 0 ] );
6 |
7 | M := GradedFreeRightPresentation( 3, S, [ 3, 1, 2 ] );
8 | N := GradedFreeRightPresentation( 2, S, [ 1, 0] );
9 |
10 | m := HomalgMatrix( "[ [ 2*x^2+4*x*y, 0, 4*x ], [ -2*x^3-x^2*y+x*y^2+2*y^3, 2*x+y, 4*x^2-2*x*y+2*y^2 ] ]", 2, 3, S );
11 | f := GradedPresentationMorphism( M, m, N );
12 |
13 | IsWellDefined( f );
14 | IsMonomorphism( f );
15 | IsEpimorphism( f );
16 |
17 | T := AsGradedRightPresentation( m, [ 1, 0 ] );
18 | IsWellDefined( T );
19 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/init.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GradedModulePresentationsForCAP: Presentations for graded modules
3 | #
4 | # Reading the declaration part of the package.
5 | #
6 |
7 |
8 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModulePresentations.gd" );
9 |
10 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModulePresentationObjects.gd" );
11 |
12 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModulePresentationMorphism.gd" );
13 |
14 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModuleFunctors.gd" );
15 |
16 | ReadPackage( "GradedModulePresentationsForCAP", "gap/LiftPresentationTransformation.gd" );
17 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GradedModulePresentationsForCAP: Presentations for graded modules
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/read.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GradedModulePresentationsForCAP: Presentations for graded modules
3 | #
4 | # Reading the implementation part of the package.
5 | #
6 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModulePresentations.gi" );
7 |
8 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModulePresentationObjects.gi" );
9 |
10 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModulePresentationMorphism.gi" );
11 |
12 | ReadPackage( "GradedModulePresentationsForCAP", "gap/GradedModuleFunctors.gi" );
13 |
14 | ReadPackage( "GradedModulePresentationsForCAP", "gap/LiftPresentationTransformation.gi" );
15 |
--------------------------------------------------------------------------------
/GradedModulePresentationsForCAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GradedModulePresentationsForCAP: Presentations for graded modules
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "IO_ForHomalg", false );
11 | true
12 | gap> LoadPackage( "GradedModulePresentationsForCAP", false );
13 | true
14 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
15 | gap> LoadPackage( "IO_ForHomalg" );
16 | true
17 | gap> LoadPackage( "GradedModulePresentationsForCAP" );
18 | true
19 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
20 | gap> HOMALG_IO.show_banners := false;;
21 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/grouprepresentationsforcap*.tst
35 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Associators
2 |
3 | @Section Introduction
4 | @Section Quickstart
5 | @Section Read, Write, and Display
6 | @Section Computing associators
7 | @Section Technical functions
8 |
9 | @Chapter Semisimple Categories
10 |
11 | @Section Introduction
12 | @Section Constructors
13 |
14 | @Chapter Irreducible Objects
15 | @Section Introduction
16 |
17 | @Chapter Representation Category of Groups
18 | @Section Introduction
19 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/A4CategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | RepG := RepresentationCategory( AlternatingGroup( 4 ) );
4 |
5 | G := UnderlyingGroupForRepresentationCategory( RepG );
6 |
7 | irr := Irr( G );
8 |
9 | v1 := RepresentationCategoryObject( irr[1], RepG );
10 |
11 | v2 := RepresentationCategoryObject( irr[2], RepG );
12 |
13 | v3 := RepresentationCategoryObject( irr[3], RepG );
14 |
15 | v4 := RepresentationCategoryObject( irr[4], RepG );
16 |
17 | L := [ v1, v2, v3, v4 ];
18 |
19 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/ComputeAssociatorS3.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | G := SymmetricGroup( 3 );
4 |
5 | log_list := InitializeGroupDataDixon( G );
6 |
7 | log_list := SkeletalFunctorTensorData( log_list );
8 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/ReadDec.g:
--------------------------------------------------------------------------------
1 | ## Reproduce an associator computation using the *Key.g and *Dec.g file
2 | LoadPackage( "GroupRepresentationsForCAP" );
3 |
4 | log_list := ReadSkeletalFunctorData( "S3Key.g", "S3Dec.g" );
5 |
6 | associator := AssociatorForSufficientlyManyTriples( log_list, true );
7 |
8 | G := SymmetricGroup( 3 );
9 |
10 | associator2 := ComputeAssociator( G, true, true );
11 |
12 | associator = associator2;
13 | #! true
14 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/ReadReps.g:
--------------------------------------------------------------------------------
1 | ## Reproduce an associator computation using the *Key.g and *Reps.g file
2 | LoadPackage( "GroupRepresentationsForCAP" );
3 |
4 | log_list := ReadRepresentationsData( "S3Key.g", "S3Reps.g" );
5 |
6 | log_list := SkeletalFunctorTensorData( log_list );
7 |
8 | associator := AssociatorForSufficientlyManyTriples( log_list, true );
9 |
10 | G := SymmetricGroup( 3 );
11 |
12 | associator2 := ComputeAssociator( G, true, true );
13 |
14 | associator = associator2;
15 | #! true
16 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/S3Ass.g:
--------------------------------------------------------------------------------
1 | [[[["1"],[,"-1/3"]],[[,"1"],["1","-1","-3"]]],[[[,"-3"],["-1","1","-1"]],[["-1","-1","1/3"],["-1","-1/2,-1,1/2,1/2,0,1/2,-1/2,1,1/2","1"]]]]
2 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/S3Dec.g:
--------------------------------------------------------------------------------
1 | [[["1","1"],["-1,-2,2,1","1/3,2/3,-2/3,-1/3"],["1","1"]],[["-1,-2,2,1","1/3,2/3,-2/3,-1/3"],["0,-1,1,0,-1,-1,-1,0,0,1,1,1,2,1,1,2","0,-1/3,-2/3,1/3,-1/2,-1/3,1/3,-1/6,1/2,-1/3,1/3,-1\
2 | /6,0,2/3,1/3,1/3"],["1,0,0,1","1,0,0,1"]],[["1","1"],["1,0,0,1","1,0,0,1"],["1","1"]]]
3 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/S3Key.g:
--------------------------------------------------------------------------------
1 | [ "SymmetricGroup( [ 1 .. 3 ] )", 1, 3, "S3Ass.g", true ]
2 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/S3Reps.g:
--------------------------------------------------------------------------------
1 | [[ "(1,2,3)", "(1,2)" ],
2 | "[ [ 1, -1, 1 ], [ 2, 0, -1 ], [ 1, 1, 1 ] ]",
3 | [["1","-1"],["0,1,-1,-1","1,1,0,-1"],["1","1"]],
4 | [ 1, 2, 1 ]]
5 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/AssociatorComputation/WriteAssociator.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | G := SymmetricGroup( 3 );
4 |
5 | ## 1. boolean: true = use Dixon; false = use IrreducibleAffordingRepresentation
6 | ## 2. boolean: true = associator for all triples, false = for sufficiently many
7 | ComputeAssociator( G, true, true );
8 |
9 | WriteAssociatorComputationToFiles( "S3" );
10 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/D8CategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | RepG := RepresentationCategory( 8, 3 );
4 |
5 | G := UnderlyingGroupForRepresentationCategory( RepG );
6 |
7 | irr := Irr( G );
8 |
9 | v1 := RepresentationCategoryObject( irr[1], RepG );
10 |
11 | v2 := RepresentationCategoryObject( irr[2], RepG );
12 |
13 | v3 := RepresentationCategoryObject( irr[3], RepG );
14 |
15 | v4 := RepresentationCategoryObject( irr[4], RepG );
16 |
17 | v4 := RepresentationCategoryObject( irr[4], RepG );
18 |
19 | v5 := RepresentationCategoryObject( irr[5], RepG );
20 |
21 | L := [ v1, v2, v3, v4, v5 ];
22 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/HM1000CategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | RepG := RepresentationCategory( 1000, 93 );
4 |
5 | G := UnderlyingGroupForRepresentationCategory( RepG );
6 |
7 | irr := Irr( G );
8 |
9 | v5 := RepresentationCategoryObject( irr[5], RepG );
10 |
11 | v18 := RepresentationCategoryObject( irr[18], RepG );
12 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/Q8CategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | RepG := RepresentationCategory( 8, 4 );
4 |
5 | G := UnderlyingGroupForRepresentationCategory( RepG );
6 |
7 | irr := Irr( G );
8 |
9 | v1 := RepresentationCategoryObject( irr[1], RepG );
10 |
11 | v2 := RepresentationCategoryObject( irr[2], RepG );
12 |
13 | v3 := RepresentationCategoryObject( irr[3], RepG );
14 |
15 | v4 := RepresentationCategoryObject( irr[4], RepG );
16 |
17 | v4 := RepresentationCategoryObject( irr[4], RepG );
18 |
19 | v5 := RepresentationCategoryObject( irr[5], RepG );
20 |
21 | L := [ v1, v2, v3, v4, v5 ];
22 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/S3CategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | RepG := RepresentationCategory( SymmetricGroup( 3 ) );
4 |
5 | G := UnderlyingGroupForRepresentationCategory( RepG );
6 |
7 | irr := Irr( G );
8 |
9 | v1 := RepresentationCategoryObject( irr[1], RepG );
10 |
11 | v2 := RepresentationCategoryObject( irr[2], RepG );
12 |
13 | v3 := RepresentationCategoryObject( irr[3], RepG );
14 |
15 | L := [ v1, v2, v3 ];
16 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/S3ZGradedCategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | G := SymmetricGroup( 3 );
4 |
5 | RepG := RepresentationCategoryZGraded( G );
6 |
7 | irr := Irr( G );
8 |
9 | v1 := RepresentationCategoryZGradedObject( 2, irr[1], RepG );
10 |
11 | v2 := RepresentationCategoryZGradedObject( 3, irr[2], RepG );
12 |
13 | v3 := RepresentationCategoryZGradedObject( -1, irr[3], RepG );
14 |
15 | v := RepresentationCategoryZGradedObject( -1, irr[2], RepG );
16 |
17 | L := [ v1, v2, v3 ];
18 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/S4CategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | RepG := RepresentationCategory( SymmetricGroup( 4 ) );
4 |
5 | G := UnderlyingGroupForRepresentationCategory( RepG );
6 |
7 | irr := Irr( G );
8 |
9 | v1 := RepresentationCategoryObject( irr[1], RepG );
10 |
11 | v2 := RepresentationCategoryObject( irr[2], RepG );
12 |
13 | v3 := RepresentationCategoryObject( irr[3], RepG );
14 |
15 | v4 := RepresentationCategoryObject( irr[4], RepG );
16 |
17 | v5 := RepresentationCategoryObject( irr[5], RepG );
18 |
19 | L := [ v1, v2, v3, v4, v5 ];
20 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/S5CategoryTest.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 |
3 | RepG := RepresentationCategory( SymmetricGroup( 5 ) );
4 |
5 | G := UnderlyingGroupForRepresentationCategory( RepG );
6 |
7 | irr := Irr( G );
8 |
9 | v1 := RepresentationCategoryObject( irr[1], RepG );
10 |
11 | v2 := RepresentationCategoryObject( irr[2], RepG );
12 |
13 | v3 := RepresentationCategoryObject( irr[3], RepG );
14 |
15 | v4 := RepresentationCategoryObject( irr[4], RepG );
16 |
17 | v5 := RepresentationCategoryObject( irr[5], RepG );
18 |
19 | v6 := RepresentationCategoryObject( irr[6], RepG );
20 |
21 | v7 := RepresentationCategoryObject( irr[7], RepG );
22 |
23 | L := [ v1, v2, v3, v4, v5, v6, v7 ];
24 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/SemisimpleCategoryTestForGZGraded.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 | LoadPackage( "RingsForHomalg" );
3 | Q := HomalgFieldOfRationalsInSingular();
4 |
5 | G := SymmetricGroup( 3 );
6 |
7 | irr := Irr( G );
8 |
9 | ## G category
10 |
11 | membership_function := IsGZGradedIrreducibleObject;
12 |
13 | chi_1_2 := GZGradedIrreducibleObject( 2, irr[1] );
14 |
15 | chi_2_1 := GZGradedIrreducibleObject( 1, irr[2] );
16 |
17 | unit := GZGradedIrreducibleObject( 0, irr[3] );
18 |
19 | semisimple_cat := SemisimpleCategory( Q, membership_function, unit, "S3Ass.g", true );
20 |
21 | a := SemisimpleCategoryObject( [ [ 2, chi_1_2 ], [ 3, chi_2_1 ] ], semisimple_cat );
22 |
23 | b := SemisimpleCategoryObject( [ [ 1, chi_1_2 ], [ 1, chi_2_1 ] ], semisimple_cat );
24 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/examples/doc/Quickstart_Associator_D8.g:
--------------------------------------------------------------------------------
1 | #! @Chunk Quickstart_Associator_D8
2 |
3 | LoadPackage( "GroupRepresentationsForCAP" );
4 |
5 | #! @Example
6 | G := DihedralGroup( 8 );;
7 | ComputeAssociator( G, true, true, false );;
8 | path := Filename( DirectoryTemporary( ), "D8" );;
9 | WriteAssociatorComputationToFiles( path );
10 | #! @EndExample
11 |
12 |
13 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/1Ass.g:
--------------------------------------------------------------------------------
1 | []
2 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/A4Ass.g:
--------------------------------------------------------------------------------
1 | [,[,[,["1"],[,"1"],[,,,"1"]],[,[,"1"],[,,"1"],[,,,"1"]],[,[,,,"1"],[,,,"1"],["1","1","1","-1/2,1/2*(-2*e-1),1/2*(-2*e-1),-1/2"]]],[,[,[,"1"],[,,"1"],[,,,"1"]],[,[,,"1"],["1"],[,,,"1"\
2 | ]],[,[,,,"1"],[,,,"1"],["1","1","1","-1/2,1/2*(2*e+1),1/2*(2*e+1),-1/2"]]],[,[,[,,,"1"],[,,,"1"],["1","1","1","-1/2,1/2*(2*e+1),1/2*(2*e+1),-1/2"]],[,[,,,"1"],[,,,"1"],["1","1","1","\
3 | -1/2,1/2*(-2*e-1),1/2*(-2*e-1),-1/2"]],[,["1","1","1","-1/2,1/2*(-2*e-1),1/2*(-2*e-1),-1/2"],["1","1","1","-1/2,1/2*(2*e+1),1/2*(2*e+1),-1/2"],["1,0,0,1","-1/2,1/2*(-2*e-1),1/2*(-2*e\
4 | -1),-1/2","-1/2,1/2*(2*e+1),1/2*(2*e+1),-1/2","1/3,1/3,1/3,1/2,0,0,-1/2,1/3,1/3,1/3,-1/4,1/4*(2*e+1),1/4*(-2*e-1),1/4,1/3,1/3,1/3,-1/4,1/4*(-2*e-1),1/4*(2*e+1),1/4,2/3,-1/3,-1/3,1/2,\
5 | 0,0,1/2,0,1/3*(2*e+1),1/3*(-2*e-1),0,-1/2,-1/2,0,0,1/3*(-2*e-1),1/3*(2*e+1),0,-1/2,-1/2,0,-2/3,1/3,1/3,1/2,0,0,1/2"]]]]
6 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/A5/A5Key.g:
--------------------------------------------------------------------------------
1 | [ "AlternatingGroup( [ 1 .. 5 ] )", 15, 1, "A5Ass.g", true ]
2 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/D14AssD.g:
--------------------------------------------------------------------------------
1 | [,[,[,[,"1"],[,,"1"],[,,,"1"],[,,,,"1"]],[,,["1","1",,"1"],[,,"-1",,"1"],[,,,"-1","-1"]],[,,[,,"1",,"1"],["1","1",,,"-1"],[,,"-1","-1"]],[,,[,,,"1","-1"],[,,"1","-1"],["1","1","-1"]]\
2 | ],[,[],[,,[,,"1/2,-1/2,1,1/2,-1/2,-1,1/2,1/2,0",,"1"],["1","1",,"1,1,1,-1","1"],[,,"1","1","1,1,1,-1"]],[,,,[,,"1/2,-1/2,1/2,1/2","1","1"],["1","1","1","1","1"]],[,,,["1","-1","1","1\
3 | ","1"],["1","-1","1/2,-1/2,1/2,1/2","1"]]],[,[],[],[,,,[,,"1","1/2,-1/2,1,1/2,-1/2,-1,1/2,1/2,0"],["1","-1","1",,"1,1,1,-1"]],[,,,,[,,"1","1/2,-1/2,1/2,1/2","1"]]],[,[],[],[],[,,,,[,\
4 | ,,"1","1/2,-1/2,1,1/2,-1/2,-1,1/2,1/2,0"]]]]
5 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/D8/D8Ass.g:
--------------------------------------------------------------------------------
1 | [,[,[,[,"1"],[,,"1"],[,,,"1"],[,,,,"-1"]],[,[,,"1"],[,"1"],["1"],[,,,,"-1"]],[,[,,,"1"],["1"],[,"1"],[,,,,"1"]],[,[,,,,"1"],[,,,,"-1"],[,,,,"-1"],["-1","1","1","-1"]]],[,[,[,,"1"],[,\
2 | "1"],["1"],[,,,,"1"]],[,[,"1"],[,,"1"],[,,,"1"],[,,,,"1"]],[,["1"],[,,,"1"],[,,"1"],[,,,,"1"]],[,[,,,,"-1"],[,,,,"1"],[,,,,"-1"],["1","1","1","1"]]],[,[,[,,,"1"],["1"],[,"1"],[,,,,"-\
3 | 1"]],[,["1"],[,,,"1"],[,,"1"],[,,,,"-1"]],[,[,"1"],[,,"1"],[,,,"1"],[,,,,"1"]],[,[,,,,"-1"],[,,,,"-1"],[,,,,"1"],["1","-1","-1","1"]]],[,[,[,,,,"-1"],[,,,,"1"],[,,,,"-1"],["-1","-1",\
4 | "1","1"]],[,[,,,,"-1"],[,,,,"1"],[,,,,"-1"],["1","-1","1","-1"]],[,[,,,,"1"],[,,,,"1"],[,,,,"1"],["1","-1","-1","1"]],[,["1","-1","1","-1"],["1","-1","1","-1"],["1","1","1","1"],[,,,\
5 | ,"1/2,-1/2,1/2,1/2,1/2,-1/2,-1/2,-1/2,1/2,1/2,1/2,-1/2,1/2,1/2,-1/2,1/2"]]]]
6 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/D8/D8Dec.g:
--------------------------------------------------------------------------------
1 | [[["1","1"],["1","1"],["1","1"],["1","1"],["1,0,0,1","1,0,0,1"]],[["1","1"],["1","1"],["1","1"],["1","1"],["0,-1,1,0","0,1,-1,0"]],[["1","1"],["1","1"],["1","1"],["1","1"],["-1,0,0,1\
2 | ","-1,0,0,1"]],[["1","1"],["1","1"],["1","1"],["1","1"],["0,1,1,0","0,1,1,0"]],[["1,0,0,1","1,0,0,1"],["0,-1,1,0","0,1,-1,0"],["-1,0,0,1","-1,0,0,1"],["0,1,1,0","0,1,1,0"],["1,0,0,1,\
3 | 0,-1,1,0,-1,0,0,1,0,1,1,0","1/2,0,-1/2,0,0,-1/2,0,1/2,0,1/2,0,1/2,1/2,0,1/2,0"]]]
4 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/D8/D8Key.g:
--------------------------------------------------------------------------------
1 | [ "8,3", 1, 1, "D8Ass.g", true ]
2 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/D8/D8Reps.g:
--------------------------------------------------------------------------------
1 | [[ "f1*f2*f3", "f1" ],
2 | "[ [ 1, 1, 1, 1, 1 ], [ 1, -1, 1, 1, -1 ], [ 1, 1, -1, 1, -1 ], [ 1, -1, -1, 1, 1 ], [ 2, 0, 0, -2, 0 ] ]",
3 | [["1","1"],["-1","-1"],["-1","1"],["1","-1"],["0,-1,-1,0","1,0,0,-1"]],
4 | [ 1, 1, 1, 1, 2 ]]
5 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/D8/WriteD8.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 | G := DihedralGroup( 8 );
3 | ComputeAssociator( G, true, true, false );
4 | WriteAssociatorComputationToFiles( "D8" );
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/DatabaseKeys.g:
--------------------------------------------------------------------------------
1 | [ [ "TrivialGroup( )", 1, 1, "1Ass.g", true ],
2 | [ "SymmetricGroup( [ 1 .. 3 ] )", 1, 3, "S3Ass.g", true ],
3 | [ "SymmetricGroup( [ 1 .. 4 ] )", 1, 5, "S4Ass.g", true ],
4 | [ "SymmetricGroup( [ 1 .. 5 ] )", 1, 7, "S5AssD.g", false ],
5 | [ "AlternatingGroup( [ 1 .. 4 ] )", 3, 1, "A4Ass.g", true ],
6 | [ "1000,93", 20, 1, "HM1000AssD.g", false ],
7 | [ "14,1", 1, 1, "D14AssD.g", false ],
8 | [ "8,3", 1, 1, "D8/D8Ass.g", true ],
9 | [ "8,4", 4, 1, "Q8/Q8Ass.g", true ],
10 | [ "AlternatingGroup( [ 1 .. 5 ] )", 15, 1, "A5/A5Ass.g", true ] ]
11 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/Q8/Q8Ass.g:
--------------------------------------------------------------------------------
1 | [,[,[,[,"1"],[,,"1"],[,,,"1"],[,,,,"1"]],[,[,,"1"],[,"1"],["1"],[,,,,"-1"]],[,[,,,"1"],["1"],[,"1"],[,,,,"-1"]],[,[,,,,"1"],[,,,,"-1"],[,,,,"-1"],["-1","-1","1","1"]]],[,[,[,,"1"],[,\
2 | "1"],["1"],[,,,,"1"]],[,[,"1"],[,,"1"],[,,,"1"],[,,,,"1"]],[,["1"],[,,,"1"],[,,"1"],[,,,,"1"]],[,[,,,,"-1"],[,,,,"1"],[,,,,"-1"],["1","1","1","1"]]],[,[,[,,,"1"],["1"],[,"1"],[,,,,"1\
3 | "]],[,["1"],[,,,"1"],[,,"1"],[,,,,"-1"]],[,[,"1"],[,,"1"],[,,,"1"],[,,,,"-1"]],[,[,,,,"-1"],[,,,,"-1"],[,,,,"1"],["1","1","-1","-1"]]],[,[,[,,,,"1"],[,,,,"1"],[,,,,"1"],["-1","-1","1\
4 | ","1"]],[,[,,,,"-1"],[,,,,"1"],[,,,,"-1"],["-1","1","-1","1"]],[,[,,,,"-1"],[,,,,"1"],[,,,,"-1"],["-1","1","1","-1"]],[,["1","1","1","1"],["-1","1","-1","1"],["-1","1","-1","1"],[,,,\
5 | ,"-1/2,-1/2,1/2,-1/2,1/2,1/2,1/2,-1/2,-1/2,1/2,1/2,1/2,1/2,-1/2,1/2,1/2"]]]]
6 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/Q8/Q8Dec.g:
--------------------------------------------------------------------------------
1 | [[["1","1"],["1","1"],["1","1"],["1","1"],["1,0,0,1","1,0,0,1"]],[["1","1"],["1","1"],["1","1"],["1","1"],["0,1,1,0","0,1,1,0"]],[["1","1"],["1","1"],["1","1"],["1","1"],["-1,0,0,1",\
2 | "-1,0,0,1"]],[["1","1"],["1","1"],["1","1"],["1","1"],["0,-1,1,0","0,1,-1,0"]],[["1,0,0,1","1,0,0,1"],["0,1,1,0","0,1,1,0"],["-1,0,0,1","-1,0,0,1"],["0,-1,1,0","0,1,-1,0"],["0,-1,1,0\
3 | ,-1,0,0,1,0,1,1,0,1,0,0,1","0,-1/2,0,1/2,-1/2,0,1/2,0,1/2,0,1/2,0,0,1/2,0,1/2"]]]
4 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/Q8/Q8Key.g:
--------------------------------------------------------------------------------
1 | [ "8,4", 4, 1, "Q8Ass.g", true ]
2 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/Q8/Q8Reps.g:
--------------------------------------------------------------------------------
1 | [[ "y", "x*y*y2" ],
2 | "[ [ 1, 1, 1, 1, 1 ], [ 1, -1, -1, 1, 1 ], [ 1, -1, 1, 1, -1 ], [ 1, 1, -1, 1, -1 ], [ 2, 0, 0, -2, 0 ] ]",
3 | [["1","1"],["-1","1"],["1","-1"],["-1","-1"],["-e,0,0,e","0,-e,-e,0"]],
4 | [ 1, 1, 1, 1, 2 ]]
5 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/Q8/WriteQ8.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "GroupRepresentationsForCAP" );
2 | G := QuaternionGroup( 8 );
3 | ComputeAssociator( G, false, true, false );
4 | WriteAssociatorComputationToFiles( "Q8" );
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/AssociatorsDatabase/S3Ass.g:
--------------------------------------------------------------------------------
1 | [[[["1"],[,"-1/3"]],[[,"1"],["1","-1","-3"]]],[[[,"-3"],["-1","1","-1"]],[["-1","-1","1/3"],["-1","-1/2,-1,1/2,1/2,0,1/2,-1/2,1,1/2","1"]]]]
2 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/gap/Tools.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GroupRepresentationsForCAP: Skeletal category of group representations for CAP
3 | #
4 | # Declarations
5 | #
6 | #! @Chapter Tools
7 |
8 | ##
9 | DeclareAttribute( "MultiplicityArray", IsGroup );
10 |
11 | ##
12 | DeclareAttribute( "MultiplicityTripleArray", IsGroup );
13 |
14 | #! @Section Helper functions
15 |
16 | #! @Description
17 | #! The argument is a list L defining an object `c` in a semisimple category.
18 | #! The output is a LaTeX string (without enclosing dollar signs) that may be used to print out `c` nicely.
19 | #! @Returns a string
20 | #! @Arguments L
21 | DeclareGlobalFunction( "LaTeXStringOfSemisimpleCategoryObjectList" );
22 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/init.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GroupRepresentationsForCAP: Skeletal category of group representations for CAP
3 | #
4 | # Reading the declaration part of the package.
5 | #
6 |
7 | ReadPackage( "GroupRepresentationsForCAP", "gap/SemisimpleCategoryObjects.gd" );
8 |
9 | ReadPackage( "GroupRepresentationsForCAP", "gap/SemisimpleCategoryMorphisms.gd" );
10 |
11 | ReadPackage( "GroupRepresentationsForCAP", "gap/SemisimpleCategory.gd" );
12 |
13 | ReadPackage( "GroupRepresentationsForCAP", "gap/GIrreducibleObjects.gd" );
14 |
15 | ReadPackage( "GroupRepresentationsForCAP", "gap/GZGradedIrreducibleObjects.gd" );
16 |
17 | ReadPackage( "GroupRepresentationsForCAP", "gap/RepresentationCategoryOfGroup.gd" );
18 |
19 | ReadPackage( "GroupRepresentationsForCAP", "gap/AssociatorsForRepresentationCategoryOfGroup.gd" );
20 |
21 | ReadPackage( "GroupRepresentationsForCAP", "gap/Tools.gd" );
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GroupRepresentationsForCAP: Skeletal category of group representations for CAP
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/read.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GroupRepresentationsForCAP: Skeletal category of group representations for CAP
3 | #
4 | # Reading the implementation part of the package.
5 | #
6 |
7 | ReadPackage( "GroupRepresentationsForCAP", "gap/SemisimpleCategoryObjects.gi" );
8 |
9 | ReadPackage( "GroupRepresentationsForCAP", "gap/SemisimpleCategoryMorphisms.gi" );
10 |
11 | ReadPackage( "GroupRepresentationsForCAP", "gap/SemisimpleCategory.gi" );
12 |
13 | ReadPackage( "GroupRepresentationsForCAP", "gap/GIrreducibleObjects.gi" );
14 |
15 | ReadPackage( "GroupRepresentationsForCAP", "gap/GZGradedIrreducibleObjects.gi" );
16 |
17 | ReadPackage( "GroupRepresentationsForCAP", "gap/RepresentationCategoryOfGroup.gi" );
18 |
19 | ReadPackage( "GroupRepresentationsForCAP", "gap/AssociatorsForRepresentationCategoryOfGroup.gi" );
20 |
21 | ReadPackage( "GroupRepresentationsForCAP", "gap/Tools.gi" );
--------------------------------------------------------------------------------
/GroupRepresentationsForCAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # GroupRepresentationsForCAP: Skeletal category of group representations for CAP
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "IO_ForHomalg", false );
11 | true
12 | gap> LoadPackage( "GroupRepresentationsForCAP", false );
13 | true
14 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
15 | gap> LoadPackage( "IO_ForHomalg" );
16 | true
17 | gap> LoadPackage( "GroupRepresentationsForCAP" );
18 | true
19 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
20 | gap> HOMALG_IO.show_banners := false;;
21 |
--------------------------------------------------------------------------------
/HomologicalAlgebraForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/homologicalalgebraforcap*.tst
35 |
--------------------------------------------------------------------------------
/HomologicalAlgebraForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Homological algebra algorithms
2 |
--------------------------------------------------------------------------------
/HomologicalAlgebraForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/HomologicalAlgebraForCAP/examples/SpectralSequences.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "HomologicalAlgebraForCAP" );
2 |
3 | LoadPackage( "LinearAlgebraForCAP" );
4 |
5 | Q := HomalgFieldOfRationals();
6 |
7 | A := VectorSpaceObject( 2, Q );
8 |
9 | CA := AsPointedCocomplex( A, 0 );
10 |
11 | SetIsAbelianCategory( CapCategory( CA ), true );
12 |
13 | CAA := AsPointedCocomplex( CA, 0 );
14 |
15 | S := SpectralSequenceDifferential( CAA, 2, 0, 0 );
16 |
--------------------------------------------------------------------------------
/HomologicalAlgebraForCAP/init.g:
--------------------------------------------------------------------------------
1 |
2 | ReadPackage( "HomologicalAlgebraForCAP", "gap/HomologicalAlgebraAlgorithms.gd" );
3 |
4 |
--------------------------------------------------------------------------------
/HomologicalAlgebraForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # HomologicalAlgebraForCAP: Homological algebra algorithms for CAP
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/HomologicalAlgebraForCAP/read.g:
--------------------------------------------------------------------------------
1 |
2 | ReadPackage( "HomologicalAlgebraForCAP", "gap/HomologicalAlgebraAlgorithms.gi" );
3 |
4 |
--------------------------------------------------------------------------------
/InternalExteriorAlgebraForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/internalexterioralgebraforcap*.tst
35 |
--------------------------------------------------------------------------------
/InternalExteriorAlgebraForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Internal Exterior Algebra Modules
2 |
--------------------------------------------------------------------------------
/InternalExteriorAlgebraForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/InternalExteriorAlgebraForCAP/examples/HMCohomology.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "InternalExteriorAlgebraForCAP" );
2 |
3 | RepG := RepresentationCategoryZGraded( 1000, 93 );
4 |
5 | irr := Irr( UnderlyingGroupForRepresentationCategory( RepG ) );
6 |
7 | v := RepresentationCategoryZGradedObject( -1, irr[6], RepG );
8 |
9 | h := RepresentationCategoryZGradedObject( 4, irr[5], RepG );
10 |
11 | cat := EModuleActionCategory( v );
12 |
13 | F := FreeEModule( h, cat );
14 |
15 | chi := Support( ActionDomain( F ) )[7];
16 |
17 | c := ComponentInclusionMorphism( ActionDomain( F ), chi );
18 |
19 | u := UniversalMorphismFromFreeModule( F, c );
20 |
--------------------------------------------------------------------------------
/InternalExteriorAlgebraForCAP/init.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # InternalExteriorAlgebraForCAP: Constructions for Modules over the Internal Exterior Algebra for CAP
3 | #
4 | # Reading the declaration part of the package.
5 | #
6 |
7 | ReadPackage( "InternalExteriorAlgebraForCAP", "gap/InternalExteriorAlgebraModules.gd" );
8 |
--------------------------------------------------------------------------------
/InternalExteriorAlgebraForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # InternalExteriorAlgebraForCAP: Constructions for Modules over the Internal Exterior Algebra for CAP
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/InternalExteriorAlgebraForCAP/read.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # InternalExteriorAlgebraForCAP: Constructions for Modules over the Internal Exterior Algebra for CAP
3 | #
4 | # Reading the implementation part of the package.
5 | #
6 | ReadPackage( "InternalExteriorAlgebraForCAP", "gap/InternalExteriorAlgebraModules.gi" );
7 |
--------------------------------------------------------------------------------
/Jenkinsfile:
--------------------------------------------------------------------------------
1 | pipeline {
2 | agent any
3 |
4 | triggers {
5 | cron(env.BRANCH_NAME == 'master' ? '00 04 * * *' : '')
6 | }
7 |
8 | options {
9 | checkoutToSubdirectory('pkg/CAP_project')
10 | }
11 |
12 | stages {
13 | stage('test') {
14 | steps {
15 | dir('pkg') {
16 | sh 'rm -rf homalg_project; git clone --depth 1 https://github.com/homalg-project/homalg_project.git'
17 | }
18 |
19 | dir('pkg') {
20 | sh 'make -C "CAP_project/CAP" doc'
21 | sh 'make -C "CAP_project/CompilerForCAP" doc'
22 | sh 'make -C "CAP_project/MonoidalCategories" doc'
23 | sh 'make -C "CAP_project/CartesianCategories" doc'
24 | sh 'make -C "CAP_project/FreydCategoriesForCAP" doc'
25 | sh 'make -C "homalg_project/homalg" doc'
26 | sh 'make -C "homalg_project/Modules" doc'
27 | }
28 |
29 | dir('pkg/CAP_project') {
30 | sh 'make --trace -j $(nproc) --output-sync ci-test'
31 | }
32 | }
33 | }
34 | }
35 |
36 | post {
37 | success {
38 | cleanWs()
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/.gitignore:
--------------------------------------------------------------------------------
1 | /doc/chap*.html
2 | /doc/chap*.txt
3 | /doc/*.css
4 | /doc/*.js
5 | /doc/chooser.html
6 | /doc/*.aux
7 | /doc/*.bbl
8 | /doc/*.blg
9 | /doc/*.brf
10 | /doc/*.idx
11 | /doc/*.ilg
12 | /doc/*.ind
13 | /doc/*.lab
14 | /doc/*.log
15 | /doc/*.out
16 | /doc/*.pnr
17 | /doc/*.six
18 | /doc/*.tex
19 | /doc/*.toc
20 | /doc/manual.pdf
21 | /doc/_*.xml
22 |
23 | /bin/
24 | /gen/
25 | /Makefile
26 |
27 | /tmp/
28 | /gh-pages/
29 |
30 | /coverage.json
31 | /doc/*.xml
32 | /doc_tmp/
33 | /stats
34 | /tst/linearalgebraforcap*.tst
35 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/LogicForMatrixCategory/PredicateImplicationsForMatrixCategory.tex:
--------------------------------------------------------------------------------
1 | \begin{sequent}
2 | \begin{align*}
3 | \alpha:\Mor ~|~ \IsEpimorphism( \alpha ), \IsEndomorphism( \alpha ) \vdash \IsIsomorphism( \alpha )
4 | \end{align*}
5 | \end{sequent}
6 |
7 | \begin{sequent}
8 | \begin{align*}
9 | \alpha:\Mor ~|~ \IsMonomorphism( \alpha ), \IsEndomorphism( \alpha ) \vdash \IsIsomorphism( \alpha )
10 | \end{align*}
11 | \end{sequent}
12 |
13 | \begin{sequent}
14 | \begin{align*}
15 | \alpha:\Mor ~|~ \IsMonomorphism( \alpha ) \vdash \IsSplitMonomorphism( \alpha )
16 | \end{align*}
17 | \end{sequent}
18 |
19 | \begin{sequent}
20 | \begin{align*}
21 | \alpha:\Mor ~|~ \IsEpimorphism( \alpha ) \vdash \IsSplitEpimorphism( \alpha )
22 | \end{align*}
23 | \end{sequent}
24 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/doc/Doc.autodoc:
--------------------------------------------------------------------------------
1 | @Chapter Category of Matrices
2 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/doc/clean:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | rm -f *.{aux,bbl,blg,brf,css,html,idx,ilg,ind,js,lab,log,out,pdf,pnr,six,tex,toc,txt,xml,xml.bib}
3 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/examples/LinearAlgebraMissingsOperations.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "LinearAlgebraForCAP" );
2 |
3 | Q := HomalgFieldOfRationals( );
4 |
5 | vec := MatrixCategory( Q );
6 |
7 | V := MatrixCategoryObject( vec, 1 );
8 |
9 | W := MatrixCategoryObject( vec, 2 );
10 |
11 | alpha := VectorSpaceMorphism( V, HomalgMatrix( [ [ 1, 0 ] ], Q ), W );
12 |
13 | vecspaces := CapCategory( V );
14 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/examples/MatrixCategory.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "LinearAlgebraForCAP" );
2 |
3 | Q := HomalgFieldOfRationals( );
4 |
5 | vec := MatrixCategory( Q );
6 |
7 | a := MatrixCategoryObject( vec, 3 );
8 |
9 | b := MatrixCategoryObject( vec, 4 );
10 |
11 | homalg_matrix := HomalgMatrix( [ [ 1, 0, 0, 0 ], [ 0, 1, 0, -1 ], [ -1, 0, 2, 1 ] ], 3, 4, Q );
12 |
13 | alpha := VectorSpaceMorphism( a, homalg_matrix, b );
14 |
15 | homalg_matrix := HomalgMatrix( [ [ 1, 1, 0, 0 ], [ 0, 1, 0, -1 ], [ -1, 0, 2, 1 ] ], 3, 4, Q );
16 |
17 | beta := VectorSpaceMorphism( a, homalg_matrix, b );
18 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/gap/MatrixCategory_as_CategoryOfRows.gd:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # LinearAlgebraForCAP: Category of Matrices over a Field for CAP
3 | #
4 | # Declarations
5 | #
6 |
7 | #! @Chapter Category of Matrices
8 |
9 | ####################################
10 | ##
11 | #! @Section Constructors
12 | ##
13 | ####################################
14 |
15 | #! @Description
16 | #! The argument is a homalg field $F$.
17 | #! The output is the matrix category over $F$,
18 | #! constructed internally as a wrapper category of
19 | #! the `CategoryOfRows` of $F$.
20 | #! Only available if the package `FreydCategoriesForCAP` is available.
21 | #! @Returns a category
22 | #! @Arguments F
23 | DeclareOperation( "MatrixCategory_as_CategoryOfRows",
24 | [ IsFieldForHomalg ] );
25 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/init.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # LinearAlgebraForCAP: Category of Matrices over a Field for CAP
3 | #
4 | # Reading the declaration part of the package.
5 | #
6 |
7 | ReadPackage( "LinearAlgebraForCAP", "gap/LinearAlgebraForCAP.gd" );
8 |
9 | ReadPackage( "LinearAlgebraForCAP", "gap/MatrixCategoryObject.gd" );
10 |
11 | ReadPackage( "LinearAlgebraForCAP", "gap/MatrixCategoryMorphism.gd" );
12 |
13 | ReadPackage( "LinearAlgebraForCAP", "gap/MatrixCategory_as_CategoryOfRows.gd" );
14 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/makedoc.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # LinearAlgebraForCAP: Category of Matrices over a Field for CAP
3 | #
4 | # This file is a script which compiles the package manual.
5 | #
6 | if fail = LoadPackage( "AutoDoc", "2019.05.20" ) then
7 |
8 | Error( "AutoDoc version 2019.05.20 or newer is required." );
9 |
10 | fi;
11 |
12 | AutoDoc( rec(
13 | autodoc := rec(
14 | files := [ "doc/Doc.autodoc" ],
15 | scan_dirs := [ "doc", "gap", "examples", "examples/doc" ],
16 | ),
17 | extract_examples := rec(
18 | units := "Single",
19 | ),
20 | gapdoc := rec(
21 | LaTeXOptions := rec(
22 | LateExtraPreamble := """
23 | """,
24 | ),
25 | ),
26 | scaffold := rec(
27 | entities := [ "homalg", "CAP" ],
28 | ),
29 | ) );
30 |
31 | QUIT;
32 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/read.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # LinearAlgebraForCAP: Category of Matrices over a Field for CAP
3 | #
4 | # Reading the implementation part of the package.
5 | #
6 | ReadPackage( "LinearAlgebraForCAP", "gap/precompiled_categories/MatrixCategory_precompiled.gi" );
7 |
8 | ReadPackage( "LinearAlgebraForCAP", "gap/LinearAlgebraForCAP.gi" );
9 |
10 | ReadPackage( "LinearAlgebraForCAP", "gap/MatrixCategoryObject.gi" );
11 |
12 | ReadPackage( "LinearAlgebraForCAP", "gap/MatrixCategoryMorphism.gi" );
13 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/tst/100_LoadPackage.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # LinearAlgebraForCAP: Category of Matrices over a Field for CAP
3 | #
4 | # This file tests if the package can be loaded without errors or warnings.
5 | #
6 | # do not load suggested dependencies automatically
7 | gap> PushOptions( rec( OnlyNeeded := true ) );
8 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
9 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
10 | gap> LoadPackage( "LinearAlgebraForCAP", false );
11 | true
12 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
13 | gap> LoadPackage( "LinearAlgebraForCAP" );
14 | true
15 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
16 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/tst/200_FreydCategoriesForCAP.tst:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # LinearAlgebraForCAP: Category of Matrices over a Field for CAP
3 | #
4 | # tests without precompiled code need FreydCategoriesForCAP
5 | #@if ValueOption( "no_precompiled_code" ) = true
6 | gap> PushOptions( rec( OnlyNeeded := true ) );
7 | gap> package_loading_info_level := InfoLevel( InfoPackageLoading );;
8 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_ERROR );;
9 | gap> LoadPackage( "FreydCategoriesForCAP", false );
10 | true
11 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );;
12 | gap> LoadPackage( "FreydCategoriesForCAP" );
13 | true
14 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );;
15 | #@fi
16 |
--------------------------------------------------------------------------------
/LinearAlgebraForCAP/tst/testall_no_precompiled_code.g:
--------------------------------------------------------------------------------
1 | # SPDX-License-Identifier: GPL-2.0-or-later
2 | # LinearAlgebraForCAP: Category of Matrices over a Field for CAP
3 | #
4 | # This file runs package tests without precompiled code.
5 | #
6 | PushOptions(
7 | rec(
8 | no_precompiled_code := true,
9 | )
10 | );
11 |
12 | options := rec(
13 | exitGAP := true,
14 | testOptions := rec(
15 | compareFunction := "uptowhitespace",
16 | ),
17 | );
18 |
19 | TestDirectory( DirectoriesPackageLibrary( "LinearAlgebraForCAP", "tst" ), options );
20 |
21 | FORCE_QUIT_GAP( 1 ); # if we ever get here, there was an error
22 |
--------------------------------------------------------------------------------
/Manual/CAPManual.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/Manual/CAPManual.pdf
--------------------------------------------------------------------------------
/Manual/GAP_code/group_example/complete_example.g:
--------------------------------------------------------------------------------
1 | LoadPackage( "CAP" );
2 | grps := CreateCapCategory( "groups" );
3 | AddPreCompose( grps, { cat, mor1, mor2 } -> mor1 * mor2 );
4 | identity_func := { cat, grp } -> GroupHomomorphismByImages( grp, grp );
5 | AddIdentityMorphism( grps, identity_func );
6 | congruence_func := { cat, mor1, mor2 } -> mor1 = mor2;
7 | AddIsCongruentForMorphisms( grps, congruence_func );
8 | EnableAddForCategoricalOperations( grps );
9 | Finalize( grps );
10 | S3 := SymmetricGroup( 3 );
11 | AddObject( grps, S3 );
12 | S4 := SymmetricGroup( 4 );
13 | AddObject( grps, S4 );
14 | CapCategory( S3 );
15 | id_S3 := IdentityMorphism( S3 );
16 | PreCompose( id_S3, id_S3 );
17 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddGroup.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> S3 := SymmetricGroup( 3 );
3 | Sym( [ 1 .. 3 ] )
4 | gap> AddObject( grps, S3 );
5 | gap> S4 := SymmetricGroup( 4 );
6 | Sym( [ 1 .. 4 ] )
7 | gap> AddObject( grps, S4 );
8 | ## endgapcolor ##
9 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddGroup.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ S3 := SymmetricGroup( 3 );%
16 | Sym( [ 1 .. 3 ] )
17 | !color@blue%@gap>%!color@red%@ AddObject( grps, S3 );%
18 | !color@blue%@gap>%!color@red%@ S4 := SymmetricGroup( 4 ); %
19 | Sym( [ 1 .. 4 ] )
20 | !color@blue%@gap>%!color@red%@ AddObject( grps, S4 );%
21 | \end{Verbatim}
22 |
23 | \end{document}
24 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddGroup_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ S3 := SymmetricGroup( 3 );%
3 | Sym( [ 1 .. 3 ] )
4 | !color@blue%@gap>%!color@red%@ AddObject( grps, S3 );%
5 | !color@blue%@gap>%!color@red%@ S4 := SymmetricGroup( 4 ); %
6 | Sym( [ 1 .. 4 ] )
7 | !color@blue%@gap>%!color@red%@ AddObject( grps, S4 );%
8 | \end{Verbatim}
9 |
10 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddIdentityMorphism.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> identity_func := grp -> GroupHomomorphismByImages( grp, grp );
3 | function( grp ) ... end
4 | gap> AddIdentityMorphism( grps, identity_func );
5 | ## endgapcolor ##
6 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddIdentityMorphism.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ identity_func := grp -> GroupHomomorphismByImages( grp, grp );%
16 | function( grp ) ... end
17 | !color@blue%@gap>%!color@red%@ AddIdentityMorphism( grps, identity_func );%
18 | \end{Verbatim}
19 |
20 | \end{document}
21 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddIdentityMorphism_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ identity_func :=%
3 | !color@blue%@>%!color@red%@ { cat, grp } -> GroupHomomorphismByImages( grp, grp );%
4 | function( grp ) ... end
5 | !color@blue%@gap>%!color@red%@ AddIdentityMorphism( grps, identity_func );%
6 | \end{Verbatim}
7 |
8 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddIsCongruentForMorphisms.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> congruence_func := { cat, mor1, mor2 } -> mor1 = mor2;
3 | function( grp ) ... end
4 | gap> AddIsCongruentForMorphisms( grps, congruence_func );
5 | ## endgapcolor ##
6 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddIsCongruentForMorphisms.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ congruence_func := { cat, mor1, mor2 } -> mor1 = mor2;%
16 | function( grp ) ... end
17 | !color@blue%@gap>%!color@red%@ AddIsCongruentForMorphisms( grps, congruence_func );%
18 | \end{Verbatim}
19 |
20 | \end{document}
21 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddIsCongruentForMorphisms_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ congruence_func := { cat, mor1, mor2 } -> mor1 = mor2;%
3 | function( grp ) ... end
4 | !color@blue%@gap>%!color@red%@ AddIsCongruentForMorphisms( grps, congruence_func );%
5 | \end{Verbatim}
6 |
7 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddPreCompose.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> AddPreCompose( grps, { cat, mor1, mor2 } -> mor1 * mor2 );
3 | ## endgapcolor ##
4 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddPreCompose.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ AddPreCompose( grps, { cat, mor1, mor2 } -> mor1 * mor2 );%
16 | \end{Verbatim}
17 |
18 | \end{document}
19 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AddPreCompose_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ AddPreCompose( grps, { cat, mor1, mor2 } -> mor1 * mor2 );%
3 | \end{Verbatim}
4 |
5 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AdditionalMorphism.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> S3_S4 := GroupHomomorphismByImages( S3, S4, GeneratorsOfGroup(S3) );
3 | [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,2) ]
4 | gap> AddMorphism( grps, S3_S4 );
5 | gap> PreCompose( id_S3, S3_S4 );
6 | [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,2) ]
7 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AdditionalMorphism.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ S3_S4 := GroupHomomorphismByImages( S3, S4, GeneratorsOfGroup(S3) );%
16 | [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,2) ]
17 | !color@blue%@gap>%!color@red%@ AddMorphism( grps, S3_S4 );%
18 | !color@blue%@gap>%!color@red%@ PreCompose( id_S3, S3_S4 );%
19 | [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,2) ]
20 | \end{Verbatim}
21 | \end{document}
22 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/AdditionalMorphism_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ S3_S4 := GroupHomomorphismByImages( S3, S4, GeneratorsOfGroup(S3) );%
3 | [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,2) ]
4 | !color@blue%@gap>%!color@red%@ AddMorphism( grps, S3_S4 );%
5 | !color@blue%@gap>%!color@red%@ PreCompose( id_S3, S3_S4 );%
6 | [ (1,2,3), (1,2) ] -> [ (1,2,3), (1,2) ]
7 | \end{Verbatim}
8 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/CreateCategory.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> LoadPackage( "CAP" );
3 | true
4 | gap> grps := CreateCapCategory( "groups" );
5 | groups
6 | ## endgapcolor ##
7 |
8 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/CreateCategory.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ LoadPackage( "CAP" );%
16 | true
17 | !color@blue%@gap>%!color@red%@ grps := CreateCapCategory( "groups" );%
18 | groups
19 | \end{Verbatim}
20 | \end{document}
21 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/CreateCategory_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=^@\%,frame=single]
2 | ^color@blue%@gap>%^color@red%@ LoadPackage( "CAP" );%
3 | true
4 | ^color@blue%@gap>%^color@red%@ grps := CreateCapCategory( "groups" );%
5 | groups
6 | \end{Verbatim}
7 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/EnableAdd.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> EnableAddForCategoricalOperations( grps );
3 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/EnableAdd.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ EnableAddForCategoricalOperations( grps );%
16 | \end{Verbatim}
17 | \end{document}
18 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/EnableAdd_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ EnableAddForCategoricalOperations( grps );%
3 | \end{Verbatim}
4 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/Finalize.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> Finalize( grps );
3 | true
4 | ## endgapcolor ##
5 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/Finalize.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ Finalize( grps );%
16 | true
17 | \end{Verbatim}
18 |
19 | \end{document}
20 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/Finalize_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ Finalize( grps );%
3 | true
4 | \end{Verbatim}
5 |
6 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/GroupFilter.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> CapCategory( S3 );
3 | groups
4 | gap> IsCapCategoryObject( S4 );
5 | true
6 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/GroupFilter.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ CapCategory( S3 );%
16 | groups
17 | !color@blue%@gap>%!color@red%@ IsCapCategoryObject( S4 );%
18 | true
19 | \end{Verbatim}
20 | \end{document}
21 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/GroupFilter_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ CapCategory( S3 );%
3 | groups
4 | !color@blue%@gap>%!color@red%@ IsCapCategoryObject( S4 );%
5 | true
6 | \end{Verbatim}
7 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/IdentityMorphism.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> id_S3 := IdentityMorphism( S3 );
3 | IdentityMapping( Sym( [ 1 .. 3 ] ) )
4 | gap> PreCompose( id_S3, id_S3 );
5 | IdentityMapping( Sym( [ 1 .. 3 ] ) )
6 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/IdentityMorphism.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ id_S3 := IdentityMorphism( S3 );%
16 | IdentityMapping( Sym( [ 1 .. 3 ] ) )
17 | !color@blue%@gap>%!color@red%@ PreCompose( id_S3, id_S3 );%
18 | IdentityMapping( Sym( [ 1 .. 3 ] ) )
19 | \end{Verbatim}
20 | \end{document}
21 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/group_example/IdentityMorphism_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ id_S3 := IdentityMorphism( S3 );%
3 | IdentityMapping( Sym( [ 1 .. 3 ] ) )
4 | !color@blue%@gap>%!color@red%@ PreCompose( id_S3, id_S3 );%
5 | IdentityMapping( Sym( [ 1 .. 3 ] ) )
6 | \end{Verbatim}
7 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/ApplyDoubleFunctor.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> ApplyFunctor( double_functor, V2 );
3 |
4 | gap> alpha2 := SQVecMor( V3, [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ] ], V2 );
5 | A morphism in SQVec with underlying matrix:
6 | [ [ 0, 0 ],
7 | [ 1, 0 ],
8 | [ 0, 1 ] ]
9 |
10 | gap> ApplyFunctor( double_functor, alpha2 );
11 | A morphism in SQVec with underlying matrix:
12 | [ [ 0, 0, 0, 0 ],
13 | [ 1, 0, 0, 0 ],
14 | [ 0, 1, 0, 0 ],
15 | [ 0, 0, 0, 0 ],
16 | [ 0, 0, 1, 0 ],
17 | [ 0, 0, 0, 1 ] ]
18 |
19 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/ApplyDoubleFunctor.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ ApplyFunctor( double_functor, V2 );%
16 |
17 | !color@blue%@gap>%!color@red%@ alpha2 := SQVecMor( V3, [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ] ], V2 );%
18 | A morphism in SQVec with underlying matrix:
19 | [ [ 0, 0 ],
20 | [ 1, 0 ],
21 | [ 0, 1 ] ]
22 |
23 | !color@blue%@gap>%!color@red%@ ApplyFunctor( double_functor, alpha2 );%
24 | A morphism in SQVec with underlying matrix:
25 | [ [ 0, 0, 0, 0 ],
26 | [ 1, 0, 0, 0 ],
27 | [ 0, 1, 0, 0 ],
28 | [ 0, 0, 0, 0 ],
29 | [ 0, 0, 1, 0 ],
30 | [ 0, 0, 0, 1 ] ]
31 |
32 | \end{Verbatim}
33 | \end{document}
34 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/ApplyDoubleFunctor_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ ApplyFunctor( double_functor, V2 );%
3 |
4 | !color@blue%@gap>%!color@red%@ alpha2 := SQVecMor( V3, [ [ 0, 0 ], [ 1, 0 ], [ 0, 1 ] ], V2 );%
5 | A morphism in SQVec with underlying matrix:
6 | [ [ 0, 0 ],
7 | [ 1, 0 ],
8 | [ 0, 1 ] ]
9 |
10 | !color@blue%@gap>%!color@red%@ ApplyFunctor( double_functor, alpha2 );%
11 | A morphism in SQVec with underlying matrix:
12 | [ [ 0, 0, 0, 0 ],
13 | [ 1, 0, 0, 0 ],
14 | [ 0, 1, 0, 0 ],
15 | [ 0, 0, 0, 0 ],
16 | [ 0, 0, 1, 0 ],
17 | [ 0, 0, 0, 1 ] ]
18 |
19 | \end{Verbatim}
20 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/Cokernel.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | ##
4 | AddCokernelProjection( SQVec,
5 |
6 | function( cat, alpha )
7 | local cokernel_proj, cokernel_obj;
8 |
9 | cokernel_proj := SyzygiesOfColumns( UnderlyingMatrix( alpha ) );
10 |
11 | cokernel_obj := SQVecObj( NrColumns( cokernel_proj ) );
12 |
13 | return SQVecMor( Range( alpha ),
14 | cokernel_proj, cokernel_obj );
15 |
16 | end );
17 |
18 | ##
19 | AddColiftAlongEpimorphism( SQVec,
20 |
21 | function( cat, epsilon, tau )
22 |
23 | return SQVecMor( Range( epsilon ),
24 | LeftDivide(
25 | UnderlyingMatrix( epsilon ),
26 | UnderlyingMatrix( tau ) ),
27 | Range( tau ) );
28 |
29 | end );
30 | \end{Verbatim}
31 | \end{small}
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/CreateMorphisms.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> V2 := SQVecObj( 2 );
3 |
4 | gap> V3 := SQVecObj( 3 );
5 |
6 | gap> alpha := SQVecMor( V2, [ [ 1, 1, 1 ], [ -1, -1, -1 ] ], V3 );
7 | A morphism in SQVec with underlying matrix:
8 | [ [ 1, 1, 1 ],
9 | [ -1, -1, -1 ] ]
10 |
11 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/CreateMorphisms.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ V2 := SQVecObj( 2 );%
16 |
17 | !color@blue%@gap>%!color@red%@ V3 := SQVecObj( 3 );%
18 |
19 | !color@blue%@gap>%!color@red%@ alpha := SQVecMor( V2, [ [ 1, 1, 1 ], [ -1, -1, -1 ] ], V3 );%
20 | A morphism in SQVec with underlying matrix:
21 | [ [ 1, 1, 1 ],
22 | [ -1, -1, -1 ] ]
23 |
24 | \end{Verbatim}
25 | \end{document}
26 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/CreateMorphisms_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ V2 := SQVecObj( 2 );%
3 |
4 | !color@blue%@gap>%!color@red%@ V3 := SQVecObj( 3 );%
5 |
6 | !color@blue%@gap>%!color@red%@ alpha := SQVecMor( V2, [ [ 1, 1, 1 ], [ -1, -1, -1 ] ], V3 );%
7 | A morphism in SQVec with underlying matrix:
8 | [ [ 1, 1, 1 ],
9 | [ -1, -1, -1 ] ]
10 |
11 | \end{Verbatim}
12 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/DerivedMethodsExample.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> IsMonomorphism( alpha );
3 | false
4 | gap> IsEpimorphism( alpha );
5 | false
6 | gap> ImageEmbedding( alpha );
7 | A morphism in SQVec with underlying matrix:
8 | [ [ 1, 1, 1 ] ]
9 |
10 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/DerivedMethodsExample.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ IsMonomorphism( alpha );%
16 | false
17 | !color@blue%@gap>%!color@red%@ IsEpimorphism( alpha );%
18 | false
19 | !color@blue%@gap>%!color@red%@ ImageEmbedding( alpha );%
20 | A morphism in SQVec with underlying matrix:
21 | [ [ 1, 1, 1 ] ]
22 |
23 | \end{Verbatim}
24 | \end{document}
25 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/DerivedMethodsExample_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ IsMonomorphism( alpha );%
3 | false
4 | !color@blue%@gap>%!color@red%@ IsEpimorphism( alpha );%
5 | false
6 | !color@blue%@gap>%!color@red%@ ImageEmbedding( alpha );%
7 | A morphism in SQVec with underlying matrix:
8 | [ [ 1, 1, 1 ] ]
9 |
10 | \end{Verbatim}
11 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/DoubleFunctor.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | double_functor :=
4 | CapFunctor( "DoubleOfVecspaces", SQVec, SQVec );
5 |
6 | AddObjectFunction( double_functor,
7 |
8 | function( obj )
9 |
10 | return SQVecObj( 2 * Dimension( obj ) );
11 |
12 | end );
13 |
14 | AddMorphismFunction( double_functor,
15 |
16 | function( new_source, mor, new_range )
17 | local matr;
18 |
19 | matr := UnderlyingMatrix( mor );
20 |
21 | return
22 | SQVecMor( new_source, DiagMat( [ matr, matr ] ), new_range );
23 |
24 | end );
25 | \end{Verbatim}
26 | \end{small}
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/Equalities.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | AddIsEqualForObjects( SQVec,
4 |
5 | function( cat, a, b )
6 |
7 | return Dimension( a ) = Dimension( b );
8 |
9 | end );
10 |
11 | equality_function := function( cat, alpha, beta )
12 | return UnderlyingMatrix( alpha ) = UnderlyingMatrix( beta );
13 | end;
14 |
15 | AddIsEqualForMorphisms( SQVec, equality_function );
16 |
17 | AddIsCongruentForMorphisms( SQVec, equality_function );
18 | \end{Verbatim}
19 | \end{small}
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/Finalize.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | Finalize( SQVec );
4 | \end{Verbatim}
5 | \end{small}
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/Functions1.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | AddIdentityMorphism( SQVec,
4 |
5 | function( cat, a )
6 |
7 | return SQVecMor( a,
8 | HomalgIdentityMatrix( Dimension( a ), QQ ),
9 | a );
10 |
11 | end );
12 |
13 | AddPreCompose( SQVec,
14 |
15 | function( cat, alpha, beta )
16 | local composition;
17 |
18 | composition := UnderlyingMatrix( alpha ) * UnderlyingMatrix( beta );
19 |
20 | return SQVecMor( Source( alpha ), composition, Range( beta ) );
21 |
22 | end );
23 | \end{Verbatim}
24 | \end{small}
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IdentityFunctor.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> id_functor := CapFunctor( "Identity of SQVec", SQVec, SQVec );
3 | Identity of SQVec
4 | gap> AddObjectFunction( id_functor, IdFunc );
5 | gap> AddMorphismFunction( id_functor,
6 | > function( obj1, mor, obj2 ) return mor; end );
7 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IdentityFunctor.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ id_functor := CapFunctor( "Identity of SQVec", SQVec, SQVec );%
16 | Identity of SQVec
17 | !color@blue%@gap>%!color@red%@ AddObjectFunction( id_functor, IdFunc );%
18 | !color@blue%@gap>%!color@red%@ AddMorphismFunction( id_functor,%
19 | !color@blue%@>%!color@red%@ function( obj1, mor, obj2 ) return mor; end );%
20 | \end{Verbatim}
21 | \end{document}
22 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IdentityFunctor2.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> id_functor := IdentityMorphism( AsCatObject( SQVec ) );
3 | Identity functor of Skeletal category of rational vector spaces
4 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IdentityFunctor2.tex:
--------------------------------------------------------------------------------
1 | \documentclass[12pt]{amsart}
2 | \usepackage{graphicx}
3 | \usepackage{a4wide}
4 | \usepackage{amssymb}
5 | \usepackage{xcolor}
6 | \usepackage{fancyvrb}
7 |
8 | \title{GAP Code}
9 | \author{}
10 |
11 | \begin{document}
12 | \maketitle
13 |
14 | \begin{Verbatim}[commandchars=!@\%,frame=single]
15 | !color@blue%@gap>%!color@red%@ id_functor := IdentityMorphism( AsCatObject( SQVec ) );%
16 | Identity functor of Skeletal category of rational vector spaces
17 | \end{Verbatim}
18 | \end{document}
19 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IdentityFunctor2_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ id_functor := IdentityMorphism( AsCatObject( SQVec ) );%
3 | Identity functor of Skeletal category of rational vector spaces
4 | \end{Verbatim}
5 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IdentityFunctor_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ id_functor := CapFunctor( "Identity of SQVec", SQVec, SQVec );%
3 | Identity of SQVec
4 | !color@blue%@gap>%!color@red%@ AddObjectFunction( id_functor, IdFunc );%
5 | !color@blue%@gap>%!color@red%@ AddMorphismFunction( id_functor,%
6 | !color@blue%@>%!color@red%@ function( obj1, mor, obj2 ) return mor; end );%
7 | \end{Verbatim}
8 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/InstallFunctor.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> InstallFunctor( double_functor, "DoubleFunctor" );
3 | gap> V4 := DoubleFunctor( V2 );
4 |
5 | gap> V4_2 := ApplyFunctor( double_functor, V2 );
6 |
7 | gap> IsIdenticalObj( V4, V4_2 );
8 | true
9 | gap> DoubleFunctor( alpha2 );
10 | A morphism in SQVec with underlying matrix:
11 | [ [ 0, 0, 0, 0 ],
12 | [ 1, 0, 0, 0 ],
13 | [ 0, 1, 0, 0 ],
14 | [ 0, 0, 0, 0 ],
15 | [ 0, 0, 1, 0 ],
16 | [ 0, 0, 0, 1 ] ]
17 |
18 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/InstallFunctor_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ InstallFunctor( double_functor, "DoubleFunctor" );%
3 | !color@blue%@gap>%!color@red%@ V4 := DoubleFunctor( V2 );%
4 |
5 | !color@blue%@gap>%!color@red%@ V4_2 := ApplyFunctor( double_functor, V2 );%
6 |
7 | !color@blue%@gap>%!color@red%@ IsIdenticalObj( V4, V4_2 );%
8 | true
9 | !color@blue%@gap>%!color@red%@ DoubleFunctor( alpha2 );%
10 | A morphism in SQVec with underlying matrix:
11 | [ [ 0, 0, 0, 0 ],
12 | [ 1, 0, 0, 0 ],
13 | [ 0, 1, 0, 0 ],
14 | [ 0, 0, 0, 0 ],
15 | [ 0, 0, 1, 0 ],
16 | [ 0, 0, 0, 1 ] ]
17 |
18 | \end{Verbatim}
19 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IntersectionExample.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> alpha := SQVecMor( V2, [ [ 1, 0, 0 ], [ 0, 1, 1 ] ], V3 );
3 | A morphism in SQVec with underlying matrix:
4 | [ [ 1, 0, 0 ],
5 | [ 0, 1, 1 ] ]
6 |
7 | gap> IsMonomorphism( alpha );
8 | true
9 |
10 | gap> beta := SQVecMor( V2, [ [ 1, 1, 0 ], [ 0, 0, 1 ] ], V3 );
11 | A morphism in SQVec with underlying matrix:
12 | [ [ 1, 1, 0 ],
13 | [ 0, 0, 1 ] ]
14 |
15 | gap> IsMonomorphism( beta );
16 | true
17 |
18 | gap> intersection := MorphismFromFiberProductToSink( [ alpha, beta ] );
19 | A morphism in SQVec with underlying matrix:
20 | [ [ 1, 1, 1 ] ]
21 |
22 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/IntersectionExample_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ alpha := SQVecMor( V2, [ [ 1, 0, 0 ], [ 0, 1, 1 ] ], V3 );%
3 | A morphism in SQVec with underlying matrix:
4 | [ [ 1, 0, 0 ],
5 | [ 0, 1, 1 ] ]
6 |
7 | !color@blue%@gap>%!color@red%@ IsMonomorphism( alpha );%
8 | true
9 |
10 | !color@blue%@gap>%!color@red%@ beta := SQVecMor( V2, [ [ 1, 1, 0 ], [ 0, 0, 1 ] ], V3 );%
11 | A morphism in SQVec with underlying matrix:
12 | [ [ 1, 1, 0 ],
13 | [ 0, 0, 1 ] ]
14 |
15 | !color@blue%@gap>%!color@red%@ IsMonomorphism( beta );%
16 | true
17 |
18 | !color@blue%@gap>%!color@red%@ intersection := MorphismFromFiberProductToSink( [ alpha, beta ] );%
19 | A morphism in SQVec with underlying matrix:
20 | [ [ 1, 1, 1 ] ]
21 |
22 | \end{Verbatim}
23 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/Kernel.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | ##
4 | AddKernelEmbedding( SQVec,
5 |
6 | function( cat, alpha )
7 | local kernel_emb, kernel_obj;
8 |
9 | kernel_emb := SyzygiesOfRows( UnderlyingMatrix( alpha ) );
10 |
11 | kernel_obj := SQVecObj( NrRows( kernel_emb ) );
12 |
13 | return SQVecMor( kernel_obj, kernel_emb, Source( alpha ) );
14 |
15 | end );
16 |
17 | ##
18 | AddKernelLift( SQVec,
19 |
20 | function( cat, alpha, T, tau )
21 | local kernel_matrix;
22 |
23 | kernel_matrix := SyzygiesOfRows( UnderlyingMatrix( alpha ) );
24 |
25 | return SQVecMor( Source( tau ),
26 | RightDivide( UnderlyingMatrix( tau ), kernel_matrix ),
27 | SQVecObj( NrRows( kernel_matrix ) ) );
28 |
29 | end );
30 | \end{Verbatim}
31 | \end{small}
32 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/KernelAlternative.gi:
--------------------------------------------------------------------------------
1 | AddKernelEmbedding( SQVec,
2 |
3 | function( cat, alpha )
4 | local kernel_emb, kernel_obj;
5 |
6 | kernel_emb := SyzygiesOfRows( UnderlyingMatrix( alpha ) );
7 |
8 | kernel_obj := SQVecObj( NrRows( kernel_emb ) );
9 |
10 | return SQVecMor( kernel_obj, kernel_emb, Source( alpha ) );
11 |
12 | end );
13 |
14 | AddLiftAlongMonomorphism( SQVec,
15 |
16 | function( cat, mu, tau )
17 |
18 | return SQVecMor(
19 | Source( tau ),
20 | RightDivide( UnderlyingMatrix( tau ), UnderlyingMatrix( mu ) ),
21 | Source( mu ) );
22 |
23 | end );
24 |
25 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/KernelAlternative.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | ##
4 | AddKernelEmbedding( SQVec,
5 |
6 | function( cat, alpha )
7 | local kernel_emb, kernel_obj;
8 |
9 | kernel_emb := SyzygiesOfRows( UnderlyingMatrix( alpha ) );
10 |
11 | kernel_obj := SQVecObj( NrRows( kernel_emb ) );
12 |
13 | return SQVecMor( kernel_obj, kernel_emb, Source( alpha ) );
14 |
15 | end );
16 |
17 | ##
18 | AddLiftAlongMonomorphism( SQVec,
19 |
20 | function( cat, mu, tau )
21 |
22 | return SQVecMor(
23 | Source( tau ),
24 | RightDivide( UnderlyingMatrix( tau ), UnderlyingMatrix( mu ) ),
25 | Source( mu ) );
26 |
27 | end );
28 | \end{Verbatim}
29 | \end{small}
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/KernelExample.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> KernelEmbedding( alpha );
3 | A morphism in SQVec with underlying matrix:
4 | [ [ 1, 1 ] ]
5 |
6 | gap> CokernelObject( alpha );
7 |
8 | gap> CokernelProjection( alpha );
9 | A morphism in SQVec with underlying matrix:
10 | [ [ -1, -1 ],
11 | [ 1, 0 ],
12 | [ 0, 1 ] ]
13 |
14 | gap> alpha + alpha;
15 | A morphism in SQVec with underlying matrix:
16 | [ [ 2, 2, 2 ],
17 | [ -2, -2, -2 ] ]
18 |
19 | gap> - alpha;
20 | A morphism in SQVec with underlying matrix:
21 | [ [ -1, -1, -1 ],
22 | [ 1, 1, 1 ] ]
23 |
24 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/KernelExample_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ KernelEmbedding( alpha );%
3 | A morphism in SQVec with underlying matrix:
4 | [ [ 1, 1 ] ]
5 |
6 | !color@blue%@gap>%!color@red%@ CokernelObject( alpha );%
7 |
8 | !color@blue%@gap>%!color@red%@ CokernelProjection( alpha );%
9 | A morphism in SQVec with underlying matrix:
10 | [ [ -1, -1 ],
11 | [ 1, 0 ],
12 | [ 0, 1 ] ]
13 |
14 | !color@blue%@gap>%!color@red%@ alpha + alpha;%
15 | A morphism in SQVec with underlying matrix:
16 | [ [ 2, 2, 2 ],
17 | [ -2, -2, -2 ] ]
18 |
19 | !color@blue%@gap>%!color@red%@ - alpha;%
20 | A morphism in SQVec with underlying matrix:
21 | [ [ -1, -1, -1 ],
22 | [ 1, 1, 1 ] ]
23 |
24 | \end{Verbatim}
25 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/NaturalTrafo.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | double_swap_components :=
4 | NaturalTransformation( "double swap components",
5 | double_functor, double_functor );
6 |
7 | AddNaturalTransformationFunction( double_swap_components,
8 |
9 | function( doubled_source, obj, doubled_range )
10 | local zero_morphism, one_morphism;
11 |
12 | zero_morphism := ZeroMorphism( obj, obj );
13 |
14 | one_morphism := IdentityMorphism( obj );
15 |
16 | return MorphismBetweenDirectSums( [ [ zero_morphism, one_morphism ],
17 | [ one_morphism, zero_morphism ] ] );
18 |
19 | end );
20 | \end{Verbatim}
21 | \end{small}
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/QuadrupleFunctor.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> quadruple_functor := PreCompose( double_functor, double_functor );
3 | Precomposition of DoubleOfVecspaces and DoubleOfVecspaces
4 | gap> ApplyFunctor( quadruple_functor, V2 );
5 |
6 | gap> ApplyFunctor( quadruple_functor, alpha2 );
7 | A morphism in SQVec with underlying matrix:
8 | [ [ 0, 0, 0, 0, 0, 0, 0, 0 ],
9 | [ 1, 0, 0, 0, 0, 0, 0, 0 ],
10 | [ 0, 1, 0, 0, 0, 0, 0, 0 ],
11 | [ 0, 0, 0, 0, 0, 0, 0, 0 ],
12 | [ 0, 0, 1, 0, 0, 0, 0, 0 ],
13 | [ 0, 0, 0, 1, 0, 0, 0, 0 ],
14 | [ 0, 0, 0, 0, 0, 0, 0, 0 ],
15 | [ 0, 0, 0, 0, 1, 0, 0, 0 ],
16 | [ 0, 0, 0, 0, 0, 1, 0, 0 ],
17 | [ 0, 0, 0, 0, 0, 0, 0, 0 ],
18 | [ 0, 0, 0, 0, 0, 0, 1, 0 ],
19 | [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]
20 |
21 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/SnakeLemma.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> V1 := SQVecObj( 1 );
3 |
4 | gap> delta := SQVecMor( V2, [ [ 1, 0 ], [ 0, 0 ] ], V2 );
5 | A morphism in SQVec with underlying matrix:
6 | [ [ 1, 0 ],
7 | [ 0, 0 ] ]
8 |
9 | gap> beta := SQVecMor( V2, [ [ 2, 4, 0 ], [ 3, 5, 0 ] ], V3 );
10 | A morphism in SQVec with underlying matrix:
11 | [ [ 2, 4, 0 ],
12 | [ 3, 5, 0 ] ]
13 |
14 | gap> lambda := SQVecMor( V3, [ [ 0 ], [ 0 ], [ 1 ] ], V1 );
15 | A morphism in SQVec with underlying matrix:
16 | [ [ 0 ],
17 | [ 0 ],
18 | [ 1 ] ]
19 |
20 | gap> snake_lemma_morphism( delta, beta, lambda );
21 | A morphism in SQVec with underlying matrix:
22 | [ [ -1 ] ]
23 |
24 | ## endgapcolor ##
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/SnakeLemmaImplementation.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | snake_lemma_morphism := function( delta, beta, lambda )
4 | local gamma, iota, epsilon, mu, alpha, pi, p1, p2, q1, q2, u;
5 |
6 | gamma := CokernelColift( delta, PreCompose( beta, lambda ) );
7 | iota := KernelEmbedding( gamma );
8 | epsilon := CokernelProjection( delta );
9 | mu := KernelEmbedding( lambda );
10 | alpha := KernelLift( lambda, PreCompose( delta, beta ) );
11 | pi := CokernelProjection( alpha );
12 |
13 | p1 := ProjectionInFactorOfFiberProduct( [ iota, epsilon ], 1 );
14 | p2 := ProjectionInFactorOfFiberProduct( [ iota, epsilon ], 2 );
15 | q1 := InjectionOfCofactorOfPushout( [ mu, pi ], 1 );
16 | q2 := InjectionOfCofactorOfPushout( [ mu, pi ], 2 );
17 | u := ColiftAlongEpimorphism( p1, PreCompose( [ p2, beta, q1 ] ) );
18 |
19 | return LiftAlongMonomorphism( q2, u );
20 |
21 | end;
22 | \end{Verbatim}
23 | \end{small}
24 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/SnakeLemma_main.tex:
--------------------------------------------------------------------------------
1 | \begin{Verbatim}[commandchars=!@\%,frame=single]
2 | !color@blue%@gap>%!color@red%@ V1 := SQVecObj( 1 );%
3 |
4 | !color@blue%@gap>%!color@red%@ delta := SQVecMor( V2, [ [ 1, 0 ], [ 0, 0 ] ], V2 );%
5 | A morphism in SQVec with underlying matrix:
6 | [ [ 1, 0 ],
7 | [ 0, 0 ] ]
8 |
9 | !color@blue%@gap>%!color@red%@ beta := SQVecMor( V2, [ [ 2, 4, 0 ], [ 3, 5, 0 ] ], V3 );%
10 | A morphism in SQVec with underlying matrix:
11 | [ [ 2, 4, 0 ],
12 | [ 3, 5, 0 ] ]
13 |
14 | !color@blue%@gap>%!color@red%@ lambda := SQVecMor( V3, [ [ 0 ], [ 0 ], [ 1 ] ], V1 );%
15 | A morphism in SQVec with underlying matrix:
16 | [ [ 0 ],
17 | [ 0 ],
18 | [ 1 ] ]
19 |
20 | !color@blue%@gap>%!color@red%@ snake_lemma_morphism( delta, beta, lambda );%
21 | A morphism in SQVec with underlying matrix:
22 | [ [ -1 ] ]
23 |
24 | \end{Verbatim}
25 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/View.tex:
--------------------------------------------------------------------------------
1 | \begin{small}
2 | \begin{Verbatim}[frame=single]
3 | ##
4 | InstallMethod( ViewString,
5 | [ IsSQVecObj ],
6 |
7 | function( a )
8 |
9 | return Concatenation( "" );
11 |
12 | end );
13 |
14 | ##
15 | InstallMethod( ViewString,
16 | [ IsSQVecMor ],
17 |
18 | function( morphism )
19 |
20 | return Concatenation( "A morphism in SQVec with underlying matrix:\n",
21 | StringDisplay( UnderlyingMatrix( morphism ) ) );
22 |
23 | end );
24 | \end{Verbatim}
25 | \end{small}
26 |
--------------------------------------------------------------------------------
/Manual/GAP_tex/vecspaces_example/ViewOperations.g:
--------------------------------------------------------------------------------
1 | ## gapcolor ##
2 | gap> InstalledMethodsOfCategory( SQVec );
3 | Can do the following basic methods at the moment:
4 | ...