/*****************************************************************************/ /*! *\file theory_simulate.h *\brief Implementation of a symbolic simulator * * Author: Sergey Berezin * * Created: Tue Oct 7 10:13:15 2003 * *
* * License to use, copy, modify, sell and/or distribute this software * and its documentation for any purpose is hereby granted without * royalty, subject to the terms and conditions defined in the \ref * LICENSE file provided with this distribution. * *
* */ /*****************************************************************************/ #ifndef _cvc3__include__theory_simulate_h_ #define _cvc3__include__theory_simulate_h_ #include "theory.h" namespace CVC3 { class SimulateProofRules; /*****************************************************************************/ /*! * \class TheorySimulate * \ingroup Theories * \brief "Theory" of symbolic simulation. * * Author: Sergey Berezin * * Created: Tue Oct 7 10:13:15 2003 * * This theory owns the SIMULATE operator. It's job is to replace the above * expressions by their definitions using rewrite rules. */ /*****************************************************************************/ class TheorySimulate: public Theory { private: //! Our local proof rules SimulateProofRules* d_rules; //! Create proof rules for this theory SimulateProofRules* createProofRules(); public: //! Constructor TheorySimulate(TheoryCore* core); //! Destructor ~TheorySimulate(); // The required Theory API functions void assertFact(const Theorem& e) { } void checkSat(bool fullEffort) { } Theorem rewrite(const Expr& e); void computeType(const Expr& e); Expr computeTCC(const Expr& e); Expr parseExprOp(const Expr& e); ExprStream& print(ExprStream& os, const Expr& e); }; // end of class TheorySimulate } // end of namespace CVC3 #endif