summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-14Merge branch 'master' into fixParseOnlyfixParseOnlyAndrew Reynolds
2021-09-14Support sygus version 2.1 command assume (#7081)Andrew Reynolds
Adds support for global assumptions in sygus files. Also guards against cases of declare-const, which should be prohibited in sygus.
2021-09-14fixAndres Noetzli
2021-09-14Make `-o raw-benchmark` work with `--parse-only`Andres Noetzli
Before, cvc5 was returning with `--parse-only` before the code could reach the code responsible for dumping the raw benchmark. This moves the check for `--parse-only` to the appropriate place and updates the `run_regression.py` script to use `--parse-only`.
2021-09-14Utilities in preparation for print benchmark utility (#7190)Andrew Reynolds
This adds a few utilities in preparation for the print benchmark utility, which will replace our own dumping infrastructure.
2021-09-14Add proof manager method to translate difficulty map (#7159)Andrew Reynolds
This method will be called from SmtEngine in the implementation for (get-difficulty).
2021-09-14Refactor code generation for option modules (#7182)Gereon Kremer
This PR refactors the code generation for options/<module>_options.(h|cpp).
2021-09-14Turn sphinx generation into a function (#7181)Gereon Kremer
This PR refactors the generation of the command line help for sphinx to a function, just like all the other code generation methods.
2021-09-14bv: Unify bit-blasting code for udiv and urem. (#7188)Mathias Preiner
This refactor additionally removes the caching for urem/udiv cases when bit-blasting udiv/urem and eliminates the only rewrite() calls in the bit-blaster. Caching is not required since repeated calls to udiv/urem with the same arguments will produce the same circuit. Further, the rewrite() calls during bit-blasting would further complicate the recording of bit-blasting proofs and hence is removed.
2021-09-14proofs: Properly track pre- and post-rewrites in bbAtom(). (#7147)Mathias Preiner
This commit refactors the proof bit-blaster to properly track the pre- and post-rewrites in bbAtom(). The individual bit-blast steps are recorded in a term conversion proof generator. The overall bit-blast proof is stored in a BitblastProofGenerator, which tracks the pre- and post-rewrite and includes the bit-blast proof of the TCPG.
2021-09-14Reimplement `--dump=raw-benchmark` as `-o raw-benchmark` (#7191)Andrew Reynolds
Printing the original benchmark is simple, as it is exactly the commands we execute. This removes the previous code from SmtEngine, which is currently broken.
2021-09-13Remove context getters from `TheoryState` (#7174)Andres Noetzli
This removes TheoryState::getSatContext() and TheoryState::getUserContext().
2021-09-13Connect difficulty manager to TheoryEngine (#7161)Andrew Reynolds
This also introduces the produceDifficulty option which is analogous to produceUnsatCores. It requires another unsat cores mode PP_ONLY, indicating that we are only tracking proofs of preprocessing. This option should perhaps be renamed to proofMode instead of unsatCoresMode, since its use is more general than for unsat cores. This will be addressed in a future refactoring.
2021-09-13Add Solver::isOutputOn() (#7187)Gereon Kremer
This PR adds a new api::Solver::isOutputOn() method, including unit tests for both isOutputOn() and getOutput().
2021-09-13FP: Rename FpConverter to FpWordBlaster. (#7170)Aina Niemetz
2021-09-13Refactor generation code for getInfo() (#7176)Gereon Kremer
This PR refactors the code generation for options::getInfo()
2021-09-13Add main options to cmake (#7178)Gereon Kremer
This PR adds main/options.cpp to cmake. Also, it removes the old (now obsolete and unused) options script.
2021-09-13Reorder code (#7175)Gereon Kremer
This PR reorders some options generation code that is out of order after some merges.
2021-09-13Refactor options parsing (#7143)Gereon Kremer
This PR refactors the code for options parsing.
2021-09-11Use StatisticsRegistry from Env (#7166)Gereon Kremer
This commit better integrates the StatisticsRegistry with the environment. It makes the registry an `EnvObj` itself and adds a getter to `EnvObj` to get the registry. It also refactors parts of cvc5 to use this new mechanism to obtain the registry instead of using the (global, static) `smtStatisticsRegistry()` function.
2021-09-11checkModel: Extend documentation. (#7177)Aina Niemetz
Add comment that partial operators are one reason that the current assertion cannot be checked.
2021-09-11bv: Move IsPowerOfTwo rule to preprocessing pass and use EnvObj. (#7179)Mathias Preiner
IsPowerOfTwo rule is specific to the BvIntroPow2 preprocessing pass and should not be a general bit-vector rewrite rule.
2021-09-11Add casc 28 scripts (#7070)Andrew Reynolds
2021-09-10FP: Enable caching in the theory inference manager. (#7168)Aina Niemetz
2021-09-10bv: Use EnvObj::rewrite() and EnvObj::options() in NodeBitblaster. (#7172)Mathias Preiner
This PR is based on #7171
2021-09-10FP: Use EnvObj::rewrite() and options() in theory_fp. (#7169)Aina Niemetz
2021-09-10FP: Do not send trivial lemmas. (#7167)Aina Niemetz
Fixes #7002.
2021-09-10Add Op.java to the java API (#6387)mudathirmahgoub
This commit adds Op.java OpTest.java and cvc5_Op.cpp to the java api.
2021-09-10Use C++17 attributes (#7154)Andres Noetzli
Currently, we are using non-standard attributes. With C++17, all the attributes that we use regularly are now standardized. This commit replaces the compiler-specific attributes with standard ones.
2021-09-10More refactoring of set defaults (#7160)Andrew Reynolds
This moves a large portion of the `finalizeLogic` method to more appropriate places. It also fixes an issue : `opts.datatypes.dtSharedSelectorsWasSetByUser` was checked with wrong polarity, making a previous commit not effective.
2021-09-10bv: Use EnvObj::rewrite() and EnvObj::options() in BvSolver. (#7171)Mathias Preiner
2021-09-10Refactor command-line help (#7157)Gereon Kremer
This PR refactors how we generate the command-line help message.
2021-09-09Use EnvObj-based options in preprocessing (#7165)Gereon Kremer
This PR is the first step in replacing options access via options::foo() to using the environment (via EnvObj and options().module.foo). It replaces all such options accesses in the preprocessing passes.
2021-09-09pp passes: Use EnvObj::rewrite() instead of Rewriter::rewrite(). (#7164)Aina Niemetz
2021-09-09Remove `TheoryState::getEnv()` (#7163)Andres Noetzli
2021-09-09Add Solver::getOutput() (#7162)Gereon Kremer
Allow access to the Output() macro via the API.
2021-09-09Add difficulty manager (#7151)Andrew Reynolds
Towards supporting a (get-difficulty) command. This tracks an estimate of the difficulty of preprocessed assertions during solving. It will be connected to TheoryEngine (via RelevanceManager) in a followup PR.
2021-09-09Add difficulty post-processor (#7150)Andrew Reynolds
This is work towards supporting a (get-difficulty) command. This is a helper class for transforming the difficulty of preprocessed assertions to difficulty of the input assertions.
2021-09-09Disable shared selectors for quantified logics without SyGuS (#7156)Andrew Reynolds
The use of shared selectors may have fairly negative effects when combined with E-matching. The issue is that it allows too many things to match. When shared selectors are disabled, a selector trigger like s(x) will only match terms that access the field of the constructor associated with s. When we use shared selectors, s(x) is converted to e.g. shared_selector_D_Int_1(x), which in turn matches applications of selectors of the same type over any constructor. This PR disables shared selectors when quantifiers are present and SyGuS is not used. It also disables shared selectors in single invocation subcalls, thus fixes #3109. It further makes a minor fix to the datatypes rewriter to ensure that rewritten form does not depend on options.
2021-09-09Remove `TheoryState::options()` (#7148)Andres Noetzli
This commit removes TheoryState::options() by changing more classes to EnvObjs.
2021-09-08Remove deprecated SyGuS method evaluateWithUnfolding (#7155)Andrew Reynolds
This was a predecessor to the evaluator and TermDbSygus::rewriteNode that is no longer necessary. This refactors the code so that evaluateWithUnfolding is replaced by rewriteNode as necessary throughout the SyGuS solver. Note that in a few places, the extended rewriter was being used where TermDbSygus::rewriteNode (which also evaluates recursive function definitions) should have been used.
2021-09-08Add Lfsc print channel utilities (#7123)Andrew Reynolds
These are utilities used for two-pass printing of LFSC proofs.
2021-09-08Improve pre-skolemization, move quantifiers preprocess to own file (#7153)Andrew Reynolds
This also heavily refactors the preskolemization method (now in QuantifiersPreprocess), in preparation for it being enabled by default. This method previously was doing a tree traversal, it now maintains a visited cache. It makes minor cleanup to the dependencies of this method.
2021-09-08Refactor options::set() (#7138)Gereon Kremer
This PR refactors the code generation and the generate code for options::set().
2021-09-08Work on comments (#7139)Gereon Kremer
This PR fixes / improves the comments in the options scripts.
2021-09-08A couple of minor cleanups (#7141)Gereon Kremer
This PR does a couple of minor cleanups related to options.
2021-09-08Refactor code generation for options.h/.cpp (#7126)Gereon Kremer
This PR refactors the options code generation for the options/options.h/.cpp files.
2021-09-08Towards standard usage of ExtendedRewriter (#7145)Andrew Reynolds
This PR: Adds extendedRewrite to EnvObj and Rewriter. Eliminates static calls to Rewriter::rewrite from within the extended rewriter. Instead, the use of extended rewriter is always through Rewriter, which passes itself to the ExtendedRewriter. Make most uses of extended rewriter non-static. I've added a placeholder method Rewriter::callExtendedRewrite for places in the code that call the extended rewriter are currently difficult to eliminate.
2021-09-08Add option for using bound inference for relevant assertions (#7152)Andrew Reynolds
The method for discarding assertions based on bound inference is quite expensive (40% of runtime) for some benchmarks with quantified formulas from Facebook. This adds an option to disable this, which is done by default for quantified logics.
2021-09-08Add LFSC side condition conversion utility for list variables (#7131)Andrew Reynolds
Required for automatic generation of side conditions from DSL rewrite rules.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback