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

Equivalence injective type families #1009

Merged
merged 7 commits into from
Jan 28, 2024

Conversation

fredrik-bakke
Copy link
Collaborator

I was checking out Agdas INJECTIVE pragma. Here are some edits I made while exploring.

@EgbertRijke
Copy link
Collaborator

On the readthedocs page of the INJECTIVE pragma I find no reasons stated why we should want this pragma in our library. On the contrary, I think injectivity of Agda entries should be explicitly recorded knowledge, with proofs why injectivity holds. Agda-unimath is about recording mathematical knowledge, not about hiding it. This would be an argument for me to not consider this pragma.

What are your reasons for wanting to experiment with this? Would you be ok with it if this PR gets rejected?

@fredrik-bakke
Copy link
Collaborator Author

I completely agree that we dont want to use this pragma, and this PR doesn't introduce its use. I was curious if we could make Agda infer things like the cardinality of a standard finite set with it, but found out that functionality doesn't yet exist.

@EgbertRijke
Copy link
Collaborator

EgbertRijke commented Jan 26, 2024

This PR is compiling and it looks ready for review. I would be happy to give it my approval and merge it after the open conversations are resolved.

In particular, there are lots of edits in this PR that would be useful to merge into the library, and if you have further developments of equivalence injective type families in mind they could easily happen in a subsequent pull request.

@fredrik-bakke
Copy link
Collaborator Author

This PR is compiling and it looks ready for review. I would be happy to give it my approval and merge it after the open conversations are resolved.

In particular, there are lots of edits in this PR that would be useful to merge into the library, and if you have further developments of equivalence injective type families in mind they could easily happen in a subsequent pull request.

Thanks, I am not planning on adding anything else. I was just unsure of the naming and wanted to review the code myself before marking it ready for review, but seems you helped expedite that process 😅

@fredrik-bakke
Copy link
Collaborator Author

fredrik-bakke commented Jan 28, 2024

If it's okay with you, may I continue my work on transport-split type families in this PR? It seems reasonable to keep it collected, and I don't expect this PR to be particularly large regardless.

EDIT: Never mind, I'll just make a new branch.

@fredrik-bakke fredrik-bakke marked this pull request as ready for review January 28, 2024 12:42
@EgbertRijke
Copy link
Collaborator

If it's okay with you, may I continue my work on transport-split type families in this PR? It seems reasonable to keep it collected, and I don't expect this PR to be particularly large regardless.

EDIT: Never mind, I'll just make a new branch.

I was actually expecting that you would change the notion of equivalence injective type family to transport-split type family. Do you still want to go through with this PR as it is?

@fredrik-bakke
Copy link
Collaborator Author

If it's okay with you, may I continue my work on transport-split type families in this PR? It seems reasonable to keep it collected, and I don't expect this PR to be particularly large regardless.

EDIT: Never mind, I'll just make a new branch.

I was actually expecting that you would change the notion of equivalence injective type family to transport-split type family. Do you still want to go through with this PR as it is?

I think equivalence injective type families deserve a spot on equal footing to injective maps. I was thinking to develop the other notions alongside it.

@EgbertRijke
Copy link
Collaborator

Ah ok, I thought we came to a different conclusions, i.e., that objects should not be called injective in this way even if they happen to be defined as some maps.

To me, the notion of injectivity for maps is acceptible because it is a well established notion about maps, but to call an object injective in a way that doesn't refer to the usual notion of injective object in any way sounds wrong and I don't know why it should have equal footing to the well established notion of injective map.

@fredrik-bakke
Copy link
Collaborator Author

fredrik-bakke commented Jan 28, 2024

Okay. Then how about eq-index-equiv-fibers? If for nothing else, the notion is already used in some places, and serve as a way to give some computational content to "injectivity of maps" for type families

@EgbertRijke
Copy link
Collaborator

Hm... my apologies I think I went a bit too hard in my previous message. It is totally true that the notion has been used previously, and that it is a useful thing to isolate. Perhaps "equivalence injective type family" is just the best name for it.

I think I can live with it:P Apologies for saying that it is wrong.

@EgbertRijke
Copy link
Collaborator

I checked this PR once more and it looks good now. I'll merge it. Thanks for your good work Fredrik, and thanks for bearing with me.

@EgbertRijke EgbertRijke merged commit c339bac into UniMath:master Jan 28, 2024
4 of 8 checks passed
@fredrik-bakke
Copy link
Collaborator Author

No worries! Keep posted for the sequel 😁

@fredrik-bakke fredrik-bakke deleted the injective branch January 28, 2024 15:41
EgbertRijke added a commit that referenced this pull request Jan 31, 2024
This is the follow-up PR to #1009.

### Summary
- Transport-split type families are type families `B` such that
`equiv-tr B` admits fiberwise sections
- This notion is equivalent to univalent type families by a corollary of
the fundamental theorem of identity types
- Some infrastructure and basic lemmas for univalent type families
- Preunivalent type families are type families `B` such that `equiv-tr
B` is a fiberwise embedding
- 3-for-2 for preunivalent type families using the preunivalence axiom
  - Some other infrastructure
- `Fin` is preunivalent

### Future work
- Closure properties for univalent and preunivalent type families

Co-authored-by: Egbert Rijke <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants