The method for discarding assertions based on bound inference is quite expensive (40% of runtime) for some benchmarks with quantified formulas from Facebook. This adds an option to disable this, which is done by default for quantified logics.
name = "full"
help = "Use all lemma schemes"
+[[option]]
+ name = "nlRlvAssertBounds"
+ category = "regular"
+ long = "nl-rlv-assert-bounds"
+ type = "bool"
+ default = "false"
+ help = "use bound inference utility to prune when an assertion is entailed by another"
+
[[option]]
name = "nlExtResBound"
category = "regular"
opts.arith.nlExtTangentPlanesInterleave = true;
}
}
+ if (!opts.arith.nlRlvAssertBoundsWasSetByUser)
+ {
+ // use bound inference to determine when bounds are irrelevant only when
+ // the logic is quantifier-free
+ opts.arith.nlRlvAssertBounds = !logic.isQuantified();
+ }
// set the default decision mode
setDefaultDecisionMode(logic, opts);
// not relevant, skip
continue;
}
- if (bounds.add(lit, false))
+ // if using the bound inference utility
+ if (options().arith.nlRlvAssertBounds && bounds.add(lit, false))
{
continue;
}