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

Cleaning up Slice Functor and surrounding infrastructure #347

Merged
merged 7 commits into from
Dec 30, 2023

Conversation

JacquesCarette
Copy link
Collaborator

  • split off the adjunction into Adjunction.Instance.BaseChange
  • make the code less brute force, to hopefully be more revealing as to what is going on
  • clean up imports

@Taneb
Copy link
Member

Taneb commented Sep 7, 2023

I've been looking at this file again a bit. We can define BaseChange! in terms of Forgetful (in the Slice A category) and Categories.Category.Slice.Properties.slice⇒slice-slice, and we can define BaseChange* similarly in terms of Free and slice-slice≃slice. We can build the adjunction between them out of smaller pieces in this case. This even seems to load pretty quick.

It would need some rearrangement, though: because we're using Forgetful and Free in the Slice A category rather than in C they can't both live under the C module parameter

@JacquesCarette
Copy link
Collaborator Author

Thanks for looking. Think you can push this to the finish line? I'm unlikely to do so for the next 3 months - my term is crazy-busy.

@Taneb
Copy link
Member

Taneb commented Sep 19, 2023

I can certainly give it a go. By the way, do you or @HuStmpHrrr know where the names of BaseChange! and BaseChange* come from? The papers I'm trying to translate to Agda (e.g. Polynomial Functors and Polynomial Monads call them and Σ

* Move forgetful-free adjunction to its own file
* Move base change functors to their own file
* Define base change functors indirectly
* Define base change adjunction indirectly
@sstucki
Copy link
Collaborator

sstucki commented Sep 19, 2023

do you or @HuStmpHrrr know where the names of BaseChange! and BaseChange* come from? The papers I'm trying to translate to Agda (e.g. Polynomial Functors and Polynomial Monads call them and Σ

I think ^* and _! are the standard symbols for denoting different base change functors. The name Σ for _! probably comes from the connection to disjoint unions or dependent sums in type theory: e.g. in a locally cartesian closed category, which is a model of dependent type theory, _! models such sum types. I think may be a reference to the "diagonal", since it gives you (projections out of) products A x B when you apply it to morphisms into the terminal object, but I'm not sure (type-theoretically, it corresponds to weakening substitution, IIRC).

@HuStmpHrrr
Copy link
Member

Sandro's answer is very much accurate.

@Taneb Taneb marked this pull request as ready for review September 20, 2023 21:09
@Taneb
Copy link
Member

Taneb commented Sep 20, 2023

I want to look closer at pullback-functorial. I don't understand where it comes from and how it relates to other functors. It can likely be improved.

I also want to rename Free, if I can find a satisfying name for it.

@JacquesCarette
Copy link
Collaborator Author

So I can't officially review, since strictly speaking, this PR is under my name - but @Taneb can review it. I'm actually happy with the PR as it is. The extra modifications above can be done in a subsequent PR.

@JacquesCarette JacquesCarette merged commit e5fef74 into master Dec 30, 2023
1 check passed
@JacquesCarette JacquesCarette deleted the BaseChange branch December 30, 2023 14:13
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.

4 participants