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

Commit on self types #186

Open
EduardoRFS opened this issue Nov 14, 2023 · 4 comments
Open

Commit on self types #186

EduardoRFS opened this issue Nov 14, 2023 · 4 comments
Assignees

Comments

@EduardoRFS
Copy link
Contributor

Should self types trigger an error and only be used by macros?

@EduardoRFS EduardoRFS self-assigned this Nov 14, 2023
@EduardoRFS
Copy link
Contributor Author

EduardoRFS commented Dec 26, 2023

This will not be the case, I made the decision to go strictly with dependent intersection as when combined with mutual recursion(induction-induction), they are more general than self.

@EduardoRFS
Copy link
Contributor Author

Keeping this open to document the thought process and the details.

@EduardoRFS
Copy link
Contributor Author

Mostly the idea is that, you can replace %self(x). T by A where A == (x : A) & T, this requires a recursive type and while I believe it to be weaker, it is way more well behaved requiring only more or less traditional type theory.

Additionally this dependent intersection can be decomposed further into coinductive pairs and the axiom K, it also implies in the axiom K, which breaks univalence but that can be solved in a dozen ways.

@EduardoRFS
Copy link
Contributor Author

I'm not super sure about this choice, self seems more well behaved under computationally relevant equality like HoTT. Additionally it seems like self + intersection = dependent intersection, which makes sense but the dual of the dependent intersection is lacking, which indicates something wrong in the theory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

1 participant