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

Do not unfold logical connectives in norm requests #3085

Merged
merged 6 commits into from
Nov 8, 2023

Conversation

mtzguido
Copy link
Member

@mtzguido mtzguido commented Nov 8, 2023

This makes it so that using assert_norm will not cause excessive normalization, turning e.g. l_and p q into x:unit{pair p q}. This is not terrible (the SMT encoding recognizes the second one to be equivalent to the first), but can affect performance and error reporting. In particular the ranges of the unfolded formula are better, since they have been written by the user, but in the unfolded refinment they are lost (though I'm not sure why...)

A single regression in FStar.Classical is fixed by asking to explicitly unfold l_Forall. This wasn't possible before (UnfoldTac disabled the unfolding even if explicitly using delta_only), but it is now.

Fixes #1563

@mtzguido mtzguido merged commit 2a40e70 into FStarLang:master Nov 8, 2023
@mtzguido mtzguido deleted the norm_unfold_tac branch November 8, 2023 16:35
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

Successfully merging this pull request may close these issues.

Error locations when using assert_norm are off
1 participant