-
Notifications
You must be signed in to change notification settings - Fork 150
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cut on circularity rule application, better error message (#4445)
Related: #4359 Related: runtimeverification/haskell-backend#3912 This PR is to support passing the final tests on the RPC prover in KEVM. In particular: - A bug we've been hitting in Haskell backend gets a better error message, to hopefully be more informative off the bat. - A duplicate log message in `KCFGExplore.section_edge` is removed. - When doing `KCFGExlore.section_edge`, we were previously just dropping the rule labels of the applied rules on the new edges. Now we save them and store them appropriately on the KCFG. - When computing the rule labels to store in the KCFG, if the unique-id is not present in teh definition, we still use the supplied unique id because the HB now returns the rule label instead if it's present (runtimeverification/haskell-backend#3916). We just report the location of the rule as `UNKNOWN`. - The logic for how we apply circularity rules is refined a bit: - When discharging a circularity proof obligation, we always consider the circularity rule itself to be a cut-point rule. That's because we need the state immediately following the application of the circularity rule to compare it to subsumption into the initial target state. - When discharging a circularity proof obligation, if we have not made any progress yet on the proof, we first take an execution step of depth 1 before resuming normal execute depth. This is because we cannot inject the circularity rule for consideration until we've made some progress, but want to enable it for consideration as early as possible. - A test of IMP that before had to manually massage the cut-point-rules list does not have to do that anymore, and is passing directly. --------- Co-authored-by: Petar Maksimović <[email protected]>
- Loading branch information
Showing
4 changed files
with
55 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters