summaryrefslogtreecommitdiff
path: root/src/expr
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2017-09-25 19:43:27 -0500
committerAndres Noetzli <andres.noetzli@gmail.com>2017-09-25 17:43:27 -0700
commit25e598ed369ee2cc6227dbfb67f7d38303a7144a (patch)
tree0ac0eab8b3c6990c5918ec02a03cd0399338238d /src/expr
parent1a6f5f0ceaf9360fd1645f9162949d17a8250309 (diff)
Cegqi refactor substitutions (#1129)
This refactors the apply substitution mechanism for counterexample-guided quantifier instantiation (CEGQI). Improvements to the code: (1) Methods have been added to the TermProperties class that summarize their theory-independent behavior (including "getModifiedTerm", "isBasic" etc.). For now, I have not made a "TermPropertiesArith" class yet since this will require more fundamental refactoring. (2) The terminology "has_coeff" is replaced "is_non_basic" throughout. (3) Added the applySubstitutionToLiteral method. (4) Both applySubstitution and applySubstitutionToLiteral are now private within CegInstantiator. This means that theory-specific instantiators do not need to implement custom ways of applying substitutions (previously the arithmetic instantiator was). (5) applySubstitutionToLiteral is automatically called on all literals (see line 297 of ceg_instantiator.cpp). This means that BvInstantiator::processAssertion is now called on substituted literals. So for instance if our context contains two literals: x = bv2, bvmul(x,y) = bv4 Say we are asked to solve for x first, and return the substitution {x -> bv2}, then if we are later asked to solve for y, we will call processAssertion for the literal bvmul(bv2,y)=bv4 (6) LIA-specific information "d_theta" in SolvedForm is encapsulated inside the class (with the understanding that this will be made virtual). This commit has no impact on quantified LIA / LRA: https://www.starexec.org/starexec/secure/details/job.jsp?id=24480 (see CVC4-092217-cegqiRefactorSubs)
Diffstat (limited to 'src/expr')
0 files changed, 0 insertions, 0 deletions
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback