cvc5.git
5 years agoNew C++ API: Term: Add missing checks for null. (#3364)
Aina Niemetz [Wed, 9 Oct 2019 00:24:49 +0000 (17:24 -0700)]
New C++ API: Term: Add missing checks for null. (#3364)

Co-Authored-By: Andres Noetzli <andres.noetzli@gmail.com>
5 years agoLimit cases of sygus inference based on type (#3370)
Andrew Reynolds [Tue, 8 Oct 2019 23:06:16 +0000 (18:06 -0500)]
Limit cases of sygus inference based on type (#3370)

This makes `--sygus-inference` a no-op for inputs where there is a free function whose sort cannot be handled in a sygus grammar.

It also fixes an issue where skolem variables were not being treated as functions-to-synthesize.

Fixes #3250 and fixes #3356.

5 years agoFix method for getting arithmetic function definition body (#3371)
Andrew Reynolds [Tue, 8 Oct 2019 20:32:38 +0000 (15:32 -0500)]
Fix method for getting arithmetic function definition body (#3371)

5 years agoprefer prefix ++ operator for iterators
Piotr Trojanek [Thu, 22 Aug 2019 21:22:51 +0000 (23:22 +0200)]
prefer prefix ++ operator for iterators

Detected with cppcheck static analyser, which said: (performance) Prefer
prefix ++/-- operators for non-primitive types. Reformat with clang-format
as needed.

Signed-off-by: Piotr Trojanek <piotr.trojanek@gmail.com>
5 years agopass parameters by reference where it affects performance
Piotr Trojanek [Thu, 22 Aug 2019 21:12:20 +0000 (23:12 +0200)]
pass parameters by reference where it affects performance

Detected with cppcheck static analyser, which said: (performance) Function
parameter should be passed by reference. Reformat with clang-format as
needed.

Signed-off-by: Piotr Trojanek <piotr.trojanek@gmail.com>
5 years ago[CVC Parser] Add support for regular expressions (#3346)
Andres Noetzli [Tue, 8 Oct 2019 17:00:48 +0000 (10:00 -0700)]
[CVC Parser] Add support for regular expressions (#3346)

5 years agoDisallow --proof and --incremental (#3332)
Andres Noetzli [Tue, 8 Oct 2019 16:05:50 +0000 (09:05 -0700)]
Disallow --proof and --incremental (#3332)

5 years agoMake ackermannization generally applicable rather than just BV (#3315)
Ying Sheng [Tue, 8 Oct 2019 15:18:21 +0000 (08:18 -0700)]
Make ackermannization generally applicable rather than just BV (#3315)

The ackermannization process is currently already support general theories rather than specifically for BV. In this pull request, an option has been added to turn on ackermannization independently.

5 years agoBuild system: Add build type for incremental competition builds. (#3365)
Aina Niemetz [Tue, 8 Oct 2019 06:27:44 +0000 (23:27 -0700)]
Build system: Add build type for incremental competition builds. (#3365)

Previously, competition builds for incremental tracks required to
manually pass in -DCVC4_SMTCOMP_APPLICATION_TRACK as compiler flag. This
introduces an additional build type for incremental competition builds
to simplify configuration for such builds.

5 years agoNew C++ API: Add Term::getId(). (#3360)
Aina Niemetz [Tue, 8 Oct 2019 01:37:48 +0000 (18:37 -0700)]
New C++ API: Add Term::getId(). (#3360)

+ use explicit types in NodeValue
+ add unit test for Term::isParameterized()

Co-Authored-By: makaimann <makaim@stanford.edu>
5 years ago[SMT2 Parser] Move code of `rewriterulesCommand` (#3334)
Andres Noetzli [Tue, 8 Oct 2019 01:16:40 +0000 (18:16 -0700)]
[SMT2 Parser] Move code of `rewriterulesCommand` (#3334)

This commit moves the code in `rewriterulesCommand` in the SMT2 parser
to the `Smt2` class. Additionally, it creates a `boundVarList` rule to
reduce code duplication.

5 years agoFix typo in regression (#3359)
Andrew Reynolds [Sun, 6 Oct 2019 15:34:24 +0000 (10:34 -0500)]
Fix typo in regression (#3359)

5 years agoFix str to int reduction (#3358)
Andrew Reynolds [Sun, 6 Oct 2019 07:33:25 +0000 (02:33 -0500)]
Fix str to int reduction (#3358)

This fixes a corner case of the str-to-int reduction for the case where the argument is the empty string.

This fixes #3357.

5 years agoAvoid duplicate lemmas in datatypes (#3310)
Andrew Reynolds [Fri, 4 Oct 2019 07:12:02 +0000 (02:12 -0500)]
Avoid duplicate lemmas in datatypes (#3310)

We previously were sending e.g. dt.size >= 0 lemmas when size terms are pre-registered, which can happen multiple times in a user context. This ensures we cache whether a lemma is sent in a user-context dependent way in the datatypes solver. This ensures we don't send the same lemma twice for dt.size >= 0 lemmas.

5 years agoDisable proofs for unsupported logics (#3327)
yoni206 [Thu, 3 Oct 2019 22:23:58 +0000 (15:23 -0700)]
Disable proofs for unsupported logics (#3327)

This commit makes CVC4 complain if the user asked for proofs for an unsupported logic (in this contest, ALL is considered unsupported).
Changes in the regression script are introduced as well, in order to only request proofs for regressions in supported logics.

5 years agoTravis: Reenable building and running of examples. (#3351)
Aina Niemetz [Thu, 3 Oct 2019 19:41:40 +0000 (12:41 -0700)]
Travis: Reenable building and running of examples. (#3351)

5 years agoAdd missing type definitions to CDHashMap iterator (#3330)
Andres Noetzli [Thu, 3 Oct 2019 18:24:15 +0000 (11:24 -0700)]
Add missing type definitions to CDHashMap iterator (#3330)

Our `CDMapBlack` test failed to compile with newer versions of libstdc++
because they require the `value_type` to be defined for the iterator
(accessed via `std::iterator_traits`). Due to the implementation of
`std::iterator_traits`, we also need to define `iterator_category`,
`difference_type`, `pointer`, and `reference`.

5 years ago[SMT2 Parser] Move code of `sygusCommand` (#3335)
Andres Noetzli [Thu, 3 Oct 2019 17:19:12 +0000 (10:19 -0700)]
[SMT2 Parser] Move code of `sygusCommand` (#3335)

This commit moves the code in `sygusCommand` in the SMT2 parser to the
`Smt2` class. The original code was pushing and popping the current
scope inline. This commit adds a class `SynthFunFactory` that takes care
of that upon creation and destruction.

5 years agoFix compiler warning. (#3348)
Aina Niemetz [Thu, 3 Oct 2019 04:39:14 +0000 (21:39 -0700)]
Fix compiler warning. (#3348)

5 years ago[SMT-COMP] Remove --unconstrained-simp for incremental QF_LIA (#3333)
Andres Noetzli [Wed, 2 Oct 2019 22:59:26 +0000 (15:59 -0700)]
[SMT-COMP] Remove --unconstrained-simp for incremental QF_LIA (#3333)

Fixes #3058. Commit a7c4cd3ecacb1e484a076edde0274c282bb43ffb changed
CVC4's behavior to emit an error when `--unconstrained-simp` is used
with `--incremental`. Before, we were silently disabling it. For some
reason, we had that option enabled for the incremental QF_LIA track of
SMT-COMP, so CVC4 failed on those benchmarks. This commit changes the
corresponding competition script to not use the option.

5 years agoTrivial solve method for single invocation sygus (#3328)
Andrew Reynolds [Tue, 1 Oct 2019 06:56:57 +0000 (01:56 -0500)]
Trivial solve method for single invocation sygus (#3328)

This short circuits CEGQI when the conjecture is solvable by simple equality reasoning. It adds two examples where we previously would have fallen back on enumeration due to not having an instantiation technique for strings, despite the conjectures being trivially solvable.

5 years agoAdd rewrite for splitting equalities (#2957)
Andres Noetzli [Mon, 30 Sep 2019 03:31:18 +0000 (20:31 -0700)]
Add rewrite for splitting equalities (#2957)

5 years agoAdd help for sygus 2.0 (#3318)
Andrew Reynolds [Mon, 30 Sep 2019 02:32:30 +0000 (21:32 -0500)]
Add help for sygus 2.0 (#3318)

5 years agoAvoid cases of empty sygus grammars (#3301)
Andrew Reynolds [Mon, 30 Sep 2019 01:52:26 +0000 (20:52 -0500)]
Avoid cases of empty sygus grammars (#3301)

5 years agoFail single invocation techniques when utility inference fails. (#3322)
Andrew Reynolds [Sun, 29 Sep 2019 22:54:13 +0000 (17:54 -0500)]
Fail single invocation techniques when utility inference fails. (#3322)

5 years agoIntroduce template classes for simple type rules (#2835)
Andres Noetzli [Sun, 29 Sep 2019 03:18:22 +0000 (20:18 -0700)]
Introduce template classes for simple type rules (#2835)

This commit introduces two template classes `SimpleTypeRule` and
`SimpleTypeRuleVar` to help define simple type rules without writing
lots of redundant code. The main advantages of this approach are:

- Less code
- More consistent error reporting
- Easier to extend type checking with other functionality (e.g. getting
the type of a symbol)

5 years agoSupport smt2 language "match" term (#3258)
Andrew Reynolds [Sat, 28 Sep 2019 02:01:54 +0000 (21:01 -0500)]
Support smt2 language "match" term  (#3258)

5 years agoFix case of disjunctive conclusion in strings (#3254)
Andrew Reynolds [Fri, 27 Sep 2019 20:01:42 +0000 (15:01 -0500)]
Fix case of disjunctive conclusion in strings (#3254)

5 years agoMake substitution index context-independent (#2474)
Andres Noetzli [Fri, 27 Sep 2019 17:57:58 +0000 (10:57 -0700)]
Make substitution index context-independent (#2474)

When we do solving in incremental mode, we store substitutions at a
special index in our list of assertions. Previously, we used a
context-dependent variable for that. However, this is not needed since
the list of assertions just consists of the assertions currently being
processed, which are independent of the assertions seen so far. This
commit changes the index to be an ordinary integer and moves it to the
AssertionPipeline. Additionally, it abstracts access to the index in
preparation for splitting AssertionPipeline into three vectors (see
issue #2473).

5 years agoCVC print support for recoverable failure (#3323)
Andrew Reynolds [Fri, 27 Sep 2019 02:53:45 +0000 (21:53 -0500)]
CVC print support for recoverable failure (#3323)

5 years ago Fix off by one error in strings flat form explanation (#3273)
Andrew Reynolds [Wed, 25 Sep 2019 23:26:41 +0000 (18:26 -0500)]
 Fix off by one error in strings flat form explanation (#3273)

Fixes #3272.

This was caused by not explaining the last equal component in a flat form inference.  For example, if `x=y`, we may infer `z=""` from `u++x++z=u++y` since the 1st and 2nd components of these strings are equal. However, we would not add the explanation of `x=y` due to an off-by-one error.

Notice that this code is very rarely used (the code for F_EndpointEmp is not covered by our regressions). This is since length elaboration should catch conflicting cases like above, where `len(u++x++z)!=len(u++y)` if `x=y` and `z!=""` and thus `u++x++z != u++y`.  #3272 happened to catch a rare case where it is applied. This is likely due to theory combination not propagating an equality prior to running a full effort call to strings check, which is unexpected but not impossible.

5 years agoAdd isParameterized function to Expr (#3303)
Andrew Reynolds [Wed, 25 Sep 2019 17:09:42 +0000 (12:09 -0500)]
Add isParameterized function to Expr (#3303)

5 years agoUse separate CMake project for CVC4 examples. (#3196)
Mathias Preiner [Wed, 25 Sep 2019 16:47:12 +0000 (09:47 -0700)]
Use separate CMake project for CVC4 examples. (#3196)

5 years agoAdd Windows cross-compiling instructions to INSTALL.md. (#3226)
Mathias Preiner [Wed, 25 Sep 2019 16:29:33 +0000 (09:29 -0700)]
Add Windows cross-compiling instructions to INSTALL.md. (#3226)

5 years agoFix printing of instantiation patterns (#3305)
Andrew Reynolds [Wed, 25 Sep 2019 15:05:45 +0000 (10:05 -0500)]
Fix printing of instantiation patterns (#3305)

5 years agoReturn choice functions for approximate values in get-value (#3304)
Andrew Reynolds [Wed, 25 Sep 2019 01:56:21 +0000 (20:56 -0500)]
Return choice functions for approximate values in get-value (#3304)

5 years agoSupport context-(in)dependent decision strategies. (#3281)
Andrew Reynolds [Thu, 19 Sep 2019 14:44:04 +0000 (09:44 -0500)]
Support context-(in)dependent decision strategies. (#3281)

5 years agoAdd support for creating constant arrays to the new C++ API (#3296)
makaimann [Thu, 19 Sep 2019 02:34:22 +0000 (19:34 -0700)]
Add support for creating constant arrays to the new C++ API (#3296)

* Add support for constant arrays to new C++ API

* Fix macro usage in unit test

* Add not null check

* Add test for null term

* Formatting

5 years agoDecouple fmf-bound and finite-model-find (#3297)
Andrew Reynolds [Wed, 18 Sep 2019 20:03:12 +0000 (15:03 -0500)]
Decouple fmf-bound and finite-model-find (#3297)

5 years agoAdd run script for next SMT-COMP (#3298)
Andres Noetzli [Wed, 18 Sep 2019 19:04:10 +0000 (12:04 -0700)]
Add run script for next SMT-COMP (#3298)

5 years agoMinor cleaning (#3295)
Andrew Reynolds [Wed, 18 Sep 2019 16:17:52 +0000 (11:17 -0500)]
Minor cleaning (#3295)

5 years ago Encapsulate relevant domain (#3293)
Andrew Reynolds [Tue, 17 Sep 2019 17:26:03 +0000 (12:26 -0500)]
 Encapsulate relevant domain (#3293)

5 years agoAvoid computing cardinality when constructing models (#3268)
Andrew Reynolds [Tue, 17 Sep 2019 03:15:38 +0000 (22:15 -0500)]
Avoid computing cardinality when constructing models (#3268)

5 years agoRemove parameterized check (#3290)
Andrew Reynolds [Tue, 17 Sep 2019 00:06:39 +0000 (19:06 -0500)]
Remove parameterized check (#3290)

5 years agoFix spurious meta-info in regression (#3294)
Andrew Reynolds [Mon, 16 Sep 2019 23:02:28 +0000 (18:02 -0500)]
Fix spurious meta-info in regression (#3294)

5 years agoRemove equality inference option for quantifiers (#3282)
Andrew Reynolds [Mon, 16 Sep 2019 22:18:05 +0000 (17:18 -0500)]
Remove equality inference option for quantifiers (#3282)

5 years agoMove specific attributes out of term util (#3279)
Andrew Reynolds [Mon, 16 Sep 2019 21:44:52 +0000 (16:44 -0500)]
Move specific attributes out of term util (#3279)

5 years agoSygus type info class (#3187)
Andrew Reynolds [Mon, 16 Sep 2019 20:58:50 +0000 (15:58 -0500)]
Sygus type info class (#3187)

5 years ago Fix HO model construction for functions having Boolean arguments (#3158)
Andrew Reynolds [Mon, 16 Sep 2019 20:36:12 +0000 (15:36 -0500)]
 Fix HO model construction for functions having Boolean arguments (#3158)

5 years agoMove virtual term substitution utilities to own file and document (#3278)
Andrew Reynolds [Mon, 16 Sep 2019 20:02:06 +0000 (15:02 -0500)]
Move virtual term substitution utilities to own file and document (#3278)

5 years agoReturn RecoverableModalException when model is not available. (#3283)
Andrew Reynolds [Mon, 16 Sep 2019 19:14:12 +0000 (14:14 -0500)]
Return RecoverableModalException when model is not available. (#3283)

5 years agoFix compiler warning in options.cpp. (#3284)
Aina Niemetz [Mon, 16 Sep 2019 18:34:11 +0000 (11:34 -0700)]
Fix compiler warning in options.cpp. (#3284)

5 years agoAdding new scripts for CASC/TPTP (#3291)
Haniel Barbosa [Mon, 16 Sep 2019 18:06:37 +0000 (15:06 -0300)]
Adding new scripts for CASC/TPTP (#3291)

5 years agoInitialize fields in sets inference manager (#3289)
Andrew Reynolds [Mon, 16 Sep 2019 17:03:58 +0000 (12:03 -0500)]
Initialize fields in sets inference manager (#3289)

5 years agoparser: Improve error message for unrecognized input file format. (#3285)
Aina Niemetz [Mon, 16 Sep 2019 15:53:34 +0000 (08:53 -0700)]
parser: Improve error message for unrecognized input file format. (#3285)

5 years agoDisallow let in sygus grammars, check for free variables in sygus constructors (...
Andrew Reynolds [Fri, 13 Sep 2019 21:31:12 +0000 (16:31 -0500)]
Disallow let in sygus grammars, check for free variables in sygus constructors (#3259)

5 years agoMove higher-order matching predicate (#3280)
Andrew Reynolds [Fri, 13 Sep 2019 20:14:59 +0000 (15:14 -0500)]
Move higher-order matching predicate (#3280)

5 years agoSplit, refactor and document the theory of sets (#3085)
Andrew Reynolds [Fri, 13 Sep 2019 17:56:21 +0000 (12:56 -0500)]
Split, refactor and document the theory of sets (#3085)

5 years ago Rename UF with cardinality extension (#3241)
Andrew Reynolds [Thu, 12 Sep 2019 23:35:57 +0000 (18:35 -0500)]
 Rename UF with cardinality extension (#3241)

5 years agoUpdate to standard implementation of contains term (#3270)
Andrew Reynolds [Thu, 12 Sep 2019 22:31:22 +0000 (17:31 -0500)]
Update to standard implementation of contains term (#3270)

5 years ago Fix default grammar construction for arrays when no free variables are present ...
Andrew Reynolds [Thu, 12 Sep 2019 21:18:06 +0000 (16:18 -0500)]
 Fix default grammar construction for arrays when no free variables are present (#3225)

5 years agoEncapsulate synth engine (#3271)
Andrew Reynolds [Thu, 12 Sep 2019 20:37:00 +0000 (15:37 -0500)]
Encapsulate synth engine (#3271)

5 years agoRefactoring finite bounds in Quantifiers Engine (#3261)
Andrew Reynolds [Thu, 12 Sep 2019 00:58:10 +0000 (19:58 -0500)]
Refactoring finite bounds in Quantifiers Engine (#3261)

5 years agoFix not to output all warnings (#2778)
Ken Matsui [Wed, 11 Sep 2019 23:48:18 +0000 (08:48 +0900)]
Fix not to output all warnings (#2778)

Fix syntax error when --language-bindings is java

Replace __attribute__((__unused__)) with CVC4_UNUSED macro

Signed-off-by: matken11235 <26405363+matken11235@users.noreply.github.com>
5 years agoFix type assertion in getSynthSolutions (#3252)
Andrew Reynolds [Wed, 11 Sep 2019 22:59:05 +0000 (17:59 -0500)]
Fix type assertion in getSynthSolutions (#3252)

5 years agoInfrastructure for instantiation rewriter (#3262)
Andrew Reynolds [Wed, 11 Sep 2019 22:08:07 +0000 (17:08 -0500)]
Infrastructure for instantiation rewriter (#3262)

5 years agoFix constructor type printing (#3246)
Andrew Reynolds [Wed, 11 Sep 2019 21:29:21 +0000 (16:29 -0500)]
Fix constructor type printing (#3246)

5 years agoFix issue related to enum in cegqi (#3267)
Andrew Reynolds [Tue, 10 Sep 2019 22:06:30 +0000 (17:06 -0500)]
Fix issue related to enum in cegqi (#3267)

5 years agoFix issue in cegqi related to enum (#3265)
Andrew Reynolds [Mon, 9 Sep 2019 17:47:23 +0000 (12:47 -0500)]
Fix issue in cegqi related to enum (#3265)

5 years agoRemove portfolio (#3236)
Andrew Reynolds [Sat, 7 Sep 2019 01:52:16 +0000 (20:52 -0500)]
Remove portfolio (#3236)

5 years agoRemove parsing/printing of meta-info command. (#3260)
Mathias Preiner [Fri, 6 Sep 2019 23:42:44 +0000 (16:42 -0700)]
Remove parsing/printing of meta-info command. (#3260)

5 years agoRemove SMT1 parser. (#3228)
Mathias Preiner [Fri, 6 Sep 2019 22:28:07 +0000 (15:28 -0700)]
Remove SMT1 parser. (#3228)

This commit removes the SMT1 parser infrastructure and adds the SMT2 translations of the SMT1 regression tests. For now this commit removes regression test regress3/pp-regfile.smt since the SMT2 translation has a file size of 887M (vs. 172K for the SMT1 version).

Fixes #2948 and fixes #1313.

5 years agoMake CEGQI term type to enum (#3256)
Andrew Reynolds [Fri, 6 Sep 2019 16:46:21 +0000 (11:46 -0500)]
Make CEGQI term type to enum (#3256)

5 years ago Model API for domain elements (#3243)
Andrew Reynolds [Fri, 6 Sep 2019 02:40:50 +0000 (21:40 -0500)]
 Model API for domain elements (#3243)

5 years agoExplicitly pass current sygus solution to exclude (#3209)
Andrew Reynolds [Thu, 5 Sep 2019 02:58:33 +0000 (21:58 -0500)]
Explicitly pass current sygus solution to exclude (#3209)

5 years agoRefactoring CEGQI interface (#3239)
Andrew Reynolds [Thu, 5 Sep 2019 00:58:51 +0000 (19:58 -0500)]
Refactoring CEGQI interface (#3239)

5 years agoTowards incremental SyGuS in SMT engine (#3195)
Andrew Reynolds [Wed, 4 Sep 2019 21:45:08 +0000 (16:45 -0500)]
Towards incremental SyGuS in SMT engine (#3195)

5 years agoMore details in substitution function documentation (#3244)
yoni206 [Wed, 4 Sep 2019 20:52:43 +0000 (13:52 -0700)]
More details in substitution function documentation (#3244)

5 years agoMove getCounterexampleLiteral out of term utilities (#3238)
Andrew Reynolds [Wed, 4 Sep 2019 19:45:21 +0000 (14:45 -0500)]
Move getCounterexampleLiteral out of term utilities (#3238)

5 years agoFix DAGification for printer. (#3233)
Mathias Preiner [Wed, 4 Sep 2019 18:13:18 +0000 (11:13 -0700)]
Fix DAGification for printer. (#3233)

5 years ago Fixes related to destructing null (#3231)
Andrew Reynolds [Wed, 4 Sep 2019 17:51:02 +0000 (12:51 -0500)]
 Fixes related to destructing null (#3231)

5 years agoRemove duplicate regression tests. (#3227)
Mathias Preiner [Wed, 4 Sep 2019 17:06:56 +0000 (10:06 -0700)]
Remove duplicate regression tests. (#3227)

5 years agoFix out-of-bounds access in regexp inclusion test (#3242)
Andres Noetzli [Fri, 30 Aug 2019 16:14:28 +0000 (09:14 -0700)]
Fix out-of-bounds access in regexp inclusion test (#3242)

If `re.*(re.allchar)` was at the end of a regular expression
concatenation, the regular expression inclusion test could cause
out-of-bound accesses. For `re.*(re.allchar)`, we were blindly adding
the index after it to the set of indices being considered. Later in the
loop, we were assuming that all the indices are smaller than the number
of components in the concatenation, thus leading to out-of-bound
accesses. This commit adds a check before adding the index to the set of
indices.

Signed-off-by: Andres Noetzli <andres.noetzli@gmail.com>
5 years agoUndo unintential change to FindCxxTest (#3240)
Andrew Reynolds [Fri, 30 Aug 2019 15:37:36 +0000 (10:37 -0500)]
Undo unintential change to FindCxxTest (#3240)

5 years agoBetter heuristic for str.code/re.range (#3220)
Andres Noetzli [Fri, 30 Aug 2019 04:15:33 +0000 (21:15 -0700)]
Better heuristic for str.code/re.range (#3220)

To make sure that our `str.code` function is injectve (except for -1 in
the codomain), we send the inference that `str.code(x) == -1 v
str.code(x) != str.code(y) v x == y` for each pair of `str.code` terms.
Because of the order of disjuncts, `str.code(x) != str.code(y)` was
usually assigned true. This in turn lead to a difficult problem for the
arithmetic engine if there were more `str.code` applications than the
size of the domain. E.g. if we had `0 <= str.code(xi) < 10` for 0 <= i
<= 10, then the arithmetic engine had a difficult time finding a
conflict. This PR improves the heuristic by setting the phase of
`str.code(x) != str.code(y)` to false, so we prefer to keep the
`str.code` values equal instead of trying to make them different.

This change is also reflected in the models produced for inputs
involving `str.code`: Previously, we were producing models with
different values for the `str.code` whereas now the models are much more
uniform.

The PR adds two regressions, one testing `str.code` performance directly
and one testing it for `str.code` terms generated by `re.range`.

Signed-off-by: Andres Noetzli <anoetzli@amazon.com>
5 years agoInfer conflicts based on regular expression inclusion (#3234)
Andres Noetzli [Fri, 30 Aug 2019 02:38:17 +0000 (19:38 -0700)]
Infer conflicts based on regular expression inclusion (#3234)

We have a conflict if we have `str.in.re(x, R1)` and `~str.in.re(x, R2)`
and `R2` includes `R1` because there is no possible value for `x` that
satisfies both memberships. This commit adds code to detect regular
expression inclusion for a small fragment of regular expressions: string
literals with single char (`re.allchar`) and multichar wildcards
(`re.*(re.allchar)`).

Signed-off-by: Andres Noetzli <anoetzli@amazon.com>
5 years agoRemoving comments related to issues (#3232)
Andrew Reynolds [Wed, 28 Aug 2019 23:18:52 +0000 (18:18 -0500)]
Removing comments related to issues (#3232)

5 years agoFixes for get-abduct (#3229)
Andrew Reynolds [Wed, 28 Aug 2019 02:07:13 +0000 (21:07 -0500)]
Fixes for get-abduct (#3229)

5 years agoMake contrib/get-* more robust. (#3198)
Mathias Preiner [Mon, 26 Aug 2019 22:38:04 +0000 (15:38 -0700)]
Make contrib/get-* more robust. (#3198)

We use the command which to determine if a command is available on the system. However, which is not installed on all platforms by default (e.g. CentOS). command is a shell builtin that can be used for the same purpose.

5 years agoRemove unnecessary code from Cvc.g (#3213)
Andrew Reynolds [Mon, 26 Aug 2019 18:28:37 +0000 (13:28 -0500)]
Remove unnecessary code from Cvc.g (#3213)

5 years agofix misuse of iterator with a different container (#3214)
Piotr Trojanek [Sat, 24 Aug 2019 17:48:44 +0000 (19:48 +0200)]
fix misuse of iterator with a different container (#3214)

5 years agofix mismatch between "delete" and "new []" (#2795)
Piotr Trojanek [Sat, 24 Aug 2019 16:36:31 +0000 (18:36 +0200)]
fix mismatch between "delete" and "new []" (#2795)

5 years ago Infer emptiness instead of splitting when a string equality rewrites to a constant...
Andrew Reynolds [Fri, 23 Aug 2019 22:27:05 +0000 (17:27 -0500)]
 Infer emptiness instead of splitting when a string equality rewrites to a constant (#3218)

5 years ago Fixes for sygus regressions (#3219)
Andrew Reynolds [Fri, 23 Aug 2019 21:59:41 +0000 (16:59 -0500)]
 Fixes for sygus regressions (#3219)

5 years agoDocument transition inference utility (#3207)
Andrew Reynolds [Fri, 23 Aug 2019 19:44:14 +0000 (14:44 -0500)]
Document transition inference utility (#3207)

5 years agoExclude redundant lemmas when tracking inst lemmas. (#3210)
Andrew Reynolds [Fri, 23 Aug 2019 19:00:53 +0000 (14:00 -0500)]
Exclude redundant lemmas when tracking inst lemmas. (#3210)

5 years agoUpdate dynamic splitting strategy for quantifiers (#3162)
Andrew Reynolds [Fri, 23 Aug 2019 18:00:43 +0000 (13:00 -0500)]
Update dynamic splitting strategy for quantifiers (#3162)

5 years agoFix argument in nonlinear extension. (#3216)
Andrew Reynolds [Fri, 23 Aug 2019 15:44:29 +0000 (10:44 -0500)]
Fix argument in nonlinear extension. (#3216)

5 years agoMinor update to term util (#3208)
Andrew Reynolds [Fri, 23 Aug 2019 15:15:43 +0000 (10:15 -0500)]
Minor update to term util (#3208)

5 years ago Pass synthesis conjecture to sygus modules (#3212)
Andrew Reynolds [Fri, 23 Aug 2019 14:31:21 +0000 (09:31 -0500)]
 Pass synthesis conjecture to sygus modules (#3212)