datatype_theorem_producer.h

Go to the documentation of this file.
00001 /*****************************************************************************/
00002 /*!
00003  *\file datatype_theorem_producer.h
00004  *\brief TRUSTED implementation of recursive datatype proof rules
00005  *
00006  * Author: Clark Barrett
00007  *
00008  * Created: Mon Jan 10 15:42:22 2005
00009  *
00010  * <hr>
00011  * Copyright (C) 2003 by the Board of Trustees of Leland Stanford
00012  * Junior University and by New York University. 
00013  *
00014  * License to use, copy, modify, sell and/or distribute this software
00015  * and its documentation for any purpose is hereby granted without
00016  * royalty, subject to the terms and conditions defined in the \ref
00017  * LICENSE file provided with this distribution.  In particular:
00018  *
00019  * - The above copyright notice and this permission notice must appear
00020  * in all copies of the software and related documentation.
00021  *
00022  * - THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT ANY WARRANTIES,
00023  * EXPRESSED OR IMPLIED.  USE IT AT YOUR OWN RISK.
00024  * 
00025  * <hr>
00026  * 
00027  * CLASS: DatatypeTheoremProducer
00028  * 
00029  */
00030 /*****************************************************************************/
00031 #ifndef _cvcl__theory_datatype__datatype_theorem_producer_h_
00032 #define _cvcl__theory_datatype__datatype_theorem_producer_h_
00033 
00034 #include "datatype_proof_rules.h"
00035 #include "theorem_producer.h"
00036 #include "theory_datatype.h"
00037 #include "theory_core.h"
00038 
00039 namespace CVCL {
00040   
00041 class DatatypeTheoremProducer: public DatatypeProofRules, public TheoremProducer {
00042   TheoryDatatype* d_theoryDatatype;
00043 private:
00044 public:
00045   //! Constructor
00046   DatatypeTheoremProducer(TheoryDatatype* theoryDatatype) :
00047     TheoremProducer(theoryDatatype->theoryCore()->getTM()),
00048     d_theoryDatatype(theoryDatatype) { }
00049 
00050   Theorem dummyTheorem(const CDList<Theorem>& facts, const Expr& e);
00051   Theorem rewriteSelCons(const CDList<Theorem>& facts, const Expr& e);
00052   Theorem rewriteTestCons(const Expr& e);
00053   Theorem decompose(const Theorem& e);
00054   Theorem noCycle(const Expr& e);
00055 
00056   }; // end of class DatatypeTheoremProducer
00057 } // end of namespace CVCL
00058 
00059 #endif
00060 

Generated on Thu Apr 13 16:57:30 2006 for CVC Lite by  doxygen 1.4.4