This branch incorporates mark as deleted into Catlab. As was the case with VarACSets, the priority is getting support for hom search. Colimits would be the next natural thing to do. In the course of working on this, the problem of Catlab having it's own version of everything in ACSets (FinFunction machinery vs column + index machinery) was very painful.
There could be no difference in the data structure for a morphism between MaD ACSets if we just treat the data in position i of a FinFunction (when i has been deleted in the domain) as to-be-ignored.
Constructing the ACSetTransformation data structure (e.g. as the result of a hom search) posed a challenge, as the data gets validated in many ways which do not work when parts have been deleted.
There are many challenges in making colimits work. However, since AlgebraicRewriting has support for in-place colimits (for MaD ACSets), there is no need to integrate with the normal colimit infrastructure just yet.
This branch incorporates mark as deleted into Catlab. As was the case with VarACSets, the priority is getting support for hom search. Colimits would be the next natural thing to do. In the course of working on this, the problem of Catlab having it's own version of everything in ACSets (FinFunction machinery vs column + index machinery) was very painful.
There could be no difference in the data structure for a morphism between MaD ACSets if we just treat the data in position
i
of a FinFunction (wheni
has been deleted in the domain) as to-be-ignored.Constructing the ACSetTransformation data structure (e.g. as the result of a hom search) posed a challenge, as the data gets validated in many ways which do not work when parts have been deleted.
There are many challenges in making colimits work. However, since AlgebraicRewriting has support for in-place colimits (for MaD ACSets), there is no need to integrate with the normal colimit infrastructure just yet.