diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2019-09-11 19:58:10 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-11 19:58:10 -0500 |
commit | d44ef0e9af9230e1949b0d3d4b03f1fcd497ad6d (patch) | |
tree | 8de50a73a0730c9f9966b8605de4cd540a075001 /src/theory/quantifiers/quant_util.h | |
parent | dc3cee7cf3d49ad592139042a8e15e3905e55ee9 (diff) |
Refactoring finite bounds in Quantifiers Engine (#3261)
Diffstat (limited to 'src/theory/quantifiers/quant_util.h')
-rw-r--r-- | src/theory/quantifiers/quant_util.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/theory/quantifiers/quant_util.h b/src/theory/quantifiers/quant_util.h index 43861d6e9..640a62780 100644 --- a/src/theory/quantifiers/quant_util.h +++ b/src/theory/quantifiers/quant_util.h @@ -234,6 +234,24 @@ public: virtual TNode getCongruentTerm( Node f, std::vector< TNode >& args ) = 0; };/* class EqualityQuery */ +/** Types of bounds that can be inferred for quantified formulas */ +enum BoundVarType +{ + // a variable has a finite bound because it has finite cardinality + BOUND_FINITE, + // a variable has a finite bound because it is in an integer range, e.g. + // forall x. u <= x <= l => P(x) + BOUND_INT_RANGE, + // a variable has a finite bound because it is a member of a set, e.g. + // forall x. x in S => P(x) + BOUND_SET_MEMBER, + // a variable has a finite bound because only a fixed set of terms are + // relevant for it in the domain of the quantified formula, e.g. + // forall x. ( x = t1 OR ... OR x = tn ) => P(x) + BOUND_FIXED_SET, + // a bound has not been inferred for the variable + BOUND_NONE +}; } } |