Category interface
The same generic functions are shared by many category implementations. Which methods are available depends on the structure provided by the category. See the interface chapters for the mathematical meaning and the implementation checklist when adding a new model.
| Role | Principal public names | Manual |
|---|---|---|
| Core types, parents, and underlying data | Category, Object, Morphism, parent, category, object, morphism, == | Models and interface, objects and morphisms |
| Sources, targets, and composition | domain, codomain, id, compose, ∘, inv, is_invertible, left_inverse, right_inverse, composition_power | Objects and morphisms |
| Hom spaces and coordinates | Hom, End, HomSpace, HomSet, basis, int_dim, zero_morphism, is_zero, matrix, matrices, express_in_basis | Linear categories, matrix coordinates |
| Direct sums and finite (co)products | direct_sum, ⊕, product, ×, coproduct, ∐ | Additive and abelian categories |
| Decomposition and simple objects | decompose, indecomposables, simples, simples_names, is_simple, is_indecomposable, Oscar.is_isomorphic, simple_subobjects, composition_factors | Additive and abelian categories, fusion and splitting |
| Kernels, cokernels, and images | kernel, cokernel, image, is_monomorphism, is_epimorphism, is_subobject | Additive and abelian categories |
| Structural predicates | is_linear, is_additive, is_abelian, is_semisimple, is_split_semisimple, is_finite | Independent structures, fusion and splitting |
| Standard category constructions | opposite_category, product_category, extension_of_scalars, split, semisimplify, karoubian_envelope | Products and scalar extension, coefficient fields |
These lists identify the generic functions to look up; they do not assert that every row applies to every category. In Julia, methods(name) gives the currently installed methods for a name.