forked from HOL-Theorem-Prover/HOL
-
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.
HolSmt: parse indexed identifiers' indices as terms
Prior to SMT-LIB 2.5, the indices of indexed identifiers could only be numerals. In SMT-LIB 2.5 and later, identifiers can be indexed not just with numerals but also with symbols. This was implemented in commit 8a2e9bc However, the `quant-inst` inference rule in Z3 v4 proofs can contain arbitrary terms as its indices, as seen in this example: ((_ quant-inst (v12 v17) (v11 v17 ?x304)) ...) In order to add support for this rule in a follow-up commit, the SMT-LIB parser was changed to support arbitrary terms as indices in term identifiers (but not type identifiers). This should be a superset of what SMT-LIB allows, which should be fine because we don't need to implement a strict parser. However, Z3 v2 proof certificates contain inference rules such as the following: (_ |th-lemma| arith farkas -41/42 -1) In particular, `-41/42` and `-1` are not valid SMT-LIB terms. We used to parse this successfully because we allowed arbitrary strings as indices, but since we are trying to parse terms, this is now being rejected by the parser. Due to this regression, proof replay for some test cases was disabled for Z3 v2 (but they are still enabled for Z3 v4).
- Loading branch information
1 parent
043537b
commit f51b787
Showing
6 changed files
with
114 additions
and
61 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
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