#include <theory_datatype_lazy.h>
Inheritance diagram for CVCL::TheoryDatatypeLazy:
Author: Clark Barrett
Created: Wed Dec 1 22:27:12 2004
Definition at line 50 of file theory_datatype_lazy.h.
|
Definition at line 52 of file theory_datatype_lazy.h. |
|
Definition at line 49 of file theory_datatype_lazy.cpp. |
|
Definition at line 72 of file theory_datatype_lazy.h. |
|
|
|
|
|
Check for satisfiability in the theory.
Reimplemented from CVCL::TheoryDatatype. Definition at line 186 of file theory_datatype_lazy.cpp. References CVCL::Theory::addSplitter(), CVCL::ExprMap< Data >::begin(), CVCL::TheoryDatatype::d_datatypes, CVCL::TheoryDatatype::d_facts, CVCL::TheoryDatatype::d_labels, d_processIndex, d_processQueue, d_processQueueKind, CVCL::TheoryDatatype::d_splitterAsserted, CVCL::TheoryDatatype::d_splitters, CVCL::TheoryDatatype::d_splittersIndex, d_typeComplete, CVCL::TheoryDatatype::datatypeTestExpr(), CVCL::ExprMap< Data >::end(), CVCL::CDMap< Key, Data, HashFcn >::end(), ENQUEUE, CVCL::Theory::enqueueFact(), CVCL::ExprMap< Data >::find(), CVCL::CDMap< Key, Data, HashFcn >::find(), CVCL::Theory::findExpr(), CVCL::Theorem::getLHS(), CVCL::Theorem::getRHS(), CVCL::Expr::isSelected(), MERGE1, MERGE2, mergeLabels(), CVCL::CDList< T >::push_back(), CVCL::Expr::setSelected(), and CVCL::CDList< T >::size(). |
|
Set up the term e for call-backs when e or its children change. setup is called once for each expression associated with the theory. It is typically used to setup theory-specific data for an expression and to add call-back information for use with update.
Reimplemented from CVCL::TheoryDatatype. Definition at line 254 of file theory_datatype_lazy.cpp. References CVCL::Expr::addToNotify(), CVCL::APPLY, CVCL::Expr::arity(), CVCL::TheoryDatatype::d_labels, d_processQueue, d_processQueueKind, CVCL::TheoryDatatype::d_rules, CVCL::DATATYPE, CVCL::CDMap< Key, Data, HashFcn >::end(), ENQUEUE, CVCL::CDMap< Key, Data, HashFcn >::find(), CVCL::Type::getExpr(), CVCL::Expr::getKind(), CVCL::Expr::getType(), initializeLabels(), CVCL::isConstructor(), CVCL::isSelector(), MERGE2, CVCL::DatatypeProofRules::noCycle(), CVCL::CDList< T >::push_back(), CVCL::Theory::reflexivityRule(), CVCL::Expr::setSelected(), and CVCL::Theory::setupCC(). |
|
Notify a theory of a new equality. update is a call-back used by the notify mechanism of the core theory. It works as follows. When an equation t1 = t2 makes it into the core framework, the two find equivalence classes for t1 and t2 are merged. The result is that t2 is the new equivalence class representative and t1 is no longer an equivalence class representative. When this happens, the notify list of t1 is traversed. Notify list entries consist of a theory and an expression d. For each entry (i,d), i->update(e, d) is called, where e is the theorem corresponding to the equality t1=t2. To add the entry (i,d) to a term t1's notify list, a call must be made to t1.addNotify(i,d). This is typically done in setup.
Reimplemented from CVCL::TheoryDatatype. Definition at line 275 of file theory_datatype_lazy.cpp. References CVCL::Expr::addToNotify(), CVCL::Expr::arity(), CVCL::TheoryDatatype::canCollapse(), CVCL::TheoryDatatype::d_facts, d_processQueue, d_processQueueKind, CVCL::TheoryDatatype::d_rules, CVCL::DatatypeProofRules::decompose(), ENQUEUE, CVCL::Theorem::getLHS(), CVCL::Expr::getOpExpr(), CVCL::Expr::getRep(), CVCL::Theorem::getRHS(), CVCL::Expr::getSig(), CVCL::Expr::isApply(), CVCL::isConstructor(), CVCL::Theorem::isNull(), CVCL::Expr::isNull(), CVCL::isSelector(), CVCL::isTester(), MERGE2, CVCL::CDList< T >::push_back(), CVCL::DatatypeProofRules::rewriteSelCons(), CVCL::DatatypeProofRules::rewriteTestCons(), CVCL::Expr::setRep(), CVCL::Expr::setSig(), CVCL::Theory::symmetryRule(), CVCL::Theory::transitivityRule(), and CVCL::Theory::updateHelper(). |
|
Definition at line 58 of file theory_datatype_lazy.h. Referenced by checkSat(), instantiate(), setup(), and update(). |
|
Definition at line 59 of file theory_datatype_lazy.h. Referenced by checkSat(), instantiate(), setup(), and update(). |
|
Definition at line 60 of file theory_datatype_lazy.h. Referenced by checkSat(). |
|
Definition at line 61 of file theory_datatype_lazy.h. Referenced by checkSat(), and initializeLabels(). |