-
Notifications
You must be signed in to change notification settings - Fork 8
feat: UHomSeq el, code, Pi, lam, Sigma #120
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
Conversation
@digama0 is it okay that mkPair is written in tactic mode? Maybe we don't ever need to unfold that definition so it's okay? And also it should follow from a more general (and maybe less confusing?) statement about polynomial endofunctors. |
Tactic mode is just another way of writing terms, it makes no difference for definitions. What actually matters is whether you use tactics like by
refine compDomEquiv.mk _ t (ym(eqToHom congr(s[i].ext $t_tp)) ≫ B) u ?_ ≫ s.pair ilen jlen
rw [u_tp, ← Functor.map_comp_assoc]; subst A; simp This is just the same as compDomEquiv.mk _ t (ym(eqToHom congr(s[i].ext $t_tp)) ≫ B) u
(by rw [u_tp, ← Functor.map_comp_assoc]; subst A; simp)
≫ s.pair ilen jlen but easier to format. |
/- It is useful to be able to talk about the underlying sequence of Homs in a UHomSeq. | ||
For such a sequence, we can loosen the condition i < j to i <= j | ||
without creating Type in Type. | ||
This is helpful for defining `s[i] → s[max i j]` for Pi and Sigma below. | ||
-/ |
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.
/- It is useful to be able to talk about the underlying sequence of Homs in a UHomSeq. | |
For such a sequence, we can loosen the condition i < j to i <= j | |
without creating Type in Type. | |
This is helpful for defining `s[i] → s[max i j]` for Pi and Sigma below. | |
-/ | |
/-- The composite natural model `Hom` from `s[i]` to `s[j]`, where `i ≤ j`. | |
This is helpful for defining `s[i] → s[max i j]` for Pi and Sigma below. | |
Note that a `UHom` only exists when `i < j`. -/ |
I think UHom
is probably just a bad concept, it's not a hom at all (because Type : Type
). But we can leave changing that for later.
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.
What makes it not a hom? It's just a special kind of hom, the actual category structure is over Hom
(which is reflexive). It could be expressed as a property or extra data on a hom, but as it says it is bundled for convenience.
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 moved NaturalModel.Hom
things up because that structure is general and well-behaved and often the definitions we want for UHomSeq
can be defined at that generality. We could also consider making it even more general, for cartesian squares between UvPoly
s.
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.
What makes it not a hom?
It's not reflexive.
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 think is quite a strange thing to consider category-theoretically. So it is probably not worth thinking of it as structure on a hom
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 mean a UHom is a Hom just like an abelian group is a group, there is an additional property on top of another thing which has the base name. An example from category theory would be something like an epimorphism or a projective object, just because it's an epimorphism doesn't mean it's not a morphism anymore, and not all categorical properties are closed under id and comp.
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 agree with all of that. My point is that I don't see a way to phrase this definition in a way that is invariant under equivalence of categories Cart C ~~ E
. Maybe there is, I don't know
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 notion doesn't really make sense; this is not a pure categorical definition, it comes with additional data. In any case, that is by no means a requirement for something to be a valid notion
Co-authored-by: Wojciech Nawrocki <[email protected]>
Co-Authored-By: Joseph Hua <[email protected]> Co-Authored-By: Yiming Xu <[email protected]> Co-Authored-By: Wojciech Nawrocki <[email protected]>
I changed the definition of UHom so that top map in the pullback square defining the universe is not merely propositional. @Vtec234 and I discussed this a while back I remember - and we agreed that it should be data.
I defined
el
andcode
, and proved their basic properties, including the fact thatel (code A) = A
andcode (el a) = a
@u5943321 defined the universe max operations needed for Pi, Sigma, lamda