Branch data Line data Source code
1 : : /****************************************************************************** 2 : : * Top contributors (to current version): 3 : : * Mudathir Mohamed, Andrew Reynolds, Mathias Preiner 4 : : * 5 : : * This file is part of the cvc5 project. 6 : : * 7 : : * Copyright (c) 2009-2024 by the authors listed in the file AUTHORS 8 : : * in the top-level source directory and their institutional affiliations. 9 : : * All rights reserved. See the file COPYING in the top-level source 10 : : * directory for licensing information. 11 : : * **************************************************************************** 12 : : * 13 : : * Implementation of the inference manager for the theory of bags. 14 : : */ 15 : : 16 : : #include "theory/bags/inference_manager.h" 17 : : 18 : : #include "theory/bags/solver_state.h" 19 : : 20 : : using namespace std; 21 : : using namespace cvc5::internal::kind; 22 : : 23 : : namespace cvc5::internal { 24 : : namespace theory { 25 : : namespace bags { 26 : : 27 : 49837 : InferenceManager::InferenceManager(Env& env, Theory& t, SolverState& s) 28 : 49837 : : InferenceManagerBuffered(env, t, s, "theory::bags::"), d_state(s) 29 : : { 30 : 49837 : d_true = nodeManager()->mkConst(true); 31 : 49837 : d_false = nodeManager()->mkConst(false); 32 : 49837 : } 33 : : 34 : 40837 : void InferenceManager::doPending() 35 : : { 36 : 40837 : doPendingFacts(); 37 [ - + ]: 40837 : if (d_state.isInConflict()) 38 : : { 39 : : // just clear the pending vectors, nothing else to do 40 : 0 : clearPendingLemmas(); 41 : 0 : clearPendingPhaseRequirements(); 42 : 0 : return; 43 : : } 44 : 40837 : doPendingLemmas(); 45 : 40837 : doPendingPhaseRequirements(); 46 : : } 47 : : 48 : : } // namespace bags 49 : : } // namespace theory 50 : : } // namespace cvc5::internal