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

Unresolved uvar error on just using an unresolved identifier #107

Closed
nikswamy opened this issue Nov 6, 2023 · 1 comment
Closed

Unresolved uvar error on just using an unresolved identifier #107

nikswamy opened this issue Nov 6, 2023 · 1 comment

Comments

@nikswamy
Copy link
Collaborator

nikswamy commented Nov 6, 2023

fn test (x:ref bool)
    requires pts_to x true
    returns ctxt:some_random_identifier
    ensures pts_to x true
{
  admit()
}

Fails with

  • Tactic logged issue:
  • Internal error: unexpected unresolved (universe) uvar in deep_compress: 10

And

  • Tactic logged issue:
  • Could not infer implicit arguments in
    x: ref bool -> stt some_random_identifier (pts_to x true) (fun _ -> pts_to x true)
@nikswamy
Copy link
Collaborator Author

nikswamy commented Nov 7, 2023

Addressed by PR #112

some_random_identifier is a free in the annotated type and is then abstracted as an implicit argument. However, this implicit argument has type Type u#a and the unresolved universe variable leads to the failure.

  • Previously, since the elaborated type on which F* was called has no range, the entire Pulse function would be blamed. Now, only the type annotation is blamed.

  • Also, previously, F* would call deep_compress without checking if there are any unresolved uvars/univ_vars, which would result in a hard failure. That is fixed in F* PR 3084

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

1 participant