From e21e99b7dfe45f042260db7eb754e25e7108f288 Mon Sep 17 00:00:00 2001 From: Tim King Date: Tue, 2 Feb 2016 09:47:34 -0800 Subject: Moving dump.*, command.*, model.*, and ite_removal.* from smt_util/ to smt/. Breaking an edge between the sat solver and command.h. --- src/smt/model.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/smt/model.cpp (limited to 'src/smt/model.cpp') diff --git a/src/smt/model.cpp b/src/smt/model.cpp new file mode 100644 index 000000000..15ecbadfb --- /dev/null +++ b/src/smt/model.cpp @@ -0,0 +1,55 @@ +/********************* */ +/*! \file model.cpp + ** \verbatim + ** Original author: Andrew Reynolds + ** Major contributors: Morgan Deters + ** Minor contributors (to current version): none + ** This file is part of the CVC4 project. + ** Copyright (c) 2009-2014 New York University and The University of Iowa + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief implementation of Model class + **/ + +#include "smt/model.h" + +#include + +#include "expr/expr_iomanip.h" +#include "options/base_options.h" +#include "printer/printer.h" +#include "smt/command.h" +#include "smt/command_list.h" +#include "smt/smt_engine_scope.h" + +using namespace std; + +namespace CVC4 { + +std::ostream& operator<<(std::ostream& out, const Model& m) { + smt::SmtScope smts(&m.d_smt); + expr::ExprDag::Scope scope(out, false); + Printer::getPrinter(options::outputLanguage())->toStream(out, m); + return out; +} + +Model::Model() : + d_smt(*smt::currentSmtEngine()) { +} + +size_t Model::getNumCommands() const { + return d_smt.d_modelCommands->size() + d_smt.d_modelGlobalCommands.size(); +} + +const Command* Model::getCommand(size_t i) const { + Assert(i < getNumCommands()); + // index the global commands first, then the locals + if(i < d_smt.d_modelGlobalCommands.size()) { + return d_smt.d_modelGlobalCommands[i]; + } else { + return (*d_smt.d_modelCommands)[i - d_smt.d_modelGlobalCommands.size()]; + } +} + +}/* CVC4 namespace */ -- cgit v1.2.3