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

Revert "Add refute statement" #787

Merged
merged 1 commit into from
Sep 28, 2024
Merged

Revert "Add refute statement" #787

merged 1 commit into from
Sep 28, 2024

Conversation

jcp19
Copy link
Contributor

@jcp19 jcp19 commented Sep 19, 2024

#776 introduces the refute statements, simplifies the interface between Gobra and Viper, and fixes a few long-lasting bugs. It is a step in the right direction.

Nonetheless, I'm undoing this PR for two reasons:

  • it breaks the chopper, which is an essential feature to work on large codebases. The chopper expects to get the Viper program after all plugins have executed, but this is not the case if we use the SiliconFrontendAPI. Because of this, and because the chopper does not properly handle termination measures, we usually get errors on the chopped parts because the output does not contain the declaration of domains that define termination measures.
  • There are currently a few bugs with pretty printing the Viper program when --printVpr is passed. In particular, termination measures are printed as requires decreases ... or ensures decreases .... In some cases, I also noticed that the pretty printer insers an @ before a predicate name when a predicate instance is used as a termination measure.

While the errors in the pretty printer could be easily solved with a few hacks (in silver), the issue with the chopper is a major dealbreaker. I think the proper solution to this requires promoting termination checking from a Viper plugin to a first-class feature in Viper. Maintaining termination support as a plugin will only lead to hacky solutions.

After the Viper issues are addressed, I would be happy to remerge this PR in its entirety

@jcp19 jcp19 merged commit ab4c34d into master Sep 28, 2024
2 of 3 checks passed
@jcp19 jcp19 deleted the revert-776-bruggerl/refute branch September 28, 2024 17:47
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.

2 participants