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 : : * Implementation of inference information utility. 11 : : */ 12 : : 13 : : #include "theory/bags/rewrites.h" 14 : : 15 : : #include <iostream> 16 : : 17 : : namespace cvc5::internal { 18 : : namespace theory { 19 : : namespace bags { 20 : : 21 : 0 : const char* toString(Rewrite r) 22 : : { 23 [ - - ][ - - ]: 0 : switch (r) [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - - ][ - - ] [ - ] 24 : : { 25 : 0 : case Rewrite::NONE: return "NONE"; 26 : 0 : case Rewrite::AGGREGATE_CONST: return "AGGREGATE_CONST"; 27 : 0 : case Rewrite::BAG_MAKE_COUNT_NEGATIVE: return "BAG_MAKE_COUNT_NEGATIVE"; 28 : 0 : case Rewrite::CARD_DISJOINT: return "CARD_DISJOINT"; 29 : 0 : case Rewrite::CARD_BAG_MAKE: return "CARD_BAG_MAKE"; 30 : 0 : case Rewrite::CHOOSE_BAG_MAKE: return "CHOOSE_BAG_MAKE"; 31 : 0 : case Rewrite::CONSTANT_EVALUATION: return "CONSTANT_EVALUATION"; 32 : 0 : case Rewrite::COUNT_EMPTY: return "COUNT_EMPTY"; 33 : 0 : case Rewrite::COUNT_BAG_MAKE: return "COUNT_BAG_MAKE"; 34 : 0 : case Rewrite::SETOF_BAG_MAKE: return "SETOF_BAG_MAKE"; 35 : 0 : case Rewrite::EQ_CONST_FALSE: return "EQ_CONST_FALSE"; 36 : 0 : case Rewrite::EQ_REFL: return "EQ_REFL"; 37 : 0 : case Rewrite::EQ_SYM: return "EQ_SYM"; 38 : 0 : case Rewrite::FILTER_CONST: return "FILTER_CONST"; 39 : 0 : case Rewrite::FILTER_BAG_MAKE: return "FILTER_BAG_MAKE"; 40 : 0 : case Rewrite::FILTER_UNION_DISJOINT: return "FILTER_UNION_DISJOINT"; 41 : 0 : case Rewrite::ALL_EMPTY: return "ALL_EMPTY"; 42 : 0 : case Rewrite::ALL_BAG_MAKE: return "ALL_BAG_MAKE"; 43 : 0 : case Rewrite::ALL_UNION_DISJOINT: return "ALL_UNION_DISJOINT"; 44 : 0 : case Rewrite::ALL_FILTER: return "ALL_FILTER"; 45 : 0 : case Rewrite::SOME_EMPTY: return "SOME_EMPTY"; 46 : 0 : case Rewrite::SOME_BAG_MAKE: return "SOME_BAG_MAKE"; 47 : 0 : case Rewrite::SOME_UNION_DISJOINT: return "SOME_UNION_DISJOINT"; 48 : 0 : case Rewrite::SOME_FILTER: return "SOME_FILTER"; 49 : 0 : case Rewrite::FROM_SINGLETON: return "FROM_SINGLETON"; 50 : 0 : case Rewrite::FOLD_BAG: return "FOLD_BAG"; 51 : 0 : case Rewrite::FOLD_CONST: return "FOLD_CONST"; 52 : 0 : case Rewrite::FOLD_UNION_DISJOINT: return "FOLD_UNION_DISJOINT"; 53 : 0 : case Rewrite::IDENTICAL_NODES: return "IDENTICAL_NODES"; 54 : 0 : case Rewrite::INTERSECTION_EMPTY_LEFT: return "INTERSECTION_EMPTY_LEFT"; 55 : 0 : case Rewrite::INTERSECTION_EMPTY_RIGHT: return "INTERSECTION_EMPTY_RIGHT"; 56 : 0 : case Rewrite::INTERSECTION_SAME: return "INTERSECTION_SAME"; 57 : 0 : case Rewrite::INTERSECTION_SHARED_LEFT: return "INTERSECTION_SHARED_LEFT"; 58 : 0 : case Rewrite::INTERSECTION_SHARED_RIGHT: return "INTERSECTION_SHARED_RIGHT"; 59 : 0 : case Rewrite::IS_SINGLETON_BAG_MAKE: return "IS_SINGLETON_BAG_MAKE"; 60 : 0 : case Rewrite::MAP_CONST: return "MAP_CONST"; 61 : 0 : case Rewrite::MAP_BAG_MAKE: return "MAP_BAG_MAKE"; 62 : 0 : case Rewrite::MAP_UNION_DISJOINT: return "MAP_UNION_DISJOINT"; 63 : 0 : case Rewrite::MEMBER: return "MEMBER"; 64 : 0 : case Rewrite::PARTITION_CONST: return "PARTITION_CONST"; 65 : 0 : case Rewrite::PRODUCT_EMPTY: return "PRODUCT_EMPTY"; 66 : 0 : case Rewrite::REMOVE_FROM_UNION: return "REMOVE_FROM_UNION"; 67 : 0 : case Rewrite::REMOVE_MIN: return "REMOVE_MIN"; 68 : 0 : case Rewrite::REMOVE_RETURN_LEFT: return "REMOVE_RETURN_LEFT"; 69 : 0 : case Rewrite::REMOVE_SAME: return "REMOVE_SAME"; 70 : 0 : case Rewrite::SUB_BAG: return "SUB_BAG"; 71 : 0 : case Rewrite::SUBTRACT_DISJOINT_SHARED_LEFT: 72 : 0 : return "SUBTRACT_DISJOINT_SHARED_LEFT"; 73 : 0 : case Rewrite::SUBTRACT_DISJOINT_SHARED_RIGHT: 74 : 0 : return "SUBTRACT_DISJOINT_SHARED_RIGHT"; 75 : 0 : case Rewrite::SUBTRACT_FROM_UNION: return "SUBTRACT_FROM_UNION"; 76 : 0 : case Rewrite::SUBTRACT_MIN: return "SUBTRACT_MIN"; 77 : 0 : case Rewrite::SUBTRACT_RETURN_LEFT: return "SUBTRACT_RETURN_LEFT"; 78 : 0 : case Rewrite::SUBTRACT_SAME: return "SUBTRACT_SAME"; 79 : 0 : case Rewrite::UNION_DISJOINT_EMPTY_LEFT: return "UNION_DISJOINT_EMPTY_LEFT"; 80 : 0 : case Rewrite::TO_SINGLETON: return "TO_SINGLETON"; 81 : 0 : case Rewrite::UNION_DISJOINT_EMPTY_RIGHT: 82 : 0 : return "UNION_DISJOINT_EMPTY_RIGHT"; 83 : 0 : case Rewrite::UNION_DISJOINT_MAX_MIN: return "UNION_DISJOINT_MAX_MIN"; 84 : 0 : case Rewrite::UNION_MAX_EMPTY: return "UNION_MAX_EMPTY"; 85 : 0 : case Rewrite::UNION_MAX_SAME_OR_EMPTY: return "UNION_MAX_SAME_OR_EMPTY"; 86 : 0 : case Rewrite::UNION_MAX_UNION_LEFT: return "UNION_MAX_UNION_LEFT"; 87 : 0 : case Rewrite::UNION_MAX_UNION_RIGHT: return "UNION_MAX_UNION_RIGHT"; 88 : : 89 : 0 : default: return "?"; 90 : : } 91 : : } 92 : : 93 : 0 : std::ostream& operator<<(std::ostream& out, Rewrite r) 94 : : { 95 : 0 : out << toString(r); 96 : 0 : return out; 97 : : } 98 : : 99 : : } // namespace bags 100 : : } // namespace theory 101 : : } // namespace cvc5::internal