/********************* */ /*! \file theory_bool.cpp ** \verbatim ** Top contributors (to current version): ** Morgan Deters, Dejan Jovanovic, Tim King ** This file is part of the CVC4 project. ** Copyright (c) 2009-2016 by the authors listed in the file AUTHORS ** in the top-level source directory) and their institutional affiliations. ** All rights reserved. See the file COPYING in the top-level source ** directory for licensing information.\endverbatim ** ** \brief The theory of booleans. ** ** The theory of booleans. **/ #include "theory/theory.h" #include "theory/booleans/theory_bool.h" #include "theory/booleans/circuit_propagator.h" #include "theory/valuation.h" #include "smt_util/boolean_simplification.h" #include "theory/substitutions.h" #include #include #include "util/hash.h" using namespace std; namespace CVC4 { namespace theory { namespace booleans { Theory::PPAssertStatus TheoryBool::ppAssert(TNode in, SubstitutionMap& outSubstitutions) { if (in.getKind() == kind::CONST_BOOLEAN && !in.getConst()) { // If we get a false literal, we're in conflict return PP_ASSERT_STATUS_CONFLICT; } // Add the substitution from the variable to its value if (in.getKind() == kind::NOT) { if (in[0].getKind() == kind::VARIABLE) { outSubstitutions.addSubstitution(in[0], NodeManager::currentNM()->mkConst(false)); } else { return PP_ASSERT_STATUS_UNSOLVED; } } else { if (in.getKind() == kind::VARIABLE) { outSubstitutions.addSubstitution(in, NodeManager::currentNM()->mkConst(true)); } else { return PP_ASSERT_STATUS_UNSOLVED; } } return PP_ASSERT_STATUS_SOLVED; } /* void TheoryBool::check(Effort level) { if (done() && !fullEffort(level)) { return; } while (!done()) { // Get all the assertions Assertion assertion = get(); TNode fact = assertion.assertion; } if( Theory::fullEffort(level) ){ } } */ }/* CVC4::theory::booleans namespace */ }/* CVC4::theory namespace */ }/* CVC4 namespace */