  
  [1X1 [33X[0;0YCAP Categories[133X[101X
  
  [33X[0;0YCategories  are  the main GAP objects in CAP. They are used to associate GAP
  objects  which  represent  objects  and  morphisms  with  their category. By
  associating  a  GAP  object to the category, one of two filters belonging to
  the category (ObjectFilter/MorphismFilter) are set to true. Via Add methods,
  functions  for  specific  existential  quantifiers  can be associated to the
  category and after that can be applied to GAP objects in the category. A GAP
  category  object  also  knows  which constructions are currently possible in
  this category.[133X
  
  [33X[0;0YClassically,  a category consists of a class of objects, a set of morphisms,
  identity  morphisms,  and  a  composition  function  satisfying  some simple
  axioms. In CAP, we use a slightly different notion of a category.[133X
  
  [33X[0;0YA CAP category [23X\mathbf{C}[123X consists of the following data:[133X
  
  [30X    [33X[0;6YA set [23X\mathrm{Obj}_{\mathbf{C}}[123X of [13Xobjects[113X.[133X
  
  [30X    [33X[0;6YFor    every   pair   [23Xa,b   \in   \mathrm{Obj}_{\mathbf{C}}[123X,   a   set
        [23X\mathrm{Hom}_{\mathbf{C}}( a, b )[123X of [13Xmorphisms[113X.[133X
  
  [30X    [33X[0;6YFor  every  pair  [23Xa,b  \in  \mathrm{Obj}_{\mathbf{C}}[123X,  an equivalence
        relation  [23X\sim_{a,b}[123X  on  [23X\mathrm{Hom}_{\mathbf{C}}(  a,  b  )[123X  called
        [13Xcongruence for morphisms[113X.[133X
  
  [30X    [33X[0;6YFor  every  [23Xa  \in  \mathrm{Obj}_{\mathbf{C}}[123X,  an  [13Xidentity  morphism[113X
        [23X\mathrm{id}_a \in \mathrm{Hom}_{\mathbf{C}}( a, a )[123X.[133X
  
  [30X    [33X[0;6YFor  every triple [23Xa, b, c \in \mathrm{Obj}_{\mathbf{C}}[123X, a [13Xcomposition
        function[113X[133X
  
  
  [24X      [33X[0;6Y\circ:      \mathrm{Hom}_{\mathbf{C}}(      b,      c     )     \times
        \mathrm{Hom}_{\mathbf{C}}(        a,       b       )       \rightarrow
        \mathrm{Hom}_{\mathbf{C}}( a, c )[133X
  
  [124X
  
        [33X[0;6Ycompatible   with   the  congruence,  i.e.,  if  [23X\alpha,  \alpha'  \in
        \mathrm{Hom}_{\mathbf{C}}(    a,    b    )[123X,    [23X\beta,    \beta'    \in
        \mathrm{Hom}_{\mathbf{C}}( b, c )[123X, [23X\alpha \sim_{a,b} \alpha'[123X and [23X\beta
        \sim_{b,c}  \beta'[123X,  then  [23X\beta  \circ \alpha \sim_{a,c} \beta' \circ
        \alpha'[123X.[133X
  
  [30X    [33X[0;6YFor    all    [23Xa,   b   \in   \mathrm{Obj}_{\mathbf{C}}[123X,   [23X\alpha   \in
        \mathrm{Hom}_{\mathbf{C}}( a, b )[123X, we have[133X
  
  
  [24X      [33X[0;6Y\left( \mathrm{id}_{b} \circ \alpha \right) \sim_{a,b} \alpha[133X
  
  [124X
  
        [33X[0;6Yand[133X
  
  
  [24X      [33X[0;6Y\alpha \sim_{a,b} \left( \alpha \circ \mathrm{id}_{a} \right).[133X
  
  [124X
  
  [30X    [33X[0;6YFor    all   [23Xa,b,c,d   \in   \mathrm{Obj}_{\mathbf{C}}[123X,   [23X\alpha   \in
        \mathrm{Hom}_{\mathbf{C}}(       a,      b      )[123X,      [23X\beta      \in
        \mathrm{Hom}_{\mathbf{C}}(      b,      c      )[123X,      [23X\gamma      \in
        \mathrm{Hom}_{\mathbf{C}}( c, d )[123X, we have[133X
  
  
  [24X      [33X[0;6Y\left((  \gamma  \circ  \beta ) \circ \alpha \right) \sim_{a,d} \left(
        \gamma \circ ( \beta \circ \alpha ) \right)[133X
  
  [124X
  
  
  [1X1.1 [33X[0;0YCategories[133X[101X
  
  [1X1.1-1 IsCapCategory[101X
  
  [33X[1;0Y[29X[2XIsCapCategory[102X( [3Xobject[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YThe  GAP  category  of  CAP  categories. Objects of this type handle the CAP
  category  information,  the  caching,  and  filters  for  objects in the CAP
  category.  Please note that the object itself is not related to methods, you
  only need it as a handler and a presentation of the CAP category.[133X
  
  [1X1.1-2 IsCapCategoryCell[101X
  
  [33X[1;0Y[29X[2XIsCapCategoryCell[102X( [3Xobject[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YThe  GAP  category of CAP category cells. Every object, morphism, and [23X2[123X-cell
  of a CAP category lies in this GAP category.[133X
  
  [1X1.1-3 IsCapCategoryObject[101X
  
  [33X[1;0Y[29X[2XIsCapCategoryObject[102X( [3Xobject[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YThe  GAP  category  of  CAP category objects. Every object of a CAP category
  lies in this GAP category.[133X
  
  [1X1.1-4 IsCapCategoryMorphism[101X
  
  [33X[1;0Y[29X[2XIsCapCategoryMorphism[102X( [3Xobject[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YThe GAP category of CAP category morphisms. Every morphism of a CAP category
  lies in this GAP category.[133X
  
  [1X1.1-5 IsCapCategoryTwoCell[101X
  
  [33X[1;0Y[29X[2XIsCapCategoryTwoCell[102X( [3Xobject[103X ) [32X filter[133X
  [6XReturns:[106X  [33X[0;10Y[9Xtrue[109X or [9Xfalse[109X[133X
  
  [33X[0;0YThe  GAP  category  of  CAP category [23X2[123X-cells. Every [23X2[123X-cell of a CAP category
  lies in this GAP category.[133X
  
  [1X1.1-6 AddCategoricalProperty[101X
  
  [33X[1;0Y[29X[2XAddCategoricalProperty[102X( [3Xlist[103X ) [32X function[133X
  
  [33X[0;0YAdds  a categorical property to the list of CAP categorical properties. [3Xlist[103X
  must  be  a list containing one entry, if the property is self dual, or two,
  if the dual property has a different name. If the first entry of the list is
  empty  and the second is a property name, the property is assumed to have no
  dual.[133X
  
  
  [1X1.2 [33X[0;0YConstructor[133X[101X
  
  [1X1.2-1 CreateCapCategory[101X
  
  [33X[1;0Y[29X[2XCreateCapCategory[102X(  ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya category[133X
  
  [33X[0;0YCreates a new CAP category from scratch. It gets a generic name.[133X
  
  [1X1.2-2 CreateCapCategory[101X
  
  [33X[1;0Y[29X[2XCreateCapCategory[102X( [3Xs[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya category[133X
  
  [33X[0;0YThe  argument  is a string [23Xs[123X. This operation creates a new CAP category from
  scratch. Its name is set to [23Xs[123X.[133X
  
  
  [1X1.3 [33X[0;0YInternal Attributes[133X[101X
  
  [33X[0;0YEach  category  [23XC[123X  stores  various filters. They are used to apply the right
  functions in the method selection.[133X
  
  [1X1.3-1 CategoryFilter[101X
  
  [33X[1;0Y[29X[2XCategoryFilter[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya filter[133X
  
  [33X[0;0YThe argument is a category [23XC[123X. The output is a filter in which [23XC[123X lies.[133X
  
  [1X1.3-2 CellFilter[101X
  
  [33X[1;0Y[29X[2XCellFilter[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya filter[133X
  
  [33X[0;0YThe argument is a category [23XC[123X. The output is a filter in which all cells of [23XC[123X
  shall lie.[133X
  
  [1X1.3-3 ObjectFilter[101X
  
  [33X[1;0Y[29X[2XObjectFilter[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya filter[133X
  
  [33X[0;0YThe argument is a category [23XC[123X. The output is a filter in which all objects of
  [23XC[123X shall lie.[133X
  
  [1X1.3-4 MorphismFilter[101X
  
  [33X[1;0Y[29X[2XMorphismFilter[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya filter[133X
  
  [33X[0;0YThe  argument is a category [23XC[123X. The output is a filter in which all morphisms
  of [23XC[123X shall lie.[133X
  
  [1X1.3-5 TwoCellFilter[101X
  
  [33X[1;0Y[29X[2XTwoCellFilter[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya filter[133X
  
  [33X[0;0YThe argument is a category [23XC[123X. The output is a filter in which all [23X2[123X-cells of
  [23XC[123X shall lie.[133X
  
  [1X1.3-6 ObjectType[101X
  
  [33X[1;0Y[29X[2XObjectType[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya GAP type[133X
  
  [33X[0;0YThe  argument  is  a category [23XC[123X. The output is the GAP type of objects of [23XC[123X.
  Only available after calling [10XAddObjectRepresentation[110X.[133X
  
  [1X1.3-7 MorphismType[101X
  
  [33X[1;0Y[29X[2XMorphismType[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya GAP type[133X
  
  [33X[0;0YThe  argument is a category [23XC[123X. The output is the GAP type of morphisms of [23XC[123X.
  Only available after calling [10XAddMorphismRepresentation[110X.[133X
  
  [1X1.3-8 CommutativeRingOfLinearCategory[101X
  
  [33X[1;0Y[29X[2XCommutativeRingOfLinearCategory[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya ring[133X
  
  [33X[0;0YThe  argument  is  a  category  [23XC[123X  which  is  expected  to lie in the filter
  [10XIsLinearCategoryOverCommutativeRing[110X.  The  output is a commutative ring over
  which the category is linear.[133X
  
  [1X1.3-9 AdditiveGenerators[101X
  
  [33X[1;0Y[29X[2XAdditiveGenerators[102X( [3XC[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya list of objects[133X
  
  [33X[0;0YThe argument is an additive category [23XC[123X. The output is a list [23XL[123X of objects in
  [23XC[123X such that every object in [23XC[123X is a finite direct sum of objects in [23XL[123X.[133X
  
  
  [1X1.4 [33X[0;0YLogic switcher[133X[101X
  
  [1X1.4-1 CapCategorySwitchLogicPropagationForObjectsOn[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicPropagationForObjectsOn[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YActivates  the  predicate  logic  propagation  between equal objects for the
  category [3XC[103X.[133X
  
  [1X1.4-2 CapCategorySwitchLogicPropagationForObjectsOff[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicPropagationForObjectsOff[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YDeactivates  the  predicate  logic propagation between equal objects for the
  category [3XC[103X.[133X
  
  [1X1.4-3 CapCategorySwitchLogicPropagationForMorphismsOn[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicPropagationForMorphismsOn[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YActivates  the  predicate  logic propagation between equal morphisms for the
  category [3XC[103X.[133X
  
  [1X1.4-4 CapCategorySwitchLogicPropagationForMorphismsOff[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicPropagationForMorphismsOff[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YDeactivates  the predicate logic propagation between equal morphisms for the
  category [3XC[103X.[133X
  
  [1X1.4-5 CapCategorySwitchLogicPropagationOn[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicPropagationOn[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YActivates  the  predicate  logic  propagation  between  equal  cells for the
  category [3XC[103X.[133X
  
  [1X1.4-6 CapCategorySwitchLogicPropagationOff[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicPropagationOff[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YDeactivates  the  predicate  logic  propagation  between equal cells for the
  category [3XC[103X.[133X
  
  [1X1.4-7 CapCategorySwitchLogicOn[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicOn[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YActivates the predicate implication logic for the category [3XC[103X.[133X
  
  [1X1.4-8 CapCategorySwitchLogicOff[101X
  
  [33X[1;0Y[29X[2XCapCategorySwitchLogicOff[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YDeactivates the predicate implication logic for the category [3XC[103X.[133X
  
  
  [1X1.5 [33X[0;0YTool functions[133X[101X
  
  [1X1.5-1 CanCompute[101X
  
  [33X[1;0Y[29X[2XCanCompute[102X( [3XC[103X, [3Xstring[103X ) [32X operation[133X
  [33X[1;0Y[29X[2XCanCompute[102X( [3XC[103X, [3Xoperation[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Y[10Xtrue[110X or [10Xfalse[110X[133X
  
  [33X[0;0YThe  argument  is a category [3XC[103X and a string [3Xstring[103X, which should be the name
  of a CAP operation, e.g., PreCompose. If applying this method is possible in
  [23XC[123X,  the  method returns [10Xtrue[110X, [10Xfalse[110X otherwise. If the string is not the name
  of  a CAP operation, an error is raised. For debugging purposes one can also
  pass the CAP operation instead of its name.[133X
  
  [1X1.5-2 CheckConstructivenessOfCategory[101X
  
  [33X[1;0Y[29X[2XCheckConstructivenessOfCategory[102X( [3XC[103X, [3Xs[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya list[133X
  
  [33X[0;0YThe  arguments  are  a  category  [23XC[123X  and  a  string [23Xs[123X. If [23Xs[123X is a categorical
  property  (e.g.  [10X"IsAbelianCategory"[110X),  the output is a list of strings with
  CAP  operations  which  are  missing  in  [23XC[123X to have the categorical property
  constructively. If [23Xs[123X is not a categorical property, an error is raised.[133X
  
  
  [1X1.6 [33X[0;0YWell-Definedness of Cells[133X[101X
  
  [1X1.6-1 IsWellDefined[101X
  
  [33X[1;0Y[29X[2XIsWellDefined[102X( [3Xc[103X ) [32X property[133X
  [6XReturns:[106X  [33X[0;10Ya boolean[133X
  
  [33X[0;0YThe argument is a cell [23Xc[123X. The output is [10Xtrue[110X if [23Xc[123X is well-defined, otherwise
  the output is [10Xfalse[110X.[133X
  
  
  [1X1.7 [33X[0;0YUnpacking data structures[133X[101X
  
  [1X1.7-1 Down[101X
  
  [33X[1;0Y[29X[2XDown[102X( [3Xx[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya GAP object[133X
  
  [33X[0;0YThe  argument  is  a  GAP object [23Xx[123X. If [23Xx[123X is an object in a CAP category, the
  output  consists of data which are needed to reconstruct [23Xx[123X (e.g., by passing
  them  to  an appropriate constructor). If [23Xx[123X is a morphism in a CAP category,
  the  output  consists  of a triple whose first entry is the source of [23Xx[123X, the
  third  entry  is the range of [23Xx[123X, and the second entry consists of data which
  are  needed  to  reconstruct  [23Xx[123X  (e.g.,  by  passing  them to an appropriate
  constructor, possibly together with the source and range of [23Xx[123X).[133X
  
  [1X1.7-2 DownOnlyMorphismData[101X
  
  [33X[1;0Y[29X[2XDownOnlyMorphismData[102X( [3Xx[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya GAP object[133X
  
  [33X[0;0YThe  argument  is  a morphism in a CAP category, the output consists of data
  which  are  needed  to  reconstruct [23Xx[123X (e.g., by passing it to an appropriate
  constructor, possibly together with its source and range).[133X
  
  [1X1.7-3 DownToBottom[101X
  
  [33X[1;0Y[29X[2XDownToBottom[102X( [3Xx[103X ) [32X attribute[133X
  [6XReturns:[106X  [33X[0;10Ya GAP object[133X
  
  [33X[0;0YThe  argument  is a GAP object [23Xx[123X. This function iteratively calls [10XDown[110X until
  it becomes stable.[133X
  
  
  [1X1.8 [33X[0;0YCaching[133X[101X
  
  [1X1.8-1 SetCachingOfCategory[101X
  
  [33X[1;0Y[29X[2XSetCachingOfCategory[102X( [3Xcategory[103X, [3Xtype[103X ) [32X function[133X
  
  [33X[0;0YSets the caching of [3Xcategory[103X to [3Xtype[103X.[133X
  
  [1X1.8-2 SetCachingOfCategoryWeak[101X
  
  [33X[1;0Y[29X[2XSetCachingOfCategoryWeak[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XSetCachingOfCategoryCrisp[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDeactivateCachingOfCategory[102X( [3Xcategory[103X ) [32X function[133X
  
  [33X[0;0YSets the caching of [3Xcategory[103X to [10Xweak[110X, [10Xcrisp[110X or [10Xnone[110X, respectively.[133X
  
  [1X1.8-3 SetDefaultCaching[101X
  
  [33X[1;0Y[29X[2XSetDefaultCaching[102X( [3Xtype[103X ) [32X function[133X
  [33X[1;0Y[29X[2XSetDefaultCachingWeak[102X(  ) [32X function[133X
  [33X[1;0Y[29X[2XSetDefaultCachingCrisp[102X(  ) [32X function[133X
  [33X[1;0Y[29X[2XDeactivateDefaultCaching[102X(  ) [32X function[133X
  
  [33X[0;0YSets  the  default  caching  behaviour,  all  new categories will have their
  caching set to either [10Xweak[110X, [10Xcrisp[110X, or [10Xnone[110X. The default at startup is [10Xweak[110X.[133X
  
  
  [1X1.9 [33X[0;0YSanity checks[133X[101X
  
  [1X1.9-1 DisableInputSanityChecks[101X
  
  [33X[1;0Y[29X[2XDisableInputSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDisableOutputSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XEnablePartialInputSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XEnablePartialOutputSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XEnableFullInputSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XEnableFullOutputSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDisableSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XEnablePartialSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XEnableFullSanityChecks[102X( [3Xcategory[103X ) [32X function[133X
  
  [33X[0;0YMost  operations  can  perform optional sanity checks on their arguments and
  results.  The  checks  can  either  be  partial  (set  by default), full, or
  disabled. With the following commands you can either enable the full checks,
  the  partial  checks or, for performance, disable the checks altogether. You
  can do this for input checks, output checks or for both at once.[133X
  
  
  [1X1.10 [33X[0;0YTiming statistics[133X[101X
  
  [1X1.10-1 EnableTimingStatistics[101X
  
  [33X[1;0Y[29X[2XEnableTimingStatistics[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDisableTimingStatistics[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XResetTimingStatistics[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDisplayTimingStatistics[102X( [3Xcategory[103X ) [32X function[133X
  [33X[1;0Y[29X[2XBrowseTimingStatistics[102X( [3Xcategory[103X ) [32X function[133X
  
  [33X[0;0YEnable,  disable,  reset,  display,  or  browse  timing  statistics  of  the
  primitive  operations  of  [3Xcategory[103X. Caution: If a primitive operation calls
  another  primitive  operation,  the  runtime  of the later (including sanity
  checks etc.) is also included in the runtime of the former.[133X
  
  
  [1X1.11 [33X[0;0YEnable automatic calls of [10XAdd[110X[101X[1X[133X[101X
  
  [1X1.11-1 EnableAddForCategoricalOperations[101X
  
  [33X[1;0Y[29X[2XEnableAddForCategoricalOperations[102X( [3XC[103X ) [32X function[133X
  [33X[1;0Y[29X[2XDisableAddForCategoricalOperations[102X( [3XC[103X ) [32X function[133X
  
  [33X[0;0YEnables/disables  the  automatic  call  of [10XAdd[110X for the output of primitively
  added functions for the category [3XC[103X. If the automatic call of [10XAdd[110X is disabled
  (default),  the  output  of  primitively  added functions must belong to the
  correct  category.  If  the  automatic call of [10XAdd[110X is enabled, the output of
  primitively   added  functions  only  has  to  be  a  GAP  object  lying  in
  [10XIsAttributeStoringRep[110X  (with  suitable  attributes  [10XSource[110X  and [10XRange[110X if the
  output should be a morphism or a twocell).[133X
  
  
  [1X1.12 [33X[0;0YPerformance tweaks[133X[101X
  
  [33X[0;0YFor  finding  performance  issues  in  primitive operations, you can collect
  timing  statistics,  see  [14X1.10[114X. Additionally, CAP has several settings which
  can improve the performance. In the following some of these are listed.[133X
  
  [30X    [33X[0;6Y[10XDeactivateCachingOfCategory[110X or [10XDeactivateDefaultCaching[110X: see [14X1.8[114X. This
        can  either  improve  or  degrade  the  performance  depending  on the
        concrete example.[133X
  
  [30X    [33X[0;6Y[10XCapCategorySwitchLogicOff[110X        (on        by       default)       or
        [10XCapCategorySwitchLogicPropagationOff[110X  (off  by default): see [14X1.4[114X. This
        can  either  improve  or  degrade  the  performance  depending  on the
        concrete example.[133X
  
  [30X    [33X[0;6Y[10XDisableSanityChecks[110X: see [14X1.9[114X.[133X
  
  [30X    [33X[0;6Y[10XDisableAddForCategoricalOperations[110X: see [14X1.11[114X.[133X
  
  [30X    [33X[0;6Y[10XDeactivateToDoList[110X: see the package [10XToolsForHomalg[110X.[133X
  
  [30X    [33X[0;6YUse [10XObjectifyObjectForCAPWithAttributes[110X ([14X2.6[114X) instead of [10XAddObject[110X and
        [10XObjectifyMorphismWithSourceAndRangeForCAPWithAttributes[110X  ([14X3.6[114X) instead
        of [10XAddMorphism[110X.[133X
  
  [30X    [33X[0;6YAdd  all attribute testers ([10XHas...[110X) of your objects resp. morphisms to
        the    filters   passed   to   [10XAddObjectRepresentation[110X   ([14X2.6[114X)   resp.
        [10XAddMorphismRepresentation[110X ([14X3.6[114X).[133X
  
  [30X    [33X[0;6YPass the option [10Xoverhead := false[110X to [10XCreateCapCategory[110X. Note: this may
        have unintended effects. Use with care![133X
  
  
  [1X1.13 [33X[0;0YLaTeX[133X[101X
  
  [1X1.13-1 LaTeXOutput[101X
  
  [33X[1;0Y[29X[2XLaTeXOutput[102X( [3Xc[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya string[133X
  
  [33X[0;0YThe  argument is a cell [23Xc[123X. The output is a LaTeX string [23Xs[123X (without enclosing
  dollar signs) that may be used to print out [23Xc[123X nicely.[133X
  
  [1X1.13-2 LaTeXOutput[101X
  
  [33X[1;0Y[29X[2XLaTeXOutput[102X( [3XC[103X ) [32X operation[133X
  [6XReturns:[106X  [33X[0;10Ya string[133X
  
  [33X[0;0YThe  argument  is  a  category  [23XC[123X.  The  output is a LaTeX string [23Xs[123X (without
  enclosing dollar signs) that may be used to print out [23XC[123X nicely.[133X
  
