default = "false"
help = "force the datatypes solver to give specific values to all datatypes terms before answering sat"
+[[option]]
+ name = "dtPoliteOptimize"
+ smt_name = "dt-polite-optimize"
+ category = "experimental"
+ long = "dt-polite-optimize"
+ type = "bool"
+ default = "true"
+ read_only = true
+ help = "turn on optimization for polite combination"
+
[[option]]
name = "dtBinarySplit"
category = "regular"
// 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 = dt[index].hasFiniteExternalArgType(ttn);
+ bool forceLemma = true;
+ if (options::dtPoliteOptimize())
+ {
+ forceLemma = dt[index].hasFiniteExternalArgType(ttn);
+ }
Trace("datatypes-infer-debug") << "DtInstantiate : " << eqc << " " << eq
<< " forceLemma = " << forceLemma << std::endl;
d_im.addPendingInference(eq, exp, forceLemma, InferId::INST);