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

Replace -type-in-type with something else to enable Alectryon? #1925

Open
arnoudvanderleer opened this issue Sep 3, 2024 · 3 comments
Open

Comments

@arnoudvanderleer
Copy link
Collaborator

arnoudvanderleer commented Sep 3, 2024

Opening a new issue in favour of #1696, to revive the discussion here because of semi-recent developments.
In the past, there has been a proposal to replace -type-in-type with some form of Unset Universe Checking, because Alectryon does not support -type-in-type. @peterlefanulumsdaine summarized that we have the following options (from which we might choose different combinations for the short and long term):

  1. compilation with -type-in-type (current approach)
  2. exporting Unset Universe Checking from Foundations.Init (Replace -type-in-type with Export Unset Universe Checking in UniMath.Foundations.Init #1697)
  3. adding local Unset Universe Checking to all files where it’s currently needed (Replace -type-in-type by #[local] Unset Universe Checking in all necessary files #1698)
  4. adding Unset Universe Checking locally, and try to reduce how much it’s needed to a reasonable amount

@nmvdw mentioned that recent developments in coq mean that none of our satellites build without -type-in-type, which means that there are now less objections against Export Unset Universe Checking.

At the very least, in this issue we want to choose:

  • Do we want to maintain the status quo and keep -type-in-type, or do we want better documentation and implement Alectryon?
  • If we want Alectryon, and abandon -type-in-type, how will we get our files to still compile?
@arnoudvanderleer
Copy link
Collaborator Author

@benediktahrens @DanGrayson @rmatthes @m-lindgren What do you think about this?

@benediktahrens
Copy link
Member

I think that moving more command-l8ne arguments into Coq files will make it easier for people to use UniMath.

(I would like to see the same for other arguments, such as indices-matter.)

@peterlefanulumsdaine
Copy link
Collaborator

I support (2): export “Unset Universe Checking” from Foundations, instead of depending on -type-in-type.

(My feelings are mostly as they were in the earlier discussion #1696 : (4) seems the best long-term goal, but getting there will be a lot of work and so shouldn’t get entangled with simpler near-term issues; (3) has some disadvantages and no particular advantages over (1)/(2). The Alectryon point, plus the satellites no longer compiling with universe checking, have swung me from “no strong preference between (1) and (2) for now” to “definitely favour (2) for now”.)

PR #1697 offered (2) at the time, and I hope it should still basically work — it would need a little updating now, but that shouldn’t be too hard. I’ll do that if I get the chance to, but I’m a bit busy at the moment, so if someone else does sooner that’d be great!

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

3 participants