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

Mutual inductive incorrectly squashed without explicit : Prop #17801

Closed
SkySkimmer opened this issue Jul 2, 2023 · 2 comments
Closed

Mutual inductive incorrectly squashed without explicit : Prop #17801

SkySkimmer opened this issue Jul 2, 2023 · 2 comments
Labels
kind: regression Problems that were not present in previous versions. part: inductives Inductive types, fixpoints, etc. part: universes The universe system.

Comments

@SkySkimmer
Copy link
Contributor

Inductive foo := Foo ( foop : bar )
with bar := Bar ( barp : foo ).

Check (foo, bar).
(* Set * Prop *)

Fail Check fun b : bar => match b with Bar x => x end.
(* incorrect elimination to return sort Set *)

NB: in 8.17 there is no issue as they both get put in Type.
Putting both in Prop could also be considered correct, but putting one in Prop but not the other is not correct.

@SkySkimmer SkySkimmer added kind: regression Problems that were not present in previous versions. part: universes The universe system. part: inductives Inductive types, fixpoints, etc. labels Jul 2, 2023
@SkySkimmer
Copy link
Contributor Author

d19954a is the first bad commit

Probably the set_eq_sort set du when lowering to Prop makes the system confused

@SkySkimmer
Copy link
Contributor Author

Fixed in #17795

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: regression Problems that were not present in previous versions. part: inductives Inductive types, fixpoints, etc. part: universes The universe system.
Projects
None yet
Development

No branches or pull requests

1 participant