diff options
author | yoni206 <yoni206@users.noreply.github.com> | 2021-02-25 12:36:05 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-25 14:36:05 -0600 |
commit | 6a4b16c643d71c9318042ba7b9d42af71c58ac2f (patch) | |
tree | 0092464e48a09bd71eff04b1d4d44cc3fac31bc0 /src | |
parent | 9a58e63237298be0c81fe88096f65d935be97e82 (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.cpp | 6 |
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); |