Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(co)products/(co)equalizers for Fincats and Diagrams #609

Closed

Conversation

kris-brown
Copy link
Contributor

@kris-brown kris-brown commented Mar 18, 2022

Main goal: implement the constructions described in Peschke and Tholen (2020) remark 2.8. This involves developing a lot of other prerequisite functionality.

Main contributions:

  • Currying FinDomFunctors into C-Set as FinDomFunctors into Set
  • pushout-based chase
    • Collage of functor
    • Conversion between C-Set and SpanC-Set (a model for C-Rel)
    • left kan extensions of FinDomFunctors into Set (or C-Set) + universal property
  • Limits/colimits the category of FinCats
    • Products and coproducts of FinCat presentations (including treatment of equations)
    • No treatment of equations yet for equalizers/coequalizers
  • Limits/colimits the category of FinCats
    • Products/coproducts of Diagram{id} and Diagram{op}, equalizers for the former and coequalizers for the latter
    • Universal properties for the above (co)limits
    • Left kan extension used to compute coequalizers for Diagram{id}

To-do:

  • Left kan extension to compute equalizers for Diagram{op}
  • Universal property of coequalizers (id) / equalizers (op).

Caveats:

  • Code for (co)limits of FinCats is stored in Limits.jl to avoid circular dependency. Tests are still in test/.../FinCats.jl
  • For simplicity, FinCatPresentations are treated (but, ideally, code generically would work with FinCatGraphs as well)
  • Because of the makeshift way dynamic acsets are implemented, rather than MyCSetType() it's safer to use Base.invokelatest(MyCSetType)
  • Rebasing on master included a bunch of unrelated commits for some reason. The relevant files are Chase.jl, Limits.jl, CSets.jl, Diagrams.jl.
  • Left kan extensions are abysmally slow (possibly in large part due to the dynamic acset hack)

kris-brown and others added 30 commits March 18, 2022 12:51
…patch-1

add hash method for diagram/diagram hom
Replace half-baked function `roottype` with `Base.typename`
epatters and others added 15 commits March 31, 2022 21:36
ENH: removed dynamic allocation of named tuple in rem_part!

ENH: sprinkled in some happy little @inbounds

ENH: use a named tuple instead of keyword arguments

ENH: added ability to preallocate indices for acsets

ENH: added search algorithms

ENH: set_subpart returns subpart

ENH: inbounds for set_subpart

ENH: added random graph generators

ENH: added faster connected component implementation using bfs

ENH: added normalize_labeling function to FinSets

ENH: more graph functions

BENCH: more benchmarks

ENH: benchmark plotting

FIX: added back keyword arguments to add_edge!

FIX: graph generators shouldn't preallocate to be generic

CLEANUP: Replace `normalize_labels` with inline function calls.

TEST: added tests for graph generators and searching algorithms

DOC: added clarifying comment for add_parts_with_indices!

TEST: added tests for degree

add hash method for diagram/diagram hom
add tests


CLEANUP: Use `Base.typename` instead of homemade function `roottype`.
Substituting syms and inverting wiring diagrams


Allow vertex coloring, catlab theory to EqTheory conversion


Invert diagram fixed for passwires


Split chase into parts,  simpler trim function, 

many functions which depended on EqTheory but really just needed the theory's generators have been updated to reflect this 
bugfix


remove wiring diagram interface

Removed code is now in GraphicalLinearAlgebra.jl
@kris-brown kris-brown mentioned this pull request Apr 5, 2022
- FinTransformationMap (between FinFunctors to Set) <-> ACSetTransformation
- naturality of DiagramHoms
- currying of fintransformationmap
- fix bug in coequalizer of fincats
explained example of a pushout in diag(Grph)
@kris-brown
Copy link
Contributor Author

cleaned up commit history and resubmit as #615

@kris-brown kris-brown closed this Apr 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants