diff options
Diffstat (limited to 'src/util/util_model.h')
-rw-r--r-- | src/util/util_model.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/util/util_model.h b/src/util/util_model.h new file mode 100644 index 000000000..97010dd45 --- /dev/null +++ b/src/util/util_model.h @@ -0,0 +1,65 @@ +/********************* */ +/*! \file model.h + ** \verbatim + ** Original author: ajreynol + ** Major contributors: mdeters + ** Minor contributors (to current version): none + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009-2012 The Analysis of Computer Systems Group (ACSys) + ** Courant Institute of Mathematical Sciences + ** New York University + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief Model class + **/ + +#include "cvc4_public.h" + +#ifndef __CVC4__MODEL_H +#define __CVC4__MODEL_H + +#include <iostream> +#include <vector> + +#include "expr/expr.h" +#include "util/cardinality.h" + +namespace CVC4 { + +class CVC4_PUBLIC Command; +class CVC4_PUBLIC SmtEngine; + +class CVC4_PUBLIC Model { +private: + /** The SmtEngine we're associated to */ + const SmtEngine& d_smt; +public: + /** construct the base class */ + Model(); + /** virtual destructor */ + virtual ~Model() { } + /** get number of commands to report */ + size_t getNumCommands() const; + /** get command */ + const Command* getCommand(size_t i) const; +public: + /** get value for expression */ + virtual Expr getValue(Expr expr) = 0; + /** get cardinality for sort */ + virtual Cardinality getCardinality(Type t) = 0; + /** write the model to a stream */ + virtual void toStream(std::ostream& out) = 0; +};/* class Model */ + +class ModelBuilder +{ +public: + ModelBuilder(){} + virtual ~ModelBuilder(){} + virtual void buildModel( Model* m, bool fullModel ) = 0; +};/* class ModelBuilder */ + +}/* CVC4 namespace */ + +#endif /* __CVC4__MODEL_H */ |