-
Notifications
You must be signed in to change notification settings - Fork 53
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
Typechecker gets stuck in infinite loop on recursive type definition using Set
#3048
Comments
Strange, because it works with e.g. |
Set
Set
I've been able to minimize the example a bit. Typechecking the code bellow hangs. However:
I'll continue investigating.
|
I'm not sure what's happening in our positivity checker, but it definitely should not be instantiating type variables with arbitrary available types. The running time should depend only on the types (recursively) referenced in the inductive definition. Here is a formal specification of the positivity condition for Coq: https://coq.inria.fr/doc/V8.20.0/refman/language/core/inductive.html#well-formed-inductive-definitions In the above example, to check positivity of |
The typechecker hangs (persumably because of an infinite loop) when checking the following recursive type definition.
MWE.juvix
Note that
| Baz (List Foo);
or| Baz Foo;
works.I am using Juvix v0.6.6-e4559bb and the following
Package.juvix
Steps to reproduce.
MWE.juvix
andPackage.juvix
inside.juvix clean --global && juvix clean && juvix dependencies update
juvix typecheck MWE.juvix
The text was updated successfully, but these errors were encountered: