summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoryoni206 <yoni206@users.noreply.github.com>2021-02-25 12:36:05 -0800
committerGitHub <noreply@github.com>2021-02-25 14:36:05 -0600
commit6a4b16c643d71c9318042ba7b9d42af71c58ac2f (patch)
tree0092464e48a09bd71eff04b1d4d44cc3fac31bc0 /src
parent9a58e63237298be0c81fe88096f65d935be97e82 (diff)
Datatypes lemmas: share only external types (#5997)
Forcing lemmas in datatypes used to be done only for external types. This was changed to consider all types, which is not needed. This PR brings back the restriction to external types.
Diffstat (limited to 'src')
-rw-r--r--src/theory/datatypes/theory_datatypes.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/theory/datatypes/theory_datatypes.cpp b/src/theory/datatypes/theory_datatypes.cpp
index 9d3b5a143..45787ee04 100644
--- a/src/theory/datatypes/theory_datatypes.cpp
+++ b/src/theory/datatypes/theory_datatypes.cpp
@@ -1562,11 +1562,15 @@ void TheoryDatatypes::instantiate( EqcInfo* eqc, Node n ){
// may contribute to conflicts due to cardinality (good examples of this are
// regress0/datatypes/dt-param-card4-bool-sat.smt2 and
// regress0/datatypes/list-bool.smt2).
- bool forceLemma = true;
+ bool forceLemma;
if (options::dtPoliteOptimize())
{
forceLemma = dt[index].hasFiniteExternalArgType(ttn);
}
+ else
+ {
+ forceLemma = dt.involvesExternalType();
+ }
Trace("datatypes-infer-debug") << "DtInstantiate : " << eqc << " " << eq
<< " forceLemma = " << forceLemma << std::endl;
d_im.addPendingInference(eq, InferenceId::DATATYPES_INST, exp, forceLemma);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback