Branch data Line data Source code
1 : : /****************************************************************************** 2 : : * Top contributors (to current version): 3 : : * Andrew Reynolds, Andres Noetzli, Yoni Zohar 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 inference information utility. 14 : : */ 15 : : 16 : : #include "theory/strings/rewrites.h" 17 : : 18 : : #include <iostream> 19 : : 20 : : #include "base/check.h" 21 : : 22 : : namespace cvc5::internal { 23 : : namespace theory { 24 : : namespace strings { 25 : : 26 : 202 : const char* toString(Rewrite r) 27 : : { 28 [ + + ][ + + ]: 202 : switch (r) [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ + + ] [ + + ][ - - ] 29 : : { 30 : 1 : case Rewrite::NONE: return "NONE"; 31 : 1 : case Rewrite::CTN_COMPONENT: return "CTN_COMPONENT"; 32 : 1 : case Rewrite::CTN_CONCAT_CHAR: return "CTN_CONCAT_CHAR"; 33 : 1 : case Rewrite::CTN_CONST: return "CTN_CONST"; 34 : 1 : case Rewrite::CTN_EQ: return "CTN_EQ"; 35 : 1 : case Rewrite::CTN_LEN_INEQ: return "CTN_LEN_INEQ"; 36 : 1 : case Rewrite::CTN_LEN_INEQ_NSTRICT: return "CTN_LEN_INEQ_NSTRICT"; 37 : 1 : case Rewrite::CTN_LHS_EMPTYSTR: return "CTN_LHS_EMPTYSTR"; 38 : 1 : case Rewrite::CTN_MSET_NSS: return "CTN_MSET_NSS"; 39 : 1 : case Rewrite::CTN_NCONST_CTN_CONCAT: return "CTN_NCONST_CTN_CONCAT"; 40 : 1 : case Rewrite::CTN_REPL: return "CTN_REPL"; 41 : 1 : case Rewrite::CTN_REPL_CHAR: return "CTN_REPL_CHAR"; 42 : 1 : case Rewrite::CTN_REPL_EMPTY: return "CTN_REPL_EMPTY"; 43 : 1 : case Rewrite::CTN_REPL_LEN_ONE_TO_CTN: return "CTN_REPL_LEN_ONE_TO_CTN"; 44 : 1 : case Rewrite::CTN_REPL_TO_CTN: return "CTN_REPL_TO_CTN"; 45 : 1 : case Rewrite::CTN_REPL_TO_CTN_DISJ: return "CTN_REPL_TO_CTN_DISJ"; 46 : 1 : case Rewrite::CTN_RHS_EMPTYSTR: return "CTN_RHS_EMPTYSTR"; 47 : 1 : case Rewrite::CTN_RPL_NON_CTN: return "CTN_RPL_NON_CTN"; 48 : 1 : case Rewrite::CTN_CONCAT_CTN_SUBSTR: return "CTN_CONCAT_CTN_SUBSTR"; 49 : 1 : case Rewrite::CTN_SPLIT: return "CTN_SPLIT"; 50 : 1 : case Rewrite::CTN_SPLIT_ONES: return "CTN_SPLIT_ONES"; 51 : 1 : case Rewrite::CTN_STRIP_ENDPT: return "CTN_STRIP_ENDPT"; 52 : 1 : case Rewrite::CTN_SUBSTR: return "CTN_SUBSTR"; 53 : 1 : case Rewrite::CTN_CONCAT_COM_NON_CTN: return "CTN_CONCAT_COM_NON_CTN"; 54 : 1 : case Rewrite::CTN_ITOS_NON_DIGIT: return "CTN_ITOS_NON_DIGIT"; 55 : 1 : case Rewrite::EQ_NCTN: return "EQ_NCTN"; 56 : 1 : case Rewrite::EQ_NFIX: return "EQ_NFIX"; 57 : 1 : case Rewrite::FROM_CODE_EVAL: return "FROM_CODE_EVAL"; 58 : 1 : case Rewrite::IDOF_DEF_CTN: return "IDOF_DEF_CTN"; 59 : 1 : case Rewrite::IDOF_EMP_IDOF: return "IDOF_EMP_IDOF"; 60 : 1 : case Rewrite::IDOF_EQ_CST_START: return "IDOF_EQ_CST_START"; 61 : 1 : case Rewrite::IDOF_EQ_NORM: return "IDOF_EQ_NORM"; 62 : 1 : case Rewrite::IDOF_EQ_NSTART: return "IDOF_EQ_NSTART"; 63 : 1 : case Rewrite::IDOF_FIND: return "IDOF_FIND"; 64 : 1 : case Rewrite::IDOF_LEN: return "IDOF_LEN"; 65 : 1 : case Rewrite::IDOF_MAX: return "IDOF_MAX"; 66 : 1 : case Rewrite::IDOF_NCTN: return "IDOF_NCTN"; 67 : 1 : case Rewrite::IDOF_NEG: return "IDOF_NEG"; 68 : 1 : case Rewrite::IDOF_NFIND: return "IDOF_NFIND"; 69 : 1 : case Rewrite::IDOF_NORM_PREFIX: return "IDOF_NORM_PREFIX"; 70 : 1 : case Rewrite::IDOF_PULL_ENDPT: return "IDOF_PULL_ENDPT"; 71 : 1 : case Rewrite::IDOF_STRIP_CNST_ENDPTS: return "IDOF_STRIP_CNST_ENDPTS"; 72 : 1 : case Rewrite::IDOF_STRIP_SYM_LEN: return "IDOF_STRIP_SYM_LEN"; 73 : 1 : case Rewrite::INDEXOF_RE_EMP_RE: return "INDEXOF_RE_EMP_RE"; 74 : 1 : case Rewrite::INDEXOF_RE_EVAL: return "INDEXOF_RE_EVAL"; 75 : 1 : case Rewrite::INDEXOF_RE_INVALID_INDEX: return "INDEXOF_RE_INVALID_INDEX"; 76 : 1 : case Rewrite::INDEXOF_RE_MAX_INDEX: return "INDEXOF_RE_MAX_INDEX"; 77 : 1 : case Rewrite::INDEXOF_RE_NONE: return "INDEXOF_RE_NONE"; 78 : 1 : case Rewrite::ITOS_EVAL: return "ITOS_EVAL"; 79 : 1 : case Rewrite::RE_ALL_ELIM: return "RE_ALL_ELIM"; 80 : 1 : case Rewrite::RE_AND_EMPTY: return "RE_AND_EMPTY"; 81 : 1 : case Rewrite::RE_ANDOR_FLATTEN: return "RE_ANDOR_FLATTEN"; 82 : 1 : case Rewrite::RE_ANDOR_CONST_REMOVE: return "RE_ANDOR_CONST_REMOVE"; 83 : 1 : case Rewrite::RE_ANDOR_INC_CONFLICT: return "RE_ANDOR_INC_CONFLICT"; 84 : 1 : case Rewrite::RE_INTER_CONST_CONST_CONFLICT: 85 : 1 : return "RE_INTER_CONST_CONST_CONFLICT"; 86 : 1 : case Rewrite::RE_INTER_CONST_RE_CONFLICT: 87 : 1 : return "RE_INTER_CONST_RE_CONFLICT"; 88 : 1 : case Rewrite::RE_CHAR_IN_STR_STAR: return "RE_CHAR_IN_STR_STAR"; 89 : 1 : case Rewrite::RE_CONCAT: return "RE_CONCAT"; 90 : 1 : case Rewrite::RE_CONCAT_FLATTEN: return "RE_CONCAT_FLATTEN"; 91 : 1 : case Rewrite::RE_CONCAT_OPT: return "RE_CONCAT_OPT"; 92 : 1 : case Rewrite::RE_CONCAT_PURE_ALLCHAR: return "RE_CONCAT_PURE_ALLCHAR"; 93 : 1 : case Rewrite::RE_CONCAT_TO_CONTAINS: return "RE_CONCAT_TO_CONTAINS"; 94 : 1 : case Rewrite::RE_EMPTY_IN_STR_STAR: return "RE_EMPTY_IN_STR_STAR"; 95 : 1 : case Rewrite::RE_IN_DIST_CHAR_STAR: return "RE_IN_DIST_CHAR_STAR"; 96 : 1 : case Rewrite::RE_IN_SIGMA_STAR: return "RE_IN_SIGMA_STAR"; 97 : 1 : case Rewrite::RE_IN_CHAR_MODULUS_STAR: return "RE_IN_CHAR_MODULUS_STAR"; 98 : 1 : case Rewrite::RE_IN_INCLUSION: return "RE_IN_INCLUSION"; 99 : 1 : case Rewrite::RE_LOOP: return "RE_LOOP"; 100 : 1 : case Rewrite::RE_LOOP_NONE: return "RE_LOOP_NONE"; 101 : 1 : case Rewrite::RE_LOOP_ZERO: return "RE_LOOP_ZERO"; 102 : 1 : case Rewrite::RE_LOOP_STAR: return "RE_LOOP_STAR"; 103 : 1 : case Rewrite::RE_OR_ALL: return "RE_OR_ALL"; 104 : 1 : case Rewrite::RE_SIMPLE_CONSUME: return "RE_SIMPLE_CONSUME"; 105 : 1 : case Rewrite::RE_STAR_EMPTY: return "RE_STAR_EMPTY"; 106 : 1 : case Rewrite::RE_STAR_EMPTY_STRING: return "RE_STAR_EMPTY_STRING"; 107 : 1 : case Rewrite::RE_STAR_NESTED_STAR: return "RE_STAR_NESTED_STAR"; 108 : 1 : case Rewrite::RE_STAR_UNION: return "RE_STAR_UNION"; 109 : 1 : case Rewrite::RE_STAR_UNION_CHAR: return "RE_STAR_UNION_CHAR"; 110 : 1 : case Rewrite::REPL_CHAR_NCONTRIB_FIND: return "REPL_CHAR_NCONTRIB_FIND"; 111 : 1 : case Rewrite::REPL_DUAL_REPL_ITE: return "REPL_DUAL_REPL_ITE"; 112 : 1 : case Rewrite::REPL_REPL_SHORT_CIRCUIT: return "REPL_REPL_SHORT_CIRCUIT"; 113 : 1 : case Rewrite::REPL_REPL2_INV: return "REPL_REPL2_INV"; 114 : 1 : case Rewrite::REPL_REPL2_INV_ID: return "REPL_REPL2_INV_ID"; 115 : 1 : case Rewrite::REPL_REPL3_INV: return "REPL_REPL3_INV"; 116 : 1 : case Rewrite::REPL_REPL3_INV_ID: return "REPL_REPL3_INV_ID"; 117 : 1 : case Rewrite::REPL_SUBST_IDX: return "REPL_SUBST_IDX"; 118 : 1 : case Rewrite::REPLALL_CONST: return "REPLALL_CONST"; 119 : 1 : case Rewrite::REPLALL_EMPTY_FIND: return "REPLALL_EMPTY_FIND"; 120 : 1 : case Rewrite::RPL_CCTN: return "RPL_CCTN"; 121 : 1 : case Rewrite::RPL_CCTN_RPL: return "RPL_CCTN_RPL"; 122 : 1 : case Rewrite::RPL_CONST_FIND: return "RPL_CONST_FIND"; 123 : 1 : case Rewrite::RPL_CONST_NFIND: return "RPL_CONST_NFIND"; 124 : 1 : case Rewrite::RPL_ID: return "RPL_ID"; 125 : 1 : case Rewrite::RPL_NCTN: return "RPL_NCTN"; 126 : 1 : case Rewrite::RPL_PULL_ENDPT: return "RPL_PULL_ENDPT"; 127 : 1 : case Rewrite::RPL_REPLACE: return "RPL_REPLACE"; 128 : 1 : case Rewrite::RPL_RPL_EMPTY: return "RPL_RPL_EMPTY"; 129 : 1 : case Rewrite::RPL_RPL_LEN_ID: return "RPL_RPL_LEN_ID"; 130 : 1 : case Rewrite::REPLACE_RE_EVAL: return "REPLACE_RE_EVAL"; 131 : 1 : case Rewrite::REPLACE_RE_NONE: return "REPLACE_RE_NONE"; 132 : 1 : case Rewrite::REPLACE_RE_ALL_EVAL: return "REPLACE_RE_ALL_EVAL"; 133 : 1 : case Rewrite::REPLACE_RE_ALL_NONE: return "REPLACE_RE_ALL_NONE"; 134 : 1 : case Rewrite::REPLACE_RE_EMP_RE: return "REPLACE_RE_EMP_RE"; 135 : 1 : case Rewrite::SPLIT_EQ: return "SPLIT_EQ"; 136 : 1 : case Rewrite::SPLIT_EQ_STRIP_L: return "SPLIT_EQ_STRIP_L"; 137 : 1 : case Rewrite::SPLIT_EQ_STRIP_R: return "SPLIT_EQ_STRIP_R"; 138 : 1 : case Rewrite::SS_COMBINE_EQ: return "SS_COMBINE_EQ"; 139 : 1 : case Rewrite::SS_COMBINE_GEQ_INNER: return "SS_COMBINE_GEQ_INNER"; 140 : 1 : case Rewrite::SS_COMBINE_GEQ_OUTER: return "SS_COMBINE_GEQ_OUTER"; 141 : 1 : case Rewrite::SS_CONST_END_OOB: return "SS_CONST_END_OOB"; 142 : 1 : case Rewrite::SS_CONST_LEN_MAX_OOB: return "SS_CONST_LEN_MAX_OOB"; 143 : 1 : case Rewrite::SS_CONST_LEN_NON_POS: return "SS_CONST_LEN_NON_POS"; 144 : 1 : case Rewrite::SS_CONST_SS: return "SS_CONST_SS"; 145 : 1 : case Rewrite::SS_CONST_START_MAX_OOB: return "SS_CONST_START_MAX_OOB"; 146 : 1 : case Rewrite::SS_CONST_START_NEG: return "SS_CONST_START_NEG"; 147 : 1 : case Rewrite::SS_CONST_START_OOB: return "SS_CONST_START_OOB"; 148 : 1 : case Rewrite::SS_EMPTYSTR: return "SS_EMPTYSTR"; 149 : 1 : case Rewrite::SS_END_PT_NORM: return "SS_END_PT_NORM"; 150 : 1 : case Rewrite::SS_GEQ_ZERO_START_ENTAILS_EMP_S: 151 : 1 : return "SS_GEQ_ZERO_START_ENTAILS_EMP_S"; 152 : 1 : case Rewrite::SS_LEN_INCLUDE: return "SS_LEN_INCLUDE"; 153 : 1 : case Rewrite::SS_LEN_NON_POS: return "SS_LEN_NON_POS"; 154 : 1 : case Rewrite::SS_LEN_ONE_Z_Z: return "SS_LEN_ONE_Z_Z"; 155 : 1 : case Rewrite::SS_NON_ZERO_LEN_ENTAILS_OOB: 156 : 1 : return "SS_NON_ZERO_LEN_ENTAILS_OOB"; 157 : 1 : case Rewrite::SS_START_ENTAILS_ZERO_LEN: return "SS_START_ENTAILS_ZERO_LEN"; 158 : 1 : case Rewrite::SS_START_GEQ_LEN: return "SS_START_GEQ_LEN"; 159 : 1 : case Rewrite::SS_START_NEG: return "SS_START_NEG"; 160 : 1 : case Rewrite::SS_STRIP_END_PT: return "SS_STRIP_END_PT"; 161 : 1 : case Rewrite::SS_STRIP_START_PT: return "SS_STRIP_START_PT"; 162 : 1 : case Rewrite::UPD_EVAL: return "UPD_EVAL"; 163 : 1 : case Rewrite::UPD_EVAL_SYM: return "UPD_EVAL_SYM"; 164 : 1 : case Rewrite::UPD_EMPTYSTR: return "UPD_EMPTYSTR"; 165 : 1 : case Rewrite::UPD_CONST_INDEX_MAX_OOB: return "UPD_CONST_INDEX_MAX_OOB"; 166 : 1 : case Rewrite::UPD_CONST_INDEX_NEG: return "UPD_CONST_INDEX_NEG"; 167 : 1 : case Rewrite::UPD_CONST_INDEX_OOB: return "UPD_CONST_INDEX_OOB"; 168 : 1 : case Rewrite::UPD_REV: return "UPD_REV"; 169 : 1 : case Rewrite::UPD_OOB: return "UPD_OOB"; 170 : 1 : case Rewrite::STOI_CONCAT_NONNUM: return "STOI_CONCAT_NONNUM"; 171 : 1 : case Rewrite::STOI_EVAL: return "STOI_EVAL"; 172 : 1 : case Rewrite::STR_CONV_CONST: return "STR_CONV_CONST"; 173 : 1 : case Rewrite::STR_CONV_IDEM: return "STR_CONV_IDEM"; 174 : 1 : case Rewrite::STR_CONV_ITOS: return "STR_CONV_ITOS"; 175 : 1 : case Rewrite::STR_CONV_MINSCOPE_CONCAT: return "STR_CONV_MINSCOPE_CONCAT"; 176 : 1 : case Rewrite::STR_EMP_REPL_EMP: return "STR_EMP_REPL_EMP"; 177 : 1 : case Rewrite::STR_EMP_REPL_EMP_R: return "STR_EMP_REPL_EMP_R"; 178 : 1 : case Rewrite::STR_EMP_REPL_X_Y_X: return "STR_EMP_REPL_X_Y_X"; 179 : 1 : case Rewrite::STR_EMP_SUBSTR_ELIM: return "STR_EMP_SUBSTR_ELIM"; 180 : 1 : case Rewrite::STR_EMP_SUBSTR_LEQ_LEN: return "STR_EMP_SUBSTR_LEQ_LEN"; 181 : 1 : case Rewrite::STR_EMP_SUBSTR_LEQ_Z: return "STR_EMP_SUBSTR_LEQ_Z"; 182 : 1 : case Rewrite::STR_EQ_CONJ_LEN_ENTAIL: return "STR_EQ_CONJ_LEN_ENTAIL"; 183 : 1 : case Rewrite::STR_EQ_REPL_EMP: return "STR_EQ_REPL_EMP"; 184 : 1 : case Rewrite::STR_EQ_REPL_NOT_CTN: return "STR_EQ_REPL_NOT_CTN"; 185 : 1 : case Rewrite::STR_EQ_REPL_TO_DIS: return "STR_EQ_REPL_TO_DIS"; 186 : 1 : case Rewrite::STR_EQ_REPL_TO_EQ: return "STR_EQ_REPL_TO_EQ"; 187 : 1 : case Rewrite::STR_EQ_UNIFY: return "STR_EQ_UNIFY"; 188 : 1 : case Rewrite::STR_LEQ_CPREFIX: return "STR_LEQ_CPREFIX"; 189 : 1 : case Rewrite::STR_LEQ_EMPTY: return "STR_LEQ_EMPTY"; 190 : 1 : case Rewrite::STR_LEQ_EVAL: return "STR_LEQ_EVAL"; 191 : 1 : case Rewrite::STR_LEQ_ID: return "STR_LEQ_ID"; 192 : 1 : case Rewrite::STR_REV_CONST: return "STR_REV_CONST"; 193 : 1 : case Rewrite::STR_REV_IDEM: return "STR_REV_IDEM"; 194 : 1 : case Rewrite::STR_REV_UNIT: return "STR_REV_UNIT"; 195 : 1 : case Rewrite::STR_REV_MINSCOPE_CONCAT: return "STR_REV_MINSCOPE_CONCAT"; 196 : 1 : case Rewrite::SUBSTR_REPL_SWAP: return "SUBSTR_REPL_SWAP"; 197 : 1 : case Rewrite::SUF_PREFIX_CONST: return "SUF_PREFIX_CONST"; 198 : 1 : case Rewrite::SUF_PREFIX_CTN: return "SUF_PREFIX_CTN"; 199 : 1 : case Rewrite::SUF_PREFIX_EMPTY: return "SUF_PREFIX_EMPTY"; 200 : 1 : case Rewrite::SUF_PREFIX_EMPTY_CONST: return "SUF_PREFIX_EMPTY_CONST"; 201 : 1 : case Rewrite::SUF_PREFIX_EQ: return "SUF_PREFIX_EQ"; 202 : 1 : case Rewrite::SUF_PREFIX_TO_EQS: return "SUF_PREFIX_TO_EQS"; 203 : 1 : case Rewrite::TO_CODE_EVAL: return "TO_CODE_EVAL"; 204 : 1 : case Rewrite::EQ_REFL: return "EQ_REFL"; 205 : 1 : case Rewrite::EQ_CONST_FALSE: return "EQ_CONST_FALSE"; 206 : 1 : case Rewrite::EQ_SYM: return "EQ_SYM"; 207 : 1 : case Rewrite::CONCAT_NORM: return "CONCAT_NORM"; 208 : 1 : case Rewrite::IS_DIGIT_ELIM: return "IS_DIGIT_ELIM"; 209 : 1 : case Rewrite::RE_CONCAT_EMPTY: return "RE_CONCAT_EMPTY"; 210 : 1 : case Rewrite::RE_IN_EMPTY: return "RE_IN_EMPTY"; 211 : 1 : case Rewrite::RE_IN_SIGMA: return "RE_IN_SIGMA"; 212 : 1 : case Rewrite::RE_IN_EVAL: return "RE_IN_EVAL"; 213 : 1 : case Rewrite::RE_IN_COMPLEMENT: return "RE_IN_COMPLEMENT"; 214 : 1 : case Rewrite::RE_IN_RANGE: return "RE_IN_RANGE"; 215 : 1 : case Rewrite::RE_IN_CSTRING: return "RE_IN_CSTRING"; 216 : 1 : case Rewrite::RE_IN_ANDOR: return "RE_IN_ANDOR"; 217 : 1 : case Rewrite::RE_REPEAT_ELIM: return "RE_REPEAT_ELIM"; 218 : 1 : case Rewrite::SUF_PREFIX_ELIM: return "SUF_PREFIX_ELIM"; 219 : 1 : case Rewrite::STR_LT_ELIM: return "STR_LT_ELIM"; 220 : 1 : case Rewrite::RE_RANGE_SINGLE: return "RE_RANGE_SINGLE"; 221 : 1 : case Rewrite::RE_RANGE_EMPTY: return "RE_RANGE_EMPTY"; 222 : 1 : case Rewrite::RE_RANGE_NON_SINGLETON: return "RE_RANGE_NON_SINGLETON"; 223 : 1 : case Rewrite::RE_OPT_ELIM: return "RE_OPT_ELIM"; 224 : 1 : case Rewrite::RE_PLUS_ELIM: return "RE_PLUS_ELIM"; 225 : 1 : case Rewrite::RE_DIFF_ELIM: return "RE_DIFF_ELIM"; 226 : 1 : case Rewrite::LEN_EVAL: return "LEN_EVAL"; 227 : 1 : case Rewrite::LEN_CONCAT: return "LEN_CONCAT"; 228 : 1 : case Rewrite::LEN_REPL_INV: return "LEN_REPL_INV"; 229 : 1 : case Rewrite::LEN_CONV_INV: return "LEN_CONV_INV"; 230 : 1 : case Rewrite::LEN_SEQ_UNIT: return "LEN_SEQ_UNIT"; 231 : 1 : case Rewrite::CHARAT_ELIM: return "CHARAT_ELIM"; 232 : 1 : case Rewrite::SEQ_UNIT_EVAL: return "SEQ_UNIT_EVAL"; 233 : 1 : case Rewrite::SEQ_NTH_EVAL: return "SEQ_NTH_EVAL"; 234 : 1 : case Rewrite::SEQ_NTH_EVAL_OOB: return "SEQ_NTH_EVAL_OOB"; 235 : 1 : case Rewrite::SEQ_NTH_EVAL_SYM: return "SEQ_NTH_EVAL_SYM"; 236 : 0 : case Rewrite::UNKNOWN: return "?"; 237 : 0 : default: 238 : 0 : Assert(false) << "No print for rewrite " << static_cast<size_t>(r); 239 : : return "?Unhandled"; 240 : : } 241 : : } 242 : : 243 : 202 : std::ostream& operator<<(std::ostream& out, Rewrite r) 244 : : { 245 : 202 : out << toString(r); 246 : 202 : return out; 247 : : } 248 : : 249 : : } // namespace strings 250 : : } // namespace theory 251 : : } // namespace cvc5::internal