Allow E-matching by default when strings are enabled (#5117)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 23 Sep 2020 04:50:43 +0000 (23:50 -0500)
committerGitHub <noreply@github.com>
Wed, 23 Sep 2020 04:50:43 +0000 (23:50 -0500)
commitcfe0fc1346c41048fa76f7e0fc582afbe95364a2
treeaa191e07dd529b6ddad1a9e103cc75172f96f902
parent24b44a8e559f1d89f309d611922098e667293920
Allow E-matching by default when strings are enabled (#5117)

This does not disable E-matching when strings are enabled with --strings-exp, due to potential applications where strings are combined with user-provided quantified formulas.

Notice that by default, we do not want E-matching applied to quantified formulas corresponding to reductions for extended string functions. To correct this, all quantified formulas generated by strings are marked with an "internal quantified formula" attribute, which causes E-matching to ignore them. This feature can in theory be generalized later for other internal sources of quantified formulas.
src/smt/set_defaults.cpp
src/theory/quantifiers/ematching/instantiation_engine.cpp
src/theory/quantifiers/ematching/instantiation_engine.h
src/theory/quantifiers/quantifiers_attributes.cpp
src/theory/quantifiers/quantifiers_attributes.h
src/theory/strings/theory_strings_preprocess.cpp
src/theory/strings/theory_strings_preprocess.h
test/regress/CMakeLists.txt
test/regress/regress1/quantifiers/seq-solved-enum.smt2 [new file with mode: 0644]
test/regress/regress1/quantifiers/seq-unsolved-ematch.smt2 [new file with mode: 0644]