forked from OCamlPro/alt-ergo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(Dolmen): Parse triggers from formula body for SMT-LIB
In the native format, triggers are annotated on the quantifier itself, but in SMT-LIB format they are on the body of the quantifier. Alt-Ergo only looks on the quantifier, which was not a problem because Dolmen used to copy triggers from the body to the quantifier. Since Gbury/dolmen#207 Dolmen no longer performs this copy, which means that we ignore triggers in SMT-LIB format. This patch makes Alt-Ergo looks for trigger on both the quantifier and its body, to be compatible with both modes of operations. It also adds a specific test for this (although the Dolmen change breaks a bunch of existing tests already). This patch also bumps the Dolmen version for obvious reasons.
- Loading branch information
1 parent
472710d
commit 8e418f0
Showing
8 changed files
with
59 additions
and
15 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
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
|
||
unknown |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
(set-logic ALL) | ||
(declare-fun P (Int) Bool) | ||
(declare-fun f (Int) Int) | ||
|
||
; This quantifier is explicitly annotated with a (f x) trigger. | ||
; It should not cause this problem to be unsat. | ||
(assert | ||
(forall ((x Int)) | ||
(! (not (P x)) :pattern ((f x))))) | ||
|
||
; Note that we don't use (f 0). | ||
(assert (P 0)) | ||
|
||
(check-sat) |