Branch data Line data Source code
1 : : /****************************************************************************** 2 : : * Top contributors (to current version): 3 : : * Andrew Reynolds 4 : : * 5 : : * This file is part of the cvc5 project. 6 : : * 7 : : * Copyright (c) 2009-2025 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 : : * Notification class for the master equality engine 14 : : */ 15 : : 16 : : #include "cvc5_private.h" 17 : : 18 : : #ifndef CVC5__THEORY__QUANTIFIERS__MASTER_EQ_NOTIFY__H 19 : : #define CVC5__THEORY__QUANTIFIERS__MASTER_EQ_NOTIFY__H 20 : : 21 : : #include <memory> 22 : : 23 : : #include "theory/uf/equality_engine_notify.h" 24 : : 25 : : namespace cvc5::internal { 26 : : namespace theory { 27 : : 28 : : class QuantifiersEngine; 29 : : 30 : : namespace quantifiers { 31 : : 32 : : /** notify class for master equality engine */ 33 : : class MasterNotifyClass : public theory::eq::EqualityEngineNotify 34 : : { 35 : : public: 36 : : MasterNotifyClass(QuantifiersEngine* qe); 37 : : /** 38 : : * Called when a new equivalence class is created in the master equality 39 : : * engine. 40 : : */ 41 : : void eqNotifyNewClass(TNode t) override; 42 : : 43 : 0 : bool eqNotifyTriggerPredicate(TNode predicate, bool value) override 44 : : { 45 : 0 : return true; 46 : : } 47 : 0 : bool eqNotifyTriggerTermEquality(TheoryId tag, 48 : : TNode t1, 49 : : TNode t2, 50 : : bool value) override 51 : : { 52 : 0 : return true; 53 : : } 54 : 15785 : void eqNotifyConstantTermMerge(TNode t1, TNode t2) override {} 55 : 11086000 : void eqNotifyMerge(TNode t1, TNode t2) override {} 56 : 0 : void eqNotifyDisequal(TNode t1, TNode t2, TNode reason) override {} 57 : : 58 : : private: 59 : : /** Pointer to quantifiers engine */ 60 : : QuantifiersEngine* d_quantEngine; 61 : : }; 62 : : 63 : : 64 : : } // namespace quantifiers 65 : : } // namespace theory 66 : : } // namespace cvc5::internal 67 : : 68 : : #endif /* CVC5__THEORY__QUANTIFIERS__MASTER_EQ_NOTIFY__H */