Branch data Line data Source code
1 : : /****************************************************************************** 2 : : * Top contributors (to current version): 3 : : * Andrew Reynolds, Daniel Larraz 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 : : * Implementation of annotation elimination node conversion 14 : : */ 15 : : #include "cvc5_private.h" 16 : : 17 : : #ifndef CVC5__EXPR__ANNOTATION_ELIM_NODE_CONVERTER_H 18 : : #define CVC5__EXPR__ANNOTATION_ELIM_NODE_CONVERTER_H 19 : : 20 : : #include "expr/node.h" 21 : : #include "expr/node_converter.h" 22 : : 23 : : namespace cvc5::internal { 24 : : 25 : : /** 26 : : * This converts a node into one that does not involve annotations for 27 : : * quantified formulas. In other words, the third child is dropped for all 28 : : * closure terms with 3 children. 29 : : */ 30 : : class AnnotationElimNodeConverter : public NodeConverter 31 : : { 32 : : public: 33 : : AnnotationElimNodeConverter(NodeManager* nm); 34 : 44 : ~AnnotationElimNodeConverter() {} 35 : : /** convert node n as described above during post-order traversal */ 36 : : Node postConvert(Node n) override; 37 : : }; 38 : : 39 : : } // namespace cvc5::internal 40 : : 41 : : #endif