All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.cvc5.ProofRewriteRule Maven / Gradle / Ivy

The newest version!
package io.github.cvc5;

import io.github.cvc5.CVC5ApiException;
import java.util.HashMap;
import java.util.Map;

public enum ProofRewriteRule
{
  /**
   * This enumeration represents the rewrite rules used in a rewrite proof. Some
   * of the rules are internal ad-hoc rewrites, while others are rewrites
   * specified by the RARE DSL. This enumeration is used as the first argument to
   * the DSL_REWRITE <cvc5.{@link ProofRule#DSL_REWRITE}> proof rule
   * and the THEORY_REWRITE <cvc5.{@link ProofRule#THEORY_REWRITE}>
   * proof rule.

   */
  NONE(0),
  /**
   * Builtin – Distinct elimination
   * 
   * \[
   *   \texttt{distinct}(t_1, \ldots, tn) = \bigwedge_{i \neq j} t_i \neq t_j
   * \]

   */
  DISTINCT_ELIM(1),
  /**
   * Booleans – Negation Normal Form with normalization
   * 
   * \[
   *   F = G
   * \]
   * where \(G\) is the result of applying negation normal form to
   * \(F\) with additional normalizations, see
   * TheoryBoolRewriter.computeNnfNorm.
   * 

   */
  MACRO_BOOL_NNF_NORM(2),
  /**
   * Arith – Division by constant elimination
   * 
   * \[
   *   t / c = t * 1/c
   * \]
   * where \(c\) is a constant.
   * 

   */
  ARITH_DIV_BY_CONST_ELIM(3),
  /**
   * Arithmetic - strings predicate entailment
   * 
   * \[
   *   (= s t) = c
   * \]
   * \[
   *   (>= s t) = c
   * \]
   * where \(c\) is a Boolean constant.
   * This macro is elaborated by applications of EVALUATE <cvc5.{@link ProofRule#EVALUATE}>,
   * ARITH_POLY_NORM <cvc5.{@link ProofRule#ARITH_POLY_NORM}>,
   * ARITH_STRING_PRED_ENTAIL <cvc5.ProofRewriteRule.ARITH_STRING_PRED_ENTAIL>,
   * ARITH_STRING_PRED_SAFE_APPROX <cvc5.ProofRewriteRule.ARITH_STRING_PRED_SAFE_APPROX>,
   * as well as other rewrites for normalizing arithmetic predicates.
   * 

   */
  MACRO_ARITH_STRING_PRED_ENTAIL(4),
  /**
   * Arithmetic - strings predicate entailment
   * 
   * \[
   *   (>= n 0) = true
   * \]
   * Where \(n\) can be shown to be greater than or equal to \(0\) by
   * reasoning about string length being positive and basic properties of
   * addition and multiplication.
   * 

   */
  ARITH_STRING_PRED_ENTAIL(5),
  /**
   * Arithmetic - strings predicate entailment
   * 
   * \[
   *   (>= n 0) = (>= m 0)
   * \]
   * Where \(m\) is a safe under-approximation of \(n\), namely
   * we have that \((>= n m)\) and \((>= m 0)\).
   * 
   * In detail, subterms of \(n\) may be replaced with other terms to
   * obtain \(m\) based on the reasoning described in the paper
   * Reynolds et al, CAV 2019, "High-Level Abstractions for Simplifying
   * Extended String Constraints in SMT".
   * 

   */
  ARITH_STRING_PRED_SAFE_APPROX(6),
  /**
   * Equality – Beta reduction
   * 
   * \[
   *   ((\lambda x_1 \ldots x_n.\> t) \ t_1 \ldots t_n) = t\{x_1 \mapsto t_1,
   *   \ldots, x_n \mapsto t_n\}
   * \]
   * The right hand side of the equality in the conclusion is computed using
   * standard substitution via {@code Node.substitute}.

   */
  BETA_REDUCE(7),
  /**
   * Arrays – Expansion of array range equality
   * 
   * \[
   *   \mathit{eqrange}(a,b,i,j)=
   *   \forall x.\> i \leq x \leq j \rightarrow
   *   \mathit{select}(a,x)=\mathit{select}(b,x)
   * \]
   */
  ARRAYS_EQ_RANGE_EXPAND(8),
  /**
   * Quantifiers – Exists elimination
   * 
   * \[
   *   \exists x_1\dots x_n.\> F = \neg \forall x_1\dots x_n.\> \neg F
   * \]

   */
  EXISTS_ELIM(9),
  /**
   * Quantifiers – Unused variables
   * 
   * \[
   *   \forall X.\> F = \forall X_1.\> F
   * \]
   * where \(X_1\) is the subset of \(X\) that appear free in \(F\).
   * 

   */
  QUANT_UNUSED_VARS(10),
  /**
   * Quantifiers – Merge prenex
   * 
   * \[
   *   \forall X_1.\> \ldots \forall X_n.\> F = \forall X_1 \ldots X_n.\> F
   * \]
   * where \(X_1 \ldots X_n\) are lists of variables.
   * 

   */
  QUANT_MERGE_PRENEX(11),
  /**
   * Quantifiers – Miniscoping
   * 
   * \[
   *   \forall X.\> F_1 \wedge \ldots \wedge F_n =
   *   (\forall X.\> F_1) \wedge \ldots \wedge (\forall X.\> F_n)
   * \]

   */
  QUANT_MINISCOPE(12),
  /**
   * Quantifiers – Macro connected free variable partitioning
   * 
   * \[
   *   \forall X.\> F_1 \vee \ldots \vee F_n =
   *   (\forall X_1.\> F_{1,1} \vee \ldots \vee F_{1,k_1}) \vee \ldots \vee
   *   (\forall X_m.\> F_{m,1} \vee \ldots \vee F_{m,k_m})
   * \]
   * where \(X_1, \ldots, X_m\) is a partition of \(X\). This is
   * determined by computing the connected components when considering two
   * variables in \(X\) to be connected if they occur in the same
   * \(F_i\).

   */
  MACRO_QUANT_PARTITION_CONNECTED_FV(13),
  /**
   * Datatypes – Instantiation
   * 
   * \[
   *    \mathit{is}_C(t) = (t = C(\mathit{sel}_1(t),\dots,\mathit{sel}_n(t)))
   * \]
   * where \(C\) is the \(n^{\mathit{th}}\) constructor of the type of
   * \(t\), and \(\mathit{is}_C\) is the discriminator (tester) for
   * \(C\).

   */
  DT_INST(14),
  /**
   * Datatypes - collapse selector
   * 
   * \[
   *   s_i(c(t_1, \ldots, t_n)) = t_i
   * \]
   * where \(s_i\) is the \(i^{th}\) selector for constructor \(c\).
   * 

   */
  DT_COLLAPSE_SELECTOR(15),
  /**
   * Datatypes - collapse tester
   * 
   * \[
   *   \mathit{is}_c(c(t_1, \ldots, t_n)) = true
   * \]
   * or alternatively
   * 
   * \[
   *   \mathit{is}_c(d(t_1, \ldots, t_n)) = false
   * \]
   * where \(c\) and \(d\) are distinct constructors.
   * 

   */
  DT_COLLAPSE_TESTER(16),
  /**
   * Datatypes - collapse tester
   * 
   * \[
   *   \mathit{is}_c(t) = true
   * \]
   * where \(c\) is the only constructor of its associated datatype.
   * 

   */
  DT_COLLAPSE_TESTER_SINGLETON(17),
  /**
   * Datatypes - constructor equality
   * 
   * \[
   *   (c(t_1, \ldots, t_n) = c(s_1, \ldots, s_n)) =
   *   (t_1 = s_1 \wedge \ldots \wedge t_n = s_n)
   * \]
   * or alternatively
   * 
   * \[
   *   (c(t_1, \ldots, t_n) = d(s_1, \ldots, s_m)) = false
   * \]
   * where \(c\) and \(d\) are distinct constructors.
   * 

   */
  DT_CONS_EQ(18),
  /**
   * Bitvectors - Unsigned multiplication overflow detection elimination
   * 
   * See M.Gok, M.J. Schulte, P.I. Balzola, "Efficient integer multiplication
   * overflow detection circuits", 2001.
   * http:

   */
  BV_UMULO_ELIMINATE(19),
  /**
   * Bitvectors - Unsigned multiplication overflow detection elimination
   * 
   * See M.Gok, M.J. Schulte, P.I. Balzola, "Efficient integer multiplication
   * overflow detection circuits", 2001.
   * http:

   */
  BV_SMULO_ELIMINATE(20),
  /**
   * Bitvectors - Combine like terms during addition by counting terms

   */
  BV_ADD_COMBINE_LIKE_TERMS(21),
  /**
   * Bitvectors - Extract negations from multiplicands
   * 
   * \[
   *    bvmul(bvneg(a),\ b,\ c) = bvneg(bvmul(a,\ b,\ c))
   * \]

   */
  BV_MULT_SIMPLIFY(22),
  /**
   * Bitvectors - Extract continuous substrings of bitvectors
   * 
   * \[
   *    bvand(a,\ c) = concat(bvand(a[i_0:j_0],\ c_0) ... bvand(a[i_n:j_n],\ c_n))
   * \]
   * where c0,..., cn are maximally continuous substrings of 0 or 1 in the
   * constant c 
   */
  BV_BITWISE_SLICING(23),
  /**
   * Strings - regular expression loop elimination
   * 
   * \[
   *   re.loop_{l,u}(R) = re.union(R^l, \ldots, R^u)
   * \]
   * where \(u \geq l\).
   * 

   */
  RE_LOOP_ELIM(24),
  /**
   * Strings - regular expression intersection/union inclusion
   * 
   * \[
   *   (re.inter\ R) = \mathit{re.inter}(\mathit{re.none}, R_0)
   * \]
   * where \(R\) is a list of regular expressions containing `r_1`,
   * `re.comp(r_2)` and the list \(R_0\) where `r_2` is a superset of
   * `r_1`.
   * 
   * or alternatively:
   * 
   * \[
   *   \mathit{re.union}(R) = \mathit{re.union}(\mathit{re}.\text{*}(\mathit{re.allchar}),\ R_0)
   * \]
   * where \(R\) is a list of regular expressions containing `r_1`,
   * `re.comp(r_2)` and the list \(R_0\), where `r_1` is a superset of
   * `r_2`.
   * 

   */
  RE_INTER_UNION_INCLUSION(25),
  /**
   * Strings - regular expression membership evaluation
   * 
   * \[
   *   \mathit{str.in\_re}(s, R) = c
   * \]
   * where \(s\) is a constant string, \(R\) is a constant regular
   * expression and \(c\) is true or false.
   * 

   */
  STR_IN_RE_EVAL(26),
  /**
   * Strings - regular expression membership consume
   * 
   * \[
   *   \mathit{str.in_re}(s, R) = b
   * \]
   * where \(b\) is either \(false\) or the result of stripping
   * entailed prefixes and suffixes off of \(s\) and \(R\).
   * 

   */
  STR_IN_RE_CONSUME(27),
  /**
   * Strings - string in regular expression concatenation star character
   * 
   * \[
   *   \mathit{str.in\_re}(\mathit{str}.\text{++}(s_1, \ldots, s_n), \mathit{re}.\text{*}(R)) =\\ \mathit{str.in\_re}(s_1, \mathit{re}.\text{*}(R)) \wedge \ldots \wedge \mathit{str.in\_re}(s_n, \mathit{re}.\text{*}(R))
   * \]
   * where all strings in \(R\) have length one.
   * 

   */
  STR_IN_RE_CONCAT_STAR_CHAR(28),
  /**
   * Strings - string in regular expression sigma
   * 
   * \[
   *   \mathit{str.in\_re}(s, \mathit{re}.\text{++}(\mathit{re.allchar}, \ldots, \mathit{re.allchar})) = (\mathit{str.len}(s) = n)
   * \]
   * or alternatively:
   * 
   * \[
   *   \mathit{str.in\_re}(s, \mathit{re}.\text{++}(\mathit{re.allchar}, \ldots, \mathit{re.allchar}, \mathit{re}.\text{*}(\mathit{re.allchar}))) = (\mathit{str.len}(s) \ge n)
   * \]

   */
  STR_IN_RE_SIGMA(29),
  /**
   * Strings - string in regular expression sigma star
   * 
   * \[
   *   \mathit{str.in\_re}(s, \mathit{re}.\text{*}(\mathit{re}.\text{++}(\mathit{re.allchar}, \ldots, \mathit{re.allchar}))) = (\mathit{str.len}(s) \ \% \ n = 0)
   * \]
   * where \(n\) is the number of \(\mathit{re.allchar}\) arguments to
   * \(\mathit{re}.\text{++}\).
   * 

   */
  STR_IN_RE_SIGMA_STAR(30),
  /**
   * Strings - strings substring strip symbolic length
   * 
   * \[
   *   str.substr(s, n, m) = t
   * \]
   * where \(t\) is obtained by fully or partially stripping components of
   * \(s\) based on \(n\) and \(m\).
   * 

   */
  MACRO_SUBSTR_STRIP_SYM_LENGTH(31),
  /**
   * Sets - empty tester evaluation
   * 
   * \[
   *   \mathit{sets.is\_empty}(\epsilon) = \top
   * \]
   * where \(\epsilon\) is the empty set, or alternatively:
   * 
   * \[
   *   \mathit{sets.is\_empty}(c) = \bot
   * \]
   * where \(c\) is a constant set that is not the empty set.
   * 

   */
  SETS_IS_EMPTY_EVAL(32),
  /**
   * Auto-generated from RARE rule arith-plus-zero
   */
  ARITH_PLUS_ZERO(33),
  /**
   * Auto-generated from RARE rule arith-mul-one
   */
  ARITH_MUL_ONE(34),
  /**
   * Auto-generated from RARE rule arith-mul-zero
   */
  ARITH_MUL_ZERO(35),
  /**
   * Auto-generated from RARE rule arith-div-total
   */
  ARITH_DIV_TOTAL(36),
  /**
   * Auto-generated from RARE rule arith-int-div-total
   */
  ARITH_INT_DIV_TOTAL(37),
  /**
   * Auto-generated from RARE rule arith-int-div-total-one
   */
  ARITH_INT_DIV_TOTAL_ONE(38),
  /**
   * Auto-generated from RARE rule arith-int-div-total-zero
   */
  ARITH_INT_DIV_TOTAL_ZERO(39),
  /**
   * Auto-generated from RARE rule arith-int-mod-total
   */
  ARITH_INT_MOD_TOTAL(40),
  /**
   * Auto-generated from RARE rule arith-int-mod-total-one
   */
  ARITH_INT_MOD_TOTAL_ONE(41),
  /**
   * Auto-generated from RARE rule arith-int-mod-total-zero
   */
  ARITH_INT_MOD_TOTAL_ZERO(42),
  /**
   * Auto-generated from RARE rule arith-neg-neg-one
   */
  ARITH_NEG_NEG_ONE(43),
  /**
   * Auto-generated from RARE rule arith-elim-uminus
   */
  ARITH_ELIM_UMINUS(44),
  /**
   * Auto-generated from RARE rule arith-elim-minus
   */
  ARITH_ELIM_MINUS(45),
  /**
   * Auto-generated from RARE rule arith-elim-gt
   */
  ARITH_ELIM_GT(46),
  /**
   * Auto-generated from RARE rule arith-elim-lt
   */
  ARITH_ELIM_LT(47),
  /**
   * Auto-generated from RARE rule arith-elim-int-gt
   */
  ARITH_ELIM_INT_GT(48),
  /**
   * Auto-generated from RARE rule arith-elim-int-lt
   */
  ARITH_ELIM_INT_LT(49),
  /**
   * Auto-generated from RARE rule arith-elim-leq
   */
  ARITH_ELIM_LEQ(50),
  /**
   * Auto-generated from RARE rule arith-leq-norm
   */
  ARITH_LEQ_NORM(51),
  /**
   * Auto-generated from RARE rule arith-geq-tighten
   */
  ARITH_GEQ_TIGHTEN(52),
  /**
   * Auto-generated from RARE rule arith-geq-norm1
   */
  ARITH_GEQ_NORM1(53),
  /**
   * Auto-generated from RARE rule arith-geq-norm2
   */
  ARITH_GEQ_NORM2(54),
  /**
   * Auto-generated from RARE rule arith-refl-leq
   */
  ARITH_REFL_LEQ(55),
  /**
   * Auto-generated from RARE rule arith-refl-lt
   */
  ARITH_REFL_LT(56),
  /**
   * Auto-generated from RARE rule arith-refl-geq
   */
  ARITH_REFL_GEQ(57),
  /**
   * Auto-generated from RARE rule arith-refl-gt
   */
  ARITH_REFL_GT(58),
  /**
   * Auto-generated from RARE rule arith-real-eq-elim
   */
  ARITH_REAL_EQ_ELIM(59),
  /**
   * Auto-generated from RARE rule arith-int-eq-elim
   */
  ARITH_INT_EQ_ELIM(60),
  /**
   * Auto-generated from RARE rule arith-plus-flatten
   */
  ARITH_PLUS_FLATTEN(61),
  /**
   * Auto-generated from RARE rule arith-mult-flatten
   */
  ARITH_MULT_FLATTEN(62),
  /**
   * Auto-generated from RARE rule arith-mult-dist
   */
  ARITH_MULT_DIST(63),
  /**
   * Auto-generated from RARE rule arith-plus-cancel1
   */
  ARITH_PLUS_CANCEL1(64),
  /**
   * Auto-generated from RARE rule arith-plus-cancel2
   */
  ARITH_PLUS_CANCEL2(65),
  /**
   * Auto-generated from RARE rule arith-abs-elim
   */
  ARITH_ABS_ELIM(66),
  /**
   * Auto-generated from RARE rule arith-to-real-elim
   */
  ARITH_TO_REAL_ELIM(67),
  /**
   * Auto-generated from RARE rule arith-to-int-elim-to-real
   */
  ARITH_TO_INT_ELIM_TO_REAL(68),
  /**
   * Auto-generated from RARE rule arith-div-elim-to-real1
   */
  ARITH_DIV_ELIM_TO_REAL1(69),
  /**
   * Auto-generated from RARE rule arith-div-elim-to-real2
   */
  ARITH_DIV_ELIM_TO_REAL2(70),
  /**
   * Auto-generated from RARE rule array-read-over-write
   */
  ARRAY_READ_OVER_WRITE(71),
  /**
   * Auto-generated from RARE rule array-read-over-write2
   */
  ARRAY_READ_OVER_WRITE2(72),
  /**
   * Auto-generated from RARE rule array-store-overwrite
   */
  ARRAY_STORE_OVERWRITE(73),
  /**
   * Auto-generated from RARE rule array-store-self
   */
  ARRAY_STORE_SELF(74),
  /**
   * Auto-generated from RARE rule boolean-double-not-elim
   */
  BOOL_DOUBLE_NOT_ELIM(75),
  /**
   * Auto-generated from RARE rule boolean-not-true
   */
  BOOL_NOT_TRUE(76),
  /**
   * Auto-generated from RARE rule boolean-not-false
   */
  BOOL_NOT_FALSE(77),
  /**
   * Auto-generated from RARE rule boolean-eq-true
   */
  BOOL_EQ_TRUE(78),
  /**
   * Auto-generated from RARE rule boolean-eq-false
   */
  BOOL_EQ_FALSE(79),
  /**
   * Auto-generated from RARE rule boolean-eq-nrefl
   */
  BOOL_EQ_NREFL(80),
  /**
   * Auto-generated from RARE rule boolean-impl-false1
   */
  BOOL_IMPL_FALSE1(81),
  /**
   * Auto-generated from RARE rule boolean-impl-false2
   */
  BOOL_IMPL_FALSE2(82),
  /**
   * Auto-generated from RARE rule boolean-impl-true1
   */
  BOOL_IMPL_TRUE1(83),
  /**
   * Auto-generated from RARE rule boolean-impl-true2
   */
  BOOL_IMPL_TRUE2(84),
  /**
   * Auto-generated from RARE rule boolean-impl-elim
   */
  BOOL_IMPL_ELIM(85),
  /**
   * Auto-generated from RARE rule boolean-or-true
   */
  BOOL_OR_TRUE(86),
  /**
   * Auto-generated from RARE rule boolean-or-false
   */
  BOOL_OR_FALSE(87),
  /**
   * Auto-generated from RARE rule boolean-or-flatten
   */
  BOOL_OR_FLATTEN(88),
  /**
   * Auto-generated from RARE rule boolean-or-dup
   */
  BOOL_OR_DUP(89),
  /**
   * Auto-generated from RARE rule boolean-and-true
   */
  BOOL_AND_TRUE(90),
  /**
   * Auto-generated from RARE rule boolean-and-false
   */
  BOOL_AND_FALSE(91),
  /**
   * Auto-generated from RARE rule boolean-and-flatten
   */
  BOOL_AND_FLATTEN(92),
  /**
   * Auto-generated from RARE rule boolean-and-dup
   */
  BOOL_AND_DUP(93),
  /**
   * Auto-generated from RARE rule boolean-and-conf
   */
  BOOL_AND_CONF(94),
  /**
   * Auto-generated from RARE rule boolean-or-taut
   */
  BOOL_OR_TAUT(95),
  /**
   * Auto-generated from RARE rule boolean-or-de-morgan
   */
  BOOL_OR_DE_MORGAN(96),
  /**
   * Auto-generated from RARE rule boolean-implies-de-morgan
   */
  BOOL_IMPLIES_DE_MORGAN(97),
  /**
   * Auto-generated from RARE rule boolean-and-de-morgan
   */
  BOOL_AND_DE_MORGAN(98),
  /**
   * Auto-generated from RARE rule boolean-xor-refl
   */
  BOOL_XOR_REFL(99),
  /**
   * Auto-generated from RARE rule boolean-xor-nrefl
   */
  BOOL_XOR_NREFL(100),
  /**
   * Auto-generated from RARE rule boolean-xor-false
   */
  BOOL_XOR_FALSE(101),
  /**
   * Auto-generated from RARE rule boolean-xor-true
   */
  BOOL_XOR_TRUE(102),
  /**
   * Auto-generated from RARE rule boolean-xor-comm
   */
  BOOL_XOR_COMM(103),
  /**
   * Auto-generated from RARE rule boolean-xor-elim
   */
  BOOL_XOR_ELIM(104),
  /**
   * Auto-generated from RARE rule boolean-not-xor-elim
   */
  BOOL_NOT_XOR_ELIM(105),
  /**
   * Auto-generated from RARE rule boolean-not-eq-elim
   */
  BOOL_NOT_EQ_ELIM(106),
  /**
   * Auto-generated from RARE rule ite-neg-branch
   */
  ITE_NEG_BRANCH(107),
  /**
   * Auto-generated from RARE rule ite-then-true
   */
  ITE_THEN_TRUE(108),
  /**
   * Auto-generated from RARE rule ite-else-false
   */
  ITE_ELSE_FALSE(109),
  /**
   * Auto-generated from RARE rule ite-then-false
   */
  ITE_THEN_FALSE(110),
  /**
   * Auto-generated from RARE rule ite-else-true
   */
  ITE_ELSE_TRUE(111),
  /**
   * Auto-generated from RARE rule ite-then-lookahead-self
   */
  ITE_THEN_LOOKAHEAD_SELF(112),
  /**
   * Auto-generated from RARE rule ite-else-lookahead-self
   */
  ITE_ELSE_LOOKAHEAD_SELF(113),
  /**
   * Auto-generated from RARE rule boolean-not-ite-elim
   */
  BOOL_NOT_ITE_ELIM(114),
  /**
   * Auto-generated from RARE rule ite-true-cond
   */
  ITE_TRUE_COND(115),
  /**
   * Auto-generated from RARE rule ite-false-cond
   */
  ITE_FALSE_COND(116),
  /**
   * Auto-generated from RARE rule ite-not-cond
   */
  ITE_NOT_COND(117),
  /**
   * Auto-generated from RARE rule ite-eq-branch
   */
  ITE_EQ_BRANCH(118),
  /**
   * Auto-generated from RARE rule ite-then-lookahead
   */
  ITE_THEN_LOOKAHEAD(119),
  /**
   * Auto-generated from RARE rule ite-else-lookahead
   */
  ITE_ELSE_LOOKAHEAD(120),
  /**
   * Auto-generated from RARE rule ite-then-neg-lookahead
   */
  ITE_THEN_NEG_LOOKAHEAD(121),
  /**
   * Auto-generated from RARE rule ite-else-neg-lookahead
   */
  ITE_ELSE_NEG_LOOKAHEAD(122),
  /**
   * Auto-generated from RARE rule bv-concat-flatten
   */
  BV_CONCAT_FLATTEN(123),
  /**
   * Auto-generated from RARE rule bv-concat-extract-merge
   */
  BV_CONCAT_EXTRACT_MERGE(124),
  /**
   * Auto-generated from RARE rule bv-extract-extract
   */
  BV_EXTRACT_EXTRACT(125),
  /**
   * Auto-generated from RARE rule bv-extract-whole
   */
  BV_EXTRACT_WHOLE(126),
  /**
   * Auto-generated from RARE rule bv-extract-concat-1
   */
  BV_EXTRACT_CONCAT_1(127),
  /**
   * Auto-generated from RARE rule bv-extract-concat-2
   */
  BV_EXTRACT_CONCAT_2(128),
  /**
   * Auto-generated from RARE rule bv-extract-concat-3
   */
  BV_EXTRACT_CONCAT_3(129),
  /**
   * Auto-generated from RARE rule bv-extract-concat-4
   */
  BV_EXTRACT_CONCAT_4(130),
  /**
   * Auto-generated from RARE rule bv-extract-bitwise-and
   */
  BV_EXTRACT_BITWISE_AND(131),
  /**
   * Auto-generated from RARE rule bv-extract-bitwise-or
   */
  BV_EXTRACT_BITWISE_OR(132),
  /**
   * Auto-generated from RARE rule bv-extract-bitwise-xor
   */
  BV_EXTRACT_BITWISE_XOR(133),
  /**
   * Auto-generated from RARE rule bv-extract-not
   */
  BV_EXTRACT_NOT(134),
  /**
   * Auto-generated from RARE rule bv-extract-sign-extend-1
   */
  BV_EXTRACT_SIGN_EXTEND_1(135),
  /**
   * Auto-generated from RARE rule bv-extract-sign-extend-2
   */
  BV_EXTRACT_SIGN_EXTEND_2(136),
  /**
   * Auto-generated from RARE rule bv-extract-sign-extend-3
   */
  BV_EXTRACT_SIGN_EXTEND_3(137),
  /**
   * Auto-generated from RARE rule bv-neg-mult
   */
  BV_NEG_MULT(138),
  /**
   * Auto-generated from RARE rule bv-neg-add
   */
  BV_NEG_ADD(139),
  /**
   * Auto-generated from RARE rule bv-mult-distrib--neg
   */
  BV_MULT_DISTRIB_CONST_NEG(140),
  /**
   * Auto-generated from RARE rule bv-mult-distrib--add
   */
  BV_MULT_DISTRIB_CONST_ADD(141),
  /**
   * Auto-generated from RARE rule bv-mult-distrib--sub
   */
  BV_MULT_DISTRIB_CONST_SUB(142),
  /**
   * Auto-generated from RARE rule bv-mult-distrib-1
   */
  BV_MULT_DISTRIB_1(143),
  /**
   * Auto-generated from RARE rule bv-mult-distrib-2
   */
  BV_MULT_DISTRIB_2(144),
  /**
   * Auto-generated from RARE rule bv-not-xor
   */
  BV_NOT_XOR(145),
  /**
   * Auto-generated from RARE rule bv-and-simplify-1
   */
  BV_AND_SIMPLIFY_1(146),
  /**
   * Auto-generated from RARE rule bv-and-simplify-2
   */
  BV_AND_SIMPLIFY_2(147),
  /**
   * Auto-generated from RARE rule bv-or-simplify-1
   */
  BV_OR_SIMPLIFY_1(148),
  /**
   * Auto-generated from RARE rule bv-or-simplify-2
   */
  BV_OR_SIMPLIFY_2(149),
  /**
   * Auto-generated from RARE rule bv-xor-simplify-1
   */
  BV_XOR_SIMPLIFY_1(150),
  /**
   * Auto-generated from RARE rule bv-xor-simplify-2
   */
  BV_XOR_SIMPLIFY_2(151),
  /**
   * Auto-generated from RARE rule bv-xor-simplify-3
   */
  BV_XOR_SIMPLIFY_3(152),
  /**
   * Auto-generated from RARE rule bv-ult-add-one
   */
  BV_ULT_ADD_ONE(153),
  /**
   * Auto-generated from RARE rule bv-concat-to-mult
   */
  BV_CONCAT_TO_MULT(154),
  /**
   * Auto-generated from RARE rule bv-mult-slt-mult-1
   */
  BV_MULT_SLT_MULT_1(155),
  /**
   * Auto-generated from RARE rule bv-mult-slt-mult-2
   */
  BV_MULT_SLT_MULT_2(156),
  /**
   * Auto-generated from RARE rule bv-commutative-and
   */
  BV_COMMUTATIVE_AND(157),
  /**
   * Auto-generated from RARE rule bv-commutative-or
   */
  BV_COMMUTATIVE_OR(158),
  /**
   * Auto-generated from RARE rule bv-commutative-xor
   */
  BV_COMMUTATIVE_XOR(159),
  /**
   * Auto-generated from RARE rule bv-commutative-mul
   */
  BV_COMMUTATIVE_MUL(160),
  /**
   * Auto-generated from RARE rule bv-or-zero
   */
  BV_OR_ZERO(161),
  /**
   * Auto-generated from RARE rule bv-mul-one
   */
  BV_MUL_ONE(162),
  /**
   * Auto-generated from RARE rule bv-mul-zero
   */
  BV_MUL_ZERO(163),
  /**
   * Auto-generated from RARE rule bv-add-zero
   */
  BV_ADD_ZERO(164),
  /**
   * Auto-generated from RARE rule bv-add-two
   */
  BV_ADD_TWO(165),
  /**
   * Auto-generated from RARE rule bv-zero-extend-eliminate-0
   */
  BV_ZERO_EXTEND_ELIMINATE_0(166),
  /**
   * Auto-generated from RARE rule bv-sign-extend-eliminate-0
   */
  BV_SIGN_EXTEND_ELIMINATE_0(167),
  /**
   * Auto-generated from RARE rule bv-not-neq
   */
  BV_NOT_NEQ(168),
  /**
   * Auto-generated from RARE rule bv-ult-ones
   */
  BV_ULT_ONES(169),
  /**
   * Auto-generated from RARE rule bv-or-flatten
   */
  BV_OR_FLATTEN(170),
  /**
   * Auto-generated from RARE rule bv-xor-flatten
   */
  BV_XOR_FLATTEN(171),
  /**
   * Auto-generated from RARE rule bv-and-flatten
   */
  BV_AND_FLATTEN(172),
  /**
   * Auto-generated from RARE rule bv-mul-flatten
   */
  BV_MUL_FLATTEN(173),
  /**
   * Auto-generated from RARE rule bv-concat-merge-
   */
  BV_CONCAT_MERGE_CONST(174),
  /**
   * Auto-generated from RARE rule bv-commutative-add
   */
  BV_COMMUTATIVE_ADD(175),
  /**
   * Auto-generated from RARE rule bv-neg-sub
   */
  BV_NEG_SUB(176),
  /**
   * Auto-generated from RARE rule bv-neg-idemp
   */
  BV_NEG_IDEMP(177),
  /**
   * Auto-generated from RARE rule bv-sub-eliminate
   */
  BV_SUB_ELIMINATE(178),
  /**
   * Auto-generated from RARE rule bv-ugt-eliminate
   */
  BV_UGT_ELIMINATE(179),
  /**
   * Auto-generated from RARE rule bv-uge-eliminate
   */
  BV_UGE_ELIMINATE(180),
  /**
   * Auto-generated from RARE rule bv-sgt-eliminate
   */
  BV_SGT_ELIMINATE(181),
  /**
   * Auto-generated from RARE rule bv-sge-eliminate
   */
  BV_SGE_ELIMINATE(182),
  /**
   * Auto-generated from RARE rule bv-slt-eliminate
   */
  BV_SLT_ELIMINATE(183),
  /**
   * Auto-generated from RARE rule bv-sle-eliminate
   */
  BV_SLE_ELIMINATE(184),
  /**
   * Auto-generated from RARE rule bv-redor-eliminate
   */
  BV_REDOR_ELIMINATE(185),
  /**
   * Auto-generated from RARE rule bv-redand-eliminate
   */
  BV_REDAND_ELIMINATE(186),
  /**
   * Auto-generated from RARE rule bv-ule-eliminate
   */
  BV_ULE_ELIMINATE(187),
  /**
   * Auto-generated from RARE rule bv-comp-eliminate
   */
  BV_COMP_ELIMINATE(188),
  /**
   * Auto-generated from RARE rule bv-repeat-eliminate-1
   */
  BV_REPEAT_ELIMINATE_1(189),
  /**
   * Auto-generated from RARE rule bv-repeat-eliminate-2
   */
  BV_REPEAT_ELIMINATE_2(190),
  /**
   * Auto-generated from RARE rule bv-rotate-left-eliminate-1
   */
  BV_ROTATE_LEFT_ELIMINATE_1(191),
  /**
   * Auto-generated from RARE rule bv-rotate-left-eliminate-2
   */
  BV_ROTATE_LEFT_ELIMINATE_2(192),
  /**
   * Auto-generated from RARE rule bv-rotate-right-eliminate-1
   */
  BV_ROTATE_RIGHT_ELIMINATE_1(193),
  /**
   * Auto-generated from RARE rule bv-rotate-right-eliminate-2
   */
  BV_ROTATE_RIGHT_ELIMINATE_2(194),
  /**
   * Auto-generated from RARE rule bv-nand-eliminate
   */
  BV_NAND_ELIMINATE(195),
  /**
   * Auto-generated from RARE rule bv-nor-eliminate
   */
  BV_NOR_ELIMINATE(196),
  /**
   * Auto-generated from RARE rule bv-xnor-eliminate
   */
  BV_XNOR_ELIMINATE(197),
  /**
   * Auto-generated from RARE rule bv-sdiv-eliminate
   */
  BV_SDIV_ELIMINATE(198),
  /**
   * Auto-generated from RARE rule bv-sdiv-eliminate-fewer-bitwise-ops
   */
  BV_SDIV_ELIMINATE_FEWER_BITWISE_OPS(199),
  /**
   * Auto-generated from RARE rule bv-zero-extend-eliminate
   */
  BV_ZERO_EXTEND_ELIMINATE(200),
  /**
   * Auto-generated from RARE rule bv-sign-extend-eliminate
   */
  BV_SIGN_EXTEND_ELIMINATE(201),
  /**
   * Auto-generated from RARE rule bv-uaddo-eliminate
   */
  BV_UADDO_ELIMINATE(202),
  /**
   * Auto-generated from RARE rule bv-saddo-eliminate
   */
  BV_SADDO_ELIMINATE(203),
  /**
   * Auto-generated from RARE rule bv-sdivo-eliminate
   */
  BV_SDIVO_ELIMINATE(204),
  /**
   * Auto-generated from RARE rule bv-smod-eliminate
   */
  BV_SMOD_ELIMINATE(205),
  /**
   * Auto-generated from RARE rule bv-smod-eliminate-fewer-bitwise-ops
   */
  BV_SMOD_ELIMINATE_FEWER_BITWISE_OPS(206),
  /**
   * Auto-generated from RARE rule bv-srem-eliminate
   */
  BV_SREM_ELIMINATE(207),
  /**
   * Auto-generated from RARE rule bv-srem-eliminate-fewer-bitwise-ops
   */
  BV_SREM_ELIMINATE_FEWER_BITWISE_OPS(208),
  /**
   * Auto-generated from RARE rule bv-usubo-eliminate
   */
  BV_USUBO_ELIMINATE(209),
  /**
   * Auto-generated from RARE rule bv-ssubo-eliminate
   */
  BV_SSUBO_ELIMINATE(210),
  /**
   * Auto-generated from RARE rule bv-ite-equal-children
   */
  BV_ITE_EQUAL_CHILDREN(211),
  /**
   * Auto-generated from RARE rule bv-ite--children-1
   */
  BV_ITE_CONST_CHILDREN_1(212),
  /**
   * Auto-generated from RARE rule bv-ite--children-2
   */
  BV_ITE_CONST_CHILDREN_2(213),
  /**
   * Auto-generated from RARE rule bv-ite-equal-cond-1
   */
  BV_ITE_EQUAL_COND_1(214),
  /**
   * Auto-generated from RARE rule bv-ite-equal-cond-2
   */
  BV_ITE_EQUAL_COND_2(215),
  /**
   * Auto-generated from RARE rule bv-ite-equal-cond-3
   */
  BV_ITE_EQUAL_COND_3(216),
  /**
   * Auto-generated from RARE rule bv-ite-merge-then-if
   */
  BV_ITE_MERGE_THEN_IF(217),
  /**
   * Auto-generated from RARE rule bv-ite-merge-else-if
   */
  BV_ITE_MERGE_ELSE_IF(218),
  /**
   * Auto-generated from RARE rule bv-ite-merge-then-else
   */
  BV_ITE_MERGE_THEN_ELSE(219),
  /**
   * Auto-generated from RARE rule bv-ite-merge-else-else
   */
  BV_ITE_MERGE_ELSE_ELSE(220),
  /**
   * Auto-generated from RARE rule bv-shl-by--0
   */
  BV_SHL_BY_CONST_0(221),
  /**
   * Auto-generated from RARE rule bv-shl-by--1
   */
  BV_SHL_BY_CONST_1(222),
  /**
   * Auto-generated from RARE rule bv-shl-by--2
   */
  BV_SHL_BY_CONST_2(223),
  /**
   * Auto-generated from RARE rule bv-lshr-by--0
   */
  BV_LSHR_BY_CONST_0(224),
  /**
   * Auto-generated from RARE rule bv-lshr-by--1
   */
  BV_LSHR_BY_CONST_1(225),
  /**
   * Auto-generated from RARE rule bv-lshr-by--2
   */
  BV_LSHR_BY_CONST_2(226),
  /**
   * Auto-generated from RARE rule bv-ashr-by--0
   */
  BV_ASHR_BY_CONST_0(227),
  /**
   * Auto-generated from RARE rule bv-ashr-by--1
   */
  BV_ASHR_BY_CONST_1(228),
  /**
   * Auto-generated from RARE rule bv-ashr-by--2
   */
  BV_ASHR_BY_CONST_2(229),
  /**
   * Auto-generated from RARE rule bv-and-concat-pullup
   */
  BV_AND_CONCAT_PULLUP(230),
  /**
   * Auto-generated from RARE rule bv-or-concat-pullup
   */
  BV_OR_CONCAT_PULLUP(231),
  /**
   * Auto-generated from RARE rule bv-xor-concat-pullup
   */
  BV_XOR_CONCAT_PULLUP(232),
  /**
   * Auto-generated from RARE rule bv-bitwise-idemp-1
   */
  BV_BITWISE_IDEMP_1(233),
  /**
   * Auto-generated from RARE rule bv-bitwise-idemp-2
   */
  BV_BITWISE_IDEMP_2(234),
  /**
   * Auto-generated from RARE rule bv-and-zero
   */
  BV_AND_ZERO(235),
  /**
   * Auto-generated from RARE rule bv-and-one
   */
  BV_AND_ONE(236),
  /**
   * Auto-generated from RARE rule bv-or-one
   */
  BV_OR_ONE(237),
  /**
   * Auto-generated from RARE rule bv-xor-duplicate
   */
  BV_XOR_DUPLICATE(238),
  /**
   * Auto-generated from RARE rule bv-xor-ones
   */
  BV_XOR_ONES(239),
  /**
   * Auto-generated from RARE rule bv-xor-zero
   */
  BV_XOR_ZERO(240),
  /**
   * Auto-generated from RARE rule bv-bitwise-not-and
   */
  BV_BITWISE_NOT_AND(241),
  /**
   * Auto-generated from RARE rule bv-bitwise-not-or
   */
  BV_BITWISE_NOT_OR(242),
  /**
   * Auto-generated from RARE rule bv-xor-not
   */
  BV_XOR_NOT(243),
  /**
   * Auto-generated from RARE rule bv-not-idemp
   */
  BV_NOT_IDEMP(244),
  /**
   * Auto-generated from RARE rule bv-ult-zero-1
   */
  BV_ULT_ZERO_1(245),
  /**
   * Auto-generated from RARE rule bv-ult-zero-2
   */
  BV_ULT_ZERO_2(246),
  /**
   * Auto-generated from RARE rule bv-ult-self
   */
  BV_ULT_SELF(247),
  /**
   * Auto-generated from RARE rule bv-lt-self
   */
  BV_LT_SELF(248),
  /**
   * Auto-generated from RARE rule bv-ule-self
   */
  BV_ULE_SELF(249),
  /**
   * Auto-generated from RARE rule bv-ule-zero
   */
  BV_ULE_ZERO(250),
  /**
   * Auto-generated from RARE rule bv-zero-ule
   */
  BV_ZERO_ULE(251),
  /**
   * Auto-generated from RARE rule bv-sle-self
   */
  BV_SLE_SELF(252),
  /**
   * Auto-generated from RARE rule bv-ule-max
   */
  BV_ULE_MAX(253),
  /**
   * Auto-generated from RARE rule bv-not-ult
   */
  BV_NOT_ULT(254),
  /**
   * Auto-generated from RARE rule bv-not-ule
   */
  BV_NOT_ULE(255),
  /**
   * Auto-generated from RARE rule bv-not-sle
   */
  BV_NOT_SLE(256),
  /**
   * Auto-generated from RARE rule bv-mult-pow2-1
   */
  BV_MULT_POW2_1(257),
  /**
   * Auto-generated from RARE rule bv-mult-pow2-2
   */
  BV_MULT_POW2_2(258),
  /**
   * Auto-generated from RARE rule bv-mult-pow2-2b
   */
  BV_MULT_POW2_2B(259),
  /**
   * Auto-generated from RARE rule bv-extract-mult-leading-bit
   */
  BV_EXTRACT_MULT_LEADING_BIT(260),
  /**
   * Auto-generated from RARE rule bv-udiv-pow2-not-one
   */
  BV_UDIV_POW2_NOT_ONE(261),
  /**
   * Auto-generated from RARE rule bv-udiv-zero
   */
  BV_UDIV_ZERO(262),
  /**
   * Auto-generated from RARE rule bv-udiv-one
   */
  BV_UDIV_ONE(263),
  /**
   * Auto-generated from RARE rule bv-urem-pow2-not-one
   */
  BV_UREM_POW2_NOT_ONE(264),
  /**
   * Auto-generated from RARE rule bv-urem-one
   */
  BV_UREM_ONE(265),
  /**
   * Auto-generated from RARE rule bv-urem-self
   */
  BV_UREM_SELF(266),
  /**
   * Auto-generated from RARE rule bv-shl-zero
   */
  BV_SHL_ZERO(267),
  /**
   * Auto-generated from RARE rule bv-lshr-zero
   */
  BV_LSHR_ZERO(268),
  /**
   * Auto-generated from RARE rule bv-ashr-zero
   */
  BV_ASHR_ZERO(269),
  /**
   * Auto-generated from RARE rule bv-ugt-urem
   */
  BV_UGT_UREM(270),
  /**
   * Auto-generated from RARE rule bv-ult-one
   */
  BV_ULT_ONE(271),
  /**
   * Auto-generated from RARE rule bv-slt-zero
   */
  BV_SLT_ZERO(272),
  /**
   * Auto-generated from RARE rule bv-merge-sign-extend-1
   */
  BV_MERGE_SIGN_EXTEND_1(273),
  /**
   * Auto-generated from RARE rule bv-merge-sign-extend-2
   */
  BV_MERGE_SIGN_EXTEND_2(274),
  /**
   * Auto-generated from RARE rule bv-merge-sign-extend-3
   */
  BV_MERGE_SIGN_EXTEND_3(275),
  /**
   * Auto-generated from RARE rule bv-sign-extend-eq--1
   */
  BV_SIGN_EXTEND_EQ_CONST_1(276),
  /**
   * Auto-generated from RARE rule bv-sign-extend-eq--2
   */
  BV_SIGN_EXTEND_EQ_CONST_2(277),
  /**
   * Auto-generated from RARE rule bv-zero-extend-eq--1
   */
  BV_ZERO_EXTEND_EQ_CONST_1(278),
  /**
   * Auto-generated from RARE rule bv-zero-extend-eq--2
   */
  BV_ZERO_EXTEND_EQ_CONST_2(279),
  /**
   * Auto-generated from RARE rule bv-zero-extend-ult--1
   */
  BV_ZERO_EXTEND_ULT_CONST_1(280),
  /**
   * Auto-generated from RARE rule bv-zero-extend-ult--2
   */
  BV_ZERO_EXTEND_ULT_CONST_2(281),
  /**
   * Auto-generated from RARE rule bv-sign-extend-ult--1
   */
  BV_SIGN_EXTEND_ULT_CONST_1(282),
  /**
   * Auto-generated from RARE rule bv-sign-extend-ult--2
   */
  BV_SIGN_EXTEND_ULT_CONST_2(283),
  /**
   * Auto-generated from RARE rule bv-sign-extend-ult--3
   */
  BV_SIGN_EXTEND_ULT_CONST_3(284),
  /**
   * Auto-generated from RARE rule bv-sign-extend-ult--4
   */
  BV_SIGN_EXTEND_ULT_CONST_4(285),
  /**
   * Auto-generated from RARE rule sets-eq-singleton-emp
   */
  SETS_EQ_SINGLETON_EMP(286),
  /**
   * Auto-generated from RARE rule sets-member-singleton
   */
  SETS_MEMBER_SINGLETON(287),
  /**
   * Auto-generated from RARE rule sets-member-emp
   */
  SETS_MEMBER_EMP(288),
  /**
   * Auto-generated from RARE rule sets-subset-elim
   */
  SETS_SUBSET_ELIM(289),
  /**
   * Auto-generated from RARE rule sets-union-comm
   */
  SETS_UNION_COMM(290),
  /**
   * Auto-generated from RARE rule sets-inter-comm
   */
  SETS_INTER_COMM(291),
  /**
   * Auto-generated from RARE rule sets-inter-emp1
   */
  SETS_INTER_EMP1(292),
  /**
   * Auto-generated from RARE rule sets-inter-emp2
   */
  SETS_INTER_EMP2(293),
  /**
   * Auto-generated from RARE rule sets-minus-emp1
   */
  SETS_MINUS_EMP1(294),
  /**
   * Auto-generated from RARE rule sets-minus-emp2
   */
  SETS_MINUS_EMP2(295),
  /**
   * Auto-generated from RARE rule sets-union-emp1
   */
  SETS_UNION_EMP1(296),
  /**
   * Auto-generated from RARE rule sets-union-emp2
   */
  SETS_UNION_EMP2(297),
  /**
   * Auto-generated from RARE rule sets-inter-member
   */
  SETS_INTER_MEMBER(298),
  /**
   * Auto-generated from RARE rule sets-minus-member
   */
  SETS_MINUS_MEMBER(299),
  /**
   * Auto-generated from RARE rule sets-union-member
   */
  SETS_UNION_MEMBER(300),
  /**
   * Auto-generated from RARE rule sets-choose-singleton
   */
  SETS_CHOOSE_SINGLETON(301),
  /**
   * Auto-generated from RARE rule sets-card-singleton
   */
  SETS_CARD_SINGLETON(302),
  /**
   * Auto-generated from RARE rule sets-card-union
   */
  SETS_CARD_UNION(303),
  /**
   * Auto-generated from RARE rule sets-card-minus
   */
  SETS_CARD_MINUS(304),
  /**
   * Auto-generated from RARE rule sets-card-emp
   */
  SETS_CARD_EMP(305),
  /**
   * Auto-generated from RARE rule str-eq-ctn-false
   */
  STR_EQ_CTN_FALSE(306),
  /**
   * Auto-generated from RARE rule str-eq-ctn-full-false1
   */
  STR_EQ_CTN_FULL_FALSE1(307),
  /**
   * Auto-generated from RARE rule str-eq-ctn-full-false2
   */
  STR_EQ_CTN_FULL_FALSE2(308),
  /**
   * Auto-generated from RARE rule str-concat-flatten
   */
  STR_CONCAT_FLATTEN(309),
  /**
   * Auto-generated from RARE rule str-concat-flatten-eq
   */
  STR_CONCAT_FLATTEN_EQ(310),
  /**
   * Auto-generated from RARE rule str-concat-flatten-eq-rev
   */
  STR_CONCAT_FLATTEN_EQ_REV(311),
  /**
   * Auto-generated from RARE rule str-substr-empty-str
   */
  STR_SUBSTR_EMPTY_STR(312),
  /**
   * Auto-generated from RARE rule str-substr-empty-range
   */
  STR_SUBSTR_EMPTY_RANGE(313),
  /**
   * Auto-generated from RARE rule str-substr-empty-start
   */
  STR_SUBSTR_EMPTY_START(314),
  /**
   * Auto-generated from RARE rule str-substr-empty-start-neg
   */
  STR_SUBSTR_EMPTY_START_NEG(315),
  /**
   * Auto-generated from RARE rule str-substr-eq-empty
   */
  STR_SUBSTR_EQ_EMPTY(316),
  /**
   * Auto-generated from RARE rule str-len-replace-inv
   */
  STR_LEN_REPLACE_INV(317),
  /**
   * Auto-generated from RARE rule str-len-update-inv
   */
  STR_LEN_UPDATE_INV(318),
  /**
   * Auto-generated from RARE rule str-len-substr-in-range
   */
  STR_LEN_SUBSTR_IN_RANGE(319),
  /**
   * Auto-generated from RARE rule str-len-substr-ub1
   */
  STR_LEN_SUBSTR_UB1(320),
  /**
   * Auto-generated from RARE rule str-len-substr-ub2
   */
  STR_LEN_SUBSTR_UB2(321),
  /**
   * Auto-generated from RARE rule str-concat-clash
   */
  STR_CONCAT_CLASH(322),
  /**
   * Auto-generated from RARE rule str-concat-clash-rev
   */
  STR_CONCAT_CLASH_REV(323),
  /**
   * Auto-generated from RARE rule str-concat-clash2
   */
  STR_CONCAT_CLASH2(324),
  /**
   * Auto-generated from RARE rule str-concat-clash2-rev
   */
  STR_CONCAT_CLASH2_REV(325),
  /**
   * Auto-generated from RARE rule str-concat-unify
   */
  STR_CONCAT_UNIFY(326),
  /**
   * Auto-generated from RARE rule str-concat-unify-rev
   */
  STR_CONCAT_UNIFY_REV(327),
  /**
   * Auto-generated from RARE rule str-concat-unify-base
   */
  STR_CONCAT_UNIFY_BASE(328),
  /**
   * Auto-generated from RARE rule str-concat-unify-base-rev
   */
  STR_CONCAT_UNIFY_BASE_REV(329),
  /**
   * Auto-generated from RARE rule str-concat-clash-char
   */
  STR_CONCAT_CLASH_CHAR(330),
  /**
   * Auto-generated from RARE rule str-concat-clash-char-rev
   */
  STR_CONCAT_CLASH_CHAR_REV(331),
  /**
   * Auto-generated from RARE rule str-prefixof-elim
   */
  STR_PREFIXOF_ELIM(332),
  /**
   * Auto-generated from RARE rule str-suffixof-elim
   */
  STR_SUFFIXOF_ELIM(333),
  /**
   * Auto-generated from RARE rule str-prefixof-one
   */
  STR_PREFIXOF_ONE(334),
  /**
   * Auto-generated from RARE rule str-suffixof-one
   */
  STR_SUFFIXOF_ONE(335),
  /**
   * Auto-generated from RARE rule str-substr-combine1
   */
  STR_SUBSTR_COMBINE1(336),
  /**
   * Auto-generated from RARE rule str-substr-combine2
   */
  STR_SUBSTR_COMBINE2(337),
  /**
   * Auto-generated from RARE rule str-substr-combine3
   */
  STR_SUBSTR_COMBINE3(338),
  /**
   * Auto-generated from RARE rule str-substr-combine4
   */
  STR_SUBSTR_COMBINE4(339),
  /**
   * Auto-generated from RARE rule str-substr-concat1
   */
  STR_SUBSTR_CONCAT1(340),
  /**
   * Auto-generated from RARE rule str-substr-concat2
   */
  STR_SUBSTR_CONCAT2(341),
  /**
   * Auto-generated from RARE rule str-substr-full
   */
  STR_SUBSTR_FULL(342),
  /**
   * Auto-generated from RARE rule str-substr-full-eq
   */
  STR_SUBSTR_FULL_EQ(343),
  /**
   * Auto-generated from RARE rule str-contains-refl
   */
  STR_CONTAINS_REFL(344),
  /**
   * Auto-generated from RARE rule str-contains-concat-find
   */
  STR_CONTAINS_CONCAT_FIND(345),
  /**
   * Auto-generated from RARE rule str-contains-split-char
   */
  STR_CONTAINS_SPLIT_CHAR(346),
  /**
   * Auto-generated from RARE rule str-contains-lt-len
   */
  STR_CONTAINS_LT_LEN(347),
  /**
   * Auto-generated from RARE rule str-contains-leq-len-eq
   */
  STR_CONTAINS_LEQ_LEN_EQ(348),
  /**
   * Auto-generated from RARE rule str-contains-emp
   */
  STR_CONTAINS_EMP(349),
  /**
   * Auto-generated from RARE rule str-contains-is-emp
   */
  STR_CONTAINS_IS_EMP(350),
  /**
   * Auto-generated from RARE rule str-concat-emp
   */
  STR_CONCAT_EMP(351),
  /**
   * Auto-generated from RARE rule str-at-elim
   */
  STR_AT_ELIM(352),
  /**
   * Auto-generated from RARE rule str-replace-self
   */
  STR_REPLACE_SELF(353),
  /**
   * Auto-generated from RARE rule str-replace-no-contains
   */
  STR_REPLACE_NO_CONTAINS(354),
  /**
   * Auto-generated from RARE rule str-replace-empty
   */
  STR_REPLACE_EMPTY(355),
  /**
   * Auto-generated from RARE rule str-len-concat-rec
   */
  STR_LEN_CONCAT_REC(356),
  /**
   * Auto-generated from RARE rule str-indexof-self
   */
  STR_INDEXOF_SELF(357),
  /**
   * Auto-generated from RARE rule str-indexof-no-contains
   */
  STR_INDEXOF_NO_CONTAINS(358),
  /**
   * Auto-generated from RARE rule str-to-lower-concat
   */
  STR_TO_LOWER_CONCAT(359),
  /**
   * Auto-generated from RARE rule str-to-upper-concat
   */
  STR_TO_UPPER_CONCAT(360),
  /**
   * Auto-generated from RARE rule str-to-lower-upper
   */
  STR_TO_LOWER_UPPER(361),
  /**
   * Auto-generated from RARE rule str-to-upper-lower
   */
  STR_TO_UPPER_LOWER(362),
  /**
   * Auto-generated from RARE rule re-all-elim
   */
  RE_ALL_ELIM(363),
  /**
   * Auto-generated from RARE rule re-opt-elim
   */
  RE_OPT_ELIM(364),
  /**
   * Auto-generated from RARE rule re-diff-elim
   */
  RE_DIFF_ELIM(365),
  /**
   * Auto-generated from RARE rule re-concat-emp
   */
  RE_CONCAT_EMP(366),
  /**
   * Auto-generated from RARE rule re-concat-none
   */
  RE_CONCAT_NONE(367),
  /**
   * Auto-generated from RARE rule re-concat-flatten
   */
  RE_CONCAT_FLATTEN(368),
  /**
   * Auto-generated from RARE rule re-concat-star-swap
   */
  RE_CONCAT_STAR_SWAP(369),
  /**
   * Auto-generated from RARE rule re-concat-merge
   */
  RE_CONCAT_MERGE(370),
  /**
   * Auto-generated from RARE rule re-union-all
   */
  RE_UNION_ALL(371),
  /**
   * Auto-generated from RARE rule re-union-none
   */
  RE_UNION_NONE(372),
  /**
   * Auto-generated from RARE rule re-union-flatten
   */
  RE_UNION_FLATTEN(373),
  /**
   * Auto-generated from RARE rule re-union-dup
   */
  RE_UNION_DUP(374),
  /**
   * Auto-generated from RARE rule re-inter-all
   */
  RE_INTER_ALL(375),
  /**
   * Auto-generated from RARE rule re-inter-none
   */
  RE_INTER_NONE(376),
  /**
   * Auto-generated from RARE rule re-inter-flatten
   */
  RE_INTER_FLATTEN(377),
  /**
   * Auto-generated from RARE rule re-inter-dup
   */
  RE_INTER_DUP(378),
  /**
   * Auto-generated from RARE rule re-loop-neg
   */
  RE_LOOP_NEG(379),
  /**
   * Auto-generated from RARE rule re-inter-cstring
   */
  RE_INTER_CSTRING(380),
  /**
   * Auto-generated from RARE rule re-inter-cstring-neg
   */
  RE_INTER_CSTRING_NEG(381),
  /**
   * Auto-generated from RARE rule str-nth-elim-code
   */
  STR_NTH_ELIM_CODE(382),
  /**
   * Auto-generated from RARE rule str-substr-len-include
   */
  STR_SUBSTR_LEN_INCLUDE(383),
  /**
   * Auto-generated from RARE rule str-substr-len-include-pre
   */
  STR_SUBSTR_LEN_INCLUDE_PRE(384),
  /**
   * Auto-generated from RARE rule str-substr-len-skip
   */
  STR_SUBSTR_LEN_SKIP(385),
  /**
   * Auto-generated from RARE rule seq-rev-concat
   */
  SEQ_REV_CONCAT(386),
  /**
   * Auto-generated from RARE rule seq-len-unit
   */
  SEQ_LEN_UNIT(387),
  /**
   * Auto-generated from RARE rule seq-nth-unit
   */
  SEQ_NTH_UNIT(388),
  /**
   * Auto-generated from RARE rule seq-rev-unit
   */
  SEQ_REV_UNIT(389),
  /**
   * Auto-generated from RARE rule re-in-empty
   */
  RE_IN_EMPTY(390),
  /**
   * Auto-generated from RARE rule re-in-sigma
   */
  RE_IN_SIGMA(391),
  /**
   * Auto-generated from RARE rule re-in-sigma-star
   */
  RE_IN_SIGMA_STAR(392),
  /**
   * Auto-generated from RARE rule re-in-cstring
   */
  RE_IN_CSTRING(393),
  /**
   * Auto-generated from RARE rule re-in-comp
   */
  RE_IN_COMP(394),
  /**
   * Auto-generated from RARE rule str-in-re-union-elim
   */
  STR_IN_RE_UNION_ELIM(395),
  /**
   * Auto-generated from RARE rule str-in-re-inter-elim
   */
  STR_IN_RE_INTER_ELIM(396),
  /**
   * Auto-generated from RARE rule str-in-re-range-elim
   */
  STR_IN_RE_RANGE_ELIM(397),
  /**
   * Auto-generated from RARE rule str-in-re-contains
   */
  STR_IN_RE_CONTAINS(398),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix
   */
  STR_IN_RE_STRIP_PREFIX(399),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-neg
   */
  STR_IN_RE_STRIP_PREFIX_NEG(400),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-sr-single
   */
  STR_IN_RE_STRIP_PREFIX_SR_SINGLE(401),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg
   */
  STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG(402),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-srs-single
   */
  STR_IN_RE_STRIP_PREFIX_SRS_SINGLE(403),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg
   */
  STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG(404),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-s-single
   */
  STR_IN_RE_STRIP_PREFIX_S_SINGLE(405),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg
   */
  STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG(406),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base
   */
  STR_IN_RE_STRIP_PREFIX_BASE(407),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base-neg
   */
  STR_IN_RE_STRIP_PREFIX_BASE_NEG(408),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single
   */
  STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE(409),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg
   */
  STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG(410),
  /**
   * Auto-generated from RARE rule str-in-re-strip-char
   */
  STR_IN_RE_STRIP_CHAR(411),
  /**
   * Auto-generated from RARE rule str-in-re-strip-char-s-single
   */
  STR_IN_RE_STRIP_CHAR_S_SINGLE(412),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-rev
   */
  STR_IN_RE_STRIP_PREFIX_REV(413),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-neg-rev
   */
  STR_IN_RE_STRIP_PREFIX_NEG_REV(414),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-rev
   */
  STR_IN_RE_STRIP_PREFIX_SR_SINGLE_REV(415),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-sr-single-neg-rev
   */
  STR_IN_RE_STRIP_PREFIX_SR_SINGLE_NEG_REV(416),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-rev
   */
  STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_REV(417),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-srs-single-neg-rev
   */
  STR_IN_RE_STRIP_PREFIX_SRS_SINGLE_NEG_REV(418),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-s-single-rev
   */
  STR_IN_RE_STRIP_PREFIX_S_SINGLE_REV(419),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-s-single-neg-rev
   */
  STR_IN_RE_STRIP_PREFIX_S_SINGLE_NEG_REV(420),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base-rev
   */
  STR_IN_RE_STRIP_PREFIX_BASE_REV(421),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base-neg-rev
   */
  STR_IN_RE_STRIP_PREFIX_BASE_NEG_REV(422),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-rev
   */
  STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_REV(423),
  /**
   * Auto-generated from RARE rule str-in-re-strip-prefix-base-s-single-neg-rev
   */
  STR_IN_RE_STRIP_PREFIX_BASE_S_SINGLE_NEG_REV(424),
  /**
   * Auto-generated from RARE rule str-in-re-strip-char-rev
   */
  STR_IN_RE_STRIP_CHAR_REV(425),
  /**
   * Auto-generated from RARE rule str-in-re-strip-char-s-single-rev
   */
  STR_IN_RE_STRIP_CHAR_S_SINGLE_REV(426),
  /**
   * Auto-generated from RARE rule str-in-re-req-unfold
   */
  STR_IN_RE_REQ_UNFOLD(427),
  /**
   * Auto-generated from RARE rule str-in-re-req-unfold-rev
   */
  STR_IN_RE_REQ_UNFOLD_REV(428),
  /**
   * Auto-generated from RARE rule str-in-re-skip-unfold
   */
  STR_IN_RE_SKIP_UNFOLD(429),
  /**
   * Auto-generated from RARE rule str-in-re-skip-unfold-rev
   */
  STR_IN_RE_SKIP_UNFOLD_REV(430),
  /**
   * Auto-generated from RARE rule str-in-re-test-unfold
   */
  STR_IN_RE_TEST_UNFOLD(431),
  /**
   * Auto-generated from RARE rule str-in-re-test-unfold-rev
   */
  STR_IN_RE_TEST_UNFOLD_REV(432),
  /**
   * Auto-generated from RARE rule eq-refl
   */
  EQ_REFL(433),
  /**
   * Auto-generated from RARE rule eq-symm
   */
  EQ_SYMM(434),
  /**
   * Auto-generated from RARE rule distinct-binary-elim
   */
  DISTINCT_BINARY_ELIM(435),
  /**
   * Auto-generated from RARE rule uf-bv2nat-geq-elim
   */
  UF_BV2NAT_GEQ_ELIM(436),
;

  /* the int value of the ProofRewriteRule */
  private int value;
  private static int minValue = 0;
  private static int maxValue = 0;
  private static Map enumMap = new HashMap<>();

  private ProofRewriteRule(int value)
  {
    this.value = value;
  }

  static
  {
    boolean firstValue = true;
    for (ProofRewriteRule enumerator : ProofRewriteRule.values())
    {
      int value = enumerator.getValue();
      if (firstValue)
      {
        minValue = value;
        maxValue = value;
        firstValue = false;
      }
      minValue = Math.min(minValue, value);
      maxValue = Math.max(maxValue, value);
      enumMap.put(value, enumerator);
    }
  }

  public static ProofRewriteRule fromInt(int value) throws CVC5ApiException
  {
    if (value < minValue || value > maxValue)
    {
      throw new CVC5ApiException("ProofRewriteRule value " + value + " is outside the valid range ["
          + minValue + "," + maxValue + "]");
    }
    return enumMap.get(value);
  }

  public int getValue()
  {
    return value;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy