-
Notifications
You must be signed in to change notification settings - Fork 71
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
Hofmann-Streicher universes for graphs and globular types #1196
base: master
Are you sure you want to change the base?
Conversation
…endendent globular types with morphisms into the universal globular type
I have now proven the duality theorem for directed graphs (analogous to type duality), which is the toy-result of what I'm really after for globular types. |
Unfortunately, it is a choice between two evils, unless we want to start playing with making changes to the auto-formatter. Luckily your issue can be avoided by being mindful of how one comments code. Your best course of action here is to look through the commit history for a point in time where the code wasn't jumbled. Alternatively, you could try something like text replacing |
Hiya! It looks like this PR is perhaps growing a bit outside the scope of the original goal. While I don't doubt the changes are relevant to one another, do you think it perhaps would be possible to split it up into some more manageable chunks for the eventual review? |
I appreciate your point but I don't buy into the lamda-where notation as fully as you do. Our guidelines say that we prefer regular pattern matching over lambda-where patterns. In particular in combination with coinductive types I think the lambda-where notation departs significantly from common mathematical practice, while the standard pattern matching just reads as a judgmental equality that holds when you apply a destructor to a term. For example, the lambda-where notation permits and encourages weird looking code salads like:
where destructors are mixed with constructors in line of code just looks crazy, to be honest. It is so much better to read
where the projection and the arguments are in a sensible order. I think the current guidelines are sensible in not completely rejecting lambda-where notation while stating a preference for the other pattern-matching approaches. I hope too that we won't be undoing each other's work because of a difference in stylistic preferences. |
This PR should be merged before #1196. I have only moved files and adjusted imports and markdown links accordingly, in an attempt to preserve the credits to the content creators.
I believe I've addressed all the review comments, except one where I asked if it is ok to leave it unaddressed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't comment without finishing my review 😩
e₂ : {x y : G₀} {s t : H₀ x y} {u v : H₁ | ||
H₂ (refl G x) (refl G y) u v ≃ G₃ (e₁ u) (e₁ v) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is misformatted
|
||
from the image of the reflexivity cell at `x` in `G` to the reflexivity cell at | ||
`f₀ x`, such that the [globular map](structured-types.globular-maps.md) | ||
`f' : G' x y → H' (f₀ x) (f₀ y)` is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, that's fine. I'll have a final read through later tonight 😁👍
record | ||
Binary-Dependent-Globular-Type | ||
{l1 l2 l3 l4 : Level} (l5 l6 : Level) | ||
(G : Globular-Type l1 l2) (H : Globular-Type l3 l4) : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason H
can't be dependent over G
?
|
||
A binary dependent globular type `K` over reflexive globular types `G` and `H` | ||
is said to be | ||
{{#concept "reflexive" Disambiguation="binary dependent globular type"}} if it |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add pointer to Agda definition
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Crazy stuff! But next time, maybe try and keep the PR a little smaller 😬
(H : Large-Transitive-Globular-Type α2 β2) | ||
(f : large-globular-map-Large-Transitive-Globular-Type γ G H) : UUω | ||
where | ||
coinductive |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This definition doesn't require the coinductive
flag since it is not coinductive.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The same is probably true for large ((co)lax) reflexive globular maps as well.
preserves-refl-globular-map G H (globular-map-globular-equiv e) | ||
``` | ||
|
||
### Equivalences between globular types |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### Equivalences between globular types | |
### Reflexive equivalences between reflexive globular types |
- [Reflexive globular maps](globular-types.reflexive-globular-maps.md) | ||
- [Noncoherent wild higher precategories](wild-category-theory.noncoherent-wild-higher-precategories.md) | ||
are globular types that are both reflexive and | ||
[transitive](globular-types.transitive-globular-types.md). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should noncoherent wild higher precategories rather be reflexive globular types with a composition structure?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking about this, and since you're suggesting it I would be happy to make that change. I'd call them
Transitive-Reflexive-Globular-Types
,
which is a bit shorter than
Noncoherent-Wild-Higher-Precategory
I've also been wondering why you use relational terminology for globular types (eg. the composition structure is called transitivity structure), but don't follow through by calling them Wild-Higher-Preorders
. My explanation for this is that we probably want to convey categorical thinking rather than preorder thinking, and perhaps the terminology "preorder" in combination with "higher" would be too "wild".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't make this change in this PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason for the relational terminology is that I consider globular types a higher dimensional variant of graphs, as opposed to a less structured variant of categories
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't fully grasp what exactly the difference between a composition structure and transitivity is, though I expect it will be immediately clear if I try and apply the concept, so my question was genuinely "is transitivity the wrong concept?"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, so what the morphism condition buys you is a horizontal composition operation, i.e.,
Given a diagram of 1-cells
f g
------> ------>
x ⇓ y ⇓ z
------> ------>
f' g'
you have a 2-cell
g ∘ f
---------->
x ⇓ z
---------->
g'∘ f'
and so on for higher cells. That's neat, I support this change. Similarly, if we assume the globular type is reflexive and the binary map is reflexive, then that gives us whiskering laws, which is also missing in the current definition.
You're right. Sorry! Thanks so much for reviewing this beast! |
Sorry to rush you, but could we try to get this PR merged? The outstanding comments are very minor, and I'd like to continue work on wild higher categories. |
I wouldn't mind making the final fixes without credit so we could get this PR merged, for instance. |
Don't sweat it, I'll be working on a branch off of your current version of things in the meantime. I am trying not to have too much overlap in case you make bigger changes, but I'm making additions to composition structures that I can use to define and work with noncoherent wild ω-semiprecatgories. I want to start with semiprecategories because there are some interesting things to say about the nonunital case. From there I propose we define noncoherent wild ω-precategories as noncoherent wild ω-semiprecatgories that are reflexive and whose composition structure is unital. |
This pull request is part of the formalization of higher category theory project with Ivan. Here we construct Hofmann-Streicher universes for:
Additionally, we add some computations for dependent Pi-types in those toposes, and some infrastructure is streamlined.