LCOV - code coverage report
Current view: top level - buildbot/coverage/build/src/theory/strings - rewrites.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 211 214 98.6 %
Date: 2026-01-22 12:22:00 Functions: 2 2 100.0 %
Branches: 202 204 99.0 %

           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

Generated by: LCOV version 1.14