├── .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 | ... .. 5 | ## endgapcolor ## -------------------------------------------------------------------------------- /Manual/GAP_tex/vecspaces_example/ViewOperations.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%@ InstalledMethodsOfCategory( SQVec );% 16 | Can do the following basic methods at the moment: 17 | ... .. 18 | \end{Verbatim} 19 | \end{document} 20 | -------------------------------------------------------------------------------- /Manual/GAP_tex/vecspaces_example/ViewOperations_main.tex: -------------------------------------------------------------------------------- 1 | \begin{Verbatim}[commandchars=!@\%,frame=single] 2 | !color@blue%@gap>%!color@red%@ InstalledMethodsOfCategory( SQVec );% 3 | Can do the following basic methods at the moment: 4 | ... .. 5 | \end{Verbatim} 6 | -------------------------------------------------------------------------------- /Manual/Introduction.tex: -------------------------------------------------------------------------------- 1 | \CapPkg is an acronym for categories, algorithms, and programming. 2 | It is a software project implemented in \GAP. 3 | \begin{itemize} 4 | \item \CapPkg derives powerful algorithms and data structures from basic categorical constructions. 5 | \item \CapPkg serves as a categorical programming language in which you can realize your 6 | code in a categorically structured way. 7 | \item \CapPkg simplifies complex computations 8 | by applying theorems. 9 | \end{itemize} 10 | We call this concept \textbf{categorical programming}. 11 | This manual provides a short tutorial for \CapPkg and explains 12 | its main features. 13 | You can clone the \CapPkg git repository from 14 | \begin{center} 15 | \href{https://github.com/homalg-project/CAP_project}{\texttt{https://github.com/homalg-project/CAP\_project}}. 16 | \end{center} 17 | -------------------------------------------------------------------------------- /Manual/README.md: -------------------------------------------------------------------------------- 1 | # The CAP Manual 2 | 3 | ## Information for contributors 4 | 5 | The tex files in the `GAP_tex` folder are created by the [gapcolor](https://github.com/sebasguts/gapcolor) script applied to the `*.g` files in the `GAP_tex` folder. -------------------------------------------------------------------------------- /ModulePresentationsForCAP/.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/modulepresentationsforcap*.tst 35 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/LogicForModulePresentations/PredicateImplicationsForGeneralModuleCategories.tex: -------------------------------------------------------------------------------- 1 | \begin{sequent} 2 | \begin{align*} 3 | A:\Obj ~|~ \IsFree( A ) \vdash \IsProjective( A ) 4 | \end{align*} 5 | \end{sequent} 6 | 7 | \begin{sequent} 8 | \begin{align*} 9 | A:\Obj ~|~ \IsZeroForObjects( A ) \vdash \IsFree( A ) 10 | \end{align*} 11 | \end{sequent} -------------------------------------------------------------------------------- /ModulePresentationsForCAP/LogicForModulePresentations/PropositionsForGeneralModuleCategories.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/ModulePresentationsForCAP/LogicForModulePresentations/PropositionsForGeneralModuleCategories.tex -------------------------------------------------------------------------------- /ModulePresentationsForCAP/LogicForModulePresentations/RelationsForGeneralModuleCategories.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/ModulePresentationsForCAP/LogicForModulePresentations/RelationsForGeneralModuleCategories.tex -------------------------------------------------------------------------------- /ModulePresentationsForCAP/doc/Doc.autodoc: -------------------------------------------------------------------------------- 1 | @Chapter Module Presentations 2 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/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 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/examples/MatricesGrowthTest.g: -------------------------------------------------------------------------------- 1 | LoadPackage( "ModulePresentationsForCAP" ); 2 | LoadPackage( "RingsForHomalg" ); 3 | QQ := HomalgFieldOfRationalsInSingular( ); 4 | R := QQ * "x,y"; 5 | S := FreeLeftPresentation( 1, R ); 6 | S2 := FreeLeftPresentation( 2, R ); 7 | alpha := PresentationMorphism( S, HomalgMatrix( [ [ 1, 2 ] ], R ), S2 ); 8 | id := IdentityMorphism( S ); 9 | p := PreCompose( id, alpha ); 10 | IsIdenticalObj( p, alpha ); 11 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/examples/MorphismBetweenDirectSums.g: -------------------------------------------------------------------------------- 1 | LoadPackage( "ModulePresentationsForCAP" ); 2 | LoadPackage( "RingsForHomalg" ); 3 | 4 | ZZ := HomalgRingOfIntegersInSingular( ); 5 | 6 | A := FreeLeftPresentation( 2, ZZ ); 7 | 8 | B := FreeLeftPresentation( 1, ZZ ); 9 | 10 | C := FreeLeftPresentation( 2, ZZ ); 11 | 12 | D := AsLeftPresentation( HomalgMatrix( [ [ 1, -1 ] ], ZZ ) ); 13 | 14 | alpha := PresentationMorphism( A, HomalgMatrix( [ [ 1, -1 ], [ 0, 1 ] ], ZZ ), C ); 15 | 16 | beta := PresentationMorphism( A, HomalgMatrix( [ [ 1, 0 ], [ 0, 1 ] ], ZZ ), D ); 17 | 18 | gamma := PresentationMorphism( B, HomalgMatrix( [ [ 1, 0 ] ], ZZ ) , C ); 19 | 20 | delta := PresentationMorphism( B, HomalgMatrix( [ [ 1, -1 ] ], ZZ ), D ); 21 | 22 | Display( UnderlyingMatrix( MorphismBetweenDirectSums( [ [ alpha, beta ], [ gamma, delta ] ] ) ) ); 23 | 24 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/examples/ProjectivityTest.g: -------------------------------------------------------------------------------- 1 | #! @Chapter Examples and Tests 2 | 3 | #! @Section Projectivity test 4 | 5 | LoadPackage( "ModulePresentationsForCAP" ); 6 | 7 | LoadPackage( "RingsForHomalg" ); 8 | 9 | #! @Example 10 | Q := HomalgFieldOfRationalsInSingular();; 11 | R := Q * "x";; 12 | F := FreeLeftPresentation( 2, Q );; 13 | HasIsProjective( F ) and IsProjective( F ); 14 | #! true 15 | G := FreeRightPresentation( 2, Q );; 16 | HasIsProjective( G ) and IsProjective( G ); 17 | #! true 18 | M := AsLeftPresentation( HomalgMatrix( "[ x, x ]", 1, 2, R ) );; 19 | IsProjective( M ); 20 | #! false 21 | N := AsLeftPresentation( HomalgMatrix( "[ 1, x ]", 1, 2, R ) );; 22 | IsProjective( N ); 23 | #! true 24 | #! @EndExample 25 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/examples/testfile.g: -------------------------------------------------------------------------------- 1 | LoadPackage( "ModulePresentationsForCAP" ); 2 | ZZ := HOMALG_MATRICES.ZZ; 3 | LeftPresentations( ZZ ); 4 | RightPresentations( ZZ ); 5 | A := HomalgMatrix( [ [ 1, 2 ], [ 2, 3 ] ], ZZ ); 6 | Aleft := AsLeftPresentation( A ); 7 | Aright := AsRightPresentation( A ); 8 | B := HomalgMatrix( [ [ 1, 2 ] ], ZZ ); 9 | Bleft := AsLeftPresentation( B ); 10 | Bright := AsRightPresentation( B ); 11 | tau := HomalgMatrix( [ [ 1, 0 ], [ 0, 1 ] ], ZZ ); 12 | 13 | 14 | ######################### 15 | ## 16 | ## Cokernel 17 | ## 18 | ######################### 19 | 20 | A := AsLeftPresentation( HomalgZeroMatrix( 0, 1, ZZ ) ); 21 | phi := HomalgMatrix( [ [ 4 ] ], ZZ ); 22 | 23 | phi := PresentationMorphism( A, phi, A ); 24 | 25 | epsilon := CokernelProjection( phi ); 26 | 27 | tau := HomalgMatrix( [ [ 2 ] ], ZZ ); 28 | B := AsLeftPresentation( HomalgMatrix( [ [ 8 ] ], ZZ ) ); 29 | tau := PresentationMorphism( A, tau, B ); 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/gap/Tools.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulePresentationsForCAP: Category R-pres for CAP 3 | # 4 | # Declarations 5 | # 6 | 7 | DeclareAttribute( "NonZeroGeneratorsTransformationTripleLeft", 8 | IsHomalgMatrix ); 9 | 10 | DeclareAttribute( "NonZeroGeneratorsTransformationTripleRight", 11 | IsHomalgMatrix ); 12 | 13 | DeclareAttribute( "LessGeneratorsTransformationTripleLeft", 14 | IsHomalgMatrix ); 15 | 16 | DeclareAttribute( "LessGeneratorsTransformationTripleRight", 17 | IsHomalgMatrix ); 18 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/init.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulePresentationsForCAP: Category R-pres for CAP 3 | # 4 | # Reading the declaration part of the package. 5 | # 6 | 7 | ReadPackage( "ModulePresentationsForCAP", "gap/ModulePresentationsForCAP.gd" ); 8 | 9 | ReadPackage( "ModulePresentationsForCAP", "gap/ModulePresentationObject.gd" ); 10 | 11 | ReadPackage( "ModulePresentationsForCAP", "gap/ModulePresentationMorphism.gd" ); 12 | 13 | ReadPackage( "ModulePresentationsForCAP", "gap/ModulePresentationFunctors.gd" ); 14 | 15 | ReadPackage( "ModulePresentationsForCAP", "gap/ModulePresentationNaturalTransformations.gd" ); 16 | 17 | ReadPackage( "ModulePresentationsForCAP", "gap/Tools.gd" ); 18 | 19 | ReadPackage( "ModulePresentationsForCAP", "gap/ModulePresentations_as_FreydCategory_CategoryOfRowsOrColumns.gd" ); 20 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/makedoc.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulePresentationsForCAP: Category R-pres 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 | -------------------------------------------------------------------------------- /ModulePresentationsForCAP/tst/basic.tst: -------------------------------------------------------------------------------- 1 | gap> START_TEST( "basic" ); 2 | 3 | # 4 | gap> LoadPackage( "ModulePresentationsForCAP", false ); 5 | true 6 | 7 | # 8 | gap> R := HomalgRingOfIntegers( );; 9 | gap> fpres := LeftPresentations( R );; 10 | gap> M := AsLeftPresentation( fpres, HomalgMatrix( [ [ 2 ] ], 1, 1, R ) ); 11 | 12 | gap> N := AsLeftPresentation( fpres, HomalgMatrix( [ [ 3 ] ], 1, 1, R ) ); 13 | 14 | gap> id := IdentityMorphism( M ); 15 | 16 | gap> IsEqualForMorphisms( id, PreCompose( id, id ) ); 17 | true 18 | 19 | # 20 | gap> STOP_TEST( "basic" ); 21 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/.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/modulesoverlocalringsforcap*.tst 35 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/doc/Doc.autodoc: -------------------------------------------------------------------------------- 1 | @Chapter Objects 2 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/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 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/examples/Category.g: -------------------------------------------------------------------------------- 1 | #! @Chapter Examples and Tests 2 | 3 | #! @Section Gauss 4 | 5 | LoadPackage( "ModulesOverLocalRingsForCAP" ); 6 | 7 | LoadPackage( "RingsForHomalg" ); 8 | #! @Example 9 | Q := HomalgFieldOfRationalsInSingular();; 10 | R := Q * "x,y,z";; 11 | category := CategoryOfLeftModulePresentationsOverLocalRing( R, [ "x", "y", "z" ] );; 12 | M := AsLeftPresentation( HomalgMatrix( [ [ "(x^2 + y^2 + z^2 - 1)^2" ] ], 1, 1, R ) );; 13 | N := AsSerreQuotientCategoryObject( category, M );; 14 | IsZero( N ); 15 | #! true 16 | M := AsLeftPresentation( HomalgMatrix( [ [ "(x^2 + y^2 + z^2)^2" ] ], 1, 1, R ) );; 17 | N := AsSerreQuotientCategoryObject( category, M );; 18 | IsZero( N ); 19 | #! false 20 | M := AsLeftPresentation( HomalgMatrix( "x-1,0,0,0", 2, 2, R ) );; 21 | N := AsSerreQuotientCategoryObject( category, M );; 22 | m := MinimalGeneratorsModel( N );; 23 | IsIsomorphism(m); 24 | #! true 25 | MinimalNumberOfGenerators( N ); 26 | #! 1 27 | #! @EndExample 28 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/examples/ComplexTask.g: -------------------------------------------------------------------------------- 1 | LoadPackage( "RingsForHomalg" ); 2 | F5 := HomalgRingOfIntegersInSingular( 5 ); 3 | R := F5 * "x,y,z,v,w";; 4 | A := HomalgMatrix( 5 | "[y^4*v*w^20-y^3*v*w^21-y^7*v^2*w+y^6*v^2*w^2-y+w, x*y^3*v*w^20-y^3*z*v*w^20-x*y^6*v^2*w+y^6*z*v^2*w-x+z]", 6 | 2,1, R ); 7 | B := HomalgMatrix( 8 | "[y^7*v^2*w^2-y^4*v*w^3+y*w, x*y^6*v^2*w^2-x*y^3*v*w^3+x*w, y^7*z*v^2*w-y^4*z*v*w^2+y*z, x*y^6*z*v^2*w-x*y^3*z*v*w^2+x*z, x*y^4*z^4*v^2*w-z^5*v^2*w^5+x^3*y*z^2*v^2-v^2]", 9 | 5,1, R ); 10 | 11 | # this triggers a hard computation 12 | SyzygiesOfRows( A, B ); 13 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/examples/Regular.g: -------------------------------------------------------------------------------- 1 | #! @Chapter Examples and Tests 2 | 3 | #! @Section Gauss 4 | 5 | LoadPackage( "ModulesOverLocalRingsForCAP" ); 6 | 7 | LoadPackage( "RingsForHomalg" ); 8 | 9 | #! @Example 10 | R := HomalgRingOfIntegers( 4 );; 11 | category := CategoryOfLeftModulePresentationsOverLocalRing( R, [ 2 ] );; 12 | IsRegular( category ); 13 | #! false 14 | #! @EndExample 15 | 16 | #! @Example 17 | R := HomalgFieldOfRationalsInSingular() * "x,y";; 18 | R := R/ "x^2 - y^3";; 19 | category1 := CategoryOfLeftModulePresentationsOverLocalRing( R, [ "x", "y" ] );; 20 | IsRegular( category1 ); 21 | #! false 22 | category2 := CategoryOfLeftModulePresentationsOverLocalRing( R, [ "x-1", "y-1" ] );; 23 | IsRegular( category2 ); 24 | #! true 25 | #! @EndExample 26 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/gap/Functors.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients for CAP 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Chapter Functors 8 | 9 | #################################### 10 | ## 11 | #! @Section Constructors 12 | ## 13 | #################################### 14 | 15 | ## 16 | DeclareAttribute( "FunctorMinimalGeneratorsModel", 17 | IsCategoryOfModulePresentationsOverLocalRing ); 18 | 19 | ## 20 | DeclareAttribute( "FunctorMinimalRelationsModel", 21 | IsCategoryOfModulePresentationsOverLocalRing ); 22 | 23 | ## 24 | DeclareAttribute( "FunctorMinimalModel", 25 | IsCategoryOfModulePresentationsOverLocalRing ); 26 | 27 | ## 28 | DeclareAttribute( "FunctorStandardGeneratorsModel", 29 | IsCategoryOfModulePresentationsOverLocalRing ); 30 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/gap/GaussForQuotientField.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients for CAP 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Chapter Gauss 8 | 9 | ############################# 10 | ## 11 | #! @Section Gaussian elimination 12 | ## 13 | ############################# 14 | 15 | DeclareAttribute( "REFIndicesForMatricesOverIntegralDomain", 16 | IsHomalgMatrix ); 17 | 18 | DeclareOperationWithCache( "REFIndicesForMatricesOverIntegralDomainWithGivenColumnOrdering", 19 | [ IsHomalgMatrix, IsList ] ); 20 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/gap/Morphisms.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients for CAP 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Chapter Morphisms 8 | 9 | #################################### 10 | ## 11 | #! @Section GAP Category 12 | ## 13 | #################################### 14 | 15 | DeclareCategory( "IsCategoryOfModulePresentationsOverLocalRingMorphism", 16 | IsSerreQuotientCategoryMorphism ); 17 | 18 | #################################### 19 | ## 20 | #! @Section Attributes 21 | ## 22 | #################################### 23 | 24 | ## 25 | DeclareAttribute( "StepOfMinimalFreeResolutionOfKernel", 26 | IsCategoryOfModulePresentationsOverLocalRingMorphism ); 27 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/gap/Morphisms.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients for CAP 3 | # 4 | # Implementations 5 | # 6 | 7 | #################################### 8 | ## 9 | ## Attributes 10 | ## 11 | #################################### 12 | 13 | ## 14 | InstallMethod( StepOfMinimalFreeResolutionOfKernel, 15 | [ IsCategoryOfModulePresentationsOverLocalRingMorphism ], 16 | 17 | function( morphism ) 18 | local category, kernel_embedding, differential, cover; 19 | 20 | category := CapCategory( morphism ); 21 | 22 | kernel_embedding := KernelEmbedding( morphism ); 23 | 24 | differential := PreCompose( MinimalGeneratorsModel( Source( kernel_embedding ) ), kernel_embedding ); 25 | 26 | cover := CoverByFreeModule( Source( differential ) ); 27 | 28 | return PreCompose( cover, differential ); 29 | 30 | end ); 31 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/gap/NaturalTransformations.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients for CAP 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Chapter Natural transformations 8 | 9 | ####################################### 10 | ## 11 | #! @Section Constructors 12 | ## 13 | ####################################### 14 | 15 | ## 16 | DeclareAttribute( "NaturalIsomorphismFromMinimalGeneratorsModelToIdentity", 17 | IsCategoryOfModulePresentationsOverLocalRing ); 18 | 19 | ## 20 | DeclareAttribute( "NaturalIsomorphismFromMinimalRelationsModelToIdentity", 21 | IsCategoryOfModulePresentationsOverLocalRing ); 22 | 23 | ## 24 | DeclareAttribute( "NaturalIsomorphismFromStandardGeneratorsModelToIdentity", 25 | IsCategoryOfModulePresentationsOverLocalRing ); 26 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/init.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients for CAP 3 | # 4 | # Reading the declaration part of the package. 5 | # 6 | 7 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/ModulesOverLocalRingsForCAP.gd" ); 8 | 9 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/GaussForQuotientField.gd" ); 10 | 11 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/Objects.gd" ); 12 | 13 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/Morphisms.gd" ); 14 | 15 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/Functors.gd" ); 16 | 17 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/NaturalTransformations.gd" ); -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/makedoc.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients 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 | -------------------------------------------------------------------------------- /ModulesOverLocalRingsForCAP/read.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ModulesOverLocalRingsForCAP: Category of modules over a local ring modeled by Serre quotients for CAP 3 | # 4 | # Reading the implementation part of the package. 5 | # 6 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/ModulesOverLocalRingsForCAP.gi" ); 7 | 8 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/GaussForQuotientField.gi" ); 9 | 10 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/Objects.gi" ); 11 | 12 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/Morphisms.gi" ); 13 | 14 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/Functors.gi" ); 15 | 16 | ReadPackage( "ModulesOverLocalRingsForCAP", "gap/NaturalTransformations.gi" ); -------------------------------------------------------------------------------- /MonoidalCategories/.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/monoidalcategories*.tst 35 | -------------------------------------------------------------------------------- /MonoidalCategories/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 | -------------------------------------------------------------------------------- /MonoidalCategories/examples/.gitkeep: -------------------------------------------------------------------------------- 1 | needed for `make test-basic-spacing` not to complain about missing directory `examples` 2 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/BraidedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being braided monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsBraidedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsBraidedMonoidalCategory", "IsBraidedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/BraidedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsBraidedMonoidalCategory := 8 | Concatenation( 9 | ListOfDefiningOperations( "IsMonoidalCategory" ), 10 | [ "BraidingWithGivenTensorProducts", 11 | "BraidingInverseWithGivenTensorProducts" 12 | ] ); 13 | 14 | InstallTrueMethod( IsMonoidalCategory, IsBraidedMonoidalCategory ); 15 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/ClosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being (bi)closed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsClosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsClosedMonoidalCategory", "IsCoclosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/ClosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | InstallTrueMethod( IsMonoidalCategory, IsClosedMonoidalCategory ); 8 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/CoclosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being (bi)coclosed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsCoclosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsCoclosedMonoidalCategory", "IsClosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/CoclosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | InstallTrueMethod( IsMonoidalCategory, IsCoclosedMonoidalCategory ); 8 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/CreateClosedMonoidalCategories.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #################################### 8 | ## 9 | #! @Chapter Code Generation for Monodial Categories 10 | ## 11 | #! @Section Closed Monoidal Categories 12 | ## 13 | #################################### 14 | 15 | DeclareGlobalFunction( "CAP_INTERNAL_FUNC_FOR_CLOSED_MONOIDAL_STRUCTURES" ); 16 | 17 | #! @Description 18 | #! This functions uses the dictionary key_val_rec to create a new closed monoidal structure. 19 | #! It generates the necessary files in the package package_name using 20 | #! the file-correspondence table files_rec. 21 | #! See the implementation for details. 22 | #! @Returns nothing 23 | #! @Arguments key_val_rec, package_name, files_rec 24 | DeclareGlobalFunction( "WriteFileForClosedMonoidalStructure" ); 25 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/CreateCoclosedMonoidalCategories.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #################################### 8 | ## 9 | #! @Chapter Code Generation for Monodial Categories 10 | ## 11 | #! @Section Coclosed Monoidal Categories 12 | ## 13 | #################################### 14 | 15 | DeclareGlobalFunction( "CAP_INTERNAL_FUNC_FOR_COCLOSED_MONOIDAL_STRUCTURES" ); 16 | 17 | #! @Description 18 | #! This functions uses the dictionary key_val_rec to create a new coclosed monoidal structure. 19 | #! It generates the necessary files in the package package_name using 20 | #! the file-correspondence table files_rec. 21 | #! See the implementation for details. 22 | #! @Returns nothing 23 | #! @Arguments key_val_rec, package_name, files_rec 24 | DeclareGlobalFunction( "WriteFileForCoclosedMonoidalStructure" ); 25 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/CreateLeftClosedMonoidalCategories.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #################################### 8 | ## 9 | #! @Chapter Code Generation for Monodial Categories 10 | ## 11 | #! @Section Closed Monoidal Categories 12 | ## 13 | #################################### 14 | 15 | DeclareGlobalFunction( "CAP_INTERNAL_FUNC_FOR_LEFT_CLOSED_MONOIDAL_STRUCTURES" ); 16 | 17 | #! @Description 18 | #! This functions uses the dictionary key_val_rec to create a new left closed monoidal structure. 19 | #! It generates the necessary files in the package package_name using 20 | #! the file-correspondence table files_rec. 21 | #! See the implementation for details. 22 | #! @Returns nothing 23 | #! @Arguments key_val_rec, package_name, files_rec 24 | DeclareGlobalFunction( "WriteFileForLeftClosedMonoidalStructure" ); 25 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/CreateLeftCoclosedMonoidalCategories.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #################################### 8 | ## 9 | #! @Chapter Code Generation for Monodial Categories 10 | ## 11 | #! @Section Coclosed Monoidal Categories 12 | ## 13 | #################################### 14 | 15 | DeclareGlobalFunction( "CAP_INTERNAL_FUNC_FOR_LEFT_COCLOSED_MONOIDAL_STRUCTURES" ); 16 | 17 | #! @Description 18 | #! This functions uses the dictionary key_val_rec to create a new left coclosed monoidal structure. 19 | #! It generates the necessary files in the package package_name using 20 | #! the file-correspondence table files_rec. 21 | #! See the implementation for details. 22 | #! @Returns nothing 23 | #! @Arguments key_val_rec, package_name, files_rec 24 | DeclareGlobalFunction( "WriteFileForLeftCoclosedMonoidalStructure" ); 25 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/CreateMonoidalCategories.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #################################### 8 | ## 9 | #! @Chapter Code Generation for Monodial Categories 10 | ## 11 | #! @Section Monoidal Categories 12 | ## 13 | #################################### 14 | 15 | DeclareGlobalFunction( "CAP_INTERNAL_FUNC_FOR_MONOIDAL_STRUCTURES" ); 16 | 17 | #! @Description 18 | #! This functions uses the dictionary key_val_rec to create a new monoidal structure. 19 | #! It generates the necessary files in the package package_name using 20 | #! the file-correspondence table files_rec. 21 | #! See the implementation for details. 22 | #! @Returns nothing 23 | #! @Arguments key_val_rec, package_name, files_rec 24 | DeclareGlobalFunction( "WriteFileForMonoidalStructure" ); 25 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/LeftClosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being left closed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsLeftClosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsLeftClosedMonoidalCategory", "IsLeftCoclosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/LeftClosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | InstallTrueMethod( IsMonoidalCategory, IsLeftClosedMonoidalCategory ); 8 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/LeftCoclosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being coclosed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsLeftCoclosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsLeftCoclosedMonoidalCategory", "IsLeftClosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/LeftCoclosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | InstallTrueMethod( IsMonoidalCategory, IsLeftCoclosedMonoidalCategory ); 8 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/RigidSymmetricClosedMonoidalCategories.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/RigidSymmetricClosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being rigid symmetric closed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsRigidSymmetricClosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsRigidSymmetricClosedMonoidalCategory", "IsRigidSymmetricCoclosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/RigidSymmetricClosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsRigidSymmetricClosedMonoidalCategory := 8 | Concatenation( 9 | ListOfDefiningOperations( "IsSymmetricClosedMonoidalCategory" ), 10 | [ "TensorProductInternalHomCompatibilityMorphismInverseWithGivenObjects", 11 | "MorphismFromBidualWithGivenBidual" 12 | ] ); 13 | 14 | InstallTrueMethod( IsSymmetricClosedMonoidalCategory, IsRigidSymmetricClosedMonoidalCategory ); 15 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/RigidSymmetricCoclosedMonoidalCategories.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/RigidSymmetricCoclosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being rigid symmetric coclosed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsRigidSymmetricCoclosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsRigidSymmetricCoclosedMonoidalCategory", "IsRigidSymmetricClosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/RigidSymmetricCoclosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsRigidSymmetricCoclosedMonoidalCategory := 8 | Concatenation( 9 | ListOfDefiningOperations( "IsSymmetricCoclosedMonoidalCategory" ), 10 | [ "InternalCoHomTensorProductCompatibilityMorphismInverseWithGivenObjects", 11 | "MorphismToCoBidualWithGivenCoBidual" 12 | ] ); 13 | 14 | InstallTrueMethod( IsSymmetricCoclosedMonoidalCategory, IsRigidSymmetricCoclosedMonoidalCategory ); 15 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/SymmetricClosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being symmetric closed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsSymmetricClosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsSymmetricClosedMonoidalCategory", "IsSymmetricCoclosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/SymmetricClosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsSymmetricClosedMonoidalCategory := 8 | DuplicateFreeList( 9 | Concatenation( 10 | ListOfDefiningOperations( "IsSymmetricMonoidalCategory" ), 11 | ListOfDefiningOperations( "IsClosedMonoidalCategory" ) ) ); 12 | 13 | InstallTrueMethod( IsClosedMonoidalCategory, IsSymmetricClosedMonoidalCategory ); 14 | 15 | InstallTrueMethod( IsSymmetricMonoidalCategory, IsSymmetricClosedMonoidalCategory ); 16 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/SymmetricCoclosedMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being symmetric coclosed monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsSymmetricCoclosedMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsSymmetricCoclosedMonoidalCategory", "IsSymmetricClosedMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/SymmetricCoclosedMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsSymmetricCoclosedMonoidalCategory := 8 | DuplicateFreeList( 9 | Concatenation( 10 | ListOfDefiningOperations( "IsSymmetricMonoidalCategory" ), 11 | ListOfDefiningOperations( "IsCoclosedMonoidalCategory" ) ) ); 12 | 13 | InstallTrueMethod( IsCoclosedMonoidalCategory, IsSymmetricCoclosedMonoidalCategory ); 14 | 15 | InstallTrueMethod( IsSymmetricMonoidalCategory, IsSymmetricCoclosedMonoidalCategory ); 16 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/SymmetricMonoidalCategoriesProperties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Declarations 5 | # 6 | 7 | #! @Description 8 | #! The property of the category C being symmetric monoidal. 9 | #! @Arguments C 10 | DeclareProperty( "IsSymmetricMonoidalCategory", IsCapCategory ); 11 | 12 | AddCategoricalProperty( [ "IsSymmetricMonoidalCategory", "IsSymmetricMonoidalCategory" ] ); 13 | -------------------------------------------------------------------------------- /MonoidalCategories/gap/SymmetricMonoidalCategoriesProperties.gi: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 3 | # 4 | # Implementations 5 | # 6 | 7 | CAP_INTERNAL_CONSTRUCTIVE_CATEGORIES_RECORD.IsSymmetricMonoidalCategory := 8 | ListOfDefiningOperations( "IsBraidedMonoidalCategory" ); 9 | 10 | InstallTrueMethod( IsBraidedMonoidalCategory, IsSymmetricMonoidalCategory ); 11 | -------------------------------------------------------------------------------- /MonoidalCategories/makedoc.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 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{mathtools} 24 | """, 25 | ), 26 | ), 27 | scaffold := rec( 28 | entities := [ "homalg", "CAP" ], 29 | ), 30 | ) ); 31 | 32 | QUIT; 33 | -------------------------------------------------------------------------------- /MonoidalCategories/tst/100_LoadPackage.tst: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # MonoidalCategories: Monoidal and monoidal (co)closed categories 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( "MatricesForHomalg", false ); 11 | true 12 | gap> LoadPackage( "GaussForHomalg", false ); 13 | true 14 | gap> LoadPackage( "MonoidalCategories", false ); 15 | true 16 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );; 17 | gap> LoadPackage( "MatricesForHomalg" ); 18 | true 19 | gap> LoadPackage( "GaussForHomalg" ); 20 | true 21 | gap> LoadPackage( "MonoidalCategories" ); 22 | true 23 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );; 24 | -------------------------------------------------------------------------------- /ToricSheaves/.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/toricsheaves*.tst 35 | -------------------------------------------------------------------------------- /ToricSheaves/doc/Doc.autodoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/homalg-project/CAP_project/d9f4367952561020ce83dc511bb660d8e1c2a222/ToricSheaves/doc/Doc.autodoc -------------------------------------------------------------------------------- /ToricSheaves/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 | -------------------------------------------------------------------------------- /ToricSheaves/examples/Hirzebruch7.gi: -------------------------------------------------------------------------------- 1 | LoadPackage( "ToricSheaves" ); 2 | 3 | H7 := HirzebruchSurface( 7 ); 4 | 5 | CohH7 := CategoryOfToricSheaves( H7 ); 6 | 7 | S := CoxRing( H7 ); 8 | 9 | Mirr := HomalgMatrix( "[x_3*x_4,x_1*x_4,x_1*x_2,x_2*x_3]",4,1,S ); 10 | 11 | gen_degs := DegreesOfGenerators( IrrelevantIdeal( H7 ) ); 12 | 13 | Irrel := AsGradedLeftPresentation( Mirr ); 14 | 15 | SheafIrrel := AsSerreQuotientCategoryObject( CohH7, Irrel ); 16 | 17 | MS := AsGradedLeftPresentation( FreeLeftPresentation( 1, S ) ); 18 | 19 | SheafS := AsSerreQuotientCategoryObject( CohH7, MS ); 20 | -------------------------------------------------------------------------------- /ToricSheaves/examples/WeightedProjectiveSpace.gi: -------------------------------------------------------------------------------- 1 | LoadPackage( "ToricSheaves" ); 2 | 3 | F := Fan( [ [ 0, 1 ], [ 1, 0 ], [ -1, -2 ] ], [ [ 1, 2 ], [ 2, 3 ], [ 1, 3 ] ] ); 4 | 5 | P112 := ToricVariety( F ); 6 | 7 | CohP112 := CategoryOfToricSheaves( P112 ); 8 | 9 | S := CoxRing( P112 ); 10 | 11 | M := HomalgMatrix( "[ x_2, x_3 ]", 2, 1, S ); 12 | 13 | M := AsGradedLeftPresentation( M, [ - GeneratingElements( DegreeGroup( S ) )[ 1 ] ] ); 14 | 15 | SheafM := AsSerreQuotientCategoryObject( CohP112, M ); 16 | -------------------------------------------------------------------------------- /ToricSheaves/gap/CoverByLocallyFreeObject.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 3 | # 4 | # Declarations 5 | # 6 | 7 | DeclareAttribute( "CoverByProjective", 8 | IsSerreQuotientCategoryObject ); 9 | 10 | DeclareAttribute( "FreeResolutionComplexOfSheaf", 11 | IsSerreQuotientCategoryObject ); 12 | 13 | DeclareAttribute( "FreeResolutionCocomplexOfSheaf", 14 | IsSerreQuotientCategoryObject ); 15 | 16 | DeclareAttribute( "CoverByProjectiveWithLift", 17 | IsSerreQuotientCategoryMorphism ); 18 | 19 | -------------------------------------------------------------------------------- /ToricSheaves/gap/GlobalSectionFunctors.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 3 | # 4 | # Declarations 5 | # 6 | 7 | DeclareOperation( "DegreeZeroPartFunctor", 8 | [ IsCapCategory, IsList ] ); 9 | -------------------------------------------------------------------------------- /ToricSheaves/gap/ToricSheaves.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 3 | # 4 | # Declarations 5 | # 6 | 7 | DeclareOperation( "CategoryOfToricSheaves", 8 | [ IsHomalgGradedRing, IsList ] ); 9 | 10 | DeclareOperation( "CategoryOfToricSheaves", 11 | [ IsHomalgGradedRing, IsList, IsBool ] ); 12 | -------------------------------------------------------------------------------- /ToricSheaves/gap/ToricSheavesForToricVarieties.gd: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 3 | # 4 | # Declarations 5 | # 6 | 7 | DeclareOperation( "CategoryOfToricSheaves", 8 | [ IsToricVariety ] ); 9 | -------------------------------------------------------------------------------- /ToricSheaves/init.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 3 | # 4 | # Reading the declaration part of the package. 5 | # 6 | 7 | ReadPackage( "ToricSheaves", "gap/ToricSheaves.gd" ); 8 | 9 | ReadPackage( "ToricSheaves", "gap/GlobalSectionFunctors.gd" ); 10 | 11 | ReadPackage( "ToricSheaves", "gap/CoverByLocallyFreeObject.gd" ); 12 | 13 | if IsPackageMarkedForLoading( "ToricVarieties", ">=0" ) then 14 | ReadPackage( "ToricSheaves", "gap/ToricSheavesForToricVarieties.gd" ); 15 | fi; 16 | -------------------------------------------------------------------------------- /ToricSheaves/makedoc.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 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 | -------------------------------------------------------------------------------- /ToricSheaves/read.g: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 3 | # 4 | # Reading the implementation part of the package. 5 | # 6 | ReadPackage( "ToricSheaves", "gap/ZeroPartOfModule.gi" ); 7 | 8 | ReadPackage( "ToricSheaves", "gap/ToricSheaves.gi" ); 9 | 10 | ReadPackage( "ToricSheaves", "gap/GlobalSectionFunctors.gi" ); 11 | 12 | ReadPackage( "ToricSheaves", "gap/CoverByLocallyFreeObject.gi" ); 13 | 14 | if IsPackageMarkedForLoading( "ToricVarieties", ">=0" ) then 15 | ReadPackage( "ToricSheaves", "gap/ToricSheavesForToricVarieties.gi" ); 16 | fi; 17 | -------------------------------------------------------------------------------- /ToricSheaves/tst/100_LoadPackage.tst: -------------------------------------------------------------------------------- 1 | # SPDX-License-Identifier: GPL-2.0-or-later 2 | # ToricSheaves: Toric sheaves as Serre quotients 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( "ToricVarieties", false ); 11 | true 12 | gap> LoadPackage( "ToricSheaves", false ); 13 | true 14 | gap> SetInfoLevel( InfoPackageLoading, PACKAGE_INFO );; 15 | gap> LoadPackage( "ToricVarieties" ); 16 | true 17 | gap> LoadPackage( "ToricSheaves" ); 18 | true 19 | gap> SetInfoLevel( InfoPackageLoading, package_loading_info_level );; 20 | --------------------------------------------------------------------------------