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

Add judgmental notion of "strictly phi-connected type" #182

Open
jonsterling opened this issue Jan 20, 2021 · 3 comments
Open

Add judgmental notion of "strictly phi-connected type" #182

jonsterling opened this issue Jan 20, 2021 · 3 comments

Comments

@jonsterling
Copy link
Collaborator

No description provided.

@jonsterling
Copy link
Collaborator Author

jonsterling commented Jan 21, 2021

I think this is actually not too far beyond what I know how to do. Semantically tp \ phi is the collection of types A equipped with a unique element a : {phi} A.

Implementation-wise, it is not a good idea to be able to state that A has a unique element under phi for a given type A; as an assumption this probably implies some implementation taboo, perhaps as strong as equality reflection.

But it is ok to speak of the collection of types that have a unique phi-element, and provide syntax for projecting this element from A : tp \ phi, and provide syntax for constructing an element (A, a) : tp \ phi from a type A and its unique phi-point a.

  1. Define a judgment tp \ phi; there is no need to restrict where this judgment can occur in the cooltt LF presentation --- it can be assumed freely.

  2. Add a coercion tp \ phi ---> tp, together with a partial point p : phi -> A for each A : tp \ phi, such that under every element of A is equal to p under phi.

  3. Add a weak closed modality Cl[phi] : tp ---> tp \ phi. This has the same introduction rules as the mathematical closed modality for phi, but we will give a dependent induction principle without an eta law in order to facilitate implementation.

@favonia

This comment has been minimized.

@jonsterling

This comment has been minimized.

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

No branches or pull requests

2 participants