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 : : * Notification class for the master equality engine 11 : : */ 12 : : 13 : : #include "cvc5_private.h" 14 : : 15 : : #ifndef CVC5__THEORY__QUANTIFIERS__MASTER_EQ_NOTIFY__H 16 : : #define CVC5__THEORY__QUANTIFIERS__MASTER_EQ_NOTIFY__H 17 : : 18 : : #include <memory> 19 : : 20 : : #include "theory/uf/equality_engine_notify.h" 21 : : 22 : : namespace cvc5::internal { 23 : : namespace theory { 24 : : 25 : : class QuantifiersEngine; 26 : : 27 : : namespace quantifiers { 28 : : 29 : : /** notify class for master equality engine */ 30 : : class MasterNotifyClass : public theory::eq::EqualityEngineNotify 31 : : { 32 : : public: 33 : : MasterNotifyClass(QuantifiersEngine* qe); 34 : : /** 35 : : * Called when a new equivalence class is created in the master equality 36 : : * engine. 37 : : */ 38 : : void eqNotifyNewClass(TNode t) override; 39 : : 40 : 0 : bool eqNotifyTriggerPredicate(CVC5_UNUSED TNode predicate, 41 : : CVC5_UNUSED bool value) override 42 : : { 43 : 0 : return true; 44 : : } 45 : 0 : bool eqNotifyTriggerTermEquality(CVC5_UNUSED TheoryId tag, 46 : : CVC5_UNUSED TNode t1, 47 : : CVC5_UNUSED TNode t2, 48 : : CVC5_UNUSED bool value) override 49 : : { 50 : 0 : return true; 51 : : } 52 : 16705 : void eqNotifyConstantTermMerge(CVC5_UNUSED TNode t1, 53 : : CVC5_UNUSED TNode t2) override 54 : : { 55 : 16705 : } 56 : : void eqNotifyMerge(CVC5_UNUSED TNode t1, CVC5_UNUSED TNode t2) override; 57 : 0 : void eqNotifyDisequal(CVC5_UNUSED TNode t1, 58 : : CVC5_UNUSED TNode t2, 59 : : CVC5_UNUSED TNode reason) override 60 : : { 61 : 0 : } 62 : : 63 : : private: 64 : : /** Pointer to quantifiers engine */ 65 : : QuantifiersEngine* d_quantEngine; 66 : : }; 67 : : 68 : : } // namespace quantifiers 69 : : } // namespace theory 70 : : } // namespace cvc5::internal 71 : : 72 : : #endif /* CVC5__THEORY__QUANTIFIERS__MASTER_EQ_NOTIFY__H */