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

Make pointed-set categories and schemas actually pointed #857

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

KevinDCarlson
Copy link
Contributor

I original left out zero objects in PtdSetCategory and PtdSetSchema but now I want the Attr side to be allowed to have a zero object so that I can pull attrs out of a hat that aren't in the source schema; I'm not sure whether I really need the zero object in the combinatorial side yet but why tempt fate?

@AlgebraicJulia AlgebraicJulia deleted a comment from github-actions bot Sep 29, 2023
Copy link
Member

@epatters epatters left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR. With the idea that Catlab.Theories should contain a hierarchy of plausibly useful theories even if we don't immediately need them, I might suggest having:

  1. ThPointedSetCategory for a category enriched in pointed sets, as before
  2. ThPointedCategory for a pointed category inherits from ThPointedSetCategory, adding the zero objects.

"""
@theory ThPointedSetCategory{Ob,Hom} <: ThCategory{Ob,Hom} begin
@theory ThPointedCategory{Ob,Hom} <: ThCategory{Ob,Hom} begin
ZeroOb()::Ob
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our convention for term constructors in Catlab.Theories is that they are lowercase.

zeromap(A,B)::Hom(A,B)⊣(A::Ob,B::Ob)
compose(zeromap(A,B),f::(B→C))==zeromap(A,C)⊣(A::Ob,B::Ob,C::Ob)
compose(g::(A→B),zeromap(A,B))==zeromap(A,C)⊣(A::Ob,B::Ob,C::Ob)

#f == g ⊣ (A::Ob,f::Hom(A,ZeroOb()),g::Hom(A,ZeroOb()))
#f == g ⊣ (B::Ob,f::Hom(ZeroOb(),B),g::Hom(ZeroOb(),B))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why have commented out axioms?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Documentation on your documentation.

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