Branch data Line data Source code
1 : : /****************************************************************************** 2 : : * This file is part of the cvc5 project. 3 : : * 4 : : * Copyright (c) 2009-2026 by the authors listed in the file AUTHORS 5 : : * in the top-level source directory and their institutional affiliations. 6 : : * All rights reserved. See the file COPYING in the top-level source 7 : : * directory for licensing information. 8 : : * **************************************************************************** 9 : : * 10 : : * The care pair argument callback. 11 : : */ 12 : : 13 : : #include "theory/care_pair_argument_callback.h" 14 : : 15 : : namespace cvc5::internal { 16 : : namespace theory { 17 : : 18 : 249785 : CarePairArgumentCallback::CarePairArgumentCallback(Theory& t) : d_theory(t) {} 19 : : 20 : 5627407 : bool CarePairArgumentCallback::considerPath(TNode a, TNode b) 21 : : { 22 : : // builtin cases for when a is clearly equal/disequal to b 23 [ + + ]: 5627407 : if (a == b) 24 : : { 25 : 151733 : return true; 26 : : } 27 [ + + ][ + + ]: 5475674 : if (a.isConst() && b.isConst()) [ + + ] 28 : : { 29 : 2899255 : return false; 30 : : } 31 : : // interested in finding pairs that are not disequal 32 : 2576419 : return !d_theory.areCareDisequal(a, b); 33 : : } 34 : : 35 : 427303 : void CarePairArgumentCallback::processData(TNode fa, TNode fb) 36 : : { 37 : 427303 : d_theory.processCarePairArgs(fa, fb); 38 : 427303 : } 39 : : 40 : : } // namespace theory 41 : : } // namespace cvc5::internal